Two address spaces are provided: memory address space and I/O address space. Depending on the device, registers may appear in one or both of these address spaces. Table 2-4 shows the registers for memory and I/O address spaces in the EISA bus.
Table 2-4 EISA Bus Address Space
EISA Space Name |
Address Size |
Data Transfer Size |
Physical Address Range |
---|---|---|---|
Main Memory |
32 |
32 |
0x0-0xffffffff |
I/O |
-- |
8/16/32 |
0x0-0xffff |
Registers can be mapped in memory address space and used by the driver as normal memory (see "Memory Space Access").
Registers in I/O space are accessed through I/O port numbers using separate kernel routines. See "I/O Space Access" for more information.
Beginning with the Solaris7 operating envionment, the use of hardware configuration files to provide arguments to probe(9E) on x86 platforms is highly discouraged, since probes can lead to system hangs and resets. Exact device configuration information is maintained by the booting system and is passed to the probe(9E) function.
A separate realmode driver may need to be developed for the booting system. See the Realmode Drivers white paper in the Driver Development Site at http://www.sun.com/developers/driver for information on realmode drivers. Hardware configuration files may be needed on some occasions to augment the information provided by the booting system. See driver.conf(4) and eisa(4) for further details.