gio
—
SGI's Graphics I/O (GIO) bus (an early PCI-like bus)
gio0 at imc0
gio0 at pic0
The gio
bus is a bus for connecting high-speed
peripherals to the main memory and CPU. The devices themselves are typically
(but not necessarily) connected to the
sgimips/hpc(4)
peripheral controller, and memory and CPU are accessed through the
sgimips/imc(4) (Indy
Memory Controller) or
sgimips/pic(4)
(Processor Interface Controller). The gio
bus is found
on the Personal Iris 4D/3x, Indigo, Indy, Challenge S, Challenge M, and
Indigo2 machines and exists in three incarnations: GIO32, GIO32-bis, and
GIO64.
The gio
driver first appeared in NetBSD
1.5.
Challenge S systems may use only one gio
DMA-capable
expansion card, despite having two slots. Cards based on the
sgimips/hpc(4)
controller, such as the GIO32 scsi and E++ Ethernet adapters, must be placed
in slot 1 (closest to the side of the case). All other cards must be placed in
slot 0 (adjacent to the memory banks).
Indigo2 and Challenge M systems contain either three or four GIO64
connectors, depending on the model. However, in both cases only two
electrically distinct slots are present. Therefore, distinct expansion cards
may not share physical connectors associated with the same slot. Refer to
the PCB stencils to determine the association between physical connectors
and slots.
Systems employing the
sgimips/imc(4) may
experience spurious SysAD bus parity errors when using expansion cards, which
do not drive all data lines during a CPU PIO read. The only workaround is to
disable SysAD parity checking when using such cards.