Friday, September 01, 2017

Re: 6.1 fails to boot on a 486

A few quick tests on 6.1-i386 in a VM showed that 20M seems to be minimum
now, at 17-19M disk setup would segfault late in the installation and at
16M em0 couldn't get TX stuff allocated, so that failed even earlier.


2017-09-01 9:43 GMT+02:00 Mike Larkin <mlarkin@azathoth.net>:

> On Thu, Aug 31, 2017 at 11:57:40PM -0700, Mike Larkin wrote:
> > On Fri, Sep 01, 2017 at 01:04:40AM -0500, Andrew Daugherity wrote:
> > > I recently dug out of the closet my old IBM PS/2E, which had served as
> > > my firewall box from 2000ish-06, and was in fact the very first
> > > machine I ever installed OpenBSD on, to see if it still worked
> > > properly. It did (after changing the CMOS battery), but booted into
> > > OpenBSD 4.1... yeah, just a *bit* out of date there. The machine may
> > > not be of great use nowadays (I'd retired it when it couldn't keep up
> > > with my internet connection), but even as a retro-computing
> > > playground, running a 10-year-old/20-releases-ago version of OpenBSD
> > > is of no benefit. Let's rectify that!
> > >
> > > ====
> > > >> OpenBSD/i386 BOOT 3.31
> > > boot> hd0a:/bsd61.rd
> > > cannot open hd0a:/etc/random.seed: No such file or directory
> > > booting hd0a:/bsd61.rd: 3208120+1332224+3342348+0+446464
> > > [72+288736+277711]=0x87e694
> > > entry point at 0x2000d4
> > >
> > > Copyright (c) 1982, 1986, 1989, 1991, 1993
> > > The Regents of the University of California. All rights
> reserved.
> > > Copyright (c) 1995-2017 OpenBSD. All rights reserved.
> https://www.OpenBSD.org
> > >
> > > OpenBSD 6.1 (RAMDISK_CD) #289: Sat Apr 1 13:58:25 MDT 2017
> > > deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/RAMDISK_CD
> > > fatal privileged instruction fault (0) in supervisor mode
> > > trap type 0 code 0 eip d03b1f7c cs d09f0008 eflags 10046 cr2 0 cpl 0
> > > panic: trap type 0, code=0, pc=d03b1f7c
> > >
> > > The operating system has halted.
> > > Please press any key to reboot.
> > > ====
> > >
> > > Well, that's not good -- I didn't expect 6.1 to run particularly well
> > > on this, but I figured it would at least boot... how about 6.0?
> > >
> > >
> > > ====
> > > booting hd0a:/bsd60.rd: 3211188+1318224+2061312+0+442368
> > > [72+298576+282894]=0x744144
> > > entry point at 0x2000d4
> > >
> > > Copyright (c) 1982, 1986, 1989, 1991, 1993
> > > The Regents of the University of California. All rights
> reserved.
> > > Copyright (c) 1995-2016 OpenBSD. All rights reserved.
> http://www.OpenBSD.org
> > >
> > > OpenBSD 6.0 (RAMDISK_CD) #1864: Tue Jul 26 12:57:09 MDT 2016
> > > deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/RAMDISK_CD
> > > cpu0: Intel 486DX (486-class)
> > > real mem = 16183296 (15MB)
> > > avail mem = 8122368 (7MB)
> > > mainbus0 at root
> > > bios0 at mainbus0: date 03/31/93
> > > pcibios at bios0 function 0x1a not configured
> > > bios0: ROM list: 0xc8000/0x1000 0xc9000/0x1000 0xca000/0x2000
> > > cpu0 at mainbus0: (uniprocessor)
> > > isa0 at mainbus0
> > > isadma0 at isa0
> > > fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
> > > fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
> > > com0 at isa0 port 0x3f8/8 irq 4: ns16450, no fifo
> > > com0: console
> > > pckbc0 at isa0 port 0x60/5 irq 1 irq 12
> > > pckbd0 at pckbc0 (kbd slot)
> > > wskbd0 at pckbd0: console keyboard
> > > vga0 at isa0 port 0x3b0/48 iomem 0xa0000/131072
> > > wsdisplay0 at vga0 mux 1: console (80x25, vt100 emulation), using
> wskbd0
> > > wdc0 at isa0 port 0x1f0/8 irq 14
> > > wd0 at wdc0 channel 0 drive 0: <IBM-DARA-206000>
> > > wd0: 16-sector PIO, LBA, 5729MB, 11733120 sectors
> > > wd0(wdc0:0:0): using BIOS timings
> > > npx0 at isa0 port 0xf0/16 irq 13
> > > pcic0 at isa0 port 0x3e0/2 iomem 0xd0000/16384
> > > pcic0 controller 0: <Intel 82365SL rev 1> has sockets A and B
> > > pcic0 controller 1: <Intel 82365SL rev 1> has sockets A and B
> > > pcmcia0 at pcic0 controller 0 socket 0
> > > pcmcia1 at pcic0 controller 0 socket 1
> > > pcmcia2 at pcic0 controller 1 socket 0
> > > ep1 at pcmcia2 function 0 "3Com, 3C574-TX Fast EtherLink PC Card, A"
> > > port 0x340/32, irq 3: address 00:10:4b:5f:20:c0
> > > tqphy0 at ep1 phy 0: 78Q2120 10/100 PHY, rev. 3
> > > pcmcia3 at pcic0 controller 1 socket 1
> > > ep2 at pcmcia3 function 0 "3Com, 3C574-TX Fast EtherLink PC Card, A"
> > > port 0x300/32, irq 9: address 00:60:08:93:80:48
> > > tqphy1 at ep2 phy 0: 78Q2120 10/100 PHY, rev. 3
> > > pcic0: irq 5, polling enabled
> > > softraid0 at root
> > > scsibus0 at softraid0: 256 targets
> > > root on rd0a swap on rd0b dump on rd0b
> > > erase ^?, werase ^W, kill ^U, intr ^C, status ^T
> > >
> > > Welcome to the OpenBSD/i386 6.0 installation program.
> > > (I)nstall, (U)pgrade, (A)utoinstall or (S)hell?
> > > ====
> > >
> > > Seems fairly normal. Did I miss something about 6.1 dropping 486
> > > support? [/me checks i386.html... still says 486 or better!]
> > >
> > > Turns out that GENERIC can give us a little more useful information
> > > than RAMDISK_CD, as it drops into ddb:
> > >
> > >
> > > ====
> > > boot> hd0a:/bsd.61
> > > cannot open hd0a:/etc/random.seed: No such file or directory
> > > booting hd0a:/bsd.61: 7678420+2057220+174556+0+1097728
> > > [72+501520+501951]=0xb761b4
> > > entry point at 0x2000d4
> > >
> > > [ using 1003956 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-2017 OpenBSD. All rights reserved.
> https://www.OpenBSD.org
> > >
> > > OpenBSD 6.1 (GENERIC) #291: Sat Apr 1 13:49:08 MDT 2017
> > > deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
> > > kernel: privileged instruction fault trap, code=0
> > > Stopped at cpuid+0x12: cpuid
> > > ddb> trace
> > > cpuid(80000000,d0d78ef0,d0d78ed8,0,7d) at cpuid+0x12
> > > identifycpu(d0c7d8a0,d09fbb83,10,0,ffffffff) at identifycpu+0x80d
> > > cpu_startup(d09cefed,d09d1680,16c,8,0) at cpu_startup+0xb9
> > > main(d02004c6,d02004ce,0,0,0) at main+0x6a
> > > ddb> ps
> > > PID TID PPID UID S FLAGS WAIT COMMAND
> > > ddb>
> > > ====
> > >
> > > Looks like it's trying to run the CPUID instruction, which this
> > > processor probably doesn't support. Maybe this was an accidental
> > > breakage, rather than intentionally dropping 486es? Time to examine
> > > the CVS logs, I guess. (A -current snapshot also fails in the same
> > > manner, so something happened between 6.0 & 6.1.)
> > >
> >
> > Looks like I broke this about a year ago:
> >
> > 1.592 (mlarkin 14-Oct-16):
> > 1.592 (mlarkin 14-Oct-16): cpuid(0x80000000, regs);
> > 1.592 (mlarkin 14-Oct-16): if (regs[0] >=
> 0x80000006)
> > 1.592 (mlarkin 14-Oct-16):
> cpuid(0x80000006, ci->ci_extcacheinfo);
> >
> > I did test this on 486, but apparently qemu's emulated 486 isn't really a
> > proper 486. I'll see what I can do to solve it for you.
> >
> > Thanks for reporting it.
> >
> > -ml
> >
>
> I think I have a fix for this but I just want to set expectations
> properly. I don't think it's going to work even with the fix as I don't
> believe
> we can boot in 16MB anymore.
>
> -ml
>
>


--
May the most significant bit of your life be positive.

No comments:

Post a Comment