1 /******************************************************************************* 2 * Copyright 2020 Microchip Corporation. 3 * 4 * SPDX-License-Identifier: MIT 5 * 6 * This file contains the type definitions for the GEM Ethernet MAC as 7 * implemented for the PolarFire SoC. This also covers the subset implemented for 8 * the FU540 on the Aloe board with the provisio that many of the registers will 9 * not be present on that device. 10 * 11 * We use separate MAC and eMAC definitions even though the eMAC is a subset 12 * of the MAC as it helps to catch errors if we try to program registers not 13 * present on the eMAC. 14 * 15 */ 16 #ifndef MSS_ETHERNET_MAC_REGISTERS_H_ 17 #define MSS_ETHERNET_MAC_REGISTERS_H_ 18 19 #ifdef __cplusplus 20 extern "C" { 21 #endif 22 /*----------------------------------------------------------------------------*/ 23 /*----------------------------------- MAC -----------------------------------*/ 24 /*----------------------------------------------------------------------------*/ 25 #define __I const volatile 26 #define __O volatile 27 #define __IO volatile 28 29 typedef struct 30 { 31 __IO uint32_t NETWORK_CONTROL; /* 0x0000 */ 32 __IO uint32_t NETWORK_CONFIG; /* 0x0004 */ 33 __I uint32_t NETWORK_STATUS; /* 0x0008 */ 34 __IO uint32_t USER_IO; /* 0x000C */ 35 __IO uint32_t DMA_CONFIG; /* 0x0010 */ 36 __IO uint32_t TRANSMIT_STATUS; /* 0x0014 */ 37 __IO uint32_t RECEIVE_Q_PTR; /* 0x0018 */ 38 __IO uint32_t TRANSMIT_Q_PTR; /* 0x001C */ 39 __IO uint32_t RECEIVE_STATUS; /* 0x0020 */ 40 __IO uint32_t INT_STATUS; /* 0x0024 */ 41 __IO uint32_t INT_ENABLE; /* 0x0028 */ 42 __IO uint32_t INT_DISABLE; /* 0x002C */ 43 __IO uint32_t INT_MASK; /* 0x0030 */ 44 __IO uint32_t PHY_MANAGEMENT; /* 0x0034 */ 45 __IO uint32_t PAUSE_TIME; /* 0x0038 */ 46 __IO uint32_t TX_PAUSE_QUANTUM; /* 0x003C */ 47 __IO uint32_t PBUF_TXCUTTHRU; /* 0x0040 */ 48 __IO uint32_t PBUF_RXCUTTHRU; /* 0x0044 */ 49 __IO uint32_t JUMBO_MAX_LENGTH; /* 0x0048 */ 50 uint32_t reserved1; /* 0x004C */ 51 uint32_t reserved2; /* 0x0050 */ 52 __IO uint32_t AXI_MAX_PIPELINE; /* 0x0054 */ 53 uint32_t reserved3; /* 0x0058 */ 54 __IO uint32_t INT_MODERATION; /* 0x005C */ 55 __IO uint32_t SYS_WAKE_TIME; /* 0x0060 */ 56 __IO uint32_t FATAL_OR_NON_FATAL_INT_SEL; /* 0x0064 */ 57 __IO uint32_t LOCKUP_CONFIG; /* 0x0068 */ 58 __IO uint32_t RX_MAC_LOCKUP_TIME; /* 0x006C */ 59 uint32_t reserved4; /* 0x0070 */ 60 uint32_t reserved5; /* 0x0074 */ 61 uint32_t reserved6; /* 0x0078 */ 62 uint32_t reserved7; /* 0x007C */ 63 __IO uint32_t HASH_BOTTOM; /* 0x0080 */ 64 __IO uint32_t HASH_TOP; /* 0x0084 */ 65 __IO uint32_t SPEC_ADD1_BOTTOM; /* 0x0088 */ 66 __IO uint32_t SPEC_ADD1_TOP; /* 0x008C */ 67 __IO uint32_t SPEC_ADD2_BOTTOM; /* 0x0090 */ 68 __IO uint32_t SPEC_ADD2_TOP; /* 0x0094 */ 69 __IO uint32_t SPEC_ADD3_BOTTOM; /* 0x0098 */ 70 __IO uint32_t SPEC_ADD3_TOP; /* 0x009C */ 71 __IO uint32_t SPEC_ADD4_BOTTOM; /* 0x00A0 */ 72 __IO uint32_t SPEC_ADD4_TOP; /* 0x00A4 */ 73 __IO uint32_t SPEC_TYPE1; /* 0x00A8 */ 74 __IO uint32_t SPEC_TYPE2; /* 0x00AC */ 75 __IO uint32_t SPEC_TYPE3; /* 0x00B0 */ 76 __IO uint32_t SPEC_TYPE4; /* 0x00B4 */ 77 __IO uint32_t WOL_REGISTER; /* 0x00B8 */ 78 __IO uint32_t STRETCH_RATIO; /* 0x00BC */ 79 __IO uint32_t STACKED_VLAN; /* 0x00C0 */ 80 __IO uint32_t TX_PFC_PAUSE; /* 0x00C4 */ 81 __IO uint32_t MASK_ADD1_BOTTOM; /* 0x00C8 */ 82 __IO uint32_t MASK_ADD1_TOP; /* 0x00CC */ 83 __IO uint32_t DMA_ADDR_OR_MASK; /* 0x00D0 */ 84 __IO uint32_t RX_PTP_UNICAST; /* 0x00D4 */ 85 __IO uint32_t TX_PTP_UNICAST; /* 0x00D8 */ 86 __IO uint32_t TSU_NSEC_CMP; /* 0x00DC */ 87 __IO uint32_t TSU_SEC_CMP; /* 0x00E0 */ 88 __IO uint32_t TSU_MSB_SEC_CMP; /* 0x00E4 */ 89 __IO uint32_t TSU_PTP_TX_MSB_SEC_CMP; /* 0x00E8 */ 90 __IO uint32_t TSU_PTP_RX_MSB_SEC_CMP; /* 0x00EC */ 91 __IO uint32_t TSU_PEER_TX_MSB_SEC_CMP; /* 0x00F0 */ 92 __IO uint32_t TSU_PEER_RX_MSB_SEC_CMP; /* 0x00F4 */ 93 __IO uint32_t DPRAM_FILL_DBG; /* 0x00F8 */ 94 __IO uint32_t REVISION_REG; /* 0x00FC */ 95 __IO uint32_t OCTETS_TXED_BOTTOM; /* 0x0100 */ 96 __IO uint32_t OCTETS_TXED_TOP; /* 0x0104 */ 97 __IO uint32_t FRAMES_TXED_OK; /* 0x0108 */ 98 __IO uint32_t BROADCAST_TXED; /* 0x010C */ 99 __IO uint32_t MULTICAST_TXED; /* 0x0110 */ 100 __IO uint32_t PAUSE_FRAMES_TXED; /* 0x0114 */ 101 __IO uint32_t FRAMES_TXED_64; /* 0x0118 */ 102 __IO uint32_t FRAMES_TXED_65; /* 0x011C */ 103 __IO uint32_t FRAMES_TXED_128; /* 0x0120 */ 104 __IO uint32_t FRAMES_TXED_256; /* 0x0124 */ 105 __IO uint32_t FRAMES_TXED_512; /* 0x0128 */ 106 __IO uint32_t FRAMES_TXED_1024; /* 0x012C */ 107 __IO uint32_t FRAMES_TXED_1519; /* 0x0130 */ 108 __IO uint32_t TX_UNDERRUNS; /* 0x0134 */ 109 __IO uint32_t SINGLE_COLLISIONS; /* 0x0138 */ 110 __IO uint32_t MULTIPLE_COLLISIONS; /* 0x013C */ 111 __IO uint32_t EXCESSIVE_COLLISIONS; /* 0x0140 */ 112 __IO uint32_t LATE_COLLISIONS; /* 0x0144 */ 113 __IO uint32_t DEFERRED_FRAMES; /* 0x0148 */ 114 __IO uint32_t CRS_ERRORS; /* 0x014C */ 115 __IO uint32_t OCTETS_RXED_BOTTOM; /* 0x0150 */ 116 __IO uint32_t OCTETS_RXED_TOP; /* 0x0154 */ 117 __IO uint32_t FRAMES_RXED_OK; /* 0x0158 */ 118 __IO uint32_t BROADCAST_RXED; /* 0x015C */ 119 __IO uint32_t MULTICAST_RXED; /* 0x0160 */ 120 __IO uint32_t PAUSE_FRAMES_RXED; /* 0x0164 */ 121 __IO uint32_t FRAMES_RXED_64; /* 0x0168 */ 122 __IO uint32_t FRAMES_RXED_65; /* 0x016C */ 123 __IO uint32_t FRAMES_RXED_128; /* 0x0170 */ 124 __IO uint32_t FRAMES_RXED_256; /* 0x0174 */ 125 __IO uint32_t FRAMES_RXED_512; /* 0x0178 */ 126 __IO uint32_t FRAMES_RXED_1024; /* 0x017C */ 127 __IO uint32_t FRAMES_RXED_1519; /* 0x0180 */ 128 __IO uint32_t UNDERSIZE_FRAMES; /* 0x0184 */ 129 __IO uint32_t EXCESSIVE_RX_LENGTH; /* 0x0188 */ 130 __IO uint32_t RX_JABBERS; /* 0x018C */ 131 __IO uint32_t FCS_ERRORS; /* 0x0190 */ 132 __IO uint32_t RX_LENGTH_ERRORS; /* 0x0194 */ 133 __IO uint32_t RX_SYMBOL_ERRORS; /* 0x0198 */ 134 __IO uint32_t ALIGNMENT_ERRORS; /* 0x019C */ 135 __IO uint32_t RX_RESOURCE_ERRORS; /* 0x01A0 */ 136 __IO uint32_t RX_OVERRUNS; /* 0x01A4 */ 137 __IO uint32_t RX_IP_CK_ERRORS; /* 0x01A8 */ 138 __IO uint32_t RX_TCP_CK_ERRORS; /* 0x01AC */ 139 __IO uint32_t RX_UDP_CK_ERRORS; /* 0x01B0 */ 140 __IO uint32_t AUTO_FLUSHED_PKTS; /* 0x01B4 */ 141 uint32_t reserved8; /* 0x01B8 */ 142 __IO uint32_t TSU_TIMER_INCR_SUB_NSEC; /* 0x01BC */ 143 __IO uint32_t TSU_TIMER_MSB_SEC; /* 0x01C0 */ 144 __IO uint32_t TSU_STROBE_MSB_SEC; /* 0x01C4 */ 145 __IO uint32_t TSU_STROBE_SEC; /* 0x01C8 */ 146 __IO uint32_t TSU_STROBE_NSEC; /* 0x01CC */ 147 __IO uint32_t TSU_TIMER_SEC; /* 0x01D0 */ 148 __IO uint32_t TSU_TIMER_NSEC; /* 0x01D4 */ 149 __IO uint32_t TSU_TIMER_ADJUST; /* 0x01D8 */ 150 __IO uint32_t TSU_TIMER_INCR; /* 0x01DC */ 151 __IO uint32_t TSU_PTP_TX_SEC; /* 0x01E0 */ 152 __IO uint32_t TSU_PTP_TX_NSEC; /* 0x01E4 */ 153 __IO uint32_t TSU_PTP_RX_SEC; /* 0x01E8 */ 154 __IO uint32_t TSU_PTP_RX_NSEC; /* 0x01EC */ 155 __IO uint32_t TSU_PEER_TX_SEC; /* 0x01F0 */ 156 __IO uint32_t TSU_PEER_TX_NSEC; /* 0x01F4 */ 157 __IO uint32_t TSU_PEER_RX_SEC; /* 0x01F8 */ 158 __IO uint32_t TSU_PEER_RX_NSEC; /* 0x01FC */ 159 __IO uint32_t PCS_CONTROL; /* 0x0200 */ 160 __IO uint32_t PCS_STATUS; /* 0x0204 */ 161 __IO uint32_t PCS_PHY_TOP_ID; /* 0x0208 */ 162 __IO uint32_t PCS_PHY_BOT_ID; /* 0x020C */ 163 __IO uint32_t PCS_AN_ADV; /* 0x0210 */ 164 __IO uint32_t PCS_AN_LP_BASE; /* 0x0214 */ 165 __IO uint32_t PCS_AN_EXP; /* 0x0218 */ 166 __IO uint32_t PCS_AN_NP_TX; /* 0x021C */ 167 __IO uint32_t PCS_AN_LP_NP; /* 0x0220 */ 168 uint32_t reserved9[6]; /* 0x0224 - 0x0238 */ 169 __IO uint32_t PCS_AN_EXT_STATUS; /* 0x023C */ 170 uint32_t reserved10[8]; /* 0x0240 - 0x025C */ 171 __IO uint32_t TX_PAUSE_QUANTUM1; /* 0x0260 */ 172 __IO uint32_t TX_PAUSE_QUANTUM2; /* 0x0264 */ 173 __IO uint32_t TX_PAUSE_QUANTUM3; /* 0x0268 */ 174 __IO uint32_t PFC_STATUS; /* 0x026C */ 175 __IO uint32_t RX_LPI; /* 0x0270 */ 176 __IO uint32_t RX_LPI_TIME; /* 0x0274 */ 177 __IO uint32_t TX_LPI; /* 0x0278 */ 178 __IO uint32_t TX_LPI_TIME; /* 0x027C */ 179 __IO uint32_t DESIGNCFG_DEBUG1; /* 0x0280 */ 180 __IO uint32_t DESIGNCFG_DEBUG2; /* 0x0284 */ 181 __IO uint32_t DESIGNCFG_DEBUG3; /* 0x0288 */ 182 __IO uint32_t DESIGNCFG_DEBUG4; /* 0x028C */ 183 __IO uint32_t DESIGNCFG_DEBUG5; /* 0x0290 */ 184 __IO uint32_t DESIGNCFG_DEBUG6; /* 0x0294 */ 185 __IO uint32_t DESIGNCFG_DEBUG7; /* 0x0298 */ 186 __IO uint32_t DESIGNCFG_DEBUG8; /* 0x029C */ 187 __IO uint32_t DESIGNCFG_DEBUG9; /* 0x02A0 */ 188 __IO uint32_t DESIGNCFG_DEBUG10; /* 0x02A4 */ 189 __IO uint32_t DESIGNCFG_DEBUG11; /* 0x02A8 */ 190 __IO uint32_t DESIGNCFG_DEBUG12; /* 0x02AC */ 191 uint32_t reserved11[12]; /* 0x02B0 - 0x02DC */ 192 __IO uint32_t AXI_QoS_CFG_0; /* 0X02E0 */ 193 uint32_t reserved11a[71]; /* 0x02E4 - 0x03FC */ 194 __IO uint32_t INT_Q1_STATUS; /* 0x0400 */ 195 __IO uint32_t INT_Q2_STATUS; /* 0x0404 */ 196 __IO uint32_t INT_Q3_STATUS; /* 0x0408 */ 197 uint32_t reserved12[13]; /* 0x040C - 0x043C */ 198 __IO uint32_t TRANSMIT_Q1_PTR; /* 0x0440 */ 199 __IO uint32_t TRANSMIT_Q2_PTR; /* 0x0444 */ 200 __IO uint32_t TRANSMIT_Q3_PTR; /* 0x0448 */ 201 uint32_t reserved13[13]; /* 0x044C - 0x047C */ 202 __IO uint32_t RECEIVE_Q1_PTR; /* 0x0480 */ 203 __IO uint32_t RECEIVE_Q2_PTR; /* 0x0484 */ 204 __IO uint32_t RECEIVE_Q3_PTR; /* 0x0488 */ 205 uint32_t reserved14[5]; /* 0x048C - 0x049C */ 206 __IO uint32_t DMA_RXBUF_SIZE_Q1; /* 0x04A0 */ 207 __IO uint32_t DMA_RXBUF_SIZE_Q2; /* 0x04A4 */ 208 __IO uint32_t DMA_RXBUF_SIZE_Q3; /* 0x04A8 */ 209 uint32_t reserved15[4]; /* 0x04AC - 0x04B8 */ 210 __IO uint32_t CBS_CONTROL; /* 0x04BC */ 211 __IO uint32_t CBS_IDLESLOPE_Q_A; /* 0x04C0 */ 212 __IO uint32_t CBS_IDLESLOPE_Q_B; /* 0x04C4 */ 213 __IO uint32_t UPPER_TX_Q_BASE_ADDR; /* 0x04C8 */ 214 __IO uint32_t TX_BD_CONTROL; /* 0x04CC */ 215 __IO uint32_t RX_BD_CONTROL; /* 0x04D0 */ 216 __IO uint32_t UPPER_RX_Q_BASE_ADDR; /* 0x04D4 */ 217 uint32_t reserved16[5]; /* 0x04D8 - 0x04E8 */ 218 __IO uint32_t WD_COUNTER; /* 0x04EC */ 219 uint32_t reserved17[2]; /* 0x04F0 - 0x04F4 */ 220 __IO uint32_t AXI_TX_FULL_THRESH0; /* 0x04F8 */ 221 __IO uint32_t AXI_TX_FULL_THRESH1; /* 0x04FC */ 222 __IO uint32_t SCREENING_TYPE_1_REGISTER_0; /* 0x0500 */ 223 __IO uint32_t SCREENING_TYPE_1_REGISTER_1; /* 0x0504 */ 224 __IO uint32_t SCREENING_TYPE_1_REGISTER_2; /* 0x0508 */ 225 __IO uint32_t SCREENING_TYPE_1_REGISTER_3; /* 0x050C */ 226 uint32_t reserved18[12]; /* 0x0510 - 0x053C */ 227 __IO uint32_t SCREENING_TYPE_2_REGISTER_0; /* 0x0540 */ 228 __IO uint32_t SCREENING_TYPE_2_REGISTER_1; /* 0x0544 */ 229 __IO uint32_t SCREENING_TYPE_2_REGISTER_2; /* 0x0548 */ 230 __IO uint32_t SCREENING_TYPE_2_REGISTER_3; /* 0x054C */ 231 uint32_t reserved18b[12]; /* 0x0550 - 0x057C */ 232 __IO uint32_t TX_SCHED_CTRL; /* 0x0580 */ 233 uint32_t reserved19[3]; /* 0x0584 - 0x058C */ 234 __IO uint32_t BW_RATE_LIMIT_Q0TO3; /* 0x0590 */ 235 uint32_t reserved20[3]; /* 0x0594 - 0x059C */ 236 __IO uint32_t TX_Q_SEG_ALLOC_Q0TO3; /* 0x05A0 */ 237 uint32_t reserved21[23]; /* 0x05A4 - 0x05FC */ 238 __IO uint32_t INT_Q1_ENABLE; /* 0x0600 */ 239 __IO uint32_t INT_Q2_ENABLE; /* 0x0604 */ 240 __IO uint32_t INT_Q3_ENABLE; /* 0x0608 */ 241 uint32_t reserved22[5]; /* 0x060C - 0x061C */ 242 __IO uint32_t INT_Q1_DISABLE; /* 0x0620 */ 243 __IO uint32_t INT_Q2_DISABLE; /* 0x0624 */ 244 __IO uint32_t INT_Q3_DISABLE; /* 0x0628 */ 245 uint32_t reserved23[5]; /* 0x062C - 0x063C */ 246 __IO uint32_t INT_Q1_MASK; /* 0x0640 */ 247 __IO uint32_t INT_Q2_MASK; /* 0x0644 */ 248 __IO uint32_t INT_Q3_MASK; /* 0x0648 */ 249 uint32_t reserved24[37]; /* 0x064C - 0x06DC */ 250 __IO uint32_t SCREENING_TYPE_2_ETHERTYPE_REG_0; /* 0x06E0 */ 251 __IO uint32_t SCREENING_TYPE_2_ETHERTYPE_REG_1; /* 0x06E4 */ 252 __IO uint32_t SCREENING_TYPE_2_ETHERTYPE_REG_2; /* 0x06E8 */ 253 __IO uint32_t SCREENING_TYPE_2_ETHERTYPE_REG_3; /* 0x06EC */ 254 uint32_t reserved25[4]; /* 0x06F0 - 0x06FC */ 255 __IO uint32_t TYPE2_COMPARE_0_WORD_0; /* 0x0700 */ 256 __IO uint32_t TYPE2_COMPARE_0_WORD_1; /* 0x0704 */ 257 __IO uint32_t TYPE2_COMPARE_1_WORD_0; /* 0x0708 */ 258 __IO uint32_t TYPE2_COMPARE_1_WORD_1; /* 0x070C */ 259 __IO uint32_t TYPE2_COMPARE_2_WORD_0; /* 0x0710 */ 260 __IO uint32_t TYPE2_COMPARE_2_WORD_1; /* 0x0714 */ 261 __IO uint32_t TYPE2_COMPARE_3_WORD_0; /* 0x0718 */ 262 __IO uint32_t TYPE2_COMPARE_3_WORD_1; /* 0x071C */ 263 uint32_t reserved26[56]; /* 0x0720 - 0x07FC */ 264 __IO uint32_t ENST_START_TIME_Q0; /* 0x0800 */ 265 __IO uint32_t ENST_START_TIME_Q1; /* 0x0804 */ 266 __IO uint32_t ENST_START_TIME_Q2; /* 0x0808 */ 267 __IO uint32_t ENST_START_TIME_Q3; /* 0x080C */ 268 uint32_t reserved27[4]; /* 0x0810 - 0x081C */ 269 __IO uint32_t ENST_ON_TIME_Q0; /* 0x0820 */ 270 __IO uint32_t ENST_ON_TIME_Q1; /* 0x0824 */ 271 __IO uint32_t ENST_ON_TIME_Q2; /* 0x0828 */ 272 __IO uint32_t ENST_ON_TIME_Q3; /* 0x082C */ 273 uint32_t reserved28[4]; /* 0x0830 - 0x083C */ 274 __IO uint32_t ENST_OFF_TIME_Q0; /* 0x0840 */ 275 __IO uint32_t ENST_OFF_TIME_Q1; /* 0x0844 */ 276 __IO uint32_t ENST_OFF_TIME_Q2; /* 0x0848 */ 277 __IO uint32_t ENST_OFF_TIME_Q3; /* 0x084C */ 278 __IO uint32_t ENST_CONTROL; /* 0x0850 */ 279 uint32_t reserved29[427]; /* 0x0854 - 0x0EFC */ 280 __IO uint32_t MMSL_CONTROL; /* 0x0F00 */ 281 __IO uint32_t MMSL_STATUS; /* 0x0F04 */ 282 __IO uint32_t MMSL_ERR_STATS; /* 0x0F08 */ 283 __IO uint32_t MMSL_ASS_OK_COUNT; /* 0x0F0C */ 284 __IO uint32_t MMSL_FRAG_COUNT_RX; /* 0x0F10 */ 285 __IO uint32_t MMSL_FRAG_COUNT_TX; /* 0x0F14 */ 286 __IO uint32_t MMSL_INT_STATUS; /* 0x0F18 */ 287 __IO uint32_t MMSL_INT_ENABLE; /* 0x0F1C */ 288 __IO uint32_t MMSL_INT_DISABLE; /* 0x0F20 */ 289 __IO uint32_t MMSL_INT_MASK; /* 0x0F24 */ 290 uint32_t reserved30[54]; /* 0x0F28 - 0x0FFC */ 291 } MAC_TypeDef; 292 293 typedef struct 294 { 295 __IO uint32_t NETWORK_CONTROL; /* 0x1000 */ 296 __IO uint32_t NETWORK_CONFIG; /* 0x1004 */ 297 __IO uint32_t NETWORK_STATUS; /* 0x1008 */ 298 uint32_t reserved31; /* 0x100C */ 299 __IO uint32_t DMA_CONFIG; /* 0x1010 */ 300 __IO uint32_t TRANSMIT_STATUS; /* 0x1014 */ 301 __IO uint32_t RECEIVE_Q_PTR; /* 0x1018 */ 302 __IO uint32_t TRANSMIT_Q_PTR; /* 0x101C */ 303 __IO uint32_t RECEIVE_STATUS; /* 0x1020 */ 304 __IO uint32_t INT_STATUS; /* 0x1024 */ 305 __IO uint32_t INT_ENABLE; /* 0x1028 */ 306 __IO uint32_t INT_DISABLE; /* 0x102C */ 307 __IO uint32_t INT_MASK; /* 0x1030 */ 308 __IO uint32_t PHY_MANAGEMENT; /* 0x1034 */ 309 __IO uint32_t PAUSE_TIME; /* 0x1038 */ 310 __IO uint32_t TX_PAUSE_QUANTUM; /* 0x103C */ 311 __IO uint32_t PBUF_TXCUTTHRU; /* 0x1040 */ 312 __IO uint32_t PBUF_RXCUTTHRU; /* 0x1044 */ 313 __IO uint32_t JUMBO_MAX_LENGTH; /* 0x1048 */ 314 uint32_t reserved32[2]; /* 0x104C - 0x1050 */ 315 __IO uint32_t AXI_MAX_PIPELINE; /* 0x1054 */ 316 uint32_t reserved33; /* 0x1058 */ 317 __IO uint32_t INT_MODERATION; /* 0x105C */ 318 __IO uint32_t SYS_WAKE_TIME; /* 0x1060 */ 319 __IO uint32_t FATAL_OR_NON_FATAL_INT_SEL; /* 0x1064 */ 320 __IO uint32_t LOCKUP_CONFIG; /* 0x1068 */ 321 __IO uint32_t RX_MAC_LOCKUP_TIME; /* 0x106C */ 322 uint32_t reserved34[4]; /* 0x1070 - 0x107C */ 323 __IO uint32_t HASH_BOTTOM; /* 0x1080 */ 324 __IO uint32_t HASH_TOP; /* 0x1084 */ 325 __IO uint32_t SPEC_ADD1_BOTTOM; /* 0x1088 */ 326 __IO uint32_t SPEC_ADD1_TOP; /* 0x108C */ 327 __IO uint32_t SPEC_ADD2_BOTTOM; /* 0x1090 */ 328 __IO uint32_t SPEC_ADD2_TOP; /* 0x1094 */ 329 __IO uint32_t SPEC_ADD3_BOTTOM; /* 0x1098 */ 330 __IO uint32_t SPEC_ADD3_TOP; /* 0x109C */ 331 __IO uint32_t SPEC_ADD4_BOTTOM; /* 0x10A0 */ 332 __IO uint32_t SPEC_ADD4_TOP; /* 0x10A4 */ 333 __IO uint32_t SPEC_TYPE1; /* 0x10A8 */ 334 __IO uint32_t SPEC_TYPE2; /* 0x10AC */ 335 __IO uint32_t SPEC_TYPE3; /* 0x10B0 */ 336 __IO uint32_t SPEC_TYPE4; /* 0x10B4 */ 337 __IO uint32_t WOL_REGISTER; /* 0x10B8 */ 338 __IO uint32_t STRETCH_RATIO; /* 0x10BC */ 339 __IO uint32_t STACKED_VLAN; /* 0x10C0 */ 340 __IO uint32_t TX_PFC_PAUSE; /* 0x10C4 */ 341 __IO uint32_t MASK_ADD1_BOTTOM; /* 0x10C8 */ 342 __IO uint32_t MASK_ADD1_TOP; /* 0x10CC */ 343 __IO uint32_t DMA_ADDR_OR_MASK; /* 0x10D0 */ 344 __IO uint32_t RX_PTP_UNICAST; /* 0x10D4 */ 345 __IO uint32_t TX_PTP_UNICAST; /* 0x10D8 */ 346 __IO uint32_t TSU_NSEC_CMP; /* 0x10DC */ 347 __IO uint32_t TSU_SEC_CMP; /* 0x10E0 */ 348 __IO uint32_t TSU_MSB_SEC_CMP; /* 0x10E4 */ 349 __IO uint32_t TSU_PTP_TX_MSB_SEC; /* 0x10E8 */ 350 __IO uint32_t TSU_PTP_RX_MSB_SEC; /* 0x10EC */ 351 __IO uint32_t TSU_PEER_TX_MSB_SEC; /* 0x10F0 */ 352 __IO uint32_t TSU_PEER_RX_MSB_SEC; /* 0x10F4 */ 353 __IO uint32_t DPRAM_FILL_DBG; /* 0x10F8 */ 354 __IO uint32_t REVISION_REG; /* 0x10FC */ 355 __IO uint32_t OCTETS_TXED_BOTTOM; /* 0x1100 */ 356 __IO uint32_t OCTETS_TXED_TOP; /* 0x1104 */ 357 __IO uint32_t FRAMES_TXED_OK; /* 0x1108 */ 358 __IO uint32_t BROADCAST_TXED; /* 0x110C */ 359 __IO uint32_t MULTICAST_TXED; /* 0x1110 */ 360 __IO uint32_t PAUSE_FRAMES_TXED; /* 0x1114 */ 361 __IO uint32_t FRAMES_TXED_64; /* 0x1118 */ 362 __IO uint32_t FRAMES_TXED_65; /* 0x111C */ 363 __IO uint32_t FRAMES_TXED_128; /* 0x1120 */ 364 __IO uint32_t FRAMES_TXED_256; /* 0x1124 */ 365 __IO uint32_t FRAMES_TXED_512; /* 0x1128 */ 366 __IO uint32_t FRAMES_TXED_1024; /* 0x112C */ 367 __IO uint32_t FRAMES_TXED_1519; /* 0x1130 */ 368 __IO uint32_t TX_UNDERRUNS; /* 0x1134 */ 369 __IO uint32_t SINGLE_COLLISIONS; /* 0x1138 */ 370 __IO uint32_t MULTIPLE_COLLISIONS; /* 0x113C */ 371 __IO uint32_t EXCESSIVE_COLLISIONS; /* 0x1140 */ 372 __IO uint32_t LATE_COLLISIONS; /* 0x1144 */ 373 __IO uint32_t DEFERRED_FRAMES; /* 0x1148 */ 374 __IO uint32_t CRS_ERRORS; /* 0x114C */ 375 __IO uint32_t OCTETS_RXED_BOTTOM; /* 0x1150 */ 376 __IO uint32_t OCTETS_RXED_TOP; /* 0x1154 */ 377 __IO uint32_t FRAMES_RXED_OK; /* 0x1158 */ 378 __IO uint32_t BROADCAST_RXED; /* 0x115C */ 379 __IO uint32_t MULTICAST_RXED; /* 0x1160 */ 380 __IO uint32_t PAUSE_FRAMES_RXED; /* 0x1164 */ 381 __IO uint32_t FRAMES_RXED_64; /* 0x1168 */ 382 __IO uint32_t FRAMES_RXED_65; /* 0x116C */ 383 __IO uint32_t FRAMES_RXED_128; /* 0x1170 */ 384 __IO uint32_t FRAMES_RXED_256; /* 0x1174 */ 385 __IO uint32_t FRAMES_RXED_512; /* 0x1178 */ 386 __IO uint32_t FRAMES_RXED_1024; /* 0x117C */ 387 __IO uint32_t FRAMES_RXED_1519; /* 0x1180 */ 388 __IO uint32_t UNDERSIZE_FRAMES; /* 0x1184 */ 389 __IO uint32_t EXCESSIVE_RX_LENGTH; /* 0x1188 */ 390 __IO uint32_t RX_JABBERS; /* 0x118C */ 391 __IO uint32_t FCS_ERRORS; /* 0x1190 */ 392 __IO uint32_t RX_LENGTH_ERRORS; /* 0x1194 */ 393 __IO uint32_t RX_SYMBOL_ERRORS; /* 0x1198 */ 394 __IO uint32_t ALIGNMENT_ERRORS; /* 0x119C */ 395 __IO uint32_t RX_RESOURCE_ERRORS; /* 0x11A0 */ 396 __IO uint32_t RX_OVERRUNS; /* 0x11A4 */ 397 __IO uint32_t RX_IP_CK_ERRORS; /* 0x11A8 */ 398 __IO uint32_t RX_TCP_CK_ERRORS; /* 0x11AC */ 399 __IO uint32_t RX_UDP_CK_ERRORS; /* 0x11B0 */ 400 __IO uint32_t AUTO_FLUSHED_PKTS; /* 0x11B4 */ 401 uint32_t reserved35; /* 0x10B8 */ 402 __IO uint32_t TSU_TIMER_INCR_SUB_NSEC; /* 0x11BC */ 403 __IO uint32_t TSU_TIMER_MSB_SEC; /* 0x11C0 */ 404 __IO uint32_t TSU_STROBE_MSB_SEC; /* 0x11C4 */ 405 __IO uint32_t TSU_STROBE_SEC; /* 0x11C8 */ 406 __IO uint32_t TSU_STROBE_NSEC; /* 0x11CC */ 407 __IO uint32_t TSU_TIMER_SEC; /* 0x11D0 */ 408 __IO uint32_t TSU_TIMER_NSEC; /* 0x11D4 */ 409 __IO uint32_t TSU_TIMER_ADJUST; /* 0x11D8 */ 410 __IO uint32_t TSU_TIMER_INCR; /* 0x11DC */ 411 __IO uint32_t TSU_PTP_TX_SEC; /* 0x11E0 */ 412 __IO uint32_t TSU_PTP_TX_NSEC; /* 0x11E4 */ 413 __IO uint32_t TSU_PTP_RX_SEC; /* 0x11E8 */ 414 __IO uint32_t TSU_PTP_RX_NSEC; /* 0x11EC */ 415 __IO uint32_t TSU_PEER_TX_SEC; /* 0x11F0 */ 416 __IO uint32_t TSU_PEER_TX_NSEC; /* 0x11F4 */ 417 __IO uint32_t TSU_PEER_RX_SEC; /* 0x11F8 */ 418 __IO uint32_t TSU_PEER_RX_NSEC; /* 0x11FC */ 419 uint32_t reserved36[24]; /* 0x1200 - 0x125C */ 420 __IO uint32_t TX_PAUSE_QUANTUM1; /* 0x1260 */ 421 __IO uint32_t TX_PAUSE_QUANTUM2; /* 0x1264 */ 422 __IO uint32_t TX_PAUSE_QUANTUM3; /* 0x1268 */ 423 __IO uint32_t PFC_STATUS; /* 0x126C */ 424 __IO uint32_t RX_LPI; /* 0x1270 */ 425 __IO uint32_t RX_LPI_TIME; /* 0x1274 */ 426 __IO uint32_t TX_LPI; /* 0x1278 */ 427 __IO uint32_t TX_LPI_TIME; /* 0x127C */ 428 __IO uint32_t DESIGNCFG_DEBUG1; /* 0x1280 */ 429 __IO uint32_t DESIGNCFG_DEBUG2; /* 0x1284 */ 430 __IO uint32_t DESIGNCFG_DEBUG3; /* 0x1288 */ 431 __IO uint32_t DESIGNCFG_DEBUG4; /* 0x128C */ 432 __IO uint32_t DESIGNCFG_DEBUG5; /* 0x1290 */ 433 __IO uint32_t DESIGNCFG_DEBUG6; /* 0x1294 */ 434 __IO uint32_t DESIGNCFG_DEBUG7; /* 0x1298 */ 435 __IO uint32_t DESIGNCFG_DEBUG8; /* 0x129C */ 436 __IO uint32_t DESIGNCFG_DEBUG9; /* 0x12A0 */ 437 __IO uint32_t DESIGNCFG_DEBUG10; /* 0x12A4 */ 438 __IO uint32_t DESIGNCFG_DEBUG11; /* 0x12A8 */ 439 __IO uint32_t DESIGNCFG_DEBUG12; /* 0x12AC */ 440 uint32_t reserved37[12]; /* 0x12B0 - 0x12DC */ 441 __IO uint32_t AXI_QoS_CFG_0; /* 0X12E0 */ 442 uint32_t reserved37a[118]; /* 0x12E4 - 0x14B8 */ 443 __IO uint32_t CBS_CONTROL; /* 0x14BC */ 444 __IO uint32_t CBS_IDLESLOPE_Q_A; /* 0x14C0 */ 445 __IO uint32_t CBS_IDLESLOPE_Q_B; /* 0x14C4 */ 446 __IO uint32_t UPPER_TX_Q_BASE_ADDR; /* 0x14C8 */ 447 __IO uint32_t TX_BD_CONTROL; /* 0x14CC */ 448 __IO uint32_t RX_BD_CONTROL; /* 0x14D0 */ 449 __IO uint32_t UPPER_RX_Q_BASE_ADDR; /* 0x14D4 */ 450 uint32_t reserved38[10]; /* 0x14D8 - 0x14FC */ 451 __IO uint32_t SCREENING_TYPE_1_REGISTER_0; /* 0x1500 - TBD PMCS Remove this and look for other possible additional registers near end of eMAC that we might be missing... */ 452 uint32_t reserved39[15]; /* 0x1504 - 0x153C */ 453 __IO uint32_t SCREENING_TYPE_2_REGISTER_0; /* 0x1540 */ 454 __IO uint32_t SCREENING_TYPE_2_REGISTER_1; /* 0x1544 */ 455 uint32_t reserved40[110]; /* 0x1548 - 0x16FC */ 456 __IO uint32_t TYPE2_COMPARE_0_WORD_0; /* 0x1700 */ 457 __IO uint32_t TYPE2_COMPARE_0_WORD_1; /* 0x1704 */ 458 __IO uint32_t TYPE2_COMPARE_1_WORD_0; /* 0x1708 */ 459 __IO uint32_t TYPE2_COMPARE_1_WORD_1; /* 0x170C */ 460 __IO uint32_t TYPE2_COMPARE_2_WORD_0; /* 0x1710 */ 461 __IO uint32_t TYPE2_COMPARE_2_WORD_1; /* 0x1714 */ 462 __IO uint32_t TYPE2_COMPARE_3_WORD_0; /* 0x1718 */ 463 __IO uint32_t TYPE2_COMPARE_3_WORD_1; /* 0x171C */ 464 __IO uint32_t TYPE2_COMPARE_4_WORD_0; /* 0x1720 */ 465 __IO uint32_t TYPE2_COMPARE_4_WORD_1; /* 0x1724 */ 466 __IO uint32_t TYPE2_COMPARE_5_WORD_0; /* 0x1728 */ 467 __IO uint32_t TYPE2_COMPARE_5_WORD_1; /* 0x172C */ 468 uint32_t reserved41[52]; /* 0x1730 - 0x17FC */ 469 __IO uint32_t ENST_START_TIME; /* 0x1800 */ 470 uint32_t reserved42[7]; /* 0x1804 - 0x181C */ 471 __IO uint32_t ENST_ON_TIME; /* 0x1820 */ 472 uint32_t reserved43[7]; /* 0x1824 - 0x183C */ 473 __IO uint32_t ENST_OFF_TIME; /* 0x1840 */ 474 uint32_t reserved44[15]; /* 0x1844 - 0x187C */ 475 __IO uint32_t ENST_CONTROL; /* 0x1820 */ 476 } eMAC_TypeDef; 477 478 #ifdef __cplusplus 479 } 480 #endif 481 482 #endif /* MSS_ETHERNET_MAC_REGISTERS_H_ */ 483