linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christian Volkmann <haveaniceday@cv-sv.de>
To: Andi Kleen <ak@suse.de>
Cc: Dave Jones <davej@redhat.com>, linux-kernel@vger.kernel.org
Subject: Re: 2.6.22-rc1 does not boot on VIA C3_2 cause of X86_CMPXCHG64 II
Date: Sat, 19 May 2007 13:42:34 +0200	[thread overview]
Message-ID: <464EE2AA.3030607@cv-sv.de> (raw)
In-Reply-To: <200705190753.16570.ak@suse.de>

Andi Kleen wrote:
> Can someone please test if this patch works? 
> 
> This preserves the 6 <= model  <= 9 logic of the C code; this means
> if VIA ever brings out model >= 10 it hopefully sets this bit by default.
> Dave, do you have any information to the contrary?
> 
> -Andi
> 

Hi Andi,

your patch did not work. See the correction below. The mask should contain 1<<1
instead of 1.
Model 10 is now also included.

I add also a patch for setup.S. It does not print the CPUID message in case
the CPUID is wrong, cause %ds was not set proper.

Best regards,

Christian

Index: linux/arch/i386/kernel/verify_cpu.S
===================================================================
--- linux.orig/arch/i386/kernel/verify_cpu.S
+++ linux/arch/i386/kernel/verify_cpu.S
@@ -2,6 +2,7 @@
    This runs in 16bit mode so that the caller can still use the BIOS
    to output errors on the screen */
 #include <asm/cpufeature.h>
+#include <asm/msr.h>

 verify_cpu:
        pushfl                          # Save caller passed flags
@@ -45,6 +46,28 @@
        cmpl    $0x1,%eax
        jb      bad                     # no cpuid 1

+#if REQUIRED_MASK1 & NEED_CMPXCHG64
+       /* Some VIA C3s need magic MSRs to enable CX64. Do this here */
+       cmpl    $0x746e6543,%ebx        # Cent
+       jne     1f
+       cmpl    $0x48727561,%edx        # aurH
+       jne     1f
+       cmpl    $0x736c7561,%ecx        # auls
+       jne     1f
+       movl    $1,%eax                 # check model
+       cpuid
+       shr     $4,%eax
+       andl    $0xf,%eax               # get model
+       cmpl    $6,%eax
+       jb      1f
+       cmpl    $10,%eax                 # newer vias hopefully don't require
+       ja      1f                      # this anymore
+       movl    $MSR_VIA_FCR,%ecx
+       rdmsr
+       orl     $((1<<1)|(1<<7)),%eax   # enable CMPXCHG64 and PGE
+       wrmsr
+1:
+#endif
        movl    $0x1,%eax               # Does the cpu have what it takes
        cpuid


Index: linux/arch/i386/boot/verify_cpu.S
===================================================================
--- linux.orig/arch/i386/boot/setup.S
+++ linux/arch/i386/boot/setup.S
@@ -310,12 +310,15 @@
        call verify_cpu
        testl  %eax,%eax
        jz      cpu_ok
+        # missed before: set ds
+       pushw   %cs                             # CPU too old or CPUID function bits are wrong.
+       popw    %ds                             # die.
        lea     cpu_panic_mess,%si
        call    prtstr
 1:     jmp     1b

 cpu_panic_mess:
-       .asciz  "PANIC: CPU too old for this kernel."
+        .asciz  "PANIC: CPU too old for this kernel or CPUID function bits are wrong."

 #include "../kernel/verify_cpu.S"


  parent reply	other threads:[~2007-05-19 11:43 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-17  0:09 2.6.22-rc1 does not boot on VIA C3_2 cause of X86_CMPXCHG64 Christian
2007-05-17  0:42 ` Dave Jones
2007-05-17  1:15   ` H. Peter Anvin
2007-05-17  1:55     ` H. Peter Anvin
2007-05-17  1:39   ` Christian
2007-05-17 21:28     ` Christian Volkmann
2007-05-17 21:47       ` Dave Jones
2007-05-17 21:59         ` Christian Volkmann
2007-05-31  5:22         ` [RFC: 2.6 patch] i386: remove support for the Rise CPU Adrian Bunk
2007-05-31 13:31           ` Dave Jones
2007-05-31 17:37             ` Christian Volkmann
2007-05-31 17:48               ` Dave Jones
2007-05-19 10:22       ` 2.6.22-rc1 does not boot on VIA C3_2 cause of X86_CMPXCHG64 Hans de Bruin
2007-05-17  8:56   ` Alan Cox
2007-05-17 11:51   ` Andi Kleen
2007-05-17 15:02     ` Dave Jones
2007-05-17 22:14     ` H. Peter Anvin
2007-05-19  5:53   ` 2.6.22-rc1 does not boot on VIA C3_2 cause of X86_CMPXCHG64 II Andi Kleen
2007-05-19  6:02     ` Dave Jones
2007-05-19 11:47       ` Andi Kleen
2007-05-19 17:23         ` Dave Jones
2007-05-19  8:22     ` Claas Langbehn
2007-05-19 18:10       ` H. Peter Anvin
2007-05-19 11:42     ` Christian Volkmann [this message]
2007-05-19 11:54       ` Andi Kleen
2007-05-23 21:50         ` H. Peter Anvin
2007-05-19 17:26       ` Claas Langbehn
2007-05-19 20:22         ` Via C3: other flags possible ? Christian Volkmann
2007-05-19 22:36           ` Christian Volkmann
2007-05-19 22:52             ` Via C3/C7: " Simon Arlott
2007-05-20  8:19               ` Claas Langbehn
2007-05-20 13:14                 ` Christian Volkmann
2007-05-20 12:59             ` Via C3: " Andi Kleen
2007-05-19 17:54       ` 2.6.22-rc1 does not boot on VIA C3_2 cause of X86_CMPXCHG64 II Claas Langbehn
2007-05-17  1:10 ` 2.6.22-rc1 does not boot on VIA C3_2 cause of X86_CMPXCHG64 Linus Torvalds
2007-05-17  1:25   ` Christian
2007-05-17  2:21     ` Linus Torvalds
2007-05-17  3:05       ` H. Peter Anvin
2007-05-17  3:16         ` Linus Torvalds
2007-05-17  4:51           ` H. Peter Anvin
2007-05-17  6:18             ` Dave Jones
2007-05-17  6:31               ` H. Peter Anvin
2007-05-17  6:17           ` Dave Jones
2007-05-17  9:22 ` Hans de Bruin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=464EE2AA.3030607@cv-sv.de \
    --to=haveaniceday@cv-sv.de \
    --cc=ak@suse.de \
    --cc=davej@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).