Blame view
drivers/net/mvgbe.h
15.1 KB
9131589ad net: Add Marvell ... |
1 2 3 4 5 6 7 8 |
/* * (C) Copyright 2009 * Marvell Semiconductor <www.marvell.com> * Written-by: Prafulla Wadaskar <prafulla@marvell.com> * * based on - Driver for MV64360X ethernet ports * Copyright (C) 2002 rabeeh@galileo.co.il * |
1a4596601 Add GPL-2.0+ SPDX... |
9 |
* SPDX-License-Identifier: GPL-2.0+ |
9131589ad net: Add Marvell ... |
10 |
*/ |
d44265ad7 mvgbe: support So... |
11 12 |
#ifndef __MVGBE_H__ #define __MVGBE_H__ |
9131589ad net: Add Marvell ... |
13 |
|
9131589ad net: Add Marvell ... |
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
/* PHY_BASE_ADR is board specific and can be configured */ #if defined (CONFIG_PHY_BASE_ADR) #define PHY_BASE_ADR CONFIG_PHY_BASE_ADR #else #define PHY_BASE_ADR 0x08 /* default phy base addr */ #endif /* Constants */ #define INT_CAUSE_UNMASK_ALL 0x0007ffff #define INT_CAUSE_UNMASK_ALL_EXT 0x0011ffff #define MRU_MASK 0xfff1ffff #define PHYADR_MASK 0x0000001f #define PHYREG_MASK 0x0000001f #define QTKNBKT_DEF_VAL 0x3fffffff #define QMTBS_DEF_VAL 0x000003ff #define QTKNRT_DEF_VAL 0x0000fcff #define RXUQ 0 /* Used Rx queue */ #define TXUQ 0 /* Used Rx queue */ |
d44265ad7 mvgbe: support So... |
32 33 34 35 36 |
#define to_mvgbe(_d) container_of(_d, struct mvgbe_device, dev) #define MVGBE_REG_WR(adr, val) writel(val, &adr) #define MVGBE_REG_RD(adr) readl(&adr) #define MVGBE_REG_BITS_RESET(adr, val) writel(readl(&adr) & ~(val), &adr) #define MVGBE_REG_BITS_SET(adr, val) writel(readl(&adr) | val, &adr) |
9131589ad net: Add Marvell ... |
37 38 39 |
/* Default port configuration value */ #define PRT_CFG_VAL ( \ |
d44265ad7 mvgbe: support So... |
40 41 42 43 44 45 46 47 48 49 50 |
MVGBE_UCAST_MOD_NRML | \ MVGBE_DFLT_RXQ(RXUQ) | \ MVGBE_DFLT_RX_ARPQ(RXUQ) | \ MVGBE_RX_BC_IF_NOT_IP_OR_ARP | \ MVGBE_RX_BC_IF_IP | \ MVGBE_RX_BC_IF_ARP | \ MVGBE_CPTR_TCP_FRMS_DIS | \ MVGBE_CPTR_UDP_FRMS_DIS | \ MVGBE_DFLT_RX_TCPQ(RXUQ) | \ MVGBE_DFLT_RX_UDPQ(RXUQ) | \ MVGBE_DFLT_RX_BPDUQ(RXUQ)) |
9131589ad net: Add Marvell ... |
51 52 53 |
/* Default port extend configuration value */ #define PORT_CFG_EXTEND_VALUE \ |
d44265ad7 mvgbe: support So... |
54 55 56 |
MVGBE_SPAN_BPDU_PACKETS_AS_NORMAL | \ MVGBE_PARTITION_DIS | \ MVGBE_TX_CRC_GENERATION_EN |
9131589ad net: Add Marvell ... |
57 |
|
d44265ad7 mvgbe: support So... |
58 |
#define GT_MVGBE_IPG_INT_RX(value) ((value & 0x3fff) << 8) |
9131589ad net: Add Marvell ... |
59 60 61 |
/* Default sdma control value */ #define PORT_SDMA_CFG_VALUE ( \ |
d44265ad7 mvgbe: support So... |
62 63 64 65 66 |
MVGBE_RX_BURST_SIZE_16_64BIT | \ MVGBE_BLM_RX_NO_SWAP | \ MVGBE_BLM_TX_NO_SWAP | \ GT_MVGBE_IPG_INT_RX(RXUQ) | \ MVGBE_TX_BURST_SIZE_16_64BIT) |
9131589ad net: Add Marvell ... |
67 68 |
/* Default port serial control value */ |
d3920144e mvgbe: enable con... |
69 |
#ifndef PORT_SERIAL_CONTROL_VALUE |
9131589ad net: Add Marvell ... |
70 |
#define PORT_SERIAL_CONTROL_VALUE ( \ |
d44265ad7 mvgbe: support So... |
71 72 73 74 75 76 |
MVGBE_FORCE_LINK_PASS | \ MVGBE_DIS_AUTO_NEG_FOR_DUPLX | \ MVGBE_DIS_AUTO_NEG_FOR_FLOW_CTRL | \ MVGBE_ADV_NO_FLOW_CTRL | \ MVGBE_FORCE_FC_MODE_NO_PAUSE_DIS_TX | \ MVGBE_FORCE_BP_MODE_NO_JAM | \ |
9131589ad net: Add Marvell ... |
77 |
(1 << 9) /* Reserved bit has to be 1 */ | \ |
d44265ad7 mvgbe: support So... |
78 79 80 81 82 83 84 85 86 |
MVGBE_DO_NOT_FORCE_LINK_FAIL | \ MVGBE_EN_AUTO_NEG_SPEED_GMII | \ MVGBE_DTE_ADV_0 | \ MVGBE_MIIPHY_MAC_MODE | \ MVGBE_AUTO_NEG_NO_CHANGE | \ MVGBE_MAX_RX_PACKET_1552BYTE | \ MVGBE_CLR_EXT_LOOPBACK | \ MVGBE_SET_FULL_DUPLEX_MODE | \ MVGBE_DIS_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX) |
d3920144e mvgbe: enable con... |
87 |
#endif |
9131589ad net: Add Marvell ... |
88 89 90 91 92 93 94 95 96 |
/* Tx WRR confoguration macros */ #define PORT_MAX_TRAN_UNIT 0x24 /* MTU register (default) 9KByte */ #define PORT_MAX_TOKEN_BUCKET_SIZE 0x_FFFF /* PMTBS reg (default) */ #define PORT_TOKEN_RATE 1023 /* PTTBRC reg (default) */ /* MAC accepet/reject macros */ #define ACCEPT_MAC_ADDR 0 #define REJECT_MAC_ADDR 1 /* Size of a Tx/Rx descriptor used in chain list data structure */ |
d44265ad7 mvgbe: support So... |
97 98 |
#define MV_RXQ_DESC_ALIGNED_SIZE \ (((sizeof(struct mvgbe_rxdesc) / PKTALIGN) + 1) * PKTALIGN) |
9131589ad net: Add Marvell ... |
99 100 101 102 |
/* Buffer offset from buffer pointer */ #define RX_BUF_OFFSET 0x2 /* Port serial status reg (PSR) */ |
d44265ad7 mvgbe: support So... |
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
#define MVGBE_INTERFACE_GMII_MII 0 #define MVGBE_INTERFACE_PCM 1 #define MVGBE_LINK_IS_DOWN 0 #define MVGBE_LINK_IS_UP (1 << 1) #define MVGBE_PORT_AT_HALF_DUPLEX 0 #define MVGBE_PORT_AT_FULL_DUPLEX (1 << 2) #define MVGBE_RX_FLOW_CTRL_DISD 0 #define MVGBE_RX_FLOW_CTRL_ENBALED (1 << 3) #define MVGBE_GMII_SPEED_100_10 0 #define MVGBE_GMII_SPEED_1000 (1 << 4) #define MVGBE_MII_SPEED_10 0 #define MVGBE_MII_SPEED_100 (1 << 5) #define MVGBE_NO_TX 0 #define MVGBE_TX_IN_PROGRESS (1 << 7) #define MVGBE_BYPASS_NO_ACTIVE 0 #define MVGBE_BYPASS_ACTIVE (1 << 8) #define MVGBE_PORT_NOT_AT_PARTN_STT 0 #define MVGBE_PORT_AT_PARTN_STT (1 << 9) #define MVGBE_PORT_TX_FIFO_NOT_EMPTY 0 #define MVGBE_PORT_TX_FIFO_EMPTY (1 << 10) |
9131589ad net: Add Marvell ... |
123 124 |
/* These macros describes the Port configuration reg (Px_cR) bits */ |
d44265ad7 mvgbe: support So... |
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
#define MVGBE_UCAST_MOD_NRML 0 #define MVGBE_UNICAST_PROMISCUOUS_MODE 1 #define MVGBE_DFLT_RXQ(_x) (_x << 1) #define MVGBE_DFLT_RX_ARPQ(_x) (_x << 4) #define MVGBE_RX_BC_IF_NOT_IP_OR_ARP 0 #define MVGBE_REJECT_BC_IF_NOT_IP_OR_ARP (1 << 7) #define MVGBE_RX_BC_IF_IP 0 #define MVGBE_REJECT_BC_IF_IP (1 << 8) #define MVGBE_RX_BC_IF_ARP 0 #define MVGBE_REJECT_BC_IF_ARP (1 << 9) #define MVGBE_TX_AM_NO_UPDATE_ERR_SMRY (1 << 12) #define MVGBE_CPTR_TCP_FRMS_DIS 0 #define MVGBE_CPTR_TCP_FRMS_EN (1 << 14) #define MVGBE_CPTR_UDP_FRMS_DIS 0 #define MVGBE_CPTR_UDP_FRMS_EN (1 << 15) #define MVGBE_DFLT_RX_TCPQ(_x) (_x << 16) #define MVGBE_DFLT_RX_UDPQ(_x) (_x << 19) #define MVGBE_DFLT_RX_BPDUQ(_x) (_x << 22) #define MVGBE_DFLT_RX_TCP_CHKSUM_MODE (1 << 25) |
9131589ad net: Add Marvell ... |
144 145 |
/* These macros describes the Port configuration extend reg (Px_cXR) bits*/ |
d44265ad7 mvgbe: support So... |
146 147 148 149 150 151 152 |
#define MVGBE_CLASSIFY_EN 1 #define MVGBE_SPAN_BPDU_PACKETS_AS_NORMAL 0 #define MVGBE_SPAN_BPDU_PACKETS_TO_RX_Q7 (1 << 1) #define MVGBE_PARTITION_DIS 0 #define MVGBE_PARTITION_EN (1 << 2) #define MVGBE_TX_CRC_GENERATION_EN 0 #define MVGBE_TX_CRC_GENERATION_DIS (1 << 3) |
9131589ad net: Add Marvell ... |
153 154 |
/* These macros describes the Port Sdma configuration reg (SDCR) bits */ |
d44265ad7 mvgbe: support So... |
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 |
#define MVGBE_RIFB 1 #define MVGBE_RX_BURST_SIZE_1_64BIT 0 #define MVGBE_RX_BURST_SIZE_2_64BIT (1 << 1) #define MVGBE_RX_BURST_SIZE_4_64BIT (1 << 2) #define MVGBE_RX_BURST_SIZE_8_64BIT ((1 << 2) | (1 << 1)) #define MVGBE_RX_BURST_SIZE_16_64BIT (1 << 3) #define MVGBE_BLM_RX_NO_SWAP (1 << 4) #define MVGBE_BLM_RX_BYTE_SWAP 0 #define MVGBE_BLM_TX_NO_SWAP (1 << 5) #define MVGBE_BLM_TX_BYTE_SWAP 0 #define MVGBE_DESCRIPTORS_BYTE_SWAP (1 << 6) #define MVGBE_DESCRIPTORS_NO_SWAP 0 #define MVGBE_TX_BURST_SIZE_1_64BIT 0 #define MVGBE_TX_BURST_SIZE_2_64BIT (1 << 22) #define MVGBE_TX_BURST_SIZE_4_64BIT (1 << 23) #define MVGBE_TX_BURST_SIZE_8_64BIT ((1 << 23) | (1 << 22)) #define MVGBE_TX_BURST_SIZE_16_64BIT (1 << 24) |
9131589ad net: Add Marvell ... |
172 173 |
/* These macros describes the Port serial control reg (PSCR) bits */ |
d44265ad7 mvgbe: support So... |
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 |
#define MVGBE_SERIAL_PORT_DIS 0 #define MVGBE_SERIAL_PORT_EN 1 #define MVGBE_FORCE_LINK_PASS (1 << 1) #define MVGBE_DO_NOT_FORCE_LINK_PASS 0 #define MVGBE_EN_AUTO_NEG_FOR_DUPLX 0 #define MVGBE_DIS_AUTO_NEG_FOR_DUPLX (1 << 2) #define MVGBE_EN_AUTO_NEG_FOR_FLOW_CTRL 0 #define MVGBE_DIS_AUTO_NEG_FOR_FLOW_CTRL (1 << 3) #define MVGBE_ADV_NO_FLOW_CTRL 0 #define MVGBE_ADV_SYMMETRIC_FLOW_CTRL (1 << 4) #define MVGBE_FORCE_FC_MODE_NO_PAUSE_DIS_TX 0 #define MVGBE_FORCE_FC_MODE_TX_PAUSE_DIS (1 << 5) #define MVGBE_FORCE_BP_MODE_NO_JAM 0 #define MVGBE_FORCE_BP_MODE_JAM_TX (1 << 7) #define MVGBE_FORCE_BP_MODE_JAM_TX_ON_RX_ERR (1 << 8) #define MVGBE_FORCE_LINK_FAIL 0 #define MVGBE_DO_NOT_FORCE_LINK_FAIL (1 << 10) #define MVGBE_DIS_AUTO_NEG_SPEED_GMII (1 << 13) #define MVGBE_EN_AUTO_NEG_SPEED_GMII 0 #define MVGBE_DTE_ADV_0 0 #define MVGBE_DTE_ADV_1 (1 << 14) #define MVGBE_MIIPHY_MAC_MODE 0 #define MVGBE_MIIPHY_PHY_MODE (1 << 15) #define MVGBE_AUTO_NEG_NO_CHANGE 0 #define MVGBE_RESTART_AUTO_NEG (1 << 16) #define MVGBE_MAX_RX_PACKET_1518BYTE 0 #define MVGBE_MAX_RX_PACKET_1522BYTE (1 << 17) #define MVGBE_MAX_RX_PACKET_1552BYTE (1 << 18) #define MVGBE_MAX_RX_PACKET_9022BYTE ((1 << 18) | (1 << 17)) #define MVGBE_MAX_RX_PACKET_9192BYTE (1 << 19) #define MVGBE_MAX_RX_PACKET_9700BYTE ((1 << 19) | (1 << 17)) #define MVGBE_SET_EXT_LOOPBACK (1 << 20) #define MVGBE_CLR_EXT_LOOPBACK 0 #define MVGBE_SET_FULL_DUPLEX_MODE (1 << 21) #define MVGBE_SET_HALF_DUPLEX_MODE 0 #define MVGBE_EN_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX (1 << 22) #define MVGBE_DIS_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX 0 #define MVGBE_SET_GMII_SPEED_TO_10_100 0 #define MVGBE_SET_GMII_SPEED_TO_1000 (1 << 23) #define MVGBE_SET_MII_SPEED_TO_10 0 #define MVGBE_SET_MII_SPEED_TO_100 (1 << 24) |
9131589ad net: Add Marvell ... |
215 216 |
/* SMI register fields */ |
d44265ad7 mvgbe: support So... |
217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 |
#define MVGBE_PHY_SMI_TIMEOUT 10000 #define MVGBE_PHY_SMI_DATA_OFFS 0 /* Data */ #define MVGBE_PHY_SMI_DATA_MASK (0xffff << MVGBE_PHY_SMI_DATA_OFFS) #define MVGBE_PHY_SMI_DEV_ADDR_OFFS 16 /* PHY device address */ #define MVGBE_PHY_SMI_DEV_ADDR_MASK \ (PHYADR_MASK << MVGBE_PHY_SMI_DEV_ADDR_OFFS) #define MVGBE_SMI_REG_ADDR_OFFS 21 /* PHY device reg addr */ #define MVGBE_SMI_REG_ADDR_MASK \ (PHYADR_MASK << MVGBE_SMI_REG_ADDR_OFFS) #define MVGBE_PHY_SMI_OPCODE_OFFS 26 /* Write/Read opcode */ #define MVGBE_PHY_SMI_OPCODE_MASK (3 << MVGBE_PHY_SMI_OPCODE_OFFS) #define MVGBE_PHY_SMI_OPCODE_WRITE (0 << MVGBE_PHY_SMI_OPCODE_OFFS) #define MVGBE_PHY_SMI_OPCODE_READ (1 << MVGBE_PHY_SMI_OPCODE_OFFS) #define MVGBE_PHY_SMI_READ_VALID_MASK (1 << 27) /* Read Valid */ #define MVGBE_PHY_SMI_BUSY_MASK (1 << 28) /* Busy */ |
9131589ad net: Add Marvell ... |
232 233 234 |
/* SDMA command status fields macros */ /* Tx & Rx descriptors status */ |
d44265ad7 mvgbe: support So... |
235 |
#define MVGBE_ERROR_SUMMARY 1 |
9131589ad net: Add Marvell ... |
236 |
/* Tx & Rx descriptors command */ |
d44265ad7 mvgbe: support So... |
237 |
#define MVGBE_BUFFER_OWNED_BY_DMA (1 << 31) |
9131589ad net: Add Marvell ... |
238 |
/* Tx descriptors status */ |
d44265ad7 mvgbe: support So... |
239 240 241 242 243 |
#define MVGBE_LC_ERROR 0 #define MVGBE_UR_ERROR (1 << 1) #define MVGBE_RL_ERROR (1 << 2) #define MVGBE_LLC_SNAP_FORMAT (1 << 9) #define MVGBE_TX_LAST_FRAME (1 << 20) |
9131589ad net: Add Marvell ... |
244 245 |
/* Rx descriptors status */ |
d44265ad7 mvgbe: support So... |
246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 |
#define MVGBE_CRC_ERROR 0 #define MVGBE_OVERRUN_ERROR (1 << 1) #define MVGBE_MAX_FRAME_LENGTH_ERROR (1 << 2) #define MVGBE_RESOURCE_ERROR ((1 << 2) | (1 << 1)) #define MVGBE_VLAN_TAGGED (1 << 19) #define MVGBE_BPDU_FRAME (1 << 20) #define MVGBE_TCP_FRAME_OVER_IP_V_4 0 #define MVGBE_UDP_FRAME_OVER_IP_V_4 (1 << 21) #define MVGBE_OTHER_FRAME_TYPE (1 << 22) #define MVGBE_LAYER_2_IS_MVGBE_V_2 (1 << 23) #define MVGBE_FRAME_TYPE_IP_V_4 (1 << 24) #define MVGBE_FRAME_HEADER_OK (1 << 25) #define MVGBE_RX_LAST_DESC (1 << 26) #define MVGBE_RX_FIRST_DESC (1 << 27) #define MVGBE_UNKNOWN_DESTINATION_ADDR (1 << 28) #define MVGBE_RX_EN_INTERRUPT (1 << 29) #define MVGBE_LAYER_4_CHECKSUM_OK (1 << 30) |
9131589ad net: Add Marvell ... |
263 264 |
/* Rx descriptors byte count */ |
d44265ad7 mvgbe: support So... |
265 |
#define MVGBE_FRAME_FRAGMENTED (1 << 2) |
9131589ad net: Add Marvell ... |
266 267 |
/* Tx descriptors command */ |
d44265ad7 mvgbe: support So... |
268 269 270 271 272 273 274 275 276 277 278 279 |
#define MVGBE_LAYER_4_CHECKSUM_FIRST_DESC (1 << 10) #define MVGBE_FRAME_SET_TO_VLAN (1 << 15) #define MVGBE_TCP_FRAME 0 #define MVGBE_UDP_FRAME (1 << 16) #define MVGBE_GEN_TCP_UDP_CHECKSUM (1 << 17) #define MVGBE_GEN_IP_V_4_CHECKSUM (1 << 18) #define MVGBE_ZERO_PADDING (1 << 19) #define MVGBE_TX_LAST_DESC (1 << 20) #define MVGBE_TX_FIRST_DESC (1 << 21) #define MVGBE_GEN_CRC (1 << 22) #define MVGBE_TX_EN_INTERRUPT (1 << 23) #define MVGBE_AUTO_MODE (1 << 30) |
9131589ad net: Add Marvell ... |
280 281 282 283 284 285 286 287 288 289 290 291 292 |
/* Address decode parameters */ /* Ethernet Base Address Register bits */ #define EBAR_TARGET_DRAM 0x00000000 #define EBAR_TARGET_DEVICE 0x00000001 #define EBAR_TARGET_CBS 0x00000002 #define EBAR_TARGET_PCI0 0x00000003 #define EBAR_TARGET_PCI1 0x00000004 #define EBAR_TARGET_CUNIT 0x00000005 #define EBAR_TARGET_AUNIT 0x00000006 #define EBAR_TARGET_GUNIT 0x00000007 /* Window attrib */ |
fb4879b3c NET: mvgbe: add s... |
293 294 295 296 297 298 |
#if defined(CONFIG_DOVE) #define EBAR_DRAM_CS0 0x00000000 #define EBAR_DRAM_CS1 0x00000000 #define EBAR_DRAM_CS2 0x00000000 #define EBAR_DRAM_CS3 0x00000000 #else |
9131589ad net: Add Marvell ... |
299 300 301 302 |
#define EBAR_DRAM_CS0 0x00000E00 #define EBAR_DRAM_CS1 0x00000D00 #define EBAR_DRAM_CS2 0x00000B00 #define EBAR_DRAM_CS3 0x00000700 |
fb4879b3c NET: mvgbe: add s... |
303 |
#endif |
9131589ad net: Add Marvell ... |
304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 |
/* DRAM Target interface */ #define EBAR_DRAM_NO_CACHE_COHERENCY 0x00000000 #define EBAR_DRAM_CACHE_COHERENCY_WT 0x00001000 #define EBAR_DRAM_CACHE_COHERENCY_WB 0x00002000 /* Device Bus Target interface */ #define EBAR_DEVICE_DEVCS0 0x00001E00 #define EBAR_DEVICE_DEVCS1 0x00001D00 #define EBAR_DEVICE_DEVCS2 0x00001B00 #define EBAR_DEVICE_DEVCS3 0x00001700 #define EBAR_DEVICE_BOOTCS3 0x00000F00 /* PCI Target interface */ #define EBAR_PCI_BYTE_SWAP 0x00000000 #define EBAR_PCI_NO_SWAP 0x00000100 #define EBAR_PCI_BYTE_WORD_SWAP 0x00000200 #define EBAR_PCI_WORD_SWAP 0x00000300 #define EBAR_PCI_NO_SNOOP_NOT_ASSERT 0x00000000 #define EBAR_PCI_NO_SNOOP_ASSERT 0x00000400 #define EBAR_PCI_IO_SPACE 0x00000000 #define EBAR_PCI_MEMORY_SPACE 0x00000800 #define EBAR_PCI_REQ64_FORCE 0x00000000 #define EBAR_PCI_REQ64_SIZE 0x00001000 /* Window access control */ #define EWIN_ACCESS_NOT_ALLOWED 0 #define EWIN_ACCESS_READ_ONLY 1 #define EWIN_ACCESS_FULL ((1 << 1) | 1) /* structures represents Controller registers */ |
d44265ad7 mvgbe: support So... |
335 |
struct mvgbe_barsz { |
9131589ad net: Add Marvell ... |
336 337 338 |
u32 bar; u32 size; }; |
d44265ad7 mvgbe: support So... |
339 340 |
struct mvgbe_rxcdp { struct mvgbe_rxdesc *rxcdp; |
9131589ad net: Add Marvell ... |
341 342 |
u32 rxcdp_pad[3]; }; |
d44265ad7 mvgbe: support So... |
343 |
struct mvgbe_tqx { |
9131589ad net: Add Marvell ... |
344 345 346 347 348 |
u32 qxttbc; u32 tqxtbc; u32 tqxac; u32 tqxpad; }; |
d44265ad7 mvgbe: support So... |
349 |
struct mvgbe_registers { |
9131589ad net: Add Marvell ... |
350 351 352 353 354 355 356 357 358 359 360 361 362 |
u32 phyadr; u32 smi; u32 euda; u32 eudid; u8 pad1[0x080 - 0x00c - 4]; u32 euic; u32 euim; u8 pad2[0x094 - 0x084 - 4]; u32 euea; u32 euiae; u8 pad3[0x0b0 - 0x098 - 4]; u32 euc; u8 pad3a[0x200 - 0x0b0 - 4]; |
d44265ad7 mvgbe: support So... |
363 |
struct mvgbe_barsz barsz[6]; |
9131589ad net: Add Marvell ... |
364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 |
u8 pad4[0x280 - 0x22c - 4]; u32 ha_remap[4]; u32 bare; u32 epap; u8 pad5[0x400 - 0x294 - 4]; u32 pxc; u32 pxcx; u32 mii_ser_params; u8 pad6[0x410 - 0x408 - 4]; u32 evlane; u32 macal; u32 macah; u32 sdc; u32 dscp[7]; u32 psc0; u32 vpt2p; u32 ps0; u32 tqc; u32 psc1; u32 ps1; u32 mrvl_header; u8 pad7[0x460 - 0x454 - 4]; u32 ic; u32 ice; u32 pim; u32 peim; u8 pad8[0x474 - 0x46c - 4]; u32 pxtfut; u32 pad9; u32 pxmfs; u32 pad10; u32 pxdfc; u32 pxofc; u8 pad11[0x494 - 0x488 - 4]; u32 peuiae; u8 pad12[0x4bc - 0x494 - 4]; u32 eth_type_prio; u8 pad13[0x4dc - 0x4bc - 4]; u32 tqfpc; u32 pttbrc; u32 tqc1; u32 pmtu; u32 pmtbs; u8 pad14[0x60c - 0x4ec - 4]; |
d44265ad7 mvgbe: support So... |
408 409 |
struct mvgbe_rxcdp rxcdp[7]; struct mvgbe_rxdesc *rxcdp7; |
9131589ad net: Add Marvell ... |
410 |
u32 rqc; |
d44265ad7 mvgbe: support So... |
411 |
struct mvgbe_txdesc *tcsdp; |
9131589ad net: Add Marvell ... |
412 |
u8 pad15[0x6c0 - 0x684 - 4]; |
d44265ad7 mvgbe: support So... |
413 |
struct mvgbe_txdesc *tcqdp[8]; |
9131589ad net: Add Marvell ... |
414 |
u8 pad16[0x700 - 0x6dc - 4]; |
d44265ad7 mvgbe: support So... |
415 |
struct mvgbe_tqx tqx[8]; |
9131589ad net: Add Marvell ... |
416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 |
u32 pttbc; u8 pad17[0x7a8 - 0x780 - 4]; u32 tqxipg0; u32 pad18[3]; u32 tqxipg1; u8 pad19[0x7c0 - 0x7b8 - 4]; u32 hitkninlopkt; u32 hitkninasyncpkt; u32 lotkninasyncpkt; u32 pad20; u32 ts; u8 pad21[0x3000 - 0x27d0 - 4]; u32 pad20_1[32]; /* mib counter registes */ u8 pad22[0x3400 - 0x3000 - sizeof(u32) * 32]; u32 dfsmt[64]; u32 dfomt[64]; u32 dfut[4]; u8 pad23[0xe20c0 - 0x7360c - 4]; u32 pmbus_top_arbiter; }; /* structures/enums needed by driver */ |
d44265ad7 mvgbe: support So... |
438 439 440 441 442 443 444 |
enum mvgbe_adrwin { MVGBE_WIN0, MVGBE_WIN1, MVGBE_WIN2, MVGBE_WIN3, MVGBE_WIN4, MVGBE_WIN5 |
9131589ad net: Add Marvell ... |
445 |
}; |
d44265ad7 mvgbe: support So... |
446 447 448 449 450 451 |
enum mvgbe_target { MVGBE_TARGET_DRAM, MVGBE_TARGET_DEV, MVGBE_TARGET_CBS, MVGBE_TARGET_PCI0, MVGBE_TARGET_PCI1 |
9131589ad net: Add Marvell ... |
452 |
}; |
d44265ad7 mvgbe: support So... |
453 454 455 |
struct mvgbe_winparam { enum mvgbe_adrwin win; /* Window number */ enum mvgbe_target target; /* System targets */ |
9131589ad net: Add Marvell ... |
456 457 458 459 460 461 462 |
u16 attrib; /* BAR attrib. See above macros */ u32 base_addr; /* Window base address in u32 form */ u32 high_addr; /* Window high address in u32 form */ u32 size; /* Size in MBytes. Must be % 64Kbyte. */ int enable; /* Enable/disable access to the window. */ u16 access_ctrl; /*Access ctrl register. see above macros */ }; |
d44265ad7 mvgbe: support So... |
463 |
struct mvgbe_rxdesc { |
9131589ad net: Add Marvell ... |
464 465 466 467 |
u32 cmd_sts; /* Descriptor command status */ u16 buf_size; /* Buffer size */ u16 byte_cnt; /* Descriptor buffer byte count */ u8 *buf_ptr; /* Descriptor buffer pointer */ |
d44265ad7 mvgbe: support So... |
468 |
struct mvgbe_rxdesc *nxtdesc_p; /* Next descriptor pointer */ |
9131589ad net: Add Marvell ... |
469 |
}; |
d44265ad7 mvgbe: support So... |
470 |
struct mvgbe_txdesc { |
9131589ad net: Add Marvell ... |
471 472 473 474 |
u32 cmd_sts; /* Descriptor command status */ u16 l4i_chk; /* CPU provided TCP Checksum */ u16 byte_cnt; /* Descriptor buffer byte count */ u8 *buf_ptr; /* Descriptor buffer ptr */ |
d44265ad7 mvgbe: support So... |
475 |
struct mvgbe_txdesc *nxtdesc_p; /* Next descriptor ptr */ |
9131589ad net: Add Marvell ... |
476 477 478 |
}; /* port device data struct */ |
d44265ad7 mvgbe: support So... |
479 |
struct mvgbe_device { |
9131589ad net: Add Marvell ... |
480 |
struct eth_device dev; |
d44265ad7 mvgbe: support So... |
481 482 483 484 |
struct mvgbe_registers *regs; struct mvgbe_txdesc *p_txdesc; struct mvgbe_rxdesc *p_rxdesc; struct mvgbe_rxdesc *p_rxdesc_curr; |
9131589ad net: Add Marvell ... |
485 |
u8 *p_rxbuf; |
477fa6378 arm: kirkwood: Se... |
486 |
u8 *p_aligned_txbuf; |
9131589ad net: Add Marvell ... |
487 |
}; |
d44265ad7 mvgbe: support So... |
488 |
#endif /* __MVGBE_H__ */ |