Discussion:
6.1 fails to boot on a 486
Andrew Daugherity
2017-09-01 06:04:40 UTC
Permalink
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
***@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
***@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
***@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.)
Mike Larkin
2017-09-01 06:57:40 UTC
Permalink
Post by Andrew Daugherity
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
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
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
====
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
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
Mike Larkin
2017-09-01 07:43:34 UTC
Permalink
Post by Mike Larkin
Post by Andrew Daugherity
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
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
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
====
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
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.)
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
Janne Johansson
2017-09-01 08:27:11 UTC
Permalink
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.
Post by Andrew Daugherity
Post by Mike Larkin
Post by Andrew Daugherity
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.
Post by Mike Larkin
Post by Andrew Daugherity
Copyright (c) 1995-2017 OpenBSD. All rights reserved.
https://www.OpenBSD.org
Post by Mike Larkin
Post by Andrew Daugherity
OpenBSD 6.1 (RAMDISK_CD) #289: Sat Apr 1 13:58:25 MDT 2017
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.
Post by Mike Larkin
Post by Andrew Daugherity
Copyright (c) 1995-2016 OpenBSD. All rights reserved.
http://www.OpenBSD.org
Post by Mike Larkin
Post by Andrew Daugherity
OpenBSD 6.0 (RAMDISK_CD) #1864: Tue Jul 26 12:57:09 MDT 2016
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
Post by Mike Larkin
Post by Andrew Daugherity
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
====
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.
Post by Mike Larkin
Post by Andrew Daugherity
Copyright (c) 1995-2017 OpenBSD. All rights reserved.
https://www.OpenBSD.org
Post by Mike Larkin
Post by Andrew Daugherity
OpenBSD 6.1 (GENERIC) #291: Sat Apr 1 13:49:08 MDT 2017
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.)
1.592 (mlarkin 14-Oct-16): cpuid(0x80000000, regs);
1.592 (mlarkin 14-Oct-16): if (regs[0] >=
0x80000006)
cpuid(0x80000006, ci->ci_extcacheinfo);
Post by Mike Larkin
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.
Paul de Weerd
2017-09-01 08:41:53 UTC
Permalink
Building your own kernel (on your fast machine with lots of memory),
stripped of every driver your machine doesn't have, can get you a bit
further on memory constrained machines. This gets you into
unsupported land, but if you want support you're probably best of
spending a nickel and getting a better computer.

I jumped through several hoops to get this going on an ancient machine
(an HP Vectra N2 4/33si) half a year ago and got this:

OpenBSD 6.0-current (REALSMALL) #0: Tue Feb 14 16:20:40 CET 2017
***@i386.alm.weirdnet.nl:/usr/src/sys/arch/i386/compile/REALSMALL
cpu0: Intel 486DX2 ("GenuineIntel" 486-class)
cpu0: FPU,V86
real mem = 16314368 (15MB)
avail mem = 12226560 (11MB)
warning: no entropy supplied by boot loader
mainbus0 at root
bios0 at mainbus0: date 10/21/94
apm0 at bios0: Power Management spec V1.0
apm0: APM get power status: unrecognized device ID (9)
bios0: ROM list: 0xc0000/0x8000
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: ns16550a, 16 byte fifo
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
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
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
wdc0 at isa0 port 0x1f0/8 irq 14
wd0 at wdc0 channel 0 drive 0: <QUANTUM LPS210A>
wd0: 8-sector PIO, CHS, 201MB, 723 cyl, 15 head, 38 sec, 412110 sectors
wd0(wdc0:0:0): using BIOS timings
ep0 at isa0 port 0x300/16: address 00:20:af:56:38:50, aui/bnc (default aui)
ep1 at isa0 port 0x210/16: address 00:20:af:b5:1a:d4, utp/aui/bnc (default utp)
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
softraid0 at root
scsibus0 at softraid0: 256 targets
root on wd0a (29c2d8b7afeebf3a.a) swap on wd0b dump on wd0b


Sadly, the disk was too small (at 200MB) to properly install OpenBSD,
so I trashed the machine. But, as can be seen, this machine did
support CPUID!

