1*c36125f6SEmmanuel Vadot /*- 2*c36125f6SEmmanuel Vadot * Copyright (c) 2014 Ruslan Bukin <br@bsdpad.com> 3*c36125f6SEmmanuel Vadot * 4*c36125f6SEmmanuel Vadot * This software was developed by SRI International and the University of 5*c36125f6SEmmanuel Vadot * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) 6*c36125f6SEmmanuel Vadot * ("CTSRD"), as part of the DARPA CRASH research programme. 7*c36125f6SEmmanuel Vadot * 8*c36125f6SEmmanuel Vadot * Redistribution and use in source and binary forms, with or without 9*c36125f6SEmmanuel Vadot * modification, are permitted provided that the following conditions 10*c36125f6SEmmanuel Vadot * are met: 11*c36125f6SEmmanuel Vadot * 1. Redistributions of source code must retain the above copyright 12*c36125f6SEmmanuel Vadot * notice, this list of conditions and the following disclaimer. 13*c36125f6SEmmanuel Vadot * 2. Redistributions in binary form must reproduce the above copyright 14*c36125f6SEmmanuel Vadot * notice, this list of conditions and the following disclaimer in the 15*c36125f6SEmmanuel Vadot * documentation and/or other materials provided with the distribution. 16*c36125f6SEmmanuel Vadot * 17*c36125f6SEmmanuel Vadot * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 18*c36125f6SEmmanuel Vadot * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19*c36125f6SEmmanuel Vadot * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20*c36125f6SEmmanuel Vadot * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21*c36125f6SEmmanuel Vadot * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22*c36125f6SEmmanuel Vadot * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23*c36125f6SEmmanuel Vadot * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24*c36125f6SEmmanuel Vadot * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25*c36125f6SEmmanuel Vadot * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26*c36125f6SEmmanuel Vadot * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27*c36125f6SEmmanuel Vadot * SUCH DAMAGE. 28*c36125f6SEmmanuel Vadot */ 29*c36125f6SEmmanuel Vadot 30*c36125f6SEmmanuel Vadot /* 31*c36125f6SEmmanuel Vadot * Register names were taken almost as is from the documentation. 32*c36125f6SEmmanuel Vadot */ 33*c36125f6SEmmanuel Vadot 34*c36125f6SEmmanuel Vadot #ifndef __DWC1000_REG_H__ 35*c36125f6SEmmanuel Vadot #define __DWC1000_REG_H__ 36*c36125f6SEmmanuel Vadot 37*c36125f6SEmmanuel Vadot #define PHY_MODE_UNKNOWN 0x0 38*c36125f6SEmmanuel Vadot #define PHY_MODE_RMII 0x1 39*c36125f6SEmmanuel Vadot #define PHY_MODE_RGMII 0x2 40*c36125f6SEmmanuel Vadot #define PHY_MODE_MII 0x3 41*c36125f6SEmmanuel Vadot 42*c36125f6SEmmanuel Vadot #define MAC_CONFIGURATION 0x0 43*c36125f6SEmmanuel Vadot #define CONF_JD (1 << 22) /* jabber timer disable */ 44*c36125f6SEmmanuel Vadot #define CONF_BE (1 << 21) /* Frame Burst Enable */ 45*c36125f6SEmmanuel Vadot #define CONF_PS (1 << 15) /* GMII/MII */ 46*c36125f6SEmmanuel Vadot #define CONF_FES (1 << 14) /* MII speed select */ 47*c36125f6SEmmanuel Vadot #define CONF_DM (1 << 11) /* Full Duplex Enable */ 48*c36125f6SEmmanuel Vadot #define CONF_IPC (1 << 10) /* IPC checksum offload */ 49*c36125f6SEmmanuel Vadot #define CONF_ACS (1 << 7) 50*c36125f6SEmmanuel Vadot #define CONF_TE (1 << 3) 51*c36125f6SEmmanuel Vadot #define CONF_RE (1 << 2) 52*c36125f6SEmmanuel Vadot #define MAC_FRAME_FILTER 0x4 53*c36125f6SEmmanuel Vadot #define FRAME_FILTER_RA (1U << 31) /* Receive All */ 54*c36125f6SEmmanuel Vadot #define FRAME_FILTER_HPF (1 << 10) /* Hash or Perfect Filter */ 55*c36125f6SEmmanuel Vadot #define FRAME_FILTER_PM (1 << 4) /* Pass multicast */ 56*c36125f6SEmmanuel Vadot #define FRAME_FILTER_HMC (1 << 2) 57*c36125f6SEmmanuel Vadot #define FRAME_FILTER_HUC (1 << 1) 58*c36125f6SEmmanuel Vadot #define FRAME_FILTER_PR (1 << 0) /* All Incoming Frames */ 59*c36125f6SEmmanuel Vadot #define GMAC_MAC_HTHIGH 0x08 60*c36125f6SEmmanuel Vadot #define GMAC_MAC_HTLOW 0x0c 61*c36125f6SEmmanuel Vadot #define GMII_ADDRESS 0x10 62*c36125f6SEmmanuel Vadot #define GMII_ADDRESS_PA_MASK 0x1f /* Phy device */ 63*c36125f6SEmmanuel Vadot #define GMII_ADDRESS_PA_SHIFT 11 64*c36125f6SEmmanuel Vadot #define GMII_ADDRESS_GR_MASK 0x1f /* Phy register */ 65*c36125f6SEmmanuel Vadot #define GMII_ADDRESS_GR_SHIFT 6 66*c36125f6SEmmanuel Vadot #define GMII_ADDRESS_CR_MASK 0xf 67*c36125f6SEmmanuel Vadot #define GMII_ADDRESS_CR_SHIFT 2 /* Clock */ 68*c36125f6SEmmanuel Vadot #define GMII_ADDRESS_GW (1 << 1) /* Write operation */ 69*c36125f6SEmmanuel Vadot #define GMII_ADDRESS_GB (1 << 0) /* Busy */ 70*c36125f6SEmmanuel Vadot #define GMII_DATA 0x14 71*c36125f6SEmmanuel Vadot #define FLOW_CONTROL 0x18 72*c36125f6SEmmanuel Vadot #define FLOW_CONTROL_PT_SHIFT 16 73*c36125f6SEmmanuel Vadot #define FLOW_CONTROL_UP (1 << 3) /* Unicast pause enable */ 74*c36125f6SEmmanuel Vadot #define FLOW_CONTROL_RX (1 << 2) /* RX Flow control enable */ 75*c36125f6SEmmanuel Vadot #define FLOW_CONTROL_TX (1 << 1) /* TX Flow control enable */ 76*c36125f6SEmmanuel Vadot #define GMAC_VLAN_TAG 0x1C 77*c36125f6SEmmanuel Vadot #define VERSION 0x20 78*c36125f6SEmmanuel Vadot #define DEBUG 0x24 79*c36125f6SEmmanuel Vadot #define LPI_CONTROL_STATUS 0x30 80*c36125f6SEmmanuel Vadot #define LPI_TIMERS_CONTROL 0x34 81*c36125f6SEmmanuel Vadot #define INTERRUPT_STATUS 0x38 82*c36125f6SEmmanuel Vadot #define INTERRUPT_MASK 0x3C 83*c36125f6SEmmanuel Vadot #define MAC_ADDRESS_HIGH(n) ((n > 15 ? 0x800 : 0x40) + 0x8 * n) 84*c36125f6SEmmanuel Vadot #define MAC_ADDRESS_LOW(n) ((n > 15 ? 0x804 : 0x44) + 0x8 * n) 85*c36125f6SEmmanuel Vadot 86*c36125f6SEmmanuel Vadot #define SGMII_RGMII_SMII_CTRL_STATUS 0xD8 87*c36125f6SEmmanuel Vadot #define MMC_CONTROL 0x100 88*c36125f6SEmmanuel Vadot #define MMC_CONTROL_CNTRST (1 << 0) 89*c36125f6SEmmanuel Vadot #define MMC_RECEIVE_INTERRUPT 0x104 90*c36125f6SEmmanuel Vadot #define MMC_TRANSMIT_INTERRUPT 0x108 91*c36125f6SEmmanuel Vadot #define MMC_RECEIVE_INTERRUPT_MASK 0x10C 92*c36125f6SEmmanuel Vadot #define MMC_TRANSMIT_INTERRUPT_MASK 0x110 93*c36125f6SEmmanuel Vadot #define TXOCTETCOUNT_GB 0x114 94*c36125f6SEmmanuel Vadot #define TXFRAMECOUNT_GB 0x118 95*c36125f6SEmmanuel Vadot #define TXBROADCASTFRAMES_G 0x11C 96*c36125f6SEmmanuel Vadot #define TXMULTICASTFRAMES_G 0x120 97*c36125f6SEmmanuel Vadot #define TX64OCTETS_GB 0x124 98*c36125f6SEmmanuel Vadot #define TX65TO127OCTETS_GB 0x128 99*c36125f6SEmmanuel Vadot #define TX128TO255OCTETS_GB 0x12C 100*c36125f6SEmmanuel Vadot #define TX256TO511OCTETS_GB 0x130 101*c36125f6SEmmanuel Vadot #define TX512TO1023OCTETS_GB 0x134 102*c36125f6SEmmanuel Vadot #define TX1024TOMAXOCTETS_GB 0x138 103*c36125f6SEmmanuel Vadot #define TXUNICASTFRAMES_GB 0x13C 104*c36125f6SEmmanuel Vadot #define TXMULTICASTFRAMES_GB 0x140 105*c36125f6SEmmanuel Vadot #define TXBROADCASTFRAMES_GB 0x144 106*c36125f6SEmmanuel Vadot #define TXUNDERFLOWERROR 0x148 107*c36125f6SEmmanuel Vadot #define TXSINGLECOL_G 0x14C 108*c36125f6SEmmanuel Vadot #define TXMULTICOL_G 0x150 109*c36125f6SEmmanuel Vadot #define TXDEFERRED 0x154 110*c36125f6SEmmanuel Vadot #define TXLATECOL 0x158 111*c36125f6SEmmanuel Vadot #define TXEXESSCOL 0x15C 112*c36125f6SEmmanuel Vadot #define TXCARRIERERR 0x160 113*c36125f6SEmmanuel Vadot #define TXOCTETCNT 0x164 114*c36125f6SEmmanuel Vadot #define TXFRAMECOUNT_G 0x168 115*c36125f6SEmmanuel Vadot #define TXEXCESSDEF 0x16C 116*c36125f6SEmmanuel Vadot #define TXPAUSEFRAMES 0x170 117*c36125f6SEmmanuel Vadot #define TXVLANFRAMES_G 0x174 118*c36125f6SEmmanuel Vadot #define TXOVERSIZE_G 0x178 119*c36125f6SEmmanuel Vadot #define RXFRAMECOUNT_GB 0x180 120*c36125f6SEmmanuel Vadot #define RXOCTETCOUNT_GB 0x184 121*c36125f6SEmmanuel Vadot #define RXOCTETCOUNT_G 0x188 122*c36125f6SEmmanuel Vadot #define RXBROADCASTFRAMES_G 0x18C 123*c36125f6SEmmanuel Vadot #define RXMULTICASTFRAMES_G 0x190 124*c36125f6SEmmanuel Vadot #define RXCRCERROR 0x194 125*c36125f6SEmmanuel Vadot #define RXALIGNMENTERROR 0x198 126*c36125f6SEmmanuel Vadot #define RXRUNTERROR 0x19C 127*c36125f6SEmmanuel Vadot #define RXJABBERERROR 0x1A0 128*c36125f6SEmmanuel Vadot #define RXUNDERSIZE_G 0x1A4 129*c36125f6SEmmanuel Vadot #define RXOVERSIZE_G 0x1A8 130*c36125f6SEmmanuel Vadot #define RX64OCTETS_GB 0x1AC 131*c36125f6SEmmanuel Vadot #define RX65TO127OCTETS_GB 0x1B0 132*c36125f6SEmmanuel Vadot #define RX128TO255OCTETS_GB 0x1B4 133*c36125f6SEmmanuel Vadot #define RX256TO511OCTETS_GB 0x1B8 134*c36125f6SEmmanuel Vadot #define RX512TO1023OCTETS_GB 0x1BC 135*c36125f6SEmmanuel Vadot #define RX1024TOMAXOCTETS_GB 0x1C0 136*c36125f6SEmmanuel Vadot #define RXUNICASTFRAMES_G 0x1C4 137*c36125f6SEmmanuel Vadot #define RXLENGTHERROR 0x1C8 138*c36125f6SEmmanuel Vadot #define RXOUTOFRANGETYPE 0x1CC 139*c36125f6SEmmanuel Vadot #define RXPAUSEFRAMES 0x1D0 140*c36125f6SEmmanuel Vadot #define RXFIFOOVERFLOW 0x1D4 141*c36125f6SEmmanuel Vadot #define RXVLANFRAMES_GB 0x1D8 142*c36125f6SEmmanuel Vadot #define RXWATCHDOGERROR 0x1DC 143*c36125f6SEmmanuel Vadot #define RXRCVERROR 0x1E0 144*c36125f6SEmmanuel Vadot #define RXCTRLFRAMES_G 0x1E4 145*c36125f6SEmmanuel Vadot #define MMC_IPC_RECEIVE_INT_MASK 0x200 146*c36125f6SEmmanuel Vadot #define MMC_IPC_RECEIVE_INT 0x208 147*c36125f6SEmmanuel Vadot #define RXIPV4_GD_FRMS 0x210 148*c36125f6SEmmanuel Vadot #define RXIPV4_HDRERR_FRMS 0x214 149*c36125f6SEmmanuel Vadot #define RXIPV4_NOPAY_FRMS 0x218 150*c36125f6SEmmanuel Vadot #define RXIPV4_FRAG_FRMS 0x21C 151*c36125f6SEmmanuel Vadot #define RXIPV4_UDSBL_FRMS 0x220 152*c36125f6SEmmanuel Vadot #define RXIPV6_GD_FRMS 0x224 153*c36125f6SEmmanuel Vadot #define RXIPV6_HDRERR_FRMS 0x228 154*c36125f6SEmmanuel Vadot #define RXIPV6_NOPAY_FRMS 0x22C 155*c36125f6SEmmanuel Vadot #define RXUDP_GD_FRMS 0x230 156*c36125f6SEmmanuel Vadot #define RXUDP_ERR_FRMS 0x234 157*c36125f6SEmmanuel Vadot #define RXTCP_GD_FRMS 0x238 158*c36125f6SEmmanuel Vadot #define RXTCP_ERR_FRMS 0x23C 159*c36125f6SEmmanuel Vadot #define RXICMP_GD_FRMS 0x240 160*c36125f6SEmmanuel Vadot #define RXICMP_ERR_FRMS 0x244 161*c36125f6SEmmanuel Vadot #define RXIPV4_GD_OCTETS 0x250 162*c36125f6SEmmanuel Vadot #define RXIPV4_HDRERR_OCTETS 0x254 163*c36125f6SEmmanuel Vadot #define RXIPV4_NOPAY_OCTETS 0x258 164*c36125f6SEmmanuel Vadot #define RXIPV4_FRAG_OCTETS 0x25C 165*c36125f6SEmmanuel Vadot #define RXIPV4_UDSBL_OCTETS 0x260 166*c36125f6SEmmanuel Vadot #define RXIPV6_GD_OCTETS 0x264 167*c36125f6SEmmanuel Vadot #define RXIPV6_HDRERR_OCTETS 0x268 168*c36125f6SEmmanuel Vadot #define RXIPV6_NOPAY_OCTETS 0x26C 169*c36125f6SEmmanuel Vadot #define RXUDP_GD_OCTETS 0x270 170*c36125f6SEmmanuel Vadot #define RXUDP_ERR_OCTETS 0x274 171*c36125f6SEmmanuel Vadot #define RXTCP_GD_OCTETS 0x278 172*c36125f6SEmmanuel Vadot #define RXTCPERROCTETS 0x27C 173*c36125f6SEmmanuel Vadot #define RXICMP_GD_OCTETS 0x280 174*c36125f6SEmmanuel Vadot #define RXICMP_ERR_OCTETS 0x284 175*c36125f6SEmmanuel Vadot #define L3_L4_CONTROL0 0x400 176*c36125f6SEmmanuel Vadot #define LAYER4_ADDRESS0 0x404 177*c36125f6SEmmanuel Vadot #define LAYER3_ADDR0_REG0 0x410 178*c36125f6SEmmanuel Vadot #define LAYER3_ADDR1_REG0 0x414 179*c36125f6SEmmanuel Vadot #define LAYER3_ADDR2_REG0 0x418 180*c36125f6SEmmanuel Vadot #define LAYER3_ADDR3_REG0 0x41C 181*c36125f6SEmmanuel Vadot #define L3_L4_CONTROL1 0x430 182*c36125f6SEmmanuel Vadot #define LAYER4_ADDRESS1 0x434 183*c36125f6SEmmanuel Vadot #define LAYER3_ADDR0_REG1 0x440 184*c36125f6SEmmanuel Vadot #define LAYER3_ADDR1_REG1 0x444 185*c36125f6SEmmanuel Vadot #define LAYER3_ADDR2_REG1 0x448 186*c36125f6SEmmanuel Vadot #define LAYER3_ADDR3_REG1 0x44C 187*c36125f6SEmmanuel Vadot #define L3_L4_CONTROL2 0x460 188*c36125f6SEmmanuel Vadot #define LAYER4_ADDRESS2 0x464 189*c36125f6SEmmanuel Vadot #define LAYER3_ADDR0_REG2 0x470 190*c36125f6SEmmanuel Vadot #define LAYER3_ADDR1_REG2 0x474 191*c36125f6SEmmanuel Vadot #define LAYER3_ADDR2_REG2 0x478 192*c36125f6SEmmanuel Vadot #define LAYER3_ADDR3_REG2 0x47C 193*c36125f6SEmmanuel Vadot #define L3_L4_CONTROL3 0x490 194*c36125f6SEmmanuel Vadot #define LAYER4_ADDRESS3 0x494 195*c36125f6SEmmanuel Vadot #define LAYER3_ADDR0_REG3 0x4A0 196*c36125f6SEmmanuel Vadot #define LAYER3_ADDR1_REG3 0x4A4 197*c36125f6SEmmanuel Vadot #define LAYER3_ADDR2_REG3 0x4A8 198*c36125f6SEmmanuel Vadot #define LAYER3_ADDR3_REG3 0x4AC 199*c36125f6SEmmanuel Vadot #define HASH_TABLE_REG(n) 0x500 + (0x4 * n) 200*c36125f6SEmmanuel Vadot #define VLAN_INCL_REG 0x584 201*c36125f6SEmmanuel Vadot #define VLAN_HASH_TABLE_REG 0x588 202*c36125f6SEmmanuel Vadot #define TIMESTAMP_CONTROL 0x700 203*c36125f6SEmmanuel Vadot #define SUB_SECOND_INCREMENT 0x704 204*c36125f6SEmmanuel Vadot #define SYSTEM_TIME_SECONDS 0x708 205*c36125f6SEmmanuel Vadot #define SYSTEM_TIME_NANOSECONDS 0x70C 206*c36125f6SEmmanuel Vadot #define SYSTEM_TIME_SECONDS_UPDATE 0x710 207*c36125f6SEmmanuel Vadot #define SYSTEM_TIME_NANOSECONDS_UPDATE 0x714 208*c36125f6SEmmanuel Vadot #define TIMESTAMP_ADDEND 0x718 209*c36125f6SEmmanuel Vadot #define TARGET_TIME_SECONDS 0x71C 210*c36125f6SEmmanuel Vadot #define TARGET_TIME_NANOSECONDS 0x720 211*c36125f6SEmmanuel Vadot #define SYSTEM_TIME_HIGHER_WORD_SECONDS 0x724 212*c36125f6SEmmanuel Vadot #define TIMESTAMP_STATUS 0x728 213*c36125f6SEmmanuel Vadot #define PPS_CONTROL 0x72C 214*c36125f6SEmmanuel Vadot #define AUXILIARY_TIMESTAMP_NANOSECONDS 0x730 215*c36125f6SEmmanuel Vadot #define AUXILIARY_TIMESTAMP_SECONDS 0x734 216*c36125f6SEmmanuel Vadot #define PPS0_INTERVAL 0x760 217*c36125f6SEmmanuel Vadot #define PPS0_WIDTH 0x764 218*c36125f6SEmmanuel Vadot 219*c36125f6SEmmanuel Vadot /* DMA */ 220*c36125f6SEmmanuel Vadot #define BUS_MODE 0x1000 221*c36125f6SEmmanuel Vadot #define BUS_MODE_MIXEDBURST (1 << 26) 222*c36125f6SEmmanuel Vadot #define BUS_MODE_AAL (1 << 25) 223*c36125f6SEmmanuel Vadot #define BUS_MODE_EIGHTXPBL (1 << 24) /* Multiplies PBL by 8 */ 224*c36125f6SEmmanuel Vadot #define BUS_MODE_USP (1 << 23) 225*c36125f6SEmmanuel Vadot #define BUS_MODE_RPBL_SHIFT 17 /* Single block transfer size */ 226*c36125f6SEmmanuel Vadot #define BUS_MODE_FIXEDBURST (1 << 16) 227*c36125f6SEmmanuel Vadot #define BUS_MODE_PRIORXTX_SHIFT 14 228*c36125f6SEmmanuel Vadot #define BUS_MODE_PRIORXTX_41 3 229*c36125f6SEmmanuel Vadot #define BUS_MODE_PRIORXTX_31 2 230*c36125f6SEmmanuel Vadot #define BUS_MODE_PRIORXTX_21 1 231*c36125f6SEmmanuel Vadot #define BUS_MODE_PRIORXTX_11 0 232*c36125f6SEmmanuel Vadot #define BUS_MODE_PBL_SHIFT 8 /* Single block transfer size */ 233*c36125f6SEmmanuel Vadot #define BUS_MODE_SWR (1 << 0) /* Reset */ 234*c36125f6SEmmanuel Vadot #define BUS_MODE_DEFAULT_PBL 8 235*c36125f6SEmmanuel Vadot #define TRANSMIT_POLL_DEMAND 0x1004 236*c36125f6SEmmanuel Vadot #define RECEIVE_POLL_DEMAND 0x1008 237*c36125f6SEmmanuel Vadot #define RX_DESCR_LIST_ADDR 0x100C 238*c36125f6SEmmanuel Vadot #define TX_DESCR_LIST_ADDR 0x1010 239*c36125f6SEmmanuel Vadot #define DMA_STATUS 0x1014 240*c36125f6SEmmanuel Vadot #define DMA_STATUS_NIS (1 << 16) 241*c36125f6SEmmanuel Vadot #define DMA_STATUS_AIS (1 << 15) 242*c36125f6SEmmanuel Vadot #define DMA_STATUS_FBI (1 << 13) 243*c36125f6SEmmanuel Vadot #define DMA_STATUS_RI (1 << 6) 244*c36125f6SEmmanuel Vadot #define DMA_STATUS_TI (1 << 0) 245*c36125f6SEmmanuel Vadot #define DMA_STATUS_INTR_MASK 0x1ffff 246*c36125f6SEmmanuel Vadot #define OPERATION_MODE 0x1018 247*c36125f6SEmmanuel Vadot #define MODE_RSF (1 << 25) /* RX Full Frame */ 248*c36125f6SEmmanuel Vadot #define MODE_TSF (1 << 21) /* TX Full Frame */ 249*c36125f6SEmmanuel Vadot #define MODE_FTF (1 << 20) /* Flush TX FIFO */ 250*c36125f6SEmmanuel Vadot #define MODE_ST (1 << 13) /* Start DMA TX */ 251*c36125f6SEmmanuel Vadot #define MODE_FUF (1 << 6) /* TX frames < 64bytes */ 252*c36125f6SEmmanuel Vadot #define MODE_RTC_LEV32 0x1 253*c36125f6SEmmanuel Vadot #define MODE_RTC_SHIFT 3 254*c36125f6SEmmanuel Vadot #define MODE_OSF (1 << 2) /* Process Second frame */ 255*c36125f6SEmmanuel Vadot #define MODE_SR (1 << 1) /* Start DMA RX */ 256*c36125f6SEmmanuel Vadot #define INTERRUPT_ENABLE 0x101C 257*c36125f6SEmmanuel Vadot #define INT_EN_NIE (1 << 16) /* Normal/Summary */ 258*c36125f6SEmmanuel Vadot #define INT_EN_AIE (1 << 15) /* Abnormal/Summary */ 259*c36125f6SEmmanuel Vadot #define INT_EN_ERE (1 << 14) /* Early receive */ 260*c36125f6SEmmanuel Vadot #define INT_EN_FBE (1 << 13) /* Fatal bus error */ 261*c36125f6SEmmanuel Vadot #define INT_EN_ETE (1 << 10) /* Early transmit */ 262*c36125f6SEmmanuel Vadot #define INT_EN_RWE (1 << 9) /* Receive watchdog */ 263*c36125f6SEmmanuel Vadot #define INT_EN_RSE (1 << 8) /* Receive stopped */ 264*c36125f6SEmmanuel Vadot #define INT_EN_RUE (1 << 7) /* Recv buf unavailable */ 265*c36125f6SEmmanuel Vadot #define INT_EN_RIE (1 << 6) /* Receive interrupt */ 266*c36125f6SEmmanuel Vadot #define INT_EN_UNE (1 << 5) /* Tx underflow */ 267*c36125f6SEmmanuel Vadot #define INT_EN_OVE (1 << 4) /* Receive overflow */ 268*c36125f6SEmmanuel Vadot #define INT_EN_TJE (1 << 3) /* Transmit jabber */ 269*c36125f6SEmmanuel Vadot #define INT_EN_TUE (1 << 2) /* Tx. buf unavailable */ 270*c36125f6SEmmanuel Vadot #define INT_EN_TSE (1 << 1) /* Transmit stopped */ 271*c36125f6SEmmanuel Vadot #define INT_EN_TIE (1 << 0) /* Transmit interrupt */ 272*c36125f6SEmmanuel Vadot #define INT_EN_DEFAULT (INT_EN_TIE|INT_EN_RIE| \ 273*c36125f6SEmmanuel Vadot INT_EN_NIE|INT_EN_AIE| \ 274*c36125f6SEmmanuel Vadot INT_EN_FBE|INT_EN_UNE) 275*c36125f6SEmmanuel Vadot 276*c36125f6SEmmanuel Vadot #define MISSED_FRAMEBUF_OVERFLOW_CNTR 0x1020 277*c36125f6SEmmanuel Vadot #define RECEIVE_INT_WATCHDOG_TMR 0x1024 278*c36125f6SEmmanuel Vadot #define AXI_BUS_MODE 0x1028 279*c36125f6SEmmanuel Vadot #define AHB_OR_AXI_STATUS 0x102C 280*c36125f6SEmmanuel Vadot #define CURRENT_HOST_TRANSMIT_DESCR 0x1048 281*c36125f6SEmmanuel Vadot #define CURRENT_HOST_RECEIVE_DESCR 0x104C 282*c36125f6SEmmanuel Vadot #define CURRENT_HOST_TRANSMIT_BUF_ADDR 0x1050 283*c36125f6SEmmanuel Vadot #define CURRENT_HOST_RECEIVE_BUF_ADDR 0x1054 284*c36125f6SEmmanuel Vadot #define HW_FEATURE 0x1058 285*c36125f6SEmmanuel Vadot 286*c36125f6SEmmanuel Vadot #define DWC_GMAC_NORMAL_DESC 0x1 287*c36125f6SEmmanuel Vadot #define DWC_GMAC_EXT_DESC 0x2 288*c36125f6SEmmanuel Vadot 289*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_60_100M_DIV42 0x0 290*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_100_150M_DIV62 0x1 291*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_25_35M_DIV16 0x2 292*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_35_60M_DIV26 0x3 293*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_150_250M_DIV102 0x4 294*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_250_300M_DIV124 0x5 295*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_DIV4 0x8 296*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_DIV6 0x9 297*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_DIV8 0xa 298*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_DIV10 0xb 299*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_DIV12 0xc 300*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_DIV14 0xd 301*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_DIV16 0xe 302*c36125f6SEmmanuel Vadot #define GMAC_MII_CLK_DIV18 0xf 303*c36125f6SEmmanuel Vadot 304*c36125f6SEmmanuel Vadot #endif /* __DWC1000_REG_H__ */ 305