NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO
drv/src/net/ether/el3/el3.h - el3 hardware related constants drv/src/net/ether/el3/el3.c - driver code drv/src/net/ether/el3/el3prop.h - driver specific properties
DRV
The el3 Ethernet driver implements the ether device driver interface.
The driver is based on the common bus driver interface. Thus, the driver may be applied to any bus driver providing this interface. This means that the el3 driver can be used to drive an ISA board such as the 3C509x series, as well as PCMCIA based boards such as the 3C589 series.
The el3 driver does not provide the drv_probe() routine. In other words, the el3 driver does not enumerate the bus, nor does it detect an el3 device or create an associated device node. When the el3 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 el3 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 all bus events specified by the common bus driver interface. Consequently, the driver may be used with a hot-pluggable bus (for example, PCMCIA).
The Table below summarizes characteristics of the el3 Ethernet driver.
driver name: | "sun:bus-el3-ether" |
---|---|
hardware: | 3Com etherlinkIII Ethernet controller |
exported interface: | "ether" (ETHER_CLASS) |
exported interface version: | 0 (ETHER_VERSION_INITIAL) |
imported parent interface: | "bus" (BUS_CLASS) |
minimal parent interface version: | 0 (BUS_VERSION_INITIAL) |
device probing (auto-detection): | not supported |
driver unloading: | supported |
system (emergency) shut-down: | supported |
normal device shut-down: | supported |
hot-plug (surprise) device removal: | supported |
The Table below lists the generic common bus device node properties used by the el3 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 |
---|---|---|---|---|
"io-regs" | BUS_PROP_IO_REGS | <bus class specific> | m | |
"intr" | BUS_PROP_INTR | <bus class specific> | m | |
"el3-id-port" | EL3_PROP_ID_PORT | BUS_PROP_IO_REGS | m | |
"el3-cfg" | EL3_PROP_CFGE13 | E13PropCfg | m | |
"el3-tx-start-thr" | EL3_TX_START_THRESHOLD | uint16_fo | ||
"el3-rx-early-thr" | EL3_RX_EARLY_THRESHOLD | uint16_fo |
The BUS_PROP_IO_REGS property specifies the el3 I/O registers range. Its value is bus class specific.
The BUS_PROP_INTR property specifies the el3 interrupt to be used. Its value is bus class specific.
The Table below lists the specific device node properties used by the el3 driver.
Name | Alias | Type | m/o | Default value |
---|---|---|---|---|
"el3-id-port" | EL3_PROP_ID_PORT | BUS_PROP_IO_REGS | o | |
"el3-cfg" | EL3_PROP_CFG | El3PropCfg | m | |
"el3-tx-start-thr" | EL3_TX_START_THRESHOLD | uint16_f | o | 2000 (disabled) |
"el3-rx-early-thr" | EL3_RX_EARLY_THRESHOLD | uint16_f | o | 2000 (disabled) |
The EL3_PROP_ID_PORT property specifies the el3 ID Port I/O register. It is used by the el3 driver to activate boards on an ISA bus. Therefore this property is only used to activate boards connected to an ISA bus. Its value is bus class specific. The el3 driver will use the common bus I/O operations on this property. The default value for this property should suit nearly all configurations, and should be modified in case of conflict with other ISA devices.
Note: This property is not used on any busses other than ISA.
The EL3_PROP_CFG property specifies the configuration used by the device. The El3PropCfg type is defined as:
typedef struct { El3WinReg w0o6; /* Window 0 Offset 6 config */ El3WinReg w0o8; /* Window 0 Offset 8 config */ char boardPort; /* Output Port */ char activation; /* Activation Method */ } El3PropCfg;
The w0o6 and w0o8 fields should not be modified by the user. They contain values used internally by the driver. These values are automatically computed from the BUS_PROP_IO_REGS and BUS_PROP_INTR properties mentioned above.
The boardPort field specifies the output port (media) to be used and must be set to one of the following values:
EL3_TP_PORT
EL3_AUI_PORT
EL3_BNC_PORT
The activation field specifies the activation mechanism which should be used. Its value depends on the parent bus and must be set to one of the following values:
EL3_ISA_ACTIVATION for ISA based boards,
EL3_PCMCIA_ACTIVATION for PCMCIA based boards,
The EL3_TX_START_THRESHOLD property specifies the threshold used by the board to start transmission. Its value is the number of bytes which should be present in the TX FIFO to start transmission. By default, this feature is disabled (value > 1792) and transmission will begin once the complete frame has been copied to the TX FIFO.
The EL3_RX_EARLY_THRESHOLD property specifies the threshold used by the board to notify the driver that a frame reception has begun. Its value is the number of bytes. Once this amount of bytes is present in the RX FIFO, the board will generate an interrupt to notify the driver. By default, this feature is disabled (value > 1792) and the board will notify once the complete frame has been received.
The Table below lists the device node properties dynamically added by the el3 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 specifies the throughput of the Ethernet link. The el3 driver adds this property to the device node and initializes it with the throughput of the Ethernet link to which the device is connected.
The ETHER_PROP_ADDR property specifies the device Ethernet address. The el3 driver adds this property to the device node and initializes it with the Ethernet address read in the board EEPROM.
Note: These properties will be added by the el3 driver if, and only if, they do not exist in the device tree at initialization time.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO