Writing Device Drivers

Memory and I/O Space

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-5 MCA Address Space

MCA Space 

Name 

Address 

Size 

Data Transfer 

Size 

Physical Address 

Range 

Main Memory 

32 

32 

0x0-0xffffffff 

I/O 

-- 

8/16/32 

0x0-0xfff 

Registers can be mapped in memory address space and used by the driver as normal memory (see "Device Memory Mapping").

Registers in I/O space are accessed through I/O port numbers using separate kernel routines. See "I/O Space Access") for more information.