xref: /netbsd-src/sys/dev/pci/if_rgereg.h (revision cef8759bd76c1b621f8eab8faa6f208faabc2e15)
1 /*	$NetBSD: if_rgereg.h,v 1.4 2020/05/30 22:27:55 sevan Exp $	*/
2 /*	$OpenBSD: if_rgereg.h,v 1.1 2019/11/18 03:03:37 kevlo Exp $	*/
3 
4 /*
5  * Copyright (c) 2019 Kevin Lo <kevlo@openbsd.org>
6  *
7  * Permission to use, copy, modify, and distribute this software for any
8  * purpose with or without fee is hereby granted, provided that the above
9  * copyright notice and this permission notice appear in all copies.
10  *
11  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 #define RGE_PCI_BAR0		PCI_MAPREG_START
21 #define RGE_PCI_BAR1		(PCI_MAPREG_START + 4)
22 #define RGE_PCI_BAR2		(PCI_MAPREG_START + 8)
23 
24 #define RGE_MAC0		0x0000
25 #define RGE_MAC4		0x0004
26 #define RGE_MAR0		0x0008
27 #define RGE_MAR4		0x000c
28 #define RGE_TXDESC_ADDR_LO	0x0020
29 #define RGE_TXDESC_ADDR_HI	0x0024
30 #define RGE_CMD			0x0037
31 #define RGE_IMR			0x0038
32 #define RGE_ISR			0x003c
33 #define RGE_TXCFG		0x0040
34 #define RGE_RXCFG		0x0044
35 #define RGE_TIMERCNT		0x0048
36 #define RGE_EECMD		0x0050
37 #define RGE_CFG0		0x0051
38 #define RGE_CFG1		0x0052
39 #define RGE_CFG2		0x0053
40 #define RGE_CFG3		0x0054
41 #define RGE_CFG4		0x0055
42 #define RGE_CFG5		0x0056
43 #define RGE_TDFNR		0x0057
44 #define RGE_TIMERINT		0x0058
45 #define RGE_CSIDR		0x0064
46 #define RGE_CSIAR		0x0068
47 #define RGE_PHYSTAT		0x006c
48 #define RGE_PMCH		0x006f
49 #define RGE_EPHYAR		0x0080
50 #define RGE_TXSTART		0x0090
51 #define RGE_MACOCP		0x00b0
52 #define RGE_PHYOCP		0x00b8
53 #define RGE_TWICMD		0x00d2
54 #define RGE_MCUCMD		0x00d3
55 #define RGE_RXMAXSIZE		0x00da
56 #define RGE_CPLUSCMD		0x00e0
57 #define RGE_RXDESC_ADDR_LO	0x00e4
58 #define RGE_RXDESC_ADDR_HI	0x00e8
59 #define RGE_PPSW		0x00f2
60 #define RGE_IM(i)		(0x0a00 + (i) * 4)
61 #define RGE_PHYBASE		0x0a40
62 #define RGE_ADDR0		0x19e0
63 #define RGE_ADDR1		0x19e4
64 
65 /* Flags for register RGE_CMD */
66 #define RGE_CMD_RXBUF_EMPTY	0x01
67 #define RGE_CMD_TXENB		0x04
68 #define RGE_CMD_RXENB		0x08
69 #define RGE_CMD_RESET		0x10
70 
71 /* Flags for register RGE_ISR */
72 #define RGE_ISR_RX_OK		0x00000001
73 #define RGE_ISR_RX_ERR		0x00000002
74 #define RGE_ISR_TX_OK		0x00000004
75 #define RGE_ISR_TX_ERR		0x00000008
76 #define RGE_ISR_RX_DESC_UNAVAIL	0x00000010
77 #define RGE_ISR_LINKCHG		0x00000020
78 #define RGE_ISR_RX_FIFO_OFLOW	0x00000040
79 #define RGE_ISR_TX_DESC_UNAVAIL	0x00000080
80 #define RGE_ISR_SWI		0x00000100
81 #define RGE_ISR_PCS_TIMEOUT	0x00004000
82 #define RGE_ISR_SYSTEM_ERR	0x00008000
83 
84 #define RGE_INTRS		\
85 	(RGE_ISR_RX_OK | RGE_ISR_RX_ERR | RGE_ISR_TX_OK |		\
86 	RGE_ISR_TX_ERR | RGE_ISR_RX_DESC_UNAVAIL |			\
87 	RGE_ISR_RX_FIFO_OFLOW | RGE_ISR_SYSTEM_ERR)
88 
89 #define RGE_INTRS_TIMER		\
90 	(RGE_ISR_RX_ERR | RGE_ISR_TX_ERR | RGE_ISR_PCS_TIMEOUT |	\
91 	RGE_ISR_SYSTEM_ERR)
92 
93 /* Flags for register RGE_TXCFG */
94 #define RGE_TXCFG_HWREV		0x7cf00000
95 
96 /* Flags for register RGE_RXCFG */
97 #define RGE_RXCFG_ALLPHYS	0x00000001
98 #define RGE_RXCFG_INDIV		0x00000002
99 #define RGE_RXCFG_MULTI		0x00000004
100 #define RGE_RXCFG_BROAD		0x00000008
101 #define RGE_RXCFG_RUNT		0x00000010
102 #define RGE_RXCFG_ERRPKT	0x00000020
103 #define RGE_RXCFG_VLANSTRIP	0x00c00000
104 
105 /* Flags for register RGE_EECMD */
106 #define RGE_EECMD_WRITECFG	0xc0
107 
108 /* Flags for register RGE_CFG1 */
109 #define RGE_CFG1_SPEED_DOWN	0x10
110 
111 /* Flags for register RGE_CFG2 */
112 #define RGE_CFG2_CLKREQ_EN	0x80
113 
114 /* Flags for register RGE_CFG3 */
115 #define RGE_CFG3_RDY_TO_L23	0x02
116 
117 /* Flags for register RGE_CFG5 */
118 #define RGE_CFG5_PME_STS	0x01
119 
120 /* Flags for register RGE_CSIAR */
121 #define RGE_CSIAR_BYTE_EN	0x0000000f
122 #define RGE_CSIAR_BYTE_EN_SHIFT	12
123 #define RGE_CSIAR_ADDR_MASK	0x00000fff
124 #define RGE_CSIAR_BUSY		0x80000000
125 
126 /* Flags for register RGE_PHYSTAT */
127 #define RGE_PHYSTAT_FDX		0x0001
128 #define RGE_PHYSTAT_LINK	0x0002
129 #define RGE_PHYSTAT_10MBPS	0x0004
130 #define RGE_PHYSTAT_100MBPS	0x0008
131 #define RGE_PHYSTAT_1000MBPS	0x0010
132 #define RGE_PHYSTAT_RXFLOW	0x0020
133 #define RGE_PHYSTAT_TXFLOW	0x0040
134 #define RGE_PHYSTAT_2500MBPS	0x0400
135 
136 /* Flags for register RGE_EPHYAR */
137 #define RGE_EPHYAR_DATA_MASK	0x0000ffff
138 #define RGE_EPHYAR_BUSY		0x80000000
139 #define RGE_EPHYAR_ADDR_MASK	0x0000007f
140 #define RGE_EPHYAR_ADDR_SHIFT	16
141 
142 /* Flags for register RGE_TXSTART */
143 #define RGE_TXSTART_START	0x0001
144 
145 /* Flags for register RGE_MACOCP */
146 #define RGE_MACOCP_DATA_MASK	0x0000ffff
147 #define RGE_MACOCP_BUSY		0x80000000
148 #define RGE_MACOCP_ADDR_SHIFT	16
149 
150 /* Flags for register RGE_PHYOCP */
151 #define RGE_PHYOCP_DATA_MASK	0x0000ffff
152 #define RGE_PHYOCP_BUSY		0x80000000
153 #define RGE_PHYOCP_ADDR_SHIFT	16
154 
155 /* Flags for register RGE_MCUCMD */
156 #define RGE_MCUCMD_RXFIFO_EMPTY	0x10
157 #define RGE_MCUCMD_TXFIFO_EMPTY	0x20
158 #define RGE_MCUCMD_IS_OOB	0x80
159 
160 /* Flags for register RGE_CPLUSCMD */
161 #define RGE_CPLUSCMD_RXCSUM	0x0020
162 
163 #define RGE_TX_NSEGS		32
164 #define	RGE_TX_LIST_CNT		1024
165 #define	RGE_RX_LIST_CNT		1024
166 #define RGE_ALIGN		256
167 #define RGE_TX_LIST_SZ		(sizeof(struct rge_tx_desc) * RGE_TX_LIST_CNT)
168 #define RGE_RX_LIST_SZ		(sizeof(struct rge_rx_desc) * RGE_RX_LIST_CNT)
169 #define RGE_NEXT_TX_DESC(x)	(((x) + 1) % RGE_TX_LIST_CNT)
170 #define RGE_NEXT_RX_DESC(x)	(((x) + 1) % RGE_RX_LIST_CNT)
171 #define RGE_ADDR_LO(y)		((uint64_t) (y) & 0xffffffff)
172 #define RGE_ADDR_HI(y)		((uint64_t) (y) >> 32)
173 #define RGE_OWN(x)		(letoh32((x)->rge_cmdsts) & RGE_RDCMDSTS_OWN)
174 #define RGE_RXBYTES(x)          (letoh32((x)->rge_cmdsts) & \
175 				RGE_RDCMDSTS_FRAGLEN)
176 
177 #define RGE_ADV_2500TFDX	0x0080
178 
179 /* Tx descriptor */
180 struct rge_tx_desc {
181 	uint32_t		rge_cmdsts;
182 	uint32_t		rge_extsts;
183 	uint32_t		rge_addrlo;
184 	uint32_t		rge_addrhi;
185 	uint32_t		reserved[4];
186 };
187 
188 #define RGE_TDCMDSTS_COLL	0x000f0000
189 #define RGE_TDCMDSTS_EXCESSCOLL	0x00100000
190 #define RGE_TDCMDSTS_TXERR	0x00800000
191 #define RGE_TDCMDSTS_EOF	0x10000000
192 #define RGE_TDCMDSTS_SOF	0x20000000
193 #define RGE_TDCMDSTS_EOR	0x40000000
194 #define RGE_TDCMDSTS_OWN	0x80000000
195 
196 #define RGE_TDEXTSTS_VTAG	0x00020000
197 #define RGE_TDEXTSTS_IPCSUM	0x20000000
198 #define RGE_TDEXTSTS_TCPCSUM	0x40000000
199 #define RGE_TDEXTSTS_UDPCSUM	0x80000000
200 
201 /* Rx descriptor */
202 struct rge_rx_desc {
203 	uint32_t		rge_cmdsts;
204 	uint32_t		rge_extsts;
205 	uint32_t		rge_addrlo;
206 	uint32_t		rge_addrhi;
207 };
208 
209 #define RGE_RDCMDSTS_TCPCSUMERR	0x00004000
210 #define RGE_RDCMDSTS_UDPCSUMERR	0x00008000
211 #define RGE_RDCMDSTS_IPCSUMERR	0x00010000
212 #define RGE_RDCMDSTS_TCPPKT	0x00020000
213 #define RGE_RDCMDSTS_UDPPKT	0x00040000
214 #define RGE_RDCMDSTS_RXERRSUM	0x00200000
215 #define RGE_RDCMDSTS_EOF	0x10000000
216 #define RGE_RDCMDSTS_SOF	0x20000000
217 #define RGE_RDCMDSTS_EOR	0x40000000
218 #define RGE_RDCMDSTS_OWN	0x80000000
219 #define RGE_RDCMDSTS_FRAGLEN	0x00003fff
220 
221 #define RGE_RDEXTSTS_VTAG	0x00010000
222 #define RGE_RDEXTSTS_VLAN_MASK	0x0000ffff
223 #define RGE_RDEXTSTS_IPV4	0x40000000
224 #define RGE_RDEXTSTS_IPV6	0x80000000
225 
226 struct rge_txq {
227 	struct mbuf		*txq_mbuf;
228 	bus_dmamap_t		txq_dmamap;
229 	int			txq_descidx;
230 };
231 
232 struct rge_rxq {
233 	struct mbuf		*rxq_mbuf;
234 	bus_dmamap_t		rxq_dmamap;
235 };
236 
237 struct rge_list_data {
238 	struct rge_txq		rge_txq[RGE_TX_LIST_CNT];
239 	int			rge_txq_prodidx;
240 	int			rge_txq_considx;
241 	struct rge_rxq		rge_rxq[RGE_RX_LIST_CNT];
242 	int			rge_rxq_prodidx;
243 
244 	bus_dma_segment_t	rge_tx_listseg;
245 	int			rge_tx_listnseg;
246 	bus_dmamap_t		rge_tx_list_map;
247 	struct rge_tx_desc	*rge_tx_list;
248 	bus_dma_segment_t	rge_rx_listseg;
249 	int			rge_rx_listnseg;
250 	bus_dmamap_t		rge_rx_list_map;
251 	struct rge_rx_desc	*rge_rx_list;
252 };
253 
254 /* Microcode version */
255 #define RGE_MAC_CFG2_MCODE_VER	0x0b11
256 #define RGE_MAC_CFG3_MCODE_VER	0x0b33
257 
258 enum rge_mac_type {
259 	MAC_CFG_UNKNOWN = 1,
260 	MAC_CFG2,
261 	MAC_CFG3
262 };
263 
264 #define RGE_TIMEOUT		100
265 
266 #define RGE_JUMBO_FRAMELEN	9216
267 #define RGE_JUMBO_MTU							\
268 	(RGE_JUMBO_FRAMELEN - ETHER_HDR_LEN - ETHER_CRC_LEN - 		\
269 	ETHER_VLAN_ENCAP_LEN)
270 
271 #define RGE_TXCFG_CONFIG	0x03000700
272 #define RGE_RXCFG_CONFIG	0x40c00700
273 
274 struct rge_softc {
275 	device_t		sc_dev;
276 	struct ethercom		sc_ec; 		/* Ethernet common data */
277 	void			*sc_ih;		/* interrupt vectoring */
278 	bus_space_handle_t	rge_bhandle;	/* bus space handle */
279 	bus_space_tag_t		rge_btag;	/* bus space tag */
280 	bus_size_t		rge_bsize;
281 	bus_dma_tag_t		sc_dmat;
282 	pci_chipset_tag_t	sc_pc;
283 	pcitag_t		sc_tag;
284 	bus_dma_segment_t 	sc_rx_seg;
285 	bus_dmamap_t		sc_rx_dmamap;
286 	uint8_t 		sc_enaddr[ETHER_ADDR_LEN];
287 	struct ifmedia		sc_media;	/* media info */
288 	enum rge_mac_type	rge_type;
289 	struct mbuf		*rge_head;
290 	struct mbuf		*rge_tail;
291 
292 	struct rge_list_data	rge_ldata;
293 
294 	struct work		sc_task;
295 
296 	callout_t		sc_timeout;	/* tick timeout */
297 
298 	uint32_t		rge_flags;
299 #define RGE_FLAG_MSI		0x00000001
300 
301 	uint32_t		rge_intrs;
302 	uint32_t		rge_tx_ack;
303 	uint32_t		rge_rx_ack;
304 	int			rge_timerintr;
305 
306 #define RGE_IMTYPE_NONE		0
307 #define RGE_IMTYPE_SIM		1
308 };
309 
310 /*
311  * Register space access macros.
312  */
313 #define RGE_WRITE_RAW_4(sc, reg, val)	\
314 	bus_space_write_raw_region_4(sc->rge_btag, sc->rge_bhandle, reg, val, 4)
315 #define RGE_WRITE_4(sc, reg, val)	\
316 	bus_space_write_4(sc->rge_btag, sc->rge_bhandle, reg, val)
317 #define RGE_WRITE_2(sc, reg, val)	\
318 	bus_space_write_2(sc->rge_btag, sc->rge_bhandle, reg, val)
319 #define RGE_WRITE_1(sc, reg, val)	\
320 	bus_space_write_1(sc->rge_btag, sc->rge_bhandle, reg, val)
321 
322 #define RGE_READ_4(sc, reg)		\
323 	bus_space_read_4(sc->rge_btag, sc->rge_bhandle, reg)
324 #define RGE_READ_2(sc, reg)		\
325 	bus_space_read_2(sc->rge_btag, sc->rge_bhandle, reg)
326 #define RGE_READ_1(sc, reg)		\
327 	bus_space_read_1(sc->rge_btag, sc->rge_bhandle, reg)
328 
329 #define RGE_SETBIT_4(sc, reg, val)	\
330 	RGE_WRITE_4(sc, reg, RGE_READ_4(sc, reg) | (val))
331 #define RGE_SETBIT_2(sc, reg, val)	\
332 	RGE_WRITE_2(sc, reg, RGE_READ_2(sc, reg) | (val))
333 #define RGE_SETBIT_1(sc, reg, val)	\
334 	RGE_WRITE_1(sc, reg, RGE_READ_1(sc, reg) | (val))
335 
336 #define RGE_CLRBIT_4(sc, reg, val)	\
337 	RGE_WRITE_4(sc, reg, RGE_READ_4(sc, reg) & ~(val))
338 #define RGE_CLRBIT_2(sc, reg, val)	\
339 	RGE_WRITE_2(sc, reg, RGE_READ_2(sc, reg) & ~(val))
340 #define RGE_CLRBIT_1(sc, reg, val)	\
341 	RGE_WRITE_1(sc, reg, RGE_READ_1(sc, reg) & ~(val))
342 
343 #define RGE_PHY_SETBIT(sc, reg, val)	\
344 	rge_write_phy_ocp(sc, reg, rge_read_phy_ocp(sc, reg) | (val))
345 
346 #define RGE_PHY_CLRBIT(sc, reg, val)	\
347 	rge_write_phy_ocp(sc, reg, rge_read_phy_ocp(sc, reg) & ~(val))
348 
349 #define RGE_MAC_SETBIT(sc, reg, val)	\
350 	rge_write_mac_ocp(sc, reg, rge_read_mac_ocp(sc, reg) | (val))
351 
352 #define RGE_MAC_CLRBIT(sc, reg, val)	\
353 	rge_write_mac_ocp(sc, reg, rge_read_mac_ocp(sc, reg) & ~(val))
354 
355 #define RTL8125_DEF_BPS		\
356 	{ 0xf800, 0xe008 },	\
357 	{ 0xf802, 0xe01e },	\
358 	{ 0xf804, 0xe02e },	\
359 	{ 0xf806, 0xe054 },	\
360 	{ 0xf808, 0xe057 },	\
361 	{ 0xf80a, 0xe059 },	\
362 	{ 0xf80c, 0xe05b },	\
363 	{ 0xf80e, 0xe05d },	\
364 	{ 0xf810, 0x9996 },	\
365 	{ 0xf812, 0x49d1 },	\
366 	{ 0xf814, 0xf005 },	\
367 	{ 0xf816, 0x49d4 },	\
368 	{ 0xf818, 0xf10a },	\
369 	{ 0xf81a, 0x49d8 },	\
370 	{ 0xf81c, 0xf108 },	\
371 	{ 0xf81e, 0xc00f },	\
372 	{ 0xf820, 0x7100 },	\
373 	{ 0xf822, 0x209c },	\
374 	{ 0xf824, 0x249c },	\
375 	{ 0xf826, 0xc009 },	\
376 	{ 0xf828, 0x9900 },	\
377 	{ 0xf82a, 0xe004 },	\
378 	{ 0xf82c, 0xc006 },	\
379 	{ 0xf82e, 0x1900 },	\
380 	{ 0xf830, 0x9900 },	\
381 	{ 0xf832, 0xc602 },	\
382 	{ 0xf834, 0xbe00 },	\
383 	{ 0xf836, 0x5a48 },	\
384 	{ 0xf838, 0xe0c2 },	\
385 	{ 0xf83a, 0x0004 },	\
386 	{ 0xf83c, 0xe10a },	\
387 	{ 0xf83e, 0xc60f },	\
388 	{ 0xf840, 0x73c4 },	\
389 	{ 0xf842, 0x49b3 },	\
390 	{ 0xf844, 0xf106 },	\
391 	{ 0xf846, 0x73c2 },	\
392 	{ 0xf848, 0xc608 },	\
393 	{ 0xf84a, 0xb406 },	\
394 	{ 0xf84c, 0xc609 },	\
395 	{ 0xf84e, 0xff80 },	\
396 	{ 0xf850, 0xc605 },	\
397 	{ 0xf852, 0xb406 },	\
398 	{ 0xf854, 0xc605 },	\
399 	{ 0xf856, 0xff80 },	\
400 	{ 0xf858, 0x0544 },	\
401 	{ 0xf85a, 0x0568 },	\
402 	{ 0xf85c, 0xe906 },	\
403 	{ 0xf85e, 0xcde8 },	\
404 	{ 0xf860, 0xc724 },	\
405 	{ 0xf862, 0xc624 },	\
406 	{ 0xf864, 0x9ee2 },	\
407 	{ 0xf866, 0x1e01 },	\
408 	{ 0xf868, 0x9ee0 },	\
409 	{ 0xf86a, 0x76e0 },	\
410 	{ 0xf86c, 0x49e0 },	\
411 	{ 0xf86e, 0xf1fe },	\
412 	{ 0xf870, 0x76e6 },	\
413 	{ 0xf872, 0x486d },	\
414 	{ 0xf874, 0x4868 },	\
415 	{ 0xf876, 0x9ee4 },	\
416 	{ 0xf878, 0x1e03 },	\
417 	{ 0xf87a, 0x9ee0 },	\
418 	{ 0xf87c, 0x76e0 },	\
419 	{ 0xf87e, 0x49e0 },	\
420 	{ 0xf880, 0xf1fe },	\
421 	{ 0xf882, 0xc615 },	\
422 	{ 0xf884, 0x9ee2 },	\
423 	{ 0xf886, 0x1e01 },	\
424 	{ 0xf888, 0x9ee0 },	\
425 	{ 0xf88a, 0x76e0 },	\
426 	{ 0xf88c, 0x49e0 },	\
427 	{ 0xf88e, 0xf1fe },	\
428 	{ 0xf890, 0x76e6 },	\
429 	{ 0xf892, 0x486f },	\
430 	{ 0xf894, 0x9ee4 },	\
431 	{ 0xf896, 0x1e03 },	\
432 	{ 0xf898, 0x9ee0 },	\
433 	{ 0xf89a, 0x76e0 },	\
434 	{ 0xf89c, 0x49e0 },	\
435 	{ 0xf89e, 0xf1fe },	\
436 	{ 0xf8a0, 0x7196 },	\
437 	{ 0xf8a2, 0xc702 },	\
438 	{ 0xf8a4, 0xbf00 },	\
439 	{ 0xf8a6, 0x5a44 },	\
440 	{ 0xf8a8, 0xeb0e },	\
441 	{ 0xf8aa, 0x0070 },	\
442 	{ 0xf8ac, 0x00c3 },	\
443 	{ 0xf8ae, 0x1bc0 },	\
444 	{ 0xf8b0, 0xc602 },	\
445 	{ 0xf8b2, 0xbe00 },	\
446 	{ 0xf8b4, 0x0e26 },	\
447 	{ 0xf8b6, 0xc602 },	\
448 	{ 0xf8b8, 0xbe00 },	\
449 	{ 0xf8ba, 0x0eba },	\
450 	{ 0xf8bc, 0xc602 },	\
451 	{ 0xf8be, 0xbe00 },	\
452 	{ 0xf8c0, 0x0000 },	\
453 	{ 0xf8c2, 0xc602 },	\
454 	{ 0xf8c4, 0xbe00 },	\
455 	{ 0xf8c6, 0x0000 },	\
456 	{ 0xf8c8, 0xc602 },	\
457 	{ 0xf8ca, 0xbe00 },	\
458 	{ 0xf8cc, 0x0000 },	\
459 	{ 0xfc26, 0x8000 },	\
460 	{ 0xfc2a, 0x0540 },	\
461 	{ 0xfc2e, 0x0e24 },	\
462 	{ 0xfc30, 0x0eb8 },	\
463 	{ 0xfc48, 0x001a }
464 
465 #define RTL8125_MAC_CFG2_EPHY	\
466 	{ 0x0001, 0xa812 },	\
467 	{ 0x0009, 0x520c },	\
468 	{ 0x0004, 0xd000 },	\
469 	{ 0x000d, 0xf702 },	\
470 	{ 0x000a, 0x8653 },	\
471 	{ 0x0006, 0x001e },	\
472 	{ 0x0008, 0x3595 },	\
473 	{ 0x0020, 0x9455 },	\
474 	{ 0x0021, 0x99ff },	\
475 	{ 0x0002, 0x6046 },	\
476 	{ 0x0029, 0xfe00 },	\
477 	{ 0x0023, 0xab62 },	\
478 	{ 0x0041, 0xa80c },	\
479 	{ 0x0049, 0x520c },	\
480 	{ 0x0044, 0xd000 },	\
481 	{ 0x004d, 0xf702 },	\
482 	{ 0x004a, 0x8653 },	\
483 	{ 0x0046, 0x001e },	\
484 	{ 0x0048, 0x3595 },	\
485 	{ 0x0060, 0x9455 },	\
486 	{ 0x0061, 0x99ff },	\
487 	{ 0x0042, 0x6046 },	\
488 	{ 0x0069, 0xfe00 },	\
489 	{ 0x0063, 0xab62 }
490 
491 #define RTL8125_MAC_CFG3_EPHY	\
492 	{ 0x0004, 0xd000 },	\
493 	{ 0x000a, 0x8653 },	\
494 	{ 0x0023, 0xab66 },	\
495 	{ 0x0020, 0x9455 },	\
496 	{ 0x0021, 0x99ff },	\
497 	{ 0x0029, 0xfe04 },	\
498 	{ 0x0044, 0xd000 },	\
499 	{ 0x004a, 0x8653 },	\
500 	{ 0x0063, 0xab66 },	\
501 	{ 0x0060, 0x9455 },	\
502 	{ 0x0061, 0x99ff },	\
503 	{ 0x0069, 0xfe04 }
504 
505 #define RTL8125_MAC_CFG2_MCU	\
506 	{ 0xa436, 0xa016 },	\
507 	{ 0xa438, 0x0000 },	\
508 	{ 0xa436, 0xa012 },	\
509 	{ 0xa438, 0x0000 },	\
510 	{ 0xa436, 0xa014 },	\
511 	{ 0xa438, 0x1800 },	\
512 	{ 0xa438, 0x8010 },	\
513 	{ 0xa438, 0x1800 },	\
514 	{ 0xa438, 0x8013 },	\
515 	{ 0xa438, 0x1800 },	\
516 	{ 0xa438, 0x8021 },	\
517 	{ 0xa438, 0x1800 },	\
518 	{ 0xa438, 0x802f },	\
519 	{ 0xa438, 0x1800 },	\
520 	{ 0xa438, 0x803d },	\
521 	{ 0xa438, 0x1800 },	\
522 	{ 0xa438, 0x8042 },	\
523 	{ 0xa438, 0x1800 },	\
524 	{ 0xa438, 0x8051 },	\
525 	{ 0xa438, 0x1800 },	\
526 	{ 0xa438, 0x8051 },	\
527 	{ 0xa438, 0xa088 },	\
528 	{ 0xa438, 0x1800 },	\
529 	{ 0xa438, 0x0a50 },	\
530 	{ 0xa438, 0x8008 },	\
531 	{ 0xa438, 0xd014 },	\
532 	{ 0xa438, 0xd1a3 },	\
533 	{ 0xa438, 0xd700 },	\
534 	{ 0xa438, 0x401a },	\
535 	{ 0xa438, 0xd707 },	\
536 	{ 0xa438, 0x40c2 },	\
537 	{ 0xa438, 0x60a6 },	\
538 	{ 0xa438, 0xd700 },	\
539 	{ 0xa438, 0x5f8b },	\
540 	{ 0xa438, 0x1800 },	\
541 	{ 0xa438, 0x0a86 },	\
542 	{ 0xa438, 0x1800 },	\
543 	{ 0xa438, 0x0a6c },	\
544 	{ 0xa438, 0x8080 },	\
545 	{ 0xa438, 0xd019 },	\
546 	{ 0xa438, 0xd1a2 },	\
547 	{ 0xa438, 0xd700 },	\
548 	{ 0xa438, 0x401a },	\
549 	{ 0xa438, 0xd707 },	\
550 	{ 0xa438, 0x40c4 },	\
551 	{ 0xa438, 0x60a6 },	\
552 	{ 0xa438, 0xd700 },	\
553 	{ 0xa438, 0x5f8b },	\
554 	{ 0xa438, 0x1800 },	\
555 	{ 0xa438, 0x0a86 },	\
556 	{ 0xa438, 0x1800 },	\
557 	{ 0xa438, 0x0a84 },	\
558 	{ 0xa438, 0xd503 },	\
559 	{ 0xa438, 0x8970 },	\
560 	{ 0xa438, 0x0c07 },	\
561 	{ 0xa438, 0x0901 },	\
562 	{ 0xa438, 0xd500 },	\
563 	{ 0xa438, 0xce01 },	\
564 	{ 0xa438, 0xcf09 },	\
565 	{ 0xa438, 0xd705 },	\
566 	{ 0xa438, 0x4000 },	\
567 	{ 0xa438, 0xceff },	\
568 	{ 0xa438, 0xaf0a },	\
569 	{ 0xa438, 0xd504 },	\
570 	{ 0xa438, 0x1800 },	\
571 	{ 0xa438, 0x1213 },	\
572 	{ 0xa438, 0x8401 },	\
573 	{ 0xa438, 0xd500 },	\
574 	{ 0xa438, 0x8580 },	\
575 	{ 0xa438, 0x1800 },	\
576 	{ 0xa438, 0x1253 },	\
577 	{ 0xa438, 0xd064 },	\
578 	{ 0xa438, 0xd181 },	\
579 	{ 0xa438, 0xd704 },	\
580 	{ 0xa438, 0x4018 },	\
581 	{ 0xa438, 0xd504 },	\
582 	{ 0xa438, 0xc50f },	\
583 	{ 0xa438, 0xd706 },	\
584 	{ 0xa438, 0x2c59 },	\
585 	{ 0xa438, 0x804d },	\
586 	{ 0xa438, 0xc60f },	\
587 	{ 0xa438, 0xf002 },	\
588 	{ 0xa438, 0xc605 },	\
589 	{ 0xa438, 0xae02 },	\
590 	{ 0xa438, 0x1800 },	\
591 	{ 0xa438, 0x10fd },	\
592 	{ 0xa436, 0xa026 },	\
593 	{ 0xa438, 0xffff },	\
594 	{ 0xa436, 0xa024 },	\
595 	{ 0xa438, 0xffff },	\
596 	{ 0xa436, 0xa022 },	\
597 	{ 0xa438, 0x10f4 },	\
598 	{ 0xa436, 0xa020 },	\
599 	{ 0xa438, 0x1252 },	\
600 	{ 0xa436, 0xa006 },	\
601 	{ 0xa438, 0x1206 },	\
602 	{ 0xa436, 0xa004 },	\
603 	{ 0xa438, 0x0a78 },	\
604 	{ 0xa436, 0xa002 },	\
605 	{ 0xa438, 0x0a60 },	\
606 	{ 0xa436, 0xa000 },	\
607 	{ 0xa438, 0x0a4f },	\
608 	{ 0xa436, 0xa008 },	\
609 	{ 0xa438, 0x3f00 },	\
610 	{ 0xa436, 0xa016 },	\
611 	{ 0xa438, 0x0010 },	\
612 	{ 0xa436, 0xa012 },	\
613 	{ 0xa438, 0x0000 },	\
614 	{ 0xa436, 0xa014 },	\
615 	{ 0xa438, 0x1800 },	\
616 	{ 0xa438, 0x8010 },	\
617 	{ 0xa438, 0x1800 },	\
618 	{ 0xa438, 0x8066 },	\
619 	{ 0xa438, 0x1800 },	\
620 	{ 0xa438, 0x807c },	\
621 	{ 0xa438, 0x1800 },	\
622 	{ 0xa438, 0x8089 },	\
623 	{ 0xa438, 0x1800 },	\
624 	{ 0xa438, 0x808e },	\
625 	{ 0xa438, 0x1800 },	\
626 	{ 0xa438, 0x80a0 },	\
627 	{ 0xa438, 0x1800 },	\
628 	{ 0xa438, 0x80b2 },	\
629 	{ 0xa438, 0x1800 },	\
630 	{ 0xa438, 0x80c2 },	\
631 	{ 0xa438, 0xd501 },	\
632 	{ 0xa438, 0xce01 },	\
633 	{ 0xa438, 0xd700 },	\
634 	{ 0xa438, 0x62db },	\
635 	{ 0xa438, 0x655c },	\
636 	{ 0xa438, 0xd73e },	\
637 	{ 0xa438, 0x60e9 },	\
638 	{ 0xa438, 0x614a },	\
639 	{ 0xa438, 0x61ab },	\
640 	{ 0xa438, 0x0c0f },	\
641 	{ 0xa438, 0x0501 },	\
642 	{ 0xa438, 0x1800 },	\
643 	{ 0xa438, 0x0304 },	\
644 	{ 0xa438, 0x0c0f },	\
645 	{ 0xa438, 0x0503 },	\
646 	{ 0xa438, 0x1800 },	\
647 	{ 0xa438, 0x0304 },	\
648 	{ 0xa438, 0x0c0f },	\
649 	{ 0xa438, 0x0505 },	\
650 	{ 0xa438, 0x1800 },	\
651 	{ 0xa438, 0x0304 },	\
652 	{ 0xa438, 0x0c0f },	\
653 	{ 0xa438, 0x0509 },	\
654 	{ 0xa438, 0x1800 },	\
655 	{ 0xa438, 0x0304 },	\
656 	{ 0xa438, 0x653c },	\
657 	{ 0xa438, 0xd73e },	\
658 	{ 0xa438, 0x60e9 },	\
659 	{ 0xa438, 0x614a },	\
660 	{ 0xa438, 0x61ab },	\
661 	{ 0xa438, 0x0c0f },	\
662 	{ 0xa438, 0x0503 },	\
663 	{ 0xa438, 0x1800 },	\
664 	{ 0xa438, 0x0304 },	\
665 	{ 0xa438, 0x0c0f },	\
666 	{ 0xa438, 0x0502 },	\
667 	{ 0xa438, 0x1800 },	\
668 	{ 0xa438, 0x0304 },	\
669 	{ 0xa438, 0x0c0f },	\
670 	{ 0xa438, 0x0506 },	\
671 	{ 0xa438, 0x1800 },	\
672 	{ 0xa438, 0x0304 },	\
673 	{ 0xa438, 0x0c0f },	\
674 	{ 0xa438, 0x050a },	\
675 	{ 0xa438, 0x1800 },	\
676 	{ 0xa438, 0x0304 },	\
677 	{ 0xa438, 0xd73e },	\
678 	{ 0xa438, 0x60e9 },	\
679 	{ 0xa438, 0x614a },	\
680 	{ 0xa438, 0x61ab },	\
681 	{ 0xa438, 0x0c0f },	\
682 	{ 0xa438, 0x0505 },	\
683 	{ 0xa438, 0x1800 },	\
684 	{ 0xa438, 0x0304 },	\
685 	{ 0xa438, 0x0c0f },	\
686 	{ 0xa438, 0x0506 },	\
687 	{ 0xa438, 0x1800 },	\
688 	{ 0xa438, 0x0304 },	\
689 	{ 0xa438, 0x0c0f },	\
690 	{ 0xa438, 0x0504 },	\
691 	{ 0xa438, 0x1800 },	\
692 	{ 0xa438, 0x0304 },	\
693 	{ 0xa438, 0x0c0f },	\
694 	{ 0xa438, 0x050c },	\
695 	{ 0xa438, 0x1800 },	\
696 	{ 0xa438, 0x0304 },	\
697 	{ 0xa438, 0xd73e },	\
698 	{ 0xa438, 0x60e9 },	\
699 	{ 0xa438, 0x614a },	\
700 	{ 0xa438, 0x61ab },	\
701 	{ 0xa438, 0x0c0f },	\
702 	{ 0xa438, 0x0509 },	\
703 	{ 0xa438, 0x1800 },	\
704 	{ 0xa438, 0x0304 },	\
705 	{ 0xa438, 0x0c0f },	\
706 	{ 0xa438, 0x050a },	\
707 	{ 0xa438, 0x1800 },	\
708 	{ 0xa438, 0x0304 },	\
709 	{ 0xa438, 0x0c0f },	\
710 	{ 0xa438, 0x050c },	\
711 	{ 0xa438, 0x1800 },	\
712 	{ 0xa438, 0x0304 },	\
713 	{ 0xa438, 0x0c0f },	\
714 	{ 0xa438, 0x0508 },	\
715 	{ 0xa438, 0x1800 },	\
716 	{ 0xa438, 0x0304 },	\
717 	{ 0xa438, 0xd501 },	\
718 	{ 0xa438, 0xce01 },	\
719 	{ 0xa438, 0xd73e },	\
720 	{ 0xa438, 0x60e9 },	\
721 	{ 0xa438, 0x614a },	\
722 	{ 0xa438, 0x61ab },	\
723 	{ 0xa438, 0x0c0f },	\
724 	{ 0xa438, 0x0501 },	\
725 	{ 0xa438, 0x1800 },	\
726 	{ 0xa438, 0x0321 },	\
727 	{ 0xa438, 0x0c0f },	\
728 	{ 0xa438, 0x0502 },	\
729 	{ 0xa438, 0x1800 },	\
730 	{ 0xa438, 0x0321 },	\
731 	{ 0xa438, 0x0c0f },	\
732 	{ 0xa438, 0x0504 },	\
733 	{ 0xa438, 0x1800 },	\
734 	{ 0xa438, 0x0321 },	\
735 	{ 0xa438, 0x0c0f },	\
736 	{ 0xa438, 0x0508 },	\
737 	{ 0xa438, 0x1800 },	\
738 	{ 0xa438, 0x0321 },	\
739 	{ 0xa438, 0x1000 },	\
740 	{ 0xa438, 0x0346 },	\
741 	{ 0xa438, 0xd501 },	\
742 	{ 0xa438, 0xce01 },	\
743 	{ 0xa438, 0x8208 },	\
744 	{ 0xa438, 0x609d },	\
745 	{ 0xa438, 0xa50f },	\
746 	{ 0xa438, 0x1800 },	\
747 	{ 0xa438, 0x001a },	\
748 	{ 0xa438, 0x0c0f },	\
749 	{ 0xa438, 0x0503 },	\
750 	{ 0xa438, 0x1800 },	\
751 	{ 0xa438, 0x001a },	\
752 	{ 0xa438, 0x607d },	\
753 	{ 0xa438, 0x1800 },	\
754 	{ 0xa438, 0x00ab },	\
755 	{ 0xa438, 0x1800 },	\
756 	{ 0xa438, 0x00ab },	\
757 	{ 0xa438, 0xd501 },	\
758 	{ 0xa438, 0xce01 },	\
759 	{ 0xa438, 0xd700 },	\
760 	{ 0xa438, 0x60fd },	\
761 	{ 0xa438, 0xa50f },	\
762 	{ 0xa438, 0xce00 },	\
763 	{ 0xa438, 0xd500 },	\
764 	{ 0xa438, 0xaa0f },	\
765 	{ 0xa438, 0x1800 },	\
766 	{ 0xa438, 0x017b },	\
767 	{ 0xa438, 0x0c0f },	\
768 	{ 0xa438, 0x0503 },	\
769 	{ 0xa438, 0xce00 },	\
770 	{ 0xa438, 0xd500 },	\
771 	{ 0xa438, 0x0c0f },	\
772 	{ 0xa438, 0x0a05 },	\
773 	{ 0xa438, 0x1800 },	\
774 	{ 0xa438, 0x017b },	\
775 	{ 0xa438, 0xd501 },	\
776 	{ 0xa438, 0xce01 },	\
777 	{ 0xa438, 0xd700 },	\
778 	{ 0xa438, 0x60fd },	\
779 	{ 0xa438, 0xa50f },	\
780 	{ 0xa438, 0xce00 },	\
781 	{ 0xa438, 0xd500 },	\
782 	{ 0xa438, 0xaa0f },	\
783 	{ 0xa438, 0x1800 },	\
784 	{ 0xa438, 0x01e0 },	\
785 	{ 0xa438, 0x0c0f },	\
786 	{ 0xa438, 0x0503 },	\
787 	{ 0xa438, 0xce00 },	\
788 	{ 0xa438, 0xd500 },	\
789 	{ 0xa438, 0x0c0f },	\
790 	{ 0xa438, 0x0a05 },	\
791 	{ 0xa438, 0x1800 },	\
792 	{ 0xa438, 0x01e0 },	\
793 	{ 0xa438, 0xd700 },	\
794 	{ 0xa438, 0x60fd },	\
795 	{ 0xa438, 0xa50f },	\
796 	{ 0xa438, 0xce00 },	\
797 	{ 0xa438, 0xd500 },	\
798 	{ 0xa438, 0xaa0f },	\
799 	{ 0xa438, 0x1800 },	\
800 	{ 0xa438, 0x0231 },	\
801 	{ 0xa438, 0x0c0f },	\
802 	{ 0xa438, 0x0503 },	\
803 	{ 0xa438, 0xce00 },	\
804 	{ 0xa438, 0xd500 },	\
805 	{ 0xa438, 0x0c0f },	\
806 	{ 0xa438, 0x0a05 },	\
807 	{ 0xa438, 0x1800 },	\
808 	{ 0xa438, 0x0231 },	\
809 	{ 0xa436, 0xa08e },	\
810 	{ 0xa438, 0xffff },	\
811 	{ 0xa436, 0xa08c },	\
812 	{ 0xa438, 0x0221 },	\
813 	{ 0xa436, 0xa08a },	\
814 	{ 0xa438, 0x01ce },	\
815 	{ 0xa436, 0xa088 },	\
816 	{ 0xa438, 0x0169 },	\
817 	{ 0xa436, 0xa086 },	\
818 	{ 0xa438, 0x00a6 },	\
819 	{ 0xa436, 0xa084 },	\
820 	{ 0xa438, 0x000d },	\
821 	{ 0xa436, 0xa082 },	\
822 	{ 0xa438, 0x0308 },	\
823 	{ 0xa436, 0xa080 },	\
824 	{ 0xa438, 0x029f },	\
825 	{ 0xa436, 0xa090 },	\
826 	{ 0xa438, 0x007f },	\
827 	{ 0xa436, 0xa016 },	\
828 	{ 0xa438, 0x0020 },	\
829 	{ 0xa436, 0xa012 },	\
830 	{ 0xa438, 0x0000 },	\
831 	{ 0xa436, 0xa014 },	\
832 	{ 0xa438, 0x1800 },	\
833 	{ 0xa438, 0x8010 },	\
834 	{ 0xa438, 0x1800 },	\
835 	{ 0xa438, 0x8017 },	\
836 	{ 0xa438, 0x1800 },	\
837 	{ 0xa438, 0x801b },	\
838 	{ 0xa438, 0x1800 },	\
839 	{ 0xa438, 0x8029 },	\
840 	{ 0xa438, 0x1800 },	\
841 	{ 0xa438, 0x8054 },	\
842 	{ 0xa438, 0x1800 },	\
843 	{ 0xa438, 0x805a },	\
844 	{ 0xa438, 0x1800 },	\
845 	{ 0xa438, 0x8064 },	\
846 	{ 0xa438, 0x1800 },	\
847 	{ 0xa438, 0x80a7 },	\
848 	{ 0xa438, 0x9430 },	\
849 	{ 0xa438, 0x9480 },	\
850 	{ 0xa438, 0xb408 },	\
851 	{ 0xa438, 0xd120 },	\
852 	{ 0xa438, 0xd057 },	\
853 	{ 0xa438, 0x1800 },	\
854 	{ 0xa438, 0x064b },	\
855 	{ 0xa438, 0xcb80 },	\
856 	{ 0xa438, 0x9906 },	\
857 	{ 0xa438, 0x1800 },	\
858 	{ 0xa438, 0x0567 },	\
859 	{ 0xa438, 0xcb94 },	\
860 	{ 0xa438, 0x8190 },	\
861 	{ 0xa438, 0x82a0 },	\
862 	{ 0xa438, 0x800a },	\
863 	{ 0xa438, 0x8406 },	\
864 	{ 0xa438, 0x8010 },	\
865 	{ 0xa438, 0xa740 },	\
866 	{ 0xa438, 0x8dff },	\
867 	{ 0xa438, 0x1000 },	\
868 	{ 0xa438, 0x07e4 },	\
869 	{ 0xa438, 0xa840 },	\
870 	{ 0xa438, 0x0000 },	\
871 	{ 0xa438, 0x1800 },	\
872 	{ 0xa438, 0x0773 },	\
873 	{ 0xa438, 0xcb91 },	\
874 	{ 0xa438, 0x0000 },	\
875 	{ 0xa438, 0xd700 },	\
876 	{ 0xa438, 0x4063 },	\
877 	{ 0xa438, 0xd139 },	\
878 	{ 0xa438, 0xf002 },	\
879 	{ 0xa438, 0xd140 },	\
880 	{ 0xa438, 0xd040 },	\
881 	{ 0xa438, 0xb404 },	\
882 	{ 0xa438, 0x0c0f },	\
883 	{ 0xa438, 0x0d00 },	\
884 	{ 0xa438, 0x1000 },	\
885 	{ 0xa438, 0x07dc },	\
886 	{ 0xa438, 0xa610 },	\
887 	{ 0xa438, 0xa110 },	\
888 	{ 0xa438, 0xa2a0 },	\
889 	{ 0xa438, 0xa404 },	\
890 	{ 0xa438, 0xd704 },	\
891 	{ 0xa438, 0x4045 },	\
892 	{ 0xa438, 0xa180 },	\
893 	{ 0xa438, 0xd704 },	\
894 	{ 0xa438, 0x405d },	\
895 	{ 0xa438, 0xa720 },	\
896 	{ 0xa438, 0x1000 },	\
897 	{ 0xa438, 0x0742 },	\
898 	{ 0xa438, 0x1000 },	\
899 	{ 0xa438, 0x07ec },	\
900 	{ 0xa438, 0xd700 },	\
901 	{ 0xa438, 0x5f74 },	\
902 	{ 0xa438, 0x1000 },	\
903 	{ 0xa438, 0x0742 },	\
904 	{ 0xa438, 0xd702 },	\
905 	{ 0xa438, 0x7fb6 },	\
906 	{ 0xa438, 0x8190 },	\
907 	{ 0xa438, 0x82a0 },	\
908 	{ 0xa438, 0x8404 },	\
909 	{ 0xa438, 0x8610 },	\
910 	{ 0xa438, 0x0c0f },	\
911 	{ 0xa438, 0x0d01 },	\
912 	{ 0xa438, 0x1000 },	\
913 	{ 0xa438, 0x07dc },	\
914 	{ 0xa438, 0x1800 },	\
915 	{ 0xa438, 0x064b },	\
916 	{ 0xa438, 0x1000 },	\
917 	{ 0xa438, 0x07c0 },	\
918 	{ 0xa438, 0xd700 },	\
919 	{ 0xa438, 0x5fa7 },	\
920 	{ 0xa438, 0x1800 },	\
921 	{ 0xa438, 0x0481 },	\
922 	{ 0xa438, 0x0000 },	\
923 	{ 0xa438, 0x94bc },	\
924 	{ 0xa438, 0x870c },	\
925 	{ 0xa438, 0xa190 },	\
926 	{ 0xa438, 0xa00a },	\
927 	{ 0xa438, 0xa280 },	\
928 	{ 0xa438, 0xa404 },	\
929 	{ 0xa438, 0x8220 },	\
930 	{ 0xa438, 0x1800 },	\
931 	{ 0xa438, 0x078e },	\
932 	{ 0xa438, 0xcb92 },	\
933 	{ 0xa438, 0xa840 },	\
934 	{ 0xa438, 0xd700 },	\
935 	{ 0xa438, 0x4063 },	\
936 	{ 0xa438, 0xd140 },	\
937 	{ 0xa438, 0xf002 },	\
938 	{ 0xa438, 0xd150 },	\
939 	{ 0xa438, 0xd040 },	\
940 	{ 0xa438, 0xd703 },	\
941 	{ 0xa438, 0x60a0 },	\
942 	{ 0xa438, 0x6121 },	\
943 	{ 0xa438, 0x61a2 },	\
944 	{ 0xa438, 0x6223 },	\
945 	{ 0xa438, 0xf02f },	\
946 	{ 0xa438, 0x0cf0 },	\
947 	{ 0xa438, 0x0d10 },	\
948 	{ 0xa438, 0x8010 },	\
949 	{ 0xa438, 0xa740 },	\
950 	{ 0xa438, 0xf00f },	\
951 	{ 0xa438, 0x0cf0 },	\
952 	{ 0xa438, 0x0d20 },	\
953 	{ 0xa438, 0x8010 },	\
954 	{ 0xa438, 0xa740 },	\
955 	{ 0xa438, 0xf00a },	\
956 	{ 0xa438, 0x0cf0 },	\
957 	{ 0xa438, 0x0d30 },	\
958 	{ 0xa438, 0x8010 },	\
959 	{ 0xa438, 0xa740 },	\
960 	{ 0xa438, 0xf005 },	\
961 	{ 0xa438, 0x0cf0 },	\
962 	{ 0xa438, 0x0d40 },	\
963 	{ 0xa438, 0x8010 },	\
964 	{ 0xa438, 0xa740 },	\
965 	{ 0xa438, 0x1000 },	\
966 	{ 0xa438, 0x07e4 },	\
967 	{ 0xa438, 0xa610 },	\
968 	{ 0xa438, 0xa008 },	\
969 	{ 0xa438, 0xd704 },	\
970 	{ 0xa438, 0x4046 },	\
971 	{ 0xa438, 0xa002 },	\
972 	{ 0xa438, 0xd704 },	\
973 	{ 0xa438, 0x405d },	\
974 	{ 0xa438, 0xa720 },	\
975 	{ 0xa438, 0x1000 },	\
976 	{ 0xa438, 0x0742 },	\
977 	{ 0xa438, 0x1000 },	\
978 	{ 0xa438, 0x07f7 },	\
979 	{ 0xa438, 0xd700 },	\
980 	{ 0xa438, 0x5f74 },	\
981 	{ 0xa438, 0x1000 },	\
982 	{ 0xa438, 0x0742 },	\
983 	{ 0xa438, 0xd702 },	\
984 	{ 0xa438, 0x7fb5 },	\
985 	{ 0xa438, 0x800a },	\
986 	{ 0xa438, 0x0cf0 },	\
987 	{ 0xa438, 0x0d00 },	\
988 	{ 0xa438, 0x1000 },	\
989 	{ 0xa438, 0x07e4 },	\
990 	{ 0xa438, 0x8010 },	\
991 	{ 0xa438, 0xa740 },	\
992 	{ 0xa438, 0xd701 },	\
993 	{ 0xa438, 0x3ad4 },	\
994 	{ 0xa438, 0x0537 },	\
995 	{ 0xa438, 0x8610 },	\
996 	{ 0xa438, 0x8840 },	\
997 	{ 0xa438, 0x1800 },	\
998 	{ 0xa438, 0x064b },	\
999 	{ 0xa438, 0x8301 },	\
1000 	{ 0xa438, 0x800a },	\
1001 	{ 0xa438, 0x8190 },	\
1002 	{ 0xa438, 0x82a0 },	\
1003 	{ 0xa438, 0x8404 },	\
1004 	{ 0xa438, 0xa70c },	\
1005 	{ 0xa438, 0x9402 },	\
1006 	{ 0xa438, 0x890c },	\
1007 	{ 0xa438, 0x8840 },	\
1008 	{ 0xa438, 0x1800 },	\
1009 	{ 0xa438, 0x064b },	\
1010 	{ 0xa436, 0xa10e },	\
1011 	{ 0xa438, 0x0642 },	\
1012 	{ 0xa436, 0xa10c },	\
1013 	{ 0xa438, 0x0686 },	\
1014 	{ 0xa436, 0xa10a },	\
1015 	{ 0xa438, 0x0788 },	\
1016 	{ 0xa436, 0xa108 },	\
1017 	{ 0xa438, 0x047b },	\
1018 	{ 0xa436, 0xa106 },	\
1019 	{ 0xa438, 0x065c },	\
1020 	{ 0xa436, 0xa104 },	\
1021 	{ 0xa438, 0x0769 },	\
1022 	{ 0xa436, 0xa102 },	\
1023 	{ 0xa438, 0x0565 },	\
1024 	{ 0xa436, 0xa100 },	\
1025 	{ 0xa438, 0x06f9 },	\
1026 	{ 0xa436, 0xa110 },	\
1027 	{ 0xa438, 0x00ff },	\
1028 	{ 0xa436, 0xb87c },	\
1029 	{ 0xa438, 0x8530 },	\
1030 	{ 0xa436, 0xb87e },	\
1031 	{ 0xa438, 0xaf85 },	\
1032 	{ 0xa438, 0x3caf },	\
1033 	{ 0xa438, 0x8593 },	\
1034 	{ 0xa438, 0xaf85 },	\
1035 	{ 0xa438, 0x9caf },	\
1036 	{ 0xa438, 0x85a5 },	\
1037 	{ 0xa438, 0xbf86 },	\
1038 	{ 0xa438, 0xd702 },	\
1039 	{ 0xa438, 0x5afb },	\
1040 	{ 0xa438, 0xe083 },	\
1041 	{ 0xa438, 0xfb0c },	\
1042 	{ 0xa438, 0x020d },	\
1043 	{ 0xa438, 0x021b },	\
1044 	{ 0xa438, 0x10bf },	\
1045 	{ 0xa438, 0x86d7 },	\
1046 	{ 0xa438, 0x025a },	\
1047 	{ 0xa438, 0xb7bf },	\
1048 	{ 0xa438, 0x86da },	\
1049 	{ 0xa438, 0x025a },	\
1050 	{ 0xa438, 0xfbe0 },	\
1051 	{ 0xa438, 0x83fc },	\
1052 	{ 0xa438, 0x0c02 },	\
1053 	{ 0xa438, 0x0d02 },	\
1054 	{ 0xa438, 0x1b10 },	\
1055 	{ 0xa438, 0xbf86 },	\
1056 	{ 0xa438, 0xda02 },	\
1057 	{ 0xa438, 0x5ab7 },	\
1058 	{ 0xa438, 0xbf86 },	\
1059 	{ 0xa438, 0xdd02 },	\
1060 	{ 0xa438, 0x5afb },	\
1061 	{ 0xa438, 0xe083 },	\
1062 	{ 0xa438, 0xfd0c },	\
1063 	{ 0xa438, 0x020d },	\
1064 	{ 0xa438, 0x021b },	\
1065 	{ 0xa438, 0x10bf },	\
1066 	{ 0xa438, 0x86dd },	\
1067 	{ 0xa438, 0x025a },	\
1068 	{ 0xa438, 0xb7bf },	\
1069 	{ 0xa438, 0x86e0 },	\
1070 	{ 0xa438, 0x025a },	\
1071 	{ 0xa438, 0xfbe0 },	\
1072 	{ 0xa438, 0x83fe },	\
1073 	{ 0xa438, 0x0c02 },	\
1074 	{ 0xa438, 0x0d02 },	\
1075 	{ 0xa438, 0x1b10 },	\
1076 	{ 0xa438, 0xbf86 },	\
1077 	{ 0xa438, 0xe002 },	\
1078 	{ 0xa438, 0x5ab7 },	\
1079 	{ 0xa438, 0xaf2f },	\
1080 	{ 0xa438, 0xbd02 },	\
1081 	{ 0xa438, 0x2cac },	\
1082 	{ 0xa438, 0x0286 },	\
1083 	{ 0xa438, 0x65af },	\
1084 	{ 0xa438, 0x212b },	\
1085 	{ 0xa438, 0x022c },	\
1086 	{ 0xa438, 0x6002 },	\
1087 	{ 0xa438, 0x86b6 },	\
1088 	{ 0xa438, 0xaf21 },	\
1089 	{ 0xa438, 0x0cd1 },	\
1090 	{ 0xa438, 0x03bf },	\
1091 	{ 0xa438, 0x8710 },	\
1092 	{ 0xa438, 0x025a },	\
1093 	{ 0xa438, 0xb7bf },	\
1094 	{ 0xa438, 0x870d },	\
1095 	{ 0xa438, 0x025a },	\
1096 	{ 0xa438, 0xb7bf },	\
1097 	{ 0xa438, 0x8719 },	\
1098 	{ 0xa438, 0x025a },	\
1099 	{ 0xa438, 0xb7bf },	\
1100 	{ 0xa438, 0x8716 },	\
1101 	{ 0xa438, 0x025a },	\
1102 	{ 0xa438, 0xb7bf },	\
1103 	{ 0xa438, 0x871f },	\
1104 	{ 0xa438, 0x025a },	\
1105 	{ 0xa438, 0xb7bf },	\
1106 	{ 0xa438, 0x871c },	\
1107 	{ 0xa438, 0x025a },	\
1108 	{ 0xa438, 0xb7bf },	\
1109 	{ 0xa438, 0x8728 },	\
1110 	{ 0xa438, 0x025a },	\
1111 	{ 0xa438, 0xb7bf },	\
1112 	{ 0xa438, 0x8725 },	\
1113 	{ 0xa438, 0x025a },	\
1114 	{ 0xa438, 0xb7bf },	\
1115 	{ 0xa438, 0x8707 },	\
1116 	{ 0xa438, 0x025a },	\
1117 	{ 0xa438, 0xfbad },	\
1118 	{ 0xa438, 0x281c },	\
1119 	{ 0xa438, 0xd100 },	\
1120 	{ 0xa438, 0xbf87 },	\
1121 	{ 0xa438, 0x0a02 },	\
1122 	{ 0xa438, 0x5ab7 },	\
1123 	{ 0xa438, 0xbf87 },	\
1124 	{ 0xa438, 0x1302 },	\
1125 	{ 0xa438, 0x5ab7 },	\
1126 	{ 0xa438, 0xbf87 },	\
1127 	{ 0xa438, 0x2202 },	\
1128 	{ 0xa438, 0x5ab7 },	\
1129 	{ 0xa438, 0xbf87 },	\
1130 	{ 0xa438, 0x2b02 },	\
1131 	{ 0xa438, 0x5ab7 },	\
1132 	{ 0xa438, 0xae1a },	\
1133 	{ 0xa438, 0xd101 },	\
1134 	{ 0xa438, 0xbf87 },	\
1135 	{ 0xa438, 0x0a02 },	\
1136 	{ 0xa438, 0x5ab7 },	\
1137 	{ 0xa438, 0xbf87 },	\
1138 	{ 0xa438, 0x1302 },	\
1139 	{ 0xa438, 0x5ab7 },	\
1140 	{ 0xa438, 0xbf87 },	\
1141 	{ 0xa438, 0x2202 },	\
1142 	{ 0xa438, 0x5ab7 },	\
1143 	{ 0xa438, 0xbf87 },	\
1144 	{ 0xa438, 0x2b02 },	\
1145 	{ 0xa438, 0x5ab7 },	\
1146 	{ 0xa438, 0xd101 },	\
1147 	{ 0xa438, 0xbf87 },	\
1148 	{ 0xa438, 0x3402 },	\
1149 	{ 0xa438, 0x5ab7 },	\
1150 	{ 0xa438, 0xbf87 },	\
1151 	{ 0xa438, 0x3102 },	\
1152 	{ 0xa438, 0x5ab7 },	\
1153 	{ 0xa438, 0xbf87 },	\
1154 	{ 0xa438, 0x3d02 },	\
1155 	{ 0xa438, 0x5ab7 },	\
1156 	{ 0xa438, 0xbf87 },	\
1157 	{ 0xa438, 0x3a02 },	\
1158 	{ 0xa438, 0x5ab7 },	\
1159 	{ 0xa438, 0xbf87 },	\
1160 	{ 0xa438, 0x4302 },	\
1161 	{ 0xa438, 0x5ab7 },	\
1162 	{ 0xa438, 0xbf87 },	\
1163 	{ 0xa438, 0x4002 },	\
1164 	{ 0xa438, 0x5ab7 },	\
1165 	{ 0xa438, 0xbf87 },	\
1166 	{ 0xa438, 0x4c02 },	\
1167 	{ 0xa438, 0x5ab7 },	\
1168 	{ 0xa438, 0xbf87 },	\
1169 	{ 0xa438, 0x4902 },	\
1170 	{ 0xa438, 0x5ab7 },	\
1171 	{ 0xa438, 0xd100 },	\
1172 	{ 0xa438, 0xbf87 },	\
1173 	{ 0xa438, 0x2e02 },	\
1174 	{ 0xa438, 0x5ab7 },	\
1175 	{ 0xa438, 0xbf87 },	\
1176 	{ 0xa438, 0x3702 },	\
1177 	{ 0xa438, 0x5ab7 },	\
1178 	{ 0xa438, 0xbf87 },	\
1179 	{ 0xa438, 0x4602 },	\
1180 	{ 0xa438, 0x5ab7 },	\
1181 	{ 0xa438, 0xbf87 },	\
1182 	{ 0xa438, 0x4f02 },	\
1183 	{ 0xa438, 0x5ab7 },	\
1184 	{ 0xa438, 0xaf35 },	\
1185 	{ 0xa438, 0x7ff8 },	\
1186 	{ 0xa438, 0xfaef },	\
1187 	{ 0xa438, 0x69bf },	\
1188 	{ 0xa438, 0x86e3 },	\
1189 	{ 0xa438, 0x025a },	\
1190 	{ 0xa438, 0xfbbf },	\
1191 	{ 0xa438, 0x86fb },	\
1192 	{ 0xa438, 0x025a },	\
1193 	{ 0xa438, 0xb7bf },	\
1194 	{ 0xa438, 0x86e6 },	\
1195 	{ 0xa438, 0x025a },	\
1196 	{ 0xa438, 0xfbbf },	\
1197 	{ 0xa438, 0x86fe },	\
1198 	{ 0xa438, 0x025a },	\
1199 	{ 0xa438, 0xb7bf },	\
1200 	{ 0xa438, 0x86e9 },	\
1201 	{ 0xa438, 0x025a },	\
1202 	{ 0xa438, 0xfbbf },	\
1203 	{ 0xa438, 0x8701 },	\
1204 	{ 0xa438, 0x025a },	\
1205 	{ 0xa438, 0xb7bf },	\
1206 	{ 0xa438, 0x86ec },	\
1207 	{ 0xa438, 0x025a },	\
1208 	{ 0xa438, 0xfbbf },	\
1209 	{ 0xa438, 0x8704 },	\
1210 	{ 0xa438, 0x025a },	\
1211 	{ 0xa438, 0xb7bf },	\
1212 	{ 0xa438, 0x86ef },	\
1213 	{ 0xa438, 0x0262 },	\
1214 	{ 0xa438, 0x7cbf },	\
1215 	{ 0xa438, 0x86f2 },	\
1216 	{ 0xa438, 0x0262 },	\
1217 	{ 0xa438, 0x7cbf },	\
1218 	{ 0xa438, 0x86f5 },	\
1219 	{ 0xa438, 0x0262 },	\
1220 	{ 0xa438, 0x7cbf },	\
1221 	{ 0xa438, 0x86f8 },	\
1222 	{ 0xa438, 0x0262 },	\
1223 	{ 0xa438, 0x7cef },	\
1224 	{ 0xa438, 0x96fe },	\
1225 	{ 0xa438, 0xfc04 },	\
1226 	{ 0xa438, 0xf8fa },	\
1227 	{ 0xa438, 0xef69 },	\
1228 	{ 0xa438, 0xbf86 },	\
1229 	{ 0xa438, 0xef02 },	\
1230 	{ 0xa438, 0x6273 },	\
1231 	{ 0xa438, 0xbf86 },	\
1232 	{ 0xa438, 0xf202 },	\
1233 	{ 0xa438, 0x6273 },	\
1234 	{ 0xa438, 0xbf86 },	\
1235 	{ 0xa438, 0xf502 },	\
1236 	{ 0xa438, 0x6273 },	\
1237 	{ 0xa438, 0xbf86 },	\
1238 	{ 0xa438, 0xf802 },	\
1239 	{ 0xa438, 0x6273 },	\
1240 	{ 0xa438, 0xef96 },	\
1241 	{ 0xa438, 0xfefc },	\
1242 	{ 0xa438, 0x0420 },	\
1243 	{ 0xa438, 0xb540 },	\
1244 	{ 0xa438, 0x53b5 },	\
1245 	{ 0xa438, 0x4086 },	\
1246 	{ 0xa438, 0xb540 },	\
1247 	{ 0xa438, 0xb9b5 },	\
1248 	{ 0xa438, 0x40c8 },	\
1249 	{ 0xa438, 0xb03a },	\
1250 	{ 0xa438, 0xc8b0 },	\
1251 	{ 0xa438, 0xbac8 },	\
1252 	{ 0xa438, 0xb13a },	\
1253 	{ 0xa438, 0xc8b1 },	\
1254 	{ 0xa438, 0xba77 },	\
1255 	{ 0xa438, 0xbd26 },	\
1256 	{ 0xa438, 0xffbd },	\
1257 	{ 0xa438, 0x2677 },	\
1258 	{ 0xa438, 0xbd28 },	\
1259 	{ 0xa438, 0xffbd },	\
1260 	{ 0xa438, 0x2840 },	\
1261 	{ 0xa438, 0xbd26 },	\
1262 	{ 0xa438, 0xc8bd },	\
1263 	{ 0xa438, 0x2640 },	\
1264 	{ 0xa438, 0xbd28 },	\
1265 	{ 0xa438, 0xc8bd },	\
1266 	{ 0xa438, 0x28bb },	\
1267 	{ 0xa438, 0xa430 },	\
1268 	{ 0xa438, 0x98b0 },	\
1269 	{ 0xa438, 0x1eba },	\
1270 	{ 0xa438, 0xb01e },	\
1271 	{ 0xa438, 0xdcb0 },	\
1272 	{ 0xa438, 0x1e98 },	\
1273 	{ 0xa438, 0xb09e },	\
1274 	{ 0xa438, 0xbab0 },	\
1275 	{ 0xa438, 0x9edc },	\
1276 	{ 0xa438, 0xb09e },	\
1277 	{ 0xa438, 0x98b1 },	\
1278 	{ 0xa438, 0x1eba },	\
1279 	{ 0xa438, 0xb11e },	\
1280 	{ 0xa438, 0xdcb1 },	\
1281 	{ 0xa438, 0x1e98 },	\
1282 	{ 0xa438, 0xb19e },	\
1283 	{ 0xa438, 0xbab1 },	\
1284 	{ 0xa438, 0x9edc },	\
1285 	{ 0xa438, 0xb19e },	\
1286 	{ 0xa438, 0x11b0 },	\
1287 	{ 0xa438, 0x1e22 },	\
1288 	{ 0xa438, 0xb01e },	\
1289 	{ 0xa438, 0x33b0 },	\
1290 	{ 0xa438, 0x1e11 },	\
1291 	{ 0xa438, 0xb09e },	\
1292 	{ 0xa438, 0x22b0 },	\
1293 	{ 0xa438, 0x9e33 },	\
1294 	{ 0xa438, 0xb09e },	\
1295 	{ 0xa438, 0x11b1 },	\
1296 	{ 0xa438, 0x1e22 },	\
1297 	{ 0xa438, 0xb11e },	\
1298 	{ 0xa438, 0x33b1 },	\
1299 	{ 0xa438, 0x1e11 },	\
1300 	{ 0xa438, 0xb19e },	\
1301 	{ 0xa438, 0x22b1 },	\
1302 	{ 0xa438, 0x9e33 },	\
1303 	{ 0xa438, 0xb19e },	\
1304 	{ 0xa436, 0xb85e },	\
1305 	{ 0xa438, 0x2f71 },	\
1306 	{ 0xa436, 0xb860 },	\
1307 	{ 0xa438, 0x20d9 },	\
1308 	{ 0xa436, 0xb862 },	\
1309 	{ 0xa438, 0x2109 },	\
1310 	{ 0xa436, 0xb864 },	\
1311 	{ 0xa438, 0x34e7 },	\
1312 	{ 0xa436, 0xb878 },	\
1313 	{ 0xa438, 0x000f }
1314 
1315 #define RTL8125_MAC_CFG3_MCU	\
1316 	{ 0xa436, 0xa016 },	\
1317 	{ 0xa438, 0x0000 },	\
1318 	{ 0xa436, 0xa012 },	\
1319 	{ 0xa438, 0x0000 },	\
1320 	{ 0xa436, 0xa014 },	\
1321 	{ 0xa438, 0x1800 },	\
1322 	{ 0xa438, 0x8010 },	\
1323 	{ 0xa438, 0x1800 },	\
1324 	{ 0xa438, 0x808b },	\
1325 	{ 0xa438, 0x1800 },	\
1326 	{ 0xa438, 0x808f },	\
1327 	{ 0xa438, 0x1800 },	\
1328 	{ 0xa438, 0x8093 },	\
1329 	{ 0xa438, 0x1800 },	\
1330 	{ 0xa438, 0x8097 },	\
1331 	{ 0xa438, 0x1800 },	\
1332 	{ 0xa438, 0x809d },	\
1333 	{ 0xa438, 0x1800 },	\
1334 	{ 0xa438, 0x80a1 },	\
1335 	{ 0xa438, 0x1800 },	\
1336 	{ 0xa438, 0x80aa },	\
1337 	{ 0xa438, 0xd718 },	\
1338 	{ 0xa438, 0x607b },	\
1339 	{ 0xa438, 0x40da },	\
1340 	{ 0xa438, 0xf00e },	\
1341 	{ 0xa438, 0x42da },	\
1342 	{ 0xa438, 0xf01e },	\
1343 	{ 0xa438, 0xd718 },	\
1344 	{ 0xa438, 0x615b },	\
1345 	{ 0xa438, 0x1000 },	\
1346 	{ 0xa438, 0x1456 },	\
1347 	{ 0xa438, 0x1000 },	\
1348 	{ 0xa438, 0x14a4 },	\
1349 	{ 0xa438, 0x1000 },	\
1350 	{ 0xa438, 0x14bc },	\
1351 	{ 0xa438, 0xd718 },	\
1352 	{ 0xa438, 0x5f2e },	\
1353 	{ 0xa438, 0xf01c },	\
1354 	{ 0xa438, 0x1000 },	\
1355 	{ 0xa438, 0x1456 },	\
1356 	{ 0xa438, 0x1000 },	\
1357 	{ 0xa438, 0x14a4 },	\
1358 	{ 0xa438, 0x1000 },	\
1359 	{ 0xa438, 0x14bc },	\
1360 	{ 0xa438, 0xd718 },	\
1361 	{ 0xa438, 0x5f2e },	\
1362 	{ 0xa438, 0xf024 },	\
1363 	{ 0xa438, 0x1000 },	\
1364 	{ 0xa438, 0x1456 },	\
1365 	{ 0xa438, 0x1000 },	\
1366 	{ 0xa438, 0x14a4 },	\
1367 	{ 0xa438, 0x1000 },	\
1368 	{ 0xa438, 0x14bc },	\
1369 	{ 0xa438, 0xd718 },	\
1370 	{ 0xa438, 0x5f2e },	\
1371 	{ 0xa438, 0xf02c },	\
1372 	{ 0xa438, 0x1000 },	\
1373 	{ 0xa438, 0x1456 },	\
1374 	{ 0xa438, 0x1000 },	\
1375 	{ 0xa438, 0x14a4 },	\
1376 	{ 0xa438, 0x1000 },	\
1377 	{ 0xa438, 0x14bc },	\
1378 	{ 0xa438, 0xd718 },	\
1379 	{ 0xa438, 0x5f2e },	\
1380 	{ 0xa438, 0xf034 },	\
1381 	{ 0xa438, 0xd719 },	\
1382 	{ 0xa438, 0x4118 },	\
1383 	{ 0xa438, 0xd504 },	\
1384 	{ 0xa438, 0xac11 },	\
1385 	{ 0xa438, 0xd501 },	\
1386 	{ 0xa438, 0xce01 },	\
1387 	{ 0xa438, 0xa410 },	\
1388 	{ 0xa438, 0xce00 },	\
1389 	{ 0xa438, 0xd500 },	\
1390 	{ 0xa438, 0x4779 },	\
1391 	{ 0xa438, 0xd504 },	\
1392 	{ 0xa438, 0xac0f },	\
1393 	{ 0xa438, 0xae01 },	\
1394 	{ 0xa438, 0xd500 },	\
1395 	{ 0xa438, 0x1000 },	\
1396 	{ 0xa438, 0x1444 },	\
1397 	{ 0xa438, 0xf034 },	\
1398 	{ 0xa438, 0xd719 },	\
1399 	{ 0xa438, 0x4118 },	\
1400 	{ 0xa438, 0xd504 },	\
1401 	{ 0xa438, 0xac22 },	\
1402 	{ 0xa438, 0xd501 },	\
1403 	{ 0xa438, 0xce01 },	\
1404 	{ 0xa438, 0xa420 },	\
1405 	{ 0xa438, 0xce00 },	\
1406 	{ 0xa438, 0xd500 },	\
1407 	{ 0xa438, 0x4559 },	\
1408 	{ 0xa438, 0xd504 },	\
1409 	{ 0xa438, 0xac0f },	\
1410 	{ 0xa438, 0xae01 },	\
1411 	{ 0xa438, 0xd500 },	\
1412 	{ 0xa438, 0x1000 },	\
1413 	{ 0xa438, 0x1444 },	\
1414 	{ 0xa438, 0xf023 },	\
1415 	{ 0xa438, 0xd719 },	\
1416 	{ 0xa438, 0x4118 },	\
1417 	{ 0xa438, 0xd504 },	\
1418 	{ 0xa438, 0xac44 },	\
1419 	{ 0xa438, 0xd501 },	\
1420 	{ 0xa438, 0xce01 },	\
1421 	{ 0xa438, 0xa440 },	\
1422 	{ 0xa438, 0xce00 },	\
1423 	{ 0xa438, 0xd500 },	\
1424 	{ 0xa438, 0x4339 },	\
1425 	{ 0xa438, 0xd504 },	\
1426 	{ 0xa438, 0xac0f },	\
1427 	{ 0xa438, 0xae01 },	\
1428 	{ 0xa438, 0xd500 },	\
1429 	{ 0xa438, 0x1000 },	\
1430 	{ 0xa438, 0x1444 },	\
1431 	{ 0xa438, 0xf012 },	\
1432 	{ 0xa438, 0xd719 },	\
1433 	{ 0xa438, 0x4118 },	\
1434 	{ 0xa438, 0xd504 },	\
1435 	{ 0xa438, 0xac88 },	\
1436 	{ 0xa438, 0xd501 },	\
1437 	{ 0xa438, 0xce01 },	\
1438 	{ 0xa438, 0xa480 },	\
1439 	{ 0xa438, 0xce00 },	\
1440 	{ 0xa438, 0xd500 },	\
1441 	{ 0xa438, 0x4119 },	\
1442 	{ 0xa438, 0xd504 },	\
1443 	{ 0xa438, 0xac0f },	\
1444 	{ 0xa438, 0xae01 },	\
1445 	{ 0xa438, 0xd500 },	\
1446 	{ 0xa438, 0x1000 },	\
1447 	{ 0xa438, 0x1444 },	\
1448 	{ 0xa438, 0xf001 },	\
1449 	{ 0xa438, 0x1000 },	\
1450 	{ 0xa438, 0x1456 },	\
1451 	{ 0xa438, 0xd718 },	\
1452 	{ 0xa438, 0x5fac },	\
1453 	{ 0xa438, 0xc48f },	\
1454 	{ 0xa438, 0x1000 },	\
1455 	{ 0xa438, 0x141b },	\
1456 	{ 0xa438, 0xd504 },	\
1457 	{ 0xa438, 0x8010 },	\
1458 	{ 0xa438, 0x1800 },	\
1459 	{ 0xa438, 0x121a },	\
1460 	{ 0xa438, 0xd0b4 },	\
1461 	{ 0xa438, 0xd1bb },	\
1462 	{ 0xa438, 0x1800 },	\
1463 	{ 0xa438, 0x0898 },	\
1464 	{ 0xa438, 0xd0b4 },	\
1465 	{ 0xa438, 0xd1bb },	\
1466 	{ 0xa438, 0x1800 },	\
1467 	{ 0xa438, 0x0a0e },	\
1468 	{ 0xa438, 0xd064 },	\
1469 	{ 0xa438, 0xd18a },	\
1470 	{ 0xa438, 0x1800 },	\
1471 	{ 0xa438, 0x0b7e },	\
1472 	{ 0xa438, 0x401c },	\
1473 	{ 0xa438, 0xd501 },	\
1474 	{ 0xa438, 0xa804 },	\
1475 	{ 0xa438, 0x8804 },	\
1476 	{ 0xa438, 0x1800 },	\
1477 	{ 0xa438, 0x053b },	\
1478 	{ 0xa438, 0xd500 },	\
1479 	{ 0xa438, 0xa301 },	\
1480 	{ 0xa438, 0x1800 },	\
1481 	{ 0xa438, 0x0648 },	\
1482 	{ 0xa438, 0xc520 },	\
1483 	{ 0xa438, 0xa201 },	\
1484 	{ 0xa438, 0xd701 },	\
1485 	{ 0xa438, 0x252d },	\
1486 	{ 0xa438, 0x1646 },	\
1487 	{ 0xa438, 0xd708 },	\
1488 	{ 0xa438, 0x4006 },	\
1489 	{ 0xa438, 0x1800 },	\
1490 	{ 0xa438, 0x1646 },	\
1491 	{ 0xa438, 0x1800 },	\
1492 	{ 0xa438, 0x0308 },	\
1493 	{ 0xa436, 0xa026 },	\
1494 	{ 0xa438, 0x0307 },	\
1495 	{ 0xa436, 0xa024 },	\
1496 	{ 0xa438, 0x1645 },	\
1497 	{ 0xa436, 0xa022 },	\
1498 	{ 0xa438, 0x0647 },	\
1499 	{ 0xa436, 0xa020 },	\
1500 	{ 0xa438, 0x053a },	\
1501 	{ 0xa436, 0xa006 },	\
1502 	{ 0xa438, 0x0b7c },	\
1503 	{ 0xa436, 0xa004 },	\
1504 	{ 0xa438, 0x0a0c },	\
1505 	{ 0xa436, 0xa002 },	\
1506 	{ 0xa438, 0x0896 },	\
1507 	{ 0xa436, 0xa000 },	\
1508 	{ 0xa438, 0x11a1 },	\
1509 	{ 0xa436, 0xa008 },	\
1510 	{ 0xa438, 0xff00 },	\
1511 	{ 0xa436, 0xa016 },	\
1512 	{ 0xa438, 0x0010 },	\
1513 	{ 0xa436, 0xa012 },	\
1514 	{ 0xa438, 0x0000 },	\
1515 	{ 0xa436, 0xa014 },	\
1516 	{ 0xa438, 0x1800 },	\
1517 	{ 0xa438, 0x8010 },	\
1518 	{ 0xa438, 0x1800 },	\
1519 	{ 0xa438, 0x8015 },	\
1520 	{ 0xa438, 0x1800 },	\
1521 	{ 0xa438, 0x801a },	\
1522 	{ 0xa438, 0x1800 },	\
1523 	{ 0xa438, 0x801a },	\
1524 	{ 0xa438, 0x1800 },	\
1525 	{ 0xa438, 0x801a },	\
1526 	{ 0xa438, 0x1800 },	\
1527 	{ 0xa438, 0x801a },	\
1528 	{ 0xa438, 0x1800 },	\
1529 	{ 0xa438, 0x801a },	\
1530 	{ 0xa438, 0x1800 },	\
1531 	{ 0xa438, 0x801a },	\
1532 	{ 0xa438, 0xad02 },	\
1533 	{ 0xa438, 0x1000 },	\
1534 	{ 0xa438, 0x02d7 },	\
1535 	{ 0xa438, 0x1800 },	\
1536 	{ 0xa438, 0x00ed },	\
1537 	{ 0xa438, 0x0c0f },	\
1538 	{ 0xa438, 0x0509 },	\
1539 	{ 0xa438, 0xc100 },	\
1540 	{ 0xa438, 0x1800 },	\
1541 	{ 0xa438, 0x008f },	\
1542 	{ 0xa436, 0xa08e },	\
1543 	{ 0xa438, 0xffff },	\
1544 	{ 0xa436, 0xa08c },	\
1545 	{ 0xa438, 0xffff },	\
1546 	{ 0xa436, 0xa08a },	\
1547 	{ 0xa438, 0xffff },	\
1548 	{ 0xa436, 0xa088 },	\
1549 	{ 0xa438, 0xffff },	\
1550 	{ 0xa436, 0xa086 },	\
1551 	{ 0xa438, 0xffff },	\
1552 	{ 0xa436, 0xa084 },	\
1553 	{ 0xa438, 0xffff },	\
1554 	{ 0xa436, 0xa082 },	\
1555 	{ 0xa438, 0x008d },	\
1556 	{ 0xa436, 0xa080 },	\
1557 	{ 0xa438, 0x00eb },	\
1558 	{ 0xa436, 0xa090 },	\
1559 	{ 0xa438, 0x0103 },	\
1560 	{ 0xa436, 0xa016 },	\
1561 	{ 0xa438, 0x0020 },	\
1562 	{ 0xa436, 0xa012 },	\
1563 	{ 0xa438, 0x0000 },	\
1564 	{ 0xa436, 0xa014 },	\
1565 	{ 0xa438, 0x1800 },	\
1566 	{ 0xa438, 0x8010 },	\
1567 	{ 0xa438, 0x1800 },	\
1568 	{ 0xa438, 0x8014 },	\
1569 	{ 0xa438, 0x1800 },	\
1570 	{ 0xa438, 0x8018 },	\
1571 	{ 0xa438, 0x1800 },	\
1572 	{ 0xa438, 0x8024 },	\
1573 	{ 0xa438, 0x1800 },	\
1574 	{ 0xa438, 0x8051 },	\
1575 	{ 0xa438, 0x1800 },	\
1576 	{ 0xa438, 0x8055 },	\
1577 	{ 0xa438, 0x1800 },	\
1578 	{ 0xa438, 0x8072 },	\
1579 	{ 0xa438, 0x1800 },	\
1580 	{ 0xa438, 0x80dc },	\
1581 	{ 0xa438, 0x0000 },	\
1582 	{ 0xa438, 0x0000 },	\
1583 	{ 0xa438, 0x0000 },	\
1584 	{ 0xa438, 0xfffd },	\
1585 	{ 0xa438, 0x0000 },	\
1586 	{ 0xa438, 0x0000 },	\
1587 	{ 0xa438, 0x0000 },	\
1588 	{ 0xa438, 0xfffd },	\
1589 	{ 0xa438, 0x8301 },	\
1590 	{ 0xa438, 0x800a },	\
1591 	{ 0xa438, 0x8190 },	\
1592 	{ 0xa438, 0x82a0 },	\
1593 	{ 0xa438, 0x8404 },	\
1594 	{ 0xa438, 0xa70c },	\
1595 	{ 0xa438, 0x9402 },	\
1596 	{ 0xa438, 0x890c },	\
1597 	{ 0xa438, 0x8840 },	\
1598 	{ 0xa438, 0xa380 },	\
1599 	{ 0xa438, 0x1800 },	\
1600 	{ 0xa438, 0x066e },	\
1601 	{ 0xa438, 0xcb91 },	\
1602 	{ 0xa438, 0xd700 },	\
1603 	{ 0xa438, 0x4063 },	\
1604 	{ 0xa438, 0xd139 },	\
1605 	{ 0xa438, 0xf002 },	\
1606 	{ 0xa438, 0xd140 },	\
1607 	{ 0xa438, 0xd040 },	\
1608 	{ 0xa438, 0xb404 },	\
1609 	{ 0xa438, 0x0c0f },	\
1610 	{ 0xa438, 0x0d00 },	\
1611 	{ 0xa438, 0x1000 },	\
1612 	{ 0xa438, 0x07e0 },	\
1613 	{ 0xa438, 0xa610 },	\
1614 	{ 0xa438, 0xa110 },	\
1615 	{ 0xa438, 0xa2a0 },	\
1616 	{ 0xa438, 0xa404 },	\
1617 	{ 0xa438, 0xd704 },	\
1618 	{ 0xa438, 0x4085 },	\
1619 	{ 0xa438, 0xa180 },	\
1620 	{ 0xa438, 0xa404 },	\
1621 	{ 0xa438, 0x8280 },	\
1622 	{ 0xa438, 0xd704 },	\
1623 	{ 0xa438, 0x405d },	\
1624 	{ 0xa438, 0xa720 },	\
1625 	{ 0xa438, 0x1000 },	\
1626 	{ 0xa438, 0x0743 },	\
1627 	{ 0xa438, 0x1000 },	\
1628 	{ 0xa438, 0x07f0 },	\
1629 	{ 0xa438, 0xd700 },	\
1630 	{ 0xa438, 0x5f74 },	\
1631 	{ 0xa438, 0x1000 },	\
1632 	{ 0xa438, 0x0743 },	\
1633 	{ 0xa438, 0xd702 },	\
1634 	{ 0xa438, 0x7fb6 },	\
1635 	{ 0xa438, 0x8190 },	\
1636 	{ 0xa438, 0x82a0 },	\
1637 	{ 0xa438, 0x8404 },	\
1638 	{ 0xa438, 0x8610 },	\
1639 	{ 0xa438, 0x0000 },	\
1640 	{ 0xa438, 0x0c0f },	\
1641 	{ 0xa438, 0x0d01 },	\
1642 	{ 0xa438, 0x1000 },	\
1643 	{ 0xa438, 0x07e0 },	\
1644 	{ 0xa438, 0x1800 },	\
1645 	{ 0xa438, 0x066e },	\
1646 	{ 0xa438, 0xd158 },	\
1647 	{ 0xa438, 0xd04d },	\
1648 	{ 0xa438, 0x1800 },	\
1649 	{ 0xa438, 0x03d4 },	\
1650 	{ 0xa438, 0x94bc },	\
1651 	{ 0xa438, 0x870c },	\
1652 	{ 0xa438, 0x8380 },	\
1653 	{ 0xa438, 0xd10d },	\
1654 	{ 0xa438, 0xd040 },	\
1655 	{ 0xa438, 0x1000 },	\
1656 	{ 0xa438, 0x07c4 },	\
1657 	{ 0xa438, 0xd700 },	\
1658 	{ 0xa438, 0x5fb4 },	\
1659 	{ 0xa438, 0xa190 },	\
1660 	{ 0xa438, 0xa00a },	\
1661 	{ 0xa438, 0xa280 },	\
1662 	{ 0xa438, 0xa404 },	\
1663 	{ 0xa438, 0xa220 },	\
1664 	{ 0xa438, 0xd130 },	\
1665 	{ 0xa438, 0xd040 },	\
1666 	{ 0xa438, 0x1000 },	\
1667 	{ 0xa438, 0x07c4 },	\
1668 	{ 0xa438, 0xd700 },	\
1669 	{ 0xa438, 0x5fb4 },	\
1670 	{ 0xa438, 0xbb80 },	\
1671 	{ 0xa438, 0xd1c4 },	\
1672 	{ 0xa438, 0xd074 },	\
1673 	{ 0xa438, 0xa301 },	\
1674 	{ 0xa438, 0xd704 },	\
1675 	{ 0xa438, 0x604b },	\
1676 	{ 0xa438, 0xa90c },	\
1677 	{ 0xa438, 0x1800 },	\
1678 	{ 0xa438, 0x0556 },	\
1679 	{ 0xa438, 0xcb92 },	\
1680 	{ 0xa438, 0xd700 },	\
1681 	{ 0xa438, 0x4063 },	\
1682 	{ 0xa438, 0xd116 },	\
1683 	{ 0xa438, 0xf002 },	\
1684 	{ 0xa438, 0xd119 },	\
1685 	{ 0xa438, 0xd040 },	\
1686 	{ 0xa438, 0xd703 },	\
1687 	{ 0xa438, 0x60a0 },	\
1688 	{ 0xa438, 0x6241 },	\
1689 	{ 0xa438, 0x63e2 },	\
1690 	{ 0xa438, 0x6583 },	\
1691 	{ 0xa438, 0xf054 },	\
1692 	{ 0xa438, 0xd701 },	\
1693 	{ 0xa438, 0x611e },	\
1694 	{ 0xa438, 0xd701 },	\
1695 	{ 0xa438, 0x40da },	\
1696 	{ 0xa438, 0x0cf0 },	\
1697 	{ 0xa438, 0x0d10 },	\
1698 	{ 0xa438, 0xa010 },	\
1699 	{ 0xa438, 0x8740 },	\
1700 	{ 0xa438, 0xf02f },	\
1701 	{ 0xa438, 0x0cf0 },	\
1702 	{ 0xa438, 0x0d50 },	\
1703 	{ 0xa438, 0x8010 },	\
1704 	{ 0xa438, 0xa740 },	\
1705 	{ 0xa438, 0xf02a },	\
1706 	{ 0xa438, 0xd701 },	\
1707 	{ 0xa438, 0x611e },	\
1708 	{ 0xa438, 0xd701 },	\
1709 	{ 0xa438, 0x40da },	\
1710 	{ 0xa438, 0x0cf0 },	\
1711 	{ 0xa438, 0x0d20 },	\
1712 	{ 0xa438, 0xa010 },	\
1713 	{ 0xa438, 0x8740 },	\
1714 	{ 0xa438, 0xf021 },	\
1715 	{ 0xa438, 0x0cf0 },	\
1716 	{ 0xa438, 0x0d60 },	\
1717 	{ 0xa438, 0x8010 },	\
1718 	{ 0xa438, 0xa740 },	\
1719 	{ 0xa438, 0xf01c },	\
1720 	{ 0xa438, 0xd701 },	\
1721 	{ 0xa438, 0x611e },	\
1722 	{ 0xa438, 0xd701 },	\
1723 	{ 0xa438, 0x40da },	\
1724 	{ 0xa438, 0x0cf0 },	\
1725 	{ 0xa438, 0x0d30 },	\
1726 	{ 0xa438, 0xa010 },	\
1727 	{ 0xa438, 0x8740 },	\
1728 	{ 0xa438, 0xf013 },	\
1729 	{ 0xa438, 0x0cf0 },	\
1730 	{ 0xa438, 0x0d70 },	\
1731 	{ 0xa438, 0x8010 },	\
1732 	{ 0xa438, 0xa740 },	\
1733 	{ 0xa438, 0xf00e },	\
1734 	{ 0xa438, 0xd701 },	\
1735 	{ 0xa438, 0x611e },	\
1736 	{ 0xa438, 0xd701 },	\
1737 	{ 0xa438, 0x40da },	\
1738 	{ 0xa438, 0x0cf0 },	\
1739 	{ 0xa438, 0x0d40 },	\
1740 	{ 0xa438, 0xa010 },	\
1741 	{ 0xa438, 0x8740 },	\
1742 	{ 0xa438, 0xf005 },	\
1743 	{ 0xa438, 0x0cf0 },	\
1744 	{ 0xa438, 0x0d80 },	\
1745 	{ 0xa438, 0x8010 },	\
1746 	{ 0xa438, 0xa740 },	\
1747 	{ 0xa438, 0x1000 },	\
1748 	{ 0xa438, 0x07e8 },	\
1749 	{ 0xa438, 0xa610 },	\
1750 	{ 0xa438, 0xd704 },	\
1751 	{ 0xa438, 0x405d },	\
1752 	{ 0xa438, 0xa720 },	\
1753 	{ 0xa438, 0xd700 },	\
1754 	{ 0xa438, 0x5ff4 },	\
1755 	{ 0xa438, 0xa008 },	\
1756 	{ 0xa438, 0xd704 },	\
1757 	{ 0xa438, 0x4046 },	\
1758 	{ 0xa438, 0xa002 },	\
1759 	{ 0xa438, 0x1000 },	\
1760 	{ 0xa438, 0x0743 },	\
1761 	{ 0xa438, 0x1000 },	\
1762 	{ 0xa438, 0x07fb },	\
1763 	{ 0xa438, 0xd703 },	\
1764 	{ 0xa438, 0x7f6f },	\
1765 	{ 0xa438, 0x7f4e },	\
1766 	{ 0xa438, 0x7f2d },	\
1767 	{ 0xa438, 0x7f0c },	\
1768 	{ 0xa438, 0x800a },	\
1769 	{ 0xa438, 0x0cf0 },	\
1770 	{ 0xa438, 0x0d00 },	\
1771 	{ 0xa438, 0x1000 },	\
1772 	{ 0xa438, 0x07e8 },	\
1773 	{ 0xa438, 0x8010 },	\
1774 	{ 0xa438, 0xa740 },	\
1775 	{ 0xa438, 0x1000 },	\
1776 	{ 0xa438, 0x0743 },	\
1777 	{ 0xa438, 0xd702 },	\
1778 	{ 0xa438, 0x7fb5 },	\
1779 	{ 0xa438, 0xd701 },	\
1780 	{ 0xa438, 0x3ad4 },	\
1781 	{ 0xa438, 0x0556 },	\
1782 	{ 0xa438, 0x8610 },	\
1783 	{ 0xa438, 0x1800 },	\
1784 	{ 0xa438, 0x066e },	\
1785 	{ 0xa438, 0xd1f5 },	\
1786 	{ 0xa438, 0xd049 },	\
1787 	{ 0xa438, 0x1800 },	\
1788 	{ 0xa438, 0x01ec },	\
1789 	{ 0xa436, 0xa10e },	\
1790 	{ 0xa438, 0x01ea },	\
1791 	{ 0xa436, 0xa10c },	\
1792 	{ 0xa438, 0x06a9 },	\
1793 	{ 0xa436, 0xa10a },	\
1794 	{ 0xa438, 0x078a },	\
1795 	{ 0xa436, 0xa108 },	\
1796 	{ 0xa438, 0x03d2 },	\
1797 	{ 0xa436, 0xa106 },	\
1798 	{ 0xa438, 0x067f },	\
1799 	{ 0xa436, 0xa104 },	\
1800 	{ 0xa438, 0x0665 },	\
1801 	{ 0xa436, 0xa102 },	\
1802 	{ 0xa438, 0x0000 },	\
1803 	{ 0xa436, 0xa100 },	\
1804 	{ 0xa438, 0x0000 },	\
1805 	{ 0xa436, 0xa110 },	\
1806 	{ 0xa438, 0x00fc },	\
1807 	{ 0xa436, 0xb87c },	\
1808 	{ 0xa438, 0x8530 },	\
1809 	{ 0xa436, 0xb87e },	\
1810 	{ 0xa438, 0xaf85 },	\
1811 	{ 0xa438, 0x3caf },	\
1812 	{ 0xa438, 0x8545 },	\
1813 	{ 0xa438, 0xaf85 },	\
1814 	{ 0xa438, 0x45af },	\
1815 	{ 0xa438, 0x8545 },	\
1816 	{ 0xa438, 0xee82 },	\
1817 	{ 0xa438, 0xf900 },	\
1818 	{ 0xa438, 0x0103 },	\
1819 	{ 0xa438, 0xaf03 },	\
1820 	{ 0xa438, 0xb7f8 },	\
1821 	{ 0xa438, 0xe0a6 },	\
1822 	{ 0xa438, 0x00e1 },	\
1823 	{ 0xa438, 0xa601 },	\
1824 	{ 0xa438, 0xef01 },	\
1825 	{ 0xa438, 0x58f0 },	\
1826 	{ 0xa438, 0xa080 },	\
1827 	{ 0xa438, 0x37a1 },	\
1828 	{ 0xa438, 0x8402 },	\
1829 	{ 0xa438, 0xae16 },	\
1830 	{ 0xa438, 0xa185 },	\
1831 	{ 0xa438, 0x02ae },	\
1832 	{ 0xa438, 0x11a1 },	\
1833 	{ 0xa438, 0x8702 },	\
1834 	{ 0xa438, 0xae0c },	\
1835 	{ 0xa438, 0xa188 },	\
1836 	{ 0xa438, 0x02ae },	\
1837 	{ 0xa438, 0x07a1 },	\
1838 	{ 0xa438, 0x8902 },	\
1839 	{ 0xa438, 0xae02 },	\
1840 	{ 0xa438, 0xae1c },	\
1841 	{ 0xa438, 0xe0b4 },	\
1842 	{ 0xa438, 0x62e1 },	\
1843 	{ 0xa438, 0xb463 },	\
1844 	{ 0xa438, 0x6901 },	\
1845 	{ 0xa438, 0xe4b4 },	\
1846 	{ 0xa438, 0x62e5 },	\
1847 	{ 0xa438, 0xb463 },	\
1848 	{ 0xa438, 0xe0b4 },	\
1849 	{ 0xa438, 0x62e1 },	\
1850 	{ 0xa438, 0xb463 },	\
1851 	{ 0xa438, 0x6901 },	\
1852 	{ 0xa438, 0xe4b4 },	\
1853 	{ 0xa438, 0x62e5 },	\
1854 	{ 0xa438, 0xb463 },	\
1855 	{ 0xa438, 0xfc04 },	\
1856 	{ 0xa436, 0xb85e },	\
1857 	{ 0xa438, 0x03b3 },	\
1858 	{ 0xa436, 0xb860 },	\
1859 	{ 0xa438, 0xffff },	\
1860 	{ 0xa436, 0xb862 },	\
1861 	{ 0xa438, 0xffff },	\
1862 	{ 0xa436, 0xb864 },	\
1863 	{ 0xa438, 0xffff },	\
1864 	{ 0xa436, 0xb878 },	\
1865 	{ 0xa438, 0x0001 }
1866