On Sat, Sep 02, 2017 at 12:53:51AM -0500, Andrew Daugherity wrote:
> On Fri, Sep 1, 2017 at 1:57 AM, Mike Larkin <mlar...@azathoth.net> wrote:
> 
> > On Fri, Sep 01, 2017 at 01:04:40AM -0500, Andrew Daugherity wrote:
> > > ====
> > > 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
> > >     dera...@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 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

Reply via email to