![]() |
The device driver for the CS8900A is poorly supported. Be prepared that some debugging may be required when using it with the latest Nut/Net release.
Data Structures | |
struct | _NICINFO |
Network interface controller information structure. More... | |
struct | _NICINFO |
Network interface controller information structure. More... | |
Typedefs | |
typedef struct _NICINFO | NICINFO |
Network interface controller information type. | |
Functions | |
void | CSWrite16 (u_short addr, u_short data) |
void | CSWritePP16 (u_short addr, u_short data) |
u_short | CSRead16 (u_short addr) |
u_short | CSReadPP16 (u_short addr) |
u_long | CSReadPP32 (u_int addr) |
void | CSBeginFrame (void) |
void | CSEndFrame (void) |
void | CSWriteFrameByte (u_char data) |
int | CSNicOutput (NUTDEVICE *dev, NETBUF *nb) |
Send Ethernet packet. | |
void | CSNICrx (void *arg) |
NIC receiver thread. | |
void | CSSoftwareWakeup (void) |
void | CSSoftwareReset (void) |
int | CSNicInit (NUTDEVICE *dev) |
Initialize Ethernet Interface. | |
void | CSWrite16 (u_long addr, u_short data) |
u_short | CSRead16 (u_long addr) |
int | cs8900Output (NUTDEVICE *dev, NETBUF *nb) |
Send Ethernet packet. | |
int | cs8900Init (NUTDEVICE *dev) |
Initialize Ethernet hardware. | |
Variables | |
u_char | cs_flags |
volatile u_short | cs_base = 0x0000 |
volatile u_long | cs_base = 0x82000000UL |
NUTDEVICE | devCS8900A |
Device information structure. |
Definition at line 239 of file cs8900.c.
References cli, CS_PP_DATA0, CS_PP_PTR, and CSWrite16().
Referenced by cs8900Init(), and CSNicInit().
Definition at line 265 of file cs8900.c.
References cli, CS_PP_DATA0, CS_PP_PTR, and CSRead16().
Referenced by cs8900Init(), CSNicInit(), and CSNICrx().
void CSEndFrame | ( | void | ) |
void CSWriteFrameByte | ( | u_char | data | ) |
Send Ethernet packet.
dev | Identifies the device to use. | |
nb | Network buffer structure containing the packet to be sent. The structure must have been allocated by a previous call NutNetBufAlloc(). This buffer will be automatically released in case of an error. |
void CSNICrx | ( | void * | arg | ) |
NIC receiver thread.
It runs with high priority.
Definition at line 444 of file cs8900.c.
References CS_DATA_P0, CS_RX_EVENT, CSReadPP16(), _NUTDEVICE::dev_dcb, _NUTDEVICE::dev_icb, ifnet::if_recv, _NETBUF::nb_dl, NBAF_DATALINK, NICINFO::ni_rx_packets, NutNetBufAlloc(), NutSleep(), NutThreadSetPriority(), PSTR, and _NBDATA::vp.
Referenced by cs8900Init(), and CSNicInit().
void CSSoftwareWakeup | ( | void | ) |
Definition at line 525 of file cs8900.c.
References CS_PP_PTR, CS_SELF_CTRL, and NutDelay().
Referenced by cs8900Init(), and CSNicInit().
void CSSoftwareReset | ( | void | ) |
Definition at line 536 of file cs8900.c.
References CS_DATA_P0, CS_PP_PTR, and CS_SELF_CTRL.
Referenced by cs8900Init(), and CSNicInit().
int CSNicInit | ( | NUTDEVICE * | dev | ) |
Initialize Ethernet Interface.
Applications typically do not use this function, but call NutNetIfConfig().
dev | Identifies the device to initialize. The structure must be properly set. |
Send Ethernet packet.
dev | Identifies the device to use. | |
nb | Network buffer structure containing the packet to be sent. The structure must have been allocated by a previous call NutNetBufAlloc(). |
Definition at line 497 of file cs8900a.c.
References _NUTDEVICE::dev_dcb, NICINFO::ni_tx_packets, and PSTR.
int cs8900Init | ( | NUTDEVICE * | dev | ) |
Initialize Ethernet hardware.
Resets the CS8900 Ethernet controller, initializes all required hardware registers and starts a background thread for incoming Ethernet traffic.
Applications should do not directly call this function. It is automatically executed during during device registration by NutRegisterDevice().
If the network configuration hasn't been set by the application before registering the specified device, this function will call NutNetLoadConfig() to get the MAC address.
dev | Identifies the device to initialize. |
Definition at line 534 of file cs8900a.c.
References _CONFNET::cd_size, _CONFNET::cdn_mac, confnet, cs_base, CS_IEEE_ADDR, CS_LINE_CTRL, CS_PROD_ID, CS_RX_CTL, CSNICrx(), CSReadPP16(), CSSoftwareReset(), CSSoftwareWakeup(), CSWritePP16(), _NUTDEVICE::dev_base, _NUTDEVICE::dev_dcb, _NUTDEVICE::dev_icb, _NUTDEVICE::dev_name, ifnet::if_mac, memcpy(), memset(), NutDelay(), NutNetLoadConfig(), NutThreadCreate(), and PSTR.
Definition at line 225 of file cs8900.c.
Referenced by CSBeginFrame(), CSEndFrame(), and CSWriteFrameByte().
Initial value:
{ 0, {'e', 't', 'h', '0', 0, 0, 0, 0, 0}, IFTYP_NET, 0, 0, &ifn_eth0, &dcb_eth0, cs8900Init, 0, 0, 0, 0, 0, 0 }
A pointer to this structure must be passed to NutRegisterDevice() to bind this Ethernet device driver to the Nut/OS kernel. An application may then call NutNetIfConfig() with the name eth0 of this driver to initialize the network interface.