diff options
author | Bin Meng | 2017-07-30 06:23:13 -0700 |
---|---|---|
committer | Bin Meng | 2017-08-01 20:17:02 +0800 |
commit | 5d89b37f71ff1833bdd34eeba6dbac6bec1c9fb2 (patch) | |
tree | 951d9c0bac06285a605b3cc01efc7c126dff2fd7 /arch/x86/cpu | |
parent | 3612b1efebff5230a86e3101d196a1952adc6ac4 (diff) |
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 <bmeng.cn@gmail.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/x86/cpu')
-rw-r--r-- | arch/x86/cpu/broadwell/Kconfig | 1 | ||||
-rw-r--r-- | arch/x86/cpu/broadwell/refcode.c | 17 | ||||
-rw-r--r-- | arch/x86/cpu/qemu/Kconfig | 1 | ||||
-rw-r--r-- | arch/x86/cpu/quark/Kconfig | 1 | ||||
-rw-r--r-- | arch/x86/cpu/queensbay/Kconfig | 1 |
5 files changed, 20 insertions, 1 deletions
diff --git a/arch/x86/cpu/broadwell/Kconfig b/arch/x86/cpu/broadwell/Kconfig index 8501949d3ea..f3006c3e675 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 436c6c49c3a..4fa4de3525c 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 6808c9a6b9a..6f61744627c 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 641aa220683..9e7d9834e69 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 6136d75422c..e2dfe19080b 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 |