NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO
drv/src/net/ether/scc/sccEther.c - driver code drv/src/net/ether/scc/sccEtherProp.h - driver specific properties
DRV
The sccEther Ethernet driver implements the ether device driver interface.
The driver works on a quicc serial communication controller (SCC) connected to an external SIA and a transceiver function. The driver uses the quicc bus driver interface provided by a parent bus driver.
The sccEther driver does not provide the drv_probe() routine. In other words, the sccEther driver does not enumerate the bus, nor does it detect an sccEther device or create an associated device node. When the sccEther driver is used, associated device nodes should be created either statically by a boot program or dynamically by a separate bus enumerator driver. Such an enumerator driver could be developed for this particular bus architecture.
The driver does not provide the drv_bind() routine. In other words, the driver does not support dynamic driver-to-device binding. When the sccEther driver is used, the driver should be explicitly bound to the device using the PROP_DRIVER property. It is assumed that the device-to-driver binding is done either by a device node creator or by a separate binder driver. Such a driver-to-device binder could be developed for this particular bus architecture
The driver provides the drv_unload() entry and supports the 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 the QUICC_SYS_SHUTDOWN and QUICC_DEV_SHUTDOWN bus events specified by the quicc bus driver interface.
The table below summarizes characteristics of the sccEther Ethernet driver.
driver name: | "sun:quicc-scc-ether" |
hardware: | Quicc/scc connected to 10B-T |
exported interface: | "ether" (ETHER_CLASS) |
exported interface version: | 0 (ETHER_VERSION_INITIAL) |
imported parent interface: | "quicc" (QUICC_CLASS) |
minimal parent interface version: | 0 (QUICC_VERSION_INITIAL) |
device probing (auto-detection): | not supported |
driver-to-device binding: | not supported |
driver unloading: | supported |
system (emergency) shut-down: | supported |
normal device shut-down: | supported |
hot-plug (surprise) device removal: | not supported |
The table below lists device node properties used by the sccEther 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 |
---|---|---|---|---|
"mem-rgn | QUICC_PROP_MEM_RGN | QuiccPropMemRgn | m | |
"intr" | QUICC_PROP_INTR | QuiccPropIntr | m | |
"channel" | QUICC_PROP_CHANNEL | QuiccPropChannel | m | |
"ether-addr" | ETHER_PROP_ADDR | EtherPropAddr | o | ENVIRON-MENT |
"tx-desc-nb" | SCCETHER_PROP_TX_DESC_NB | SccEtherPropDescNb | o | 8 |
"rx-desc-nb | SCCETHER_PROP_RX_DESC_NB | SccEtherPropDescNb | o | 8 |
"tx-buf-size" | SCCETHER_PROP_TX_BUF_SZ | SccEtherPropBufSz | o | 1514 bytes |
"rx-buf-size" | SCCETHER_PROP_RX_BUF_SZ | SccEtherPropBufSz | o | 1514 bytes |
The QUICC_PROP_MEM_RGN property specifies the quicc bus memory mapped regions used by the driver:
index SCCETHER_REG is used to map scc registers
index SCCETHER_PARAM is used to map scc parameters
The QUICC_PROP_INTR property specifies the interrupt used by the device.
The QUICC_PROP_CHANNEL property specifies the channel used by the device.
The ETHER_PROP_ADDR property specifies the Ethernet address. If the property is not present, the driver tries to get the Ethernet address from the "ETHER_ADDR" environment variable, and creates the property in the device node.
The SCCETHER_PROP_TX_DESC_NB specifies the number of descriptors to be allocated in the transmit ring. By default, 8 descriptors are used.
The SCCETHER_PROP_RX_DESC_NB specifies the number of descriptors to be allocated in the receive ring. By default, 8 descriptors are used.
The SCCETHER_PROP_TX_BUF_SZ specifies the size of the DMA buffers to be allocated and bound to each descriptor in the transmit ring. By default, each buffer has a size of 1514 bytes, which is the maximum size of an Ethernet frame.
The SCCETHER_PROP_RX_BUF_SZ specifies the size of the DMA buffers to be allocated and bound to each descriptor in the receive ring. By default, each buffer has a size of 1514 bytes, which is the maximum size of an Ethernet frame. Thus, the total size of DMA memory allocated by the driver will be:
SCCETHER_PROP_TX_DESC_NB * SCCETHER_PROP_TX_BUF_SZ for transmission, and
SCCETHER_PROP_RX_DESC_NB * SCCETHER_PROP_RX_BUF_SZ for reception.
Note that the driver is capable of sending and receiving an Ethernet frame using multiple descriptors in a ring. But it is not able to share the memory buffer, bound to one descriptor, between multiple Ethernet frames. In other words, configuring buffer sizes with big values will lead to poor memory usage, with small Ethernet frames.
The table below lists device node properties added by the sccEther driver, which may be used by the driver clients.
Name | Alias | Type |
---|---|---|
"link-throughput" | ETHER_PROP_THROUGHPUT | EtherPropThroughput |
"ether-addr" | ETHER_PROP_ADDR | EtherPropAddr |
The ETHER_PROP_THROUGHPUT property specifies the throughput of the Ethernet link.
The ETHER_PROP_ADDR property specifies the Ethernet address. Note that the driver adds this property to the device node only if it does not already exist.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO