NXP LPC LWIP port documentation  v0.80
LWIP port for LPC devices
lpc EMAC driver for LWIP

Data Structures

struct  LPC_TXRX_DESC_T
 Structure of a TX/RX descriptor. More...

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_read_status (void)
 Reads current MII link 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)
 Starts a read operation via the MII link (non-blocking)
err_t lpc_mii_read (u32_t PhyReg, u32_t *data)
 Read a value via the MII link (blocking)
void lpc_enetif_input (struct netif *netif)
 Attempt to read a packet from the EMAC interface.
s32_t lpc_tx_ready (struct netif *netif)
 Polls if an available TX descriptor is ready. Can be used to determine if the low level transmit function will block.
void ENET_IRQHandler (void)
 LPC EMAC interrupt handler.
err_t lpc_enetif_init (struct netif *netif)

Detailed Description

This driver is currently for the LPC177x_8x devices only, although the LPC32x0 and LPC2000 series devices share the same ethernet controller.


Function Documentation

void ENET_IRQHandler ( void  )

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. It is not implemented here and is just a spotholder for RTOS support.

err_t lpc_enetif_init ( struct netif *  netif)

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]netifthe 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
void lpc_enetif_input ( struct netif *  netif)

Attempt to read a packet from the EMAC interface.

Parameters:
[in]netifthe lwip network interface structure for this lpc_enetif
err_t lpc_mii_read ( u32_t  PhyReg,
u32_t *  data 
)

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]PhyRegPHY register to read from
[in]dataPointer to where to save data read via MII
Returns:
0 if the read was successful, otherwise !0
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
void lpc_mii_read_noblock ( u32_t  PhyReg)

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]PhyRegPHY register to read from
u32_t lpc_mii_read_status ( void  )

Reads current MII link status.

This function will return the current MII link status and is meant to be used with non-blocking functions for monitor PHY status such as connection state.

Returns:
Current MII link status, an OR'ed value of EMAC_MIND_BUSY, EMAC_MIND_SCAN, EMAC_MIND_NOT_VAL, and EMAC_MIND_MII_LINK_FAIL
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]PhyRegPHY register to write to
[in]ValueValue to write
Returns:
0 if the write was successful, otherwise !0
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]PhyRegPHY register to write to
[in]ValueValue to write
s32_t lpc_tx_ready ( struct netif *  netif)

Polls if an available TX descriptor is ready. Can be used to determine if the low level transmit function will block.

Parameters:
netifthe lwip network interface structure for this lpc_enetif
Returns:
0 if no descriptors are read, or >0