This task is specific to the 3Com 3C5x9 device. Make sure that you perform similar initialization tasks for the hardware device that your network driver controls.
WRITE_CMD(sc, CMD_ACKINT+0xff);
1
1
Calls the WRITE_CMD macro to write data to the command port register. The data written to the command port register is the acknowledge interrupt command (CMD_ACKINT) plus a mask that specifies that all interrupts are to be acknowledged.
8.2.3 Starting the Device
The following code shows how the el_init_locked( ) routine starts the device. This task is specific to the 3Com 3C5x9 device. Make sure that you perform similar initialization tasks for the hardware device that your network driver controls.
WRITE_CMD(sc, CMD_WINDOW0); i = READ_CCR(sc); WRITE_CCR(sc, CCR_ENA i); 1 WRITE_RCR(sc,
2
1
2
Calls the WRITE_CCR macro to write data to the 3Com 3C5x9 device’s configuration control register. The data to be written consists of the original register contents but with the enable adapter bit (CCR_ENA) set.
Calls the WRITE_RCR macro to write data to the 3Com 3C5x9 device’s resource configuration register. The data to be written is the bitwise inclusive OR of the interrupt request (IRQ) stored in the irq member of the el_softc data structure and the reserved bit for the resource configuration register (RCR_RSV).
8.2.4 Ensuring That the 10Base2 Transceiver Is Off
The following code shows how the el_init_locked( ) routine ensures that the 10Base2 transceiver is off. This task is specific to the 3Com 3C5x9 device. You may want to perform similar initialization tasks for the hardware device that your network driver controls.
WRITE_CMD(sc, CMD_STOP2);
DELAY(800); 2
1
1
2
Calls the WRITE_CMD macro to write data to the command port register. The data to be written is the stop 10Base2 command bit (CMD_STOP2).
Calls the DELAY macro to wait 800 microseconds before continuing execution.
Implementing the Initialization Section