I was mostly right, but the details are slightly different from
what I said. From the PCI BIOS Specification, version 2.1:
"The PCI BIOS routines (for both 16-bit and 32-bit callers) must be
invoked with appropriate privlidge so that interrupts can be enabled/
disabled and the routines can access IO space. Implementors of the PCI
BIOS must assume that CS is execute-only and DS is read-only"
"The 32-bit PCI BIOS functions must be accessed using CALL FAR. The
CS and DS register descriptors must be setup to encompass the physical
addresses specified by the Base and Length parameters returned by the
BIOS32 Service Directory. The CS and DS descriptors must have the same
base. The calling environment must allow access to IO space and provide
at least 1K of stack space."
I didn't have any problems using BIOS32 in user-mode, at least on the
machines I tried. It was intentionally made easy to use.
Kevin T. Van Maren
ps: You get the BIOS32 Service Directory by searching for it in
the range 0xE0000 to 0xFFFFF (physical). "$PCI" is the PCI BIOS interface.
Received on Sat Jun 27 04:56:57 1998
This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:43 PDT