[U-Boot] [PATCH v2 32/33] x86: ivybridge: Implement SDRAM init

Simon Glass sjg at chromium.org
Wed Nov 12 06:20:33 CET 2014


Hi Bin,

On 11 November 2014 18:43, Bin Meng <bmeng.cn at gmail.com> wrote:
> Hi Simon,
>
> On Wed, Nov 12, 2014 at 12:18 AM, Simon Glass <sjg at chromium.org> wrote:
>> Hi Bin,
>>
>> On 11 November 2014 07:37, Bin Meng <bmeng.cn at gmail.com> wrote:
>>> Hi Simon,
>>>
>>> I am not sure if there is anything I missed but when I look at the
>>> u-boot-x86/working, the repo content does not match the patch v2 here.
>>> And seems you missed my previous comments @
>>> http://u-boot.10912.n7.nabble.com/PATCH-0-39-x86-Add-support-for-running-on-bare-hardware-tp194993p195356.html
>>
>> OK, which ones have I missed?
>
> Does the above link not work for you? The comments were:

No I couldn't find your comments when I looked.

>
>> +static void report_cpu_info(void)
>> +{
>> +       struct cpuid_result cpuidr;
>> +       u32 i, index;
>> +       char cpu_string[50], *cpu_name = cpu_string; /* 48 bytes are reported */
>> +       int vt, txt, aes;
>> +       const char *mode[] = {"NOT ", ""};
>> +
>> +       index = 0x80000000;
>> +       cpuidr = cpuid(index);
>> +       if (cpuidr.eax < 0x80000004) {
>> +               strcpy(cpu_string, "Platform info not available");
>> +       } else {
>> +               u32 *p = (u32 *)cpu_string;
>> +               for (i = 2; i <= 4 ; i++) {
>> +                       cpuidr = cpuid(index + i);
>> +                       *p++ = cpuidr.eax;
>> +                       *p++ = cpuidr.ebx;
>> +                       *p++ = cpuidr.ecx;
>> +                       *p++ = cpuidr.edx;
>> +               }
>> +       }
>> +       /* Skip leading spaces in CPU name string */
>> +       while (cpu_name[0] == ' ')
>> +               cpu_name++;
>
> The above codes can be just replaced by a call to cpu_get_name()

Er, yes :-)

>
> [snip]
>
>> diff --git a/arch/x86/dts/link.dts b/arch/x86/dts/link.dts
>> index 84fb0a9..f152da5 100644
>> --- a/arch/x86/dts/link.dts
>> +++ b/arch/x86/dts/link.dts
>> @@ -41,6 +41,117 @@
>>         chosen { };
>>         memory { device_type = "memory"; reg = <0 0>; };
>>
>> +       spd {
>> +               compatible = "memory-spd";
>> +               #address-cells = <1>;
>> +               #size-cells = <0>;
>> +               elpida_4Gb_1600_x16 {
>> +                       reg = <0>;
>> +                       data = [92 10 0b 03 04 19 02 02
>> +                               03 52 01 08 0a 00 fe 00
>> +                               69 78 69 3c 69 11 18 81
>> +                               20 08 3c 3c 01 40 83 81
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 0f 11 42 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 02 fe 00
>> +                               11 52 00 00 00 07 7f 37
>> +                               45 42 4a 32 30 55 47 36
>> +                               45 42 55 30 2d 47 4e 2d
>> +                               46 20 30 20 02 fe 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00
>> +                               00 00 00 00 00 00 00 00];
>> +               };
>
> Is this the limitation of the MRC that it cannot read SPD from the
> DIMM? Or is it because the RAM chip is soldered on board?

Yes, soldered on.

>
> [snip]
>
>> diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile
>> index 25b672a..d0c7f30 100644
>> --- a/arch/x86/lib/Makefile
>> +++ b/arch/x86/lib/Makefile
>> @@ -15,6 +15,7 @@ obj-$(CONFIG_SYS_PCAT_TIMER) += pcat_timer.o
>>  obj-$(CONFIG_PCI) += pci_type1.o
>>  obj-y  += relocate.o
>>  obj-y += physmem.o
>> +obj-y += ramtest.o
>
> Can we make the ramtest wrapped by CONFIG_X86_RAMTEST?

OK.

Regards,
Simon


More information about the U-Boot mailing list