Rev 9146 | Rev 9569 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
7827 | hidnplayr | 1 | ALX_VEN_ID = 0x1969 |
2 | |||
3 | ALX_DEV_ID_AR8131 = 0x1063 |
||
9150 | hidnplayr | 4 | ALX_DEV_ID_AR8132 = 0x1062 |
5 | ALX_DEV_ID_AR8151_1 = 0x1073 |
||
6 | ALX_DEV_ID_AR8151_2 = 0x1083 |
||
7 | ALX_DEV_ID_AR8152_1 = 0x2060 |
||
8 | ALX_DEV_ID_AR8152_2 = 0x2062 |
||
7809 | hidnplayr | 9 | ALX_DEV_ID_AR8161 = 0x1091 |
10 | ALX_DEV_ID_E2200 = 0xe091 |
||
11 | ALX_DEV_ID_E2400 = 0xe0a1 |
||
12 | ALX_DEV_ID_E2500 = 0xe0b1 |
||
13 | ALX_DEV_ID_AR8162 = 0x1090 |
||
14 | ALX_DEV_ID_AR8171 = 0x10A1 |
||
15 | ALX_DEV_ID_AR8172 = 0x10A0 |
||
16 | |||
9146 | hidnplayr | 17 | ALX_PCI_REVID_WITH_XD = 1 shl 0 |
18 | ALX_PCI_REVID_WITH_CR = 1 shl 1 ; With Card Reader |
||
7809 | hidnplayr | 19 | ALX_PCI_REVID_SHIFT = 3 |
20 | ALX_REV_A0 = 0 |
||
21 | ALX_REV_A1 = 1 |
||
22 | ALX_REV_B0 = 2 |
||
23 | ALX_REV_C0 = 3 |
||
24 | |||
25 | ALX_DEV_CTRL = 0x0060 |
||
26 | ALX_DEV_CTRL_MAXRRS_MIN = 2 |
||
27 | |||
28 | ALX_MSIX_MASK = 0x0090 |
||
29 | |||
30 | ALX_UE_SVRT = 0x010C |
||
31 | ALX_UE_SVRT_FCPROTERR = (1 shl 13) |
||
32 | ALX_UE_SVRT_DLPROTERR = (1 shl 4) |
||
33 | |||
34 | ; eeprom & flash load register |
||
35 | ALX_EFLD = 0x0204 |
||
36 | ALX_EFLD_F_EXIST = (1 shl 10) |
||
37 | ALX_EFLD_E_EXIST = (1 shl 9) |
||
38 | ALX_EFLD_STAT = (1 shl 5) |
||
39 | ALX_EFLD_START = (1 shl 0) |
||
40 | |||
41 | ; eFuse load register |
||
42 | ALX_SLD = 0x0218 |
||
43 | ALX_SLD_STAT = (1 shl 12) |
||
44 | ALX_SLD_START = (1 shl 11) |
||
45 | ALX_SLD_MAX_TO = 100 |
||
46 | |||
47 | ALX_PDLL_TRNS1 = 0x1104 |
||
48 | ALX_PDLL_TRNS1_D3PLLOFF_EN = (1 shl 11) |
||
49 | |||
50 | ALX_PMCTRL = 0x12F8 |
||
51 | ALX_PMCTRL_HOTRST_WTEN = (1 shl 31) |
||
52 | ; bit30: L0s/L1 controlled by MAC based on throughput(setting in 15A0) |
||
53 | ALX_PMCTRL_ASPM_FCEN = (1 shl 30) |
||
54 | ALX_PMCTRL_SADLY_EN = (1 shl 29) |
||
55 | ALX_PMCTRL_LCKDET_TIMER_MASK = 0xF |
||
56 | ALX_PMCTRL_LCKDET_TIMER_SHIFT = 24 |
||
57 | ALX_PMCTRL_LCKDET_TIMER_DEF = 0xC |
||
58 | ; bit[23:20] if pm_request_l1 time > @, then enter L0s not L1 |
||
59 | ALX_PMCTRL_L1REQ_TO_MASK = 0xF |
||
60 | ALX_PMCTRL_L1REQ_TO_SHIFT = 20 |
||
61 | ALX_PMCTRL_L1REG_TO_DEF = 0xF |
||
62 | ALX_PMCTRL_TXL1_AFTER_L0S = (1 shl 19) |
||
63 | ALX_PMCTRL_L1_TIMER_MASK = 0x7 |
||
64 | ALX_PMCTRL_L1_TIMER_SHIFT = 16 |
||
65 | ALX_PMCTRL_L1_TIMER_16US = 4 |
||
66 | ALX_PMCTRL_RCVR_WT_1US = (1 shl 15) |
||
67 | ; bit13: enable pcie clk switch in L1 state |
||
68 | ALX_PMCTRL_L1_CLKSW_EN = (1 shl 13) |
||
69 | ALX_PMCTRL_L0S_EN = (1 shl 12) |
||
70 | ALX_PMCTRL_RXL1_AFTER_L0S = (1 shl 11) |
||
71 | ALX_PMCTRL_L1_BUFSRX_EN = (1 shl 7) |
||
72 | ; bit6: power down serdes RX |
||
73 | ALX_PMCTRL_L1_SRDSRX_PWD = (1 shl 6) |
||
74 | ALX_PMCTRL_L1_SRDSPLL_EN = (1 shl 5) |
||
75 | ALX_PMCTRL_L1_SRDS_EN = (1 shl 4) |
||
76 | ALX_PMCTRL_L1_EN = (1 shl 3) |
||
77 | |||
78 | ;****************************************************** |
||
79 | ; following registers are mapped only to memory space |
||
80 | ;****************************************************** |
||
81 | |||
82 | ALX_MASTER = 0x1400 |
||
83 | ; bit12: 1:alwys select pclk from serdes, not sw to 25M |
||
84 | ALX_MASTER_PCLKSEL_SRDS = (1 shl 12) |
||
85 | ; bit11: irq moduration for rx |
||
86 | ALX_MASTER_IRQMOD2_EN = (1 shl 11) |
||
87 | ; bit10: irq moduration for tx/rx |
||
88 | ALX_MASTER_IRQMOD1_EN = (1 shl 10) |
||
89 | ALX_MASTER_SYSALVTIMER_EN = (1 shl 7) |
||
90 | ALX_MASTER_OOB_DIS = (1 shl 6) |
||
91 | ; bit5: wakeup without pcie clk |
||
92 | ALX_MASTER_WAKEN_25M = (1 shl 5) |
||
93 | ; bit0: MAC & DMA reset |
||
94 | ALX_MASTER_DMA_MAC_RST = (1 shl 0) |
||
95 | ALX_DMA_MAC_RST_TO = 50 |
||
96 | |||
97 | ALX_IRQ_MODU_TIMER = 0x1408 |
||
9146 | hidnplayr | 98 | ALX_IRQ_MODU_TIMER1_MASK = 0x0000FFFF |
7809 | hidnplayr | 99 | ALX_IRQ_MODU_TIMER1_SHIFT = 0 |
9146 | hidnplayr | 100 | ALX_IRQ_MODU_TIMER2_MASK = 0xFFFF0000 |
101 | ALX_IRQ_MODU_TIMER2_SHIFT = 16 |
||
7809 | hidnplayr | 102 | |
103 | ALX_PHY_CTRL = 0x140C |
||
104 | ALX_PHY_CTRL_100AB_EN = (1 shl 17) |
||
105 | ; bit14: affect MAC & PHY, go to low power sts |
||
106 | ALX_PHY_CTRL_POWER_DOWN = (1 shl 14) |
||
107 | ; bit13: 1:pll always ON, 0:can switch in lpw |
||
108 | ALX_PHY_CTRL_PLL_ON = (1 shl 13) |
||
109 | ALX_PHY_CTRL_RST_ANALOG = (1 shl 12) |
||
110 | ALX_PHY_CTRL_HIB_PULSE = (1 shl 11) |
||
111 | ALX_PHY_CTRL_HIB_EN = (1 shl 10) |
||
112 | ALX_PHY_CTRL_IDDQ = (1 shl 7) |
||
113 | ALX_PHY_CTRL_GATE_25M = (1 shl 5) |
||
114 | ALX_PHY_CTRL_LED_MODE = (1 shl 2) |
||
115 | ; bit0: out of dsp RST state |
||
116 | ALX_PHY_CTRL_DSPRST_OUT = (1 shl 0) |
||
117 | ALX_PHY_CTRL_DSPRST_TO = 80 |
||
118 | ALX_PHY_CTRL_CLS = (ALX_PHY_CTRL_LED_MODE or ALX_PHY_CTRL_100AB_EN or ALX_PHY_CTRL_PLL_ON) |
||
119 | |||
120 | ALX_MAC_STS = 0x1410 |
||
121 | ALX_MAC_STS_TXQ_BUSY = (1 shl 3) |
||
122 | ALX_MAC_STS_RXQ_BUSY = (1 shl 2) |
||
123 | ALX_MAC_STS_TXMAC_BUSY = (1 shl 1) |
||
124 | ALX_MAC_STS_RXMAC_BUSY = (1 shl 0) |
||
125 | ALX_MAC_STS_IDLE = (ALX_MAC_STS_TXQ_BUSY or ALX_MAC_STS_RXQ_BUSY or ALX_MAC_STS_TXMAC_BUSY or ALX_MAC_STS_RXMAC_BUSY) |
||
126 | |||
127 | ALX_MDIO = 0x1414 |
||
128 | ALX_MDIO_MODE_EXT = (1 shl 30) |
||
129 | ALX_MDIO_BUSY = (1 shl 27) |
||
130 | ALX_MDIO_CLK_SEL_MASK = 0x7 |
||
131 | ALX_MDIO_CLK_SEL_SHIFT = 24 |
||
132 | ALX_MDIO_CLK_SEL_25MD4 = 0 |
||
133 | ALX_MDIO_CLK_SEL_25MD128 = 7 |
||
134 | ALX_MDIO_START = (1 shl 23) |
||
135 | ALX_MDIO_SPRES_PRMBL = (1 shl 22) |
||
136 | ; bit21: 1:read,0:write |
||
137 | ALX_MDIO_OP_READ = (1 shl 21) |
||
138 | ALX_MDIO_REG_MASK = 0x1F |
||
139 | ALX_MDIO_REG_SHIFT = 16 |
||
140 | ALX_MDIO_DATA_MASK = 0xFFFF |
||
141 | ALX_MDIO_DATA_SHIFT = 0 |
||
142 | ALX_MDIO_MAX_AC_TO = 120 |
||
143 | |||
144 | ALX_MDIO_EXTN = 0x1448 |
||
145 | ALX_MDIO_EXTN_DEVAD_MASK = 0x1F |
||
146 | ALX_MDIO_EXTN_DEVAD_SHIFT = 16 |
||
147 | ALX_MDIO_EXTN_REG_MASK = 0xFFFF |
||
148 | ALX_MDIO_EXTN_REG_SHIFT = 0 |
||
149 | |||
150 | ALX_SERDES = 0x1424 |
||
151 | ALX_SERDES_PHYCLK_SLWDWN = (1 shl 18) |
||
152 | ALX_SERDES_MACCLK_SLWDWN = (1 shl 17) |
||
153 | |||
154 | ALX_LPI_CTRL = 0x1440 |
||
155 | ALX_LPI_CTRL_EN = (1 shl 0) |
||
156 | |||
157 | ; for B0+, bit[13..] for C0+ |
||
158 | ALX_HRTBT_EXT_CTRL = 0x1AD0 |
||
159 | L1F_HRTBT_EXT_CTRL_PERIOD_HIGH_MASK = 0x3F |
||
160 | L1F_HRTBT_EXT_CTRL_PERIOD_HIGH_SHIFT = 24 |
||
161 | L1F_HRTBT_EXT_CTRL_SWOI_STARTUP_PKT_EN = (1 shl 23) |
||
162 | L1F_HRTBT_EXT_CTRL_IOAC_2_FRAGMENTED = (1 shl 22) |
||
163 | L1F_HRTBT_EXT_CTRL_IOAC_1_FRAGMENTED = (1 shl 21) |
||
164 | L1F_HRTBT_EXT_CTRL_IOAC_1_KEEPALIVE_EN = (1 shl 20) |
||
165 | L1F_HRTBT_EXT_CTRL_IOAC_1_HAS_VLAN = (1 shl 19) |
||
166 | L1F_HRTBT_EXT_CTRL_IOAC_1_IS_8023 = (1 shl 18) |
||
167 | L1F_HRTBT_EXT_CTRL_IOAC_1_IS_IPV6 = (1 shl 17) |
||
168 | L1F_HRTBT_EXT_CTRL_IOAC_2_KEEPALIVE_EN = (1 shl 16) |
||
169 | L1F_HRTBT_EXT_CTRL_IOAC_2_HAS_VLAN = (1 shl 15) |
||
170 | L1F_HRTBT_EXT_CTRL_IOAC_2_IS_8023 = (1 shl 14) |
||
171 | L1F_HRTBT_EXT_CTRL_IOAC_2_IS_IPV6 = (1 shl 13) |
||
172 | ALX_HRTBT_EXT_CTRL_NS_EN = (1 shl 12) |
||
173 | ALX_HRTBT_EXT_CTRL_FRAG_LEN_MASK = 0xFF |
||
174 | ALX_HRTBT_EXT_CTRL_FRAG_LEN_SHIFT = 4 |
||
175 | ALX_HRTBT_EXT_CTRL_IS_8023 = (1 shl 3) |
||
176 | ALX_HRTBT_EXT_CTRL_IS_IPV6 = (1 shl 2) |
||
177 | ALX_HRTBT_EXT_CTRL_WAKEUP_EN = (1 shl 1) |
||
178 | ALX_HRTBT_EXT_CTRL_ARP_EN = (1 shl 0) |
||
179 | |||
180 | ALX_HRTBT_REM_IPV4_ADDR = 0x1AD4 |
||
181 | ALX_HRTBT_HOST_IPV4_ADDR = 0x1478 |
||
182 | ALX_HRTBT_REM_IPV6_ADDR3 = 0x1AD8 |
||
183 | ALX_HRTBT_REM_IPV6_ADDR2 = 0x1ADC |
||
184 | ALX_HRTBT_REM_IPV6_ADDR1 = 0x1AE0 |
||
185 | ALX_HRTBT_REM_IPV6_ADDR0 = 0x1AE4 |
||
186 | |||
187 | ; 1B8C ~ 1B94 for C0+ |
||
188 | ALX_SWOI_ACER_CTRL = 0x1B8C |
||
189 | ALX_SWOI_ORIG_ACK_NAK_EN = (1 shl 20) |
||
190 | ALX_SWOI_ORIG_ACK_NAK_PKT_LEN_MASK = 0xFF |
||
191 | ALX_SWOI_ORIG_ACK_NAK_PKT_LEN_SHIFT = 12 |
||
192 | ALX_SWOI_ORIG_ACK_ADDR_MASK = 0xFFF |
||
193 | ALX_SWOI_ORIG_ACK_ADDR_SHIFT = 0 |
||
194 | |||
195 | ALX_SWOI_IOAC_CTRL_2 = 0x1B90 |
||
196 | ALX_SWOI_IOAC_CTRL_2_SWOI_1_FRAG_LEN_MASK = 0xFF |
||
197 | ALX_SWOI_IOAC_CTRL_2_SWOI_1_FRAG_LEN_SHIFT = 24 |
||
198 | ALX_SWOI_IOAC_CTRL_2_SWOI_1_PKT_LEN_MASK = 0xFFF |
||
199 | ALX_SWOI_IOAC_CTRL_2_SWOI_1_PKT_LEN_SHIFT = 12 |
||
200 | ALX_SWOI_IOAC_CTRL_2_SWOI_1_HDR_ADDR_MASK = 0xFFF |
||
201 | ALX_SWOI_IOAC_CTRL_2_SWOI_1_HDR_ADDR_SHIFT = 0 |
||
202 | |||
203 | ALX_SWOI_IOAC_CTRL_3 = 0x1B94 |
||
204 | ALX_SWOI_IOAC_CTRL_3_SWOI_2_FRAG_LEN_MASK = 0xFF |
||
205 | ALX_SWOI_IOAC_CTRL_3_SWOI_2_FRAG_LEN_SHIFT = 24 |
||
206 | ALX_SWOI_IOAC_CTRL_3_SWOI_2_PKT_LEN_MASK = 0xFFF |
||
207 | ALX_SWOI_IOAC_CTRL_3_SWOI_2_PKT_LEN_SHIFT = 12 |
||
208 | ALX_SWOI_IOAC_CTRL_3_SWOI_2_HDR_ADDR_MASK = 0xFFF |
||
209 | ALX_SWOI_IOAC_CTRL_3_SWOI_2_HDR_ADDR_SHIFT = 0 |
||
210 | |||
211 | ; for B0 |
||
212 | ALX_IDLE_DECISN_TIMER = 0x1474 |
||
213 | ; 1ms |
||
214 | ALX_IDLE_DECISN_TIMER_DEF = 0x400 |
||
215 | |||
216 | ALX_MAC_CTRL = 0x1480 |
||
217 | ALX_MAC_CTRL_FAST_PAUSE = (1 shl 31) |
||
218 | ALX_MAC_CTRL_WOLSPED_SWEN = (1 shl 30) |
||
219 | ; bit29: 1:legacy(hi5b), 0:marvl(lo5b) |
||
220 | ALX_MAC_CTRL_MHASH_ALG_HI5B = (1 shl 29) |
||
221 | ALX_MAC_CTRL_BRD_EN = (1 shl 26) |
||
222 | ALX_MAC_CTRL_MULTIALL_EN = (1 shl 25) |
||
223 | ALX_MAC_CTRL_SPEED_MASK = 0x3 |
||
224 | ALX_MAC_CTRL_SPEED_SHIFT = 20 |
||
225 | ALX_MAC_CTRL_SPEED_10_100 = 1 |
||
226 | ALX_MAC_CTRL_SPEED_1000 = 2 |
||
227 | ALX_MAC_CTRL_PROMISC_EN = (1 shl 15) |
||
228 | ALX_MAC_CTRL_VLANSTRIP = (1 shl 14) |
||
229 | ALX_MAC_CTRL_PRMBLEN_MASK = 0xF |
||
230 | ALX_MAC_CTRL_PRMBLEN_SHIFT = 10 |
||
231 | ALX_MAC_CTRL_PCRCE = (1 shl 7) |
||
232 | ALX_MAC_CTRL_CRCE = (1 shl 6) |
||
233 | ALX_MAC_CTRL_FULLD = (1 shl 5) |
||
234 | ALX_MAC_CTRL_RXFC_EN = (1 shl 3) |
||
235 | ALX_MAC_CTRL_TXFC_EN = (1 shl 2) |
||
236 | ALX_MAC_CTRL_RX_EN = (1 shl 1) |
||
237 | ALX_MAC_CTRL_TX_EN = (1 shl 0) |
||
238 | |||
239 | ALX_STAD0 = 0x1488 |
||
240 | ALX_STAD1 = 0x148C |
||
241 | |||
242 | ALX_HASH_TBL0 = 0x1490 |
||
243 | ALX_HASH_TBL1 = 0x1494 |
||
244 | |||
245 | ALX_MTU = 0x149C |
||
246 | ALX_MTU_JUMBO_TH = 1514 |
||
247 | ALX_MTU_STD_ALGN = 1536 |
||
248 | |||
249 | ALX_SRAM5 = 0x1524 |
||
250 | ALX_SRAM_RXF_LEN_MASK = 0xFFF |
||
251 | ALX_SRAM_RXF_LEN_SHIFT = 0 |
||
252 | ALX_SRAM_RXF_LEN_8K = (8*1024) |
||
253 | |||
254 | ALX_SRAM9 = 0x1534 |
||
255 | ALX_SRAM_LOAD_PTR = (1 shl 0) |
||
256 | |||
257 | ALX_RX_BASE_ADDR_HI = 0x1540 |
||
258 | |||
259 | ALX_TX_BASE_ADDR_HI = 0x1544 |
||
260 | |||
261 | ALX_RFD_ADDR_LO = 0x1550 |
||
262 | ALX_RFD_RING_SZ = 0x1560 |
||
263 | ALX_RFD_BUF_SZ = 0x1564 |
||
264 | |||
265 | ALX_RRD_ADDR_LO = 0x1568 |
||
266 | ALX_RRD_RING_SZ = 0x1578 |
||
267 | |||
268 | ; pri3: highest, pri0: lowest |
||
269 | ALX_TPD_PRI3_ADDR_LO = 0x14E4 |
||
270 | ALX_TPD_PRI2_ADDR_LO = 0x14E0 |
||
271 | ALX_TPD_PRI1_ADDR_LO = 0x157C |
||
272 | ALX_TPD_PRI0_ADDR_LO = 0x1580 |
||
273 | |||
274 | ; producer index is 16bit |
||
275 | ALX_TPD_PRI3_PIDX = 0x1618 |
||
276 | ALX_TPD_PRI2_PIDX = 0x161A |
||
277 | ALX_TPD_PRI1_PIDX = 0x15F0 |
||
278 | ALX_TPD_PRI0_PIDX = 0x15F2 |
||
279 | |||
280 | ; consumer index is 16bit |
||
281 | ALX_TPD_PRI3_CIDX = 0x161C |
||
282 | ALX_TPD_PRI2_CIDX = 0x161E |
||
283 | ALX_TPD_PRI1_CIDX = 0x15F4 |
||
284 | ALX_TPD_PRI0_CIDX = 0x15F6 |
||
285 | |||
286 | ALX_TPD_RING_SZ = 0x1584 |
||
287 | |||
288 | ALX_TXQ0 = 0x1590 |
||
289 | ALX_TXQ0_TXF_BURST_PREF_MASK = 0xFFFF |
||
290 | ALX_TXQ0_TXF_BURST_PREF_SHIFT = 16 |
||
291 | ALX_TXQ_TXF_BURST_PREF_DEF = 0x200 |
||
292 | ALX_TXQ0_LSO_8023_EN = (1 shl 7) |
||
293 | ALX_TXQ0_MODE_ENHANCE = (1 shl 6) |
||
294 | ALX_TXQ0_EN = (1 shl 5) |
||
295 | ALX_TXQ0_SUPT_IPOPT = (1 shl 4) |
||
296 | ALX_TXQ0_TPD_BURSTPREF_MASK = 0xF |
||
297 | ALX_TXQ0_TPD_BURSTPREF_SHIFT = 0 |
||
298 | ALX_TXQ_TPD_BURSTPREF_DEF = 5 |
||
299 | |||
300 | ALX_TXQ1 = 0x1594 |
||
301 | ; bit11: drop large packet, len > (rfd buf) |
||
302 | ALX_TXQ1_ERRLGPKT_DROP_EN = (1 shl 11) |
||
303 | ALX_TXQ1_JUMBO_TSO_TH = (7*1024) |
||
304 | |||
305 | ALX_RXQ0 = 0x15A0 |
||
306 | ALX_RXQ0_EN = (1 shl 31) |
||
307 | ALX_RXQ0_RSS_HASH_EN = (1 shl 29) |
||
308 | ALX_RXQ0_RSS_MODE_MASK = 0x3 |
||
309 | ALX_RXQ0_RSS_MODE_SHIFT = 26 |
||
310 | ALX_RXQ0_RSS_MODE_DIS = 0 |
||
311 | ALX_RXQ0_RSS_MODE_MQMI = 3 |
||
312 | ALX_RXQ0_NUM_RFD_PREF_MASK = 0x3F |
||
313 | ALX_RXQ0_NUM_RFD_PREF_SHIFT = 20 |
||
314 | ALX_RXQ0_NUM_RFD_PREF_DEF = 8 |
||
315 | ALX_RXQ0_IDT_TBL_SIZE_MASK = 0x1FF |
||
316 | ALX_RXQ0_IDT_TBL_SIZE_SHIFT = 8 |
||
317 | ALX_RXQ0_IDT_TBL_SIZE_DEF = 0x100 |
||
318 | ALX_RXQ0_IDT_TBL_SIZE_NORMAL = 128 |
||
319 | ALX_RXQ0_IPV6_PARSE_EN = (1 shl 7) |
||
320 | ALX_RXQ0_RSS_HSTYP_MASK = 0xF |
||
321 | ALX_RXQ0_RSS_HSTYP_SHIFT = 2 |
||
322 | ALX_RXQ0_RSS_HSTYP_IPV6_TCP_EN = (1 shl 5) |
||
323 | ALX_RXQ0_RSS_HSTYP_IPV6_EN = (1 shl 4) |
||
324 | ALX_RXQ0_RSS_HSTYP_IPV4_TCP_EN = (1 shl 3) |
||
325 | ALX_RXQ0_RSS_HSTYP_IPV4_EN = (1 shl 2) |
||
326 | ALX_RXQ0_RSS_HSTYP_ALL = (ALX_RXQ0_RSS_HSTYP_IPV6_TCP_EN or ALX_RXQ0_RSS_HSTYP_IPV4_TCP_EN or ALX_RXQ0_RSS_HSTYP_IPV6_EN or ALX_RXQ0_RSS_HSTYP_IPV4_EN) |
||
327 | ALX_RXQ0_ASPM_THRESH_MASK = 0x3 |
||
328 | ALX_RXQ0_ASPM_THRESH_SHIFT = 0 |
||
329 | ALX_RXQ0_ASPM_THRESH_100M = 3 |
||
330 | |||
331 | ALX_RXQ2 = 0x15A8 |
||
332 | ALX_RXQ2_RXF_XOFF_THRESH_MASK = 0xFFF |
||
333 | ALX_RXQ2_RXF_XOFF_THRESH_SHIFT = 16 |
||
334 | ALX_RXQ2_RXF_XON_THRESH_MASK = 0xFFF |
||
335 | ALX_RXQ2_RXF_XON_THRESH_SHIFT = 0 |
||
336 | ; Size = tx-packet(1522) + IPG(12) + SOF(8) + 64(Pause) + IPG(12) + SOF(8) + |
||
337 | ; rx-packet(1522) + delay-of-link(64) |
||
338 | ; = 3212. |
||
339 | |||
340 | ALX_RXQ2_RXF_FLOW_CTRL_RSVD = 3212 |
||
341 | |||
342 | ALX_DMA = 0x15C0 |
||
343 | ALX_DMA_RCHNL_SEL_MASK = 0x3 |
||
344 | ALX_DMA_RCHNL_SEL_SHIFT = 26 |
||
345 | ALX_DMA_WDLY_CNT_MASK = 0xF |
||
346 | ALX_DMA_WDLY_CNT_SHIFT = 16 |
||
347 | ALX_DMA_WDLY_CNT_DEF = 4 |
||
348 | ALX_DMA_RDLY_CNT_MASK = 0x1F |
||
349 | ALX_DMA_RDLY_CNT_SHIFT = 11 |
||
350 | ALX_DMA_RDLY_CNT_DEF = 15 |
||
351 | ; bit10: 0:tpd with pri, 1: data |
||
352 | ALX_DMA_RREQ_PRI_DATA = (1 shl 10) |
||
353 | ALX_DMA_RREQ_BLEN_MASK = 0x7 |
||
354 | ALX_DMA_RREQ_BLEN_SHIFT = 4 |
||
355 | ALX_DMA_RORDER_MODE_MASK = 0x7 |
||
356 | ALX_DMA_RORDER_MODE_SHIFT = 0 |
||
357 | ALX_DMA_RORDER_MODE_OUT = 4 |
||
358 | |||
359 | ALX_WOL0 = 0x14A0 |
||
360 | ALX_WOL0_PME_LINK = (1 shl 5) |
||
361 | ALX_WOL0_LINK_EN = (1 shl 4) |
||
362 | ALX_WOL0_PME_MAGIC_EN = (1 shl 3) |
||
363 | ALX_WOL0_MAGIC_EN = (1 shl 2) |
||
364 | |||
365 | ; RFD Producer index |
||
366 | ALX_RFD_PIDX = 0x15E0 |
||
367 | |||
368 | ; RFD Consumer indef |
||
369 | ALX_RFD_CIDX = 0x15F8 |
||
370 | |||
371 | ; MIB |
||
372 | ALX_MIB_BASE = 0x1700 |
||
373 | |||
374 | ALX_MIB_RX_OK = (ALX_MIB_BASE + 0) |
||
375 | ALX_MIB_RX_BCAST = (ALX_MIB_BASE + 4) |
||
376 | ALX_MIB_RX_MCAST = (ALX_MIB_BASE + 8) |
||
377 | ALX_MIB_RX_PAUSE = (ALX_MIB_BASE + 12) |
||
378 | ALX_MIB_RX_CTRL = (ALX_MIB_BASE + 16) |
||
379 | ALX_MIB_RX_FCS_ERR = (ALX_MIB_BASE + 20) |
||
380 | ALX_MIB_RX_LEN_ERR = (ALX_MIB_BASE + 24) |
||
381 | ALX_MIB_RX_BYTE_CNT = (ALX_MIB_BASE + 28) |
||
382 | ALX_MIB_RX_RUNT = (ALX_MIB_BASE + 32) |
||
383 | ALX_MIB_RX_FRAG = (ALX_MIB_BASE + 36) |
||
384 | ALX_MIB_RX_SZ_64B = (ALX_MIB_BASE + 40) |
||
385 | ALX_MIB_RX_SZ_127B = (ALX_MIB_BASE + 44) |
||
386 | ALX_MIB_RX_SZ_255B = (ALX_MIB_BASE + 48) |
||
387 | ALX_MIB_RX_SZ_511B = (ALX_MIB_BASE + 52) |
||
388 | ALX_MIB_RX_SZ_1023B = (ALX_MIB_BASE + 56) |
||
389 | ALX_MIB_RX_SZ_1518B = (ALX_MIB_BASE + 60) |
||
390 | ALX_MIB_RX_SZ_MAX = (ALX_MIB_BASE + 64) |
||
391 | ALX_MIB_RX_OV_SZ = (ALX_MIB_BASE + 68) |
||
392 | ALX_MIB_RX_OV_RXF = (ALX_MIB_BASE + 72) |
||
393 | ALX_MIB_RX_OV_RRD = (ALX_MIB_BASE + 76) |
||
394 | ALX_MIB_RX_ALIGN_ERR = (ALX_MIB_BASE + 80) |
||
395 | ALX_MIB_RX_BCCNT = (ALX_MIB_BASE + 84) |
||
396 | ALX_MIB_RX_MCCNT = (ALX_MIB_BASE + 88) |
||
397 | ALX_MIB_RX_ERRADDR = (ALX_MIB_BASE + 92) |
||
398 | |||
399 | ALX_MIB_TX_OK = (ALX_MIB_BASE + 96) |
||
400 | ALX_MIB_TX_BCAST = (ALX_MIB_BASE + 100) |
||
401 | ALX_MIB_TX_MCAST = (ALX_MIB_BASE + 104) |
||
402 | ALX_MIB_TX_PAUSE = (ALX_MIB_BASE + 108) |
||
403 | ALX_MIB_TX_EXC_DEFER = (ALX_MIB_BASE + 112) |
||
404 | ALX_MIB_TX_CTRL = (ALX_MIB_BASE + 116) |
||
405 | ALX_MIB_TX_DEFER = (ALX_MIB_BASE + 120) |
||
406 | ALX_MIB_TX_BYTE_CNT = (ALX_MIB_BASE + 124) |
||
407 | ALX_MIB_TX_SZ_64B = (ALX_MIB_BASE + 128) |
||
408 | ALX_MIB_TX_SZ_127B = (ALX_MIB_BASE + 132) |
||
409 | ALX_MIB_TX_SZ_255B = (ALX_MIB_BASE + 136) |
||
410 | ALX_MIB_TX_SZ_511B = (ALX_MIB_BASE + 140) |
||
411 | ALX_MIB_TX_SZ_1023B = (ALX_MIB_BASE + 144) |
||
412 | ALX_MIB_TX_SZ_1518B = (ALX_MIB_BASE + 148) |
||
413 | ALX_MIB_TX_SZ_MAX = (ALX_MIB_BASE + 152) |
||
414 | ALX_MIB_TX_SINGLE_COL = (ALX_MIB_BASE + 156) |
||
415 | ALX_MIB_TX_MULTI_COL = (ALX_MIB_BASE + 160) |
||
416 | ALX_MIB_TX_LATE_COL = (ALX_MIB_BASE + 164) |
||
417 | ALX_MIB_TX_ABORT_COL = (ALX_MIB_BASE + 168) |
||
418 | ALX_MIB_TX_UNDERRUN = (ALX_MIB_BASE + 172) |
||
419 | ALX_MIB_TX_TRD_EOP = (ALX_MIB_BASE + 176) |
||
420 | ALX_MIB_TX_LEN_ERR = (ALX_MIB_BASE + 180) |
||
421 | ALX_MIB_TX_TRUNC = (ALX_MIB_BASE + 184) |
||
422 | ALX_MIB_TX_BCCNT = (ALX_MIB_BASE + 188) |
||
423 | ALX_MIB_TX_MCCNT = (ALX_MIB_BASE + 192) |
||
424 | ALX_MIB_UPDATE = (ALX_MIB_BASE + 196) |
||
425 | |||
426 | |||
427 | ALX_ISR = 0x1600 |
||
428 | ALX_ISR_DIS = (1 shl 31) |
||
429 | ALX_ISR_RX_Q7 = (1 shl 30) |
||
430 | ALX_ISR_RX_Q6 = (1 shl 29) |
||
431 | ALX_ISR_RX_Q5 = (1 shl 28) |
||
432 | ALX_ISR_RX_Q4 = (1 shl 27) |
||
433 | ALX_ISR_PCIE_LNKDOWN = (1 shl 26) |
||
434 | ALX_ISR_RX_Q3 = (1 shl 19) |
||
435 | ALX_ISR_RX_Q2 = (1 shl 18) |
||
436 | ALX_ISR_RX_Q1 = (1 shl 17) |
||
437 | ALX_ISR_RX_Q0 = (1 shl 16) |
||
438 | ALX_ISR_TX_Q0 = (1 shl 15) |
||
439 | ALX_ISR_PHY = (1 shl 12) |
||
440 | ALX_ISR_DMAW = (1 shl 10) |
||
441 | ALX_ISR_DMAR = (1 shl 9) |
||
442 | ALX_ISR_TXF_UR = (1 shl 8) |
||
443 | ALX_ISR_TX_Q3 = (1 shl 7) |
||
444 | ALX_ISR_TX_Q2 = (1 shl 6) |
||
445 | ALX_ISR_TX_Q1 = (1 shl 5) |
||
446 | ALX_ISR_RFD_UR = (1 shl 4) |
||
447 | ALX_ISR_RXF_OV = (1 shl 3) |
||
448 | ALX_ISR_MANU = (1 shl 2) |
||
449 | ALX_ISR_TIMER = (1 shl 1) |
||
450 | ALX_ISR_SMB = (1 shl 0) |
||
451 | |||
452 | ALX_IMR = 0x1604 |
||
453 | |||
454 | ; re-send assert msg if SW no response |
||
455 | ALX_INT_RETRIG = 0x1608 |
||
456 | ; 40ms |
||
457 | ALX_INT_RETRIG_TO = 20000 |
||
458 | |||
459 | ALX_SMB_TIMER = 0x15C4 |
||
460 | |||
461 | ALX_TINT_TPD_THRSHLD = 0x15C8 |
||
462 | |||
463 | ALX_TINT_TIMER = 0x15CC |
||
464 | |||
465 | ALX_CLK_GATE = 0x1814 |
||
466 | ALX_CLK_GATE_RXMAC = (1 shl 5) |
||
467 | ALX_CLK_GATE_TXMAC = (1 shl 4) |
||
468 | ALX_CLK_GATE_RXQ = (1 shl 3) |
||
469 | ALX_CLK_GATE_TXQ = (1 shl 2) |
||
470 | ALX_CLK_GATE_DMAR = (1 shl 1) |
||
471 | ALX_CLK_GATE_DMAW = (1 shl 0) |
||
472 | ALX_CLK_GATE_ALL = (ALX_CLK_GATE_RXMAC or ALX_CLK_GATE_TXMAC or ALX_CLK_GATE_RXQ or ALX_CLK_GATE_TXQ or ALX_CLK_GATE_DMAR or ALX_CLK_GATE_DMAW) |
||
473 | |||
474 | ; interop between drivers |
||
475 | ALX_DRV = 0x1804 |
||
476 | ALX_DRV_PHY_AUTO = (1 shl 28) |
||
477 | ALX_DRV_PHY_1000 = (1 shl 27) |
||
478 | ALX_DRV_PHY_100 = (1 shl 26) |
||
479 | ALX_DRV_PHY_10 = (1 shl 25) |
||
480 | ALX_DRV_PHY_DUPLEX = (1 shl 24) |
||
481 | ; bit23: adv Pause |
||
482 | ALX_DRV_PHY_PAUSE = (1 shl 23) |
||
483 | ; bit22: adv Asym Pause |
||
484 | ALX_DRV_PHY_MASK = 0xFF |
||
485 | ALX_DRV_PHY_SHIFT = 21 |
||
486 | ALX_DRV_PHY_UNKNOWN = 0 |
||
487 | |||
488 | ; flag of phy inited |
||
489 | ALX_PHY_INITED = 0x003F |
||
490 | |||
491 | ; reg 1830 ~ 186C for C0+, 16 bit map patterns and wake packet detection |
||
492 | ALX_WOL_CTRL2 = 0x1830 |
||
493 | ALX_WOL_CTRL2_DATA_STORE = (1 shl 3) |
||
494 | ALX_WOL_CTRL2_PTRN_EVT = (1 shl 2) |
||
495 | ALX_WOL_CTRL2_PME_PTRN_EN = (1 shl 1) |
||
496 | ALX_WOL_CTRL2_PTRN_EN = (1 shl 0) |
||
497 | |||
498 | ALX_WOL_CTRL3 = 0x1834 |
||
499 | ALX_WOL_CTRL3_PTRN_ADDR_MASK = 0xFFFFF |
||
500 | ALX_WOL_CTRL3_PTRN_ADDR_SHIFT = 0 |
||
501 | |||
502 | ALX_WOL_CTRL4 = 0x1838 |
||
503 | ALX_WOL_CTRL4_PT15_MATCH = (1 shl 31) |
||
504 | ALX_WOL_CTRL4_PT14_MATCH = (1 shl 30) |
||
505 | ALX_WOL_CTRL4_PT13_MATCH = (1 shl 29) |
||
506 | ALX_WOL_CTRL4_PT12_MATCH = (1 shl 28) |
||
507 | ALX_WOL_CTRL4_PT11_MATCH = (1 shl 27) |
||
508 | ALX_WOL_CTRL4_PT10_MATCH = (1 shl 26) |
||
509 | ALX_WOL_CTRL4_PT9_MATCH = (1 shl 25) |
||
510 | ALX_WOL_CTRL4_PT8_MATCH = (1 shl 24) |
||
511 | ALX_WOL_CTRL4_PT7_MATCH = (1 shl 23) |
||
512 | ALX_WOL_CTRL4_PT6_MATCH = (1 shl 22) |
||
513 | ALX_WOL_CTRL4_PT5_MATCH = (1 shl 21) |
||
514 | ALX_WOL_CTRL4_PT4_MATCH = (1 shl 20) |
||
515 | ALX_WOL_CTRL4_PT3_MATCH = (1 shl 19) |
||
516 | ALX_WOL_CTRL4_PT2_MATCH = (1 shl 18) |
||
517 | ALX_WOL_CTRL4_PT1_MATCH = (1 shl 17) |
||
518 | ALX_WOL_CTRL4_PT0_MATCH = (1 shl 16) |
||
519 | ALX_WOL_CTRL4_PT15_EN = (1 shl 15) |
||
520 | ALX_WOL_CTRL4_PT14_EN = (1 shl 14) |
||
521 | ALX_WOL_CTRL4_PT13_EN = (1 shl 13) |
||
522 | ALX_WOL_CTRL4_PT12_EN = (1 shl 12) |
||
523 | ALX_WOL_CTRL4_PT11_EN = (1 shl 11) |
||
524 | ALX_WOL_CTRL4_PT10_EN = (1 shl 10) |
||
525 | ALX_WOL_CTRL4_PT9_EN = (1 shl 9) |
||
526 | ALX_WOL_CTRL4_PT8_EN = (1 shl 8) |
||
527 | ALX_WOL_CTRL4_PT7_EN = (1 shl 7) |
||
528 | ALX_WOL_CTRL4_PT6_EN = (1 shl 6) |
||
529 | ALX_WOL_CTRL4_PT5_EN = (1 shl 5) |
||
530 | ALX_WOL_CTRL4_PT4_EN = (1 shl 4) |
||
531 | ALX_WOL_CTRL4_PT3_EN = (1 shl 3) |
||
532 | ALX_WOL_CTRL4_PT2_EN = (1 shl 2) |
||
533 | ALX_WOL_CTRL4_PT1_EN = (1 shl 1) |
||
534 | ALX_WOL_CTRL4_PT0_EN = (1 shl 0) |
||
535 | |||
536 | ALX_WOL_CTRL5 = 0x183C |
||
537 | ALX_WOL_CTRL5_PT3_LEN_MASK = 0xFF |
||
538 | ALX_WOL_CTRL5_PT3_LEN_SHIFT = 24 |
||
539 | ALX_WOL_CTRL5_PT2_LEN_MASK = 0xFF |
||
540 | ALX_WOL_CTRL5_PT2_LEN_SHIFT = 16 |
||
541 | ALX_WOL_CTRL5_PT1_LEN_MASK = 0xFF |
||
542 | ALX_WOL_CTRL5_PT1_LEN_SHIFT = 8 |
||
543 | ALX_WOL_CTRL5_PT0_LEN_MASK = 0xFF |
||
544 | ALX_WOL_CTRL5_PT0_LEN_SHIFT = 0 |
||
545 | |||
546 | ALX_WOL_CTRL6 = 0x1840 |
||
547 | ALX_WOL_CTRL5_PT7_LEN_MASK = 0xFF |
||
548 | ALX_WOL_CTRL5_PT7_LEN_SHIFT = 24 |
||
549 | ALX_WOL_CTRL5_PT6_LEN_MASK = 0xFF |
||
550 | ALX_WOL_CTRL5_PT6_LEN_SHIFT = 16 |
||
551 | ALX_WOL_CTRL5_PT5_LEN_MASK = 0xFF |
||
552 | ALX_WOL_CTRL5_PT5_LEN_SHIFT = 8 |
||
553 | ALX_WOL_CTRL5_PT4_LEN_MASK = 0xFF |
||
554 | ALX_WOL_CTRL5_PT4_LEN_SHIFT = 0 |
||
555 | |||
556 | ALX_WOL_CTRL7 = 0x1844 |
||
557 | ALX_WOL_CTRL5_PT11_LEN_MASK = 0xFF |
||
558 | ALX_WOL_CTRL5_PT11_LEN_SHIFT = 24 |
||
559 | ALX_WOL_CTRL5_PT10_LEN_MASK = 0xFF |
||
560 | ALX_WOL_CTRL5_PT10_LEN_SHIFT = 16 |
||
561 | ALX_WOL_CTRL5_PT9_LEN_MASK = 0xFF |
||
562 | ALX_WOL_CTRL5_PT9_LEN_SHIFT = 8 |
||
563 | ALX_WOL_CTRL5_PT8_LEN_MASK = 0xFF |
||
564 | ALX_WOL_CTRL5_PT8_LEN_SHIFT = 0 |
||
565 | |||
566 | ALX_WOL_CTRL8 = 0x1848 |
||
567 | ALX_WOL_CTRL5_PT15_LEN_MASK = 0xFF |
||
568 | ALX_WOL_CTRL5_PT15_LEN_SHIFT = 24 |
||
569 | ALX_WOL_CTRL5_PT14_LEN_MASK = 0xFF |
||
570 | ALX_WOL_CTRL5_PT14_LEN_SHIFT = 16 |
||
571 | ALX_WOL_CTRL5_PT13_LEN_MASK = 0xFF |
||
572 | ALX_WOL_CTRL5_PT13_LEN_SHIFT = 8 |
||
573 | ALX_WOL_CTRL5_PT12_LEN_MASK = 0xFF |
||
574 | ALX_WOL_CTRL5_PT12_LEN_SHIFT = 0 |
||
575 | |||
576 | ALX_ACER_FIXED_PTN0 = 0x1850 |
||
577 | ALX_ACER_FIXED_PTN0_MASK = 0xFFFFFFFF |
||
578 | ALX_ACER_FIXED_PTN0_SHIFT = 0 |
||
579 | |||
580 | ALX_ACER_FIXED_PTN1 = 0x1854 |
||
581 | ALX_ACER_FIXED_PTN1_MASK = 0xFFFF |
||
582 | ALX_ACER_FIXED_PTN1_SHIFT = 0 |
||
583 | |||
584 | ALX_ACER_RANDOM_NUM0 = 0x1858 |
||
585 | ALX_ACER_RANDOM_NUM0_MASK = 0xFFFFFFFF |
||
586 | ALX_ACER_RANDOM_NUM0_SHIFT = 0 |
||
587 | |||
588 | ALX_ACER_RANDOM_NUM1 = 0x185C |
||
589 | ALX_ACER_RANDOM_NUM1_MASK = 0xFFFFFFFF |
||
590 | ALX_ACER_RANDOM_NUM1_SHIFT = 0 |
||
591 | |||
592 | ALX_ACER_RANDOM_NUM2 = 0x1860 |
||
593 | ALX_ACER_RANDOM_NUM2_MASK = 0xFFFFFFFF |
||
594 | ALX_ACER_RANDOM_NUM2_SHIFT = 0 |
||
595 | |||
596 | ALX_ACER_RANDOM_NUM3 = 0x1864 |
||
597 | ALX_ACER_RANDOM_NUM3_MASK = 0xFFFFFFFF |
||
598 | ALX_ACER_RANDOM_NUM3_SHIFT = 0 |
||
599 | |||
600 | ALX_ACER_MAGIC = 0x1868 |
||
601 | ALX_ACER_MAGIC_EN = (1 shl 31) |
||
602 | ALX_ACER_MAGIC_PME_EN = (1 shl 30) |
||
603 | ALX_ACER_MAGIC_MATCH = (1 shl 29) |
||
604 | ALX_ACER_MAGIC_FF_CHECK = (1 shl 10) |
||
605 | ALX_ACER_MAGIC_RAN_LEN_MASK = 0x1F |
||
606 | ALX_ACER_MAGIC_RAN_LEN_SHIFT = 5 |
||
607 | ALX_ACER_MAGIC_FIX_LEN_MASK = 0x1F |
||
608 | ALX_ACER_MAGIC_FIX_LEN_SHIFT = 0 |
||
609 | |||
610 | ALX_ACER_TIMER = 0x186C |
||
611 | ALX_ACER_TIMER_EN = (1 shl 31) |
||
612 | ALX_ACER_TIMER_PME_EN = (1 shl 30) |
||
613 | ALX_ACER_TIMER_MATCH = (1 shl 29) |
||
614 | ALX_ACER_TIMER_THRES_MASK = 0x1FFFF |
||
615 | ALX_ACER_TIMER_THRES_SHIFT = 0 |
||
616 | ALX_ACER_TIMER_THRES_DEF = 1 |
||
617 | |||
618 | ; RSS definitions |
||
619 | ALX_RSS_KEY0 = 0x14B0 |
||
620 | ALX_RSS_KEY1 = 0x14B4 |
||
621 | ALX_RSS_KEY2 = 0x14B8 |
||
622 | ALX_RSS_KEY3 = 0x14BC |
||
623 | ALX_RSS_KEY4 = 0x14C0 |
||
624 | ALX_RSS_KEY5 = 0x14C4 |
||
625 | ALX_RSS_KEY6 = 0x14C8 |
||
626 | ALX_RSS_KEY7 = 0x14CC |
||
627 | ALX_RSS_KEY8 = 0x14D0 |
||
628 | ALX_RSS_KEY9 = 0x14D4 |
||
629 | |||
630 | ALX_RSS_IDT_TBL0 = 0x1B00 |
||
631 | |||
632 | ALX_MSI_MAP_TBL1 = 0x15D0 |
||
633 | ALX_MSI_MAP_TBL1_TXQ1_SHIFT = 20 |
||
634 | ALX_MSI_MAP_TBL1_TXQ0_SHIFT = 16 |
||
635 | ALX_MSI_MAP_TBL1_RXQ3_SHIFT = 12 |
||
636 | ALX_MSI_MAP_TBL1_RXQ2_SHIFT = 8 |
||
637 | ALX_MSI_MAP_TBL1_RXQ1_SHIFT = 4 |
||
638 | ALX_MSI_MAP_TBL1_RXQ0_SHIFT = 0 |
||
639 | |||
640 | ALX_MSI_MAP_TBL2 = 0x15D8 |
||
641 | ALX_MSI_MAP_TBL2_TXQ3_SHIFT = 20 |
||
642 | ALX_MSI_MAP_TBL2_TXQ2_SHIFT = 16 |
||
643 | ALX_MSI_MAP_TBL2_RXQ7_SHIFT = 12 |
||
644 | ALX_MSI_MAP_TBL2_RXQ6_SHIFT = 8 |
||
645 | ALX_MSI_MAP_TBL2_RXQ5_SHIFT = 4 |
||
646 | ALX_MSI_MAP_TBL2_RXQ4_SHIFT = 0 |
||
647 | |||
648 | ALX_MSI_ID_MAP = 0x15D4 |
||
649 | |||
650 | ALX_MSI_RETRANS_TIMER = 0x1920 |
||
651 | ; bit16: 1:line,0:standard |
||
652 | ALX_MSI_MASK_SEL_LINE = (1 shl 16) |
||
653 | ALX_MSI_RETRANS_TM_MASK = 0xFFFF |
||
654 | ALX_MSI_RETRANS_TM_SHIFT = 0 |
||
655 | |||
656 | ; CR DMA ctrl |
||
657 | |||
658 | ; TX QoS |
||
659 | ALX_WRR = 0x1938 |
||
660 | ALX_WRR_PRI_MASK = 0x3 |
||
661 | ALX_WRR_PRI_SHIFT = 29 |
||
662 | ALX_WRR_PRI_RESTRICT_NONE = 3 |
||
663 | ALX_WRR_PRI3_MASK = 0x1F |
||
664 | ALX_WRR_PRI3_SHIFT = 24 |
||
665 | ALX_WRR_PRI2_MASK = 0x1F |
||
666 | ALX_WRR_PRI2_SHIFT = 16 |
||
667 | ALX_WRR_PRI1_MASK = 0x1F |
||
668 | ALX_WRR_PRI1_SHIFT = 8 |
||
669 | ALX_WRR_PRI0_MASK = 0x1F |
||
670 | ALX_WRR_PRI0_SHIFT = 0 |
||
671 | |||
672 | ALX_HQTPD = 0x193C |
||
673 | ALX_HQTPD_BURST_EN = (1 shl 31) |
||
674 | ALX_HQTPD_Q3_NUMPREF_MASK = 0xF |
||
675 | ALX_HQTPD_Q3_NUMPREF_SHIFT = 8 |
||
676 | ALX_HQTPD_Q2_NUMPREF_MASK = 0xF |
||
677 | ALX_HQTPD_Q2_NUMPREF_SHIFT = 4 |
||
678 | ALX_HQTPD_Q1_NUMPREF_MASK = 0xF |
||
679 | ALX_HQTPD_Q1_NUMPREF_SHIFT = 0 |
||
680 | |||
681 | ALX_MISC = 0x19C0 |
||
682 | ALX_MISC_PSW_OCP_MASK = 0x7 |
||
683 | ALX_MISC_PSW_OCP_SHIFT = 21 |
||
684 | ALX_MISC_PSW_OCP_DEF = 0x7 |
||
685 | ALX_MISC_ISO_EN = (1 shl 12) |
||
686 | ALX_MISC_INTNLOSC_OPEN = (1 shl 3) |
||
687 | |||
688 | ALX_MSIC2 = 0x19C8 |
||
689 | ALX_MSIC2_CALB_START = (1 shl 0) |
||
690 | |||
691 | ALX_MISC3 = 0x19CC |
||
692 | ; bit1: 1:Software control 25M |
||
693 | ALX_MISC3_25M_BY_SW = (1 shl 1) |
||
694 | ; bit0: 25M switch to intnl OSC |
||
695 | ALX_MISC3_25M_NOTO_INTNL = (1 shl 0) |
||
696 | |||
697 | ; MSIX tbl in memory space |
||
698 | ALX_MSIX_ENTRY_BASE = 0x2000 |
||
699 | |||
700 | ;******************** PHY regs definition;************************** |
||
701 | |||
702 | ; PHY Specific Status Register |
||
703 | ALX_MII_GIGA_PSSR = 0x11 |
||
704 | ALX_GIGA_PSSR_SPD_DPLX_RESOLVED = 0x0800 |
||
705 | ALX_GIGA_PSSR_DPLX = 0x2000 |
||
706 | ALX_GIGA_PSSR_SPEED = 0xC000 |
||
707 | ALX_GIGA_PSSR_10MBS = 0x0000 |
||
708 | ALX_GIGA_PSSR_100MBS = 0x4000 |
||
709 | ALX_GIGA_PSSR_1000MBS = 0x8000 |
||
710 | |||
711 | ; PHY Interrupt Enable Register |
||
712 | ALX_MII_IER = 0x12 |
||
713 | ALX_IER_LINK_UP = 0x0400 |
||
714 | ALX_IER_LINK_DOWN = 0x0800 |
||
715 | |||
716 | ; PHY Interrupt Status Register |
||
717 | ALX_MII_ISR = 0x13 |
||
718 | |||
719 | ALX_MII_DBG_ADDR = 0x1D |
||
720 | ALX_MII_DBG_DATA = 0x1E |
||
721 | |||
722 | ;**************************** debug port;************************************ |
||
723 | |||
724 | ALX_MIIDBG_ANACTRL = 0x00 |
||
725 | ALX_ANACTRL_DEF = 0x02EF |
||
726 | |||
727 | ALX_MIIDBG_SYSMODCTRL = 0x04 |
||
728 | ; en half bias |
||
729 | ALX_SYSMODCTRL_IECHOADJ_DEF = 0xBB8B |
||
730 | |||
731 | ALX_MIIDBG_SRDSYSMOD = 0x05 |
||
732 | ALX_SRDSYSMOD_DEEMP_EN = 0x0040 |
||
733 | ALX_SRDSYSMOD_DEF = 0x2C46 |
||
734 | |||
735 | ALX_MIIDBG_HIBNEG = 0x0B |
||
736 | ALX_HIBNEG_PSHIB_EN = 0x8000 |
||
737 | ALX_HIBNEG_HIB_PSE = 0x1000 |
||
738 | ALX_HIBNEG_DEF = 0xBC40 |
||
739 | ALX_HIBNEG_NOHIB = (ALX_HIBNEG_DEF and not(ALX_HIBNEG_PSHIB_EN or ALX_HIBNEG_HIB_PSE)) |
||
740 | |||
741 | ALX_MIIDBG_TST10BTCFG = 0x12 |
||
742 | ALX_TST10BTCFG_DEF = 0x4C04 |
||
743 | |||
744 | ALX_MIIDBG_AZ_ANADECT = 0x15 |
||
745 | ALX_AZ_ANADECT_DEF = 0x3220 |
||
746 | ALX_AZ_ANADECT_LONG = 0x3210 |
||
747 | |||
748 | ALX_MIIDBG_MSE16DB = 0x18 |
||
749 | ALX_MSE16DB_UP = 0x05EA |
||
750 | ALX_MSE16DB_DOWN = 0x02EA |
||
751 | |||
752 | ALX_MIIDBG_MSE20DB = 0x1C |
||
753 | ALX_MSE20DB_TH_MASK = 0x7F |
||
754 | ALX_MSE20DB_TH_SHIFT = 2 |
||
755 | ALX_MSE20DB_TH_DEF = 0x2E |
||
756 | ALX_MSE20DB_TH_HI = 0x54 |
||
757 | |||
758 | ALX_MIIDBG_AGC = 0x23 |
||
759 | ALX_AGC_2_VGA_MASK = 0x3F |
||
760 | ALX_AGC_2_VGA_SHIFT = 8 |
||
761 | ALX_AGC_LONG1G_LIMT = 40 |
||
762 | ALX_AGC_LONG100M_LIMT = 44 |
||
763 | |||
764 | ALX_MIIDBG_LEGCYPS = 0x29 |
||
765 | ALX_LEGCYPS_EN = 0x8000 |
||
766 | ALX_LEGCYPS_DEF = 0x129D |
||
767 | |||
768 | ALX_MIIDBG_TST100BTCFG = 0x36 |
||
769 | ALX_TST100BTCFG_DEF = 0xE12C |
||
770 | |||
771 | ALX_MIIDBG_GREENCFG = 0x3B |
||
772 | ALX_GREENCFG_DEF = 0x7078 |
||
773 | |||
774 | ALX_MIIDBG_GREENCFG2 = 0x3D |
||
775 | ALX_GREENCFG2_BP_GREEN = 0x8000 |
||
776 | ALX_GREENCFG2_GATE_DFSE_EN = 0x0080 |
||
777 | |||
778 | ;****** dev 3;******** |
||
779 | ALX_MIIEXT_PCS = 3 |
||
780 | |||
781 | ALX_MIIEXT_CLDCTRL3 = 0x8003 |
||
782 | ALX_CLDCTRL3_BP_CABLE1TH_DET_GT = 0x8000 |
||
783 | |||
784 | ALX_MIIEXT_CLDCTRL5 = 0x8005 |
||
785 | ALX_CLDCTRL5_BP_VD_HLFBIAS = 0x4000 |
||
786 | |||
787 | ALX_MIIEXT_CLDCTRL6 = 0x8006 |
||
788 | ALX_CLDCTRL6_CAB_LEN_MASK = 0xFF |
||
789 | ALX_CLDCTRL6_CAB_LEN_SHIFT = 0 |
||
790 | ALX_CLDCTRL6_CAB_LEN_SHORT1G = 116 |
||
791 | ALX_CLDCTRL6_CAB_LEN_SHORT100M = 152 |
||
792 | |||
793 | ALX_MIIEXT_VDRVBIAS = 0x8062 |
||
794 | ALX_VDRVBIAS_DEF = 0x3 |
||
795 | |||
796 | ;******** dev 7;********* |
||
797 | ALX_MIIEXT_ANEG = 7 |
||
798 | |||
799 | ALX_MIIEXT_LOCAL_EEEADV = 0x3C |
||
800 | ALX_LOCAL_EEEADV_1000BT = 0x0004 |
||
801 | ALX_LOCAL_EEEADV_100BT = 0x0002 |
||
802 | |||
803 | ALX_MIIEXT_AFE = 0x801A |
||
804 | ALX_AFE_10BT_100M_TH = 0x0040 |
||
805 | |||
806 | ALX_MIIEXT_S3DIG10 = 0x8023 |
||
807 | ; bit0: 1:bypass 10BT rx fifo, 0:original 10BT rx |
||
808 | ALX_MIIEXT_S3DIG10_SL = 0x0001 |
||
809 | ALX_MIIEXT_S3DIG10_DEF = 0 |
||
810 | |||
811 | ALX_MIIEXT_NLP78 = 0x8027 |
||
812 | ALX_MIIEXT_NLP78_120M_DEF = 0x8A05 |
||
813 | |||
814 | |||
815 | ; tpd word 1 |
||
816 | TPD_CXSUMSTART_MASK = 0x00FF |
||
817 | TPD_CXSUMSTART_SHIFT = 0 |
||
818 | TPD_L4HDROFFSET_MASK = 0x00FF |
||
819 | TPD_L4HDROFFSET_SHIFT = 0 |
||
820 | TPD_CXSUM_EN_MASK = 0x0001 |
||
821 | TPD_CXSUM_EN_SHIFT = 8 |
||
822 | TPD_IP_XSUM_MASK = 0x0001 |
||
823 | TPD_IP_XSUM_SHIFT = 9 |
||
824 | TPD_TCP_XSUM_MASK = 0x0001 |
||
825 | TPD_TCP_XSUM_SHIFT = 10 |
||
826 | TPD_UDP_XSUM_MASK = 0x0001 |
||
827 | TPD_UDP_XSUM_SHIFT = 11 |
||
828 | TPD_LSO_EN_MASK = 0x0001 |
||
829 | TPD_LSO_EN_SHIFT = 12 |
||
830 | TPD_LSO_V2_MASK = 0x0001 |
||
831 | TPD_LSO_V2_SHIFT = 13 |
||
832 | TPD_VLTAGGED_MASK = 0x0001 |
||
833 | TPD_VLTAGGED_SHIFT = 14 |
||
834 | TPD_INS_VLTAG_MASK = 0x0001 |
||
835 | TPD_INS_VLTAG_SHIFT = 15 |
||
836 | TPD_IPV4_MASK = 0x0001 |
||
837 | TPD_IPV4_SHIFT = 16 |
||
838 | TPD_ETHTYPE_MASK = 0x0001 |
||
839 | TPD_ETHTYPE_SHIFT = 17 |
||
840 | TPD_CXSUMOFFSET_MASK = 0x00FF |
||
841 | TPD_CXSUMOFFSET_SHIFT = 18 |
||
842 | TPD_MSS_MASK = 0x1FFF |
||
843 | TPD_MSS_SHIFT = 18 |
||
844 | TPD_EOP_MASK = 0x0001 |
||
845 | TPD_EOP_SHIFT = 31 |
||
846 | |||
847 | |||
848 | ; rrd word 0 |
||
849 | RRD_XSUM_MASK = 0xFFFF |
||
850 | RRD_XSUM_SHIFT = 0 |
||
851 | RRD_NOR_MASK = 0x000F |
||
852 | RRD_NOR_SHIFT = 16 |
||
853 | RRD_SI_MASK = 0x0FFF |
||
854 | RRD_SI_SHIFT = 20 |
||
855 | |||
856 | ; rrd word 2 |
||
857 | RRD_VLTAG_MASK = 0xFFFF |
||
858 | RRD_VLTAG_SHIFT = 0 |
||
859 | RRD_PID_MASK = 0x00FF |
||
860 | RRD_PID_SHIFT = 16 |
||
861 | ; non-ip packet |
||
862 | RRD_PID_NONIP = 0 |
||
863 | ; ipv4(only) |
||
864 | RRD_PID_IPV4 = 1 |
||
865 | ; tcp/ipv6 |
||
866 | RRD_PID_IPV6TCP = 2 |
||
867 | ; tcp/ipv4 |
||
868 | RRD_PID_IPV4TCP = 3 |
||
869 | ; udp/ipv6 |
||
870 | RRD_PID_IPV6UDP = 4 |
||
871 | ; udp/ipv4 |
||
872 | RRD_PID_IPV4UDP = 5 |
||
873 | ; ipv6(only) |
||
874 | RRD_PID_IPV6 = 6 |
||
875 | ; LLDP packet |
||
876 | RRD_PID_LLDP = 7 |
||
877 | ; 1588 packet |
||
878 | RRD_PID_1588 = 8 |
||
879 | RRD_RSSQ_MASK = 0x0007 |
||
880 | RRD_RSSQ_SHIFT = 25 |
||
881 | RRD_RSSALG_MASK = 0x000F |
||
882 | RRD_RSSALG_SHIFT = 28 |
||
883 | RRD_RSSALG_TCPV6 = 0x1 |
||
884 | RRD_RSSALG_IPV6 = 0x2 |
||
885 | RRD_RSSALG_TCPV4 = 0x4 |
||
886 | RRD_RSSALG_IPV4 = 0x8 |
||
887 | |||
888 | ; rrd word 3 |
||
889 | RRD_PKTLEN_MASK = 0x3FFF |
||
890 | RRD_PKTLEN_SHIFT = 0 |
||
891 | RRD_ERR_L4_MASK = 0x0001 |
||
892 | RRD_ERR_L4_SHIFT = 14 |
||
893 | RRD_ERR_IPV4_MASK = 0x0001 |
||
894 | RRD_ERR_IPV4_SHIFT = 15 |
||
895 | RRD_VLTAGGED_MASK = 0x0001 |
||
896 | RRD_VLTAGGED_SHIFT = 16 |
||
897 | RRD_OLD_PID_MASK = 0x0007 |
||
898 | RRD_OLD_PID_SHIFT = 17 |
||
899 | RRD_ERR_RES_MASK = 0x0001 |
||
900 | RRD_ERR_RES_SHIFT = 20 |
||
901 | RRD_ERR_FCS_MASK = 0x0001 |
||
902 | RRD_ERR_FCS_SHIFT = 21 |
||
903 | RRD_ERR_FAE_MASK = 0x0001 |
||
904 | RRD_ERR_FAE_SHIFT = 22 |
||
905 | RRD_ERR_TRUNC_MASK = 0x0001 |
||
906 | RRD_ERR_TRUNC_SHIFT = 23 |
||
907 | RRD_ERR_RUNT_MASK = 0x0001 |
||
908 | RRD_ERR_RUNT_SHIFT = 24 |
||
909 | RRD_ERR_ICMP_MASK = 0x0001 |
||
910 | RRD_ERR_ICMP_SHIFT = 25 |
||
911 | RRD_BCAST_MASK = 0x0001 |
||
912 | RRD_BCAST_SHIFT = 26 |
||
913 | RRD_MCAST_MASK = 0x0001 |
||
914 | RRD_MCAST_SHIFT = 27 |
||
915 | RRD_ETHTYPE_MASK = 0x0001 |
||
916 | RRD_ETHTYPE_SHIFT = 28 |
||
917 | RRD_ERR_FIFOV_MASK = 0x0001 |
||
918 | RRD_ERR_FIFOV_SHIFT = 29 |
||
919 | RRD_ERR_LEN_MASK = 0x0001 |
||
920 | RRD_ERR_LEN_SHIFT = 30 |
||
921 | RRD_UPDATED_MASK = 0x0001 |
||
922 | RRD_UPDATED_SHIFT = 31 |
||
923 | |||
924 | |||
925 | ALX_ISR_MISC = ALX_ISR_PCIE_LNKDOWN or ALX_ISR_DMAW or ALX_ISR_DMAR or ALX_ISR_SMB or ALX_ISR_MANU or ALX_ISR_TIMER |
||
926 | |||
927 | ALX_ISR_FATAL = ALX_ISR_PCIE_LNKDOWN or ALX_ISR_DMAW or ALX_ISR_DMAR |
||
928 | |||
929 | ALX_ISR_ALERT = ALX_ISR_RXF_OV or ALX_ISR_TXF_UR or ALX_ISR_RFD_UR |
||
930 | |||
931 | ALX_ISR_ALL_QUEUES = ALX_ISR_TX_Q0 or ALX_ISR_TX_Q1 or ALX_ISR_TX_Q2 or ALX_ISR_TX_Q3 or ALX_ISR_RX_Q0 or ALX_ISR_RX_Q1 or ALX_ISR_RX_Q2 or ALX_ISR_RX_Q3 or ALX_ISR_RX_Q4 or ALX_ISR_RX_Q5 or ALX_ISR_RX_Q6 or ALX_ISR_RX_Q7 |