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

Bin Meng bmeng.cn at gmail.com
Wed Dec 17 09:05:45 CET 2014


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>


More information about the U-Boot mailing list