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

Arnd Bergmann posted 10 patches 9 months, 3 weeks ago
[PATCH v3 08/10] x86: document X86_INTEL_MID as 64-bit-only
Posted by Arnd Bergmann 9 months, 3 weeks ago
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.

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
-- 
2.39.5
Re: [PATCH v3 08/10] x86: document X86_INTEL_MID as 64-bit-only
Posted by Ferry Toth 9 months, 3 weeks ago
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
Re: [PATCH v3 08/10] x86: document X86_INTEL_MID as 64-bit-only
Posted by Andy Shevchenko 9 months, 3 weeks ago
On Fri, Feb 28, 2025 at 05:20:54PM +0100, Ferry Toth wrote:
> 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?

Listed SoCs are all capable of running 64-bit code.

Telling that they 64-bit only is a bit of a lie but it seems for good. :-)

OTOH I dunno if there is still a plan by community to resurrect Intel Medifield
and Clovertrail (there are phones in a working shape still around), but either
way they will need to switch to ACPI and U-boot to begin with and that's in my
knowledge not trivial and not easy task. That said, I don't think it will ever
happen.

-- 
With Best Regards,
Andy Shevchenko
[tip: x86/cpu] x86/cpu: Document CONFIG_X86_INTEL_MID as 64-bit-only
Posted by tip-bot2 for Arnd Bergmann 9 months, 3 weeks ago
The following commit has been merged into the x86/cpu branch of tip:

Commit-ID:     ca5955dd5f08727605723b60767fbf2cc3d54046
Gitweb:        https://git.kernel.org/tip/ca5955dd5f08727605723b60767fbf2cc3d54046
Author:        Arnd Bergmann <arnd@arndb.de>
AuthorDate:    Wed, 26 Feb 2025 22:37:12 +01:00
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Thu, 27 Feb 2025 11:22:07 +01:00

x86/cpu: Document CONFIG_X86_INTEL_MID as 64-bit-only

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.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Andy Shevchenko <andy@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20250226213714.4040853-9-arnd@kernel.org
---
 arch/x86/Kconfig | 50 +++++++++++++++++++++++++++--------------------
 1 file changed, 29 insertions(+), 21 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 73eeaf2..acd4d73 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -549,12 +549,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.
@@ -599,8 +599,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)"
@@ -610,6 +633,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
@@ -625,24 +651,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