NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO
drv/src/net/ether/ne2000/ne2000.h - ne2000 hardware constants drv/src/net/ether/ne2000/ne2000.c - driver code drv/src/net/ether/ne2000/ne2000Prop.h - driver specific properties
DRV
The ne2000 Ethernet driver implements the ether device driver interface.
The driver uses the common bus driver interface provided by a parent bus driver. Thus, the driver may be applied to any bus with this interface.
The ne2000 Ethernet driver supports ne2000 boards in both ISA and PCI versions.
At initialization, the ne2000 driver is registered twice in the driver registry. The first instance is as a common bus interface and the second as a PCI one.
The ne2000 driver does not provide the drv_probe() routine. In other words, the ne2000 driver does not enumerate the PCI bus, nor does it detect an ne2000 device or create an associated device node. When the ne2000 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 ne2000 driver, when registered as a pci based device driver, provides the drv_bind() routine. This routine examines the device node properties and thus identifies an ne2000 compatible device. The routine checks for the PCI vendor and device identifiers matching an ne2000 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 ne2000 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.
The drv_bind() routine does nothing if the PROP_DRIVER property is already present in the device node. In other words, the drv_bind() routine will not override existing driver-to-device binding.
The driver does not implement drv_unload(). This means that the driver component cannot be unloaded even if it has been dynamically loaded at run time.
The Table below lists device node properties used by the ne2000 driver.
driver name: | "sun:bus-ne2000-ether" |
---|---|
hardware: | NE2000 Ethernet controller |
exported interface: | "ether" (ETHER_CLASS) |
exported interface version: | 0 (ETHER_VERSION_INITIAL) |
imported parent interface: | "bus" (BUS_CLASS) "pci" (PCI_CLASS) |
minimal parent interface version: | 0 (BUS_VERSION_INITIAL) 0 (PCI_VERSION_INITIAL) |
device probing (auto-detection): | not supported |
driver unloading: | not supported |
system (emergency) shut-down: | supported |
normal device shut-down: | supported |
hot-plug (surprise) device removal: | not supported |
Note that the column "m/o" specifies whether a given property is mandatory or optional. For optional properties, the "default value" column shows the 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 | |
"ether-addr" | ETHER_PROP_ADDR | EtherPropAddr | o | Rom content |
The BUS_PROP_INTR property specifies the bus interrupt used by the device.
The BUS_PROP_IO_REGS property specifies the ne2000 I/O registers range.
The Table below lists device node properties added by the ne2000 driver, which may be used by the driver clients.
Name | Alias | Type |
---|---|---|
"link-throughput" | ETHER_PROP_THROUGHPUT | EtherPropThroughput |
"ether-addr" | WTHER_PROP_ADDR | EtherPropAddr |
ETHER_PROP_THROUGHPUT specifies the throughput of the Ethernet link. The ne2000 driver adds this property to the device node and initializes it with the throughput of the Ethernet link to which the device is connected.
ETHER_PROP_ADDR specifies the device Ethernet address. The ne2000 driver adds this property to the device node and initializes it with the Ethernet address found in the controller ROM.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | ATTRIBUTES | SEE ALSO