NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO
drv/src/net/ether/cheerio.h - cheerio hardware related constants drv/src/net/ether/cheerio.c - driver code drv/src/net/ether/cheerioprop.h - driver specific properties
DRV
The cheerio Ethernet driver implements the ether device driver interface.
The driver uses the pci bus driver interface provided by a pci parent bus driver. Thus, the driver may be applied to any pci bus implementing this interface.
The cheerio driver does not provide the drv_probe() routine. In other words, the cheerio driver does not enumerate the pci bus, nor does it detect a cheerio device or create an associated device node. When the cheerio 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 cheerio driver provides the drv_bind() routine. This routine examines the device node properties and thus, identifies a cheerio compatible device. The routine checks for the pci vendor and device identifiers matching a cheerio 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 cheerio driver name. The parent bus driver uses such a property to determine the name of drivers 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 does not implement the drv_unload()entry. This means that the driver component cannot be unloaded even if it has been dynamically loaded at run time.
The driver supports the DKI_SYS_SHUTDOWN event specified by the common DKI interface.
The table below summarizes characteristics of the cheerio driver.
driver name: | "sun:pci-cheerio-ether" |
---|---|
hardware: | Sun cheerio 10/100Mbps Ethernet |
exported interface: | "ether" (ETHER_CLASS) |
exported interface version: | 0 (ETHER_VERSION_INITIAL) |
imported parent interface: | "pci" (PCI_CLASS) |
minimal parent interface version: | 0 (PCI_VERSION_INITIAL) |
device probing (auto-detection): | not supported |
driver unloading: | not supported |
system (emergency) shut-down: | supported |
normal device shut-down: | not supported |
hot-plug (surprise) device removal: | not supported |
The table below lists device node properties used by the cheerio 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 | |
"io-regs" | PCI_PROP_IO_REGS | PciPropIoRegs | m | |
"intr" | PCI_PROP_INTR | PciPropIntr | m | |
"dma-burst" | PCI_PROP_DMA_BURST | PciPropDmaBurst | o | 32 |
"ether-addr" | ETHER_PROP_ADDR | EtherPropAddr | m | |
"tx-frames" | CHEERIO_PROP_ADDR | CheerioPropTxFrames | o | 32 |
"rx-frames" | CHEERIO_PROP_RX_FRAMES | CheerioPropRxFrames | o | 64 |
The PCI_PROP_VEND_ID property specifies the Sun pci vendor identifier (must be 0x108e).
The PCI_PROP_DEV_ID property specifies the cheerio pci device identifier (must be 0x1001).
The PCI_PROP_DEV_NUM property specifies the pci device number of the device.
The PCI_PROP_FUNC_NUM property specifies the pci function number of the device.
The PCI_PROP_IO_REGS property specifies the cheerio address space within pci memory space.
The PCI_PROP_INTR property specifies the interrupt value assigned to the cheerio device node.
The PCI_PROP_DMA_BURST property specifies the dma burst sizes.
The ETHER_PROP_ADDR property specifies the cheerio Ethernet address.
The CHEERIO_PROP_TX_FRAMES specifies the maximum number of transmit frames.
The CHEERIO_PROP_RX_FRAMES specifies the maximum number of receive frames.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO