NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO
drv/src/buscom/universe/univRemCom.c - driver code drv/src/buscom/universe/univRemComProp.h - driver specific properties
DRV
The univRemCom driver implements the BUSCOM (remote) device driver interface. The driver works on a TUNDRA Universe PCI to VME bus bridge controller.
The driver uses the VME bus driver interface provided by a parent bus driver.
The univRemCom driver does not provide the drv_probe() routine. In that the univRemCom driver does not enumerate the bus in order to detect a compatible device and create an associated device node. When the univRemCom driver is used, associated device nodes should be created either statically, by a boot program, or dynamically, by a separate VME bus enumerator driver.
The univRemCom driver provides the drv_bind() routine. This routine examines the device node properties in order to recognize a universe compatible device. The routine checks for PCI vendor/device identifier properties matching the TUNDRA universe device ones, and for a BUSCOM_PROP_REMOTE property, indicating that the node corresponds to a remote universe device. If the check is positive, the drv_bind() routine binds the driver to the device node, attaching a PROP_DRIVER property to it. The property value specifies the univRemCom driver name. The parent bus driver uses this property to determine the name of the driver servicing the device. It is through the PROP_DRIVER property that the driver gives its name to the parent bus driver to ask it to invoke the drv_init() routine for that device. Note that the drv_bind() routine does nothing if a PROP_DRIVER property is already present in the device node; the drv_bind() routine does not override an existing driver-to-device 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 needed. Note that the driver component can only be unloaded if it has been dynamically loaded at run time. In that a resident driver component (embedded in the system bootable image) cannot be unloaded although unloading is supported by the driver.
The driver supports all events specified by the VME bus driver interface except for the VME_ACFAIL and VME_ARBITRATION_TIMEOUT events.
The table below summarizes characteristics of the univRemCom driver.
driver name: | "sun:vme-universe-buscom <remote>" |
---|---|
hardware: | TUNDRA Universe PCI-to-VME bridge |
exported interface: | "buscom" (BUSCOM_CLASS) |
exported interface version: | 0 (BUSCOM_VERSION_INITIAL) |
imported parent interface: | "vme" (VME_CLASS) |
minimal parent interface version: | 0 (VME_VERSION_INITIAL) |
device probing (auto-detection): | not supported |
driver-to-device binding: | supported (on PCI vendor/device ids) |
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 universe 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 | |
"buscom-remote" | BUSCOM_PROP_REMOTE | no value | m | |
"buscom-monarch" | BUSCOM_PROP_MONARCH | no value | m | |
"buscom-id" | BUSCOM_PROP_ID | BusComPropId | m | |
"io-regs" | VME_PROP_IO_REGS | VmePropIoRegs | m | |
"mem-rgn" | VME_PROP_MEM_RGN | VmePropMemRgn | m |
The PCI_PROP_VEND_ID property specifies the TUNDRA PCI vendor identifier (must be 0x10E3).
The PCI_PROP_DEV_ID property specifies the Universe PCI device identifier (must be 0x0000).
The BUSCOM_PROP_REMOTE property flags the device node as a "remote" universe device (that is, a device located on another VME host board). This property must be present for the univRemCom to run on that device.
The BUSCOM_PROP_MONARCH property flags the device node as being the bus communication "monarch". If present, this property indicates that the associated device must be booted and made accessible on the VME bus before all other devices. Typically, on the VME bus this device is the VME bus system controller. This property should be used by the univRemCom client application to choose the bus device on which any shared vital data should be located.
The BUSCOM_PROP_ID is the unique identifier (UID) of the device on the underlying VME bus. It can be used as a location identifier by the univRemCom client application implementing communication protocols over theVME bus.
The VME_PROP_IO_REGS property specifies the VME address range allocated to the remote universe I/O registers. This address range is used by the univRemCom driver to access universe registers through the VME bus.
The VME_PROP_MEM_RGN property specifies the VME address range dedicated to the remote universe bus communication memory. This property defines the VME address space which will be mapped to a memory space located on the remote VME CPU board. The address range is used by the univRemCom driver to access communication memory located on the remote board through the VME bus.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO