From 5d89b37f71ff1833bdd34eeba6dbac6bec1c9fb2 Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Sun, 30 Jul 2017 06:23:13 -0700 Subject: [PATCH] x86: kconfig: Select ARCH_EARLY_INIT_R in the platform Kconfig This is architecture-dependent early initialization hence should be put in the platform Kconfig. Signed-off-by: Bin Meng Reviewed-by: Andy Shevchenko Reviewed-by: Simon Glass --- arch/x86/cpu/broadwell/Kconfig | 1 + arch/x86/cpu/broadwell/refcode.c | 17 ++++++++++++++++- arch/x86/cpu/qemu/Kconfig | 1 + arch/x86/cpu/quark/Kconfig | 1 + arch/x86/cpu/queensbay/Kconfig | 1 + arch/x86/include/asm/cpu.h | 12 ------------ .../som-db5800-som-6867/som-db5800-som-6867.c | 5 ----- .../conga-qeval20-qa3-e3845/conga-qeval20-qa3.c | 5 ----- board/coreboot/coreboot/Makefile | 2 +- board/coreboot/coreboot/coreboot.c | 14 -------------- board/efi/efi-x86/efi.c | 6 ------ board/google/chromebook_link/link.c | 11 ----------- board/google/chromebook_samus/samus.c | 6 ------ board/google/chromebox_panther/panther.c | 6 ------ board/intel/minnowmax/minnowmax.c | 5 ----- common/Kconfig | 1 - configs/bayleybay_defconfig | 1 - configs/cougarcanyon2_defconfig | 1 - configs/dfi-bt700-q7x-151_defconfig | 1 - configs/edison_defconfig | 1 - configs/efi-x86_defconfig | 1 - configs/theadorable-x86-dfi-bt700_defconfig | 1 - 22 files changed, 21 insertions(+), 79 deletions(-) delete mode 100644 board/coreboot/coreboot/coreboot.c diff --git a/arch/x86/cpu/broadwell/Kconfig b/arch/x86/cpu/broadwell/Kconfig index 8501949d3e..f3006c3e67 100644 --- a/arch/x86/cpu/broadwell/Kconfig +++ b/arch/x86/cpu/broadwell/Kconfig @@ -6,6 +6,7 @@ config INTEL_BROADWELL bool select CACHE_MRC_BIN + select ARCH_EARLY_INIT_R imply HAVE_INTEL_ME if INTEL_BROADWELL diff --git a/arch/x86/cpu/broadwell/refcode.c b/arch/x86/cpu/broadwell/refcode.c index 436c6c49c3..4fa4de3525 100644 --- a/arch/x86/cpu/broadwell/refcode.c +++ b/arch/x86/cpu/broadwell/refcode.c @@ -56,7 +56,17 @@ struct rmodule_header { uint32_t padding[4]; } __packed; -int cpu_run_reference_code(void) +/** + * cpu_run_reference_code() - Run the platform reference code + * + * Some platforms require a binary blob to be executed once SDRAM is + * available. This is used to set up various platform features, such as the + * platform controller hub (PCH). This function should be implemented by the + * CPU-specific code. + * + * @return 0 on success, -ve on failure + */ +static int cpu_run_reference_code(void) { struct pei_data _pei_data __aligned(8); struct pei_data *pei_data = &_pei_data; @@ -111,3 +121,8 @@ int cpu_run_reference_code(void) return 0; } + +int arch_early_init_r(void) +{ + return cpu_run_reference_code(); +} diff --git a/arch/x86/cpu/qemu/Kconfig b/arch/x86/cpu/qemu/Kconfig index 6808c9a6b9..6f61744627 100644 --- a/arch/x86/cpu/qemu/Kconfig +++ b/arch/x86/cpu/qemu/Kconfig @@ -6,6 +6,7 @@ config QEMU bool + select ARCH_EARLY_INIT_R if QEMU diff --git a/arch/x86/cpu/quark/Kconfig b/arch/x86/cpu/quark/Kconfig index 641aa22068..9e7d9834e6 100644 --- a/arch/x86/cpu/quark/Kconfig +++ b/arch/x86/cpu/quark/Kconfig @@ -7,6 +7,7 @@ config INTEL_QUARK bool select HAVE_RMU + select ARCH_EARLY_INIT_R select ARCH_MISC_INIT if INTEL_QUARK diff --git a/arch/x86/cpu/queensbay/Kconfig b/arch/x86/cpu/queensbay/Kconfig index 6136d75422..e2dfe19080 100644 --- a/arch/x86/cpu/queensbay/Kconfig +++ b/arch/x86/cpu/queensbay/Kconfig @@ -8,6 +8,7 @@ config INTEL_QUEENSBAY bool select HAVE_FSP select HAVE_CMC + select ARCH_EARLY_INIT_R if INTEL_QUEENSBAY diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h index c00687a20a..bc2c4ffd9f 100644 --- a/arch/x86/include/asm/cpu.h +++ b/arch/x86/include/asm/cpu.h @@ -288,16 +288,4 @@ u32 cpu_get_family_model(void); */ u32 cpu_get_stepping(void); -/** - * cpu_run_reference_code() - Run the platform reference code - * - * Some platforms require a binary blob to be executed once SDRAM is - * available. This is used to set up various platform features, such as the - * platform controller hub (PCH). This function should be implemented by the - * CPU-specific code. - * - * @return 0 on success, -ve on failure - */ -int cpu_run_reference_code(void); - #endif diff --git a/board/advantech/som-db5800-som-6867/som-db5800-som-6867.c b/board/advantech/som-db5800-som-6867/som-db5800-som-6867.c index 5bed2c1146..615879575c 100644 --- a/board/advantech/som-db5800-som-6867/som-db5800-som-6867.c +++ b/board/advantech/som-db5800-som-6867/som-db5800-som-6867.c @@ -17,8 +17,3 @@ int board_early_init_f(void) return 0; } - -int arch_early_init_r(void) -{ - return 0; -} diff --git a/board/congatec/conga-qeval20-qa3-e3845/conga-qeval20-qa3.c b/board/congatec/conga-qeval20-qa3-e3845/conga-qeval20-qa3.c index 7a5b7659ef..1283eebd38 100644 --- a/board/congatec/conga-qeval20-qa3-e3845/conga-qeval20-qa3.c +++ b/board/congatec/conga-qeval20-qa3-e3845/conga-qeval20-qa3.c @@ -28,11 +28,6 @@ int board_early_init_f(void) return 0; } -int arch_early_init_r(void) -{ - return 0; -} - int board_late_init(void) { struct udevice *dev; diff --git a/board/coreboot/coreboot/Makefile b/board/coreboot/coreboot/Makefile index 27ebe78eb1..4f2ac898eb 100644 --- a/board/coreboot/coreboot/Makefile +++ b/board/coreboot/coreboot/Makefile @@ -12,4 +12,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -obj-y += coreboot_start.o coreboot.o +obj-y += coreboot_start.o diff --git a/board/coreboot/coreboot/coreboot.c b/board/coreboot/coreboot/coreboot.c deleted file mode 100644 index bb7f778a8f..0000000000 --- a/board/coreboot/coreboot/coreboot.c +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (C) 2013 Google, Inc - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -#include -#include -#include - -int arch_early_init_r(void) -{ - return 0; -} diff --git a/board/efi/efi-x86/efi.c b/board/efi/efi-x86/efi.c index 1fbe36a399..2adc202be0 100644 --- a/board/efi/efi-x86/efi.c +++ b/board/efi/efi-x86/efi.c @@ -5,9 +5,3 @@ */ #include -#include - -int arch_early_init_r(void) -{ - return 0; -} diff --git a/board/google/chromebook_link/link.c b/board/google/chromebook_link/link.c index 64e7c1a08d..dc22592095 100644 --- a/board/google/chromebook_link/link.c +++ b/board/google/chromebook_link/link.c @@ -5,14 +5,3 @@ */ #include -#include -#include -#include -#include -#include -#include - -int arch_early_init_r(void) -{ - return 0; -} diff --git a/board/google/chromebook_samus/samus.c b/board/google/chromebook_samus/samus.c index 356b92a454..5b5eb19ee8 100644 --- a/board/google/chromebook_samus/samus.c +++ b/board/google/chromebook_samus/samus.c @@ -5,9 +5,3 @@ */ #include -#include - -int arch_early_init_r(void) -{ - return cpu_run_reference_code(); -} diff --git a/board/google/chromebox_panther/panther.c b/board/google/chromebox_panther/panther.c index ed60e44264..2adc202be0 100644 --- a/board/google/chromebox_panther/panther.c +++ b/board/google/chromebox_panther/panther.c @@ -5,9 +5,3 @@ */ #include -#include - -int arch_early_init_r(void) -{ - return 0; -} diff --git a/board/intel/minnowmax/minnowmax.c b/board/intel/minnowmax/minnowmax.c index 99aed53100..5bdb2fdbc7 100644 --- a/board/intel/minnowmax/minnowmax.c +++ b/board/intel/minnowmax/minnowmax.c @@ -12,11 +12,6 @@ #define GPIO_BANKE_NAME "gpioe" -int arch_early_init_r(void) -{ - return 0; -} - int misc_init_r(void) { struct udevice *dev; diff --git a/common/Kconfig b/common/Kconfig index 1645ae9989..098389185b 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -871,7 +871,6 @@ menu "Start-up hooks" config ARCH_EARLY_INIT_R bool "Call arch-specific init soon after relocation" - default y if X86 help With this option U-Boot will call arch_early_init_r() soon after relocation. Driver model is running by this point, and the cache diff --git a/configs/bayleybay_defconfig b/configs/bayleybay_defconfig index 9436784a73..bf00390723 100644 --- a/configs/bayleybay_defconfig +++ b/configs/bayleybay_defconfig @@ -15,7 +15,6 @@ CONFIG_FIT=y CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y CONFIG_SYS_CONSOLE_INFO_QUIET=y -# CONFIG_ARCH_EARLY_INIT_R is not set CONFIG_HUSH_PARSER=y CONFIG_CMD_CPU=y # CONFIG_CMD_IMLS is not set diff --git a/configs/cougarcanyon2_defconfig b/configs/cougarcanyon2_defconfig index 2e729faaa8..84856aa6f5 100644 --- a/configs/cougarcanyon2_defconfig +++ b/configs/cougarcanyon2_defconfig @@ -5,7 +5,6 @@ CONFIG_TARGET_COUGARCANYON2=y CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_CONSOLE_MUX=y CONFIG_SYS_CONSOLE_INFO_QUIET=y -# CONFIG_ARCH_EARLY_INIT_R is not set CONFIG_HUSH_PARSER=y # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set diff --git a/configs/dfi-bt700-q7x-151_defconfig b/configs/dfi-bt700-q7x-151_defconfig index bed4f28d8a..76cdf5542e 100644 --- a/configs/dfi-bt700-q7x-151_defconfig +++ b/configs/dfi-bt700-q7x-151_defconfig @@ -15,7 +15,6 @@ CONFIG_FIT_SIGNATURE=y CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y CONFIG_SYS_CONSOLE_INFO_QUIET=y -# CONFIG_ARCH_EARLY_INIT_R is not set CONFIG_HUSH_PARSER=y CONFIG_CMD_CPU=y # CONFIG_CMD_IMLS is not set diff --git a/configs/edison_defconfig b/configs/edison_defconfig index ba43b47b87..02c09aa5e3 100644 --- a/configs/edison_defconfig +++ b/configs/edison_defconfig @@ -3,7 +3,6 @@ CONFIG_VENDOR_INTEL=y CONFIG_DEFAULT_DEVICE_TREE="edison" CONFIG_TARGET_EDISON=y CONFIG_SMP=y -# CONFIG_ARCH_EARLY_INIT_R is not set CONFIG_HUSH_PARSER=y CONFIG_CMD_CPU=y # CONFIG_CMD_IMLS is not set diff --git a/configs/efi-x86_defconfig b/configs/efi-x86_defconfig index 20681b0be4..7495da4b0d 100644 --- a/configs/efi-x86_defconfig +++ b/configs/efi-x86_defconfig @@ -7,7 +7,6 @@ CONFIG_FIT=y CONFIG_ENV_IS_NOWHERE=y CONFIG_CONSOLE_MUX=y CONFIG_SYS_CONSOLE_INFO_QUIET=y -# CONFIG_ARCH_EARLY_INIT_R is not set CONFIG_HUSH_PARSER=y # CONFIG_CMD_BOOTM is not set # CONFIG_CMD_IMLS is not set diff --git a/configs/theadorable-x86-dfi-bt700_defconfig b/configs/theadorable-x86-dfi-bt700_defconfig index 64af353021..dee551b96b 100644 --- a/configs/theadorable-x86-dfi-bt700_defconfig +++ b/configs/theadorable-x86-dfi-bt700_defconfig @@ -15,7 +15,6 @@ CONFIG_FIT_SIGNATURE=y CONFIG_BOOTSTAGE=y CONFIG_BOOTSTAGE_REPORT=y CONFIG_SYS_CONSOLE_INFO_QUIET=y -# CONFIG_ARCH_EARLY_INIT_R is not set CONFIG_HUSH_PARSER=y CONFIG_CMD_CPU=y # CONFIG_CMD_IMLS is not set -- 2.25.1