On Wed, Aug 16, 2023 at 08:14:17AM +0200, Paul de Weerd wrote:
> I still have a bunch of old ALIX machines (with ancient AMD Geode
> CPUs).  They have recently been broken, resulting in:
> 
> Using drive 0, partition 3.
> Loading......
> probing: pc0 com0 com1 pci mem[640K 255M a20=on] 
> disk: hd0+
> >> OpenBSD/i386 BOOT 3.65
> switching console to com0
> >> OpenBSD/i386 BOOT 3.65
> boot> 
> NOTE: random seed is being reused.
> booting hd0a:/bsd: 10631699+2581508+208904+0+1142784 
> [741328+107+609984+660770]=0xfd165c
> entry point at 0x201000
> 
> [ using 2012764 bytes of bsd ELF symbol table ]
> Copyright (c) 1982, 1986, 1989, 1991, 1993
>         The Regents of the University of California.  All rights reserved.
> Copyright (c) 1995-2023 OpenBSD. All rights reserved.  https://www.OpenBSD.org
> 
> OpenBSD 7.3-current (GENERIC) #820: Wed Aug  9 09:06:43 MDT 2023
>     dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
> real mem  = 267931648 (255MB)
> avail mem = 245829632 (234MB)
> random: good seed from bootblocks
> mpath0 at root
> scsibus0 at mpath0: 256 targets
> mainbus0 at root
> bios0 at mainbus0: date 01/15/14, BIOS32 rev. 0 @ 0xfd0e4
> pcibios0 at bios0: rev 2.1 @ 0xf0000/0x10000
> pcibios0: pcibios_get_intr_routing - function not supported
> pcibios0: PCI IRQ Routing information unavailable.
> pcibios0: PCI bus #0 is the last bus
> bios0: ROM list: 0xe0000/0xa800
> cpu0 at mainbus0: (uniprocessor)
> cpu0: Geode(TM) Integrated Processor by AMD PCS ("AuthenticAMD" 586-class) 
> 499 MHz, 05-0a-02kernel: protection fault trap, code=0
> Stopped at      identifycpu+0x75b:      rdmsr
> ddb> trace
> identifycpu(d0e9dff8) at identifycpu+0x75b
> cpu_attach(d1ab5180,d1ab5200,d11d4ea4) at cpu_attach+0x127
> config_attach(d1ab5180,d0eae388,d11d4ea4,d08f8240) at config_attach+0x19a
> config_found_sm(d1ab5180,d11d4ea4,d08f8240,0) at config_found_sm+0x29
> mainbus_attach(0,d1ab5180,0) at mainbus_attach+0x112
> config_attach(0,d0eabd28,0,0) at config_attach+0x19a
> config_rootfound(d0ca30ef,0) at config_rootfound+0xaf
> cpu_configure(e5497e72,11d2000,11e1000,11d5000,0) at cpu_configure+0x24
> main(0,0,0,0,0) at main+0x31b
> ddb> 
> 
> The bsd.rd kernel also fails to work:
> 
> cpu0: Geode(TM) Integrated Processor by AMD PCS ("AuthenticAMD" 586-class) 
> 499 MHz, 05-0a-02fatal protection fault (4) in supervisor mode
> trap type 4 code 0 eip d03af033 cs 8 eflags 10046 cr2 0 cpl 0
> panic: trap type 4, code=0, pc=d03af033
> 
> Unfortunately, I can't tell what snapshot I was running before I
> upgraded, but it was at least a few months old.  I'll PXE boot a 7.3
> bsd.rd later to rummage around the filesystem.

I'm not sure when AMD added the MSR.
family 0fh is Athlon 64, which has microcode updates.

Index: sys/arch/i386/i386/machdep.c
===================================================================
RCS file: /cvs/src/sys/arch/i386/i386/machdep.c,v
retrieving revision 1.666
diff -u -p -r1.666 machdep.c
--- sys/arch/i386/i386/machdep.c        9 Aug 2023 00:01:44 -0000       1.666
+++ sys/arch/i386/i386/machdep.c        16 Aug 2023 06:26:24 -0000
@@ -1863,7 +1863,8 @@ identifycpu(struct cpu_info *ci)
                uint64_t level = 0;
                uint32_t dummy;
 
-               if (strcmp(cpu_vendor, "AuthenticAMD") == 0) {
+               if (strcmp(cpu_vendor, "AuthenticAMD") == 0 &&
+                   ci->ci_family >= 0x0f) {
                        level = rdmsr(MSR_PATCH_LEVEL);
                } else if (strcmp(cpu_vendor, "GenuineIntel") == 0) {
                        wrmsr(MSR_BIOS_SIGN, 0);

Reply via email to