diff mbox series

[3/3] x86: Select advanced Intel code only if allowed

Message ID 20210223103542.1386572-3-sjg@chromium.org
State Accepted
Delegated to: Bin Meng
Headers show
Series [1/3] x86: Fix member check in intel_gnvs | expand

Commit Message

Simon Glass Feb. 23, 2021, 10:35 a.m. UTC
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>
---

 arch/x86/Kconfig                | 15 +++++++++++++++
 arch/x86/cpu/apollolake/Kconfig |  1 +
 2 files changed, 16 insertions(+)

Comments

Bin Meng Feb. 25, 2021, 1:25 p.m. UTC | #1
On Tue, Feb 23, 2021 at 6:35 PM Simon Glass <sjg@chromium.org> wrote:
>
> 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>
> ---
>
>  arch/x86/Kconfig                | 15 +++++++++++++++
>  arch/x86/cpu/apollolake/Kconfig |  1 +
>  2 files changed, 16 insertions(+)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index c8ce2fcb88d..b4a86f8fa05 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -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 seleted in a defconfig file. It must be enabled by a

typo: selected

Will fix when applying

> +         '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
> diff --git a/arch/x86/cpu/apollolake/Kconfig b/arch/x86/cpu/apollolake/Kconfig
> index f5dbd6cbd34..590fe31dc4b 100644
> --- a/arch/x86/cpu/apollolake/Kconfig
> +++ b/arch/x86/cpu/apollolake/Kconfig
> @@ -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
> --

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Bin Meng Feb. 25, 2021, 1:34 p.m. UTC | #2
On Thu, Feb 25, 2021 at 9:25 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>
> On Tue, Feb 23, 2021 at 6:35 PM Simon Glass <sjg@chromium.org> wrote:
> >
> > 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>
> > ---
> >
> >  arch/x86/Kconfig                | 15 +++++++++++++++
> >  arch/x86/cpu/apollolake/Kconfig |  1 +
> >  2 files changed, 16 insertions(+)
> >
> > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> > index c8ce2fcb88d..b4a86f8fa05 100644
> > --- a/arch/x86/Kconfig
> > +++ b/arch/x86/Kconfig
> > @@ -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 seleted in a defconfig file. It must be enabled by a
>
> typo: selected
>
> Will fix when applying

Fixed the typo, and

>
> > +         '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
> > diff --git a/arch/x86/cpu/apollolake/Kconfig b/arch/x86/cpu/apollolake/Kconfig
> > index f5dbd6cbd34..590fe31dc4b 100644
> > --- a/arch/x86/cpu/apollolake/Kconfig
> > +++ b/arch/x86/cpu/apollolake/Kconfig
> > @@ -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
> > --
>
> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

applied to u-boot-x86, thanks!
diff mbox series

Patch

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index c8ce2fcb88d..b4a86f8fa05 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -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 seleted 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
diff --git a/arch/x86/cpu/apollolake/Kconfig b/arch/x86/cpu/apollolake/Kconfig
index f5dbd6cbd34..590fe31dc4b 100644
--- a/arch/x86/cpu/apollolake/Kconfig
+++ b/arch/x86/cpu/apollolake/Kconfig
@@ -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