[U-Boot] [PATCH v4 03/15] x86: Convert microcode format to device-tree-only

Simon Glass sjg at chromium.org
Wed Dec 17 15:56:23 CET 2014


On 17 December 2014 at 01:05, Bin Meng <bmeng.cn at gmail.com> wrote:
> Hi,
>
> On Wed, Dec 17, 2014 at 3:50 PM, Bin Meng <bmeng.cn at gmail.com> wrote:
>> From: Simon Glass <sjg at chromium.org>
>>
>> To avoid having two microcode formats, adjust the build system to support
>> obtaining the microcode from the device tree, even in the case where it
>> must be made available before the device tree can be accessed.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>>
>> ---
>>
>> Changes in v4:
>> - Squash the microcode.dtsi to patch#1 in the v4 series
>>
>> Changes in v3: None
>> Changes in v2: None
>>
>>  Makefile                         |  4 +++-
>>  arch/x86/cpu/queensbay/tnc_car.S | 11 ++++-------
>>  arch/x86/dts/crownbay.dts        |  7 +++++++
>>  3 files changed, 14 insertions(+), 8 deletions(-)
>>
>> diff --git a/Makefile b/Makefile
>> index fd24cde..d4e60e8 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -947,7 +947,9 @@ ifneq ($(CONFIG_X86_RESET_VECTOR),)
>>  rom: u-boot.rom FORCE
>>
>>  IFDTOOL=$(objtree)/tools/ifdtool
>> -IFDTOOL_FLAGS  = -w $(CONFIG_SYS_TEXT_BASE):$(objtree)/u-boot-dtb.bin
>> +IFDTOOL_FLAGS  = -f 0:$(objtree)/u-boot.dtb
>> +IFDTOOL_FLAGS += -m 0x$(shell $(NM) u-boot |grep _dt_ucode_base_size |cut -d' ' -f1)
>> +IFDTOOL_FLAGS += -U $(CONFIG_SYS_TEXT_BASE):$(objtree)/u-boot.bin
>>  IFDTOOL_FLAGS += -w $(CONFIG_SYS_X86_START16):$(objtree)/u-boot-x86-16bit.bin
>>
>>  ifneq ($(CONFIG_HAVE_INTEL_ME),)
>> diff --git a/arch/x86/cpu/queensbay/tnc_car.S b/arch/x86/cpu/queensbay/tnc_car.S
>> index 6834a64..2e9139e 100644
>> --- a/arch/x86/cpu/queensbay/tnc_car.S
>> +++ b/arch/x86/cpu/queensbay/tnc_car.S
>> @@ -116,12 +116,9 @@ temp_ram_init_romstack:
>>         .long   temp_ram_init_ret
>>         .long   temp_ram_init_params
>>  temp_ram_init_params:
>> -       .long   ucode_start             /* microcode base */
>> -       .long   ucode_size              /* microcode size */
>> +_dt_ucode_base_size:
>> +       /* These next two fields are filled in by ifdtool */
>> +       .long   0                       /* microcode base */
>> +       .long   0                       /* microcode size */
>>         .long   CONFIG_SYS_MONITOR_BASE /* code region base */
>>         .long   CONFIG_SYS_MONITOR_LEN  /* code region size */
>> -
>> -       .balign 4
>> -ucode_start:
>> -       .include "arch/x86/cpu/queensbay/M0220661105.inc"
>> -ucode_size = ( . - ucode_start)
>> diff --git a/arch/x86/dts/crownbay.dts b/arch/x86/dts/crownbay.dts
>> index 399dafb..3f43f3c 100644
>> --- a/arch/x86/dts/crownbay.dts
>> +++ b/arch/x86/dts/crownbay.dts
>> @@ -50,4 +50,11 @@
>>                         memory-map = <0xffe00000 0x00200000>;
>>                 };
>>         };
>> +
>> +       microcode {
>> +               update at 0 {
>> +#include "microcode/m0220661105_cv.dtsi"
>> +               };
>> +       };
>> +
>>  };
>> --
>
> Reviewed-by: Bin Meng <bmeng.cn at gmail.com>
> Tested-by: Bin Meng <bmeng.cn at gmail.com>

Applied to u-boot-x86, thanks!


More information about the U-Boot mailing list