Message ID | 1418802649-32647-4-git-send-email-bmeng.cn@gmail.com |
---|---|
State | Accepted |
Delegated to: | Simon Glass |
Headers | show |
Hi, On Wed, Dec 17, 2014 at 3:50 PM, Bin Meng <bmeng.cn@gmail.com> wrote: > From: Simon Glass <sjg@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@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@0 { > +#include "microcode/m0220661105_cv.dtsi" > + }; > + }; > + > }; > -- Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com>
On 17 December 2014 at 01:05, Bin Meng <bmeng.cn@gmail.com> wrote: > Hi, > > On Wed, Dec 17, 2014 at 3:50 PM, Bin Meng <bmeng.cn@gmail.com> wrote: >> From: Simon Glass <sjg@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@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@0 { >> +#include "microcode/m0220661105_cv.dtsi" >> + }; >> + }; >> + >> }; >> -- > > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > Tested-by: Bin Meng <bmeng.cn@gmail.com> Applied to u-boot-x86, thanks!
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@0 { +#include "microcode/m0220661105_cv.dtsi" + }; + }; + };