else {
lan_set_attribute(sc->ehm.current_val, NET_PROMISC_NDX, (void *)0);
}
WRITE_CMD(sc, CMDi);
7
1
If loopback mode is requested, enables it.
2
Sets the LAN loopback attribute for EHM support.
3
Selects to receive frames that are sent to both the local address and the
broadcast address.
4
If the network device receives all multicast packets, selects all group
addresses.
5
If the network device receives all packets destined to all stations, selects
promiscuous mode.
6
Sets the LAN promiscuous mode attribute for EHM support.
7
Calls the
WRITE_CMD
macro to write data to the command port register.
In this call, the data to be written is the set receive (RX) filter command
(
CMD_FILTER
) with the appropriate flags set.
8.2.11 Setting the Debug Flag
The following code shows how the
el_init_locked( )
routine sets the
debug flag for turning on debugging on a running system. This task is
optional.
if (ifp->if_flags & IFF_DEBUG)
1
sc->debug++;
else
sc->debug = 0;
if (sc->debug) {
2
WRITE_CMD(sc, CMD_WINDOW3);
i = READ_TXF(sc);
printf("el%d: Transmit FIFO size == %d\n", unit, i);
i = READ_RXF(sc);
WRITE_CMD(sc, CMD_WINDOW1);
printf("el%d: Receive FIFO size == %d\n", unit, i);
}
1
Sets debug mode if the
IFF_DEBUG
bit is set.
2
If debugging mode is set, prints the transmit and receive first-in/first-out
(FIFO) sizes.
8.2.12 Enabling TX and RX
The following code shows how the
el_init_locked( )
routine enables
transmit (TX) and receive (RX). Make sure that you perform similar
initialization tasks for the hardware device that your network driver
controls.
Implementing the Initialization Section 8–9