I found out I am no longer able to boot kernel compiled with CONFIG_MCRUSOE=y on
my HP t5300 with CPU: Transmeta(tm) Crusoe(tm) Processor TM5500 (family: 0x5,
model: 0x4, stepping: 0x3). It says:
> This kernel requires an i686 CPU, but only detected an i586 CPU.
> Unable to boot - please use a kernel appropriate for your CPU.
It looks like this is caused by 25d76ac888216c369dea91768764728b83769799 which
started setting X86_MINIMUM_CPU_FAMILY=6 for MCRUSOE while CPUID gives family=5.
I was able to fix the problem with a patch included below. It just changes
X86_MINIMUM_CPU_FAMILY to 5. No other change was necessary (using -march=i686
seems fine).
/proc/cpuinfo:
processor : 0
vendor_id : GenuineTMx86
cpu family : 5
model : 4
model name : Transmeta(tm) Crusoe(tm) Processor TM5500
stepping : 3
cpu MHz : 532.091
cache size : 256 KB
fdiv_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr cx8 sep cmov mmx longrun lrti constant_tsc cpuid
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_unknown
bogomips : 1064.18
clflush size : 32
cache_alignment : 32
address sizes : 32 bits physical, 32 bits virtual
power management:
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -375,7 +375,7 @@
config X86_MINIMUM_CPU_FAMILY
int
default "64" if X86_64
- default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8)
+ default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8)
default "5" if X86_32 && X86_CMPXCHG64
default "4"
On Sun, Jan 07, 2024 at 02:16:57PM +0100, Aleksander Mazur wrote:
> I found out I am no longer able to boot kernel compiled with CONFIG_MCRUSOE=y on
> my HP t5300 with CPU: Transmeta(tm) Crusoe(tm) Processor TM5500 (family: 0x5,
> model: 0x4, stepping: 0x3). It says:
>
> > This kernel requires an i686 CPU, but only detected an i586 CPU.
> > Unable to boot - please use a kernel appropriate for your CPU.
>
> It looks like this is caused by 25d76ac888216c369dea91768764728b83769799 which
> started setting X86_MINIMUM_CPU_FAMILY=6 for MCRUSOE while CPUID gives family=5.
>
> I was able to fix the problem with a patch included below. It just changes
> X86_MINIMUM_CPU_FAMILY to 5
... for MCRUSOE.
> No other change was necessary (using -march=i686
> seems fine).
>
> /proc/cpuinfo:
> processor : 0
> vendor_id : GenuineTMx86
> cpu family : 5
> model : 4
> model name : Transmeta(tm) Crusoe(tm) Processor TM5500
> stepping : 3
> cpu MHz : 532.091
> cache size : 256 KB
> fdiv_bug : no
> f00f_bug : no
> coma_bug : no
> fpu : yes
> fpu_exception : yes
> cpuid level : 1
> wp : yes
> flags : fpu vme de pse tsc msr cx8 sep cmov mmx longrun lrti constant_tsc cpuid
> bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_unknown
> bogomips : 1064.18
> clflush size : 32
> cache_alignment : 32
> address sizes : 32 bits physical, 32 bits virtual
> power management:
>
> --- a/arch/x86/Kconfig.cpu
> +++ b/arch/x86/Kconfig.cpu
> @@ -375,7 +375,7 @@
> config X86_MINIMUM_CPU_FAMILY
> int
> default "64" if X86_64
> - default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8)
> + default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8)
> default "5" if X86_32 && X86_CMPXCHG64
> default "4"
Care to turn this into a proper patch with your SOB etc?
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
On January 7, 2024 11:47:16 AM PST, Borislav Petkov <bp@alien8.de> wrote: >On Sun, Jan 07, 2024 at 02:16:57PM +0100, Aleksander Mazur wrote: >> I found out I am no longer able to boot kernel compiled with CONFIG_MCRUSOE=y on >> my HP t5300 with CPU: Transmeta(tm) Crusoe(tm) Processor TM5500 (family: 0x5, >> model: 0x4, stepping: 0x3). It says: >> >> > This kernel requires an i686 CPU, but only detected an i586 CPU. >> > Unable to boot - please use a kernel appropriate for your CPU. >> >> It looks like this is caused by 25d76ac888216c369dea91768764728b83769799 which >> started setting X86_MINIMUM_CPU_FAMILY=6 for MCRUSOE while CPUID gives family=5. >> >> I was able to fix the problem with a patch included below. It just changes >> X86_MINIMUM_CPU_FAMILY to 5 > >... for MCRUSOE. > >> No other change was necessary (using -march=i686 >> seems fine). >> >> /proc/cpuinfo: >> processor : 0 >> vendor_id : GenuineTMx86 >> cpu family : 5 >> model : 4 >> model name : Transmeta(tm) Crusoe(tm) Processor TM5500 >> stepping : 3 >> cpu MHz : 532.091 >> cache size : 256 KB >> fdiv_bug : no >> f00f_bug : no >> coma_bug : no >> fpu : yes >> fpu_exception : yes >> cpuid level : 1 >> wp : yes >> flags : fpu vme de pse tsc msr cx8 sep cmov mmx longrun lrti constant_tsc cpuid >> bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_unknown >> bogomips : 1064.18 >> clflush size : 32 >> cache_alignment : 32 >> address sizes : 32 bits physical, 32 bits virtual >> power management: >> >> --- a/arch/x86/Kconfig.cpu >> +++ b/arch/x86/Kconfig.cpu >> @@ -375,7 +375,7 @@ >> config X86_MINIMUM_CPU_FAMILY >> int >> default "64" if X86_64 >> - default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8) >> + default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8) >> default "5" if X86_32 && X86_CMPXCHG64 >> default "4" > >Care to turn this into a proper patch with your SOB etc? > >Thx. > This is correct; Crusoe (TM3xxx/5xxx) implemented a 686 user level ISA but a 586 system level ISA. So please make a formal patch and add: Acked-by: H. Peter Anvin <hpa@zytor.com>
The kernel built with MCRUSOE is unbootable on Transmeta Crusoe.
It shows following error message:
> This kernel requires an i686 CPU, but only detected an i586 CPU.
> Unable to boot - please use a kernel appropriate for your CPU.
Fix this by removing MCRUSOE from condition introduced in 25d76ac88821,
effectively changing X86_MINIMUM_CPU_FAMILY back to 5, what matches CPU
family given by CPUID.
Tested on HP t5300.
Fixes: 25d76ac88821 ("x86/Kconfig: Explicitly enumerate i686-class CPUs in Kconfig")
Acked-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Aleksander Mazur <deweloper@wp.pl>
---
arch/x86/Kconfig.cpu | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index b9224cf2ee4d..2a7279d80460 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -379,7 +379,7 @@ config X86_CMOV
config X86_MINIMUM_CPU_FAMILY
int
default "64" if X86_64
- default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8)
+ default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8)
default "5" if X86_32 && X86_CMPXCHG64
default "4"
--
2.43.0
The following commit has been merged into the x86/urgent branch of tip:
Commit-ID: f6a1892585cd19e63c4ef2334e26cd536d5b678d
Gitweb: https://git.kernel.org/tip/f6a1892585cd19e63c4ef2334e26cd536d5b678d
Author: Aleksander Mazur <deweloper@wp.pl>
AuthorDate: Tue, 23 Jan 2024 14:43:00 +01:00
Committer: Borislav Petkov (AMD) <bp@alien8.de>
CommitterDate: Fri, 09 Feb 2024 16:28:19 +01:00
x86/Kconfig: Transmeta Crusoe is CPU family 5, not 6
The kernel built with MCRUSOE is unbootable on Transmeta Crusoe. It shows
the following error message:
This kernel requires an i686 CPU, but only detected an i586 CPU.
Unable to boot - please use a kernel appropriate for your CPU.
Remove MCRUSOE from the condition introduced in commit in Fixes, effectively
changing X86_MINIMUM_CPU_FAMILY back to 5 on that machine, which matches the
CPU family given by CPUID.
[ bp: Massage commit message. ]
Fixes: 25d76ac88821 ("x86/Kconfig: Explicitly enumerate i686-class CPUs in Kconfig")
Signed-off-by: Aleksander Mazur <deweloper@wp.pl>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Acked-by: H. Peter Anvin <hpa@zytor.com>
Cc: <stable@kernel.org>
Link: https://lore.kernel.org/r/20240123134309.1117782-1-deweloper@wp.pl
---
arch/x86/Kconfig.cpu | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index b9224cf..2a7279d 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -379,7 +379,7 @@ config X86_CMOV
config X86_MINIMUM_CPU_FAMILY
int
default "64" if X86_64
- default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCRUSOE || MCORE2 || MK7 || MK8)
+ default "6" if X86_32 && (MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MEFFICEON || MATOM || MCORE2 || MK7 || MK8)
default "5" if X86_32 && X86_CMPXCHG64
default "4"
© 2016 - 2025 Red Hat, Inc.