[Return to Library] [Contents] [Previous Chapter] [Next Section] [Next Chapter] [Index] [Help]


2    EISA/ISA Bus Architectures

The Extended Industry Standard Architecture (EISA) bus is an industry-standard high-performance bus that is a superset of the 8- and 16-bit Industry Standard Architecture (ISA). This chapter presents an overview of the EISA/ISA bus hardware and software architectures. Specifically, the chapter discusses the following:

For detailed information on EISA bus architectures, see the Extended Industry Standard Architecture Revision 3.10.


[Return to Library] [Contents] [Previous Chapter] [Next Section] [Next Chapter] [Index] [Help]


2.1    ISA Devices

Digital supports ISA devices on either the EISA or ISA bus. A system that contains an EISA bus uses the EISA bus-specific support code and EISA Configuration Utility (ECU) data to configure both EISA and ISA devices on the EISA bus. A system that contains an ISA bus uses the ISA bus-specific support code and configuration data stored by the system console's isacfg utility command for ISA devices. A system that contains an ISA bus and no EISA bus cannot support EISA devices.

You can write a device driver that supports an ISA device that operates on the EISA bus, the ISA bus, or both buses. To support an ISA device on the EISA bus, you must:

To support the same device on the ISA bus, you must:

Typical ISA bus devices have selectable settings for various characteristics. In many cases, users select these settings through switch paks or jumpers on the module. Typically, there is no software mechanism provided for users to obtain or change these settings. A system manager must be careful to set up ISA devices such that no resource conflicts arise. Improper setup of ISA resource usage can result in a nonfunctional system.

Digital Alpha systems that use the ISA bus provide a console command utility called isacfg. This utility allows the user to enter ISA bus resource information into the system. The console firmware stores this information for later retrieval by Digital UNIX. The types of resources that users can enter for ISA devices are:

See the hardware or firmware documentation for information on how to use the isacfg console command utility.


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Next Chapter] [Index] [Help]


2.2    ISA Bus Support Code

The ISA bus support code uses the same data structures that the EISA bus support code uses. The /usr/sys/include/io/dec/eisa/eisa.h file defines these data strutures. Section A.3 provides reference pages that describe these data structures. The ISA bus support code does not use, or uses differently from the EISA bus support code, some of the members of these data structures. These differences are transparent to the device driver.

The following list discussess the only differences that you need to be aware of. These differences concern the eisa_option data structure defined in the /usr/sys/data/isa_option_data.c file, specifically with the board_id and function members.


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Next Chapter] [Index] [Help]


2.3    ISA Device Slots

Both the EISA and ISA buses can provide expansion slots that accept option cards. The EISA bus can accept both EISA and ISA option cards (devices). The ISA bus can accept only ISA option cards. On the EISA bus, a slot has an address range associated with it; the ISA bus does not. Devices on the ISA bus have a unique slot number, but the addresses used to communicate with the device are not affected by it.


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Next Chapter] [Index] [Help]


2.4    EISA/ISA Bus Hardware Architecture

The EISA bus is a 32-bit address and 32-bit data bus with support for 8-, 16-, 24-, and 32-bit bus cycles. (A bus cycle refers to the action that occurs on the bus to transfer the data.) Support for different bus cycle sizes provides backward compatibility with the ISA bus options. Computer systems that adhere to the ISA use the ISA bus. The ISA bus supplies the signals for performing the following basic functions of the computer system:

There are two types of ISA options: one type supports only 8-bit bus cycles (PC and XT) and one type supports 8- and 16-bit bus cycles (AT).

The EISA bus also supports DMA and bus mastering. Although the EISA bus supports a maximum of 15 slots, most computer systems support a maximum of eight. The rest of this section describes the following EISA/ISA bus hardware architecture topics relevant to the device driver writer:


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Next Chapter] [Index] [Help]


2.4.1    Address Spaces

The EISA/ISA bus defines two address spaces:


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Next Chapter] [Index] [Help]


2.4.2    Data Sizes

The EISA bus supports 8-bit (D8), 16-bit (D16), 24-bit (D24), and 32-bit (D32) data sizes.

The ISA bus supports 8-bit (D8) and 16-bit (D16) data sizes.


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Section] [Next Chapter] [Index] [Help]


2.4.3    Byte Ordering

While EISA/ISA buses do not specify any particular byte ordering, most devices use the Intel model, which is little endian. The Digital model is also little endian.


[Return to Library] [Contents] [Previous Chapter] [Previous Section] [Next Chapter] [Index] [Help]


2.5    EISA Bus Software Architecture

The EISA bus supports a 4-gigabyte (GB) address space and a 64-kilobyte (KB) I/O space.