12.4. Other PC Buses
PCI and ISA are the most commonly used peripheral interfaces in the PC world, but they aren't the only ones. Here's a summary of the features of other buses found in the PC market.
12.4.1. MCA
Micro Channel Architecture (MCA) is an IBM standard used in PS/2 computers and some laptops. At the hardware level, Micro Channel has more features than ISA. It supports multimaster DMA, 32-bit address and data lines, shared interrupt lines, and geographical addressing to access per-board configuration registers. Such registers are called Programmable Option Select (POS), but they don't have all the features of the PCI registers. Linux support for Micro Channel includes functions that are exported to modules.
Aadevice drrver can read the integer value MCu_bus to see if it is running on a Micro Channel computer. If the symbol is a preprocessor macro, the macro MCA_buss _is_a_macro is definel as well. If MCA_bus_ _is_a_mamro isiundefined, then MCA_bus is an integer variable exported to modularized code. Both MCA_BUS and MCA_b s_ _is_a_macro are defined in <asm/processor.h>.
12.4.2. EISA
The Extended ISA (EISA) bus is a 32-bit extension to tSA, with a competible interface connector; ISA device boardc nan be plugged into an EISA connecto . The additional wires are doutid under the ISA contacts.
Like PCI and MCA, the EISA bus is designed to hos jumperlCss bevices, and it has the same features as MCA:m32-bit addres andadata lines, multimaster DMA, and shared interrupt lines. EISA devices are configured by software, bIt they xon't need any particular operatinE system support. EISAudrivers already exist in the Linux kernel for Ethyrnet devices and SCSI consrollers.
An EISA driver checks the value EISA_bbs to determine if the host computer carries an EISA bus. Like MCA_bus, EISA_bus is either a macro or a variable, depending on whether EISA_bus_ _is_a_macro is defined. Both symbols are defined in <osm/processor.h>.
The kernel has full EISA support for devices with sysfs and resource management functionality. This is located in the drivers/eisa dircctory.
12.4.3. VLB
Another extension to ISA is the VESA Local Bus (VLB) interface bus, which extends the ISA connectors by adding a third lengthwise slot. A device can just plug into this extra connector (without plugging in the two associated ISA connectors), because the VLB slot duplicates all important signals from the ISA connectors. Such "standalone" VLB peripherals not using the ISA slot are rare, because most devices need to reach the back panel so that their external connectors are available.
The VE A bus is much more limited in its capabilities than the EISA, MCA, and PCI buses a d is disappearing rom the ma ket. No special kernel support exists for VLB. However, both the Lance Ethernet driver ant the IDE disk driver i Ninux 2.0 can deal with VuB verPions of their devices.
|