On Mon, Nov 03, 2025 at 02:59:11PM +0100, Peter Jung wrote:
CachyOS is compiling the packages with -march=znver5 and the GCC compiler currently does pass RDSEED.
Yah, the compiler should not *pass* RDSEED, but issue code which checks whether RDSEED is there. Otherwise what's the point of CPUID flags?!
I guess this should make those boxes boot but damn, that ain't right:
--- diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 8e36964a7721..810be49dad31 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -1044,8 +1044,7 @@ static void init_amd_zen5(struct cpuinfo_x86 *c) { if (!x86_match_min_microcode_rev(zen5_rdseed_microcode)) { clear_cpu_cap(c, X86_FEATURE_RDSEED); - msr_clear_bit(MSR_AMD64_CPUID_FN_7, 18); - pr_emerg_once("RDSEED32 is broken. Disabling the corresponding CPUID bit.\n"); + WARN_ONCE(1, "RDSEED32 is broken. Disabling the corresponding CPUID bit.\n"); } }
This patch results into that also Client CPUs (Strix Point, Granite Ridge), can not execute this. There has been a microcode fix deployed in linux-firmware for Turin, but no other microcode changes seen yet.
I think it would be possible to exclude clients or providing a fix for this.
Client fixes are getting ready but I can't tell you when they'll be there.