> On Thu, Jun 25, 1998 at 11:33:21PM -0700, Jeremy Fitzhardinge wrote:
> > Yeah, I was forced to stop working on that approach because it broke completely
> > when I changed motherboards/bioses. The BIOS32 mechanism which is supposed to
> > allow a 32-bit kernel make use of BIOS code is flawed, because there's no way
> > of telling what memory it wants access to, so you can't do the appropriate
> > mmaps. There's also the secondary problem that you can't identity map all
> > parts of the physical address space. I also needed to change the mmap()
> > syscall itself to allow the use of MAP_FIXED and MAP_PHYS together, but I
> > haven't looked at recent kernels to see if this is still the case.
> > I suspect that using direct IO to the PCI chipset is more likely to work in the
> > VSTa environment.
>
> What current systems actually use BIOS32 to do this anyhow? I am under the
> impression that this is usually done by accessing the chipset directly
> always.
Linux does :-) FreeBSD and NetBSD program the chipset directly.
I have used the BIOS32 interface in usermode before. I can check the
BIOS32 specification later, but I'm fairly certain that you only
have to map the 128k BIOS region, and provide a writable stack.
There are two `standard' chipset interfaces, and of course, non
of this is portable to other PCI platforms (Alpha, Sparc, etc),
as this section of the PCI spec is the "x86-specific" part.
Also, the BIOS does not have to be mapped at virt--phys; you can map the
128k region anywhere. [But I won't claim that there are no broken
BIOSes out there.]
Kevin
Received on Sat Jun 27 03:04:12 1998
This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:43 PDT