Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- http://svn.openrobotino.org/firmware/EA09/trunk/src/LPC23_EMAC.c
- http://svn.openrobotino.org/firmware/EA09/trunk/src/LPC23_EMAC.h <--- bit defs, very similar to sun4i_emac
- http://www.keil.com/dd/docs/arm/philips/lpc23xx.h <-registers like below
- _______________________________________________________________________________________________________________
- /* Ethernet MAC (32 bit data bus) -- all registers are RW unless indicated in parentheses */
- #define MAC_BASE_ADDR 0xFFE00000 /* AHB Peripheral # 0 */
- #define MAC_MAC1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x000)) /* MAC config reg 1 */
- #define MAC_MAC2 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x004)) /* MAC config reg 2 */
- #define MAC_IPGT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x008)) /* b2b InterPacketGap reg */
- #define MAC_IPGR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x00C)) /* non b2b InterPacketGap reg */
- #define MAC_CLRT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x010)) /* CoLlision window/ReTry reg */
- #define MAC_MAXF (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x014)) /* MAXimum Frame reg */
- #define MAC_SUPP (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x018)) /* PHY SUPPort reg */
- #define MAC_TEST (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x01C)) /* TEST reg */
- #define MAC_MCFG (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x020)) /* MII Mgmt ConFiG reg */
- #define MAC_MCMD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x024)) /* MII Mgmt CoMmanD reg */
- #define MAC_MADR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x028)) /* MII Mgmt ADdRess reg */
- #define MAC_MWTD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x02C)) /* MII Mgmt WriTe Data reg (WO) */
- #define MAC_MRDD (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x030)) /* MII Mgmt ReaD Data reg (RO) */
- #define MAC_MIND (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x034)) /* MII Mgmt INDicators reg (RO) */
- #define MAC_SA0 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x040)) /* Station Address 0 reg */
- #define MAC_SA1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x044)) /* Station Address 1 reg */
- #define MAC_SA2 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x048)) /* Station Address 2 reg */
- #define MAC_COMMAND (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x100)) /* Command reg */
- #define MAC_STATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x104)) /* Status reg (RO) */
- #define MAC_RXDESCRIPTOR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x108)) /* Rx descriptor base address reg */
- #define MAC_RXSTATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x10C)) /* Rx status base address reg */
- #define MAC_RXDESCRIPTORNUM (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x110)) /* Rx number of descriptors reg */
- #define MAC_RXPRODUCEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x114)) /* Rx produce index reg (RO) */
- #define MAC_RXCONSUMEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x118)) /* Rx consume index reg */
- #define MAC_TXDESCRIPTOR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x11C)) /* Tx descriptor base address reg */
- #define MAC_TXSTATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x120)) /* Tx status base address reg */
- #define MAC_TXDESCRIPTORNUM (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x124)) /* Tx number of descriptors reg */
- #define MAC_TXPRODUCEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x128)) /* Tx produce index reg */
- #define MAC_TXCONSUMEINDEX (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x12C)) /* Tx consume index reg (RO) */
- #define MAC_TSV0 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x158)) /* Tx status vector 0 reg (RO) */
- #define MAC_TSV1 (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x15C)) /* Tx status vector 1 reg (RO) */
- #define MAC_RSV (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x160)) /* Rx status vector reg (RO) */
- #define MAC_FLOWCONTROLCNT (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x170)) /* Flow control counter reg */
- #define MAC_FLOWCONTROLSTS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x174)) /* Flow control status reg */
- #define MAC_RXFILTERCTRL (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x200)) /* Rx filter ctrl reg */
- #define MAC_RXFILTERWOLSTS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x204)) /* Rx filter WoL status reg (RO) */
- #define MAC_RXFILTERWOLCLR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x208)) /* Rx filter WoL clear reg (WO) */
- #define MAC_HASHFILTERL (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x210)) /* Hash filter LSBs reg */
- #define MAC_HASHFILTERH (*(volatile unsigned long *)(MAC_BASE_ADDR + 0x214)) /* Hash filter MSBs reg */
- #define MAC_INTSTATUS (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE0)) /* Interrupt status reg (RO) */
- #define MAC_INTENABLE (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE4)) /* Interrupt enable reg */
- #define MAC_INTCLEAR (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFE8)) /* Interrupt clear reg (WO) */
- #define MAC_INTSET (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFEC)) /* Interrupt set reg (WO) */
- #define MAC_POWERDOWN (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFF4)) /* Power-down reg */
- #define MAC_MODULEID (*(volatile unsigned long *)(MAC_BASE_ADDR + 0xFFC)) /* Module ID reg (RO) */
- __________________________________________________________________________________________________________________
- from linux/drivers/net/ethernet/allwinner/sun4i-emac.h
- #define EMAC_CTL_REG (0x00)
- #define EMAC_TX_MODE_REG (0x04)
- #define EMAC_TX_FLOW_REG (0x08)
- #define EMAC_TX_CTL0_REG (0x0c)
- #define EMAC_TX_CTL1_REG (0x10)
- #define EMAC_TX_INS_REG (0x14)
- #define EMAC_TX_PL0_REG (0x18)
- #define EMAC_TX_PL1_REG (0x1c)
- #define EMAC_TX_STA_REG (0x20)
- #define EMAC_TX_IO_DATA_REG (0x24)
- #define EMAC_TX_IO_DATA1_REG (0x28)
- #define EMAC_TX_TSVL0_REG (0x2c)
- #define EMAC_TX_TSVH0_REG (0x30)
- #define EMAC_TX_TSVL1_REG (0x34)
- #define EMAC_TX_TSVH1_REG (0x38)
- #define EMAC_RX_CTL_REG (0x3c)
- #define EMAC_RX_HASH0_REG (0x40)
- #define EMAC_RX_HASH1_REG (0x44)
- #define EMAC_RX_STA_REG (0x48)
- #define EMAC_RX_IO_DATA_REG (0x4c)
- #define EMAC_RX_FBC_REG (0x50)
- #define EMAC_INT_CTL_REG (0x54)
- #define EMAC_INT_STA_REG (0x58)
- #define EMAC_MAC_CTL0_REG (0x5c)
- #define EMAC_MAC_CTL1_REG (0x60)
- #define EMAC_MAC_IPGT_REG (0x64)
- #define EMAC_MAC_IPGR_REG (0x68)
- #define EMAC_MAC_CLRT_REG (0x6c)
- #define EMAC_MAC_MAXF_REG (0x70)
- #define EMAC_MAC_SUPP_REG (0x74)
- #define EMAC_MAC_TEST_REG (0x78)
- #define EMAC_MAC_MCFG_REG (0x7c)
- #define EMAC_MAC_A0_REG (0x98)
- #define EMAC_MAC_A1_REG (0x9c)
- #define EMAC_MAC_A2_REG (0xa0)
- #define EMAC_SAFX_L_REG0 (0xa4)
- #define EMAC_SAFX_H_REG0 (0xa8)
- #define EMAC_SAFX_L_REG1 (0xac)
- #define EMAC_SAFX_H_REG1 (0xb0)
- #define EMAC_SAFX_L_REG2 (0xb4)
- #define EMAC_SAFX_H_REG2 (0xb8)
- #define EMAC_SAFX_L_REG3 (0xbc)
- #define EMAC_SAFX_H_REG3 (0xc0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement