Writing Device Drivers

ISA Bus 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-3 shows the registers for memory and I/O address spaces in the ISA bus.

Table 2-3 ISA Bus Address Space

ISA Space 

Name 

Address 

Size 

Data Transfer 

Size 

Physical Address 

Range 

Main memory 

24 

16 

0x0-0xffffff 

I/O 

-- 

8/16 

0x0-0xfff 

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.