Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Jun 1995 10:14:02 -0700 (PDT)
From:      "Rodney W. Grimes" <rgrimes@gndrsh.aac.dev.com>
To:        bde@zeta.org.au (Bruce Evans)
Cc:        bde@zeta.org.au, hackers@freebsd.org, wpaul@skynet.ctr.columbia.edu
Subject:   Re: 2.05R reboot hangs
Message-ID:  <199506271714.KAA06821@gndrsh.aac.dev.com>
In-Reply-To: <199506271030.UAA04080@godzilla.zeta.org.au> from "Bruce Evans" at Jun 27, 95 08:30:05 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> >> >jmp 0xffff:0xfff0 is deadly on some machines unless a hard reset has
> >> >just occured.  Many BIOS writers only expected to start executing
> >> >from that location on a hard reset and do not do full CPU chip
> >> >initialization.
> >> 
> >> I think at least [3-4]86's can be initialized sufficiently in software.
> 
> >There is a world of difference between ``can be'' and ``are'' in the
> >world of PC bioses and the folks who write them!!
> 
> You initialize it before jumping to the reset vector.

One that is very very hard to get right for most [3-4]86's is the
CPUID that is stored id DX:AX on power up reset since that is the
only way to get this value.

> >> Page 0 is free and normally mapped to 0xf0000000.  You just have to
> >> map it to 0 too.
> 
> >Ewwwweeeee... page 0, the BIOS data page.  You want me to try and
> >call the BIOS from the BIOS data area??  Are you SICK :-) :-) :-)
> >Bong... try again...  oh.. wait, doesnt the BIOS data area end
> >at 0x500?  So I could do what I wanted in say 0x500->0x1000 right??
> 
> The whole page is garbage after cold boots.  It might be safer to
> leave 0x400-0x4ff alone in case the BIOS is broken.  The interrupt
> vectors will be corrupted after a dosboot to FreeBSD so you have to
> rely on the BIOS reinitializing them.

I don't want to call cold boot, I guess that was not clear from
above.  Also jumping to 0xFFFF:0000 (note your address above is
not the reset vector the value here is) is not a documented interface
to the BIOS.  Calling cold boot is about as reliable as triple faulting
or hitting the keyboard reset.  The one and only proper way to
make this work reliable on all machines as far as I can tell would
be a good old int 0x19, and that means I had better leave the BDA's
intact.

I don't want to go do this only to use another interface that is just
us unofficial as what we have now.

-- 
Rod Grimes                                      rgrimes@gndrsh.aac.dev.com
Accurate Automation Company                 Reliable computers for FreeBSD



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199506271714.KAA06821>