x86: Select advanced Intel code only if allowed
authorSimon Glass <sjg@chromium.org>
Tue, 23 Feb 2021 10:35:42 +0000 (05:35 -0500)
committerBin Meng <bmeng.cn@gmail.com>
Tue, 9 Mar 2021 01:42:12 +0000 (09:42 +0800)
At present most of the Intel-specific code is built on all devices, even
those which don't have software support for the features provided there.

This means that any board can enable CONFIG_INTEL_ACPIGEN even if it does
not have the required features.

Add a new INTEL_SOC option to control this access. This must be selected
by SoCs that can support the required features.

Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
[bmeng: fixed a typo in arch/x86/Kconfig]
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/Kconfig
arch/x86/cpu/apollolake/Kconfig

index 94081a1..5b089af 100644 (file)
@@ -1001,6 +1001,19 @@ config PCIEX_LENGTH_128MB
 config PCIEX_LENGTH_64MB
        bool
 
+config INTEL_SOC
+       bool
+       help
+         This is enabled on Intel SoCs that can support various advanced
+         features such as power management (requiring asm/arch/pm.h), system
+         agent (asm/arch/systemagent.h) and an I/O map for ACPI
+         (asm/arch/iomap.h).
+
+         This cannot be selected in a defconfig file. It must be enabled by a
+         'select' in the SoC's Kconfig.
+
+if INTEL_SOC
+
 config INTEL_ACPIGEN
        bool "Support ACPI table generation for Intel SoCs"
        depends on ACPIGEN
@@ -1032,4 +1045,6 @@ config INTEL_GMA_SWSMISCI
          Select this option for Atom-based platforms which use the SWSMISCI
          register (0xe0) rather than the SWSCI register (0xe8).
 
+endif # INTEL_SOC
+
 endmenu
index f5dbd6c..590fe31 100644 (file)
@@ -9,6 +9,7 @@ config INTEL_APOLLOLAKE
        select HAVE_FSP
        select ARCH_MISC_INIT
        select USE_CAR
+       select INTEL_SOC
        select INTEL_PMC
        select TPL_X86_TSC_TIMER_NATIVE
        select SPL_PCH_SUPPORT