Next | Prev | Up | Top | Contents | Index

Bus Virtual Addresses

Figure 1-3 is too simple for some devices that are attached through a bus adapter. A bus adapter connects a bus of a different type to the system bus, as shown in Figure 1-4.

Figure 1-4 : Device Access Through a Bus Adapter For example, the VME adapter connects a VME bus to the system bus. Multiple VME devices can be plugged into the VME bus, and can use the VME bus to read and write. The VME bus adapter translates the VME bus protocol into the system bus protocol. (For details on the VME bus adapter, see Chapter 13, "VME Device Attachment.")

Another example of a bus adapter is the EISA bus adapter that connects EISA devices to a GIO bus in an Indigo2 workstation. (For details, see Chapter 17, "EISA Device Drivers.")

One task of a bus adapter is to translate between the physical addresses used on the system bus, and the addressing scheme used within the proprietary bus. Translation is most visible with VME bus devices. The VME bus protocol defines several different address space conventions: A16, 16-bit addresses; A32, 32-bit addresses; and so on. A device on the VME bus uses addresses of this form. But VME addresses have no direct relationship to the physical addresses used on the system bus.

The bus adapter translates the addresses used on the proprietary bus to corresponding addresses on the system bus. Considering Figure 1-4, the operation of a DMA device is as follows:

  1. The device places a bus virtual address and data on the proprietary (EISA or VME) bus.

  2. The bus adapter translates the address to a meaningful physical address, and places that address and the data on the system bus.

  3. The memory modules stores the data.
The translation of bus virtual to physical addresses is fixed in some systems. For example, the device in EISA slot 1 on an Indigo2 is always translated to physical addresses 0x0001 0000 through 0x0001 FFFF.

In most systems, however, the bus translation is programmed by the IRIX kernel to suit the devices that are configured into the system. For example, the VME bus adapter in a Challenge or Onyx system can be programmed to place 15 different "windows" of VME address space at different locations in physical address space. There is no fixed relation between a given VME bus address and a physical address.


Next | Prev | Up | Top | Contents | Index