Deprecated fork of old network stack source from github. Please use official library instead: https://mbed.org/users/mbed_official/code/EthernetInterface/
Functions | |
void | lpc_mii_write_noblock (u32_t PhyReg, u32_t Value) |
Write a value via the MII link (non-blocking) | |
err_t | lpc_mii_write (u32_t PhyReg, u32_t Value) |
Write a value via the MII link (blocking) | |
u32_t | lpc_mii_is_busy (void) |
Reads current MII link busy status. | |
u32_t | lpc_mii_read_data (void) |
Starts a read operation via the MII link (non-blocking) | |
void | lpc_mii_read_noblock (u32_t PhyReg) |
Read a value via the MII link (blocking) | |
err_t | lpc_mii_read (u32_t PhyReg, u32_t *data) |
Starts a read operation via the MII link (non-blocking) | |
static void | lpc_rxqueue_pbuf (struct lpc_enetdata *lpc_enetif, struct pbuf *p) |
Queues a pbuf into the RX descriptor list. | |
s32_t | lpc_rx_queue (struct netif *netif) |
Attempt to allocate and requeue a new pbuf for RX. | |
static err_t | lpc_rx_setup (struct lpc_enetdata *lpc_enetif) |
Sets up the RX descriptor ring buffers. | |
static struct pbuf * | lpc_low_level_input (struct netif *netif) |
Allocates a pbuf and returns the data from the incoming packet. | |
void | lpc_enetif_input (struct netif *netif) |
Attempt to read a packet from the EMAC interface. | |
static s32_t | lpc_packet_addr_notsafe (void *addr) |
Determine if the passed address is usable for the ethernet DMA controller. | |
Variables | |
ETHMEM_SECTION struct lpc_enetdata | lpc_enetdata |
LPC EMAC driver work data. |
Function Documentation
void lpc_enetif_input | ( | struct netif * | netif ) |
Attempt to read a packet from the EMAC interface.
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif
Definition at line 488 of file lpc17_emac.c.
static struct pbuf* lpc_low_level_input | ( | struct netif * | netif ) | [static, read] |
Allocates a pbuf and returns the data from the incoming packet.
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif
- Returns:
- a pbuf filled with the received packet (including MAC header) NULL on memory error
Definition at line 348 of file lpc17_emac.c.
u32_t lpc_mii_is_busy | ( | void | ) |
Reads current MII link busy status.
This function will return the current MII link busy status and is meant to be used with non-blocking functions for monitor PHY status such as connection state.
- Returns:
- !0 if the MII link is busy, otherwise 0
Definition at line 194 of file lpc17_emac.c.
err_t lpc_mii_read | ( | u32_t | PhyReg, |
u32_t * | data | ||
) |
Starts a read operation via the MII link (non-blocking)
This function will start a read operation on the MII link interface from a PHY or a connected device. The function will not block and the status mist be polled until complete. Once complete, the data can be read.
- Parameters:
-
[in] PhyReg PHY register to read from
Definition at line 217 of file lpc17_emac.c.
u32_t lpc_mii_read_data | ( | void | ) |
Starts a read operation via the MII link (non-blocking)
This function returns the current value in the MII data register. It is meant to be used with the non-blocking oeprations. This value should only be read after a non-block read command has been issued and the MII status has been determined to be good.
- Returns:
- The current value in the MII value register
Definition at line 200 of file lpc17_emac.c.
void lpc_mii_read_noblock | ( | u32_t | PhyReg ) |
Read a value via the MII link (blocking)
This function will read a value on the MII link interface from a PHY or a connected device. The function will block until complete.
- Parameters:
-
[in] PhyReg PHY register to read from [in] data Pointer to where to save data read via MII
- Returns:
- 0 if the read was successful, otherwise !0
Definition at line 209 of file lpc17_emac.c.
err_t lpc_mii_write | ( | u32_t | PhyReg, |
u32_t | Value | ||
) |
Write a value via the MII link (blocking)
This function will write a value on the MII link interface to a PHY or a connected device. The function will block until complete.
- Parameters:
-
[in] PhyReg PHY register to write to [in] Value Value to write
- Returns:
- 0 if the write was successful, otherwise !0
Definition at line 168 of file lpc17_emac.c.
void lpc_mii_write_noblock | ( | u32_t | PhyReg, |
u32_t | Value | ||
) |
Write a value via the MII link (non-blocking)
This function will write a value on the MII link interface to a PHY or a connected device. The function will return immediately without a status. Status needs to be polled later to determine if the write was successful.
- Parameters:
-
[in] PhyReg PHY register to write to [in] Value Value to write
Definition at line 160 of file lpc17_emac.c.
static s32_t lpc_packet_addr_notsafe | ( | void * | addr ) | [static] |
Determine if the passed address is usable for the ethernet DMA controller.
- Parameters:
-
[in] addr Address of packet to check for DMA safe operation
- Returns:
- 1 if the packet address is not safe, otherwise 0
Sets up the TX descriptor ring buffers.
This function sets up the descriptor list used for transmit packets.
- Parameters:
-
[in] lpc_enetif Pointer to driver data structure
Free TX buffers that are complete
- Parameters:
-
[in] lpc_enetif Pointer to driver data structure [in] cidx EMAC current descriptor comsumer index
User call for freeingTX buffers that are complete
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif
Polls if an available TX descriptor is ready. Can be used to determine if the low level transmit function will block.
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif
- Returns:
- 0 if no descriptors are read, or >0
Low level output of a packet. Never call this from an interrupt context, as it may block until TX descriptors become available.
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif [in] p the MAC packet to send (e.g. IP packet including MAC addresses and type)
- Returns:
- ERR_OK if the packet could be sent or an err_t value if the packet couldn't be sent
LPC EMAC interrupt handler.
This function handles the transmit, receive, and error interrupt of the LPC177x_8x. This is meant to be used when NO_SYS=0.
Packet reception task
This task is called when a packet is received. It will pass the packet to the LWIP core.
- Parameters:
-
[in] pvParameters Not used yet
Transmit cleanup task
This task is called when a transmit interrupt occurs and reclaims the pbuf and descriptor used for the packet once the packet has been transferred.
- Parameters:
-
[in] pvParameters Not used yet
Low level init of the MAC and PHY.
- Parameters:
-
[in] netif Pointer to LWIP netif structure
This function is the ethernet packet send function. It calls etharp_output after checking link status.
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif [in] q Pointer to pbug to send [in] ipaddr IP address
- Returns:
- ERR_OK or error code
Should be called at the beginning of the program to set up the network interface.
This function should be passed as a parameter to netif_add().
- Parameters:
-
[in] netif the lwip network interface structure for this lpc_enetif
- Returns:
- ERR_OK if the loopif is initialized ERR_MEM if private data couldn't be allocated any other err_t on error
Definition at line 529 of file lpc17_emac.c.
s32_t lpc_rx_queue | ( | struct netif * | netif ) |
Attempt to allocate and requeue a new pbuf for RX.
- Parameters:
-
[in] netif Pointer to the netif structure
- Returns:
- 1 if a packet was allocated and requeued, otherwise 0
Definition at line 286 of file lpc17_emac.c.
static err_t lpc_rx_setup | ( | struct lpc_enetdata * | lpc_enetif ) | [static] |
Sets up the RX descriptor ring buffers.
This function sets up the descriptor list used for receive packets.
- Parameters:
-
[in] lpc_enetif Pointer to driver data structure
- Returns:
- Always returns ERR_OK
Definition at line 326 of file lpc17_emac.c.
static void lpc_rxqueue_pbuf | ( | struct lpc_enetdata * | lpc_enetif, |
struct pbuf * | p | ||
) | [static] |
Queues a pbuf into the RX descriptor list.
- Parameters:
-
[in] lpc_enetif Pointer to the drvier data structure [in] p Pointer to pbuf to queue
Definition at line 250 of file lpc17_emac.c.
Variable Documentation
LPC EMAC driver work data.
Definition at line 157 of file lpc17_emac.c.
Generated on Tue Jul 12 2022 23:10:20 by 1.7.2