#include <cfg/os.h>#include <arch/arm.h>#include <string.h>#include <sys/atom.h>#include <sys/heap.h>#include <sys/thread.h>#include <sys/event.h>#include <sys/timer.h>#include <sys/confnet.h>#include <netinet/if_ether.h>#include <net/ether.h>#include <net/if_var.h>#include <dev/irqreg.h>#include <dev/at91sam7x_emac.h>#include <stdio.h>
Go to the source code of this file.
Data Structures | |
| struct | _EMACINFO |
| Network interface controller information structure. More... | |
| struct | _BufDescriptor |
Defines | |
| #define | NUT_THREAD_NICRXSTACK 768 |
| #define | EMAC_RX_BUFFERS 32 |
| #define | EMAC_RX_BUFSIZ 128 |
| #define | EMAC_TX_BUFFERS 2 |
| #define | EMAC_TX_BUFSIZ 1536 |
| #define | NIC_PHY_ADDR 31 |
| #define | NIC_PHY_BMCR 0x00 |
| Basic mode control register. | |
| #define | NIC_PHY_BMCR_COLTEST 0x0080 |
| Collision test. | |
| #define | NIC_PHY_BMCR_FDUPLEX 0x0100 |
| Full duplex mode. | |
| #define | NIC_PHY_BMCR_ANEGSTART 0x0200 |
| Restart auto negotiation. | |
| #define | NIC_PHY_BMCR_ISOLATE 0x0400 |
| Isolate from MII. | |
| #define | NIC_PHY_BMCR_PWRDN 0x0800 |
| Power-down. | |
| #define | NIC_PHY_BMCR_ANEGENA 0x1000 |
| Enable auto negotiation. | |
| #define | NIC_PHY_BMCR_100MBPS 0x2000 |
| Select 100 Mbps. | |
| #define | NIC_PHY_BMCR_LOOPBACK 0x4000 |
| Enable loopback mode. | |
| #define | NIC_PHY_BMCR_RESET 0x8000 |
| Software reset. | |
| #define | NIC_PHY_BMSR 0x01 |
| Basic mode status register. | |
| #define | NIC_PHY_BMSR_ANCOMPL 0x0020 |
| Auto negotiation complete. | |
| #define | NIC_PHY_BMSR_LINKSTAT 0x0004 |
| Link status. | |
| #define | NIC_PHY_ID1 0x02 |
| PHY identifier register 1. | |
| #define | NIC_PHY_ID2 0x03 |
| PHY identifier register 2. | |
| #define | NIC_PHY_ANAR 0x04 |
| Auto negotiation advertisement register. | |
| #define | NIC_PHY_ANLPAR 0x05 |
| Auto negotiation link partner availability register. | |
| #define | NIC_PHY_ANER 0x06 |
| Auto negotiation expansion register. | |
| #define | PHY_TXCLK_ISOLATE_BIT 0 |
| #define | PHY_REFCLK_XT2_BIT 0 |
| #define | PHY_TXEN_BIT 1 |
| #define | PHY_TXD0_BIT 2 |
| #define | PHY_TXD1_BIT 3 |
| #define | PHY_CRS_AD4_BIT 4 |
| #define | PHY_RXD0_AD0_BIT 5 |
| #define | PHY_RXD1_AD1_BIT 6 |
| #define | PHY_RXER_RXD4_RPTR_BIT 7 |
| #define | PHY_MDC_BIT 8 |
| #define | PHY_MDIO_BIT 9 |
| #define | PHY_TXD2_BIT 10 |
| #define | PHY_TXD3_BIT 11 |
| #define | PHY_TXER_TXD4_BIT 12 |
| #define | PHY_RXD2_AD2_BIT 13 |
| #define | PHY_RXD3_AD3_BIT 14 |
| #define | PHY_RXDV_TESTMODE_BIT 15 |
| #define | PHY_COL_RMII_BIT 16 |
| #define | PHY_RXCLK_10BTSER_BIT 17 |
| #define | PHY_PWRDN_BIT 18 |
| #define | PHY_MDINTR_BIT 26 |
| #define | PHY_MII_PINS |
| #define | RXBUF_OWNERSHIP 0x00000001 |
| #define | RXBUF_WRAP 0x00000002 |
| #define | RXBUF_ADDRMASK 0xFFFFFFFC |
| #define | RXS_BROADCAST_ADDR 0x80000000 |
| Broadcast address detected. | |
| #define | RXS_MULTICAST_HASH 0x40000000 |
| Multicast hash match. | |
| #define | RXS_UNICAST_HASH 0x20000000 |
| Unicast hash match. | |
| #define | RXS_EXTERNAL_ADDR 0x10000000 |
| External address match. | |
| #define | RXS_SA1_ADDR 0x04000000 |
| Specific address register 1 match. | |
| #define | RXS_SA2_ADDR 0x02000000 |
| Specific address register 2 match. | |
| #define | RXS_SA3_ADDR 0x01000000 |
| Specific address register 3 match. | |
| #define | RXS_SA4_ADDR 0x00800000 |
| Specific address register 4 match. | |
| #define | RXS_TYPE_ID 0x00400000 |
| Type ID match. | |
| #define | RXS_VLAN_TAG 0x00200000 |
| VLAN tag detected. | |
| #define | RXS_PRIORITY_TAG 0x00100000 |
| Priority tag detected. | |
| #define | RXS_VLAN_PRIORITY 0x000E0000 |
| VLAN priority. | |
| #define | RXS_CFI_IND 0x00010000 |
| Concatenation format indicator. | |
| #define | RXS_EOF 0x00008000 |
| End of frame. | |
| #define | RXS_SOF 0x00004000 |
| Start of frame. | |
| #define | RXS_RBF_OFFSET 0x00003000 |
| Receive buffer offset mask. | |
| #define | RXS_LENGTH_FRAME 0x000007FF |
| Length of frame including FCS. | |
| #define | TXS_USED 0x80000000 |
| Used buffer. | |
| #define | TXS_WRAP 0x40000000 |
| Last descriptor. | |
| #define | TXS_ERROR 0x20000000 |
| Retry limit exceeded. | |
| #define | TXS_UNDERRUN 0x10000000 |
| Transmit underrun. | |
| #define | TXS_NO_BUFFER 0x08000000 |
| Buffer exhausted. | |
| #define | TXS_NO_CRC 0x00010000 |
| CRC not appended. | |
| #define | TXS_LAST_BUFF 0x00008000 |
| Last buffer of frame. | |
Typedefs | |
| typedef struct _EMACINFO | EMACINFO |
| Network interface controller information type. | |
| typedef struct _BufDescriptor | BufDescriptor |
Functions | |
| void | EmacRxThread (void *arg) |
| int | EmacOutput (NUTDEVICE *dev, NETBUF *nb) |
| Send Ethernet packet. | |
| int | EmacInit (NUTDEVICE *dev) |
| Initialize Ethernet hardware. | |
Variables | |
| NUTDEVICE | devAt91Emac |
| Device information structure. | |
| #define NUT_THREAD_NICRXSTACK 768 |
Definition at line 97 of file at91sam7x_emac.c.
Referenced by EmacInit().
| #define EMAC_RX_BUFFERS 32 |
Definition at line 101 of file at91sam7x_emac.c.
| #define EMAC_RX_BUFSIZ 128 |
Definition at line 103 of file at91sam7x_emac.c.
| #define EMAC_TX_BUFFERS 2 |
Definition at line 105 of file at91sam7x_emac.c.
| #define EMAC_TX_BUFSIZ 1536 |
Definition at line 107 of file at91sam7x_emac.c.
| #define NIC_PHY_ADDR 31 |
Definition at line 110 of file at91sam7x_emac.c.
| #define PHY_TXCLK_ISOLATE_BIT 0 |
Definition at line 139 of file at91sam7x_emac.c.
| #define PHY_REFCLK_XT2_BIT 0 |
Definition at line 140 of file at91sam7x_emac.c.
| #define PHY_TXEN_BIT 1 |
Definition at line 141 of file at91sam7x_emac.c.
| #define PHY_TXD0_BIT 2 |
Definition at line 142 of file at91sam7x_emac.c.
| #define PHY_TXD1_BIT 3 |
Definition at line 143 of file at91sam7x_emac.c.
| #define PHY_CRS_AD4_BIT 4 |
Definition at line 144 of file at91sam7x_emac.c.
| #define PHY_RXD0_AD0_BIT 5 |
Definition at line 145 of file at91sam7x_emac.c.
| #define PHY_RXD1_AD1_BIT 6 |
Definition at line 146 of file at91sam7x_emac.c.
| #define PHY_RXER_RXD4_RPTR_BIT 7 |
Definition at line 147 of file at91sam7x_emac.c.
| #define PHY_MDC_BIT 8 |
Definition at line 148 of file at91sam7x_emac.c.
| #define PHY_MDIO_BIT 9 |
Definition at line 149 of file at91sam7x_emac.c.
| #define PHY_TXD2_BIT 10 |
Definition at line 150 of file at91sam7x_emac.c.
| #define PHY_TXD3_BIT 11 |
Definition at line 151 of file at91sam7x_emac.c.
| #define PHY_TXER_TXD4_BIT 12 |
Definition at line 152 of file at91sam7x_emac.c.
| #define PHY_RXD2_AD2_BIT 13 |
Definition at line 153 of file at91sam7x_emac.c.
| #define PHY_RXD3_AD3_BIT 14 |
Definition at line 154 of file at91sam7x_emac.c.
| #define PHY_RXDV_TESTMODE_BIT 15 |
Definition at line 155 of file at91sam7x_emac.c.
| #define PHY_COL_RMII_BIT 16 |
Definition at line 156 of file at91sam7x_emac.c.
| #define PHY_RXCLK_10BTSER_BIT 17 |
Definition at line 157 of file at91sam7x_emac.c.
| #define PHY_PWRDN_BIT 18 |
Definition at line 158 of file at91sam7x_emac.c.
| #define PHY_MDINTR_BIT 26 |
Definition at line 159 of file at91sam7x_emac.c.
| #define PHY_MII_PINS |
_BV(PHY_REFCLK_XT2_BIT) \ | _BV(PHY_TXEN_BIT) \ | _BV(PHY_TXD0_BIT) \ | _BV(PHY_TXD1_BIT) \ | _BV(PHY_CRS_AD4_BIT) \ | _BV(PHY_RXD0_AD0_BIT) \ | _BV(PHY_RXD1_AD1_BIT) \ | _BV(PHY_RXER_RXD4_RPTR_BIT) \ | _BV(PHY_MDC_BIT) \ | _BV(PHY_MDIO_BIT) \ | _BV(PHY_TXD2_BIT) \ | _BV(PHY_TXD3_BIT) \ | _BV(PHY_TXER_TXD4_BIT) \ | _BV(PHY_RXD2_AD2_BIT) \ | _BV(PHY_RXD3_AD3_BIT) \ | _BV(PHY_RXDV_TESTMODE_BIT) \ | _BV(PHY_COL_RMII_BIT) \ | _BV(PHY_RXCLK_10BTSER_BIT)
Definition at line 161 of file at91sam7x_emac.c.
| #define RXBUF_OWNERSHIP 0x00000001 |
Definition at line 224 of file at91sam7x_emac.c.
| #define RXBUF_WRAP 0x00000002 |
Definition at line 225 of file at91sam7x_emac.c.
| #define RXBUF_ADDRMASK 0xFFFFFFFC |
Definition at line 226 of file at91sam7x_emac.c.
| #define RXS_BROADCAST_ADDR 0x80000000 |
Broadcast address detected.
Definition at line 228 of file at91sam7x_emac.c.
| #define RXS_MULTICAST_HASH 0x40000000 |
Multicast hash match.
Definition at line 229 of file at91sam7x_emac.c.
| #define RXS_UNICAST_HASH 0x20000000 |
Unicast hash match.
Definition at line 230 of file at91sam7x_emac.c.
| #define RXS_EXTERNAL_ADDR 0x10000000 |
External address match.
Definition at line 231 of file at91sam7x_emac.c.
| #define RXS_SA1_ADDR 0x04000000 |
Specific address register 1 match.
Definition at line 232 of file at91sam7x_emac.c.
| #define RXS_SA2_ADDR 0x02000000 |
Specific address register 2 match.
Definition at line 233 of file at91sam7x_emac.c.
| #define RXS_SA3_ADDR 0x01000000 |
Specific address register 3 match.
Definition at line 234 of file at91sam7x_emac.c.
| #define RXS_SA4_ADDR 0x00800000 |
Specific address register 4 match.
Definition at line 235 of file at91sam7x_emac.c.
| #define RXS_TYPE_ID 0x00400000 |
Type ID match.
Definition at line 236 of file at91sam7x_emac.c.
| #define RXS_VLAN_TAG 0x00200000 |
VLAN tag detected.
Definition at line 237 of file at91sam7x_emac.c.
| #define RXS_PRIORITY_TAG 0x00100000 |
Priority tag detected.
Definition at line 238 of file at91sam7x_emac.c.
| #define RXS_VLAN_PRIORITY 0x000E0000 |
VLAN priority.
Definition at line 239 of file at91sam7x_emac.c.
| #define RXS_CFI_IND 0x00010000 |
Concatenation format indicator.
Definition at line 240 of file at91sam7x_emac.c.
| #define RXS_EOF 0x00008000 |
End of frame.
Definition at line 241 of file at91sam7x_emac.c.
| #define RXS_SOF 0x00004000 |
Start of frame.
Definition at line 242 of file at91sam7x_emac.c.
| #define RXS_RBF_OFFSET 0x00003000 |
Receive buffer offset mask.
Definition at line 243 of file at91sam7x_emac.c.
| #define RXS_LENGTH_FRAME 0x000007FF |
Length of frame including FCS.
Definition at line 244 of file at91sam7x_emac.c.
| #define TXS_USED 0x80000000 |
| #define TXS_WRAP 0x40000000 |
Last descriptor.
Definition at line 247 of file at91sam7x_emac.c.
| #define TXS_ERROR 0x20000000 |
Retry limit exceeded.
Definition at line 248 of file at91sam7x_emac.c.
| #define TXS_UNDERRUN 0x10000000 |
Transmit underrun.
Definition at line 249 of file at91sam7x_emac.c.
| #define TXS_NO_BUFFER 0x08000000 |
Buffer exhausted.
Definition at line 250 of file at91sam7x_emac.c.
| #define TXS_NO_CRC 0x00010000 |
CRC not appended.
Definition at line 251 of file at91sam7x_emac.c.
| #define TXS_LAST_BUFF 0x00008000 |
Last buffer of frame.
Definition at line 252 of file at91sam7x_emac.c.
Network interface controller information type.
Definition at line 204 of file at91sam7x_emac.c.
| typedef struct _BufDescriptor BufDescriptor |