All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.