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);