Cheers,

Paul 'WEiRD' de Weerd

On Fri, Sep 01, 2017 at 10:27:11AM +0200, Janne Johansson wrote:
| 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 <***@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
| > > > ***@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
| > > > ***@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
| > > > ***@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.
--
++++++++[<++++++++++>-]<+++++++.>+++[<------>-]<.>+++[<+
+++++++++++>-]<.>++[<------------>-]<+.--------------.[-]
http://www.weirdnet.nl/
Andrew Daugherity
2017-09-02 05:53:51 UTC
Permalink
Post by Andrew Daugherity
Post by Andrew Daugherity
====
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.
Post by Andrew Daugherity
Copyright (c) 1995-2017 OpenBSD. All rights reserved.
https://www.OpenBSD.org
Post by Andrew Daugherity
OpenBSD 6.1 (GENERIC) #291: Sat Apr 1 13:49:08 MDT 2017
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.)
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 was looking at that commit last night, and thinking it might be the one
at issue here. My next step was going to be adding a '&& class ==
CPUCLASS_686' to that block [if (vendor == CPUVENDOR_INTEL)] to match the
AMD block above it -- not sure if 686 is the correct restriction there, or
586, or something else like 'cpuid_level >= N' -- but any of those would
probably resolve my issue.

qemu isn't necessarily wrong if it was emulating a later 486 like the DX4
-- apparently those (and the Am5x86, and maybe even the DX2?) did support
CPUID, just not the older 486DX/SX.

And yes, I know 16MB RAM will be an issue. I just built a stripped-down
4.1 kernel (on a faster box, of course) which gained me about 6MB
additional RAM and the ability to actually start X plus a couple xterms (on
GENERIC it was still swapping madly an hour after startx and took about 45
seconds to recover after Ctrl+Alt+Backspace). I doubt that will be
possible on 6.1, even with a small kernel -- besides, I'd have to build
XF86_AGX myself if I wanted anything better than VGA. It's only for
nostalgia reasons and the somewhat unique hardware (and its small size,
meaning it's easily packed into a box o'stuff) that I've hung onto it
anyway.

Thanks for the forthcoming fix!


-Andrew
Mike Larkin
2017-09-03 06:59:40 UTC
Permalink
Post by Andrew Daugherity
Post by Andrew Daugherity
Post by Andrew Daugherity
====
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.
Post by Andrew Daugherity
Copyright (c) 1995-2017 OpenBSD. All rights reserved.
https://www.OpenBSD.org
Post by Andrew Daugherity
OpenBSD 6.1 (GENERIC) #291: Sat Apr 1 13:49:08 MDT 2017
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.)
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 was looking at that commit last night, and thinking it might be the one
at issue here. My next step was going to be adding a '&& class ==
CPUCLASS_686' to that block [if (vendor == CPUVENDOR_INTEL)] to match the
AMD block above it -- not sure if 686 is the correct restriction there, or
586, or something else like 'cpuid_level >= N' -- but any of those would
probably resolve my issue.
qemu isn't necessarily wrong if it was emulating a later 486 like the DX4
-- apparently those (and the Am5x86, and maybe even the DX2?) did support
CPUID, just not the older 486DX/SX.
And yes, I know 16MB RAM will be an issue. I just built a stripped-down
4.1 kernel (on a faster box, of course) which gained me about 6MB
additional RAM and the ability to actually start X plus a couple xterms (on
GENERIC it was still swapping madly an hour after startx and took about 45
seconds to recover after Ctrl+Alt+Backspace). I doubt that will be
possible on 6.1, even with a small kernel -- besides, I'd have to build
XF86_AGX myself if I wanted anything better than VGA. It's only for
nostalgia reasons and the somewhat unique hardware (and its small size,
meaning it's easily packed into a box o'stuff) that I've hung onto it
anyway.
Thanks for the forthcoming fix!
-Andrew
I committed a fix for this, please wait for the next snap and give it
a try and let me know if it is still broken.

-ml

Continue reading on narkive:
Loading...