Re: [PATCH v3 08/10] x86: document X86_INTEL_MID as 64-bit-only

Ferry Toth
2025-02-28T16:20:56Z

Hi,

On 26-02-2025 22:37, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> The X86_INTEL_MID code was originally introduced for the 32-bit
> Moorestown/Medfield/Clovertrail platform, later the 64-bit
> Merrifield/Moorefield variants were added, but the final Morganfield
> 14nm platform was canceled before it hit the market.
>
> To help users understand what the option actually refers to, update the
> help text, and add a dependency on 64-bit kernels.
>
> Ferry confirmed that all the hardware can run 64-bit kernels these days,
> but is still testing 32-bit kernels on the Intel Edison board, so this
> remains possible, but is guarded by a CONFIG_EXPERT dependency now,
> to gently push remaining users towards using CONFIG_64BIT.

That is a bit more than I said :-) I only know of Merrifield, as Andy
removed the SFI bits and got ACPI working. For the other platforms I
don't know the status. Additionally there are pieces of code where 32b
runs substantially faster than 64b (I know of at least crc32c).

Maybe Andy can confirm the other platforms?

> Cc: Ferry Toth <fntoth@gmail.com>
> Link: https://lore.kernel.org/lkml/d890eecc-97de-4abf-8e0e-b881d5db5c1d@gmail.com/
> Acked-by: Andy Shevchenko <andy@kernel.org>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> arch/x86/Kconfig | 50 ++++++++++++++++++++++++++++--------------------
> 1 file changed, 29 insertions(+), 21 deletions(-)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index aba32f88870d..42dd3c58abfb 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -548,12 +548,12 @@ config X86_EXTENDED_PLATFORM
> RDC R-321x SoC
> SGI 320/540 (Visual Workstation)
> STA2X11-based (e.g. Northville)
> - Moorestown MID devices
>
> 64-bit platforms (CONFIG_64BIT=y):
> Numascale NumaChip
> ScaleMP vSMP
> SGI Ultraviolet
> + Merrifield/Moorefield MID devices
>
> If you have one of these systems, or if you want to build a
> generic distribution kernel, say Y here - otherwise say N.
> @@ -598,8 +598,31 @@ config X86_UV
> This option is needed in order to support SGI Ultraviolet systems.
> If you don't have one of these, you should say N here.
>
> -# Following is an alphabetically sorted list of 32 bit extended platforms
> -# Please maintain the alphabetic order if and when there are additions
> +config X86_INTEL_MID
> + bool "Intel Z34xx/Z35xx MID platform support"
> + depends on X86_EXTENDED_PLATFORM
> + depends on X86_PLATFORM_DEVICES
> + depends on PCI
> + depends on X86_64 || (EXPERT && PCI_GOANY)
> + depends on X86_IO_APIC
> + select I2C
> + select DW_APB_TIMER
> + select INTEL_SCU_PCI
> + help
> + Select to build a kernel capable of supporting 64-bit Intel MID
> + (Mobile Internet Device) platform systems which do not have
> + the PCI legacy interfaces.
> +
> + The only supported devices are the 22nm Merrified (Z34xx)
> + and Moorefield (Z35xx) SoC used in the Intel Edison board and
> + a small number of Android devices such as the Asus Zenfone 2,
> + Asus FonePad 8 and Dell Venue 7.
> +
> + If you are building for a PC class system or non-MID tablet
> + SoCs like Bay Trail (Z36xx/Z37xx), say N here.
> +
> + Intel MID platforms are based on an Intel processor and chipset which
> + consume less power than most of the x86 derivatives.
>
> config X86_GOLDFISH
> bool "Goldfish (Virtual Platform)"
> @@ -609,6 +632,9 @@ config X86_GOLDFISH
> for Android development. Unless you are building for the Android
> Goldfish emulator say N here.
>
> +# Following is an alphabetically sorted list of 32 bit extended platforms
> +# Please maintain the alphabetic order if and when there are additions
> +
> config X86_INTEL_CE
> bool "CE4100 TV platform"
> depends on PCI
> @@ -624,24 +650,6 @@ config X86_INTEL_CE
> This option compiles in support for the CE4100 SOC for settop
> boxes and media devices.
>
> -config X86_INTEL_MID
> - bool "Intel MID platform support"
> - depends on X86_EXTENDED_PLATFORM
> - depends on X86_PLATFORM_DEVICES
> - depends on PCI
> - depends on X86_64 || (PCI_GOANY && X86_32)
> - depends on X86_IO_APIC
> - select I2C
> - select DW_APB_TIMER
> - select INTEL_SCU_PCI
> - help
> - Select to build a kernel capable of supporting Intel MID (Mobile
> - Internet Device) platform systems which do not have the PCI legacy
> - interfaces. If you are building for a PC class system say N here.
> -
> - Intel MID platforms are based on an Intel processor and chipset which
> - consume less power than most of the x86 derivatives.
> -
> config X86_INTEL_QUARK
> bool "Intel Quark platform support"
> depends on X86_32