NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | ATTRIBUTES | SEE ALSO
drv/src/isa/vt82c586/vt82c586.h - VT82C586 hardware related constants drv/src/isa/vt82c586/vt82c586.c - driver code drv/src/isa/vt82c586/vt82c586PROP.h - driver specific properties
DRV
The vt82c586 pci-to-isa bridge driver implements:
The common bus driver interface
The isa bus driver interface
The driver uses the pci bus driver interface provided by a parent pci bus driver. Thus, the driver may be applied to any bus driver implementing the pci bus interface.
The vt82c586 driver does not provide the drv_probe routine. In other words, the vt82c586 driver does not enumerate the pci bus, nor does it detect a vt82c586 device or create an associated device node. When the vt82c586 driver is used, associated device nodes should be created either statically by a boot program or dynamically by a separate pci bus enumerator driver.
The vt82c586 driver provides the drv_bind() routine. This routine examines the device node properties and thus, identifies a vt82c586 compatible device. The routine checks for the pci vendor and device identifiers matching a vt82c586 compatible device. If the check is positive, the drv_bind() routine binds the driver to the device node, attaching a PROP_DRIVER property to the device node. The property value specifies the vt82c586 driver name. The parent bus driver uses such a property to determine the name of the driver servicing the device. Via the PROP_DRIVER property, the driver gives its name to the parent bus driver, asking it to invoke the drv_int() routine on that device. Note that the drv_bind() routine does nothing if the PROP_DRIVER property is already present in the device node, as the drv_bind() routine will not override existing driver-to-driver binding.
The driver provides the drv_unload() entry and supports driver component unloading. This allows the driver component to be unloaded if it is no longer being used and if it has been dynamically loaded at run time.
The driver supports all bus events specified by the pci bus driver interface. As a consequence, the driver may be used with a hot-pluggable pci bus (for example, CompactPCI).
The table below summarizes characteristics of the vt82c586 isa bus driver.
driver name: | "sun:pci-vt82c586-(bus, isa)" |
---|---|
hardware: | vt82c586 pci-to-isa bridge |
exported interface: | "bus", "isa" (BUS_CLASS, ISA_CLASS) |
exported interface version: | 0 (ISA_VERSION_INITIAL) |
imported parent interface: | "pci" (PCI_CLASS) |
minimal parent interface version: | 0 (PCI_VERSION_INITIAL) |
device probing (auto-detection): | not supported |
driver-to-device binding: | supported (on PCI dev/vend id basis) |
driver unloading: | supported |
system (emergency) shut-down: | supported |
normal device shut-down: | supported |
hot-plug (surprise) device removal: | supported |
The Table below lists device node properties used by the vt82c586 driver. Note that the column "m/o" specifies whether a given property is mandatory or optional. For optional properties, the column "default value" shows a default value which is used by the driver when a given property is not specified.
Name | Alias | Type | m/o | Default value |
---|---|---|---|---|
"vend-id" | PCI_PROP_VEND_ID | PciPropVendId | m | |
"dev-id" | PCI_PROP_DEV_ID | PciPropDevId | m | |
"dev-num" | PCI_PROP_DEV_NUM | PciPropDevNum | m | |
"func-num" | PCI_PROP_FUNC_NUM | PciPropFuncNum | m | |
"intr" | PCI_PROP_INTR | PciPropIntr | m | |
"conf" | VT82_ISA_PROP_CONF | Vt82IsaPropConf | o | see text below |
Note that the driver does not use any PCI_PROP_IO_REGS properties because its I/O range cannot be relocated. The bridge assumes zero based pci/isa I/O addresses.
The PCI_PROP_VEND_ID property specifies the VIA Technologies vendor identifier (must be 0x1106).
The PCI_PROP_DEV_ID property specifies the vt82C586 device identifier (must be 0x0586).
The PCI_PROP_DEV_NUM, and PCI_PROP_FUNC_NUM properties specify the configuration space address of the device.
The PCI_PROP_INTR property specifies the pci interrupt used by the device. Note that this interrupt is used for all 16 isa IRQ's.
The VT82_ISA_PROP_CONF property specifies the configuration of the vt82C586 pci-to-isa bridge. The Vt82IsaPropConf structure consists of images of the vt82C586 configuration registers. If the VT82_ISA_PROP_CONF property is specified, the driver will program configuration registers according to the images given by the Vt82IsaPropConf structure. Otherwise, the default values will be used. The Table below shows the Vt82IsaPropConf fields and the default values used for the bridge configuration when the VT82_ISA_PROP_CONF property is not specified.
type | name | default | addr | description |
uint8_f | bct1 | 00 | 40 | isa Bus Control Register |
uint8_f | tmode | 20 | 41 | isa Test Mode Register |
uint8_f | cct1 | 02 | 42 | isa Clock Control Register |
uint8_f | rct1 | 00 | 43 | ROM Decode Control Register |
uint8_f | kct1 | 00 | 44 | Keyboard Controller Control Register |
uint8_f | dct1 | 00 | 45 | Type F DMA Control Register |
uint8_f | mct1i | 01 | 46 | Miscellaneous |
uint8_f | ide_ir | 04 | 4a | ide Interrupt Routing Register |
uint8_f | dma_holebot | 00 | 4c | pci Memory Hole Bottom Addr Register |
uint8_f | dma_holetop | 00 | 4d | pci Memory Hole Top Addr Register |
unit16_f | dma_ct1 | f100 | 4e | DMA/Master Mem Acc Control Register |
uint8_f | pirq_sel | 00 | 54 | pci IRQ Edge/Level Selection Register |
uint8_f | ir1 | 00 | 55 | PnP Routing for MIRQD Register |
uint8_f | ir2 | a5 | 56 | PnP Routing for PIRQA/B Register |
uint8_f | ir3 | 00 | 57 | PnP Routing for MIRQ1/PIRQC Register |
uint8-f | ir4 | 00 | 58 | PnP Routing for MIRQ2 Register |
uint8_f | mirq | 00 | 59 | MIRQ Pin Configuration Register |
uint8_f | xd | 00 | 5a | XD Power-On Strap Option Register |
uint8_f | rtctm | 00 | 5b | Internal RTC Test Mode Register |
uint8_f | dma | 00 | 5c | DMA Control Register |
See the vt82c586b pci Integrated Peripheral Controller Datasheet for programming the bus bridge configuration registers (http://www.via.com.tw).
The current version of the vt82c586 driver does not support the dynamic assignment of the isa bus resources.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | RESTRICTIONS | ATTRIBUTES | SEE ALSO