GIO(4)

NAME
gio - SGI's Graphics I/O (GIO) bus (an early PCI-like bus)

SYNOPSIS
gio0 at imc0
gio0 at pic0

DESCRIPTION
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.

SEE ALSO
sgimips/giopci(4), sgimips/grtwo(4), sgimips/hpc(4), sgimips/imc(4), sgimips/light(4), sgimips/newport(4), sgimips/pic(4)

HISTORY
The gio driver first appeared in NetBSD 1.5.

CAVEATS
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.

BUGS
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.