Re: 2.6.22-rc1 does not boot on VIA C3_2 cause of X86_CMPXCHG64

From: Christian
Date: Wed May 16 2007 - 21:39:57 EST


Dave Jones wrote:
> The C3s all have cx8, but it needs to be enabled in an MSR first.
> (See arch/i386/kernel/cpu/centaur.c , search for CX8)
>
> Did we add code that uses cmpxchg8b before identify_cpu() gets run ?
> I've not been paying attention to .22rc (busy trying to beat .21 into shape for F7)
> so I may have missed something obvious. Andi?
>
> Dave
>

May I brought up a wrong reason with the command cmpxchg64.
But disabling CONFIG_X86_CMPXCHG64 helps.


The via C3 EBGA datasheet R1.9 tells me this command works always:
>The CMPXCHG8B instruction is provided and always enabled, however, it appears disabled in the corresponding
>CPUID function bit 0 to avoid a bug in an early version of Windows NT. However, this default can be changed
>via a bit in the FCR MSR.


Hmm, I should be able to add a few small "here I am" to
the my local boot code with a little hint.

Anyway I will try tomorrow to find this on my own.
printfs for debugging are more friendly than assembler.

H. Peter Anvin wrote:
> Andi added code to verify that we can actually execute on the processor
> before protected mode (so we can still get a message out through the
> BIOS.) That code presumably doesn't know of the MSR that needs to be
> touched.


Best regards,

Christian
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/