Path: blob/master/arch/unicore32/include/mach/regs-umal.h
10819 views
/*1* PKUnity Ultra Media Access Layer (UMAL) Ethernet MAC Registers2*/34/* MAC module of UMAL */5/* UMAL's MAC module includes G/MII interface, several additional PHY6* interfaces, and MAC control sub-layer, which provides support for control7* frames (e.g. PAUSE frames).8*/9/*10* TX/RX reset and control UMAL_CFG111*/12#define UMAL_CFG1 (PKUNITY_UMAL_BASE + 0x0000)13/*14* MAC interface mode control UMAL_CFG215*/16#define UMAL_CFG2 (PKUNITY_UMAL_BASE + 0x0004)17/*18* Inter Packet/Frame Gap UMAL_IPGIFG19*/20#define UMAL_IPGIFG (PKUNITY_UMAL_BASE + 0x0008)21/*22* Collision retry or backoff UMAL_HALFDUPLEX23*/24#define UMAL_HALFDUPLEX (PKUNITY_UMAL_BASE + 0x000c)25/*26* Maximum Frame Length UMAL_MAXFRAME27*/28#define UMAL_MAXFRAME (PKUNITY_UMAL_BASE + 0x0010)29/*30* Test Regsiter UMAL_TESTREG31*/32#define UMAL_TESTREG (PKUNITY_UMAL_BASE + 0x001c)33/*34* MII Management Configure UMAL_MIICFG35*/36#define UMAL_MIICFG (PKUNITY_UMAL_BASE + 0x0020)37/*38* MII Management Command UMAL_MIICMD39*/40#define UMAL_MIICMD (PKUNITY_UMAL_BASE + 0x0024)41/*42* MII Management Address UMAL_MIIADDR43*/44#define UMAL_MIIADDR (PKUNITY_UMAL_BASE + 0x0028)45/*46* MII Management Control UMAL_MIICTRL47*/48#define UMAL_MIICTRL (PKUNITY_UMAL_BASE + 0x002c)49/*50* MII Management Status UMAL_MIISTATUS51*/52#define UMAL_MIISTATUS (PKUNITY_UMAL_BASE + 0x0030)53/*54* MII Management Indicator UMAL_MIIIDCT55*/56#define UMAL_MIIIDCT (PKUNITY_UMAL_BASE + 0x0034)57/*58* Interface Control UMAL_IFCTRL59*/60#define UMAL_IFCTRL (PKUNITY_UMAL_BASE + 0x0038)61/*62* Interface Status UMAL_IFSTATUS63*/64#define UMAL_IFSTATUS (PKUNITY_UMAL_BASE + 0x003c)65/*66* MAC address (high 4 bytes) UMAL_STADDR167*/68#define UMAL_STADDR1 (PKUNITY_UMAL_BASE + 0x0040)69/*70* MAC address (low 2 bytes) UMAL_STADDR271*/72#define UMAL_STADDR2 (PKUNITY_UMAL_BASE + 0x0044)7374/* FIFO MODULE OF UMAL */75/* UMAL's FIFO module provides data queuing for increased system level76* throughput77*/78#define UMAL_FIFOCFG0 (PKUNITY_UMAL_BASE + 0x0048)79#define UMAL_FIFOCFG1 (PKUNITY_UMAL_BASE + 0x004c)80#define UMAL_FIFOCFG2 (PKUNITY_UMAL_BASE + 0x0050)81#define UMAL_FIFOCFG3 (PKUNITY_UMAL_BASE + 0x0054)82#define UMAL_FIFOCFG4 (PKUNITY_UMAL_BASE + 0x0058)83#define UMAL_FIFOCFG5 (PKUNITY_UMAL_BASE + 0x005c)84#define UMAL_FIFORAM0 (PKUNITY_UMAL_BASE + 0x0060)85#define UMAL_FIFORAM1 (PKUNITY_UMAL_BASE + 0x0064)86#define UMAL_FIFORAM2 (PKUNITY_UMAL_BASE + 0x0068)87#define UMAL_FIFORAM3 (PKUNITY_UMAL_BASE + 0x006c)88#define UMAL_FIFORAM4 (PKUNITY_UMAL_BASE + 0x0070)89#define UMAL_FIFORAM5 (PKUNITY_UMAL_BASE + 0x0074)90#define UMAL_FIFORAM6 (PKUNITY_UMAL_BASE + 0x0078)91#define UMAL_FIFORAM7 (PKUNITY_UMAL_BASE + 0x007c)9293/* MAHBE MODULE OF UMAL */94/* UMAL's MAHBE module interfaces to the host system through 32-bit AHB Master95* and Slave ports.Registers within the M-AHBE provide Control and Status96* information concerning these transfers.97*/98/*99* Transmit Control UMAL_DMATxCtrl100*/101#define UMAL_DMATxCtrl (PKUNITY_UMAL_BASE + 0x0180)102/*103* Pointer to TX Descripter UMAL_DMATxDescriptor104*/105#define UMAL_DMATxDescriptor (PKUNITY_UMAL_BASE + 0x0184)106/*107* Status of Tx Packet Transfers UMAL_DMATxStatus108*/109#define UMAL_DMATxStatus (PKUNITY_UMAL_BASE + 0x0188)110/*111* Receive Control UMAL_DMARxCtrl112*/113#define UMAL_DMARxCtrl (PKUNITY_UMAL_BASE + 0x018c)114/*115* Pointer to Rx Descriptor UMAL_DMARxDescriptor116*/117#define UMAL_DMARxDescriptor (PKUNITY_UMAL_BASE + 0x0190)118/*119* Status of Rx Packet Transfers UMAL_DMARxStatus120*/121#define UMAL_DMARxStatus (PKUNITY_UMAL_BASE + 0x0194)122/*123* Interrupt Mask UMAL_DMAIntrMask124*/125#define UMAL_DMAIntrMask (PKUNITY_UMAL_BASE + 0x0198)126/*127* Interrupts, read only UMAL_DMAInterrupt128*/129#define UMAL_DMAInterrupt (PKUNITY_UMAL_BASE + 0x019c)130131/*132* Commands for UMAL_CFG1 register133*/134#define UMAL_CFG1_TXENABLE FIELD(1, 1, 0)135#define UMAL_CFG1_RXENABLE FIELD(1, 1, 2)136#define UMAL_CFG1_TXFLOWCTL FIELD(1, 1, 4)137#define UMAL_CFG1_RXFLOWCTL FIELD(1, 1, 5)138#define UMAL_CFG1_CONFLPBK FIELD(1, 1, 8)139#define UMAL_CFG1_RESET FIELD(1, 1, 31)140#define UMAL_CFG1_CONFFLCTL (MAC_TX_FLOW_CTL | MAC_RX_FLOW_CTL)141142/*143* Commands for UMAL_CFG2 register144*/145#define UMAL_CFG2_FULLDUPLEX FIELD(1, 1, 0)146#define UMAL_CFG2_CRCENABLE FIELD(1, 1, 1)147#define UMAL_CFG2_PADCRC FIELD(1, 1, 2)148#define UMAL_CFG2_LENGTHCHECK FIELD(1, 1, 4)149#define UMAL_CFG2_MODEMASK FMASK(2, 8)150#define UMAL_CFG2_NIBBLEMODE FIELD(1, 2, 8)151#define UMAL_CFG2_BYTEMODE FIELD(2, 2, 8)152#define UMAL_CFG2_PREAMBLENMASK FMASK(4, 12)153#define UMAL_CFG2_DEFPREAMBLEN FIELD(7, 4, 12)154#define UMAL_CFG2_FD100 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_NIBBLEMODE \155| UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \156| UMAL_CFG2_CRCENABLE | UMAL_CFG2_FULLDUPLEX)157#define UMAL_CFG2_FD1000 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_BYTEMODE \158| UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \159| UMAL_CFG2_CRCENABLE | UMAL_CFG2_FULLDUPLEX)160#define UMAL_CFG2_HD100 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_NIBBLEMODE \161| UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \162| UMAL_CFG2_CRCENABLE)163164/*165* Command for UMAL_IFCTRL register166*/167#define UMAL_IFCTRL_RESET FIELD(1, 1, 31)168169/*170* Command for UMAL_MIICFG register171*/172#define UMAL_MIICFG_RESET FIELD(1, 1, 31)173174/*175* Command for UMAL_MIICMD register176*/177#define UMAL_MIICMD_READ FIELD(1, 1, 0)178179/*180* Command for UMAL_MIIIDCT register181*/182#define UMAL_MIIIDCT_BUSY FIELD(1, 1, 0)183#define UMAL_MIIIDCT_NOTVALID FIELD(1, 1, 2)184185/*186* Commands for DMATxCtrl regesters187*/188#define UMAL_DMA_Enable FIELD(1, 1, 0)189190/*191* Commands for DMARxCtrl regesters192*/193#define UMAL_DMAIntrMask_ENABLEHALFWORD FIELD(1, 1, 16)194195/*196* Command for DMARxStatus197*/198#define CLR_RX_BUS_ERR FIELD(1, 1, 3)199#define CLR_RX_OVERFLOW FIELD(1, 1, 2)200#define CLR_RX_PKT FIELD(1, 1, 0)201202/*203* Command for DMATxStatus204*/205#define CLR_TX_BUS_ERR FIELD(1, 1, 3)206#define CLR_TX_UNDERRUN FIELD(1, 1, 1)207#define CLR_TX_PKT FIELD(1, 1, 0)208209/*210* Commands for DMAIntrMask and DMAInterrupt register211*/212#define INT_RX_MASK FIELD(0xd, 4, 4)213#define INT_TX_MASK FIELD(0xb, 4, 0)214215#define INT_RX_BUS_ERR FIELD(1, 1, 7)216#define INT_RX_OVERFLOW FIELD(1, 1, 6)217#define INT_RX_PKT FIELD(1, 1, 4)218#define INT_TX_BUS_ERR FIELD(1, 1, 3)219#define INT_TX_UNDERRUN FIELD(1, 1, 1)220#define INT_TX_PKT FIELD(1, 1, 0)221222/*223* MARCOS of UMAL's descriptors224*/225#define UMAL_DESC_PACKETSIZE_EMPTY FIELD(1, 1, 31)226#define UMAL_DESC_PACKETSIZE_NONEMPTY FIELD(0, 1, 31)227#define UMAL_DESC_PACKETSIZE_SIZEMASK FMASK(12, 0)228229230231