diff options
author | Eliezer Tamir <eliezert@broadcom.com> | 2007-11-15 13:09:02 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:03:53 -0500 |
commit | a2fbb9ea235467b0be6db3cec0132b6c83c0b9fb (patch) | |
tree | f6717161d5f374e84553f579eb3102bcf9ffdc0f | |
parent | faa4f7969f3340606f46515560ce193d9bd74ea4 (diff) |
add bnx2x driver for BCM57710
Signed-off-by: Eliezer Tamir <eliezert@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/Kconfig | 9 | ||||
-rw-r--r-- | drivers/net/Makefile | 1 | ||||
-rw-r--r-- | drivers/net/bnx2x.c | 9065 | ||||
-rw-r--r-- | drivers/net/bnx2x.h | 1071 | ||||
-rw-r--r-- | drivers/net/bnx2x_fw_defs.h | 198 | ||||
-rw-r--r-- | drivers/net/bnx2x_hsi.h | 2176 | ||||
-rw-r--r-- | drivers/net/bnx2x_init.h | 564 | ||||
-rw-r--r-- | drivers/net/bnx2x_init_values.h | 6368 | ||||
-rw-r--r-- | drivers/net/bnx2x_reg.h | 4394 | ||||
-rw-r--r-- | include/linux/pci_ids.h | 1 |
10 files changed, 23847 insertions, 0 deletions
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 7ae9024b5833..b034410b7ab6 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -2597,6 +2597,15 @@ config TEHUTI | |||
2597 | help | 2597 | help |
2598 | Tehuti Networks 10G Ethernet NIC | 2598 | Tehuti Networks 10G Ethernet NIC |
2599 | 2599 | ||
2600 | config BNX2X | ||
2601 | tristate "Broadcom NetXtremeII 10Gb support" | ||
2602 | depends on PCI | ||
2603 | help | ||
2604 | This driver supports Broadcom NetXtremeII 10 gigabit Ethernet cards. | ||
2605 | To compile this driver as a module, choose M here: the module | ||
2606 | will be called bnx2x. This is recommended. | ||
2607 | |||
2608 | |||
2600 | endif # NETDEV_10000 | 2609 | endif # NETDEV_10000 |
2601 | 2610 | ||
2602 | source "drivers/net/tokenring/Kconfig" | 2611 | source "drivers/net/tokenring/Kconfig" |
diff --git a/drivers/net/Makefile b/drivers/net/Makefile index 5dd2d5eb1918..5e36f203ce5c 100644 --- a/drivers/net/Makefile +++ b/drivers/net/Makefile | |||
@@ -65,6 +65,7 @@ obj-$(CONFIG_STNIC) += stnic.o 8390.o | |||
65 | obj-$(CONFIG_FEALNX) += fealnx.o | 65 | obj-$(CONFIG_FEALNX) += fealnx.o |
66 | obj-$(CONFIG_TIGON3) += tg3.o | 66 | obj-$(CONFIG_TIGON3) += tg3.o |
67 | obj-$(CONFIG_BNX2) += bnx2.o | 67 | obj-$(CONFIG_BNX2) += bnx2.o |
68 | obj-$(CONFIG_BNX2X) += bnx2x.o | ||
68 | spidernet-y += spider_net.o spider_net_ethtool.o | 69 | spidernet-y += spider_net.o spider_net_ethtool.o |
69 | obj-$(CONFIG_SPIDER_NET) += spidernet.o sungem_phy.o | 70 | obj-$(CONFIG_SPIDER_NET) += spidernet.o sungem_phy.o |
70 | obj-$(CONFIG_GELIC_NET) += ps3_gelic.o | 71 | obj-$(CONFIG_GELIC_NET) += ps3_gelic.o |
diff --git a/drivers/net/bnx2x.c b/drivers/net/bnx2x.c new file mode 100644 index 000000000000..e8c5754798ea --- /dev/null +++ b/drivers/net/bnx2x.c | |||
@@ -0,0 +1,9065 @@ | |||
1 | /* bnx2x.c: Broadcom Everest network driver. | ||
2 | * | ||
3 | * Copyright (c) 2007 Broadcom Corporation | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation. | ||
8 | * | ||
9 | * Written by: Eliezer Tamir <eliezert@broadcom.com> | ||
10 | * Based on code from Michael Chan's bnx2 driver | ||
11 | * UDP CSUM errata workaround by Arik Gendelman | ||
12 | * Slowpath rework by Vladislav Zolotarov | ||
13 | * Statistics and Link managment by Yitchak Gertner | ||
14 | * | ||
15 | */ | ||
16 | |||
17 | /* define this to make the driver freeze on error | ||
18 | * to allow getting debug info | ||
19 | * (you will need to reboot afterwords) | ||
20 | */ | ||
21 | /*#define BNX2X_STOP_ON_ERROR*/ | ||
22 | |||
23 | #include <linux/module.h> | ||
24 | #include <linux/moduleparam.h> | ||
25 | #include <linux/kernel.h> | ||
26 | #include <linux/device.h> /* for dev_info() */ | ||
27 | #include <linux/timer.h> | ||
28 | #include <linux/errno.h> | ||
29 | #include <linux/ioport.h> | ||
30 | #include <linux/slab.h> | ||
31 | #include <linux/vmalloc.h> | ||
32 | #include <linux/interrupt.h> | ||
33 | #include <linux/pci.h> | ||
34 | #include <linux/init.h> | ||
35 | #include <linux/netdevice.h> | ||
36 | #include <linux/etherdevice.h> | ||
37 | #include <linux/skbuff.h> | ||
38 | #include <linux/dma-mapping.h> | ||
39 | #include <linux/bitops.h> | ||
40 | #include <linux/irq.h> | ||
41 | #include <linux/delay.h> | ||
42 | #include <asm/byteorder.h> | ||
43 | #include <linux/time.h> | ||
44 | #include <linux/ethtool.h> | ||
45 | #include <linux/mii.h> | ||
46 | #ifdef NETIF_F_HW_VLAN_TX | ||
47 | #include <linux/if_vlan.h> | ||
48 | #define BCM_VLAN 1 | ||
49 | #endif | ||
50 | #include <net/ip.h> | ||
51 | #include <net/tcp.h> | ||
52 | #include <net/checksum.h> | ||
53 | #include <linux/workqueue.h> | ||
54 | #include <linux/crc32.h> | ||
55 | #include <linux/prefetch.h> | ||
56 | #include <linux/zlib.h> | ||
57 | #include <linux/version.h> | ||
58 | #include <linux/io.h> | ||
59 | |||
60 | #include "bnx2x_reg.h" | ||
61 | #include "bnx2x_fw_defs.h" | ||
62 | #include "bnx2x_hsi.h" | ||
63 | #include "bnx2x.h" | ||
64 | #include "bnx2x_init.h" | ||
65 | |||
66 | #define DRV_MODULE_VERSION "0.40.15" | ||
67 | #define DRV_MODULE_RELDATE "$DateTime: 2007/11/15 07:28:37 $" | ||
68 | #define BNX2X_BC_VER 0x040009 | ||
69 | |||
70 | /* Time in jiffies before concluding the transmitter is hung. */ | ||
71 | #define TX_TIMEOUT (5*HZ) | ||
72 | |||
73 | static const char version[] __devinitdata = | ||
74 | "Broadcom NetXtreme II 577xx 10Gigabit Ethernet Driver " | ||
75 | DRV_MODULE_NAME " " DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; | ||
76 | |||
77 | MODULE_AUTHOR("Eliezer Tamir <eliezert@broadcom.com>"); | ||
78 | MODULE_DESCRIPTION("Broadcom NetXtreme II BCM57710 Driver"); | ||
79 | MODULE_LICENSE("GPL"); | ||
80 | MODULE_VERSION(DRV_MODULE_VERSION); | ||
81 | MODULE_INFO(cvs_version, "$Revision: #356 $"); | ||
82 | |||
83 | static int use_inta; | ||
84 | static int poll; | ||
85 | static int onefunc; | ||
86 | static int nomcp; | ||
87 | static int debug; | ||
88 | static int use_multi; | ||
89 | |||
90 | module_param(use_inta, int, 0); | ||
91 | module_param(poll, int, 0); | ||
92 | module_param(onefunc, int, 0); | ||
93 | module_param(debug, int, 0); | ||
94 | MODULE_PARM_DESC(use_inta, "use INT#A instead of MSI-X"); | ||
95 | MODULE_PARM_DESC(poll, "use polling (for debug)"); | ||
96 | MODULE_PARM_DESC(onefunc, "enable only first function"); | ||
97 | MODULE_PARM_DESC(nomcp, "ignore managment CPU (Implies onefunc)"); | ||
98 | MODULE_PARM_DESC(debug, "defualt debug msglevel"); | ||
99 | |||
100 | #ifdef BNX2X_MULTI | ||
101 | module_param(use_multi, int, 0); | ||
102 | MODULE_PARM_DESC(use_multi, "use per-CPU queues"); | ||
103 | #endif | ||
104 | |||
105 | enum bnx2x_board_type { | ||
106 | BCM57710 = 0, | ||
107 | }; | ||
108 | |||
109 | /* indexed by board_t, above */ | ||
110 | static const struct { | ||
111 | char *name; | ||
112 | } board_info[] __devinitdata = { | ||
113 | { "Broadcom NetXtreme II BCM57710 XGb" } | ||
114 | }; | ||
115 | |||
116 | static const struct pci_device_id bnx2x_pci_tbl[] = { | ||
117 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_57710, | ||
118 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, BCM57710 }, | ||
119 | { 0 } | ||
120 | }; | ||
121 | |||
122 | MODULE_DEVICE_TABLE(pci, bnx2x_pci_tbl); | ||
123 | |||
124 | /**************************************************************************** | ||
125 | * General service functions | ||
126 | ****************************************************************************/ | ||
127 | |||
128 | /* used only at init | ||
129 | * locking is done by mcp | ||
130 | */ | ||
131 | static void bnx2x_reg_wr_ind(struct bnx2x *bp, u32 addr, u32 val) | ||
132 | { | ||
133 | pci_write_config_dword(bp->pdev, PCICFG_GRC_ADDRESS, addr); | ||
134 | pci_write_config_dword(bp->pdev, PCICFG_GRC_DATA, val); | ||
135 | pci_write_config_dword(bp->pdev, PCICFG_GRC_ADDRESS, | ||
136 | PCICFG_VENDOR_ID_OFFSET); | ||
137 | } | ||
138 | |||
139 | #ifdef BNX2X_IND_RD | ||
140 | static u32 bnx2x_reg_rd_ind(struct bnx2x *bp, u32 addr) | ||
141 | { | ||
142 | u32 val; | ||
143 | |||
144 | pci_write_config_dword(bp->pdev, PCICFG_GRC_ADDRESS, addr); | ||
145 | pci_read_config_dword(bp->pdev, PCICFG_GRC_DATA, &val); | ||
146 | pci_write_config_dword(bp->pdev, PCICFG_GRC_ADDRESS, | ||
147 | PCICFG_VENDOR_ID_OFFSET); | ||
148 | |||
149 | return val; | ||
150 | } | ||
151 | #endif | ||
152 | |||
153 | static const u32 dmae_reg_go_c[] = { | ||
154 | DMAE_REG_GO_C0, DMAE_REG_GO_C1, DMAE_REG_GO_C2, DMAE_REG_GO_C3, | ||
155 | DMAE_REG_GO_C4, DMAE_REG_GO_C5, DMAE_REG_GO_C6, DMAE_REG_GO_C7, | ||
156 | DMAE_REG_GO_C8, DMAE_REG_GO_C9, DMAE_REG_GO_C10, DMAE_REG_GO_C11, | ||
157 | DMAE_REG_GO_C12, DMAE_REG_GO_C13, DMAE_REG_GO_C14, DMAE_REG_GO_C15 | ||
158 | }; | ||
159 | |||
160 | /* copy command into DMAE command memory and set DMAE command go */ | ||
161 | static void bnx2x_post_dmae(struct bnx2x *bp, struct dmae_command *dmae, | ||
162 | int idx) | ||
163 | { | ||
164 | u32 cmd_offset; | ||
165 | int i; | ||
166 | |||
167 | cmd_offset = (DMAE_REG_CMD_MEM + sizeof(struct dmae_command) * idx); | ||
168 | for (i = 0; i < (sizeof(struct dmae_command)/4); i++) { | ||
169 | REG_WR(bp, cmd_offset + i*4, *(((u32 *)dmae) + i)); | ||
170 | |||
171 | /* DP(NETIF_MSG_DMAE, "DMAE cmd[%d].%d (0x%08x) : 0x%08x\n", | ||
172 | idx, i, cmd_offset + i*4, *(((u32 *)dmae) + i)); */ | ||
173 | } | ||
174 | REG_WR(bp, dmae_reg_go_c[idx], 1); | ||
175 | } | ||
176 | |||
177 | static void bnx2x_write_dmae(struct bnx2x *bp, dma_addr_t dma_addr, | ||
178 | u32 dst_addr, u32 len32) | ||
179 | { | ||
180 | struct dmae_command *dmae = &bp->dmae; | ||
181 | int port = bp->port; | ||
182 | u32 *wb_comp = bnx2x_sp(bp, wb_comp); | ||
183 | int timeout = 200; | ||
184 | |||
185 | memset(dmae, 0, sizeof(struct dmae_command)); | ||
186 | |||
187 | dmae->opcode = (DMAE_CMD_SRC_PCI | DMAE_CMD_DST_GRC | | ||
188 | DMAE_CMD_C_DST_PCI | DMAE_CMD_C_ENABLE | | ||
189 | DMAE_CMD_SRC_RESET | DMAE_CMD_DST_RESET | | ||
190 | #ifdef __BIG_ENDIAN | ||
191 | DMAE_CMD_ENDIANITY_B_DW_SWAP | | ||
192 | #else | ||
193 | DMAE_CMD_ENDIANITY_DW_SWAP | | ||
194 | #endif | ||
195 | (port ? DMAE_CMD_PORT_1 : DMAE_CMD_PORT_0)); | ||
196 | dmae->src_addr_lo = U64_LO(dma_addr); | ||
197 | dmae->src_addr_hi = U64_HI(dma_addr); | ||
198 | dmae->dst_addr_lo = dst_addr >> 2; | ||
199 | dmae->dst_addr_hi = 0; | ||
200 | dmae->len = len32; | ||
201 | dmae->comp_addr_lo = U64_LO(bnx2x_sp_mapping(bp, wb_comp)); | ||
202 | dmae->comp_addr_hi = U64_HI(bnx2x_sp_mapping(bp, wb_comp)); | ||
203 | dmae->comp_val = BNX2X_WB_COMP_VAL; | ||
204 | |||
205 | /* | ||
206 | DP(NETIF_MSG_DMAE, "dmae: opcode 0x%08x\n" | ||
207 | DP_LEVEL "src_addr [%x:%08x] len [%d *4] " | ||
208 | "dst_addr [%x:%08x (%08x)]\n" | ||
209 | DP_LEVEL "comp_addr [%x:%08x] comp_val 0x%08x\n", | ||
210 | dmae->opcode, dmae->src_addr_hi, dmae->src_addr_lo, | ||
211 | dmae->len, dmae->dst_addr_hi, dmae->dst_addr_lo, dst_addr, | ||
212 | dmae->comp_addr_hi, dmae->comp_addr_lo, dmae->comp_val); | ||
213 | */ | ||
214 | /* | ||
215 | DP(NETIF_MSG_DMAE, "data [0x%08x 0x%08x 0x%08x 0x%08x]\n", | ||
216 | bp->slowpath->wb_data[0], bp->slowpath->wb_data[1], | ||
217 | bp->slowpath->wb_data[2], bp->slowpath->wb_data[3]); | ||
218 | */ | ||
219 | |||
220 | *wb_comp = 0; | ||
221 | |||
222 | bnx2x_post_dmae(bp, dmae, port * 8); | ||
223 | |||
224 | udelay(5); | ||
225 | /* adjust timeout for emulation/FPGA */ | ||
226 | if (CHIP_REV_IS_SLOW(bp)) | ||
227 | timeout *= 100; | ||
228 | while (*wb_comp != BNX2X_WB_COMP_VAL) { | ||
229 | /* DP(NETIF_MSG_DMAE, "wb_comp 0x%08x\n", *wb_comp); */ | ||
230 | udelay(5); | ||
231 | if (!timeout) { | ||
232 | BNX2X_ERR("dmae timeout!\n"); | ||
233 | break; | ||
234 | } | ||
235 | timeout--; | ||
236 | } | ||
237 | } | ||
238 | |||
239 | #ifdef BNX2X_DMAE_RD | ||
240 | static void bnx2x_read_dmae(struct bnx2x *bp, u32 src_addr, u32 len32) | ||
241 | { | ||
242 | struct dmae_command *dmae = &bp->dmae; | ||
243 | int port = bp->port; | ||
244 | u32 *wb_comp = bnx2x_sp(bp, wb_comp); | ||
245 | int timeout = 200; | ||
246 | |||
247 | memset(bnx2x_sp(bp, wb_data[0]), 0, sizeof(u32) * 4); | ||
248 | memset(dmae, 0, sizeof(struct dmae_command)); | ||
249 | |||
250 | dmae->opcode = (DMAE_CMD_SRC_GRC | DMAE_CMD_DST_PCI | | ||
251 | DMAE_CMD_C_DST_PCI | DMAE_CMD_C_ENABLE | | ||
252 | DMAE_CMD_SRC_RESET | DMAE_CMD_DST_RESET | | ||
253 | #ifdef __BIG_ENDIAN | ||
254 | DMAE_CMD_ENDIANITY_B_DW_SWAP | | ||
255 | #else | ||
256 | DMAE_CMD_ENDIANITY_DW_SWAP | | ||
257 | #endif | ||
258 | (port ? DMAE_CMD_PORT_1 : DMAE_CMD_PORT_0)); | ||
259 | dmae->src_addr_lo = src_addr >> 2; | ||
260 | dmae->src_addr_hi = 0; | ||
261 | dmae->dst_addr_lo = U64_LO(bnx2x_sp_mapping(bp, wb_data)); | ||
262 | dmae->dst_addr_hi = U64_HI(bnx2x_sp_mapping(bp, wb_data)); | ||
263 | dmae->len = len32; | ||
264 | dmae->comp_addr_lo = U64_LO(bnx2x_sp_mapping(bp, wb_comp)); | ||
265 | dmae->comp_addr_hi = U64_HI(bnx2x_sp_mapping(bp, wb_comp)); | ||
266 | dmae->comp_val = BNX2X_WB_COMP_VAL; | ||
267 | |||
268 | /* | ||
269 | DP(NETIF_MSG_DMAE, "dmae: opcode 0x%08x\n" | ||
270 | DP_LEVEL "src_addr [%x:%08x] len [%d *4] " | ||
271 | "dst_addr [%x:%08x (%08x)]\n" | ||
272 | DP_LEVEL "comp_addr [%x:%08x] comp_val 0x%08x\n", | ||
273 | dmae->opcode, dmae->src_addr_hi, dmae->src_addr_lo, | ||
274 | dmae->len, dmae->dst_addr_hi, dmae->dst_addr_lo, src_addr, | ||
275 | dmae->comp_addr_hi, dmae->comp_addr_lo, dmae->comp_val); | ||
276 | */ | ||
277 | |||
278 | *wb_comp = 0; | ||
279 | |||
280 | bnx2x_post_dmae(bp, dmae, port * 8); | ||
281 | |||
282 | udelay(5); | ||
283 | while (*wb_comp != BNX2X_WB_COMP_VAL) { | ||
284 | udelay(5); | ||
285 | if (!timeout) { | ||
286 | BNX2X_ERR("dmae timeout!\n"); | ||
287 | break; | ||
288 | } | ||
289 | timeout--; | ||
290 | } | ||
291 | /* | ||
292 | DP(NETIF_MSG_DMAE, "data [0x%08x 0x%08x 0x%08x 0x%08x]\n", | ||
293 | bp->slowpath->wb_data[0], bp->slowpath->wb_data[1], | ||
294 | bp->slowpath->wb_data[2], bp->slowpath->wb_data[3]); | ||
295 | */ | ||
296 | } | ||
297 | #endif | ||
298 | |||
299 | static int bnx2x_mc_assert(struct bnx2x *bp) | ||
300 | { | ||
301 | int i, j; | ||
302 | int rc = 0; | ||
303 | char last_idx; | ||
304 | const char storm[] = {"XTCU"}; | ||
305 | const u32 intmem_base[] = { | ||
306 | BAR_XSTRORM_INTMEM, | ||
307 | BAR_TSTRORM_INTMEM, | ||
308 | BAR_CSTRORM_INTMEM, | ||
309 | BAR_USTRORM_INTMEM | ||
310 | }; | ||
311 | |||
312 | /* Go through all instances of all SEMIs */ | ||
313 | for (i = 0; i < 4; i++) { | ||
314 | last_idx = REG_RD8(bp, XSTORM_ASSERT_LIST_INDEX_OFFSET + | ||
315 | intmem_base[i]); | ||
316 | BNX2X_ERR("DATA %cSTORM_ASSERT_LIST_INDEX 0x%x\n", | ||
317 | storm[i], last_idx); | ||
318 | |||
319 | /* print the asserts */ | ||
320 | for (j = 0; j < STROM_ASSERT_ARRAY_SIZE; j++) { | ||
321 | u32 row0, row1, row2, row3; | ||
322 | |||
323 | row0 = REG_RD(bp, XSTORM_ASSERT_LIST_OFFSET(j) + | ||
324 | intmem_base[i]); | ||
325 | row1 = REG_RD(bp, XSTORM_ASSERT_LIST_OFFSET(j) + 4 + | ||
326 | intmem_base[i]); | ||
327 | row2 = REG_RD(bp, XSTORM_ASSERT_LIST_OFFSET(j) + 8 + | ||
328 | intmem_base[i]); | ||
329 | row3 = REG_RD(bp, XSTORM_ASSERT_LIST_OFFSET(j) + 12 + | ||
330 | intmem_base[i]); | ||
331 | |||
332 | if (row0 != COMMON_ASM_INVALID_ASSERT_OPCODE) { | ||
333 | BNX2X_ERR("DATA %cSTORM_ASSERT_INDEX 0x%x =" | ||
334 | " 0x%08x 0x%08x 0x%08x 0x%08x\n", | ||
335 | storm[i], j, row3, row2, row1, row0); | ||
336 | rc++; | ||
337 | } else { | ||
338 | break; | ||
339 | } | ||
340 | } | ||
341 | } | ||
342 | return rc; | ||
343 | } | ||
344 | static void bnx2x_fw_dump(struct bnx2x *bp) | ||
345 | { | ||
346 | u32 mark, offset; | ||
347 | u32 data[9]; | ||
348 | int word; | ||
349 | |||
350 | mark = REG_RD(bp, MCP_REG_MCPR_SCRATCH + 0xf104); | ||
351 | printk(KERN_ERR PFX "begin fw dump (mark 0x%x)\n", mark); | ||
352 | |||
353 | for (offset = mark - 0x08000000; offset <= 0xF900; offset += 0x8*4) { | ||
354 | for (word = 0; word < 8; word++) | ||
355 | data[word] = htonl(REG_RD(bp, MCP_REG_MCPR_SCRATCH + | ||
356 | offset + 4*word)); | ||
357 | data[8] = 0x0; | ||
358 | printk(KERN_ERR PFX "%s", (char *)data); | ||
359 | } | ||
360 | for (offset = 0xF108; offset <= mark - 0x08000000; offset += 0x8*4) { | ||
361 | for (word = 0; word < 8; word++) | ||
362 | data[word] = htonl(REG_RD(bp, MCP_REG_MCPR_SCRATCH + | ||
363 | offset + 4*word)); | ||
364 | data[8] = 0x0; | ||
365 | printk(KERN_ERR PFX "%s", (char *)data); | ||
366 | } | ||
367 | printk("\n" KERN_ERR PFX "end of fw dump\n"); | ||
368 | } | ||
369 | |||
370 | static void bnx2x_panic_dump(struct bnx2x *bp) | ||
371 | { | ||
372 | int i; | ||
373 | u16 j, start, end; | ||
374 | |||
375 | BNX2X_ERR("begin crash dump -----------------\n"); | ||
376 | |||
377 | for_each_queue(bp, i) { | ||
378 | struct bnx2x_fastpath *fp = &bp->fp[i]; | ||
379 | struct eth_tx_db_data *hw_prods = fp->hw_tx_prods; | ||
380 | |||
381 | BNX2X_ERR("queue[%d]: tx_pkt_prod(%x) tx_pkt_cons(%x)" | ||
382 | " tx_bd_prod(%x) tx_bd_cons(%x) *tx_cons_sb(%x)" | ||
383 | " *rx_cons_sb(%x) rx_comp_prod(%x)" | ||
384 | " rx_comp_cons(%x) fp_c_idx(%x) fp_u_idx(%x)" | ||
385 | " bd data(%x,%x)\n", | ||
386 | i, fp->tx_pkt_prod, fp->tx_pkt_cons, fp->tx_bd_prod, | ||
387 | fp->tx_bd_cons, *fp->tx_cons_sb, *fp->rx_cons_sb, | ||
388 | fp->rx_comp_prod, fp->rx_comp_cons, fp->fp_c_idx, | ||
389 | fp->fp_u_idx, hw_prods->packets_prod, | ||
390 | hw_prods->bds_prod); | ||
391 | |||
392 | start = TX_BD(le16_to_cpu(*fp->tx_cons_sb) - 10); | ||
393 | end = TX_BD(le16_to_cpu(*fp->tx_cons_sb) + 245); | ||
394 | for (j = start; j < end; j++) { | ||
395 | struct sw_tx_bd *sw_bd = &fp->tx_buf_ring[j]; | ||
396 | |||
397 | BNX2X_ERR("packet[%x]=[%p,%x]\n", j, | ||
398 | sw_bd->skb, sw_bd->first_bd); | ||
399 | } | ||
400 | |||
401 | start = TX_BD(fp->tx_bd_cons - 10); | ||
402 | end = TX_BD(fp->tx_bd_cons + 254); | ||
403 | for (j = start; j < end; j++) { | ||
404 | u32 *tx_bd = (u32 *)&fp->tx_desc_ring[j]; | ||
405 | |||
406 | BNX2X_ERR("tx_bd[%x]=[%x:%x:%x:%x]\n", | ||
407 | j, tx_bd[0], tx_bd[1], tx_bd[2], tx_bd[3]); | ||
408 | } | ||
409 | |||
410 | start = RX_BD(le16_to_cpu(*fp->rx_cons_sb) - 10); | ||
411 | end = RX_BD(le16_to_cpu(*fp->rx_cons_sb) + 503); | ||
412 | for (j = start; j < end; j++) { | ||
413 | u32 *rx_bd = (u32 *)&fp->rx_desc_ring[j]; | ||
414 | struct sw_rx_bd *sw_bd = &fp->rx_buf_ring[j]; | ||
415 | |||
416 | BNX2X_ERR("rx_bd[%x]=[%x:%x] sw_bd=[%p]\n", | ||
417 | j, rx_bd[0], rx_bd[1], sw_bd->skb); | ||
418 | } | ||
419 | |||
420 | start = RCQ_BD(fp->rx_comp_cons - 10); | ||
421 | end = RCQ_BD(fp->rx_comp_cons + 503); | ||
422 | for (j = start; j < end; j++) { | ||
423 | u32 *cqe = (u32 *)&fp->rx_comp_ring[j]; | ||
424 | |||
425 | BNX2X_ERR("cqe[%x]=[%x:%x:%x:%x]\n", | ||
426 | j, cqe[0], cqe[1], cqe[2], cqe[3]); | ||
427 | } | ||
428 | } | ||
429 | |||
430 | BNX2X_ERR("def_c_idx(%u) def_u_idx(%u) def_t_idx(%u)" | ||
431 | " def_x_idx(%u) def_att_idx(%u) attn_state(%u)" | ||
432 | " spq_prod_idx(%u)\n", | ||
433 | bp->def_c_idx, bp->def_u_idx, bp->def_t_idx, bp->def_x_idx, | ||
434 | bp->def_att_idx, bp->attn_state, bp->spq_prod_idx); | ||
435 | |||
436 | |||
437 | bnx2x_mc_assert(bp); | ||
438 | BNX2X_ERR("end crash dump -----------------\n"); | ||
439 | |||
440 | bp->stats_state = STATS_STATE_DISABLE; | ||
441 | DP(BNX2X_MSG_STATS, "stats_state - DISABLE\n"); | ||
442 | } | ||
443 | |||
444 | static void bnx2x_enable_int(struct bnx2x *bp) | ||
445 | { | ||
446 | int port = bp->port; | ||
447 | u32 addr = port ? HC_REG_CONFIG_1 : HC_REG_CONFIG_0; | ||
448 | u32 val = REG_RD(bp, addr); | ||
449 | int msix = (bp->flags & USING_MSIX_FLAG) ? 1 : 0; | ||
450 | |||
451 | if (msix) { | ||
452 | val &= ~HC_CONFIG_0_REG_SINGLE_ISR_EN_0; | ||
453 | val |= (HC_CONFIG_0_REG_MSI_MSIX_INT_EN_0 | | ||
454 | HC_CONFIG_0_REG_ATTN_BIT_EN_0); | ||
455 | } else { | ||
456 | val |= (HC_CONFIG_0_REG_SINGLE_ISR_EN_0 | | ||
457 | HC_CONFIG_0_REG_INT_LINE_EN_0 | | ||
458 | HC_CONFIG_0_REG_ATTN_BIT_EN_0); | ||
459 | val &= ~HC_CONFIG_0_REG_MSI_MSIX_INT_EN_0; | ||
460 | } | ||
461 | |||
462 | DP(NETIF_MSG_INTR, "write %x to HC %d (addr 0x%x) msi %d\n", | ||
463 | val, port, addr, msix); | ||
464 | |||
465 | REG_WR(bp, addr, val); | ||
466 | } | ||
467 | |||
468 | static void bnx2x_disable_int(struct bnx2x *bp) | ||
469 | { | ||
470 | int port = bp->port; | ||
471 | u32 addr = port ? HC_REG_CONFIG_1 : HC_REG_CONFIG_0; | ||
472 | u32 val = REG_RD(bp, addr); | ||
473 | |||
474 | val &= ~(HC_CONFIG_0_REG_SINGLE_ISR_EN_0 | | ||
475 | HC_CONFIG_0_REG_MSI_MSIX_INT_EN_0 | | ||
476 | HC_CONFIG_0_REG_INT_LINE_EN_0 | | ||
477 | HC_CONFIG_0_REG_ATTN_BIT_EN_0); | ||
478 | |||
479 | DP(NETIF_MSG_INTR, "write %x to HC %d (addr 0x%x)\n", | ||
480 | val, port, addr); | ||
481 | |||
482 | REG_WR(bp, addr, val); | ||
483 | if (REG_RD(bp, addr) != val) | ||
484 | BNX2X_ERR("BUG! proper val not read from IGU!\n"); | ||
485 | } | ||
486 | |||
487 | static void bnx2x_disable_int_sync(struct bnx2x *bp) | ||
488 | { | ||
489 | |||
490 | int msix = (bp->flags & USING_MSIX_FLAG) ? 1 : 0; | ||
491 | int i; | ||
492 | |||
493 | atomic_inc(&bp->intr_sem); | ||
494 | /* prevent the HW from sending interrupts*/ | ||
495 | bnx2x_disable_int(bp); | ||
496 | |||
497 | /* make sure all ISRs are done */ | ||
498 | if (msix) { | ||
499 | for_each_queue(bp, i) | ||
500 | synchronize_irq(bp->msix_table[i].vector); | ||
501 | |||
502 | /* one more for the Slow Path IRQ */ | ||
503 | synchronize_irq(bp->msix_table[i].vector); | ||
504 | } else | ||
505 | synchronize_irq(bp->pdev->irq); | ||
506 | |||
507 | /* make sure sp_task is not running */ | ||
508 | cancel_work_sync(&bp->sp_task); | ||
509 | |||
510 | } | ||
511 | |||
512 | /* fast path code */ | ||
513 | |||
514 | /* | ||
515 | * general service functions | ||
516 | */ | ||
517 | |||
518 | static inline void bnx2x_ack_sb(struct bnx2x *bp, u8 id, | ||
519 | u8 storm, u16 index, u8 op, u8 update) | ||
520 | { | ||
521 | u32 igu_addr = (IGU_ADDR_INT_ACK + IGU_PORT_BASE * bp->port) * 8; | ||
522 | struct igu_ack_register igu_ack; | ||
523 | |||
524 | igu_ack.status_block_index = index; | ||
525 | igu_ack.sb_id_and_flags = | ||
526 | ((id << IGU_ACK_REGISTER_STATUS_BLOCK_ID_SHIFT) | | ||
527 | (storm << IGU_ACK_REGISTER_STORM_ID_SHIFT) | | ||
528 | (update << IGU_ACK_REGISTER_UPDATE_INDEX_SHIFT) | | ||
529 | (op << IGU_ACK_REGISTER_INTERRUPT_MODE_SHIFT)); | ||
530 | |||
531 | /* DP(NETIF_MSG_INTR, "write 0x%08x to IGU addr 0x%x\n", | ||
532 | (*(u32 *)&igu_ack), BAR_IGU_INTMEM + igu_addr); */ | ||
533 | REG_WR(bp, BAR_IGU_INTMEM + igu_addr, (*(u32 *)&igu_ack)); | ||
534 | } | ||
535 | |||
536 | static inline u16 bnx2x_update_fpsb_idx(struct bnx2x_fastpath *fp) | ||
537 | { | ||
538 | struct host_status_block *fpsb = fp->status_blk; | ||
539 | u16 rc = 0; | ||
540 | |||
541 | barrier(); /* status block is written to by the chip */ | ||
542 | if (fp->fp_c_idx != fpsb->c_status_block.status_block_index) { | ||
543 | fp->fp_c_idx = fpsb->c_status_block.status_block_index; | ||
544 | rc |= 1; | ||
545 | } | ||
546 | if (fp->fp_u_idx != fpsb->u_status_block.status_block_index) { | ||
547 | fp->fp_u_idx = fpsb->u_status_block.status_block_index; | ||
548 | rc |= 2; | ||
549 | } | ||
550 | return rc; | ||
551 | } | ||
552 | |||
553 | static inline int bnx2x_has_work(struct bnx2x_fastpath *fp) | ||
554 | { | ||
555 | u16 rx_cons_sb = le16_to_cpu(*fp->rx_cons_sb); | ||
556 | |||
557 | if ((rx_cons_sb & MAX_RCQ_DESC_CNT) == MAX_RCQ_DESC_CNT) | ||
558 | rx_cons_sb++; | ||
559 | |||
560 | if ((rx_cons_sb != fp->rx_comp_cons) || | ||
561 | (le16_to_cpu(*fp->tx_cons_sb) != fp->tx_pkt_cons)) | ||
562 | return 1; | ||
563 | |||
564 | return 0; | ||
565 | } | ||
566 | |||
567 | static u16 bnx2x_ack_int(struct bnx2x *bp) | ||
568 | { | ||
569 | u32 igu_addr = (IGU_ADDR_SIMD_MASK + IGU_PORT_BASE * bp->port) * 8; | ||
570 | u32 result = REG_RD(bp, BAR_IGU_INTMEM + igu_addr); | ||
571 | |||
572 | /* DP(NETIF_MSG_INTR, "read 0x%08x from IGU addr 0x%x\n", | ||
573 | result, BAR_IGU_INTMEM + igu_addr); */ | ||
574 | |||
575 | #ifdef IGU_DEBUG | ||
576 | #warning IGU_DEBUG active | ||
577 | if (result == 0) { | ||
578 | BNX2X_ERR("read %x from IGU\n", result); | ||
579 | REG_WR(bp, TM_REG_TIMER_SOFT_RST, 0); | ||
580 | } | ||
581 | #endif | ||
582 | return result; | ||
583 | } | ||
584 | |||
585 | |||
586 | /* | ||
587 | * fast path service functions | ||
588 | */ | ||
589 | |||
590 | /* free skb in the packet ring at pos idx | ||
591 | * return idx of last bd freed | ||
592 | */ | ||
593 | static u16 bnx2x_free_tx_pkt(struct bnx2x *bp, struct bnx2x_fastpath *fp, | ||
594 | u16 idx) | ||
595 | { | ||
596 | struct sw_tx_bd *tx_buf = &fp->tx_buf_ring[idx]; | ||
597 | struct eth_tx_bd *tx_bd; | ||
598 | struct sk_buff *skb = tx_buf->skb; | ||
599 | u16 bd_idx = tx_buf->first_bd; | ||
600 | int nbd; | ||
601 | |||
602 | DP(BNX2X_MSG_OFF, "pkt_idx %d buff @(%p)->skb %p\n", | ||
603 | idx, tx_buf, skb); | ||
604 | |||
605 | /* unmap first bd */ | ||
606 | DP(BNX2X_MSG_OFF, "free bd_idx %d\n", bd_idx); | ||
607 | tx_bd = &fp->tx_desc_ring[bd_idx]; | ||
608 | pci_unmap_single(bp->pdev, BD_UNMAP_ADDR(tx_bd), | ||
609 | BD_UNMAP_LEN(tx_bd), PCI_DMA_TODEVICE); | ||
610 | |||
611 | nbd = le16_to_cpu(tx_bd->nbd) - 1; | ||
612 | #ifdef BNX2X_STOP_ON_ERROR | ||
613 | if (nbd > (MAX_SKB_FRAGS + 2)) { | ||
614 | BNX2X_ERR("bad nbd!\n"); | ||
615 | bnx2x_panic(); | ||
616 | } | ||
617 | #endif | ||
618 | |||
619 | /* Skip a parse bd and the TSO split header bd | ||
620 | since they have no mapping */ | ||
621 | if (nbd) | ||
622 | bd_idx = TX_BD(NEXT_TX_IDX(bd_idx)); | ||
623 | |||
624 | if (tx_bd->bd_flags.as_bitfield & (ETH_TX_BD_FLAGS_IP_CSUM | | ||
625 | ETH_TX_BD_FLAGS_TCP_CSUM | | ||
626 | ETH_TX_BD_FLAGS_SW_LSO)) { | ||
627 | if (--nbd) | ||
628 | bd_idx = TX_BD(NEXT_TX_IDX(bd_idx)); | ||
629 | tx_bd = &fp->tx_desc_ring[bd_idx]; | ||
630 | /* is this a TSO split header bd? */ | ||
631 | if (tx_bd->bd_flags.as_bitfield & ETH_TX_BD_FLAGS_SW_LSO) { | ||
632 | if (--nbd) | ||
633 | bd_idx = TX_BD(NEXT_TX_IDX(bd_idx)); | ||
634 | } | ||
635 | } | ||
636 | |||
637 | /* now free frags */ | ||
638 | while (nbd > 0) { | ||
639 | |||
640 | DP(BNX2X_MSG_OFF, "free frag bd_idx %d\n", bd_idx); | ||
641 | tx_bd = &fp->tx_desc_ring[bd_idx]; | ||
642 | pci_unmap_page(bp->pdev, BD_UNMAP_ADDR(tx_bd), | ||
643 | BD_UNMAP_LEN(tx_bd), PCI_DMA_TODEVICE); | ||
644 | if (--nbd) | ||
645 | bd_idx = TX_BD(NEXT_TX_IDX(bd_idx)); | ||
646 | } | ||
647 | |||
648 | /* release skb */ | ||
649 | BUG_TRAP(skb); | ||
650 | dev_kfree_skb(skb); | ||
651 | tx_buf->first_bd = 0; | ||
652 | tx_buf->skb = NULL; | ||
653 | |||
654 | return bd_idx; | ||
655 | } | ||
656 | |||
657 | static inline u32 bnx2x_tx_avail(struct bnx2x_fastpath *fp) | ||
658 | { | ||
659 | u16 used; | ||
660 | u32 prod; | ||
661 | u32 cons; | ||
662 | |||
663 | /* Tell compiler that prod and cons can change */ | ||
664 | barrier(); | ||
665 | prod = fp->tx_bd_prod; | ||
666 | cons = fp->tx_bd_cons; | ||
667 | |||
668 | used = (NUM_TX_BD - NUM_TX_RINGS + prod - cons + | ||
669 | (cons / TX_DESC_CNT) - (prod / TX_DESC_CNT)); | ||
670 | |||
671 | if (prod >= cons) { | ||
672 | /* used = prod - cons - prod/size + cons/size */ | ||
673 | used -= NUM_TX_BD - NUM_TX_RINGS; | ||
674 | } | ||
675 | |||
676 | BUG_TRAP(used <= fp->bp->tx_ring_size); | ||
677 | BUG_TRAP((fp->bp->tx_ring_size - used) <= MAX_TX_AVAIL); | ||
678 | |||
679 | return (fp->bp->tx_ring_size - used); | ||
680 | } | ||
681 | |||
682 | static void bnx2x_tx_int(struct bnx2x_fastpath *fp, int work) | ||
683 | { | ||
684 | struct bnx2x *bp = fp->bp; | ||
685 | u16 hw_cons, sw_cons, bd_cons = fp->tx_bd_cons; | ||
686 | int done = 0; | ||
687 | |||
688 | #ifdef BNX2X_STOP_ON_ERROR | ||
689 | if (unlikely(bp->panic)) | ||
690 | return; | ||
691 | #endif | ||
692 | |||
693 | hw_cons = le16_to_cpu(*fp->tx_cons_sb); | ||
694 | sw_cons = fp->tx_pkt_cons; | ||
695 | |||
696 | while (sw_cons != hw_cons) { | ||
697 | u16 pkt_cons; | ||
698 | |||
699 | pkt_cons = TX_BD(sw_cons); | ||
700 | |||
701 | /* prefetch(bp->tx_buf_ring[pkt_cons].skb); */ | ||
702 | |||
703 | DP(NETIF_MSG_TX_DONE, "hw_cons %u sw_cons %u pkt_cons %d\n", | ||
704 | hw_cons, sw_cons, pkt_cons); | ||
705 | |||
706 | /* if (NEXT_TX_IDX(sw_cons) != hw_cons) { | ||
707 | rmb(); | ||
708 | prefetch(fp->tx_buf_ring[NEXT_TX_IDX(sw_cons)].skb); | ||
709 | } | ||
710 | */ | ||
711 | bd_cons = bnx2x_free_tx_pkt(bp, fp, pkt_cons); | ||
712 | sw_cons++; | ||
713 | done++; | ||
714 | |||
715 | if (done == work) | ||
716 | break; | ||
717 | } | ||
718 | |||
719 | fp->tx_pkt_cons = sw_cons; | ||
720 | fp->tx_bd_cons = bd_cons; | ||
721 | |||
722 | /* Need to make the tx_cons update visible to start_xmit() | ||
723 | * before checking for netif_queue_stopped(). Without the | ||
724 | * memory barrier, there is a small possibility that start_xmit() | ||
725 | * will miss it and cause the queue to be stopped forever. | ||
726 | */ | ||
727 | smp_mb(); | ||
728 | |||
729 | /* TBD need a thresh? */ | ||
730 | if (unlikely(netif_queue_stopped(bp->dev))) { | ||
731 | |||
732 | netif_tx_lock(bp->dev); | ||
733 | |||
734 | if (netif_queue_stopped(bp->dev) && | ||
735 | (bnx2x_tx_avail(fp) >= MAX_SKB_FRAGS + 3)) | ||
736 | netif_wake_queue(bp->dev); | ||
737 | |||
738 | netif_tx_unlock(bp->dev); | ||
739 | |||
740 | } | ||
741 | } | ||
742 | |||
743 | static void bnx2x_sp_event(struct bnx2x_fastpath *fp, | ||
744 | union eth_rx_cqe *rr_cqe) | ||
745 | { | ||
746 | struct bnx2x *bp = fp->bp; | ||
747 | int cid = SW_CID(rr_cqe->ramrod_cqe.conn_and_cmd_data); | ||
748 | int command = CQE_CMD(rr_cqe->ramrod_cqe.conn_and_cmd_data); | ||
749 | |||
750 | DP(NETIF_MSG_RX_STATUS, | ||
751 | "fp %d cid %d got ramrod #%d state is %x type is %d\n", | ||
752 | fp->index, cid, command, bp->state, rr_cqe->ramrod_cqe.type); | ||
753 | |||
754 | bp->spq_left++; | ||
755 | |||
756 | if (fp->index) { | ||
757 | switch (command | fp->state) { | ||
758 | case (RAMROD_CMD_ID_ETH_CLIENT_SETUP | | ||
759 | BNX2X_FP_STATE_OPENING): | ||
760 | DP(NETIF_MSG_IFUP, "got MULTI[%d] setup ramrod\n", | ||
761 | cid); | ||
762 | fp->state = BNX2X_FP_STATE_OPEN; | ||
763 | break; | ||
764 | |||
765 | case (RAMROD_CMD_ID_ETH_HALT | BNX2X_FP_STATE_HALTING): | ||
766 | DP(NETIF_MSG_IFDOWN, "got MULTI[%d] halt ramrod\n", | ||
767 | cid); | ||
768 | fp->state = BNX2X_FP_STATE_HALTED; | ||
769 | break; | ||
770 | |||
771 | default: | ||
772 | BNX2X_ERR("unexpected MC reply(%d) state is %x\n", | ||
773 | command, fp->state); | ||
774 | } | ||
775 | mb(); /* force bnx2x_wait_ramrod to see the change */ | ||
776 | return; | ||
777 | } | ||
778 | switch (command | bp->state) { | ||
779 | case (RAMROD_CMD_ID_ETH_PORT_SETUP | BNX2X_STATE_OPENING_WAIT4_PORT): | ||
780 | DP(NETIF_MSG_IFUP, "got setup ramrod\n"); | ||
781 | bp->state = BNX2X_STATE_OPEN; | ||
782 | break; | ||
783 | |||
784 | case (RAMROD_CMD_ID_ETH_HALT | BNX2X_STATE_CLOSING_WAIT4_HALT): | ||
785 | DP(NETIF_MSG_IFDOWN, "got halt ramrod\n"); | ||
786 | bp->state = BNX2X_STATE_CLOSING_WAIT4_DELETE; | ||
787 | fp->state = BNX2X_FP_STATE_HALTED; | ||
788 | break; | ||
789 | |||
790 | case (RAMROD_CMD_ID_ETH_PORT_DEL | BNX2X_STATE_CLOSING_WAIT4_DELETE): | ||
791 | DP(NETIF_MSG_IFDOWN, "got delete ramrod\n"); | ||
792 | bp->state = BNX2X_STATE_CLOSING_WAIT4_UNLOAD; | ||
793 | break; | ||
794 | |||
795 | case (RAMROD_CMD_ID_ETH_CFC_DEL | BNX2X_STATE_CLOSING_WAIT4_HALT): | ||
796 | DP(NETIF_MSG_IFDOWN, "got delete ramrod for MULTI[%d]\n", cid); | ||
797 | bnx2x_fp(bp, cid, state) = BNX2X_FP_STATE_DELETED; | ||
798 | break; | ||
799 | |||
800 | case (RAMROD_CMD_ID_ETH_SET_MAC | BNX2X_STATE_OPEN): | ||
801 | DP(NETIF_MSG_IFUP, "got set mac ramrod\n"); | ||
802 | break; | ||
803 | |||
804 | default: | ||
805 | BNX2X_ERR("unexpected ramrod (%d) state is %x\n", | ||
806 | command, bp->state); | ||
807 | } | ||
808 | |||
809 | mb(); /* force bnx2x_wait_ramrod to see the change */ | ||
810 | } | ||
811 | |||
812 | static inline int bnx2x_alloc_rx_skb(struct bnx2x *bp, | ||
813 | struct bnx2x_fastpath *fp, u16 index) | ||
814 | { | ||
815 | struct sk_buff *skb; | ||
816 | struct sw_rx_bd *rx_buf = &fp->rx_buf_ring[index]; | ||
817 | struct eth_rx_bd *rx_bd = &fp->rx_desc_ring[index]; | ||
818 | dma_addr_t mapping; | ||
819 | |||
820 | skb = netdev_alloc_skb(bp->dev, bp->rx_buf_size); | ||
821 | if (unlikely(skb == NULL)) | ||
822 | return -ENOMEM; | ||
823 | |||
824 | mapping = pci_map_single(bp->pdev, skb->data, bp->rx_buf_use_size, | ||
825 | PCI_DMA_FROMDEVICE); | ||
826 | if (unlikely(dma_mapping_error(mapping))) { | ||
827 | |||
828 | dev_kfree_skb(skb); | ||
829 | return -ENOMEM; | ||
830 | } | ||
831 | |||
832 | rx_buf->skb = skb; | ||
833 | pci_unmap_addr_set(rx_buf, mapping, mapping); | ||
834 | |||
835 | rx_bd->addr_hi = cpu_to_le32(U64_HI(mapping)); | ||
836 | rx_bd->addr_lo = cpu_to_le32(U64_LO(mapping)); | ||
837 | |||
838 | return 0; | ||
839 | } | ||
840 | |||
841 | /* note that we are not allocating a new skb, | ||
842 | * we are just moving one from cons to prod | ||
843 | * we are not creating a new mapping, | ||
844 | * so there is no need to check for dma_mapping_error(). | ||
845 | */ | ||
846 | static void bnx2x_reuse_rx_skb(struct bnx2x_fastpath *fp, | ||
847 | struct sk_buff *skb, u16 cons, u16 prod) | ||
848 | { | ||
849 | struct bnx2x *bp = fp->bp; | ||
850 | struct sw_rx_bd *cons_rx_buf = &fp->rx_buf_ring[cons]; | ||
851 | struct sw_rx_bd *prod_rx_buf = &fp->rx_buf_ring[prod]; | ||
852 | struct eth_rx_bd *cons_bd = &fp->rx_desc_ring[cons]; | ||
853 | struct eth_rx_bd *prod_bd = &fp->rx_desc_ring[prod]; | ||
854 | |||
855 | pci_dma_sync_single_for_device(bp->pdev, | ||
856 | pci_unmap_addr(cons_rx_buf, mapping), | ||
857 | bp->rx_offset + RX_COPY_THRESH, | ||
858 | PCI_DMA_FROMDEVICE); | ||
859 | |||
860 | prod_rx_buf->skb = cons_rx_buf->skb; | ||
861 | pci_unmap_addr_set(prod_rx_buf, mapping, | ||
862 | pci_unmap_addr(cons_rx_buf, mapping)); | ||
863 | *prod_bd = *cons_bd; | ||
864 | } | ||
865 | |||
866 | static int bnx2x_rx_int(struct bnx2x_fastpath *fp, int budget) | ||
867 | { | ||
868 | struct bnx2x *bp = fp->bp; | ||
869 | u16 bd_cons, bd_prod, comp_ring_cons; | ||
870 | u16 hw_comp_cons, sw_comp_cons, sw_comp_prod; | ||
871 | int rx_pkt = 0; | ||
872 | |||
873 | #ifdef BNX2X_STOP_ON_ERROR | ||
874 | if (unlikely(bp->panic)) | ||
875 | return 0; | ||
876 | #endif | ||
877 | |||
878 | hw_comp_cons = le16_to_cpu(*fp->rx_cons_sb); | ||
879 | if ((hw_comp_cons & MAX_RCQ_DESC_CNT) == MAX_RCQ_DESC_CNT) | ||
880 | hw_comp_cons++; | ||
881 | |||
882 | bd_cons = fp->rx_bd_cons; | ||
883 | bd_prod = fp->rx_bd_prod; | ||
884 | sw_comp_cons = fp->rx_comp_cons; | ||
885 | sw_comp_prod = fp->rx_comp_prod; | ||
886 | |||
887 | /* Memory barrier necessary as speculative reads of the rx | ||
888 | * buffer can be ahead of the index in the status block | ||
889 | */ | ||
890 | rmb(); | ||
891 | |||
892 | DP(NETIF_MSG_RX_STATUS, | ||
893 | "queue[%d]: hw_comp_cons %u sw_comp_cons %u\n", | ||
894 | fp->index, hw_comp_cons, sw_comp_cons); | ||
895 | |||
896 | while (sw_comp_cons != hw_comp_cons) { | ||
897 | unsigned int len, pad; | ||
898 | struct sw_rx_bd *rx_buf; | ||
899 | struct sk_buff *skb; | ||
900 | union eth_rx_cqe *cqe; | ||
901 | |||
902 | comp_ring_cons = RCQ_BD(sw_comp_cons); | ||
903 | bd_prod = RX_BD(bd_prod); | ||
904 | bd_cons = RX_BD(bd_cons); | ||
905 | |||
906 | cqe = &fp->rx_comp_ring[comp_ring_cons]; | ||
907 | |||
908 | DP(NETIF_MSG_RX_STATUS, "hw_comp_cons %u sw_comp_cons %u" | ||
909 | " comp_ring (%u) bd_ring (%u,%u)\n", | ||
910 | hw_comp_cons, sw_comp_cons, | ||
911 | comp_ring_cons, bd_prod, bd_cons); | ||
912 | DP(NETIF_MSG_RX_STATUS, "CQE type %x err %x status %x" | ||
913 | " queue %x vlan %x len %x\n", | ||
914 | cqe->fast_path_cqe.type, | ||
915 | cqe->fast_path_cqe.error_type_flags, | ||
916 | cqe->fast_path_cqe.status_flags, | ||
917 | cqe->fast_path_cqe.rss_hash_result, | ||
918 | cqe->fast_path_cqe.vlan_tag, cqe->fast_path_cqe.pkt_len); | ||
919 | |||
920 | /* is this a slowpath msg? */ | ||
921 | if (unlikely(cqe->fast_path_cqe.type)) { | ||
922 | bnx2x_sp_event(fp, cqe); | ||
923 | goto next_cqe; | ||
924 | |||
925 | /* this is an rx packet */ | ||
926 | } else { | ||
927 | rx_buf = &fp->rx_buf_ring[bd_cons]; | ||
928 | skb = rx_buf->skb; | ||
929 | |||
930 | len = le16_to_cpu(cqe->fast_path_cqe.pkt_len); | ||
931 | pad = cqe->fast_path_cqe.placement_offset; | ||
932 | |||
933 | pci_dma_sync_single_for_device(bp->pdev, | ||
934 | pci_unmap_addr(rx_buf, mapping), | ||
935 | pad + RX_COPY_THRESH, | ||
936 | PCI_DMA_FROMDEVICE); | ||
937 | prefetch(skb); | ||
938 | prefetch(((char *)(skb)) + 128); | ||
939 | |||
940 | /* is this an error packet? */ | ||
941 | if (unlikely(cqe->fast_path_cqe.error_type_flags & | ||
942 | ETH_RX_ERROR_FALGS)) { | ||
943 | /* do we sometimes forward error packets anyway? */ | ||
944 | DP(NETIF_MSG_RX_ERR, | ||
945 | "ERROR flags(%u) Rx packet(%u)\n", | ||
946 | cqe->fast_path_cqe.error_type_flags, | ||
947 | sw_comp_cons); | ||
948 | /* TBD make sure MC counts this as a drop */ | ||
949 | goto reuse_rx; | ||
950 | } | ||
951 | |||
952 | /* Since we don't have a jumbo ring | ||
953 | * copy small packets if mtu > 1500 | ||
954 | */ | ||
955 | if ((bp->dev->mtu > ETH_MAX_PACKET_SIZE) && | ||
956 | (len <= RX_COPY_THRESH)) { | ||
957 | struct sk_buff *new_skb; | ||
958 | |||
959 | new_skb = netdev_alloc_skb(bp->dev, | ||
960 | len + pad); | ||
961 | if (new_skb == NULL) { | ||
962 | DP(NETIF_MSG_RX_ERR, | ||
963 | "ERROR packet dropped " | ||
964 | "because of alloc failure\n"); | ||
965 | /* TBD count this as a drop? */ | ||
966 | goto reuse_rx; | ||
967 | } | ||
968 | |||
969 | /* aligned copy */ | ||
970 | skb_copy_from_linear_data_offset(skb, pad, | ||
971 | new_skb->data + pad, len); | ||
972 | skb_reserve(new_skb, pad); | ||
973 | skb_put(new_skb, len); | ||
974 | |||
975 | bnx2x_reuse_rx_skb(fp, skb, bd_cons, bd_prod); | ||
976 | |||
977 | skb = new_skb; | ||
978 | |||
979 | } else if (bnx2x_alloc_rx_skb(bp, fp, bd_prod) == 0) { | ||
980 | pci_unmap_single(bp->pdev, | ||
981 | pci_unmap_addr(rx_buf, mapping), | ||
982 | bp->rx_buf_use_size, | ||
983 | PCI_DMA_FROMDEVICE); | ||
984 | skb_reserve(skb, pad); | ||
985 | skb_put(skb, len); | ||
986 | |||
987 | } else { | ||
988 | DP(NETIF_MSG_RX_ERR, | ||
989 | "ERROR packet dropped because " | ||
990 | "of alloc failure\n"); | ||
991 | reuse_rx: | ||
992 | bnx2x_reuse_rx_skb(fp, skb, bd_cons, bd_prod); | ||
993 | goto next_rx; | ||
994 | } | ||
995 | |||
996 | skb->protocol = eth_type_trans(skb, bp->dev); | ||
997 | |||
998 | skb->ip_summed = CHECKSUM_NONE; | ||
999 | if (bp->rx_csum && BNX2X_RX_SUM_OK(cqe)) | ||
1000 | skb->ip_summed = CHECKSUM_UNNECESSARY; | ||
1001 | |||
1002 | /* TBD do we pass bad csum packets in promisc */ | ||
1003 | } | ||
1004 | |||
1005 | #ifdef BCM_VLAN | ||
1006 | if ((le16_to_cpu(cqe->fast_path_cqe.pars_flags.flags) | ||
1007 | & PARSING_FLAGS_NUMBER_OF_NESTED_VLANS) | ||
1008 | && (bp->vlgrp != NULL)) | ||
1009 | vlan_hwaccel_receive_skb(skb, bp->vlgrp, | ||
1010 | le16_to_cpu(cqe->fast_path_cqe.vlan_tag)); | ||
1011 | else | ||
1012 | #endif | ||
1013 | netif_receive_skb(skb); | ||
1014 | |||
1015 | bp->dev->last_rx = jiffies; | ||
1016 | |||
1017 | next_rx: | ||
1018 | rx_buf->skb = NULL; | ||
1019 | |||
1020 | bd_cons = NEXT_RX_IDX(bd_cons); | ||
1021 | bd_prod = NEXT_RX_IDX(bd_prod); | ||
1022 | next_cqe: | ||
1023 | sw_comp_prod = NEXT_RCQ_IDX(sw_comp_prod); | ||
1024 | sw_comp_cons = NEXT_RCQ_IDX(sw_comp_cons); | ||
1025 | rx_pkt++; | ||
1026 | |||
1027 | if ((rx_pkt == budget)) | ||
1028 | break; | ||
1029 | } /* while */ | ||
1030 | |||
1031 | fp->rx_bd_cons = bd_cons; | ||
1032 | fp->rx_bd_prod = bd_prod; | ||
1033 | fp->rx_comp_cons = sw_comp_cons; | ||
1034 | fp->rx_comp_prod = sw_comp_prod; | ||
1035 | |||
1036 | REG_WR(bp, BAR_TSTRORM_INTMEM + | ||
1037 | TSTORM_RCQ_PROD_OFFSET(bp->port, fp->index), sw_comp_prod); | ||
1038 | |||
1039 | mmiowb(); /* keep prod updates ordered */ | ||
1040 | |||
1041 | fp->rx_pkt += rx_pkt; | ||
1042 | fp->rx_calls++; | ||
1043 | |||
1044 | return rx_pkt; | ||
1045 | } | ||
1046 | |||
1047 | static irqreturn_t bnx2x_msix_fp_int(int irq, void *fp_cookie) | ||
1048 | { | ||
1049 | struct bnx2x_fastpath *fp = fp_cookie; | ||
1050 | struct bnx2x *bp = fp->bp; | ||
1051 | struct net_device *dev = bp->dev; | ||
1052 | int index = fp->index; | ||
1053 | |||
1054 | DP(NETIF_MSG_INTR, "got an msix interrupt on [%d]\n", index); | ||
1055 | bnx2x_ack_sb(bp, index, USTORM_ID, 0, IGU_INT_DISABLE, 0); | ||
1056 | |||
1057 | #ifdef BNX2X_STOP_ON_ERROR | ||
1058 | if (unlikely(bp->panic)) | ||
1059 | return IRQ_HANDLED; | ||
1060 | #endif | ||
1061 | |||
1062 | prefetch(fp->rx_cons_sb); | ||
1063 | prefetch(fp->tx_cons_sb); | ||
1064 | prefetch(&fp->status_blk->c_status_block.status_block_index); | ||
1065 | prefetch(&fp->status_blk->u_status_block.status_block_index); | ||
1066 | |||
1067 | netif_rx_schedule(dev, &bnx2x_fp(bp, index, napi)); | ||
1068 | return IRQ_HANDLED; | ||
1069 | } | ||
1070 | |||
1071 | static irqreturn_t bnx2x_interrupt(int irq, void *dev_instance) | ||
1072 | { | ||
1073 | struct net_device *dev = dev_instance; | ||
1074 | struct bnx2x *bp = netdev_priv(dev); | ||
1075 | u16 status = bnx2x_ack_int(bp); | ||
1076 | |||
1077 | if (unlikely(status == 0)) { | ||
1078 | DP(NETIF_MSG_INTR, "not our interrupt!\n"); | ||
1079 | return IRQ_NONE; | ||
1080 | } | ||
1081 | |||
1082 | DP(NETIF_MSG_INTR, "got an interrupt status is %u\n", status); | ||
1083 | |||
1084 | #ifdef BNX2X_STOP_ON_ERROR | ||
1085 | if (unlikely(bp->panic)) | ||
1086 | return IRQ_HANDLED; | ||
1087 | #endif | ||
1088 | |||
1089 | /* Return here if interrupt is shared and is disabled */ | ||
1090 | if (unlikely(atomic_read(&bp->intr_sem) != 0)) { | ||
1091 | DP(NETIF_MSG_INTR, "called but intr_sem not 0, returning\n"); | ||
1092 | return IRQ_HANDLED; | ||
1093 | } | ||
1094 | |||
1095 | if (status & 0x2) { | ||
1096 | struct bnx2x_fastpath *fp = &bp->fp[0]; | ||
1097 | |||
1098 | prefetch(fp->rx_cons_sb); | ||
1099 | prefetch(fp->tx_cons_sb); | ||
1100 | prefetch(&fp->status_blk->c_status_block.status_block_index); | ||
1101 | prefetch(&fp->status_blk->u_status_block.status_block_index); | ||
1102 | |||
1103 | netif_rx_schedule(dev, &bnx2x_fp(bp, 0, napi)); | ||
1104 | |||
1105 | status &= ~0x2; | ||
1106 | if (!status) | ||
1107 | return IRQ_HANDLED; | ||
1108 | } | ||
1109 | |||
1110 | if (unlikely(status & 0x1)) { | ||
1111 | |||
1112 | schedule_work(&bp->sp_task); | ||
1113 | |||
1114 | status &= ~0x1; | ||
1115 | if (!status) | ||
1116 | return IRQ_HANDLED; | ||
1117 | } | ||
1118 | |||
1119 | DP(NETIF_MSG_INTR, "got an unknown interrupt! (status is %u)\n", | ||
1120 | status); | ||
1121 | |||
1122 | return IRQ_HANDLED; | ||
1123 | } | ||
1124 | |||
1125 | /* end of fast path */ | ||
1126 | |||
1127 | /* PHY/MAC */ | ||
1128 | |||
1129 | /* | ||
1130 | * General service functions | ||
1131 | */ | ||
1132 | |||
1133 | static void bnx2x_leds_set(struct bnx2x *bp, unsigned int speed) | ||
1134 | { | ||
1135 | int port = bp->port; | ||
1136 | |||
1137 | NIG_WR(NIG_REG_LED_MODE_P0 + port*4, | ||
1138 | ((bp->hw_config & SHARED_HW_CFG_LED_MODE_MASK) >> | ||
1139 | SHARED_HW_CFG_LED_MODE_SHIFT)); | ||
1140 | NIG_WR(NIG_REG_LED_CONTROL_OVERRIDE_TRAFFIC_P0 + port*4, 0); | ||
1141 | |||
1142 | /* Set blinking rate to ~15.9Hz */ | ||
1143 | NIG_WR(NIG_REG_LED_CONTROL_BLINK_RATE_P0 + port*4, | ||
1144 | LED_BLINK_RATE_VAL); | ||
1145 | NIG_WR(NIG_REG_LED_CONTROL_BLINK_RATE_ENA_P0 + port*4, 1); | ||
1146 | |||
1147 | /* On Ax chip versions for speeds less than 10G | ||
1148 | LED scheme is different */ | ||
1149 | if ((CHIP_REV(bp) == CHIP_REV_Ax) && (speed < SPEED_10000)) { | ||
1150 | NIG_WR(NIG_REG_LED_CONTROL_OVERRIDE_TRAFFIC_P0 + port*4, 1); | ||
1151 | NIG_WR(NIG_REG_LED_CONTROL_TRAFFIC_P0 + port*4, 0); | ||
1152 | NIG_WR(NIG_REG_LED_CONTROL_BLINK_TRAFFIC_P0 + port*4, 1); | ||
1153 | } | ||
1154 | } | ||
1155 | |||
1156 | static void bnx2x_leds_unset(struct bnx2x *bp) | ||
1157 | { | ||
1158 | int port = bp->port; | ||
1159 | |||
1160 | NIG_WR(NIG_REG_LED_10G_P0 + port*4, 0); | ||
1161 | NIG_WR(NIG_REG_LED_MODE_P0 + port*4, SHARED_HW_CFG_LED_MAC1); | ||
1162 | } | ||
1163 | |||
1164 | static u32 bnx2x_bits_en(struct bnx2x *bp, u32 reg, u32 bits) | ||
1165 | { | ||
1166 | u32 val = REG_RD(bp, reg); | ||
1167 | |||
1168 | val |= bits; | ||
1169 | REG_WR(bp, reg, val); | ||
1170 | return val; | ||
1171 | } | ||
1172 | |||
1173 | static u32 bnx2x_bits_dis(struct bnx2x *bp, u32 reg, u32 bits) | ||
1174 | { | ||
1175 | u32 val = REG_RD(bp, reg); | ||
1176 | |||
1177 | val &= ~bits; | ||
1178 | REG_WR(bp, reg, val); | ||
1179 | return val; | ||
1180 | } | ||
1181 | |||
1182 | static int bnx2x_mdio22_write(struct bnx2x *bp, u32 reg, u32 val) | ||
1183 | { | ||
1184 | int rc; | ||
1185 | u32 tmp, i; | ||
1186 | int port = bp->port; | ||
1187 | u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0; | ||
1188 | |||
1189 | /* DP(NETIF_MSG_HW, "phy_addr 0x%x reg 0x%x val 0x%08x\n", | ||
1190 | bp->phy_addr, reg, val); */ | ||
1191 | |||
1192 | if (bp->phy_flags & PHY_INT_MODE_AUTO_POLLING_FLAG) { | ||
1193 | |||
1194 | tmp = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1195 | tmp &= ~EMAC_MDIO_MODE_AUTO_POLL; | ||
1196 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, tmp); | ||
1197 | REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1198 | udelay(40); | ||
1199 | } | ||
1200 | |||
1201 | tmp = ((bp->phy_addr << 21) | (reg << 16) | | ||
1202 | (val & EMAC_MDIO_COMM_DATA) | | ||
1203 | EMAC_MDIO_COMM_COMMAND_WRITE_22 | | ||
1204 | EMAC_MDIO_COMM_START_BUSY); | ||
1205 | EMAC_WR(EMAC_REG_EMAC_MDIO_COMM, tmp); | ||
1206 | |||
1207 | for (i = 0; i < 50; i++) { | ||
1208 | udelay(10); | ||
1209 | |||
1210 | tmp = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_COMM); | ||
1211 | if (!(tmp & EMAC_MDIO_COMM_START_BUSY)) { | ||
1212 | udelay(5); | ||
1213 | break; | ||
1214 | } | ||
1215 | } | ||
1216 | |||
1217 | if (tmp & EMAC_MDIO_COMM_START_BUSY) { | ||
1218 | BNX2X_ERR("write phy register failed\n"); | ||
1219 | |||
1220 | rc = -EBUSY; | ||
1221 | } else { | ||
1222 | rc = 0; | ||
1223 | } | ||
1224 | |||
1225 | if (bp->phy_flags & PHY_INT_MODE_AUTO_POLLING_FLAG) { | ||
1226 | |||
1227 | tmp = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1228 | tmp |= EMAC_MDIO_MODE_AUTO_POLL; | ||
1229 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, tmp); | ||
1230 | } | ||
1231 | |||
1232 | return rc; | ||
1233 | } | ||
1234 | |||
1235 | static int bnx2x_mdio22_read(struct bnx2x *bp, u32 reg, u32 *ret_val) | ||
1236 | { | ||
1237 | int port = bp->port; | ||
1238 | u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0; | ||
1239 | u32 val, i; | ||
1240 | int rc; | ||
1241 | |||
1242 | if (bp->phy_flags & PHY_INT_MODE_AUTO_POLLING_FLAG) { | ||
1243 | |||
1244 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1245 | val &= ~EMAC_MDIO_MODE_AUTO_POLL; | ||
1246 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, val); | ||
1247 | REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1248 | udelay(40); | ||
1249 | } | ||
1250 | |||
1251 | val = ((bp->phy_addr << 21) | (reg << 16) | | ||
1252 | EMAC_MDIO_COMM_COMMAND_READ_22 | | ||
1253 | EMAC_MDIO_COMM_START_BUSY); | ||
1254 | EMAC_WR(EMAC_REG_EMAC_MDIO_COMM, val); | ||
1255 | |||
1256 | for (i = 0; i < 50; i++) { | ||
1257 | udelay(10); | ||
1258 | |||
1259 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_COMM); | ||
1260 | if (!(val & EMAC_MDIO_COMM_START_BUSY)) { | ||
1261 | val &= EMAC_MDIO_COMM_DATA; | ||
1262 | break; | ||
1263 | } | ||
1264 | } | ||
1265 | |||
1266 | if (val & EMAC_MDIO_COMM_START_BUSY) { | ||
1267 | BNX2X_ERR("read phy register failed\n"); | ||
1268 | |||
1269 | *ret_val = 0x0; | ||
1270 | rc = -EBUSY; | ||
1271 | } else { | ||
1272 | *ret_val = val; | ||
1273 | rc = 0; | ||
1274 | } | ||
1275 | |||
1276 | if (bp->phy_flags & PHY_INT_MODE_AUTO_POLLING_FLAG) { | ||
1277 | |||
1278 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1279 | val |= EMAC_MDIO_MODE_AUTO_POLL; | ||
1280 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, val); | ||
1281 | } | ||
1282 | |||
1283 | /* DP(NETIF_MSG_HW, "phy_addr 0x%x reg 0x%x ret_val 0x%08x\n", | ||
1284 | bp->phy_addr, reg, *ret_val); */ | ||
1285 | |||
1286 | return rc; | ||
1287 | } | ||
1288 | |||
1289 | static int bnx2x_mdio45_write(struct bnx2x *bp, u32 reg, u32 addr, u32 val) | ||
1290 | { | ||
1291 | int rc = 0; | ||
1292 | u32 tmp, i; | ||
1293 | int port = bp->port; | ||
1294 | u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0; | ||
1295 | |||
1296 | if (bp->phy_flags & PHY_INT_MODE_AUTO_POLLING_FLAG) { | ||
1297 | |||
1298 | tmp = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1299 | tmp &= ~EMAC_MDIO_MODE_AUTO_POLL; | ||
1300 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, tmp); | ||
1301 | REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1302 | udelay(40); | ||
1303 | } | ||
1304 | |||
1305 | /* set clause 45 mode */ | ||
1306 | tmp = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1307 | tmp |= EMAC_MDIO_MODE_CLAUSE_45; | ||
1308 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, tmp); | ||
1309 | |||
1310 | /* address */ | ||
1311 | tmp = ((bp->phy_addr << 21) | (reg << 16) | addr | | ||
1312 | EMAC_MDIO_COMM_COMMAND_ADDRESS | | ||
1313 | EMAC_MDIO_COMM_START_BUSY); | ||
1314 | EMAC_WR(EMAC_REG_EMAC_MDIO_COMM, tmp); | ||
1315 | |||
1316 | for (i = 0; i < 50; i++) { | ||
1317 | udelay(10); | ||
1318 | |||
1319 | tmp = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_COMM); | ||
1320 | if (!(tmp & EMAC_MDIO_COMM_START_BUSY)) { | ||
1321 | udelay(5); | ||
1322 | break; | ||
1323 | } | ||
1324 | } | ||
1325 | |||
1326 | if (tmp & EMAC_MDIO_COMM_START_BUSY) { | ||
1327 | BNX2X_ERR("write phy register failed\n"); | ||
1328 | |||
1329 | rc = -EBUSY; | ||
1330 | } else { | ||
1331 | /* data */ | ||
1332 | tmp = ((bp->phy_addr << 21) | (reg << 16) | val | | ||
1333 | EMAC_MDIO_COMM_COMMAND_WRITE_45 | | ||
1334 | EMAC_MDIO_COMM_START_BUSY); | ||
1335 | EMAC_WR(EMAC_REG_EMAC_MDIO_COMM, tmp); | ||
1336 | |||
1337 | for (i = 0; i < 50; i++) { | ||
1338 | udelay(10); | ||
1339 | |||
1340 | tmp = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_COMM); | ||
1341 | if (!(tmp & EMAC_MDIO_COMM_START_BUSY)) { | ||
1342 | udelay(5); | ||
1343 | break; | ||
1344 | } | ||
1345 | } | ||
1346 | |||
1347 | if (tmp & EMAC_MDIO_COMM_START_BUSY) { | ||
1348 | BNX2X_ERR("write phy register failed\n"); | ||
1349 | |||
1350 | rc = -EBUSY; | ||
1351 | } | ||
1352 | } | ||
1353 | |||
1354 | /* unset clause 45 mode */ | ||
1355 | tmp = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1356 | tmp &= ~EMAC_MDIO_MODE_CLAUSE_45; | ||
1357 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, tmp); | ||
1358 | |||
1359 | if (bp->phy_flags & PHY_INT_MODE_AUTO_POLLING_FLAG) { | ||
1360 | |||
1361 | tmp = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1362 | tmp |= EMAC_MDIO_MODE_AUTO_POLL; | ||
1363 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, tmp); | ||
1364 | } | ||
1365 | |||
1366 | return rc; | ||
1367 | } | ||
1368 | |||
1369 | static int bnx2x_mdio45_read(struct bnx2x *bp, u32 reg, u32 addr, | ||
1370 | u32 *ret_val) | ||
1371 | { | ||
1372 | int port = bp->port; | ||
1373 | u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0; | ||
1374 | u32 val, i; | ||
1375 | int rc = 0; | ||
1376 | |||
1377 | if (bp->phy_flags & PHY_INT_MODE_AUTO_POLLING_FLAG) { | ||
1378 | |||
1379 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1380 | val &= ~EMAC_MDIO_MODE_AUTO_POLL; | ||
1381 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, val); | ||
1382 | REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1383 | udelay(40); | ||
1384 | } | ||
1385 | |||
1386 | /* set clause 45 mode */ | ||
1387 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1388 | val |= EMAC_MDIO_MODE_CLAUSE_45; | ||
1389 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, val); | ||
1390 | |||
1391 | /* address */ | ||
1392 | val = ((bp->phy_addr << 21) | (reg << 16) | addr | | ||
1393 | EMAC_MDIO_COMM_COMMAND_ADDRESS | | ||
1394 | EMAC_MDIO_COMM_START_BUSY); | ||
1395 | EMAC_WR(EMAC_REG_EMAC_MDIO_COMM, val); | ||
1396 | |||
1397 | for (i = 0; i < 50; i++) { | ||
1398 | udelay(10); | ||
1399 | |||
1400 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_COMM); | ||
1401 | if (!(val & EMAC_MDIO_COMM_START_BUSY)) { | ||
1402 | udelay(5); | ||
1403 | break; | ||
1404 | } | ||
1405 | } | ||
1406 | |||
1407 | if (val & EMAC_MDIO_COMM_START_BUSY) { | ||
1408 | BNX2X_ERR("read phy register failed\n"); | ||
1409 | |||
1410 | *ret_val = 0; | ||
1411 | rc = -EBUSY; | ||
1412 | } else { | ||
1413 | /* data */ | ||
1414 | val = ((bp->phy_addr << 21) | (reg << 16) | | ||
1415 | EMAC_MDIO_COMM_COMMAND_READ_45 | | ||
1416 | EMAC_MDIO_COMM_START_BUSY); | ||
1417 | EMAC_WR(EMAC_REG_EMAC_MDIO_COMM, val); | ||
1418 | |||
1419 | for (i = 0; i < 50; i++) { | ||
1420 | udelay(10); | ||
1421 | |||
1422 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_COMM); | ||
1423 | if (!(val & EMAC_MDIO_COMM_START_BUSY)) { | ||
1424 | val &= EMAC_MDIO_COMM_DATA; | ||
1425 | break; | ||
1426 | } | ||
1427 | } | ||
1428 | |||
1429 | if (val & EMAC_MDIO_COMM_START_BUSY) { | ||
1430 | BNX2X_ERR("read phy register failed\n"); | ||
1431 | |||
1432 | val = 0; | ||
1433 | rc = -EBUSY; | ||
1434 | } | ||
1435 | |||
1436 | *ret_val = val; | ||
1437 | } | ||
1438 | |||
1439 | /* unset clause 45 mode */ | ||
1440 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1441 | val &= ~EMAC_MDIO_MODE_CLAUSE_45; | ||
1442 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, val); | ||
1443 | |||
1444 | if (bp->phy_flags & PHY_INT_MODE_AUTO_POLLING_FLAG) { | ||
1445 | |||
1446 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MDIO_MODE); | ||
1447 | val |= EMAC_MDIO_MODE_AUTO_POLL; | ||
1448 | EMAC_WR(EMAC_REG_EMAC_MDIO_MODE, val); | ||
1449 | } | ||
1450 | |||
1451 | return rc; | ||
1452 | } | ||
1453 | |||
1454 | static int bnx2x_mdio45_vwrite(struct bnx2x *bp, u32 reg, u32 addr, u32 val) | ||
1455 | { | ||
1456 | int i; | ||
1457 | u32 rd_val; | ||
1458 | |||
1459 | might_sleep(); | ||
1460 | for (i = 0; i < 10; i++) { | ||
1461 | bnx2x_mdio45_write(bp, reg, addr, val); | ||
1462 | msleep(5); | ||
1463 | bnx2x_mdio45_read(bp, reg, addr, &rd_val); | ||
1464 | /* if the read value is not the same as the value we wrote, | ||
1465 | we should write it again */ | ||
1466 | if (rd_val == val) | ||
1467 | return 0; | ||
1468 | } | ||
1469 | BNX2X_ERR("MDIO write in CL45 failed\n"); | ||
1470 | return -EBUSY; | ||
1471 | } | ||
1472 | |||
1473 | /* | ||
1474 | * link managment | ||
1475 | */ | ||
1476 | |||
1477 | static void bnx2x_flow_ctrl_resolve(struct bnx2x *bp, u32 gp_status) | ||
1478 | { | ||
1479 | u32 ld_pause; /* local driver */ | ||
1480 | u32 lp_pause; /* link partner */ | ||
1481 | u32 pause_result; | ||
1482 | |||
1483 | bp->flow_ctrl = 0; | ||
1484 | |||
1485 | /* reolve from gp_status in case of AN complete and not sgmii */ | ||
1486 | if ((bp->req_autoneg & AUTONEG_FLOW_CTRL) && | ||
1487 | (gp_status & MDIO_AN_CL73_OR_37_COMPLETE) && | ||
1488 | (!(bp->phy_flags & PHY_SGMII_FLAG)) && | ||
1489 | (XGXS_EXT_PHY_TYPE(bp) == PORT_HW_CFG_XGXS_EXT_PHY_TYPE_DIRECT)) { | ||
1490 | |||
1491 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_COMBO_IEEE0); | ||
1492 | bnx2x_mdio22_read(bp, MDIO_COMBO_IEEE0_AUTO_NEG_ADV, | ||
1493 | &ld_pause); | ||
1494 | bnx2x_mdio22_read(bp, | ||
1495 | MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1, | ||
1496 | &lp_pause); | ||
1497 | pause_result = (ld_pause & | ||
1498 | MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_MASK)>>5; | ||
1499 | pause_result |= (lp_pause & | ||
1500 | MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_MASK)>>7; | ||
1501 | DP(NETIF_MSG_LINK, "pause_result 0x%x\n", pause_result); | ||
1502 | |||
1503 | switch (pause_result) { /* ASYM P ASYM P */ | ||
1504 | case 0xb: /* 1 0 1 1 */ | ||
1505 | bp->flow_ctrl = FLOW_CTRL_TX; | ||
1506 | break; | ||
1507 | |||
1508 | case 0xe: /* 1 1 1 0 */ | ||
1509 | bp->flow_ctrl = FLOW_CTRL_RX; | ||
1510 | break; | ||
1511 | |||
1512 | case 0x5: /* 0 1 0 1 */ | ||
1513 | case 0x7: /* 0 1 1 1 */ | ||
1514 | case 0xd: /* 1 1 0 1 */ | ||
1515 | case 0xf: /* 1 1 1 1 */ | ||
1516 | bp->flow_ctrl = FLOW_CTRL_BOTH; | ||
1517 | break; | ||
1518 | |||
1519 | default: | ||
1520 | break; | ||
1521 | } | ||
1522 | |||
1523 | } else { /* forced mode */ | ||
1524 | switch (bp->req_flow_ctrl) { | ||
1525 | case FLOW_CTRL_AUTO: | ||
1526 | if (bp->dev->mtu <= 4500) | ||
1527 | bp->flow_ctrl = FLOW_CTRL_BOTH; | ||
1528 | else | ||
1529 | bp->flow_ctrl = FLOW_CTRL_TX; | ||
1530 | break; | ||
1531 | |||
1532 | case FLOW_CTRL_TX: | ||
1533 | case FLOW_CTRL_RX: | ||
1534 | case FLOW_CTRL_BOTH: | ||
1535 | bp->flow_ctrl = bp->req_flow_ctrl; | ||
1536 | break; | ||
1537 | |||
1538 | case FLOW_CTRL_NONE: | ||
1539 | default: | ||
1540 | break; | ||
1541 | } | ||
1542 | } | ||
1543 | DP(NETIF_MSG_LINK, "flow_ctrl 0x%x\n", bp->flow_ctrl); | ||
1544 | } | ||
1545 | |||
1546 | static void bnx2x_link_settings_status(struct bnx2x *bp, u32 gp_status) | ||
1547 | { | ||
1548 | bp->link_status = 0; | ||
1549 | |||
1550 | if (gp_status & MDIO_GP_STATUS_TOP_AN_STATUS1_LINK_STATUS) { | ||
1551 | DP(NETIF_MSG_LINK, "link up\n"); | ||
1552 | |||
1553 | bp->link_up = 1; | ||
1554 | bp->link_status |= LINK_STATUS_LINK_UP; | ||
1555 | |||
1556 | if (gp_status & MDIO_GP_STATUS_TOP_AN_STATUS1_DUPLEX_STATUS) | ||
1557 | bp->duplex = DUPLEX_FULL; | ||
1558 | else | ||
1559 | bp->duplex = DUPLEX_HALF; | ||
1560 | |||
1561 | bnx2x_flow_ctrl_resolve(bp, gp_status); | ||
1562 | |||
1563 | switch (gp_status & GP_STATUS_SPEED_MASK) { | ||
1564 | case GP_STATUS_10M: | ||
1565 | bp->line_speed = SPEED_10; | ||
1566 | if (bp->duplex == DUPLEX_FULL) | ||
1567 | bp->link_status |= LINK_10TFD; | ||
1568 | else | ||
1569 | bp->link_status |= LINK_10THD; | ||
1570 | break; | ||
1571 | |||
1572 | case GP_STATUS_100M: | ||
1573 | bp->line_speed = SPEED_100; | ||
1574 | if (bp->duplex == DUPLEX_FULL) | ||
1575 | bp->link_status |= LINK_100TXFD; | ||
1576 | else | ||
1577 | bp->link_status |= LINK_100TXHD; | ||
1578 | break; | ||
1579 | |||
1580 | case GP_STATUS_1G: | ||
1581 | case GP_STATUS_1G_KX: | ||
1582 | bp->line_speed = SPEED_1000; | ||
1583 | if (bp->duplex == DUPLEX_FULL) | ||
1584 | bp->link_status |= LINK_1000TFD; | ||
1585 | else | ||
1586 | bp->link_status |= LINK_1000THD; | ||
1587 | break; | ||
1588 | |||
1589 | case GP_STATUS_2_5G: | ||
1590 | bp->line_speed = SPEED_2500; | ||
1591 | if (bp->duplex == DUPLEX_FULL) | ||
1592 | bp->link_status |= LINK_2500TFD; | ||
1593 | else | ||
1594 | bp->link_status |= LINK_2500THD; | ||
1595 | break; | ||
1596 | |||
1597 | case GP_STATUS_5G: | ||
1598 | case GP_STATUS_6G: | ||
1599 | BNX2X_ERR("link speed unsupported gp_status 0x%x\n", | ||
1600 | gp_status); | ||
1601 | break; | ||
1602 | |||
1603 | case GP_STATUS_10G_KX4: | ||
1604 | case GP_STATUS_10G_HIG: | ||
1605 | case GP_STATUS_10G_CX4: | ||
1606 | bp->line_speed = SPEED_10000; | ||
1607 | bp->link_status |= LINK_10GTFD; | ||
1608 | break; | ||
1609 | |||
1610 | case GP_STATUS_12G_HIG: | ||
1611 | bp->line_speed = SPEED_12000; | ||
1612 | bp->link_status |= LINK_12GTFD; | ||
1613 | break; | ||
1614 | |||
1615 | case GP_STATUS_12_5G: | ||
1616 | bp->line_speed = SPEED_12500; | ||
1617 | bp->link_status |= LINK_12_5GTFD; | ||
1618 | break; | ||
1619 | |||
1620 | case GP_STATUS_13G: | ||
1621 | bp->line_speed = SPEED_13000; | ||
1622 | bp->link_status |= LINK_13GTFD; | ||
1623 | break; | ||
1624 | |||
1625 | case GP_STATUS_15G: | ||
1626 | bp->line_speed = SPEED_15000; | ||
1627 | bp->link_status |= LINK_15GTFD; | ||
1628 | break; | ||
1629 | |||
1630 | case GP_STATUS_16G: | ||
1631 | bp->line_speed = SPEED_16000; | ||
1632 | bp->link_status |= LINK_16GTFD; | ||
1633 | break; | ||
1634 | |||
1635 | default: | ||
1636 | BNX2X_ERR("link speed unsupported gp_status 0x%x\n", | ||
1637 | gp_status); | ||
1638 | break; | ||
1639 | } | ||
1640 | |||
1641 | bp->link_status |= LINK_STATUS_SERDES_LINK; | ||
1642 | |||
1643 | if (bp->req_autoneg & AUTONEG_SPEED) { | ||
1644 | bp->link_status |= LINK_STATUS_AUTO_NEGOTIATE_ENABLED; | ||
1645 | |||
1646 | if (gp_status & MDIO_AN_CL73_OR_37_COMPLETE) | ||
1647 | bp->link_status |= | ||
1648 | LINK_STATUS_AUTO_NEGOTIATE_COMPLETE; | ||
1649 | |||
1650 | if (bp->autoneg & AUTONEG_PARALLEL) | ||
1651 | bp->link_status |= | ||
1652 | LINK_STATUS_PARALLEL_DETECTION_USED; | ||
1653 | } | ||
1654 | |||
1655 | if (bp->flow_ctrl & FLOW_CTRL_TX) | ||
1656 | bp->link_status |= LINK_STATUS_TX_FLOW_CONTROL_ENABLED; | ||
1657 | |||
1658 | if (bp->flow_ctrl & FLOW_CTRL_RX) | ||
1659 | bp->link_status |= LINK_STATUS_RX_FLOW_CONTROL_ENABLED; | ||
1660 | |||
1661 | } else { /* link_down */ | ||
1662 | DP(NETIF_MSG_LINK, "link down\n"); | ||
1663 | |||
1664 | bp->link_up = 0; | ||
1665 | |||
1666 | bp->line_speed = 0; | ||
1667 | bp->duplex = DUPLEX_FULL; | ||
1668 | bp->flow_ctrl = 0; | ||
1669 | } | ||
1670 | |||
1671 | DP(NETIF_MSG_LINK, "gp_status 0x%x link_up %d\n" | ||
1672 | DP_LEVEL " line_speed %d duplex %d flow_ctrl 0x%x" | ||
1673 | " link_status 0x%x\n", | ||
1674 | gp_status, bp->link_up, bp->line_speed, bp->duplex, bp->flow_ctrl, | ||
1675 | bp->link_status); | ||
1676 | } | ||
1677 | |||
1678 | static void bnx2x_link_int_ack(struct bnx2x *bp, int is_10g) | ||
1679 | { | ||
1680 | int port = bp->port; | ||
1681 | |||
1682 | /* first reset all status | ||
1683 | * we asume only one line will be change at a time */ | ||
1684 | bnx2x_bits_dis(bp, NIG_REG_STATUS_INTERRUPT_PORT0 + port*4, | ||
1685 | (NIG_XGXS0_LINK_STATUS | | ||
1686 | NIG_SERDES0_LINK_STATUS | | ||
1687 | NIG_STATUS_INTERRUPT_XGXS0_LINK10G)); | ||
1688 | if (bp->link_up) { | ||
1689 | if (is_10g) { | ||
1690 | /* Disable the 10G link interrupt | ||
1691 | * by writing 1 to the status register | ||
1692 | */ | ||
1693 | DP(NETIF_MSG_LINK, "10G XGXS link up\n"); | ||
1694 | bnx2x_bits_en(bp, | ||
1695 | NIG_REG_STATUS_INTERRUPT_PORT0 + port*4, | ||
1696 | NIG_STATUS_INTERRUPT_XGXS0_LINK10G); | ||
1697 | |||
1698 | } else if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
1699 | /* Disable the link interrupt | ||
1700 | * by writing 1 to the relevant lane | ||
1701 | * in the status register | ||
1702 | */ | ||
1703 | DP(NETIF_MSG_LINK, "1G XGXS link up\n"); | ||
1704 | bnx2x_bits_en(bp, | ||
1705 | NIG_REG_STATUS_INTERRUPT_PORT0 + port*4, | ||
1706 | ((1 << bp->ser_lane) << | ||
1707 | NIG_XGXS0_LINK_STATUS_SIZE)); | ||
1708 | |||
1709 | } else { /* SerDes */ | ||
1710 | DP(NETIF_MSG_LINK, "SerDes link up\n"); | ||
1711 | /* Disable the link interrupt | ||
1712 | * by writing 1 to the status register | ||
1713 | */ | ||
1714 | bnx2x_bits_en(bp, | ||
1715 | NIG_REG_STATUS_INTERRUPT_PORT0 + port*4, | ||
1716 | NIG_SERDES0_LINK_STATUS); | ||
1717 | } | ||
1718 | |||
1719 | } else { /* link_down */ | ||
1720 | } | ||
1721 | } | ||
1722 | |||
1723 | static int bnx2x_ext_phy_is_link_up(struct bnx2x *bp) | ||
1724 | { | ||
1725 | u32 ext_phy_type; | ||
1726 | u32 ext_phy_addr; | ||
1727 | u32 local_phy; | ||
1728 | u32 val = 0; | ||
1729 | u32 rx_sd, pcs_status; | ||
1730 | |||
1731 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
1732 | local_phy = bp->phy_addr; | ||
1733 | ext_phy_addr = ((bp->ext_phy_config & | ||
1734 | PORT_HW_CFG_XGXS_EXT_PHY_ADDR_MASK) >> | ||
1735 | PORT_HW_CFG_XGXS_EXT_PHY_ADDR_SHIFT); | ||
1736 | bp->phy_addr = (u8)ext_phy_addr; | ||
1737 | |||
1738 | ext_phy_type = XGXS_EXT_PHY_TYPE(bp); | ||
1739 | switch (ext_phy_type) { | ||
1740 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_DIRECT: | ||
1741 | DP(NETIF_MSG_LINK, "XGXS Direct\n"); | ||
1742 | val = 1; | ||
1743 | break; | ||
1744 | |||
1745 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8705: | ||
1746 | DP(NETIF_MSG_LINK, "XGXS 8705\n"); | ||
1747 | bnx2x_mdio45_read(bp, EXT_PHY_OPT_WIS_DEVAD, | ||
1748 | EXT_PHY_OPT_LASI_STATUS, &val); | ||
1749 | DP(NETIF_MSG_LINK, "8705 LASI status is %d\n", val); | ||
1750 | |||
1751 | bnx2x_mdio45_read(bp, EXT_PHY_OPT_WIS_DEVAD, | ||
1752 | EXT_PHY_OPT_LASI_STATUS, &val); | ||
1753 | DP(NETIF_MSG_LINK, "8705 LASI status is %d\n", val); | ||
1754 | |||
1755 | bnx2x_mdio45_read(bp, EXT_PHY_OPT_PMA_PMD_DEVAD, | ||
1756 | EXT_PHY_OPT_PMD_RX_SD, &rx_sd); | ||
1757 | val = (rx_sd & 0x1); | ||
1758 | break; | ||
1759 | |||
1760 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8706: | ||
1761 | DP(NETIF_MSG_LINK, "XGXS 8706\n"); | ||
1762 | bnx2x_mdio45_read(bp, EXT_PHY_OPT_PMA_PMD_DEVAD, | ||
1763 | EXT_PHY_OPT_LASI_STATUS, &val); | ||
1764 | DP(NETIF_MSG_LINK, "8706 LASI status is %d\n", val); | ||
1765 | |||
1766 | bnx2x_mdio45_read(bp, EXT_PHY_OPT_PMA_PMD_DEVAD, | ||
1767 | EXT_PHY_OPT_LASI_STATUS, &val); | ||
1768 | DP(NETIF_MSG_LINK, "8706 LASI status is %d\n", val); | ||
1769 | |||
1770 | bnx2x_mdio45_read(bp, EXT_PHY_OPT_PMA_PMD_DEVAD, | ||
1771 | EXT_PHY_OPT_PMD_RX_SD, &rx_sd); | ||
1772 | bnx2x_mdio45_read(bp, EXT_PHY_OPT_PCS_DEVAD, | ||
1773 | EXT_PHY_OPT_PCS_STATUS, &pcs_status); | ||
1774 | DP(NETIF_MSG_LINK, "8706 rx_sd 0x%x" | ||
1775 | " pcs_status 0x%x\n", rx_sd, pcs_status); | ||
1776 | /* link is up if both bit 0 of pmd_rx and | ||
1777 | * bit 0 of pcs_status are set | ||
1778 | */ | ||
1779 | val = (rx_sd & pcs_status); | ||
1780 | break; | ||
1781 | |||
1782 | default: | ||
1783 | DP(NETIF_MSG_LINK, "BAD XGXS ext_phy_config 0x%x\n", | ||
1784 | bp->ext_phy_config); | ||
1785 | val = 0; | ||
1786 | break; | ||
1787 | } | ||
1788 | bp->phy_addr = local_phy; | ||
1789 | |||
1790 | } else { /* SerDes */ | ||
1791 | ext_phy_type = SERDES_EXT_PHY_TYPE(bp); | ||
1792 | switch (ext_phy_type) { | ||
1793 | case PORT_HW_CFG_SERDES_EXT_PHY_TYPE_DIRECT: | ||
1794 | DP(NETIF_MSG_LINK, "SerDes Direct\n"); | ||
1795 | val = 1; | ||
1796 | break; | ||
1797 | |||
1798 | case PORT_HW_CFG_SERDES_EXT_PHY_TYPE_BCM5482: | ||
1799 | DP(NETIF_MSG_LINK, "SerDes 5482\n"); | ||
1800 | val = 1; | ||
1801 | break; | ||
1802 | |||
1803 | default: | ||
1804 | DP(NETIF_MSG_LINK, "BAD SerDes ext_phy_config 0x%x\n", | ||
1805 | bp->ext_phy_config); | ||
1806 | val = 0; | ||
1807 | break; | ||
1808 | } | ||
1809 | } | ||
1810 | |||
1811 | return val; | ||
1812 | } | ||
1813 | |||
1814 | static void bnx2x_bmac_enable(struct bnx2x *bp, int is_lb) | ||
1815 | { | ||
1816 | int port = bp->port; | ||
1817 | u32 bmac_addr = port ? NIG_REG_INGRESS_BMAC1_MEM : | ||
1818 | NIG_REG_INGRESS_BMAC0_MEM; | ||
1819 | u32 wb_write[2]; | ||
1820 | u32 val; | ||
1821 | |||
1822 | DP(NETIF_MSG_LINK, "enableing BigMAC\n"); | ||
1823 | /* reset and unreset the BigMac */ | ||
1824 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_CLEAR, | ||
1825 | (MISC_REGISTERS_RESET_REG_2_RST_BMAC0 << port)); | ||
1826 | msleep(5); | ||
1827 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_SET, | ||
1828 | (MISC_REGISTERS_RESET_REG_2_RST_BMAC0 << port)); | ||
1829 | |||
1830 | /* enable access for bmac registers */ | ||
1831 | NIG_WR(NIG_REG_BMAC0_REGS_OUT_EN + port*4, 0x1); | ||
1832 | |||
1833 | /* XGXS control */ | ||
1834 | wb_write[0] = 0x3c; | ||
1835 | wb_write[1] = 0; | ||
1836 | REG_WR_DMAE(bp, bmac_addr + BIGMAC_REGISTER_BMAC_XGXS_CONTROL, | ||
1837 | wb_write, 2); | ||
1838 | |||
1839 | /* tx MAC SA */ | ||
1840 | wb_write[0] = ((bp->dev->dev_addr[2] << 24) | | ||
1841 | (bp->dev->dev_addr[3] << 16) | | ||
1842 | (bp->dev->dev_addr[4] << 8) | | ||
1843 | bp->dev->dev_addr[5]); | ||
1844 | wb_write[1] = ((bp->dev->dev_addr[0] << 8) | | ||
1845 | bp->dev->dev_addr[1]); | ||
1846 | REG_WR_DMAE(bp, bmac_addr + BIGMAC_REGISTER_TX_SOURCE_ADDR, | ||
1847 | wb_write, 2); | ||
1848 | |||
1849 | /* tx control */ | ||
1850 | val = 0xc0; | ||
1851 | if (bp->flow_ctrl & FLOW_CTRL_TX) | ||
1852 | val |= 0x800000; | ||
1853 | wb_write[0] = val; | ||
1854 | wb_write[1] = 0; | ||
1855 | REG_WR_DMAE(bp, bmac_addr + BIGMAC_REGISTER_TX_CONTROL, wb_write, 2); | ||
1856 | |||
1857 | /* set tx mtu */ | ||
1858 | wb_write[0] = ETH_MAX_JUMBO_PACKET_SIZE + ETH_OVREHEAD; /* -CRC */ | ||
1859 | wb_write[1] = 0; | ||
1860 | REG_WR_DMAE(bp, bmac_addr + BIGMAC_REGISTER_TX_MAX_SIZE, wb_write, 2); | ||
1861 | |||
1862 | /* mac control */ | ||
1863 | val = 0x3; | ||
1864 | if (is_lb) { | ||
1865 | val |= 0x4; | ||
1866 | DP(NETIF_MSG_LINK, "enable bmac loopback\n"); | ||
1867 | } | ||
1868 | wb_write[0] = val; | ||
1869 | wb_write[1] = 0; | ||
1870 | REG_WR_DMAE(bp, bmac_addr + BIGMAC_REGISTER_BMAC_CONTROL, | ||
1871 | wb_write, 2); | ||
1872 | |||
1873 | /* rx control set to don't strip crc */ | ||
1874 | val = 0x14; | ||
1875 | if (bp->flow_ctrl & FLOW_CTRL_RX) | ||
1876 | val |= 0x20; | ||
1877 | wb_write[0] = val; | ||
1878 | wb_write[1] = 0; | ||
1879 | REG_WR_DMAE(bp, bmac_addr + BIGMAC_REGISTER_RX_CONTROL, wb_write, 2); | ||
1880 | |||
1881 | /* set rx mtu */ | ||
1882 | wb_write[0] = ETH_MAX_JUMBO_PACKET_SIZE + ETH_OVREHEAD; | ||
1883 | wb_write[1] = 0; | ||
1884 | REG_WR_DMAE(bp, bmac_addr + BIGMAC_REGISTER_RX_MAX_SIZE, wb_write, 2); | ||
1885 | |||
1886 | /* set cnt max size */ | ||
1887 | wb_write[0] = ETH_MAX_JUMBO_PACKET_SIZE + ETH_OVREHEAD; /* -VLAN */ | ||
1888 | wb_write[1] = 0; | ||
1889 | REG_WR_DMAE(bp, bmac_addr + BIGMAC_REGISTER_CNT_MAX_SIZE, | ||
1890 | wb_write, 2); | ||
1891 | |||
1892 | /* configure safc */ | ||
1893 | wb_write[0] = 0x1000200; | ||
1894 | wb_write[1] = 0; | ||
1895 | REG_WR_DMAE(bp, bmac_addr + BIGMAC_REGISTER_RX_LLFC_MSG_FLDS, | ||
1896 | wb_write, 2); | ||
1897 | |||
1898 | /* fix for emulation */ | ||
1899 | if (CHIP_REV(bp) == CHIP_REV_EMUL) { | ||
1900 | wb_write[0] = 0xf000; | ||
1901 | wb_write[1] = 0; | ||
1902 | REG_WR_DMAE(bp, | ||
1903 | bmac_addr + BIGMAC_REGISTER_TX_PAUSE_THRESHOLD, | ||
1904 | wb_write, 2); | ||
1905 | } | ||
1906 | |||
1907 | /* reset old bmac stats */ | ||
1908 | memset(&bp->old_bmac, 0, sizeof(struct bmac_stats)); | ||
1909 | |||
1910 | NIG_WR(NIG_REG_XCM0_OUT_EN + port*4, 0x0); | ||
1911 | |||
1912 | /* select XGXS */ | ||
1913 | NIG_WR(NIG_REG_XGXS_SERDES0_MODE_SEL + port*4, 0x1); | ||
1914 | NIG_WR(NIG_REG_XGXS_LANE_SEL_P0 + port*4, 0x0); | ||
1915 | |||
1916 | /* disable the NIG in/out to the emac */ | ||
1917 | NIG_WR(NIG_REG_EMAC0_IN_EN + port*4, 0x0); | ||
1918 | NIG_WR(NIG_REG_EMAC0_PAUSE_OUT_EN + port*4, 0x0); | ||
1919 | NIG_WR(NIG_REG_EGRESS_EMAC0_OUT_EN + port*4, 0x0); | ||
1920 | |||
1921 | /* enable the NIG in/out to the bmac */ | ||
1922 | NIG_WR(NIG_REG_EGRESS_EMAC0_PORT + port*4, 0x0); | ||
1923 | |||
1924 | NIG_WR(NIG_REG_BMAC0_IN_EN + port*4, 0x1); | ||
1925 | val = 0; | ||
1926 | if (bp->flow_ctrl & FLOW_CTRL_TX) | ||
1927 | val = 1; | ||
1928 | NIG_WR(NIG_REG_BMAC0_PAUSE_OUT_EN + port*4, val); | ||
1929 | NIG_WR(NIG_REG_BMAC0_OUT_EN + port*4, 0x1); | ||
1930 | |||
1931 | bp->phy_flags |= PHY_BMAC_FLAG; | ||
1932 | |||
1933 | bp->stats_state = STATS_STATE_ENABLE; | ||
1934 | } | ||
1935 | |||
1936 | static void bnx2x_emac_enable(struct bnx2x *bp) | ||
1937 | { | ||
1938 | int port = bp->port; | ||
1939 | u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0; | ||
1940 | u32 val; | ||
1941 | int timeout; | ||
1942 | |||
1943 | DP(NETIF_MSG_LINK, "enableing EMAC\n"); | ||
1944 | /* reset and unreset the emac core */ | ||
1945 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_CLEAR, | ||
1946 | (MISC_REGISTERS_RESET_REG_2_RST_EMAC0_HARD_CORE << port)); | ||
1947 | msleep(5); | ||
1948 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_SET, | ||
1949 | (MISC_REGISTERS_RESET_REG_2_RST_EMAC0_HARD_CORE << port)); | ||
1950 | |||
1951 | /* enable emac and not bmac */ | ||
1952 | NIG_WR(NIG_REG_EGRESS_EMAC0_PORT + port*4, 1); | ||
1953 | |||
1954 | /* for paladium */ | ||
1955 | if (CHIP_REV(bp) == CHIP_REV_EMUL) { | ||
1956 | /* Use lane 1 (of lanes 0-3) */ | ||
1957 | NIG_WR(NIG_REG_XGXS_LANE_SEL_P0 + port*4, 1); | ||
1958 | NIG_WR(NIG_REG_XGXS_SERDES0_MODE_SEL + port*4, 1); | ||
1959 | } | ||
1960 | /* for fpga */ | ||
1961 | else if (CHIP_REV(bp) == CHIP_REV_FPGA) { | ||
1962 | /* Use lane 1 (of lanes 0-3) */ | ||
1963 | NIG_WR(NIG_REG_XGXS_LANE_SEL_P0 + port*4, 1); | ||
1964 | NIG_WR(NIG_REG_XGXS_SERDES0_MODE_SEL + port*4, 0); | ||
1965 | } | ||
1966 | /* ASIC */ | ||
1967 | else { | ||
1968 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
1969 | DP(NETIF_MSG_LINK, "XGXS\n"); | ||
1970 | /* select the master lanes (out of 0-3) */ | ||
1971 | NIG_WR(NIG_REG_XGXS_LANE_SEL_P0 + port*4, | ||
1972 | bp->ser_lane); | ||
1973 | /* select XGXS */ | ||
1974 | NIG_WR(NIG_REG_XGXS_SERDES0_MODE_SEL + port*4, 1); | ||
1975 | |||
1976 | } else { /* SerDes */ | ||
1977 | DP(NETIF_MSG_LINK, "SerDes\n"); | ||
1978 | /* select SerDes */ | ||
1979 | NIG_WR(NIG_REG_XGXS_SERDES0_MODE_SEL + port*4, 0); | ||
1980 | } | ||
1981 | } | ||
1982 | |||
1983 | /* enable emac */ | ||
1984 | NIG_WR(NIG_REG_NIG_EMAC0_EN + port*4, 1); | ||
1985 | |||
1986 | /* init emac - use read-modify-write */ | ||
1987 | /* self clear reset */ | ||
1988 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MODE); | ||
1989 | EMAC_WR(EMAC_REG_EMAC_MODE, (val | EMAC_MODE_RESET)); | ||
1990 | |||
1991 | timeout = 200; | ||
1992 | while (val & EMAC_MODE_RESET) { | ||
1993 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MODE); | ||
1994 | DP(NETIF_MSG_LINK, "EMAC reset reg is %u\n", val); | ||
1995 | if (!timeout) { | ||
1996 | BNX2X_ERR("EMAC timeout!\n"); | ||
1997 | break; | ||
1998 | } | ||
1999 | timeout--; | ||
2000 | } | ||
2001 | |||
2002 | /* reset tx part */ | ||
2003 | EMAC_WR(EMAC_REG_EMAC_TX_MODE, EMAC_TX_MODE_RESET); | ||
2004 | |||
2005 | timeout = 200; | ||
2006 | while (val & EMAC_TX_MODE_RESET) { | ||
2007 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_TX_MODE); | ||
2008 | DP(NETIF_MSG_LINK, "EMAC reset reg is %u\n", val); | ||
2009 | if (!timeout) { | ||
2010 | BNX2X_ERR("EMAC timeout!\n"); | ||
2011 | break; | ||
2012 | } | ||
2013 | timeout--; | ||
2014 | } | ||
2015 | |||
2016 | if (CHIP_REV_IS_SLOW(bp)) { | ||
2017 | /* config GMII mode */ | ||
2018 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MODE); | ||
2019 | EMAC_WR(EMAC_REG_EMAC_MODE, (val | EMAC_MODE_PORT_GMII)); | ||
2020 | |||
2021 | } else { /* ASIC */ | ||
2022 | /* pause enable/disable */ | ||
2023 | bnx2x_bits_dis(bp, emac_base + EMAC_REG_EMAC_RX_MODE, | ||
2024 | EMAC_RX_MODE_FLOW_EN); | ||
2025 | if (bp->flow_ctrl & FLOW_CTRL_RX) | ||
2026 | bnx2x_bits_en(bp, emac_base + EMAC_REG_EMAC_RX_MODE, | ||
2027 | EMAC_RX_MODE_FLOW_EN); | ||
2028 | |||
2029 | bnx2x_bits_dis(bp, emac_base + EMAC_REG_EMAC_TX_MODE, | ||
2030 | EMAC_TX_MODE_EXT_PAUSE_EN); | ||
2031 | if (bp->flow_ctrl & FLOW_CTRL_TX) | ||
2032 | bnx2x_bits_en(bp, emac_base + EMAC_REG_EMAC_TX_MODE, | ||
2033 | EMAC_TX_MODE_EXT_PAUSE_EN); | ||
2034 | } | ||
2035 | |||
2036 | /* KEEP_VLAN_TAG, promiscous */ | ||
2037 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_RX_MODE); | ||
2038 | val |= EMAC_RX_MODE_KEEP_VLAN_TAG | EMAC_RX_MODE_PROMISCUOUS; | ||
2039 | EMAC_WR(EMAC_REG_EMAC_RX_MODE, val); | ||
2040 | |||
2041 | /* identify magic packets */ | ||
2042 | val = REG_RD(bp, emac_base + EMAC_REG_EMAC_MODE); | ||
2043 | EMAC_WR(EMAC_REG_EMAC_MODE, (val | EMAC_MODE_MPKT)); | ||
2044 | |||
2045 | /* enable emac for jumbo packets */ | ||
2046 | EMAC_WR(EMAC_REG_EMAC_RX_MTU_SIZE, | ||
2047 | (EMAC_RX_MTU_SIZE_JUMBO_ENA | | ||
2048 | (ETH_MAX_JUMBO_PACKET_SIZE + ETH_OVREHEAD))); /* -VLAN */ | ||
2049 | |||
2050 | /* strip CRC */ | ||
2051 | NIG_WR(NIG_REG_NIG_INGRESS_EMAC0_NO_CRC + port*4, 0x1); | ||
2052 | |||
2053 | val = ((bp->dev->dev_addr[0] << 8) | | ||
2054 | bp->dev->dev_addr[1]); | ||
2055 | EMAC_WR(EMAC_REG_EMAC_MAC_MATCH, val); | ||
2056 | |||
2057 | val = ((bp->dev->dev_addr[2] << 24) | | ||
2058 | (bp->dev->dev_addr[3] << 16) | | ||
2059 | (bp->dev->dev_addr[4] << 8) | | ||
2060 | bp->dev->dev_addr[5]); | ||
2061 | EMAC_WR(EMAC_REG_EMAC_MAC_MATCH + 4, val); | ||
2062 | |||
2063 | /* disable the NIG in/out to the bmac */ | ||
2064 | NIG_WR(NIG_REG_BMAC0_IN_EN + port*4, 0x0); | ||
2065 | NIG_WR(NIG_REG_BMAC0_PAUSE_OUT_EN + port*4, 0x0); | ||
2066 | NIG_WR(NIG_REG_BMAC0_OUT_EN + port*4, 0x0); | ||
2067 | |||
2068 | /* enable the NIG in/out to the emac */ | ||
2069 | NIG_WR(NIG_REG_EMAC0_IN_EN + port*4, 0x1); | ||
2070 | val = 0; | ||
2071 | if (bp->flow_ctrl & FLOW_CTRL_TX) | ||
2072 | val = 1; | ||
2073 | NIG_WR(NIG_REG_EMAC0_PAUSE_OUT_EN + port*4, val); | ||
2074 | NIG_WR(NIG_REG_EGRESS_EMAC0_OUT_EN + port*4, 0x1); | ||
2075 | |||
2076 | if (CHIP_REV(bp) == CHIP_REV_FPGA) { | ||
2077 | /* take the BigMac out of reset */ | ||
2078 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_SET, | ||
2079 | (MISC_REGISTERS_RESET_REG_2_RST_BMAC0 << port)); | ||
2080 | |||
2081 | /* enable access for bmac registers */ | ||
2082 | NIG_WR(NIG_REG_BMAC0_REGS_OUT_EN + port*4, 0x1); | ||
2083 | } | ||
2084 | |||
2085 | bp->phy_flags |= PHY_EMAC_FLAG; | ||
2086 | |||
2087 | bp->stats_state = STATS_STATE_ENABLE; | ||
2088 | } | ||
2089 | |||
2090 | static void bnx2x_emac_program(struct bnx2x *bp) | ||
2091 | { | ||
2092 | u16 mode = 0; | ||
2093 | int port = bp->port; | ||
2094 | |||
2095 | DP(NETIF_MSG_LINK, "setting link speed & duplex\n"); | ||
2096 | bnx2x_bits_dis(bp, GRCBASE_EMAC0 + port*0x400 + EMAC_REG_EMAC_MODE, | ||
2097 | (EMAC_MODE_25G_MODE | | ||
2098 | EMAC_MODE_PORT_MII_10M | | ||
2099 | EMAC_MODE_HALF_DUPLEX)); | ||
2100 | switch (bp->line_speed) { | ||
2101 | case SPEED_10: | ||
2102 | mode |= EMAC_MODE_PORT_MII_10M; | ||
2103 | break; | ||
2104 | |||
2105 | case SPEED_100: | ||
2106 | mode |= EMAC_MODE_PORT_MII; | ||
2107 | break; | ||
2108 | |||
2109 | case SPEED_1000: | ||
2110 | mode |= EMAC_MODE_PORT_GMII; | ||
2111 | break; | ||
2112 | |||
2113 | case SPEED_2500: | ||
2114 | mode |= (EMAC_MODE_25G_MODE | EMAC_MODE_PORT_GMII); | ||
2115 | break; | ||
2116 | |||
2117 | default: | ||
2118 | /* 10G not valid for EMAC */ | ||
2119 | BNX2X_ERR("Invalid line_speed 0x%x\n", bp->line_speed); | ||
2120 | break; | ||
2121 | } | ||
2122 | |||
2123 | if (bp->duplex == DUPLEX_HALF) | ||
2124 | mode |= EMAC_MODE_HALF_DUPLEX; | ||
2125 | bnx2x_bits_en(bp, GRCBASE_EMAC0 + port*0x400 + EMAC_REG_EMAC_MODE, | ||
2126 | mode); | ||
2127 | |||
2128 | bnx2x_leds_set(bp, bp->line_speed); | ||
2129 | } | ||
2130 | |||
2131 | static void bnx2x_set_sgmii_tx_driver(struct bnx2x *bp) | ||
2132 | { | ||
2133 | u32 lp_up2; | ||
2134 | u32 tx_driver; | ||
2135 | |||
2136 | /* read precomp */ | ||
2137 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_OVER_1G); | ||
2138 | bnx2x_mdio22_read(bp, MDIO_OVER_1G_LP_UP2, &lp_up2); | ||
2139 | |||
2140 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_TX0); | ||
2141 | bnx2x_mdio22_read(bp, MDIO_TX0_TX_DRIVER, &tx_driver); | ||
2142 | |||
2143 | /* bits [10:7] at lp_up2, positioned at [15:12] */ | ||
2144 | lp_up2 = (((lp_up2 & MDIO_OVER_1G_LP_UP2_PREEMPHASIS_MASK) >> | ||
2145 | MDIO_OVER_1G_LP_UP2_PREEMPHASIS_SHIFT) << | ||
2146 | MDIO_TX0_TX_DRIVER_PREEMPHASIS_SHIFT); | ||
2147 | |||
2148 | if ((lp_up2 != 0) && | ||
2149 | (lp_up2 != (tx_driver & MDIO_TX0_TX_DRIVER_PREEMPHASIS_MASK))) { | ||
2150 | /* replace tx_driver bits [15:12] */ | ||
2151 | tx_driver &= ~MDIO_TX0_TX_DRIVER_PREEMPHASIS_MASK; | ||
2152 | tx_driver |= lp_up2; | ||
2153 | bnx2x_mdio22_write(bp, MDIO_TX0_TX_DRIVER, tx_driver); | ||
2154 | } | ||
2155 | } | ||
2156 | |||
2157 | static void bnx2x_pbf_update(struct bnx2x *bp) | ||
2158 | { | ||
2159 | int port = bp->port; | ||
2160 | u32 init_crd, crd; | ||
2161 | u32 count = 1000; | ||
2162 | u32 pause = 0; | ||
2163 | |||
2164 | |||
2165 | /* disable port */ | ||
2166 | REG_WR(bp, PBF_REG_DISABLE_NEW_TASK_PROC_P0 + port*4, 0x1); | ||
2167 | |||
2168 | /* wait for init credit */ | ||
2169 | init_crd = REG_RD(bp, PBF_REG_P0_INIT_CRD + port*4); | ||
2170 | crd = REG_RD(bp, PBF_REG_P0_CREDIT + port*8); | ||
2171 | DP(NETIF_MSG_LINK, "init_crd 0x%x crd 0x%x\n", init_crd, crd); | ||
2172 | |||
2173 | while ((init_crd != crd) && count) { | ||
2174 | msleep(5); | ||
2175 | |||
2176 | crd = REG_RD(bp, PBF_REG_P0_CREDIT + port*8); | ||
2177 | count--; | ||
2178 | } | ||
2179 | crd = REG_RD(bp, PBF_REG_P0_CREDIT + port*8); | ||
2180 | if (init_crd != crd) | ||
2181 | BNX2X_ERR("BUG! init_crd 0x%x != crd 0x%x\n", init_crd, crd); | ||
2182 | |||
2183 | if (bp->flow_ctrl & FLOW_CTRL_RX) | ||
2184 | pause = 1; | ||
2185 | REG_WR(bp, PBF_REG_P0_PAUSE_ENABLE + port*4, pause); | ||
2186 | if (pause) { | ||
2187 | /* update threshold */ | ||
2188 | REG_WR(bp, PBF_REG_P0_ARB_THRSH + port*4, 0); | ||
2189 | /* update init credit */ | ||
2190 | init_crd = 778; /* (800-18-4) */ | ||
2191 | |||
2192 | } else { | ||
2193 | u32 thresh = (ETH_MAX_JUMBO_PACKET_SIZE + ETH_OVREHEAD)/16; | ||
2194 | |||
2195 | /* update threshold */ | ||
2196 | REG_WR(bp, PBF_REG_P0_ARB_THRSH + port*4, thresh); | ||
2197 | /* update init credit */ | ||
2198 | switch (bp->line_speed) { | ||
2199 | case SPEED_10: | ||
2200 | case SPEED_100: | ||
2201 | case SPEED_1000: | ||
2202 | init_crd = thresh + 55 - 22; | ||
2203 | break; | ||
2204 | |||
2205 | case SPEED_2500: | ||
2206 | init_crd = thresh + 138 - 22; | ||
2207 | break; | ||
2208 | |||
2209 | case SPEED_10000: | ||
2210 | init_crd = thresh + 553 - 22; | ||
2211 | break; | ||
2212 | |||
2213 | default: | ||
2214 | BNX2X_ERR("Invalid line_speed 0x%x\n", | ||
2215 | bp->line_speed); | ||
2216 | break; | ||
2217 | } | ||
2218 | } | ||
2219 | REG_WR(bp, PBF_REG_P0_INIT_CRD + port*4, init_crd); | ||
2220 | DP(NETIF_MSG_LINK, "PBF updated to speed %d credit %d\n", | ||
2221 | bp->line_speed, init_crd); | ||
2222 | |||
2223 | /* probe the credit changes */ | ||
2224 | REG_WR(bp, PBF_REG_INIT_P0 + port*4, 0x1); | ||
2225 | msleep(5); | ||
2226 | REG_WR(bp, PBF_REG_INIT_P0 + port*4, 0x0); | ||
2227 | |||
2228 | /* enable port */ | ||
2229 | REG_WR(bp, PBF_REG_DISABLE_NEW_TASK_PROC_P0 + port*4, 0x0); | ||
2230 | } | ||
2231 | |||
2232 | static void bnx2x_update_mng(struct bnx2x *bp) | ||
2233 | { | ||
2234 | if (!nomcp) | ||
2235 | SHMEM_WR(bp, drv_fw_mb[bp->port].link_status, | ||
2236 | bp->link_status); | ||
2237 | } | ||
2238 | |||
2239 | static void bnx2x_link_report(struct bnx2x *bp) | ||
2240 | { | ||
2241 | if (bp->link_up) { | ||
2242 | netif_carrier_on(bp->dev); | ||
2243 | printk(KERN_INFO PFX "%s NIC Link is Up, ", bp->dev->name); | ||
2244 | |||
2245 | printk("%d Mbps ", bp->line_speed); | ||
2246 | |||
2247 | if (bp->duplex == DUPLEX_FULL) | ||
2248 | printk("full duplex"); | ||
2249 | else | ||
2250 | printk("half duplex"); | ||
2251 | |||
2252 | if (bp->flow_ctrl) { | ||
2253 | if (bp->flow_ctrl & FLOW_CTRL_RX) { | ||
2254 | printk(", receive "); | ||
2255 | if (bp->flow_ctrl & FLOW_CTRL_TX) | ||
2256 | printk("& transmit "); | ||
2257 | } else { | ||
2258 | printk(", transmit "); | ||
2259 | } | ||
2260 | printk("flow control ON"); | ||
2261 | } | ||
2262 | printk("\n"); | ||
2263 | |||
2264 | } else { /* link_down */ | ||
2265 | netif_carrier_off(bp->dev); | ||
2266 | printk(KERN_INFO PFX "%s NIC Link is Down\n", bp->dev->name); | ||
2267 | } | ||
2268 | } | ||
2269 | |||
2270 | static void bnx2x_link_up(struct bnx2x *bp) | ||
2271 | { | ||
2272 | int port = bp->port; | ||
2273 | |||
2274 | /* PBF - link up */ | ||
2275 | bnx2x_pbf_update(bp); | ||
2276 | |||
2277 | /* disable drain */ | ||
2278 | NIG_WR(NIG_REG_EGRESS_DRAIN0_MODE + port*4, 0); | ||
2279 | |||
2280 | /* update shared memory */ | ||
2281 | bnx2x_update_mng(bp); | ||
2282 | |||
2283 | /* indicate link up */ | ||
2284 | bnx2x_link_report(bp); | ||
2285 | } | ||
2286 | |||
2287 | static void bnx2x_link_down(struct bnx2x *bp) | ||
2288 | { | ||
2289 | int port = bp->port; | ||
2290 | |||
2291 | /* notify stats */ | ||
2292 | if (bp->stats_state != STATS_STATE_DISABLE) { | ||
2293 | bp->stats_state = STATS_STATE_STOP; | ||
2294 | DP(BNX2X_MSG_STATS, "stats_state - STOP\n"); | ||
2295 | } | ||
2296 | |||
2297 | /* indicate link down */ | ||
2298 | bp->phy_flags &= ~(PHY_BMAC_FLAG | PHY_EMAC_FLAG); | ||
2299 | |||
2300 | /* reset BigMac */ | ||
2301 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_CLEAR, | ||
2302 | (MISC_REGISTERS_RESET_REG_2_RST_BMAC0 << port)); | ||
2303 | |||
2304 | /* ignore drain flag interrupt */ | ||
2305 | /* activate nig drain */ | ||
2306 | NIG_WR(NIG_REG_EGRESS_DRAIN0_MODE + port*4, 1); | ||
2307 | |||
2308 | /* update shared memory */ | ||
2309 | bnx2x_update_mng(bp); | ||
2310 | |||
2311 | /* indicate link down */ | ||
2312 | bnx2x_link_report(bp); | ||
2313 | } | ||
2314 | |||
2315 | static void bnx2x_init_mac_stats(struct bnx2x *bp); | ||
2316 | |||
2317 | /* This function is called upon link interrupt */ | ||
2318 | static void bnx2x_link_update(struct bnx2x *bp) | ||
2319 | { | ||
2320 | u32 gp_status; | ||
2321 | int port = bp->port; | ||
2322 | int i; | ||
2323 | int link_10g; | ||
2324 | |||
2325 | DP(NETIF_MSG_LINK, "port %x, is xgxs %x, stat_mask 0x%x," | ||
2326 | " int_mask 0x%x, saved_mask 0x%x, MI_INT %x, SERDES_LINK %x," | ||
2327 | " 10G %x, XGXS_LINK %x\n", port, (bp->phy_flags & PHY_XGXS_FLAG), | ||
2328 | REG_RD(bp, NIG_REG_STATUS_INTERRUPT_PORT0 + port*4), | ||
2329 | REG_RD(bp, NIG_REG_MASK_INTERRUPT_PORT0 + port*4), bp->nig_mask, | ||
2330 | REG_RD(bp, NIG_REG_EMAC0_STATUS_MISC_MI_INT + port*0x18), | ||
2331 | REG_RD(bp, NIG_REG_SERDES0_STATUS_LINK_STATUS + port*0x3c), | ||
2332 | REG_RD(bp, NIG_REG_XGXS0_STATUS_LINK10G + port*0x68), | ||
2333 | REG_RD(bp, NIG_REG_XGXS0_STATUS_LINK_STATUS + port*0x68) | ||
2334 | ); | ||
2335 | |||
2336 | might_sleep(); | ||
2337 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_GP_STATUS); | ||
2338 | /* avoid fast toggling */ | ||
2339 | for (i = 0 ; i < 10 ; i++) { | ||
2340 | msleep(10); | ||
2341 | bnx2x_mdio22_read(bp, MDIO_GP_STATUS_TOP_AN_STATUS1, | ||
2342 | &gp_status); | ||
2343 | } | ||
2344 | |||
2345 | bnx2x_link_settings_status(bp, gp_status); | ||
2346 | |||
2347 | /* anything 10 and over uses the bmac */ | ||
2348 | link_10g = ((bp->line_speed >= SPEED_10000) && | ||
2349 | (bp->line_speed <= SPEED_16000)); | ||
2350 | |||
2351 | bnx2x_link_int_ack(bp, link_10g); | ||
2352 | |||
2353 | /* link is up only if both local phy and external phy are up */ | ||
2354 | if (bp->link_up && bnx2x_ext_phy_is_link_up(bp)) { | ||
2355 | if (link_10g) { | ||
2356 | bnx2x_bmac_enable(bp, 0); | ||
2357 | bnx2x_leds_set(bp, SPEED_10000); | ||
2358 | |||
2359 | } else { | ||
2360 | bnx2x_emac_enable(bp); | ||
2361 | bnx2x_emac_program(bp); | ||
2362 | |||
2363 | /* AN complete? */ | ||
2364 | if (gp_status & MDIO_AN_CL73_OR_37_COMPLETE) { | ||
2365 | if (!(bp->phy_flags & PHY_SGMII_FLAG)) | ||
2366 | bnx2x_set_sgmii_tx_driver(bp); | ||
2367 | } | ||
2368 | } | ||
2369 | bnx2x_link_up(bp); | ||
2370 | |||
2371 | } else { /* link down */ | ||
2372 | bnx2x_leds_unset(bp); | ||
2373 | bnx2x_link_down(bp); | ||
2374 | } | ||
2375 | |||
2376 | bnx2x_init_mac_stats(bp); | ||
2377 | } | ||
2378 | |||
2379 | /* | ||
2380 | * Init service functions | ||
2381 | */ | ||
2382 | |||
2383 | static void bnx2x_set_aer_mmd(struct bnx2x *bp) | ||
2384 | { | ||
2385 | u16 offset = (bp->phy_flags & PHY_XGXS_FLAG) ? | ||
2386 | (bp->phy_addr + bp->ser_lane) : 0; | ||
2387 | |||
2388 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_AER_BLOCK); | ||
2389 | bnx2x_mdio22_write(bp, MDIO_AER_BLOCK_AER_REG, 0x3800 + offset); | ||
2390 | } | ||
2391 | |||
2392 | static void bnx2x_set_master_ln(struct bnx2x *bp) | ||
2393 | { | ||
2394 | u32 new_master_ln; | ||
2395 | |||
2396 | /* set the master_ln for AN */ | ||
2397 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_XGXS_BLOCK2); | ||
2398 | bnx2x_mdio22_read(bp, MDIO_XGXS_BLOCK2_TEST_MODE_LANE, | ||
2399 | &new_master_ln); | ||
2400 | bnx2x_mdio22_write(bp, MDIO_XGXS_BLOCK2_TEST_MODE_LANE, | ||
2401 | (new_master_ln | bp->ser_lane)); | ||
2402 | } | ||
2403 | |||
2404 | static void bnx2x_reset_unicore(struct bnx2x *bp) | ||
2405 | { | ||
2406 | u32 mii_control; | ||
2407 | int i; | ||
2408 | |||
2409 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_COMBO_IEEE0); | ||
2410 | bnx2x_mdio22_read(bp, MDIO_COMBO_IEEE0_MII_CONTROL, &mii_control); | ||
2411 | /* reset the unicore */ | ||
2412 | bnx2x_mdio22_write(bp, MDIO_COMBO_IEEE0_MII_CONTROL, | ||
2413 | (mii_control | MDIO_COMBO_IEEO_MII_CONTROL_RESET)); | ||
2414 | |||
2415 | /* wait for the reset to self clear */ | ||
2416 | for (i = 0; i < MDIO_ACCESS_TIMEOUT; i++) { | ||
2417 | udelay(5); | ||
2418 | |||
2419 | /* the reset erased the previous bank value */ | ||
2420 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_COMBO_IEEE0); | ||
2421 | bnx2x_mdio22_read(bp, MDIO_COMBO_IEEE0_MII_CONTROL, | ||
2422 | &mii_control); | ||
2423 | |||
2424 | if (!(mii_control & MDIO_COMBO_IEEO_MII_CONTROL_RESET)) { | ||
2425 | udelay(5); | ||
2426 | return; | ||
2427 | } | ||
2428 | } | ||
2429 | |||
2430 | BNX2X_ERR("BUG! unicore is still in reset!\n"); | ||
2431 | } | ||
2432 | |||
2433 | static void bnx2x_set_swap_lanes(struct bnx2x *bp) | ||
2434 | { | ||
2435 | /* Each two bits represents a lane number: | ||
2436 | No swap is 0123 => 0x1b no need to enable the swap */ | ||
2437 | |||
2438 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_XGXS_BLOCK2); | ||
2439 | if (bp->rx_lane_swap != 0x1b) { | ||
2440 | bnx2x_mdio22_write(bp, MDIO_XGXS_BLOCK2_RX_LN_SWAP, | ||
2441 | (bp->rx_lane_swap | | ||
2442 | MDIO_XGXS_BLOCK2_RX_LN_SWAP_ENABLE | | ||
2443 | MDIO_XGXS_BLOCK2_RX_LN_SWAP_FORCE_ENABLE)); | ||
2444 | } else { | ||
2445 | bnx2x_mdio22_write(bp, MDIO_XGXS_BLOCK2_RX_LN_SWAP, 0); | ||
2446 | } | ||
2447 | |||
2448 | if (bp->tx_lane_swap != 0x1b) { | ||
2449 | bnx2x_mdio22_write(bp, MDIO_XGXS_BLOCK2_TX_LN_SWAP, | ||
2450 | (bp->tx_lane_swap | | ||
2451 | MDIO_XGXS_BLOCK2_TX_LN_SWAP_ENABLE)); | ||
2452 | } else { | ||
2453 | bnx2x_mdio22_write(bp, MDIO_XGXS_BLOCK2_TX_LN_SWAP, 0); | ||
2454 | } | ||
2455 | } | ||
2456 | |||
2457 | static void bnx2x_set_parallel_detection(struct bnx2x *bp) | ||
2458 | { | ||
2459 | u32 control2; | ||
2460 | |||
2461 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_SERDES_DIGITAL); | ||
2462 | bnx2x_mdio22_read(bp, MDIO_SERDES_DIGITAL_A_1000X_CONTROL2, | ||
2463 | &control2); | ||
2464 | |||
2465 | if (bp->autoneg & AUTONEG_PARALLEL) { | ||
2466 | control2 |= MDIO_SERDES_DIGITAL_A_1000X_CONTROL2_PRL_DT_EN; | ||
2467 | } else { | ||
2468 | control2 &= ~MDIO_SERDES_DIGITAL_A_1000X_CONTROL2_PRL_DT_EN; | ||
2469 | } | ||
2470 | bnx2x_mdio22_write(bp, MDIO_SERDES_DIGITAL_A_1000X_CONTROL2, | ||
2471 | control2); | ||
2472 | |||
2473 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
2474 | DP(NETIF_MSG_LINK, "XGXS\n"); | ||
2475 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_10G_PARALLEL_DETECT); | ||
2476 | |||
2477 | bnx2x_mdio22_write(bp, | ||
2478 | MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_LINK, | ||
2479 | MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_LINK_CNT); | ||
2480 | |||
2481 | bnx2x_mdio22_read(bp, | ||
2482 | MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_CONTROL, | ||
2483 | &control2); | ||
2484 | |||
2485 | if (bp->autoneg & AUTONEG_PARALLEL) { | ||
2486 | control2 |= | ||
2487 | MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_CONTROL_PARDET10G_EN; | ||
2488 | } else { | ||
2489 | control2 &= | ||
2490 | ~MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_CONTROL_PARDET10G_EN; | ||
2491 | } | ||
2492 | bnx2x_mdio22_write(bp, | ||
2493 | MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_CONTROL, | ||
2494 | control2); | ||
2495 | } | ||
2496 | } | ||
2497 | |||
2498 | static void bnx2x_set_autoneg(struct bnx2x *bp) | ||
2499 | { | ||
2500 | u32 reg_val; | ||
2501 | |||
2502 | /* CL37 Autoneg */ | ||
2503 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_COMBO_IEEE0); | ||
2504 | bnx2x_mdio22_read(bp, MDIO_COMBO_IEEE0_MII_CONTROL, ®_val); | ||
2505 | if ((bp->req_autoneg & AUTONEG_SPEED) && | ||
2506 | (bp->autoneg & AUTONEG_CL37)) { | ||
2507 | /* CL37 Autoneg Enabled */ | ||
2508 | reg_val |= MDIO_COMBO_IEEO_MII_CONTROL_AN_EN; | ||
2509 | } else { | ||
2510 | /* CL37 Autoneg Disabled */ | ||
2511 | reg_val &= ~(MDIO_COMBO_IEEO_MII_CONTROL_AN_EN | | ||
2512 | MDIO_COMBO_IEEO_MII_CONTROL_RESTART_AN); | ||
2513 | } | ||
2514 | bnx2x_mdio22_write(bp, MDIO_COMBO_IEEE0_MII_CONTROL, reg_val); | ||
2515 | |||
2516 | /* Enable/Disable Autodetection */ | ||
2517 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_SERDES_DIGITAL); | ||
2518 | bnx2x_mdio22_read(bp, MDIO_SERDES_DIGITAL_A_1000X_CONTROL1, ®_val); | ||
2519 | reg_val &= ~MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_SIGNAL_DETECT_EN; | ||
2520 | |||
2521 | if ((bp->req_autoneg & AUTONEG_SPEED) && | ||
2522 | (bp->autoneg & AUTONEG_SGMII_FIBER_AUTODET)) { | ||
2523 | reg_val |= MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_AUTODET; | ||
2524 | } else { | ||
2525 | reg_val &= ~MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_AUTODET; | ||
2526 | } | ||
2527 | bnx2x_mdio22_write(bp, MDIO_SERDES_DIGITAL_A_1000X_CONTROL1, reg_val); | ||
2528 | |||
2529 | /* Enable TetonII and BAM autoneg */ | ||
2530 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_BAM_NEXT_PAGE); | ||
2531 | bnx2x_mdio22_read(bp, MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL, | ||
2532 | ®_val); | ||
2533 | if ((bp->req_autoneg & AUTONEG_SPEED) && | ||
2534 | (bp->autoneg & AUTONEG_CL37) && (bp->autoneg & AUTONEG_BAM)) { | ||
2535 | /* Enable BAM aneg Mode and TetonII aneg Mode */ | ||
2536 | reg_val |= (MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL_BAM_MODE | | ||
2537 | MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL_TETON_AN); | ||
2538 | } else { | ||
2539 | /* TetonII and BAM Autoneg Disabled */ | ||
2540 | reg_val &= ~(MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL_BAM_MODE | | ||
2541 | MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL_TETON_AN); | ||
2542 | } | ||
2543 | bnx2x_mdio22_write(bp, MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL, | ||
2544 | reg_val); | ||
2545 | |||
2546 | /* Enable Clause 73 Aneg */ | ||
2547 | if ((bp->req_autoneg & AUTONEG_SPEED) && | ||
2548 | (bp->autoneg & AUTONEG_CL73)) { | ||
2549 | /* Enable BAM Station Manager */ | ||
2550 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_CL73_USERB0); | ||
2551 | bnx2x_mdio22_write(bp, MDIO_CL73_USERB0_CL73_BAM_CTRL1, | ||
2552 | (MDIO_CL73_USERB0_CL73_BAM_CTRL1_BAM_EN | | ||
2553 | MDIO_CL73_USERB0_CL73_BAM_CTRL1_BAM_STATION_MNGR_EN | | ||
2554 | MDIO_CL73_USERB0_CL73_BAM_CTRL1_BAM_NP_AFTER_BP_EN)); | ||
2555 | |||
2556 | /* Merge CL73 and CL37 aneg resolution */ | ||
2557 | bnx2x_mdio22_read(bp, MDIO_CL73_USERB0_CL73_BAM_CTRL3, | ||
2558 | ®_val); | ||
2559 | bnx2x_mdio22_write(bp, MDIO_CL73_USERB0_CL73_BAM_CTRL3, | ||
2560 | (reg_val | | ||
2561 | MDIO_CL73_USERB0_CL73_BAM_CTRL3_USE_CL73_HCD_MR)); | ||
2562 | |||
2563 | /* Set the CL73 AN speed */ | ||
2564 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_CL73_IEEEB1); | ||
2565 | bnx2x_mdio22_read(bp, MDIO_CL73_IEEEB1_AN_ADV2, ®_val); | ||
2566 | /* In the SerDes we support only the 1G. | ||
2567 | In the XGXS we support the 10G KX4 | ||
2568 | but we currently do not support the KR */ | ||
2569 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
2570 | DP(NETIF_MSG_LINK, "XGXS\n"); | ||
2571 | /* 10G KX4 */ | ||
2572 | reg_val |= MDIO_CL73_IEEEB1_AN_ADV2_ADVR_10G_KX4; | ||
2573 | } else { | ||
2574 | DP(NETIF_MSG_LINK, "SerDes\n"); | ||
2575 | /* 1000M KX */ | ||
2576 | reg_val |= MDIO_CL73_IEEEB1_AN_ADV2_ADVR_1000M_KX; | ||
2577 | } | ||
2578 | bnx2x_mdio22_write(bp, MDIO_CL73_IEEEB1_AN_ADV2, reg_val); | ||
2579 | |||
2580 | /* CL73 Autoneg Enabled */ | ||
2581 | reg_val = MDIO_CL73_IEEEB0_CL73_AN_CONTROL_AN_EN; | ||
2582 | } else { | ||
2583 | /* CL73 Autoneg Disabled */ | ||
2584 | reg_val = 0; | ||
2585 | } | ||
2586 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_CL73_IEEEB0); | ||
2587 | bnx2x_mdio22_write(bp, MDIO_CL73_IEEEB0_CL73_AN_CONTROL, reg_val); | ||
2588 | } | ||
2589 | |||
2590 | /* program SerDes, forced speed */ | ||
2591 | static void bnx2x_program_serdes(struct bnx2x *bp) | ||
2592 | { | ||
2593 | u32 reg_val; | ||
2594 | |||
2595 | /* program duplex, disable autoneg */ | ||
2596 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_COMBO_IEEE0); | ||
2597 | bnx2x_mdio22_read(bp, MDIO_COMBO_IEEE0_MII_CONTROL, ®_val); | ||
2598 | reg_val &= ~(MDIO_COMBO_IEEO_MII_CONTROL_FULL_DUPLEX | | ||
2599 | MDIO_COMBO_IEEO_MII_CONTROL_AN_EN); | ||
2600 | if (bp->req_duplex == DUPLEX_FULL) | ||
2601 | reg_val |= MDIO_COMBO_IEEO_MII_CONTROL_FULL_DUPLEX; | ||
2602 | bnx2x_mdio22_write(bp, MDIO_COMBO_IEEE0_MII_CONTROL, reg_val); | ||
2603 | |||
2604 | /* program speed | ||
2605 | - needed only if the speed is greater than 1G (2.5G or 10G) */ | ||
2606 | if (bp->req_line_speed > SPEED_1000) { | ||
2607 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_SERDES_DIGITAL); | ||
2608 | bnx2x_mdio22_read(bp, MDIO_SERDES_DIGITAL_MISC1, ®_val); | ||
2609 | /* clearing the speed value before setting the right speed */ | ||
2610 | reg_val &= ~MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_MASK; | ||
2611 | reg_val |= (MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_156_25M | | ||
2612 | MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_SEL); | ||
2613 | if (bp->req_line_speed == SPEED_10000) | ||
2614 | reg_val |= | ||
2615 | MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_10G_CX4; | ||
2616 | bnx2x_mdio22_write(bp, MDIO_SERDES_DIGITAL_MISC1, reg_val); | ||
2617 | } | ||
2618 | } | ||
2619 | |||
2620 | static void bnx2x_set_brcm_cl37_advertisment(struct bnx2x *bp) | ||
2621 | { | ||
2622 | u32 val = 0; | ||
2623 | |||
2624 | /* configure the 48 bits for BAM AN */ | ||
2625 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_OVER_1G); | ||
2626 | |||
2627 | /* set extended capabilities */ | ||
2628 | if (bp->advertising & ADVERTISED_2500baseT_Full) | ||
2629 | val |= MDIO_OVER_1G_UP1_2_5G; | ||
2630 | if (bp->advertising & ADVERTISED_10000baseT_Full) | ||
2631 | val |= MDIO_OVER_1G_UP1_10G; | ||
2632 | bnx2x_mdio22_write(bp, MDIO_OVER_1G_UP1, val); | ||
2633 | |||
2634 | bnx2x_mdio22_write(bp, MDIO_OVER_1G_UP3, 0); | ||
2635 | } | ||
2636 | |||
2637 | static void bnx2x_set_ieee_aneg_advertisment(struct bnx2x *bp) | ||
2638 | { | ||
2639 | u32 an_adv; | ||
2640 | |||
2641 | /* for AN, we are always publishing full duplex */ | ||
2642 | an_adv = MDIO_COMBO_IEEE0_AUTO_NEG_ADV_FULL_DUPLEX; | ||
2643 | |||
2644 | /* set pause */ | ||
2645 | switch (bp->pause_mode) { | ||
2646 | case PAUSE_SYMMETRIC: | ||
2647 | an_adv |= MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_SYMMETRIC; | ||
2648 | break; | ||
2649 | case PAUSE_ASYMMETRIC: | ||
2650 | an_adv |= MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_ASYMMETRIC; | ||
2651 | break; | ||
2652 | case PAUSE_BOTH: | ||
2653 | an_adv |= MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_BOTH; | ||
2654 | break; | ||
2655 | case PAUSE_NONE: | ||
2656 | an_adv |= MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_NONE; | ||
2657 | break; | ||
2658 | } | ||
2659 | |||
2660 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_COMBO_IEEE0); | ||
2661 | bnx2x_mdio22_write(bp, MDIO_COMBO_IEEE0_AUTO_NEG_ADV, an_adv); | ||
2662 | } | ||
2663 | |||
2664 | static void bnx2x_restart_autoneg(struct bnx2x *bp) | ||
2665 | { | ||
2666 | if (bp->autoneg & AUTONEG_CL73) { | ||
2667 | /* enable and restart clause 73 aneg */ | ||
2668 | u32 an_ctrl; | ||
2669 | |||
2670 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_CL73_IEEEB0); | ||
2671 | bnx2x_mdio22_read(bp, MDIO_CL73_IEEEB0_CL73_AN_CONTROL, | ||
2672 | &an_ctrl); | ||
2673 | bnx2x_mdio22_write(bp, MDIO_CL73_IEEEB0_CL73_AN_CONTROL, | ||
2674 | (an_ctrl | | ||
2675 | MDIO_CL73_IEEEB0_CL73_AN_CONTROL_AN_EN | | ||
2676 | MDIO_CL73_IEEEB0_CL73_AN_CONTROL_RESTART_AN)); | ||
2677 | |||
2678 | } else { | ||
2679 | /* Enable and restart BAM/CL37 aneg */ | ||
2680 | u32 mii_control; | ||
2681 | |||
2682 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_COMBO_IEEE0); | ||
2683 | bnx2x_mdio22_read(bp, MDIO_COMBO_IEEE0_MII_CONTROL, | ||
2684 | &mii_control); | ||
2685 | bnx2x_mdio22_write(bp, MDIO_COMBO_IEEE0_MII_CONTROL, | ||
2686 | (mii_control | | ||
2687 | MDIO_COMBO_IEEO_MII_CONTROL_AN_EN | | ||
2688 | MDIO_COMBO_IEEO_MII_CONTROL_RESTART_AN)); | ||
2689 | } | ||
2690 | } | ||
2691 | |||
2692 | static void bnx2x_initialize_sgmii_process(struct bnx2x *bp) | ||
2693 | { | ||
2694 | u32 control1; | ||
2695 | |||
2696 | /* in SGMII mode, the unicore is always slave */ | ||
2697 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_SERDES_DIGITAL); | ||
2698 | bnx2x_mdio22_read(bp, MDIO_SERDES_DIGITAL_A_1000X_CONTROL1, | ||
2699 | &control1); | ||
2700 | control1 |= MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_INVERT_SIGNAL_DETECT; | ||
2701 | /* set sgmii mode (and not fiber) */ | ||
2702 | control1 &= ~(MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_FIBER_MODE | | ||
2703 | MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_AUTODET | | ||
2704 | MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_MSTR_MODE); | ||
2705 | bnx2x_mdio22_write(bp, MDIO_SERDES_DIGITAL_A_1000X_CONTROL1, | ||
2706 | control1); | ||
2707 | |||
2708 | /* if forced speed */ | ||
2709 | if (!(bp->req_autoneg & AUTONEG_SPEED)) { | ||
2710 | /* set speed, disable autoneg */ | ||
2711 | u32 mii_control; | ||
2712 | |||
2713 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_COMBO_IEEE0); | ||
2714 | bnx2x_mdio22_read(bp, MDIO_COMBO_IEEE0_MII_CONTROL, | ||
2715 | &mii_control); | ||
2716 | mii_control &= ~(MDIO_COMBO_IEEO_MII_CONTROL_AN_EN | | ||
2717 | MDIO_COMBO_IEEO_MII_CONTROL_MAN_SGMII_SP_MASK | | ||
2718 | MDIO_COMBO_IEEO_MII_CONTROL_FULL_DUPLEX); | ||
2719 | |||
2720 | switch (bp->req_line_speed) { | ||
2721 | case SPEED_100: | ||
2722 | mii_control |= | ||
2723 | MDIO_COMBO_IEEO_MII_CONTROL_MAN_SGMII_SP_100; | ||
2724 | break; | ||
2725 | case SPEED_1000: | ||
2726 | mii_control |= | ||
2727 | MDIO_COMBO_IEEO_MII_CONTROL_MAN_SGMII_SP_1000; | ||
2728 | break; | ||
2729 | case SPEED_10: | ||
2730 | /* there is nothing to set for 10M */ | ||
2731 | break; | ||
2732 | default: | ||
2733 | /* invalid speed for SGMII */ | ||
2734 | DP(NETIF_MSG_LINK, "Invalid req_line_speed 0x%x\n", | ||
2735 | bp->req_line_speed); | ||
2736 | break; | ||
2737 | } | ||
2738 | |||
2739 | /* setting the full duplex */ | ||
2740 | if (bp->req_duplex == DUPLEX_FULL) | ||
2741 | mii_control |= | ||
2742 | MDIO_COMBO_IEEO_MII_CONTROL_FULL_DUPLEX; | ||
2743 | bnx2x_mdio22_write(bp, MDIO_COMBO_IEEE0_MII_CONTROL, | ||
2744 | mii_control); | ||
2745 | |||
2746 | } else { /* AN mode */ | ||
2747 | /* enable and restart AN */ | ||
2748 | bnx2x_restart_autoneg(bp); | ||
2749 | } | ||
2750 | } | ||
2751 | |||
2752 | static void bnx2x_link_int_enable(struct bnx2x *bp) | ||
2753 | { | ||
2754 | int port = bp->port; | ||
2755 | |||
2756 | /* setting the status to report on link up | ||
2757 | for either XGXS or SerDes */ | ||
2758 | bnx2x_bits_dis(bp, NIG_REG_STATUS_INTERRUPT_PORT0 + port*4, | ||
2759 | (NIG_XGXS0_LINK_STATUS | | ||
2760 | NIG_STATUS_INTERRUPT_XGXS0_LINK10G | | ||
2761 | NIG_SERDES0_LINK_STATUS)); | ||
2762 | |||
2763 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
2764 | /* TBD - | ||
2765 | * in force mode (not AN) we can enable just the relevant | ||
2766 | * interrupt | ||
2767 | * Even in AN we might enable only one according to the AN | ||
2768 | * speed mask | ||
2769 | */ | ||
2770 | bnx2x_bits_en(bp, NIG_REG_MASK_INTERRUPT_PORT0 + port*4, | ||
2771 | (NIG_MASK_XGXS0_LINK_STATUS | | ||
2772 | NIG_MASK_XGXS0_LINK10G)); | ||
2773 | DP(NETIF_MSG_LINK, "enable XGXS interrupt\n"); | ||
2774 | |||
2775 | } else { /* SerDes */ | ||
2776 | bnx2x_bits_en(bp, NIG_REG_MASK_INTERRUPT_PORT0 + port*4, | ||
2777 | NIG_MASK_SERDES0_LINK_STATUS); | ||
2778 | DP(NETIF_MSG_LINK, "enable SerDes interrupt\n"); | ||
2779 | } | ||
2780 | } | ||
2781 | |||
2782 | static void bnx2x_ext_phy_init(struct bnx2x *bp) | ||
2783 | { | ||
2784 | int port = bp->port; | ||
2785 | u32 ext_phy_type; | ||
2786 | u32 ext_phy_addr; | ||
2787 | u32 local_phy; | ||
2788 | |||
2789 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
2790 | local_phy = bp->phy_addr; | ||
2791 | ext_phy_addr = ((bp->ext_phy_config & | ||
2792 | PORT_HW_CFG_XGXS_EXT_PHY_ADDR_MASK) >> | ||
2793 | PORT_HW_CFG_XGXS_EXT_PHY_ADDR_SHIFT); | ||
2794 | |||
2795 | ext_phy_type = XGXS_EXT_PHY_TYPE(bp); | ||
2796 | switch (ext_phy_type) { | ||
2797 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_DIRECT: | ||
2798 | DP(NETIF_MSG_LINK, "XGXS Direct\n"); | ||
2799 | break; | ||
2800 | |||
2801 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8705: | ||
2802 | DP(NETIF_MSG_LINK, "XGXS 8705\n"); | ||
2803 | bnx2x_bits_en(bp, | ||
2804 | NIG_REG_MASK_INTERRUPT_PORT0 + port*4, | ||
2805 | NIG_MASK_MI_INT); | ||
2806 | DP(NETIF_MSG_LINK, "enabled extenal phy int\n"); | ||
2807 | |||
2808 | bp->phy_addr = ext_phy_type; | ||
2809 | bnx2x_mdio45_vwrite(bp, EXT_PHY_OPT_PMA_PMD_DEVAD, | ||
2810 | EXT_PHY_OPT_PMD_MISC_CNTL, | ||
2811 | 0x8288); | ||
2812 | bnx2x_mdio45_vwrite(bp, EXT_PHY_OPT_PMA_PMD_DEVAD, | ||
2813 | EXT_PHY_OPT_PHY_IDENTIFIER, | ||
2814 | 0x7fbf); | ||
2815 | bnx2x_mdio45_vwrite(bp, EXT_PHY_OPT_PMA_PMD_DEVAD, | ||
2816 | EXT_PHY_OPT_CMU_PLL_BYPASS, | ||
2817 | 0x0100); | ||
2818 | bnx2x_mdio45_vwrite(bp, EXT_PHY_OPT_WIS_DEVAD, | ||
2819 | EXT_PHY_OPT_LASI_CNTL, 0x1); | ||
2820 | break; | ||
2821 | |||
2822 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8706: | ||
2823 | DP(NETIF_MSG_LINK, "XGXS 8706\n"); | ||
2824 | bnx2x_bits_en(bp, | ||
2825 | NIG_REG_MASK_INTERRUPT_PORT0 + port*4, | ||
2826 | NIG_MASK_MI_INT); | ||
2827 | DP(NETIF_MSG_LINK, "enabled extenal phy int\n"); | ||
2828 | |||
2829 | bp->phy_addr = ext_phy_type; | ||
2830 | bnx2x_mdio45_vwrite(bp, EXT_PHY_OPT_PMA_PMD_DEVAD, | ||
2831 | EXT_PHY_OPT_PMD_DIGITAL_CNT, | ||
2832 | 0x400); | ||
2833 | bnx2x_mdio45_vwrite(bp, EXT_PHY_OPT_PMA_PMD_DEVAD, | ||
2834 | EXT_PHY_OPT_LASI_CNTL, 0x1); | ||
2835 | break; | ||
2836 | |||
2837 | default: | ||
2838 | DP(NETIF_MSG_LINK, "BAD XGXS ext_phy_config 0x%x\n", | ||
2839 | bp->ext_phy_config); | ||
2840 | break; | ||
2841 | } | ||
2842 | bp->phy_addr = local_phy; | ||
2843 | |||
2844 | } else { /* SerDes */ | ||
2845 | /* ext_phy_addr = ((bp->ext_phy_config & | ||
2846 | PORT_HW_CFG_SERDES_EXT_PHY_ADDR_MASK) >> | ||
2847 | PORT_HW_CFG_SERDES_EXT_PHY_ADDR_SHIFT); | ||
2848 | */ | ||
2849 | ext_phy_type = SERDES_EXT_PHY_TYPE(bp); | ||
2850 | switch (ext_phy_type) { | ||
2851 | case PORT_HW_CFG_SERDES_EXT_PHY_TYPE_DIRECT: | ||
2852 | DP(NETIF_MSG_LINK, "SerDes Direct\n"); | ||
2853 | break; | ||
2854 | |||
2855 | case PORT_HW_CFG_SERDES_EXT_PHY_TYPE_BCM5482: | ||
2856 | DP(NETIF_MSG_LINK, "SerDes 5482\n"); | ||
2857 | bnx2x_bits_en(bp, | ||
2858 | NIG_REG_MASK_INTERRUPT_PORT0 + port*4, | ||
2859 | NIG_MASK_MI_INT); | ||
2860 | DP(NETIF_MSG_LINK, "enabled extenal phy int\n"); | ||
2861 | break; | ||
2862 | |||
2863 | default: | ||
2864 | DP(NETIF_MSG_LINK, "BAD SerDes ext_phy_config 0x%x\n", | ||
2865 | bp->ext_phy_config); | ||
2866 | break; | ||
2867 | } | ||
2868 | } | ||
2869 | } | ||
2870 | |||
2871 | static void bnx2x_ext_phy_reset(struct bnx2x *bp) | ||
2872 | { | ||
2873 | u32 ext_phy_type; | ||
2874 | u32 ext_phy_addr; | ||
2875 | u32 local_phy; | ||
2876 | |||
2877 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
2878 | ext_phy_type = XGXS_EXT_PHY_TYPE(bp); | ||
2879 | switch (ext_phy_type) { | ||
2880 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_DIRECT: | ||
2881 | DP(NETIF_MSG_LINK, "XGXS Direct\n"); | ||
2882 | break; | ||
2883 | |||
2884 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8705: | ||
2885 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8706: | ||
2886 | DP(NETIF_MSG_LINK, "XGXS 8705/6\n"); | ||
2887 | local_phy = bp->phy_addr; | ||
2888 | ext_phy_addr = ((bp->ext_phy_config & | ||
2889 | PORT_HW_CFG_XGXS_EXT_PHY_ADDR_MASK) >> | ||
2890 | PORT_HW_CFG_XGXS_EXT_PHY_ADDR_SHIFT); | ||
2891 | bp->phy_addr = (u8)ext_phy_addr; | ||
2892 | bnx2x_mdio45_write(bp, EXT_PHY_OPT_PMA_PMD_DEVAD, | ||
2893 | EXT_PHY_OPT_CNTL, 0xa040); | ||
2894 | bp->phy_addr = local_phy; | ||
2895 | break; | ||
2896 | |||
2897 | default: | ||
2898 | DP(NETIF_MSG_LINK, "BAD XGXS ext_phy_config 0x%x\n", | ||
2899 | bp->ext_phy_config); | ||
2900 | break; | ||
2901 | } | ||
2902 | |||
2903 | } else { /* SerDes */ | ||
2904 | ext_phy_type = SERDES_EXT_PHY_TYPE(bp); | ||
2905 | switch (ext_phy_type) { | ||
2906 | case PORT_HW_CFG_SERDES_EXT_PHY_TYPE_DIRECT: | ||
2907 | DP(NETIF_MSG_LINK, "SerDes Direct\n"); | ||
2908 | break; | ||
2909 | |||
2910 | case PORT_HW_CFG_SERDES_EXT_PHY_TYPE_BCM5482: | ||
2911 | DP(NETIF_MSG_LINK, "SerDes 5482\n"); | ||
2912 | break; | ||
2913 | |||
2914 | default: | ||
2915 | DP(NETIF_MSG_LINK, "BAD SerDes ext_phy_config 0x%x\n", | ||
2916 | bp->ext_phy_config); | ||
2917 | break; | ||
2918 | } | ||
2919 | } | ||
2920 | } | ||
2921 | |||
2922 | static void bnx2x_link_initialize(struct bnx2x *bp) | ||
2923 | { | ||
2924 | int port = bp->port; | ||
2925 | |||
2926 | /* disable attentions */ | ||
2927 | bnx2x_bits_dis(bp, NIG_REG_MASK_INTERRUPT_PORT0 + port*4, | ||
2928 | (NIG_MASK_XGXS0_LINK_STATUS | | ||
2929 | NIG_MASK_XGXS0_LINK10G | | ||
2930 | NIG_MASK_SERDES0_LINK_STATUS | | ||
2931 | NIG_MASK_MI_INT)); | ||
2932 | |||
2933 | bnx2x_ext_phy_reset(bp); | ||
2934 | |||
2935 | bnx2x_set_aer_mmd(bp); | ||
2936 | |||
2937 | if (bp->phy_flags & PHY_XGXS_FLAG) | ||
2938 | bnx2x_set_master_ln(bp); | ||
2939 | |||
2940 | /* reset the SerDes and wait for reset bit return low */ | ||
2941 | bnx2x_reset_unicore(bp); | ||
2942 | |||
2943 | bnx2x_set_aer_mmd(bp); | ||
2944 | |||
2945 | /* setting the masterLn_def again after the reset */ | ||
2946 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
2947 | bnx2x_set_master_ln(bp); | ||
2948 | bnx2x_set_swap_lanes(bp); | ||
2949 | } | ||
2950 | |||
2951 | /* Set Parallel Detect */ | ||
2952 | if (bp->req_autoneg & AUTONEG_SPEED) | ||
2953 | bnx2x_set_parallel_detection(bp); | ||
2954 | |||
2955 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
2956 | if (bp->req_line_speed && | ||
2957 | bp->req_line_speed < SPEED_1000) { | ||
2958 | bp->phy_flags |= PHY_SGMII_FLAG; | ||
2959 | } else { | ||
2960 | bp->phy_flags &= ~PHY_SGMII_FLAG; | ||
2961 | } | ||
2962 | } | ||
2963 | |||
2964 | if (!(bp->phy_flags & PHY_SGMII_FLAG)) { | ||
2965 | u16 bank, rx_eq; | ||
2966 | |||
2967 | rx_eq = ((bp->serdes_config & | ||
2968 | PORT_HW_CFG_SERDES_RX_DRV_EQUALIZER_MASK) >> | ||
2969 | PORT_HW_CFG_SERDES_RX_DRV_EQUALIZER_SHIFT); | ||
2970 | |||
2971 | DP(NETIF_MSG_LINK, "setting rx eq to %d\n", rx_eq); | ||
2972 | for (bank = MDIO_REG_BANK_RX0; bank <= MDIO_REG_BANK_RX_ALL; | ||
2973 | bank += (MDIO_REG_BANK_RX1 - MDIO_REG_BANK_RX0)) { | ||
2974 | MDIO_SET_REG_BANK(bp, bank); | ||
2975 | bnx2x_mdio22_write(bp, MDIO_RX0_RX_EQ_BOOST, | ||
2976 | ((rx_eq & | ||
2977 | MDIO_RX0_RX_EQ_BOOST_EQUALIZER_CTRL_MASK) | | ||
2978 | MDIO_RX0_RX_EQ_BOOST_OFFSET_CTRL)); | ||
2979 | } | ||
2980 | |||
2981 | /* forced speed requested? */ | ||
2982 | if (!(bp->req_autoneg & AUTONEG_SPEED)) { | ||
2983 | DP(NETIF_MSG_LINK, "not SGMII, no AN\n"); | ||
2984 | |||
2985 | /* disable autoneg */ | ||
2986 | bnx2x_set_autoneg(bp); | ||
2987 | |||
2988 | /* program speed and duplex */ | ||
2989 | bnx2x_program_serdes(bp); | ||
2990 | |||
2991 | } else { /* AN_mode */ | ||
2992 | DP(NETIF_MSG_LINK, "not SGMII, AN\n"); | ||
2993 | |||
2994 | /* AN enabled */ | ||
2995 | bnx2x_set_brcm_cl37_advertisment(bp); | ||
2996 | |||
2997 | /* program duplex & pause advertisment (for aneg) */ | ||
2998 | bnx2x_set_ieee_aneg_advertisment(bp); | ||
2999 | |||
3000 | /* enable autoneg */ | ||
3001 | bnx2x_set_autoneg(bp); | ||
3002 | |||
3003 | /* enalbe and restart AN */ | ||
3004 | bnx2x_restart_autoneg(bp); | ||
3005 | } | ||
3006 | |||
3007 | } else { /* SGMII mode */ | ||
3008 | DP(NETIF_MSG_LINK, "SGMII\n"); | ||
3009 | |||
3010 | bnx2x_initialize_sgmii_process(bp); | ||
3011 | } | ||
3012 | |||
3013 | /* enable the interrupt */ | ||
3014 | bnx2x_link_int_enable(bp); | ||
3015 | |||
3016 | /* init ext phy and enable link state int */ | ||
3017 | bnx2x_ext_phy_init(bp); | ||
3018 | } | ||
3019 | |||
3020 | static void bnx2x_phy_deassert(struct bnx2x *bp) | ||
3021 | { | ||
3022 | int port = bp->port; | ||
3023 | u32 val; | ||
3024 | |||
3025 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
3026 | DP(NETIF_MSG_LINK, "XGXS\n"); | ||
3027 | val = XGXS_RESET_BITS; | ||
3028 | |||
3029 | } else { /* SerDes */ | ||
3030 | DP(NETIF_MSG_LINK, "SerDes\n"); | ||
3031 | val = SERDES_RESET_BITS; | ||
3032 | } | ||
3033 | |||
3034 | val = val << (port*16); | ||
3035 | |||
3036 | /* reset and unreset the SerDes/XGXS */ | ||
3037 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_3_CLEAR, val); | ||
3038 | msleep(5); | ||
3039 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_3_SET, val); | ||
3040 | } | ||
3041 | |||
3042 | static int bnx2x_phy_init(struct bnx2x *bp) | ||
3043 | { | ||
3044 | DP(NETIF_MSG_LINK, "started\n"); | ||
3045 | if (CHIP_REV(bp) == CHIP_REV_FPGA) { | ||
3046 | bp->phy_flags |= PHY_EMAC_FLAG; | ||
3047 | bp->link_up = 1; | ||
3048 | bp->line_speed = SPEED_10000; | ||
3049 | bp->duplex = DUPLEX_FULL; | ||
3050 | NIG_WR(NIG_REG_EGRESS_DRAIN0_MODE + bp->port*4, 0); | ||
3051 | bnx2x_emac_enable(bp); | ||
3052 | bnx2x_link_report(bp); | ||
3053 | return 0; | ||
3054 | |||
3055 | } else if (CHIP_REV(bp) == CHIP_REV_EMUL) { | ||
3056 | bp->phy_flags |= PHY_BMAC_FLAG; | ||
3057 | bp->link_up = 1; | ||
3058 | bp->line_speed = SPEED_10000; | ||
3059 | bp->duplex = DUPLEX_FULL; | ||
3060 | NIG_WR(NIG_REG_EGRESS_DRAIN0_MODE + bp->port*4, 0); | ||
3061 | bnx2x_bmac_enable(bp, 0); | ||
3062 | bnx2x_link_report(bp); | ||
3063 | return 0; | ||
3064 | |||
3065 | } else { | ||
3066 | bnx2x_phy_deassert(bp); | ||
3067 | bnx2x_link_initialize(bp); | ||
3068 | } | ||
3069 | |||
3070 | return 0; | ||
3071 | } | ||
3072 | |||
3073 | static void bnx2x_link_reset(struct bnx2x *bp) | ||
3074 | { | ||
3075 | int port = bp->port; | ||
3076 | |||
3077 | /* disable attentions */ | ||
3078 | bnx2x_bits_dis(bp, NIG_REG_MASK_INTERRUPT_PORT0 + port*4, | ||
3079 | (NIG_MASK_XGXS0_LINK_STATUS | | ||
3080 | NIG_MASK_XGXS0_LINK10G | | ||
3081 | NIG_MASK_SERDES0_LINK_STATUS | | ||
3082 | NIG_MASK_MI_INT)); | ||
3083 | |||
3084 | bnx2x_ext_phy_reset(bp); | ||
3085 | |||
3086 | /* reset the SerDes/XGXS */ | ||
3087 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_3_CLEAR, | ||
3088 | (0x1ff << (port*16))); | ||
3089 | |||
3090 | /* reset EMAC / BMAC and disable NIG interfaces */ | ||
3091 | NIG_WR(NIG_REG_BMAC0_IN_EN + port*4, 0); | ||
3092 | NIG_WR(NIG_REG_BMAC0_OUT_EN + port*4, 0); | ||
3093 | |||
3094 | NIG_WR(NIG_REG_NIG_EMAC0_EN + port*4, 0); | ||
3095 | NIG_WR(NIG_REG_EMAC0_IN_EN + port*4, 0); | ||
3096 | NIG_WR(NIG_REG_EGRESS_EMAC0_OUT_EN + port*4, 0); | ||
3097 | |||
3098 | NIG_WR(NIG_REG_EGRESS_DRAIN0_MODE + port*4, 1); | ||
3099 | } | ||
3100 | |||
3101 | #ifdef BNX2X_XGXS_LB | ||
3102 | static void bnx2x_set_xgxs_loopback(struct bnx2x *bp, int is_10g) | ||
3103 | { | ||
3104 | int port = bp->port; | ||
3105 | |||
3106 | if (is_10g) { | ||
3107 | u32 md_devad; | ||
3108 | |||
3109 | DP(NETIF_MSG_LINK, "XGXS 10G loopback enable\n"); | ||
3110 | |||
3111 | /* change the uni_phy_addr in the nig */ | ||
3112 | REG_RD(bp, (NIG_REG_XGXS0_CTRL_MD_DEVAD + port*0x18), | ||
3113 | &md_devad); | ||
3114 | NIG_WR(NIG_REG_XGXS0_CTRL_MD_DEVAD + port*0x18, 0x5); | ||
3115 | |||
3116 | /* change the aer mmd */ | ||
3117 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_AER_BLOCK); | ||
3118 | bnx2x_mdio22_write(bp, MDIO_AER_BLOCK_AER_REG, 0x2800); | ||
3119 | |||
3120 | /* config combo IEEE0 control reg for loopback */ | ||
3121 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_CL73_IEEEB0); | ||
3122 | bnx2x_mdio22_write(bp, MDIO_CL73_IEEEB0_CL73_AN_CONTROL, | ||
3123 | 0x6041); | ||
3124 | |||
3125 | /* set aer mmd back */ | ||
3126 | bnx2x_set_aer_mmd(bp); | ||
3127 | |||
3128 | /* and md_devad */ | ||
3129 | NIG_WR(NIG_REG_XGXS0_CTRL_MD_DEVAD + port*0x18, md_devad); | ||
3130 | |||
3131 | } else { | ||
3132 | u32 mii_control; | ||
3133 | |||
3134 | DP(NETIF_MSG_LINK, "XGXS 1G loopback enable\n"); | ||
3135 | |||
3136 | MDIO_SET_REG_BANK(bp, MDIO_REG_BANK_COMBO_IEEE0); | ||
3137 | bnx2x_mdio22_read(bp, MDIO_COMBO_IEEE0_MII_CONTROL, | ||
3138 | &mii_control); | ||
3139 | bnx2x_mdio22_write(bp, MDIO_COMBO_IEEE0_MII_CONTROL, | ||
3140 | (mii_control | | ||
3141 | MDIO_COMBO_IEEO_MII_CONTROL_LOOPBACK)); | ||
3142 | } | ||
3143 | } | ||
3144 | #endif | ||
3145 | |||
3146 | /* end of PHY/MAC */ | ||
3147 | |||
3148 | /* slow path */ | ||
3149 | |||
3150 | /* | ||
3151 | * General service functions | ||
3152 | */ | ||
3153 | |||
3154 | /* the slow path queue is odd since completions arrive on the fastpath ring */ | ||
3155 | static int bnx2x_sp_post(struct bnx2x *bp, int command, int cid, | ||
3156 | u32 data_hi, u32 data_lo, int common) | ||
3157 | { | ||
3158 | int port = bp->port; | ||
3159 | |||
3160 | DP(NETIF_MSG_TIMER, | ||
3161 | "spe (%x:%x) command %x hw_cid %x data (%x:%x) left %x\n", | ||
3162 | (u32)U64_HI(bp->spq_mapping), (u32)(U64_LO(bp->spq_mapping) + | ||
3163 | (void *)bp->spq_prod_bd - (void *)bp->spq), command, | ||
3164 | HW_CID(bp, cid), data_hi, data_lo, bp->spq_left); | ||
3165 | |||
3166 | #ifdef BNX2X_STOP_ON_ERROR | ||
3167 | if (unlikely(bp->panic)) | ||
3168 | return -EIO; | ||
3169 | #endif | ||
3170 | |||
3171 | spin_lock(&bp->spq_lock); | ||
3172 | |||
3173 | if (!bp->spq_left) { | ||
3174 | BNX2X_ERR("BUG! SPQ ring full!\n"); | ||
3175 | spin_unlock(&bp->spq_lock); | ||
3176 | bnx2x_panic(); | ||
3177 | return -EBUSY; | ||
3178 | } | ||
3179 | /* CID needs port number to be encoded int it */ | ||
3180 | bp->spq_prod_bd->hdr.conn_and_cmd_data = | ||
3181 | cpu_to_le32(((command << SPE_HDR_CMD_ID_SHIFT) | | ||
3182 | HW_CID(bp, cid))); | ||
3183 | bp->spq_prod_bd->hdr.type = cpu_to_le16(ETH_CONNECTION_TYPE); | ||
3184 | if (common) | ||
3185 | bp->spq_prod_bd->hdr.type |= | ||
3186 | cpu_to_le16((1 << SPE_HDR_COMMON_RAMROD_SHIFT)); | ||
3187 | |||
3188 | bp->spq_prod_bd->data.mac_config_addr.hi = cpu_to_le32(data_hi); | ||
3189 | bp->spq_prod_bd->data.mac_config_addr.lo = cpu_to_le32(data_lo); | ||
3190 | |||
3191 | bp->spq_left--; | ||
3192 | |||
3193 | if (bp->spq_prod_bd == bp->spq_last_bd) { | ||
3194 | bp->spq_prod_bd = bp->spq; | ||
3195 | bp->spq_prod_idx = 0; | ||
3196 | DP(NETIF_MSG_TIMER, "end of spq\n"); | ||
3197 | |||
3198 | } else { | ||
3199 | bp->spq_prod_bd++; | ||
3200 | bp->spq_prod_idx++; | ||
3201 | } | ||
3202 | |||
3203 | REG_WR(bp, BAR_XSTRORM_INTMEM + XSTORM_SPQ_PROD_OFFSET(port), | ||
3204 | bp->spq_prod_idx); | ||
3205 | |||
3206 | spin_unlock(&bp->spq_lock); | ||
3207 | return 0; | ||
3208 | } | ||
3209 | |||
3210 | /* acquire split MCP access lock register */ | ||
3211 | static int bnx2x_lock_alr(struct bnx2x *bp) | ||
3212 | { | ||
3213 | int rc = 0; | ||
3214 | u32 i, j, val; | ||
3215 | |||
3216 | might_sleep(); | ||
3217 | i = 100; | ||
3218 | for (j = 0; j < i*10; j++) { | ||
3219 | val = (1UL << 31); | ||
3220 | REG_WR(bp, GRCBASE_MCP + 0x9c, val); | ||
3221 | val = REG_RD(bp, GRCBASE_MCP + 0x9c); | ||
3222 | if (val & (1L << 31)) | ||
3223 | break; | ||
3224 | |||
3225 | msleep(5); | ||
3226 | } | ||
3227 | |||
3228 | if (!(val & (1L << 31))) { | ||
3229 | BNX2X_ERR("Cannot acquire nvram interface\n"); | ||
3230 | |||
3231 | rc = -EBUSY; | ||
3232 | } | ||
3233 | |||
3234 | return rc; | ||
3235 | } | ||
3236 | |||
3237 | /* Release split MCP access lock register */ | ||
3238 | static void bnx2x_unlock_alr(struct bnx2x *bp) | ||
3239 | { | ||
3240 | u32 val = 0; | ||
3241 | |||
3242 | REG_WR(bp, GRCBASE_MCP + 0x9c, val); | ||
3243 | } | ||
3244 | |||
3245 | static inline u16 bnx2x_update_dsb_idx(struct bnx2x *bp) | ||
3246 | { | ||
3247 | struct host_def_status_block *def_sb = bp->def_status_blk; | ||
3248 | u16 rc = 0; | ||
3249 | |||
3250 | barrier(); /* status block is written to by the chip */ | ||
3251 | |||
3252 | if (bp->def_att_idx != def_sb->atten_status_block.attn_bits_index) { | ||
3253 | bp->def_att_idx = def_sb->atten_status_block.attn_bits_index; | ||
3254 | rc |= 1; | ||
3255 | } | ||
3256 | if (bp->def_c_idx != def_sb->c_def_status_block.status_block_index) { | ||
3257 | bp->def_c_idx = def_sb->c_def_status_block.status_block_index; | ||
3258 | rc |= 2; | ||
3259 | } | ||
3260 | if (bp->def_u_idx != def_sb->u_def_status_block.status_block_index) { | ||
3261 | bp->def_u_idx = def_sb->u_def_status_block.status_block_index; | ||
3262 | rc |= 4; | ||
3263 | } | ||
3264 | if (bp->def_x_idx != def_sb->x_def_status_block.status_block_index) { | ||
3265 | bp->def_x_idx = def_sb->x_def_status_block.status_block_index; | ||
3266 | rc |= 8; | ||
3267 | } | ||
3268 | if (bp->def_t_idx != def_sb->t_def_status_block.status_block_index) { | ||
3269 | bp->def_t_idx = def_sb->t_def_status_block.status_block_index; | ||
3270 | rc |= 16; | ||
3271 | } | ||
3272 | return rc; | ||
3273 | } | ||
3274 | |||
3275 | /* | ||
3276 | * slow path service functions | ||
3277 | */ | ||
3278 | |||
3279 | static void bnx2x_attn_int_asserted(struct bnx2x *bp, u32 asserted) | ||
3280 | { | ||
3281 | int port = bp->port; | ||
3282 | u32 igu_addr = (IGU_ADDR_ATTN_BITS_SET + IGU_PORT_BASE * port) * 8; | ||
3283 | u32 aeu_addr = port ? MISC_REG_AEU_MASK_ATTN_FUNC_1 : | ||
3284 | MISC_REG_AEU_MASK_ATTN_FUNC_0; | ||
3285 | u32 nig_mask_addr = port ? NIG_REG_MASK_INTERRUPT_PORT1 : | ||
3286 | NIG_REG_MASK_INTERRUPT_PORT0; | ||
3287 | |||
3288 | if (~bp->aeu_mask & (asserted & 0xff)) | ||
3289 | BNX2X_ERR("IGU ERROR\n"); | ||
3290 | if (bp->attn_state & asserted) | ||
3291 | BNX2X_ERR("IGU ERROR\n"); | ||
3292 | |||
3293 | DP(NETIF_MSG_HW, "aeu_mask %x newly asserted %x\n", | ||
3294 | bp->aeu_mask, asserted); | ||
3295 | bp->aeu_mask &= ~(asserted & 0xff); | ||
3296 | DP(NETIF_MSG_HW, "after masking: aeu_mask %x\n", bp->aeu_mask); | ||
3297 | |||
3298 | REG_WR(bp, aeu_addr, bp->aeu_mask); | ||
3299 | |||
3300 | bp->attn_state |= asserted; | ||
3301 | |||
3302 | if (asserted & ATTN_HARD_WIRED_MASK) { | ||
3303 | if (asserted & ATTN_NIG_FOR_FUNC) { | ||
3304 | u32 nig_status_port; | ||
3305 | u32 nig_int_addr = port ? | ||
3306 | NIG_REG_STATUS_INTERRUPT_PORT1 : | ||
3307 | NIG_REG_STATUS_INTERRUPT_PORT0; | ||
3308 | |||
3309 | bp->nig_mask = REG_RD(bp, nig_mask_addr); | ||
3310 | REG_WR(bp, nig_mask_addr, 0); | ||
3311 | |||
3312 | nig_status_port = REG_RD(bp, nig_int_addr); | ||
3313 | bnx2x_link_update(bp); | ||
3314 | |||
3315 | /* handle unicore attn? */ | ||
3316 | } | ||
3317 | if (asserted & ATTN_SW_TIMER_4_FUNC) | ||
3318 | DP(NETIF_MSG_HW, "ATTN_SW_TIMER_4_FUNC!\n"); | ||
3319 | |||
3320 | if (asserted & GPIO_2_FUNC) | ||
3321 | DP(NETIF_MSG_HW, "GPIO_2_FUNC!\n"); | ||
3322 | |||
3323 | if (asserted & GPIO_3_FUNC) | ||
3324 | DP(NETIF_MSG_HW, "GPIO_3_FUNC!\n"); | ||
3325 | |||
3326 | if (asserted & GPIO_4_FUNC) | ||
3327 | DP(NETIF_MSG_HW, "GPIO_4_FUNC!\n"); | ||
3328 | |||
3329 | if (port == 0) { | ||
3330 | if (asserted & ATTN_GENERAL_ATTN_1) { | ||
3331 | DP(NETIF_MSG_HW, "ATTN_GENERAL_ATTN_1!\n"); | ||
3332 | REG_WR(bp, MISC_REG_AEU_GENERAL_ATTN_1, 0x0); | ||
3333 | } | ||
3334 | if (asserted & ATTN_GENERAL_ATTN_2) { | ||
3335 | DP(NETIF_MSG_HW, "ATTN_GENERAL_ATTN_2!\n"); | ||
3336 | REG_WR(bp, MISC_REG_AEU_GENERAL_ATTN_2, 0x0); | ||
3337 | } | ||
3338 | if (asserted & ATTN_GENERAL_ATTN_3) { | ||
3339 | DP(NETIF_MSG_HW, "ATTN_GENERAL_ATTN_3!\n"); | ||
3340 | REG_WR(bp, MISC_REG_AEU_GENERAL_ATTN_3, 0x0); | ||
3341 | } | ||
3342 | } else { | ||
3343 | if (asserted & ATTN_GENERAL_ATTN_4) { | ||
3344 | DP(NETIF_MSG_HW, "ATTN_GENERAL_ATTN_4!\n"); | ||
3345 | REG_WR(bp, MISC_REG_AEU_GENERAL_ATTN_4, 0x0); | ||
3346 | } | ||
3347 | if (asserted & ATTN_GENERAL_ATTN_5) { | ||
3348 | DP(NETIF_MSG_HW, "ATTN_GENERAL_ATTN_5!\n"); | ||
3349 | REG_WR(bp, MISC_REG_AEU_GENERAL_ATTN_5, 0x0); | ||
3350 | } | ||
3351 | if (asserted & ATTN_GENERAL_ATTN_6) { | ||
3352 | DP(NETIF_MSG_HW, "ATTN_GENERAL_ATTN_6!\n"); | ||
3353 | REG_WR(bp, MISC_REG_AEU_GENERAL_ATTN_6, 0x0); | ||
3354 | } | ||
3355 | } | ||
3356 | |||
3357 | } /* if hardwired */ | ||
3358 | |||
3359 | DP(NETIF_MSG_HW, "about to mask 0x%08x at IGU addr 0x%x\n", | ||
3360 | asserted, BAR_IGU_INTMEM + igu_addr); | ||
3361 | REG_WR(bp, BAR_IGU_INTMEM + igu_addr, asserted); | ||
3362 | |||
3363 | /* now set back the mask */ | ||
3364 | if (asserted & ATTN_NIG_FOR_FUNC) | ||
3365 | REG_WR(bp, nig_mask_addr, bp->nig_mask); | ||
3366 | } | ||
3367 | |||
3368 | static void bnx2x_attn_int_deasserted(struct bnx2x *bp, u32 deasserted) | ||
3369 | { | ||
3370 | int port = bp->port; | ||
3371 | int index; | ||
3372 | struct attn_route attn; | ||
3373 | struct attn_route group_mask; | ||
3374 | u32 reg_addr; | ||
3375 | u32 val; | ||
3376 | |||
3377 | /* need to take HW lock because MCP or other port might also | ||
3378 | try to handle this event */ | ||
3379 | bnx2x_lock_alr(bp); | ||
3380 | |||
3381 | attn.sig[0] = REG_RD(bp, MISC_REG_AEU_AFTER_INVERT_1_FUNC_0 + port*4); | ||
3382 | attn.sig[1] = REG_RD(bp, MISC_REG_AEU_AFTER_INVERT_2_FUNC_0 + port*4); | ||
3383 | attn.sig[2] = REG_RD(bp, MISC_REG_AEU_AFTER_INVERT_3_FUNC_0 + port*4); | ||
3384 | attn.sig[3] = REG_RD(bp, MISC_REG_AEU_AFTER_INVERT_4_FUNC_0 + port*4); | ||
3385 | DP(NETIF_MSG_HW, "attn %llx\n", (unsigned long long)attn.sig[0]); | ||
3386 | |||
3387 | for (index = 0; index < MAX_DYNAMIC_ATTN_GRPS; index++) { | ||
3388 | if (deasserted & (1 << index)) { | ||
3389 | group_mask = bp->attn_group[index]; | ||
3390 | |||
3391 | DP(NETIF_MSG_HW, "group[%d]: %llx\n", index, | ||
3392 | (unsigned long long)group_mask.sig[0]); | ||
3393 | |||
3394 | if (attn.sig[3] & group_mask.sig[3] & | ||
3395 | EVEREST_GEN_ATTN_IN_USE_MASK) { | ||
3396 | |||
3397 | if (attn.sig[3] & BNX2X_MC_ASSERT_BITS) { | ||
3398 | |||
3399 | BNX2X_ERR("MC assert!\n"); | ||
3400 | bnx2x_panic(); | ||
3401 | |||
3402 | } else if (attn.sig[3] & BNX2X_MCP_ASSERT) { | ||
3403 | |||
3404 | BNX2X_ERR("MCP assert!\n"); | ||
3405 | REG_WR(bp, | ||
3406 | MISC_REG_AEU_GENERAL_ATTN_11, 0); | ||
3407 | bnx2x_mc_assert(bp); | ||
3408 | |||
3409 | } else { | ||
3410 | BNX2X_ERR("UNKOWEN HW ASSERT!\n"); | ||
3411 | } | ||
3412 | } | ||
3413 | |||
3414 | if (attn.sig[1] & group_mask.sig[1] & | ||
3415 | BNX2X_DOORQ_ASSERT) { | ||
3416 | |||
3417 | val = REG_RD(bp, DORQ_REG_DORQ_INT_STS_CLR); | ||
3418 | BNX2X_ERR("DB hw attention 0x%x\n", val); | ||
3419 | /* DORQ discard attention */ | ||
3420 | if (val & 0x2) | ||
3421 | BNX2X_ERR("FATAL error from DORQ\n"); | ||
3422 | } | ||
3423 | |||
3424 | if (attn.sig[2] & group_mask.sig[2] & | ||
3425 | AEU_INPUTS_ATTN_BITS_CFC_HW_INTERRUPT) { | ||
3426 | |||
3427 | val = REG_RD(bp, CFC_REG_CFC_INT_STS_CLR); | ||
3428 | BNX2X_ERR("CFC hw attention 0x%x\n", val); | ||
3429 | /* CFC error attention */ | ||
3430 | if (val & 0x2) | ||
3431 | BNX2X_ERR("FATAL error from CFC\n"); | ||
3432 | } | ||
3433 | |||
3434 | if (attn.sig[2] & group_mask.sig[2] & | ||
3435 | AEU_INPUTS_ATTN_BITS_PXP_HW_INTERRUPT) { | ||
3436 | |||
3437 | val = REG_RD(bp, PXP_REG_PXP_INT_STS_CLR_0); | ||
3438 | BNX2X_ERR("PXP hw attention 0x%x\n", val); | ||
3439 | /* RQ_USDMDP_FIFO_OVERFLOW */ | ||
3440 | if (val & 0x18000) | ||
3441 | BNX2X_ERR("FATAL error from PXP\n"); | ||
3442 | } | ||
3443 | |||
3444 | if (attn.sig[3] & group_mask.sig[3] & | ||
3445 | EVEREST_LATCHED_ATTN_IN_USE_MASK) { | ||
3446 | |||
3447 | REG_WR(bp, MISC_REG_AEU_CLR_LATCH_SIGNAL, | ||
3448 | 0x7ff); | ||
3449 | DP(NETIF_MSG_HW, "got latched bits 0x%x\n", | ||
3450 | attn.sig[3]); | ||
3451 | } | ||
3452 | |||
3453 | if ((attn.sig[0] & group_mask.sig[0] & | ||
3454 | HW_INTERRUT_ASSERT_SET_0) || | ||
3455 | (attn.sig[1] & group_mask.sig[1] & | ||
3456 | HW_INTERRUT_ASSERT_SET_1) || | ||
3457 | (attn.sig[2] & group_mask.sig[2] & | ||
3458 | HW_INTERRUT_ASSERT_SET_2)) | ||
3459 | BNX2X_ERR("FATAL HW block attention\n"); | ||
3460 | |||
3461 | if ((attn.sig[0] & group_mask.sig[0] & | ||
3462 | HW_PRTY_ASSERT_SET_0) || | ||
3463 | (attn.sig[1] & group_mask.sig[1] & | ||
3464 | HW_PRTY_ASSERT_SET_1) || | ||
3465 | (attn.sig[2] & group_mask.sig[2] & | ||
3466 | HW_PRTY_ASSERT_SET_2)) | ||
3467 | BNX2X_ERR("FATAL HW block parity atention\n"); | ||
3468 | } | ||
3469 | } | ||
3470 | |||
3471 | bnx2x_unlock_alr(bp); | ||
3472 | |||
3473 | reg_addr = (IGU_ADDR_ATTN_BITS_CLR + IGU_PORT_BASE * port) * 8; | ||
3474 | |||
3475 | val = ~deasserted; | ||
3476 | /* DP(NETIF_MSG_INTR, "write 0x%08x to IGU addr 0x%x\n", | ||
3477 | val, BAR_IGU_INTMEM + reg_addr); */ | ||
3478 | REG_WR(bp, BAR_IGU_INTMEM + reg_addr, val); | ||
3479 | |||
3480 | if (bp->aeu_mask & (deasserted & 0xff)) | ||
3481 | BNX2X_ERR("IGU BUG\n"); | ||
3482 | if (~bp->attn_state & deasserted) | ||
3483 | BNX2X_ERR("IGU BUG\n"); | ||
3484 | |||
3485 | reg_addr = port ? MISC_REG_AEU_MASK_ATTN_FUNC_1 : | ||
3486 | MISC_REG_AEU_MASK_ATTN_FUNC_0; | ||
3487 | |||
3488 | DP(NETIF_MSG_HW, "aeu_mask %x\n", bp->aeu_mask); | ||
3489 | bp->aeu_mask |= (deasserted & 0xff); | ||
3490 | |||
3491 | DP(NETIF_MSG_HW, "new mask %x\n", bp->aeu_mask); | ||
3492 | REG_WR(bp, reg_addr, bp->aeu_mask); | ||
3493 | |||
3494 | DP(NETIF_MSG_HW, "attn_state %x\n", bp->attn_state); | ||
3495 | bp->attn_state &= ~deasserted; | ||
3496 | DP(NETIF_MSG_HW, "new state %x\n", bp->attn_state); | ||
3497 | } | ||
3498 | |||
3499 | static void bnx2x_attn_int(struct bnx2x *bp) | ||
3500 | { | ||
3501 | /* read local copy of bits */ | ||
3502 | u32 attn_bits = bp->def_status_blk->atten_status_block.attn_bits; | ||
3503 | u32 attn_ack = bp->def_status_blk->atten_status_block.attn_bits_ack; | ||
3504 | u32 attn_state = bp->attn_state; | ||
3505 | |||
3506 | /* look for changed bits */ | ||
3507 | u32 asserted = attn_bits & ~attn_ack & ~attn_state; | ||
3508 | u32 deasserted = ~attn_bits & attn_ack & attn_state; | ||
3509 | |||
3510 | DP(NETIF_MSG_HW, | ||
3511 | "attn_bits %x attn_ack %x asserted %x deasserted %x\n", | ||
3512 | attn_bits, attn_ack, asserted, deasserted); | ||
3513 | |||
3514 | if (~(attn_bits ^ attn_ack) & (attn_bits ^ attn_state)) | ||
3515 | BNX2X_ERR("bad attention state\n"); | ||
3516 | |||
3517 | /* handle bits that were raised */ | ||
3518 | if (asserted) | ||
3519 | bnx2x_attn_int_asserted(bp, asserted); | ||
3520 | |||
3521 | if (deasserted) | ||
3522 | bnx2x_attn_int_deasserted(bp, deasserted); | ||
3523 | } | ||
3524 | |||
3525 | static void bnx2x_sp_task(struct work_struct *work) | ||
3526 | { | ||
3527 | struct bnx2x *bp = container_of(work, struct bnx2x, sp_task); | ||
3528 | u16 status; | ||
3529 | |||
3530 | /* Return here if interrupt is disabled */ | ||
3531 | if (unlikely(atomic_read(&bp->intr_sem) != 0)) { | ||
3532 | DP(NETIF_MSG_INTR, "called but intr_sem not 0, returning\n"); | ||
3533 | return; | ||
3534 | } | ||
3535 | |||
3536 | status = bnx2x_update_dsb_idx(bp); | ||
3537 | if (status == 0) | ||
3538 | BNX2X_ERR("spurious slowpath interrupt!\n"); | ||
3539 | |||
3540 | DP(NETIF_MSG_INTR, "got a slowpath interrupt (updated %x)\n", status); | ||
3541 | |||
3542 | if (status & 0x1) { | ||
3543 | /* HW attentions */ | ||
3544 | bnx2x_attn_int(bp); | ||
3545 | } | ||
3546 | |||
3547 | /* CStorm events: query_stats, cfc delete ramrods */ | ||
3548 | if (status & 0x2) | ||
3549 | bp->stat_pending = 0; | ||
3550 | |||
3551 | bnx2x_ack_sb(bp, DEF_SB_ID, ATTENTION_ID, bp->def_att_idx, | ||
3552 | IGU_INT_NOP, 1); | ||
3553 | bnx2x_ack_sb(bp, DEF_SB_ID, USTORM_ID, le16_to_cpu(bp->def_u_idx), | ||
3554 | IGU_INT_NOP, 1); | ||
3555 | bnx2x_ack_sb(bp, DEF_SB_ID, CSTORM_ID, le16_to_cpu(bp->def_c_idx), | ||
3556 | IGU_INT_NOP, 1); | ||
3557 | bnx2x_ack_sb(bp, DEF_SB_ID, XSTORM_ID, le16_to_cpu(bp->def_x_idx), | ||
3558 | IGU_INT_NOP, 1); | ||
3559 | bnx2x_ack_sb(bp, DEF_SB_ID, TSTORM_ID, le16_to_cpu(bp->def_t_idx), | ||
3560 | IGU_INT_ENABLE, 1); | ||
3561 | } | ||
3562 | |||
3563 | static irqreturn_t bnx2x_msix_sp_int(int irq, void *dev_instance) | ||
3564 | { | ||
3565 | struct net_device *dev = dev_instance; | ||
3566 | struct bnx2x *bp = netdev_priv(dev); | ||
3567 | |||
3568 | /* Return here if interrupt is disabled */ | ||
3569 | if (unlikely(atomic_read(&bp->intr_sem) != 0)) { | ||
3570 | DP(NETIF_MSG_INTR, "called but intr_sem not 0, returning\n"); | ||
3571 | return IRQ_HANDLED; | ||
3572 | } | ||
3573 | |||
3574 | bnx2x_ack_sb(bp, 16, XSTORM_ID, 0, IGU_INT_DISABLE, 0); | ||
3575 | |||
3576 | #ifdef BNX2X_STOP_ON_ERROR | ||
3577 | if (unlikely(bp->panic)) | ||
3578 | return IRQ_HANDLED; | ||
3579 | #endif | ||
3580 | |||
3581 | schedule_work(&bp->sp_task); | ||
3582 | |||
3583 | return IRQ_HANDLED; | ||
3584 | } | ||
3585 | |||
3586 | /* end of slow path */ | ||
3587 | |||
3588 | /* Statistics */ | ||
3589 | |||
3590 | /**************************************************************************** | ||
3591 | * Macros | ||
3592 | ****************************************************************************/ | ||
3593 | |||
3594 | #define UPDATE_STAT(s, t) \ | ||
3595 | do { \ | ||
3596 | estats->t += new->s - old->s; \ | ||
3597 | old->s = new->s; \ | ||
3598 | } while (0) | ||
3599 | |||
3600 | /* sum[hi:lo] += add[hi:lo] */ | ||
3601 | #define ADD_64(s_hi, a_hi, s_lo, a_lo) \ | ||
3602 | do { \ | ||
3603 | s_lo += a_lo; \ | ||
3604 | s_hi += a_hi + (s_lo < a_lo) ? 1 : 0; \ | ||
3605 | } while (0) | ||
3606 | |||
3607 | /* difference = minuend - subtrahend */ | ||
3608 | #define DIFF_64(d_hi, m_hi, s_hi, d_lo, m_lo, s_lo) \ | ||
3609 | do { \ | ||
3610 | if (m_lo < s_lo) { /* underflow */ \ | ||
3611 | d_hi = m_hi - s_hi; \ | ||
3612 | if (d_hi > 0) { /* we can 'loan' 1 */ \ | ||
3613 | d_hi--; \ | ||
3614 | d_lo = m_lo + (UINT_MAX - s_lo) + 1; \ | ||
3615 | } else { /* m_hi <= s_hi */ \ | ||
3616 | d_hi = 0; \ | ||
3617 | d_lo = 0; \ | ||
3618 | } \ | ||
3619 | } else { /* m_lo >= s_lo */ \ | ||
3620 | if (m_hi < s_hi) { \ | ||
3621 | d_hi = 0; \ | ||
3622 | d_lo = 0; \ | ||
3623 | } else { /* m_hi >= s_hi */ \ | ||
3624 | d_hi = m_hi - s_hi; \ | ||
3625 | d_lo = m_lo - s_lo; \ | ||
3626 | } \ | ||
3627 | } \ | ||
3628 | } while (0) | ||
3629 | |||
3630 | /* minuend -= subtrahend */ | ||
3631 | #define SUB_64(m_hi, s_hi, m_lo, s_lo) \ | ||
3632 | do { \ | ||
3633 | DIFF_64(m_hi, m_hi, s_hi, m_lo, m_lo, s_lo); \ | ||
3634 | } while (0) | ||
3635 | |||
3636 | #define UPDATE_STAT64(s_hi, t_hi, s_lo, t_lo) \ | ||
3637 | do { \ | ||
3638 | DIFF_64(diff.hi, new->s_hi, old->s_hi, \ | ||
3639 | diff.lo, new->s_lo, old->s_lo); \ | ||
3640 | old->s_hi = new->s_hi; \ | ||
3641 | old->s_lo = new->s_lo; \ | ||
3642 | ADD_64(estats->t_hi, diff.hi, \ | ||
3643 | estats->t_lo, diff.lo); \ | ||
3644 | } while (0) | ||
3645 | |||
3646 | /* sum[hi:lo] += add */ | ||
3647 | #define ADD_EXTEND_64(s_hi, s_lo, a) \ | ||
3648 | do { \ | ||
3649 | s_lo += a; \ | ||
3650 | s_hi += (s_lo < a) ? 1 : 0; \ | ||
3651 | } while (0) | ||
3652 | |||
3653 | #define UPDATE_EXTEND_STAT(s, t_hi, t_lo) \ | ||
3654 | do { \ | ||
3655 | ADD_EXTEND_64(estats->t_hi, estats->t_lo, new->s); \ | ||
3656 | } while (0) | ||
3657 | |||
3658 | #define UPDATE_EXTEND_TSTAT(s, t_hi, t_lo) \ | ||
3659 | do { \ | ||
3660 | diff = le32_to_cpu(tclient->s) - old_tclient->s; \ | ||
3661 | old_tclient->s = le32_to_cpu(tclient->s); \ | ||
3662 | ADD_EXTEND_64(estats->t_hi, estats->t_lo, diff); \ | ||
3663 | } while (0) | ||
3664 | |||
3665 | /* | ||
3666 | * General service functions | ||
3667 | */ | ||
3668 | |||
3669 | static inline long bnx2x_hilo(u32 *hiref) | ||
3670 | { | ||
3671 | u32 lo = *(hiref + 1); | ||
3672 | #if (BITS_PER_LONG == 64) | ||
3673 | u32 hi = *hiref; | ||
3674 | |||
3675 | return HILO_U64(hi, lo); | ||
3676 | #else | ||
3677 | return lo; | ||
3678 | #endif | ||
3679 | } | ||
3680 | |||
3681 | /* | ||
3682 | * Init service functions | ||
3683 | */ | ||
3684 | |||
3685 | static void bnx2x_init_mac_stats(struct bnx2x *bp) | ||
3686 | { | ||
3687 | struct dmae_command *dmae; | ||
3688 | int port = bp->port; | ||
3689 | int loader_idx = port * 8; | ||
3690 | u32 opcode; | ||
3691 | u32 mac_addr; | ||
3692 | |||
3693 | bp->executer_idx = 0; | ||
3694 | if (bp->fw_mb) { | ||
3695 | /* MCP */ | ||
3696 | opcode = (DMAE_CMD_SRC_PCI | DMAE_CMD_DST_GRC | | ||
3697 | DMAE_CMD_SRC_RESET | DMAE_CMD_DST_RESET | | ||
3698 | #ifdef __BIG_ENDIAN | ||
3699 | DMAE_CMD_ENDIANITY_B_DW_SWAP | | ||
3700 | #else | ||
3701 | DMAE_CMD_ENDIANITY_DW_SWAP | | ||
3702 | #endif | ||
3703 | (port ? DMAE_CMD_PORT_1 : DMAE_CMD_PORT_0)); | ||
3704 | |||
3705 | if (bp->link_up) | ||
3706 | opcode |= (DMAE_CMD_C_DST_GRC | DMAE_CMD_C_ENABLE); | ||
3707 | |||
3708 | dmae = bnx2x_sp(bp, dmae[bp->executer_idx++]); | ||
3709 | dmae->opcode = opcode; | ||
3710 | dmae->src_addr_lo = U64_LO(bnx2x_sp_mapping(bp, eth_stats) + | ||
3711 | sizeof(u32)); | ||
3712 | dmae->src_addr_hi = U64_HI(bnx2x_sp_mapping(bp, eth_stats) + | ||
3713 | sizeof(u32)); | ||
3714 | dmae->dst_addr_lo = bp->fw_mb >> 2; | ||
3715 | dmae->dst_addr_hi = 0; | ||
3716 | dmae->len = (offsetof(struct bnx2x_eth_stats, mac_stx_end) - | ||
3717 | sizeof(u32)) >> 2; | ||
3718 | if (bp->link_up) { | ||
3719 | dmae->comp_addr_lo = dmae_reg_go_c[loader_idx] >> 2; | ||
3720 | dmae->comp_addr_hi = 0; | ||
3721 | dmae->comp_val = 1; | ||
3722 | } else { | ||
3723 | dmae->comp_addr_lo = 0; | ||
3724 | dmae->comp_addr_hi = 0; | ||
3725 | dmae->comp_val = 0; | ||
3726 | } | ||
3727 | } | ||
3728 | |||
3729 | if (!bp->link_up) { | ||
3730 | /* no need to collect statistics in link down */ | ||
3731 | return; | ||
3732 | } | ||
3733 | |||
3734 | opcode = (DMAE_CMD_SRC_GRC | DMAE_CMD_DST_PCI | | ||
3735 | DMAE_CMD_C_DST_GRC | DMAE_CMD_C_ENABLE | | ||
3736 | DMAE_CMD_SRC_RESET | DMAE_CMD_DST_RESET | | ||
3737 | #ifdef __BIG_ENDIAN | ||
3738 | DMAE_CMD_ENDIANITY_B_DW_SWAP | | ||
3739 | #else | ||
3740 | DMAE_CMD_ENDIANITY_DW_SWAP | | ||
3741 | #endif | ||
3742 | (port ? DMAE_CMD_PORT_1 : DMAE_CMD_PORT_0)); | ||
3743 | |||
3744 | if (bp->phy_flags & PHY_BMAC_FLAG) { | ||
3745 | |||
3746 | mac_addr = (port ? NIG_REG_INGRESS_BMAC1_MEM : | ||
3747 | NIG_REG_INGRESS_BMAC0_MEM); | ||
3748 | |||
3749 | /* BIGMAC_REGISTER_TX_STAT_GTPKT .. | ||
3750 | BIGMAC_REGISTER_TX_STAT_GTBYT */ | ||
3751 | dmae = bnx2x_sp(bp, dmae[bp->executer_idx++]); | ||
3752 | dmae->opcode = opcode; | ||
3753 | dmae->src_addr_lo = (mac_addr + | ||
3754 | BIGMAC_REGISTER_TX_STAT_GTPKT) >> 2; | ||
3755 | dmae->src_addr_hi = 0; | ||
3756 | dmae->dst_addr_lo = U64_LO(bnx2x_sp_mapping(bp, mac_stats)); | ||
3757 | dmae->dst_addr_hi = U64_HI(bnx2x_sp_mapping(bp, mac_stats)); | ||
3758 | dmae->len = (8 + BIGMAC_REGISTER_TX_STAT_GTBYT - | ||
3759 | BIGMAC_REGISTER_TX_STAT_GTPKT) >> 2; | ||
3760 | dmae->comp_addr_lo = dmae_reg_go_c[loader_idx] >> 2; | ||
3761 | dmae->comp_addr_hi = 0; | ||
3762 | dmae->comp_val = 1; | ||
3763 | |||
3764 | /* BIGMAC_REGISTER_RX_STAT_GR64 .. | ||
3765 | BIGMAC_REGISTER_RX_STAT_GRIPJ */ | ||
3766 | dmae = bnx2x_sp(bp, dmae[bp->executer_idx++]); | ||
3767 | dmae->opcode = opcode; | ||
3768 | dmae->src_addr_lo = (mac_addr + | ||
3769 | BIGMAC_REGISTER_RX_STAT_GR64) >> 2; | ||
3770 | dmae->src_addr_hi = 0; | ||
3771 | dmae->dst_addr_lo = U64_LO(bnx2x_sp_mapping(bp, mac_stats) + | ||
3772 | offsetof(struct bmac_stats, rx_gr64)); | ||
3773 | dmae->dst_addr_hi = U64_HI(bnx2x_sp_mapping(bp, mac_stats) + | ||
3774 | offsetof(struct bmac_stats, rx_gr64)); | ||
3775 | dmae->len = (8 + BIGMAC_REGISTER_RX_STAT_GRIPJ - | ||
3776 | BIGMAC_REGISTER_RX_STAT_GR64) >> 2; | ||
3777 | dmae->comp_addr_lo = dmae_reg_go_c[loader_idx] >> 2; | ||
3778 | dmae->comp_addr_hi = 0; | ||
3779 | dmae->comp_val = 1; | ||
3780 | |||
3781 | } else if (bp->phy_flags & PHY_EMAC_FLAG) { | ||
3782 | |||
3783 | mac_addr = (port ? GRCBASE_EMAC1 : GRCBASE_EMAC0); | ||
3784 | |||
3785 | /* EMAC_REG_EMAC_RX_STAT_AC (EMAC_REG_EMAC_RX_STAT_AC_COUNT)*/ | ||
3786 | dmae = bnx2x_sp(bp, dmae[bp->executer_idx++]); | ||
3787 | dmae->opcode = opcode; | ||
3788 | dmae->src_addr_lo = (mac_addr + | ||
3789 | EMAC_REG_EMAC_RX_STAT_AC) >> 2; | ||
3790 | dmae->src_addr_hi = 0; | ||
3791 | dmae->dst_addr_lo = U64_LO(bnx2x_sp_mapping(bp, mac_stats)); | ||
3792 | dmae->dst_addr_hi = U64_HI(bnx2x_sp_mapping(bp, mac_stats)); | ||
3793 | dmae->len = EMAC_REG_EMAC_RX_STAT_AC_COUNT; | ||
3794 | dmae->comp_addr_lo = dmae_reg_go_c[loader_idx] >> 2; | ||
3795 | dmae->comp_addr_hi = 0; | ||
3796 | dmae->comp_val = 1; | ||
3797 | |||
3798 | /* EMAC_REG_EMAC_RX_STAT_AC_28 */ | ||
3799 | dmae = bnx2x_sp(bp, dmae[bp->executer_idx++]); | ||
3800 | dmae->opcode = opcode; | ||
3801 | dmae->src_addr_lo = (mac_addr + | ||
3802 | EMAC_REG_EMAC_RX_STAT_AC_28) >> 2; | ||
3803 | dmae->src_addr_hi = 0; | ||
3804 | dmae->dst_addr_lo = U64_LO(bnx2x_sp_mapping(bp, mac_stats) + | ||
3805 | offsetof(struct emac_stats, | ||
3806 | rx_falsecarriererrors)); | ||
3807 | dmae->dst_addr_hi = U64_HI(bnx2x_sp_mapping(bp, mac_stats) + | ||
3808 | offsetof(struct emac_stats, | ||
3809 | rx_falsecarriererrors)); | ||
3810 | dmae->len = 1; | ||
3811 | dmae->comp_addr_lo = dmae_reg_go_c[loader_idx] >> 2; | ||
3812 | dmae->comp_addr_hi = 0; | ||
3813 | dmae->comp_val = 1; | ||
3814 | |||
3815 | /* EMAC_REG_EMAC_TX_STAT_AC (EMAC_REG_EMAC_TX_STAT_AC_COUNT)*/ | ||
3816 | dmae = bnx2x_sp(bp, dmae[bp->executer_idx++]); | ||
3817 | dmae->opcode = opcode; | ||
3818 | dmae->src_addr_lo = (mac_addr + | ||
3819 | EMAC_REG_EMAC_TX_STAT_AC) >> 2; | ||
3820 | dmae->src_addr_hi = 0; | ||
3821 | dmae->dst_addr_lo = U64_LO(bnx2x_sp_mapping(bp, mac_stats) + | ||
3822 | offsetof(struct emac_stats, | ||
3823 | tx_ifhcoutoctets)); | ||
3824 | dmae->dst_addr_hi = U64_HI(bnx2x_sp_mapping(bp, mac_stats) + | ||
3825 | offsetof(struct emac_stats, | ||
3826 | tx_ifhcoutoctets)); | ||
3827 | dmae->len = EMAC_REG_EMAC_TX_STAT_AC_COUNT; | ||
3828 | dmae->comp_addr_lo = dmae_reg_go_c[loader_idx] >> 2; | ||
3829 | dmae->comp_addr_hi = 0; | ||
3830 | dmae->comp_val = 1; | ||
3831 | } | ||
3832 | |||
3833 | /* NIG */ | ||
3834 | dmae = bnx2x_sp(bp, dmae[bp->executer_idx++]); | ||
3835 | dmae->opcode = (DMAE_CMD_SRC_GRC | DMAE_CMD_DST_PCI | | ||
3836 | DMAE_CMD_C_DST_PCI | DMAE_CMD_C_ENABLE | | ||
3837 | DMAE_CMD_SRC_RESET | DMAE_CMD_DST_RESET | | ||
3838 | #ifdef __BIG_ENDIAN | ||
3839 | DMAE_CMD_ENDIANITY_B_DW_SWAP | | ||
3840 | #else | ||
3841 | DMAE_CMD_ENDIANITY_DW_SWAP | | ||
3842 | #endif | ||
3843 | (port ? DMAE_CMD_PORT_1 : DMAE_CMD_PORT_0)); | ||
3844 | dmae->src_addr_lo = (port ? NIG_REG_STAT1_BRB_DISCARD : | ||
3845 | NIG_REG_STAT0_BRB_DISCARD) >> 2; | ||
3846 | dmae->src_addr_hi = 0; | ||
3847 | dmae->dst_addr_lo = U64_LO(bnx2x_sp_mapping(bp, nig)); | ||
3848 | dmae->dst_addr_hi = U64_HI(bnx2x_sp_mapping(bp, nig)); | ||
3849 | dmae->len = (sizeof(struct nig_stats) - 2*sizeof(u32)) >> 2; | ||
3850 | dmae->comp_addr_lo = U64_LO(bnx2x_sp_mapping(bp, nig) + | ||
3851 | offsetof(struct nig_stats, done)); | ||
3852 | dmae->comp_addr_hi = U64_HI(bnx2x_sp_mapping(bp, nig) + | ||
3853 | offsetof(struct nig_stats, done)); | ||
3854 | dmae->comp_val = 0xffffffff; | ||
3855 | } | ||
3856 | |||
3857 | static void bnx2x_init_stats(struct bnx2x *bp) | ||
3858 | { | ||
3859 | int port = bp->port; | ||
3860 | |||
3861 | bp->stats_state = STATS_STATE_DISABLE; | ||
3862 | bp->executer_idx = 0; | ||
3863 | |||
3864 | bp->old_brb_discard = REG_RD(bp, | ||
3865 | NIG_REG_STAT0_BRB_DISCARD + port*0x38); | ||
3866 | |||
3867 | memset(&bp->old_bmac, 0, sizeof(struct bmac_stats)); | ||
3868 | memset(&bp->old_tclient, 0, sizeof(struct tstorm_per_client_stats)); | ||
3869 | memset(&bp->dev->stats, 0, sizeof(struct net_device_stats)); | ||
3870 | |||
3871 | REG_WR(bp, BAR_XSTRORM_INTMEM + XSTORM_STATS_FLAGS_OFFSET(port), 1); | ||
3872 | REG_WR(bp, BAR_XSTRORM_INTMEM + | ||
3873 | XSTORM_STATS_FLAGS_OFFSET(port) + 4, 0); | ||
3874 | |||
3875 | REG_WR(bp, BAR_TSTRORM_INTMEM + TSTORM_STATS_FLAGS_OFFSET(port), 1); | ||
3876 | REG_WR(bp, BAR_TSTRORM_INTMEM + | ||
3877 | TSTORM_STATS_FLAGS_OFFSET(port) + 4, 0); | ||
3878 | |||
3879 | REG_WR(bp, BAR_CSTRORM_INTMEM + CSTORM_STATS_FLAGS_OFFSET(port), 0); | ||
3880 | REG_WR(bp, BAR_CSTRORM_INTMEM + | ||
3881 | CSTORM_STATS_FLAGS_OFFSET(port) + 4, 0); | ||
3882 | |||
3883 | REG_WR(bp, BAR_XSTRORM_INTMEM + | ||
3884 | XSTORM_ETH_STATS_QUERY_ADDR_OFFSET(port), | ||
3885 | U64_LO(bnx2x_sp_mapping(bp, fw_stats))); | ||
3886 | REG_WR(bp, BAR_XSTRORM_INTMEM + | ||
3887 | XSTORM_ETH_STATS_QUERY_ADDR_OFFSET(port) + 4, | ||
3888 | U64_HI(bnx2x_sp_mapping(bp, fw_stats))); | ||
3889 | |||
3890 | REG_WR(bp, BAR_TSTRORM_INTMEM + | ||
3891 | TSTORM_ETH_STATS_QUERY_ADDR_OFFSET(port), | ||
3892 | U64_LO(bnx2x_sp_mapping(bp, fw_stats))); | ||
3893 | REG_WR(bp, BAR_TSTRORM_INTMEM + | ||
3894 | TSTORM_ETH_STATS_QUERY_ADDR_OFFSET(port) + 4, | ||
3895 | U64_HI(bnx2x_sp_mapping(bp, fw_stats))); | ||
3896 | } | ||
3897 | |||
3898 | static void bnx2x_stop_stats(struct bnx2x *bp) | ||
3899 | { | ||
3900 | might_sleep(); | ||
3901 | if (bp->stats_state != STATS_STATE_DISABLE) { | ||
3902 | int timeout = 10; | ||
3903 | |||
3904 | bp->stats_state = STATS_STATE_STOP; | ||
3905 | DP(BNX2X_MSG_STATS, "stats_state - STOP\n"); | ||
3906 | |||
3907 | while (bp->stats_state != STATS_STATE_DISABLE) { | ||
3908 | if (!timeout) { | ||
3909 | BNX2X_ERR("timeout wating for stats stop\n"); | ||
3910 | break; | ||
3911 | } | ||
3912 | timeout--; | ||
3913 | msleep(100); | ||
3914 | } | ||
3915 | } | ||
3916 | DP(BNX2X_MSG_STATS, "stats_state - DISABLE\n"); | ||
3917 | } | ||
3918 | |||
3919 | /* | ||
3920 | * Statistics service functions | ||
3921 | */ | ||
3922 | |||
3923 | static void bnx2x_update_bmac_stats(struct bnx2x *bp) | ||
3924 | { | ||
3925 | struct regp diff; | ||
3926 | struct regp sum; | ||
3927 | struct bmac_stats *new = bnx2x_sp(bp, mac_stats.bmac); | ||
3928 | struct bmac_stats *old = &bp->old_bmac; | ||
3929 | struct bnx2x_eth_stats *estats = bnx2x_sp(bp, eth_stats); | ||
3930 | |||
3931 | sum.hi = 0; | ||
3932 | sum.lo = 0; | ||
3933 | |||
3934 | UPDATE_STAT64(tx_gtbyt.hi, total_bytes_transmitted_hi, | ||
3935 | tx_gtbyt.lo, total_bytes_transmitted_lo); | ||
3936 | |||
3937 | UPDATE_STAT64(tx_gtmca.hi, total_multicast_packets_transmitted_hi, | ||
3938 | tx_gtmca.lo, total_multicast_packets_transmitted_lo); | ||
3939 | ADD_64(sum.hi, diff.hi, sum.lo, diff.lo); | ||
3940 | |||
3941 | UPDATE_STAT64(tx_gtgca.hi, total_broadcast_packets_transmitted_hi, | ||
3942 | tx_gtgca.lo, total_broadcast_packets_transmitted_lo); | ||
3943 | ADD_64(sum.hi, diff.hi, sum.lo, diff.lo); | ||
3944 | |||
3945 | UPDATE_STAT64(tx_gtpkt.hi, total_unicast_packets_transmitted_hi, | ||
3946 | tx_gtpkt.lo, total_unicast_packets_transmitted_lo); | ||
3947 | SUB_64(estats->total_unicast_packets_transmitted_hi, sum.hi, | ||
3948 | estats->total_unicast_packets_transmitted_lo, sum.lo); | ||
3949 | |||
3950 | UPDATE_STAT(tx_gtxpf.lo, pause_xoff_frames_transmitted); | ||
3951 | UPDATE_STAT(tx_gt64.lo, frames_transmitted_64_bytes); | ||
3952 | UPDATE_STAT(tx_gt127.lo, frames_transmitted_65_127_bytes); | ||
3953 | UPDATE_STAT(tx_gt255.lo, frames_transmitted_128_255_bytes); | ||
3954 | UPDATE_STAT(tx_gt511.lo, frames_transmitted_256_511_bytes); | ||
3955 | UPDATE_STAT(tx_gt1023.lo, frames_transmitted_512_1023_bytes); | ||
3956 | UPDATE_STAT(tx_gt1518.lo, frames_transmitted_1024_1522_bytes); | ||
3957 | UPDATE_STAT(tx_gt2047.lo, frames_transmitted_1523_9022_bytes); | ||
3958 | UPDATE_STAT(tx_gt4095.lo, frames_transmitted_1523_9022_bytes); | ||
3959 | UPDATE_STAT(tx_gt9216.lo, frames_transmitted_1523_9022_bytes); | ||
3960 | UPDATE_STAT(tx_gt16383.lo, frames_transmitted_1523_9022_bytes); | ||
3961 | |||
3962 | UPDATE_STAT(rx_grfcs.lo, crc_receive_errors); | ||
3963 | UPDATE_STAT(rx_grund.lo, runt_packets_received); | ||
3964 | UPDATE_STAT(rx_grovr.lo, stat_Dot3statsFramesTooLong); | ||
3965 | UPDATE_STAT(rx_grxpf.lo, pause_xoff_frames_received); | ||
3966 | UPDATE_STAT(rx_grxcf.lo, control_frames_received); | ||
3967 | /* UPDATE_STAT(rx_grxpf.lo, control_frames_received); */ | ||
3968 | UPDATE_STAT(rx_grfrg.lo, error_runt_packets_received); | ||
3969 | UPDATE_STAT(rx_grjbr.lo, error_jabber_packets_received); | ||
3970 | |||
3971 | UPDATE_STAT64(rx_grerb.hi, stat_IfHCInBadOctets_hi, | ||
3972 | rx_grerb.lo, stat_IfHCInBadOctets_lo); | ||
3973 | UPDATE_STAT64(tx_gtufl.hi, stat_IfHCOutBadOctets_hi, | ||
3974 | tx_gtufl.lo, stat_IfHCOutBadOctets_lo); | ||
3975 | UPDATE_STAT(tx_gterr.lo, stat_Dot3statsInternalMacTransmitErrors); | ||
3976 | /* UPDATE_STAT(rx_grxpf.lo, stat_XoffStateEntered); */ | ||
3977 | estats->stat_XoffStateEntered = estats->pause_xoff_frames_received; | ||
3978 | } | ||
3979 | |||
3980 | static void bnx2x_update_emac_stats(struct bnx2x *bp) | ||
3981 | { | ||
3982 | struct emac_stats *new = bnx2x_sp(bp, mac_stats.emac); | ||
3983 | struct bnx2x_eth_stats *estats = bnx2x_sp(bp, eth_stats); | ||
3984 | |||
3985 | UPDATE_EXTEND_STAT(tx_ifhcoutoctets, total_bytes_transmitted_hi, | ||
3986 | total_bytes_transmitted_lo); | ||
3987 | UPDATE_EXTEND_STAT(tx_ifhcoutucastpkts, | ||
3988 | total_unicast_packets_transmitted_hi, | ||
3989 | total_unicast_packets_transmitted_lo); | ||
3990 | UPDATE_EXTEND_STAT(tx_ifhcoutmulticastpkts, | ||
3991 | total_multicast_packets_transmitted_hi, | ||
3992 | total_multicast_packets_transmitted_lo); | ||
3993 | UPDATE_EXTEND_STAT(tx_ifhcoutbroadcastpkts, | ||
3994 | total_broadcast_packets_transmitted_hi, | ||
3995 | total_broadcast_packets_transmitted_lo); | ||
3996 | |||
3997 | estats->pause_xon_frames_transmitted += new->tx_outxonsent; | ||
3998 | estats->pause_xoff_frames_transmitted += new->tx_outxoffsent; | ||
3999 | estats->single_collision_transmit_frames += | ||
4000 | new->tx_dot3statssinglecollisionframes; | ||
4001 | estats->multiple_collision_transmit_frames += | ||
4002 | new->tx_dot3statsmultiplecollisionframes; | ||
4003 | estats->late_collision_frames += new->tx_dot3statslatecollisions; | ||
4004 | estats->excessive_collision_frames += | ||
4005 | new->tx_dot3statsexcessivecollisions; | ||
4006 | estats->frames_transmitted_64_bytes += new->tx_etherstatspkts64octets; | ||
4007 | estats->frames_transmitted_65_127_bytes += | ||
4008 | new->tx_etherstatspkts65octetsto127octets; | ||
4009 | estats->frames_transmitted_128_255_bytes += | ||
4010 | new->tx_etherstatspkts128octetsto255octets; | ||
4011 | estats->frames_transmitted_256_511_bytes += | ||
4012 | new->tx_etherstatspkts256octetsto511octets; | ||
4013 | estats->frames_transmitted_512_1023_bytes += | ||
4014 | new->tx_etherstatspkts512octetsto1023octets; | ||
4015 | estats->frames_transmitted_1024_1522_bytes += | ||
4016 | new->tx_etherstatspkts1024octetsto1522octet; | ||
4017 | estats->frames_transmitted_1523_9022_bytes += | ||
4018 | new->tx_etherstatspktsover1522octets; | ||
4019 | |||
4020 | estats->crc_receive_errors += new->rx_dot3statsfcserrors; | ||
4021 | estats->alignment_errors += new->rx_dot3statsalignmenterrors; | ||
4022 | estats->false_carrier_detections += new->rx_falsecarriererrors; | ||
4023 | estats->runt_packets_received += new->rx_etherstatsundersizepkts; | ||
4024 | estats->stat_Dot3statsFramesTooLong += new->rx_dot3statsframestoolong; | ||
4025 | estats->pause_xon_frames_received += new->rx_xonpauseframesreceived; | ||
4026 | estats->pause_xoff_frames_received += new->rx_xoffpauseframesreceived; | ||
4027 | estats->control_frames_received += new->rx_maccontrolframesreceived; | ||
4028 | estats->error_runt_packets_received += new->rx_etherstatsfragments; | ||
4029 | estats->error_jabber_packets_received += new->rx_etherstatsjabbers; | ||
4030 | |||
4031 | UPDATE_EXTEND_STAT(rx_ifhcinbadoctets, stat_IfHCInBadOctets_hi, | ||
4032 | stat_IfHCInBadOctets_lo); | ||
4033 | UPDATE_EXTEND_STAT(tx_ifhcoutbadoctets, stat_IfHCOutBadOctets_hi, | ||
4034 | stat_IfHCOutBadOctets_lo); | ||
4035 | estats->stat_Dot3statsInternalMacTransmitErrors += | ||
4036 | new->tx_dot3statsinternalmactransmiterrors; | ||
4037 | estats->stat_Dot3StatsCarrierSenseErrors += | ||
4038 | new->rx_dot3statscarriersenseerrors; | ||
4039 | estats->stat_Dot3StatsDeferredTransmissions += | ||
4040 | new->tx_dot3statsdeferredtransmissions; | ||
4041 | estats->stat_FlowControlDone += new->tx_flowcontroldone; | ||
4042 | estats->stat_XoffStateEntered += new->rx_xoffstateentered; | ||
4043 | } | ||
4044 | |||
4045 | static int bnx2x_update_storm_stats(struct bnx2x *bp) | ||
4046 | { | ||
4047 | struct eth_stats_query *stats = bnx2x_sp(bp, fw_stats); | ||
4048 | struct tstorm_common_stats *tstats = &stats->tstorm_common; | ||
4049 | struct tstorm_per_client_stats *tclient = | ||
4050 | &tstats->client_statistics[0]; | ||
4051 | struct tstorm_per_client_stats *old_tclient = &bp->old_tclient; | ||
4052 | struct xstorm_common_stats *xstats = &stats->xstorm_common; | ||
4053 | struct nig_stats *nstats = bnx2x_sp(bp, nig); | ||
4054 | struct bnx2x_eth_stats *estats = bnx2x_sp(bp, eth_stats); | ||
4055 | u32 diff; | ||
4056 | |||
4057 | /* are DMAE stats valid? */ | ||
4058 | if (nstats->done != 0xffffffff) { | ||
4059 | DP(BNX2X_MSG_STATS, "stats not updated by dmae\n"); | ||
4060 | return -1; | ||
4061 | } | ||
4062 | |||
4063 | /* are storm stats valid? */ | ||
4064 | if (tstats->done.hi != 0xffffffff) { | ||
4065 | DP(BNX2X_MSG_STATS, "stats not updated by tstorm\n"); | ||
4066 | return -2; | ||
4067 | } | ||
4068 | if (xstats->done.hi != 0xffffffff) { | ||
4069 | DP(BNX2X_MSG_STATS, "stats not updated by xstorm\n"); | ||
4070 | return -3; | ||
4071 | } | ||
4072 | |||
4073 | estats->total_bytes_received_hi = | ||
4074 | estats->valid_bytes_received_hi = | ||
4075 | le32_to_cpu(tclient->total_rcv_bytes.hi); | ||
4076 | estats->total_bytes_received_lo = | ||
4077 | estats->valid_bytes_received_lo = | ||
4078 | le32_to_cpu(tclient->total_rcv_bytes.lo); | ||
4079 | ADD_64(estats->total_bytes_received_hi, | ||
4080 | le32_to_cpu(tclient->rcv_error_bytes.hi), | ||
4081 | estats->total_bytes_received_lo, | ||
4082 | le32_to_cpu(tclient->rcv_error_bytes.lo)); | ||
4083 | |||
4084 | UPDATE_EXTEND_TSTAT(rcv_unicast_pkts, | ||
4085 | total_unicast_packets_received_hi, | ||
4086 | total_unicast_packets_received_lo); | ||
4087 | UPDATE_EXTEND_TSTAT(rcv_multicast_pkts, | ||
4088 | total_multicast_packets_received_hi, | ||
4089 | total_multicast_packets_received_lo); | ||
4090 | UPDATE_EXTEND_TSTAT(rcv_broadcast_pkts, | ||
4091 | total_broadcast_packets_received_hi, | ||
4092 | total_broadcast_packets_received_lo); | ||
4093 | |||
4094 | estats->frames_received_64_bytes = MAC_STX_NA; | ||
4095 | estats->frames_received_65_127_bytes = MAC_STX_NA; | ||
4096 | estats->frames_received_128_255_bytes = MAC_STX_NA; | ||
4097 | estats->frames_received_256_511_bytes = MAC_STX_NA; | ||
4098 | estats->frames_received_512_1023_bytes = MAC_STX_NA; | ||
4099 | estats->frames_received_1024_1522_bytes = MAC_STX_NA; | ||
4100 | estats->frames_received_1523_9022_bytes = MAC_STX_NA; | ||
4101 | |||
4102 | estats->x_total_sent_bytes_hi = | ||
4103 | le32_to_cpu(xstats->total_sent_bytes.hi); | ||
4104 | estats->x_total_sent_bytes_lo = | ||
4105 | le32_to_cpu(xstats->total_sent_bytes.lo); | ||
4106 | estats->x_total_sent_pkts = le32_to_cpu(xstats->total_sent_pkts); | ||
4107 | |||
4108 | estats->t_rcv_unicast_bytes_hi = | ||
4109 | le32_to_cpu(tclient->rcv_unicast_bytes.hi); | ||
4110 | estats->t_rcv_unicast_bytes_lo = | ||
4111 | le32_to_cpu(tclient->rcv_unicast_bytes.lo); | ||
4112 | estats->t_rcv_broadcast_bytes_hi = | ||
4113 | le32_to_cpu(tclient->rcv_broadcast_bytes.hi); | ||
4114 | estats->t_rcv_broadcast_bytes_lo = | ||
4115 | le32_to_cpu(tclient->rcv_broadcast_bytes.lo); | ||
4116 | estats->t_rcv_multicast_bytes_hi = | ||
4117 | le32_to_cpu(tclient->rcv_multicast_bytes.hi); | ||
4118 | estats->t_rcv_multicast_bytes_lo = | ||
4119 | le32_to_cpu(tclient->rcv_multicast_bytes.lo); | ||
4120 | estats->t_total_rcv_pkt = le32_to_cpu(tclient->total_rcv_pkts); | ||
4121 | |||
4122 | estats->checksum_discard = le32_to_cpu(tclient->checksum_discard); | ||
4123 | estats->packets_too_big_discard = | ||
4124 | le32_to_cpu(tclient->packets_too_big_discard); | ||
4125 | estats->jabber_packets_received = estats->packets_too_big_discard + | ||
4126 | estats->stat_Dot3statsFramesTooLong; | ||
4127 | estats->no_buff_discard = le32_to_cpu(tclient->no_buff_discard); | ||
4128 | estats->ttl0_discard = le32_to_cpu(tclient->ttl0_discard); | ||
4129 | estats->mac_discard = le32_to_cpu(tclient->mac_discard); | ||
4130 | estats->mac_filter_discard = le32_to_cpu(tstats->mac_filter_discard); | ||
4131 | estats->xxoverflow_discard = le32_to_cpu(tstats->xxoverflow_discard); | ||
4132 | estats->brb_truncate_discard = | ||
4133 | le32_to_cpu(tstats->brb_truncate_discard); | ||
4134 | |||
4135 | estats->brb_discard += nstats->brb_discard - bp->old_brb_discard; | ||
4136 | bp->old_brb_discard = nstats->brb_discard; | ||
4137 | |||
4138 | estats->brb_packet = nstats->brb_packet; | ||
4139 | estats->brb_truncate = nstats->brb_truncate; | ||
4140 | estats->flow_ctrl_discard = nstats->flow_ctrl_discard; | ||
4141 | estats->flow_ctrl_octets = nstats->flow_ctrl_octets; | ||
4142 | estats->flow_ctrl_packet = nstats->flow_ctrl_packet; | ||
4143 | estats->mng_discard = nstats->mng_discard; | ||
4144 | estats->mng_octet_inp = nstats->mng_octet_inp; | ||
4145 | estats->mng_octet_out = nstats->mng_octet_out; | ||
4146 | estats->mng_packet_inp = nstats->mng_packet_inp; | ||
4147 | estats->mng_packet_out = nstats->mng_packet_out; | ||
4148 | estats->pbf_octets = nstats->pbf_octets; | ||
4149 | estats->pbf_packet = nstats->pbf_packet; | ||
4150 | estats->safc_inp = nstats->safc_inp; | ||
4151 | |||
4152 | xstats->done.hi = 0; | ||
4153 | tstats->done.hi = 0; | ||
4154 | nstats->done = 0; | ||
4155 | |||
4156 | return 0; | ||
4157 | } | ||
4158 | |||
4159 | static void bnx2x_update_net_stats(struct bnx2x *bp) | ||
4160 | { | ||
4161 | struct bnx2x_eth_stats *estats = bnx2x_sp(bp, eth_stats); | ||
4162 | struct net_device_stats *nstats = &bp->dev->stats; | ||
4163 | |||
4164 | nstats->rx_packets = | ||
4165 | bnx2x_hilo(&estats->total_unicast_packets_received_hi) + | ||
4166 | bnx2x_hilo(&estats->total_multicast_packets_received_hi) + | ||
4167 | bnx2x_hilo(&estats->total_broadcast_packets_received_hi); | ||
4168 | |||
4169 | nstats->tx_packets = | ||
4170 | bnx2x_hilo(&estats->total_unicast_packets_transmitted_hi) + | ||
4171 | bnx2x_hilo(&estats->total_multicast_packets_transmitted_hi) + | ||
4172 | bnx2x_hilo(&estats->total_broadcast_packets_transmitted_hi); | ||
4173 | |||
4174 | nstats->rx_bytes = bnx2x_hilo(&estats->total_bytes_received_hi); | ||
4175 | |||
4176 | nstats->tx_bytes = | ||
4177 | bnx2x_hilo(&estats->total_bytes_transmitted_hi); | ||
4178 | |||
4179 | nstats->rx_dropped = estats->checksum_discard + | ||
4180 | estats->mac_discard; | ||
4181 | nstats->tx_dropped = 0; | ||
4182 | |||
4183 | nstats->multicast = | ||
4184 | bnx2x_hilo(&estats->total_multicast_packets_transmitted_hi); | ||
4185 | |||
4186 | nstats->collisions = | ||
4187 | estats->single_collision_transmit_frames + | ||
4188 | estats->multiple_collision_transmit_frames + | ||
4189 | estats->late_collision_frames + | ||
4190 | estats->excessive_collision_frames; | ||
4191 | |||
4192 | nstats->rx_length_errors = estats->runt_packets_received + | ||
4193 | estats->jabber_packets_received; | ||
4194 | nstats->rx_over_errors = estats->no_buff_discard; | ||
4195 | nstats->rx_crc_errors = estats->crc_receive_errors; | ||
4196 | nstats->rx_frame_errors = estats->alignment_errors; | ||
4197 | nstats->rx_fifo_errors = estats->brb_discard + | ||
4198 | estats->brb_truncate_discard; | ||
4199 | nstats->rx_missed_errors = estats->xxoverflow_discard; | ||
4200 | |||
4201 | nstats->rx_errors = nstats->rx_length_errors + | ||
4202 | nstats->rx_over_errors + | ||
4203 | nstats->rx_crc_errors + | ||
4204 | nstats->rx_frame_errors + | ||
4205 | nstats->rx_fifo_errors; | ||
4206 | |||
4207 | nstats->tx_aborted_errors = estats->late_collision_frames + | ||
4208 | estats->excessive_collision_frames; | ||
4209 | nstats->tx_carrier_errors = estats->false_carrier_detections; | ||
4210 | nstats->tx_fifo_errors = 0; | ||
4211 | nstats->tx_heartbeat_errors = 0; | ||
4212 | nstats->tx_window_errors = 0; | ||
4213 | |||
4214 | nstats->tx_errors = nstats->tx_aborted_errors + | ||
4215 | nstats->tx_carrier_errors; | ||
4216 | |||
4217 | estats->mac_stx_start = ++estats->mac_stx_end; | ||
4218 | } | ||
4219 | |||
4220 | static void bnx2x_update_stats(struct bnx2x *bp) | ||
4221 | { | ||
4222 | int i; | ||
4223 | |||
4224 | if (!bnx2x_update_storm_stats(bp)) { | ||
4225 | |||
4226 | if (bp->phy_flags & PHY_BMAC_FLAG) { | ||
4227 | bnx2x_update_bmac_stats(bp); | ||
4228 | |||
4229 | } else if (bp->phy_flags & PHY_EMAC_FLAG) { | ||
4230 | bnx2x_update_emac_stats(bp); | ||
4231 | |||
4232 | } else { /* unreached */ | ||
4233 | BNX2X_ERR("no MAC active\n"); | ||
4234 | return; | ||
4235 | } | ||
4236 | |||
4237 | bnx2x_update_net_stats(bp); | ||
4238 | } | ||
4239 | |||
4240 | if (bp->msglevel & NETIF_MSG_TIMER) { | ||
4241 | struct bnx2x_eth_stats *estats = bnx2x_sp(bp, eth_stats); | ||
4242 | struct net_device_stats *nstats = &bp->dev->stats; | ||
4243 | |||
4244 | printk(KERN_DEBUG "%s:\n", bp->dev->name); | ||
4245 | printk(KERN_DEBUG " tx avail (%4x) tx hc idx (%x)" | ||
4246 | " tx pkt (%lx)\n", | ||
4247 | bnx2x_tx_avail(bp->fp), | ||
4248 | *bp->fp->tx_cons_sb, nstats->tx_packets); | ||
4249 | printk(KERN_DEBUG " rx usage (%4x) rx hc idx (%x)" | ||
4250 | " rx pkt (%lx)\n", | ||
4251 | (u16)(*bp->fp->rx_cons_sb - bp->fp->rx_comp_cons), | ||
4252 | *bp->fp->rx_cons_sb, nstats->rx_packets); | ||
4253 | printk(KERN_DEBUG " %s (Xoff events %u) brb drops %u\n", | ||
4254 | netif_queue_stopped(bp->dev)? "Xoff" : "Xon", | ||
4255 | estats->driver_xoff, estats->brb_discard); | ||
4256 | printk(KERN_DEBUG "tstats: checksum_discard %u " | ||
4257 | "packets_too_big_discard %u no_buff_discard %u " | ||
4258 | "mac_discard %u mac_filter_discard %u " | ||
4259 | "xxovrflow_discard %u brb_truncate_discard %u " | ||
4260 | "ttl0_discard %u\n", | ||
4261 | estats->checksum_discard, | ||
4262 | estats->packets_too_big_discard, | ||
4263 | estats->no_buff_discard, estats->mac_discard, | ||
4264 | estats->mac_filter_discard, estats->xxoverflow_discard, | ||
4265 | estats->brb_truncate_discard, estats->ttl0_discard); | ||
4266 | |||
4267 | for_each_queue(bp, i) { | ||
4268 | printk(KERN_DEBUG "[%d]: %lu\t%lu\t%lu\n", i, | ||
4269 | bnx2x_fp(bp, i, tx_pkt), | ||
4270 | bnx2x_fp(bp, i, rx_pkt), | ||
4271 | bnx2x_fp(bp, i, rx_calls)); | ||
4272 | } | ||
4273 | } | ||
4274 | |||
4275 | if (bp->state != BNX2X_STATE_OPEN) { | ||
4276 | DP(BNX2X_MSG_STATS, "state is %x, returning\n", bp->state); | ||
4277 | return; | ||
4278 | } | ||
4279 | |||
4280 | #ifdef BNX2X_STOP_ON_ERROR | ||
4281 | if (unlikely(bp->panic)) | ||
4282 | return; | ||
4283 | #endif | ||
4284 | |||
4285 | /* loader */ | ||
4286 | if (bp->executer_idx) { | ||
4287 | struct dmae_command *dmae = &bp->dmae; | ||
4288 | int port = bp->port; | ||
4289 | int loader_idx = port * 8; | ||
4290 | |||
4291 | memset(dmae, 0, sizeof(struct dmae_command)); | ||
4292 | |||
4293 | dmae->opcode = (DMAE_CMD_SRC_PCI | DMAE_CMD_DST_GRC | | ||
4294 | DMAE_CMD_C_DST_GRC | DMAE_CMD_C_ENABLE | | ||
4295 | DMAE_CMD_DST_RESET | | ||
4296 | #ifdef __BIG_ENDIAN | ||
4297 | DMAE_CMD_ENDIANITY_B_DW_SWAP | | ||
4298 | #else | ||
4299 | DMAE_CMD_ENDIANITY_DW_SWAP | | ||
4300 | #endif | ||
4301 | (port ? DMAE_CMD_PORT_1 : DMAE_CMD_PORT_0)); | ||
4302 | dmae->src_addr_lo = U64_LO(bnx2x_sp_mapping(bp, dmae[0])); | ||
4303 | dmae->src_addr_hi = U64_HI(bnx2x_sp_mapping(bp, dmae[0])); | ||
4304 | dmae->dst_addr_lo = (DMAE_REG_CMD_MEM + | ||
4305 | sizeof(struct dmae_command) * | ||
4306 | (loader_idx + 1)) >> 2; | ||
4307 | dmae->dst_addr_hi = 0; | ||
4308 | dmae->len = sizeof(struct dmae_command) >> 2; | ||
4309 | dmae->len--; /* !!! for A0/1 only */ | ||
4310 | dmae->comp_addr_lo = dmae_reg_go_c[loader_idx + 1] >> 2; | ||
4311 | dmae->comp_addr_hi = 0; | ||
4312 | dmae->comp_val = 1; | ||
4313 | |||
4314 | bnx2x_post_dmae(bp, dmae, loader_idx); | ||
4315 | } | ||
4316 | |||
4317 | if (bp->stats_state != STATS_STATE_ENABLE) { | ||
4318 | bp->stats_state = STATS_STATE_DISABLE; | ||
4319 | return; | ||
4320 | } | ||
4321 | |||
4322 | if (bnx2x_sp_post(bp, RAMROD_CMD_ID_ETH_STAT_QUERY, 0, 0, 0, 0) == 0) { | ||
4323 | /* stats ramrod has it's own slot on the spe */ | ||
4324 | bp->spq_left++; | ||
4325 | bp->stat_pending = 1; | ||
4326 | } | ||
4327 | } | ||
4328 | |||
4329 | static void bnx2x_timer(unsigned long data) | ||
4330 | { | ||
4331 | struct bnx2x *bp = (struct bnx2x *) data; | ||
4332 | |||
4333 | if (!netif_running(bp->dev)) | ||
4334 | return; | ||
4335 | |||
4336 | if (atomic_read(&bp->intr_sem) != 0) | ||
4337 | goto bnx2x_restart_timer; | ||
4338 | |||
4339 | if (poll) { | ||
4340 | struct bnx2x_fastpath *fp = &bp->fp[0]; | ||
4341 | int rc; | ||
4342 | |||
4343 | bnx2x_tx_int(fp, 1000); | ||
4344 | rc = bnx2x_rx_int(fp, 1000); | ||
4345 | } | ||
4346 | |||
4347 | if (!nomcp && (bp->bc_ver >= 0x040003)) { | ||
4348 | int port = bp->port; | ||
4349 | u32 drv_pulse; | ||
4350 | u32 mcp_pulse; | ||
4351 | |||
4352 | ++bp->fw_drv_pulse_wr_seq; | ||
4353 | bp->fw_drv_pulse_wr_seq &= DRV_PULSE_SEQ_MASK; | ||
4354 | /* TBD - add SYSTEM_TIME */ | ||
4355 | drv_pulse = bp->fw_drv_pulse_wr_seq; | ||
4356 | SHMEM_WR(bp, drv_fw_mb[port].drv_pulse_mb, drv_pulse); | ||
4357 | |||
4358 | mcp_pulse = (SHMEM_RD(bp, drv_fw_mb[port].mcp_pulse_mb) & | ||
4359 | MCP_PULSE_SEQ_MASK); | ||
4360 | /* The delta between driver pulse and mcp response | ||
4361 | * should be 1 (before mcp response) or 0 (after mcp response) | ||
4362 | */ | ||
4363 | if ((drv_pulse != mcp_pulse) && | ||
4364 | (drv_pulse != ((mcp_pulse + 1) & MCP_PULSE_SEQ_MASK))) { | ||
4365 | /* someone lost a heartbeat... */ | ||
4366 | BNX2X_ERR("drv_pulse (0x%x) != mcp_pulse (0x%x)\n", | ||
4367 | drv_pulse, mcp_pulse); | ||
4368 | } | ||
4369 | } | ||
4370 | |||
4371 | if (bp->stats_state == STATS_STATE_DISABLE) | ||
4372 | goto bnx2x_restart_timer; | ||
4373 | |||
4374 | bnx2x_update_stats(bp); | ||
4375 | |||
4376 | bnx2x_restart_timer: | ||
4377 | mod_timer(&bp->timer, jiffies + bp->current_interval); | ||
4378 | } | ||
4379 | |||
4380 | /* end of Statistics */ | ||
4381 | |||
4382 | /* nic init */ | ||
4383 | |||
4384 | /* | ||
4385 | * nic init service functions | ||
4386 | */ | ||
4387 | |||
4388 | static void bnx2x_init_sb(struct bnx2x *bp, struct host_status_block *sb, | ||
4389 | dma_addr_t mapping, int id) | ||
4390 | { | ||
4391 | int port = bp->port; | ||
4392 | u64 section; | ||
4393 | int index; | ||
4394 | |||
4395 | /* USTORM */ | ||
4396 | section = ((u64)mapping) + offsetof(struct host_status_block, | ||
4397 | u_status_block); | ||
4398 | sb->u_status_block.status_block_id = id; | ||
4399 | |||
4400 | REG_WR(bp, BAR_USTRORM_INTMEM + | ||
4401 | USTORM_SB_HOST_SB_ADDR_OFFSET(port, id), U64_LO(section)); | ||
4402 | REG_WR(bp, BAR_USTRORM_INTMEM + | ||
4403 | ((USTORM_SB_HOST_SB_ADDR_OFFSET(port, id)) + 4), | ||
4404 | U64_HI(section)); | ||
4405 | |||
4406 | for (index = 0; index < HC_USTORM_SB_NUM_INDICES; index++) | ||
4407 | REG_WR16(bp, BAR_USTRORM_INTMEM + | ||
4408 | USTORM_SB_HC_DISABLE_OFFSET(port, id, index), 0x1); | ||
4409 | |||
4410 | /* CSTORM */ | ||
4411 | section = ((u64)mapping) + offsetof(struct host_status_block, | ||
4412 | c_status_block); | ||
4413 | sb->c_status_block.status_block_id = id; | ||
4414 | |||
4415 | REG_WR(bp, BAR_CSTRORM_INTMEM + | ||
4416 | CSTORM_SB_HOST_SB_ADDR_OFFSET(port, id), U64_LO(section)); | ||
4417 | REG_WR(bp, BAR_CSTRORM_INTMEM + | ||
4418 | ((CSTORM_SB_HOST_SB_ADDR_OFFSET(port, id)) + 4), | ||
4419 | U64_HI(section)); | ||
4420 | |||
4421 | for (index = 0; index < HC_CSTORM_SB_NUM_INDICES; index++) | ||
4422 | REG_WR16(bp, BAR_CSTRORM_INTMEM + | ||
4423 | CSTORM_SB_HC_DISABLE_OFFSET(port, id, index), 0x1); | ||
4424 | |||
4425 | bnx2x_ack_sb(bp, id, CSTORM_ID, 0, IGU_INT_ENABLE, 0); | ||
4426 | } | ||
4427 | |||
4428 | static void bnx2x_init_def_sb(struct bnx2x *bp, | ||
4429 | struct host_def_status_block *def_sb, | ||
4430 | dma_addr_t mapping, int id) | ||
4431 | { | ||
4432 | int port = bp->port; | ||
4433 | int index, val, reg_offset; | ||
4434 | u64 section; | ||
4435 | |||
4436 | /* ATTN */ | ||
4437 | section = ((u64)mapping) + offsetof(struct host_def_status_block, | ||
4438 | atten_status_block); | ||
4439 | def_sb->atten_status_block.status_block_id = id; | ||
4440 | |||
4441 | reg_offset = (port ? MISC_REG_AEU_ENABLE1_FUNC_1_OUT_0 : | ||
4442 | MISC_REG_AEU_ENABLE1_FUNC_0_OUT_0); | ||
4443 | |||
4444 | for (index = 0; index < 3; index++) { | ||
4445 | bp->attn_group[index].sig[0] = REG_RD(bp, | ||
4446 | reg_offset + 0x10*index); | ||
4447 | bp->attn_group[index].sig[1] = REG_RD(bp, | ||
4448 | reg_offset + 0x4 + 0x10*index); | ||
4449 | bp->attn_group[index].sig[2] = REG_RD(bp, | ||
4450 | reg_offset + 0x8 + 0x10*index); | ||
4451 | bp->attn_group[index].sig[3] = REG_RD(bp, | ||
4452 | reg_offset + 0xc + 0x10*index); | ||
4453 | } | ||
4454 | |||
4455 | bp->aeu_mask = REG_RD(bp, (port ? MISC_REG_AEU_MASK_ATTN_FUNC_1 : | ||
4456 | MISC_REG_AEU_MASK_ATTN_FUNC_0)); | ||
4457 | |||
4458 | reg_offset = (port ? HC_REG_ATTN_MSG1_ADDR_L : | ||
4459 | HC_REG_ATTN_MSG0_ADDR_L); | ||
4460 | |||
4461 | REG_WR(bp, reg_offset, U64_LO(section)); | ||
4462 | REG_WR(bp, reg_offset + 4, U64_HI(section)); | ||
4463 | |||
4464 | reg_offset = (port ? HC_REG_ATTN_NUM_P1 : HC_REG_ATTN_NUM_P0); | ||
4465 | |||
4466 | val = REG_RD(bp, reg_offset); | ||
4467 | val |= id; | ||
4468 | REG_WR(bp, reg_offset, val); | ||
4469 | |||
4470 | /* USTORM */ | ||
4471 | section = ((u64)mapping) + offsetof(struct host_def_status_block, | ||
4472 | u_def_status_block); | ||
4473 | def_sb->u_def_status_block.status_block_id = id; | ||
4474 | |||
4475 | REG_WR(bp, BAR_USTRORM_INTMEM + | ||
4476 | USTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port), U64_LO(section)); | ||
4477 | REG_WR(bp, BAR_USTRORM_INTMEM + | ||
4478 | ((USTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port)) + 4), | ||
4479 | U64_HI(section)); | ||
4480 | REG_WR(bp, BAR_USTRORM_INTMEM + USTORM_HC_BTR_OFFSET(port), | ||
4481 | BNX2X_BTR); | ||
4482 | |||
4483 | for (index = 0; index < HC_USTORM_DEF_SB_NUM_INDICES; index++) | ||
4484 | REG_WR16(bp, BAR_USTRORM_INTMEM + | ||
4485 | USTORM_DEF_SB_HC_DISABLE_OFFSET(port, index), 0x1); | ||
4486 | |||
4487 | /* CSTORM */ | ||
4488 | section = ((u64)mapping) + offsetof(struct host_def_status_block, | ||
4489 | c_def_status_block); | ||
4490 | def_sb->c_def_status_block.status_block_id = id; | ||
4491 | |||
4492 | REG_WR(bp, BAR_CSTRORM_INTMEM + | ||
4493 | CSTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port), U64_LO(section)); | ||
4494 | REG_WR(bp, BAR_CSTRORM_INTMEM + | ||
4495 | ((CSTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port)) + 4), | ||
4496 | U64_HI(section)); | ||
4497 | REG_WR(bp, BAR_CSTRORM_INTMEM + CSTORM_HC_BTR_OFFSET(port), | ||
4498 | BNX2X_BTR); | ||
4499 | |||
4500 | for (index = 0; index < HC_CSTORM_DEF_SB_NUM_INDICES; index++) | ||
4501 | REG_WR16(bp, BAR_CSTRORM_INTMEM + | ||
4502 | CSTORM_DEF_SB_HC_DISABLE_OFFSET(port, index), 0x1); | ||
4503 | |||
4504 | /* TSTORM */ | ||
4505 | section = ((u64)mapping) + offsetof(struct host_def_status_block, | ||
4506 | t_def_status_block); | ||
4507 | def_sb->t_def_status_block.status_block_id = id; | ||
4508 | |||
4509 | REG_WR(bp, BAR_TSTRORM_INTMEM + | ||
4510 | TSTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port), U64_LO(section)); | ||
4511 | REG_WR(bp, BAR_TSTRORM_INTMEM + | ||
4512 | ((TSTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port)) + 4), | ||
4513 | U64_HI(section)); | ||
4514 | REG_WR(bp, BAR_TSTRORM_INTMEM + TSTORM_HC_BTR_OFFSET(port), | ||
4515 | BNX2X_BTR); | ||
4516 | |||
4517 | for (index = 0; index < HC_TSTORM_DEF_SB_NUM_INDICES; index++) | ||
4518 | REG_WR16(bp, BAR_TSTRORM_INTMEM + | ||
4519 | TSTORM_DEF_SB_HC_DISABLE_OFFSET(port, index), 0x1); | ||
4520 | |||
4521 | /* XSTORM */ | ||
4522 | section = ((u64)mapping) + offsetof(struct host_def_status_block, | ||
4523 | x_def_status_block); | ||
4524 | def_sb->x_def_status_block.status_block_id = id; | ||
4525 | |||
4526 | REG_WR(bp, BAR_XSTRORM_INTMEM + | ||
4527 | XSTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port), U64_LO(section)); | ||
4528 | REG_WR(bp, BAR_XSTRORM_INTMEM + | ||
4529 | ((XSTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port)) + 4), | ||
4530 | U64_HI(section)); | ||
4531 | REG_WR(bp, BAR_XSTRORM_INTMEM + XSTORM_HC_BTR_OFFSET(port), | ||
4532 | BNX2X_BTR); | ||
4533 | |||
4534 | for (index = 0; index < HC_XSTORM_DEF_SB_NUM_INDICES; index++) | ||
4535 | REG_WR16(bp, BAR_XSTRORM_INTMEM + | ||
4536 | XSTORM_DEF_SB_HC_DISABLE_OFFSET(port, index), 0x1); | ||
4537 | |||
4538 | bnx2x_ack_sb(bp, id, CSTORM_ID, 0, IGU_INT_ENABLE, 0); | ||
4539 | } | ||
4540 | |||
4541 | static void bnx2x_update_coalesce(struct bnx2x *bp) | ||
4542 | { | ||
4543 | int port = bp->port; | ||
4544 | int i; | ||
4545 | |||
4546 | for_each_queue(bp, i) { | ||
4547 | |||
4548 | /* HC_INDEX_U_ETH_RX_CQ_CONS */ | ||
4549 | REG_WR8(bp, BAR_USTRORM_INTMEM + | ||
4550 | USTORM_SB_HC_TIMEOUT_OFFSET(port, i, | ||
4551 | HC_INDEX_U_ETH_RX_CQ_CONS), | ||
4552 | bp->rx_ticks_int/12); | ||
4553 | REG_WR16(bp, BAR_USTRORM_INTMEM + | ||
4554 | USTORM_SB_HC_DISABLE_OFFSET(port, i, | ||
4555 | HC_INDEX_U_ETH_RX_CQ_CONS), | ||
4556 | bp->rx_ticks_int ? 0 : 1); | ||
4557 | |||
4558 | /* HC_INDEX_C_ETH_TX_CQ_CONS */ | ||
4559 | REG_WR8(bp, BAR_CSTRORM_INTMEM + | ||
4560 | CSTORM_SB_HC_TIMEOUT_OFFSET(port, i, | ||
4561 | HC_INDEX_C_ETH_TX_CQ_CONS), | ||
4562 | bp->tx_ticks_int/12); | ||
4563 | REG_WR16(bp, BAR_CSTRORM_INTMEM + | ||
4564 | CSTORM_SB_HC_DISABLE_OFFSET(port, i, | ||
4565 | HC_INDEX_C_ETH_TX_CQ_CONS), | ||
4566 | bp->tx_ticks_int ? 0 : 1); | ||
4567 | } | ||
4568 | } | ||
4569 | |||
4570 | static void bnx2x_init_rx_rings(struct bnx2x *bp) | ||
4571 | { | ||
4572 | u16 ring_prod; | ||
4573 | int i, j; | ||
4574 | int port = bp->port; | ||
4575 | |||
4576 | bp->rx_buf_use_size = bp->dev->mtu; | ||
4577 | |||
4578 | bp->rx_buf_use_size += bp->rx_offset + ETH_OVREHEAD; | ||
4579 | bp->rx_buf_size = bp->rx_buf_use_size + 64; | ||
4580 | |||
4581 | for_each_queue(bp, j) { | ||
4582 | struct bnx2x_fastpath *fp = &bp->fp[j]; | ||
4583 | |||
4584 | fp->rx_bd_cons = 0; | ||
4585 | fp->rx_cons_sb = BNX2X_RX_SB_INDEX; | ||
4586 | |||
4587 | for (i = 1; i <= NUM_RX_RINGS; i++) { | ||
4588 | struct eth_rx_bd *rx_bd; | ||
4589 | |||
4590 | rx_bd = &fp->rx_desc_ring[RX_DESC_CNT * i - 2]; | ||
4591 | rx_bd->addr_hi = | ||
4592 | cpu_to_le32(U64_HI(fp->rx_desc_mapping + | ||
4593 | BCM_PAGE_SIZE*(i % NUM_RX_RINGS))); | ||
4594 | rx_bd->addr_lo = | ||
4595 | cpu_to_le32(U64_LO(fp->rx_desc_mapping + | ||
4596 | BCM_PAGE_SIZE*(i % NUM_RX_RINGS))); | ||
4597 | |||
4598 | } | ||
4599 | |||
4600 | for (i = 1; i <= NUM_RCQ_RINGS; i++) { | ||
4601 | struct eth_rx_cqe_next_page *nextpg; | ||
4602 | |||
4603 | nextpg = (struct eth_rx_cqe_next_page *) | ||
4604 | &fp->rx_comp_ring[RCQ_DESC_CNT * i - 1]; | ||
4605 | nextpg->addr_hi = | ||
4606 | cpu_to_le32(U64_HI(fp->rx_comp_mapping + | ||
4607 | BCM_PAGE_SIZE*(i % NUM_RCQ_RINGS))); | ||
4608 | nextpg->addr_lo = | ||
4609 | cpu_to_le32(U64_LO(fp->rx_comp_mapping + | ||
4610 | BCM_PAGE_SIZE*(i % NUM_RCQ_RINGS))); | ||
4611 | } | ||
4612 | |||
4613 | /* rx completion queue */ | ||
4614 | fp->rx_comp_cons = ring_prod = 0; | ||
4615 | |||
4616 | for (i = 0; i < bp->rx_ring_size; i++) { | ||
4617 | if (bnx2x_alloc_rx_skb(bp, fp, ring_prod) < 0) { | ||
4618 | BNX2X_ERR("was only able to allocate " | ||
4619 | "%d rx skbs\n", i); | ||
4620 | break; | ||
4621 | } | ||
4622 | ring_prod = NEXT_RX_IDX(ring_prod); | ||
4623 | BUG_TRAP(ring_prod > i); | ||
4624 | } | ||
4625 | |||
4626 | fp->rx_bd_prod = fp->rx_comp_prod = ring_prod; | ||
4627 | fp->rx_pkt = fp->rx_calls = 0; | ||
4628 | |||
4629 | /* Warning! this will genrate an interrupt (to the TSTORM) */ | ||
4630 | /* must only be done when chip is initialized */ | ||
4631 | REG_WR(bp, BAR_TSTRORM_INTMEM + | ||
4632 | TSTORM_RCQ_PROD_OFFSET(port, j), ring_prod); | ||
4633 | if (j != 0) | ||
4634 | continue; | ||
4635 | |||
4636 | REG_WR(bp, BAR_USTRORM_INTMEM + | ||
4637 | USTORM_MEM_WORKAROUND_ADDRESS_OFFSET(port), | ||
4638 | U64_LO(fp->rx_comp_mapping)); | ||
4639 | REG_WR(bp, BAR_USTRORM_INTMEM + | ||
4640 | USTORM_MEM_WORKAROUND_ADDRESS_OFFSET(port) + 4, | ||
4641 | U64_HI(fp->rx_comp_mapping)); | ||
4642 | } | ||
4643 | } | ||
4644 | |||
4645 | static void bnx2x_init_tx_ring(struct bnx2x *bp) | ||
4646 | { | ||
4647 | int i, j; | ||
4648 | |||
4649 | for_each_queue(bp, j) { | ||
4650 | struct bnx2x_fastpath *fp = &bp->fp[j]; | ||
4651 | |||
4652 | for (i = 1; i <= NUM_TX_RINGS; i++) { | ||
4653 | struct eth_tx_bd *tx_bd = | ||
4654 | &fp->tx_desc_ring[TX_DESC_CNT * i - 1]; | ||
4655 | |||
4656 | tx_bd->addr_hi = | ||
4657 | cpu_to_le32(U64_HI(fp->tx_desc_mapping + | ||
4658 | BCM_PAGE_SIZE*(i % NUM_TX_RINGS))); | ||
4659 | tx_bd->addr_lo = | ||
4660 | cpu_to_le32(U64_LO(fp->tx_desc_mapping + | ||
4661 | BCM_PAGE_SIZE*(i % NUM_TX_RINGS))); | ||
4662 | } | ||
4663 | |||
4664 | fp->tx_pkt_prod = 0; | ||
4665 | fp->tx_pkt_cons = 0; | ||
4666 | fp->tx_bd_prod = 0; | ||
4667 | fp->tx_bd_cons = 0; | ||
4668 | fp->tx_cons_sb = BNX2X_TX_SB_INDEX; | ||
4669 | fp->tx_pkt = 0; | ||
4670 | } | ||
4671 | } | ||
4672 | |||
4673 | static void bnx2x_init_sp_ring(struct bnx2x *bp) | ||
4674 | { | ||
4675 | int port = bp->port; | ||
4676 | |||
4677 | spin_lock_init(&bp->spq_lock); | ||
4678 | |||
4679 | bp->spq_left = MAX_SPQ_PENDING; | ||
4680 | bp->spq_prod_idx = 0; | ||
4681 | bp->dsb_sp_prod_idx = 0; | ||
4682 | bp->dsb_sp_prod = BNX2X_SP_DSB_INDEX; | ||
4683 | bp->spq_prod_bd = bp->spq; | ||
4684 | bp->spq_last_bd = bp->spq_prod_bd + MAX_SP_DESC_CNT; | ||
4685 | |||
4686 | REG_WR(bp, BAR_XSTRORM_INTMEM + XSTORM_SPQ_PAGE_BASE_OFFSET(port), | ||
4687 | U64_LO(bp->spq_mapping)); | ||
4688 | REG_WR(bp, BAR_XSTRORM_INTMEM + XSTORM_SPQ_PAGE_BASE_OFFSET(port) + 4, | ||
4689 | U64_HI(bp->spq_mapping)); | ||
4690 | |||
4691 | REG_WR(bp, XSEM_REG_FAST_MEMORY + XSTORM_SPQ_PROD_OFFSET(port), | ||
4692 | bp->spq_prod_idx); | ||
4693 | } | ||
4694 | |||
4695 | static void bnx2x_init_context(struct bnx2x *bp) | ||
4696 | { | ||
4697 | int i; | ||
4698 | |||
4699 | for_each_queue(bp, i) { | ||
4700 | struct eth_context *context = bnx2x_sp(bp, context[i].eth); | ||
4701 | struct bnx2x_fastpath *fp = &bp->fp[i]; | ||
4702 | |||
4703 | context->xstorm_st_context.tx_bd_page_base_hi = | ||
4704 | U64_HI(fp->tx_desc_mapping); | ||
4705 | context->xstorm_st_context.tx_bd_page_base_lo = | ||
4706 | U64_LO(fp->tx_desc_mapping); | ||
4707 | context->xstorm_st_context.db_data_addr_hi = | ||
4708 | U64_HI(fp->tx_prods_mapping); | ||
4709 | context->xstorm_st_context.db_data_addr_lo = | ||
4710 | U64_LO(fp->tx_prods_mapping); | ||
4711 | |||
4712 | context->ustorm_st_context.rx_bd_page_base_hi = | ||
4713 | U64_HI(fp->rx_desc_mapping); | ||
4714 | context->ustorm_st_context.rx_bd_page_base_lo = | ||
4715 | U64_LO(fp->rx_desc_mapping); | ||
4716 | context->ustorm_st_context.status_block_id = i; | ||
4717 | context->ustorm_st_context.sb_index_number = | ||
4718 | HC_INDEX_U_ETH_RX_CQ_CONS; | ||
4719 | context->ustorm_st_context.rcq_base_address_hi = | ||
4720 | U64_HI(fp->rx_comp_mapping); | ||
4721 | context->ustorm_st_context.rcq_base_address_lo = | ||
4722 | U64_LO(fp->rx_comp_mapping); | ||
4723 | context->ustorm_st_context.flags = | ||
4724 | USTORM_ETH_ST_CONTEXT_ENABLE_MC_ALIGNMENT; | ||
4725 | context->ustorm_st_context.mc_alignment_size = 64; | ||
4726 | context->ustorm_st_context.num_rss = bp->num_queues; | ||
4727 | |||
4728 | context->cstorm_st_context.sb_index_number = | ||
4729 | HC_INDEX_C_ETH_TX_CQ_CONS; | ||
4730 | context->cstorm_st_context.status_block_id = i; | ||
4731 | |||
4732 | context->xstorm_ag_context.cdu_reserved = | ||
4733 | CDU_RSRVD_VALUE_TYPE_A(HW_CID(bp, i), | ||
4734 | CDU_REGION_NUMBER_XCM_AG, | ||
4735 | ETH_CONNECTION_TYPE); | ||
4736 | context->ustorm_ag_context.cdu_usage = | ||
4737 | CDU_RSRVD_VALUE_TYPE_A(HW_CID(bp, i), | ||
4738 | CDU_REGION_NUMBER_UCM_AG, | ||
4739 | ETH_CONNECTION_TYPE); | ||
4740 | } | ||
4741 | } | ||
4742 | |||
4743 | static void bnx2x_init_ind_table(struct bnx2x *bp) | ||
4744 | { | ||
4745 | int port = bp->port; | ||
4746 | int i; | ||
4747 | |||
4748 | if (!is_multi(bp)) | ||
4749 | return; | ||
4750 | |||
4751 | for (i = 0; i < TSTORM_INDIRECTION_TABLE_SIZE; i++) | ||
4752 | REG_WR8(bp, TSTORM_INDIRECTION_TABLE_OFFSET(port) + i, | ||
4753 | i % bp->num_queues); | ||
4754 | |||
4755 | REG_WR(bp, PRS_REG_A_PRSU_20, 0xf); | ||
4756 | } | ||
4757 | |||
4758 | static void bnx2x_set_storm_rx_mode(struct bnx2x *bp) | ||
4759 | { | ||
4760 | int mode = bp->rx_mode; | ||
4761 | int port = bp->port; | ||
4762 | struct tstorm_eth_mac_filter_config tstorm_mac_filter = {0}; | ||
4763 | int i; | ||
4764 | |||
4765 | DP(NETIF_MSG_RX_STATUS, "rx mode is %d\n", mode); | ||
4766 | |||
4767 | switch (mode) { | ||
4768 | case BNX2X_RX_MODE_NONE: /* no Rx */ | ||
4769 | tstorm_mac_filter.ucast_drop_all = 1; | ||
4770 | tstorm_mac_filter.mcast_drop_all = 1; | ||
4771 | tstorm_mac_filter.bcast_drop_all = 1; | ||
4772 | break; | ||
4773 | case BNX2X_RX_MODE_NORMAL: | ||
4774 | tstorm_mac_filter.bcast_accept_all = 1; | ||
4775 | break; | ||
4776 | case BNX2X_RX_MODE_ALLMULTI: | ||
4777 | tstorm_mac_filter.mcast_accept_all = 1; | ||
4778 | tstorm_mac_filter.bcast_accept_all = 1; | ||
4779 | break; | ||
4780 | case BNX2X_RX_MODE_PROMISC: | ||
4781 | tstorm_mac_filter.ucast_accept_all = 1; | ||
4782 | tstorm_mac_filter.mcast_accept_all = 1; | ||
4783 | tstorm_mac_filter.bcast_accept_all = 1; | ||
4784 | break; | ||
4785 | default: | ||
4786 | BNX2X_ERR("bad rx mode (%d)\n", mode); | ||
4787 | } | ||
4788 | |||
4789 | for (i = 0; i < sizeof(struct tstorm_eth_mac_filter_config)/4; i++) { | ||
4790 | REG_WR(bp, BAR_TSTRORM_INTMEM + | ||
4791 | TSTORM_MAC_FILTER_CONFIG_OFFSET(port) + i * 4, | ||
4792 | ((u32 *)&tstorm_mac_filter)[i]); | ||
4793 | |||
4794 | /* DP(NETIF_MSG_IFUP, "tstorm_mac_filter[%d]: 0x%08x\n", i, | ||
4795 | ((u32 *)&tstorm_mac_filter)[i]); */ | ||
4796 | } | ||
4797 | } | ||
4798 | |||
4799 | static void bnx2x_set_client_config(struct bnx2x *bp, int client_id) | ||
4800 | { | ||
4801 | #ifdef BCM_VLAN | ||
4802 | int mode = bp->rx_mode; | ||
4803 | #endif | ||
4804 | int port = bp->port; | ||
4805 | struct tstorm_eth_client_config tstorm_client = {0}; | ||
4806 | |||
4807 | tstorm_client.mtu = bp->dev->mtu; | ||
4808 | tstorm_client.statistics_counter_id = 0; | ||
4809 | tstorm_client.config_flags = | ||
4810 | TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE; | ||
4811 | #ifdef BCM_VLAN | ||
4812 | if (mode && bp->vlgrp) { | ||
4813 | tstorm_client.config_flags |= | ||
4814 | TSTORM_ETH_CLIENT_CONFIG_VLAN_REMOVAL_ENABLE; | ||
4815 | DP(NETIF_MSG_IFUP, "vlan removal enabled\n"); | ||
4816 | } | ||
4817 | #endif | ||
4818 | tstorm_client.drop_flags = (TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR | | ||
4819 | TSTORM_ETH_CLIENT_CONFIG_DROP_TCP_CS_ERR | | ||
4820 | TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR | | ||
4821 | TSTORM_ETH_CLIENT_CONFIG_DROP_MAC_ERR); | ||
4822 | |||
4823 | REG_WR(bp, BAR_TSTRORM_INTMEM + | ||
4824 | TSTORM_CLIENT_CONFIG_OFFSET(port, client_id), | ||
4825 | ((u32 *)&tstorm_client)[0]); | ||
4826 | REG_WR(bp, BAR_TSTRORM_INTMEM + | ||
4827 | TSTORM_CLIENT_CONFIG_OFFSET(port, client_id) + 4, | ||
4828 | ((u32 *)&tstorm_client)[1]); | ||
4829 | |||
4830 | /* DP(NETIF_MSG_IFUP, "tstorm_client: 0x%08x 0x%08x\n", | ||
4831 | ((u32 *)&tstorm_client)[0], ((u32 *)&tstorm_client)[1]); */ | ||
4832 | } | ||
4833 | |||
4834 | static void bnx2x_init_internal(struct bnx2x *bp) | ||
4835 | { | ||
4836 | int port = bp->port; | ||
4837 | struct tstorm_eth_function_common_config tstorm_config = {0}; | ||
4838 | struct stats_indication_flags stats_flags = {0}; | ||
4839 | int i; | ||
4840 | |||
4841 | if (is_multi(bp)) { | ||
4842 | tstorm_config.config_flags = MULTI_FLAGS; | ||
4843 | tstorm_config.rss_result_mask = MULTI_MASK; | ||
4844 | } | ||
4845 | |||
4846 | REG_WR(bp, BAR_TSTRORM_INTMEM + | ||
4847 | TSTORM_FUNCTION_COMMON_CONFIG_OFFSET(port), | ||
4848 | (*(u32 *)&tstorm_config)); | ||
4849 | |||
4850 | /* DP(NETIF_MSG_IFUP, "tstorm_config: 0x%08x\n", | ||
4851 | (*(u32 *)&tstorm_config)); */ | ||
4852 | |||
4853 | bp->rx_mode = BNX2X_RX_MODE_NONE; /* no rx untill link is up */ | ||
4854 | bnx2x_set_storm_rx_mode(bp); | ||
4855 | |||
4856 | for_each_queue(bp, i) | ||
4857 | bnx2x_set_client_config(bp, i); | ||
4858 | |||
4859 | |||
4860 | stats_flags.collect_eth = cpu_to_le32(1); | ||
4861 | |||
4862 | REG_WR(bp, BAR_XSTRORM_INTMEM + XSTORM_STATS_FLAGS_OFFSET(port), | ||
4863 | ((u32 *)&stats_flags)[0]); | ||
4864 | REG_WR(bp, BAR_XSTRORM_INTMEM + XSTORM_STATS_FLAGS_OFFSET(port) + 4, | ||
4865 | ((u32 *)&stats_flags)[1]); | ||
4866 | |||
4867 | REG_WR(bp, BAR_TSTRORM_INTMEM + TSTORM_STATS_FLAGS_OFFSET(port), | ||
4868 | ((u32 *)&stats_flags)[0]); | ||
4869 | REG_WR(bp, BAR_TSTRORM_INTMEM + TSTORM_STATS_FLAGS_OFFSET(port) + 4, | ||
4870 | ((u32 *)&stats_flags)[1]); | ||
4871 | |||
4872 | REG_WR(bp, BAR_CSTRORM_INTMEM + CSTORM_STATS_FLAGS_OFFSET(port), | ||
4873 | ((u32 *)&stats_flags)[0]); | ||
4874 | REG_WR(bp, BAR_CSTRORM_INTMEM + CSTORM_STATS_FLAGS_OFFSET(port) + 4, | ||
4875 | ((u32 *)&stats_flags)[1]); | ||
4876 | |||
4877 | /* DP(NETIF_MSG_IFUP, "stats_flags: 0x%08x 0x%08x\n", | ||
4878 | ((u32 *)&stats_flags)[0], ((u32 *)&stats_flags)[1]); */ | ||
4879 | } | ||
4880 | |||
4881 | static void bnx2x_nic_init(struct bnx2x *bp) | ||
4882 | { | ||
4883 | int i; | ||
4884 | |||
4885 | for_each_queue(bp, i) { | ||
4886 | struct bnx2x_fastpath *fp = &bp->fp[i]; | ||
4887 | |||
4888 | fp->state = BNX2X_FP_STATE_CLOSED; | ||
4889 | DP(NETIF_MSG_IFUP, "bnx2x_init_sb(%p,%p,%d);\n", | ||
4890 | bp, fp->status_blk, i); | ||
4891 | fp->index = i; | ||
4892 | bnx2x_init_sb(bp, fp->status_blk, fp->status_blk_mapping, i); | ||
4893 | } | ||
4894 | |||
4895 | bnx2x_init_def_sb(bp, bp->def_status_blk, | ||
4896 | bp->def_status_blk_mapping, 0x10); | ||
4897 | bnx2x_update_coalesce(bp); | ||
4898 | bnx2x_init_rx_rings(bp); | ||
4899 | bnx2x_init_tx_ring(bp); | ||
4900 | bnx2x_init_sp_ring(bp); | ||
4901 | bnx2x_init_context(bp); | ||
4902 | bnx2x_init_internal(bp); | ||
4903 | bnx2x_init_stats(bp); | ||
4904 | bnx2x_init_ind_table(bp); | ||
4905 | bnx2x_enable_int(bp); | ||
4906 | |||
4907 | } | ||
4908 | |||
4909 | /* end of nic init */ | ||
4910 | |||
4911 | /* | ||
4912 | * gzip service functions | ||
4913 | */ | ||
4914 | |||
4915 | static int bnx2x_gunzip_init(struct bnx2x *bp) | ||
4916 | { | ||
4917 | bp->gunzip_buf = pci_alloc_consistent(bp->pdev, FW_BUF_SIZE, | ||
4918 | &bp->gunzip_mapping); | ||
4919 | if (bp->gunzip_buf == NULL) | ||
4920 | goto gunzip_nomem1; | ||
4921 | |||
4922 | bp->strm = kmalloc(sizeof(*bp->strm), GFP_KERNEL); | ||
4923 | if (bp->strm == NULL) | ||
4924 | goto gunzip_nomem2; | ||
4925 | |||
4926 | bp->strm->workspace = kmalloc(zlib_inflate_workspacesize(), | ||
4927 | GFP_KERNEL); | ||
4928 | if (bp->strm->workspace == NULL) | ||
4929 | goto gunzip_nomem3; | ||
4930 | |||
4931 | return 0; | ||
4932 | |||
4933 | gunzip_nomem3: | ||
4934 | kfree(bp->strm); | ||
4935 | bp->strm = NULL; | ||
4936 | |||
4937 | gunzip_nomem2: | ||
4938 | pci_free_consistent(bp->pdev, FW_BUF_SIZE, bp->gunzip_buf, | ||
4939 | bp->gunzip_mapping); | ||
4940 | bp->gunzip_buf = NULL; | ||
4941 | |||
4942 | gunzip_nomem1: | ||
4943 | printk(KERN_ERR PFX "%s: Cannot allocate firmware buffer for" | ||
4944 | " uncompression\n", bp->dev->name); | ||
4945 | return -ENOMEM; | ||
4946 | } | ||
4947 | |||
4948 | static void bnx2x_gunzip_end(struct bnx2x *bp) | ||
4949 | { | ||
4950 | kfree(bp->strm->workspace); | ||
4951 | |||
4952 | kfree(bp->strm); | ||
4953 | bp->strm = NULL; | ||
4954 | |||
4955 | if (bp->gunzip_buf) { | ||
4956 | pci_free_consistent(bp->pdev, FW_BUF_SIZE, bp->gunzip_buf, | ||
4957 | bp->gunzip_mapping); | ||
4958 | bp->gunzip_buf = NULL; | ||
4959 | } | ||
4960 | } | ||
4961 | |||
4962 | static int bnx2x_gunzip(struct bnx2x *bp, u8 *zbuf, int len) | ||
4963 | { | ||
4964 | int n, rc; | ||
4965 | |||
4966 | /* check gzip header */ | ||
4967 | if ((zbuf[0] != 0x1f) || (zbuf[1] != 0x8b) || (zbuf[2] != Z_DEFLATED)) | ||
4968 | return -EINVAL; | ||
4969 | |||
4970 | n = 10; | ||
4971 | |||
4972 | #define FNAME 0x8 | ||
4973 | |||
4974 | if (zbuf[3] & FNAME) | ||
4975 | while ((zbuf[n++] != 0) && (n < len)); | ||
4976 | |||
4977 | bp->strm->next_in = zbuf + n; | ||
4978 | bp->strm->avail_in = len - n; | ||
4979 | bp->strm->next_out = bp->gunzip_buf; | ||
4980 | bp->strm->avail_out = FW_BUF_SIZE; | ||
4981 | |||
4982 | rc = zlib_inflateInit2(bp->strm, -MAX_WBITS); | ||
4983 | if (rc != Z_OK) | ||
4984 | return rc; | ||
4985 | |||
4986 | rc = zlib_inflate(bp->strm, Z_FINISH); | ||
4987 | if ((rc != Z_OK) && (rc != Z_STREAM_END)) | ||
4988 | printk(KERN_ERR PFX "%s: Firmware decompression error: %s\n", | ||
4989 | bp->dev->name, bp->strm->msg); | ||
4990 | |||
4991 | bp->gunzip_outlen = (FW_BUF_SIZE - bp->strm->avail_out); | ||
4992 | if (bp->gunzip_outlen & 0x3) | ||
4993 | printk(KERN_ERR PFX "%s: Firmware decompression error:" | ||
4994 | " gunzip_outlen (%d) not aligned\n", | ||
4995 | bp->dev->name, bp->gunzip_outlen); | ||
4996 | bp->gunzip_outlen >>= 2; | ||
4997 | |||
4998 | zlib_inflateEnd(bp->strm); | ||
4999 | |||
5000 | if (rc == Z_STREAM_END) | ||
5001 | return 0; | ||
5002 | |||
5003 | return rc; | ||
5004 | } | ||
5005 | |||
5006 | /* nic load/unload */ | ||
5007 | |||
5008 | /* | ||
5009 | * general service functions | ||
5010 | */ | ||
5011 | |||
5012 | /* send a NIG loopback debug packet */ | ||
5013 | static void bnx2x_lb_pckt(struct bnx2x *bp) | ||
5014 | { | ||
5015 | #ifdef USE_DMAE | ||
5016 | u32 wb_write[3]; | ||
5017 | #endif | ||
5018 | |||
5019 | /* Ethernet source and destination addresses */ | ||
5020 | #ifdef USE_DMAE | ||
5021 | wb_write[0] = 0x55555555; | ||
5022 | wb_write[1] = 0x55555555; | ||
5023 | wb_write[2] = 0x20; /* SOP */ | ||
5024 | REG_WR_DMAE(bp, NIG_REG_DEBUG_PACKET_LB, wb_write, 3); | ||
5025 | #else | ||
5026 | REG_WR_IND(bp, NIG_REG_DEBUG_PACKET_LB, 0x55555555); | ||
5027 | REG_WR_IND(bp, NIG_REG_DEBUG_PACKET_LB + 4, 0x55555555); | ||
5028 | /* SOP */ | ||
5029 | REG_WR_IND(bp, NIG_REG_DEBUG_PACKET_LB + 8, 0x20); | ||
5030 | #endif | ||
5031 | |||
5032 | /* NON-IP protocol */ | ||
5033 | #ifdef USE_DMAE | ||
5034 | wb_write[0] = 0x09000000; | ||
5035 | wb_write[1] = 0x55555555; | ||
5036 | wb_write[2] = 0x10; /* EOP, eop_bvalid = 0 */ | ||
5037 | REG_WR_DMAE(bp, NIG_REG_DEBUG_PACKET_LB, wb_write, 3); | ||
5038 | #else | ||
5039 | REG_WR_IND(bp, NIG_REG_DEBUG_PACKET_LB, 0x09000000); | ||
5040 | REG_WR_IND(bp, NIG_REG_DEBUG_PACKET_LB + 4, 0x55555555); | ||
5041 | /* EOP, eop_bvalid = 0 */ | ||
5042 | REG_WR_IND(bp, NIG_REG_DEBUG_PACKET_LB + 8, 0x10); | ||
5043 | #endif | ||
5044 | } | ||
5045 | |||
5046 | /* some of the internal memories | ||
5047 | * are not directly readable from the driver | ||
5048 | * to test them we send debug packets | ||
5049 | */ | ||
5050 | static int bnx2x_int_mem_test(struct bnx2x *bp) | ||
5051 | { | ||
5052 | int factor; | ||
5053 | int count, i; | ||
5054 | u32 val = 0; | ||
5055 | |||
5056 | switch (CHIP_REV(bp)) { | ||
5057 | case CHIP_REV_EMUL: | ||
5058 | factor = 200; | ||
5059 | break; | ||
5060 | case CHIP_REV_FPGA: | ||
5061 | factor = 120; | ||
5062 | break; | ||
5063 | default: | ||
5064 | factor = 1; | ||
5065 | break; | ||
5066 | } | ||
5067 | |||
5068 | DP(NETIF_MSG_HW, "start part1\n"); | ||
5069 | |||
5070 | /* Disable inputs of parser neighbor blocks */ | ||
5071 | REG_WR(bp, TSDM_REG_ENABLE_IN1, 0x0); | ||
5072 | REG_WR(bp, TCM_REG_PRS_IFEN, 0x0); | ||
5073 | REG_WR(bp, CFC_REG_DEBUG0, 0x1); | ||
5074 | NIG_WR(NIG_REG_PRS_REQ_IN_EN, 0x0); | ||
5075 | |||
5076 | /* Write 0 to parser credits for CFC search request */ | ||
5077 | REG_WR(bp, PRS_REG_CFC_SEARCH_INITIAL_CREDIT, 0x0); | ||
5078 | |||
5079 | /* send Ethernet packet */ | ||
5080 | bnx2x_lb_pckt(bp); | ||
5081 | |||
5082 | /* TODO do i reset NIG statistic? */ | ||
5083 | /* Wait until NIG register shows 1 packet of size 0x10 */ | ||
5084 | count = 1000 * factor; | ||
5085 | while (count) { | ||
5086 | #ifdef BNX2X_DMAE_RD | ||
5087 | bnx2x_read_dmae(bp, NIG_REG_STAT2_BRB_OCTET, 2); | ||
5088 | val = *bnx2x_sp(bp, wb_data[0]); | ||
5089 | #else | ||
5090 | val = REG_RD(bp, NIG_REG_STAT2_BRB_OCTET); | ||
5091 | REG_RD(bp, NIG_REG_STAT2_BRB_OCTET + 4); | ||
5092 | #endif | ||
5093 | if (val == 0x10) | ||
5094 | break; | ||
5095 | |||
5096 | msleep(10); | ||
5097 | count--; | ||
5098 | } | ||
5099 | if (val != 0x10) { | ||
5100 | BNX2X_ERR("NIG timeout val = 0x%x\n", val); | ||
5101 | return -1; | ||
5102 | } | ||
5103 | |||
5104 | /* Wait until PRS register shows 1 packet */ | ||
5105 | count = 1000 * factor; | ||
5106 | while (count) { | ||
5107 | val = REG_RD(bp, PRS_REG_NUM_OF_PACKETS); | ||
5108 | |||
5109 | if (val == 1) | ||
5110 | break; | ||
5111 | |||
5112 | msleep(10); | ||
5113 | count--; | ||
5114 | } | ||
5115 | if (val != 0x1) { | ||
5116 | BNX2X_ERR("PRS timeout val = 0x%x\n", val); | ||
5117 | return -2; | ||
5118 | } | ||
5119 | |||
5120 | /* Reset and init BRB, PRS */ | ||
5121 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_CLEAR, 0x3); | ||
5122 | msleep(50); | ||
5123 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_SET, 0x3); | ||
5124 | msleep(50); | ||
5125 | bnx2x_init_block(bp, BRB1_COMMON_START, BRB1_COMMON_END); | ||
5126 | bnx2x_init_block(bp, PRS_COMMON_START, PRS_COMMON_END); | ||
5127 | |||
5128 | DP(NETIF_MSG_HW, "part2\n"); | ||
5129 | |||
5130 | /* Disable inputs of parser neighbor blocks */ | ||
5131 | REG_WR(bp, TSDM_REG_ENABLE_IN1, 0x0); | ||
5132 | REG_WR(bp, TCM_REG_PRS_IFEN, 0x0); | ||
5133 | REG_WR(bp, CFC_REG_DEBUG0, 0x1); | ||
5134 | NIG_WR(NIG_REG_PRS_REQ_IN_EN, 0x0); | ||
5135 | |||
5136 | /* Write 0 to parser credits for CFC search request */ | ||
5137 | REG_WR(bp, PRS_REG_CFC_SEARCH_INITIAL_CREDIT, 0x0); | ||
5138 | |||
5139 | /* send 10 Ethernet packets */ | ||
5140 | for (i = 0; i < 10; i++) | ||
5141 | bnx2x_lb_pckt(bp); | ||
5142 | |||
5143 | /* Wait until NIG register shows 10 + 1 | ||
5144 | packets of size 11*0x10 = 0xb0 */ | ||
5145 | count = 1000 * factor; | ||
5146 | while (count) { | ||
5147 | #ifdef BNX2X_DMAE_RD | ||
5148 | bnx2x_read_dmae(bp, NIG_REG_STAT2_BRB_OCTET, 2); | ||
5149 | val = *bnx2x_sp(bp, wb_data[0]); | ||
5150 | #else | ||
5151 | val = REG_RD(bp, NIG_REG_STAT2_BRB_OCTET); | ||
5152 | REG_RD(bp, NIG_REG_STAT2_BRB_OCTET + 4); | ||
5153 | #endif | ||
5154 | if (val == 0xb0) | ||
5155 | break; | ||
5156 | |||
5157 | msleep(10); | ||
5158 | count--; | ||
5159 | } | ||
5160 | if (val != 0xb0) { | ||
5161 | BNX2X_ERR("NIG timeout val = 0x%x\n", val); | ||
5162 | return -3; | ||
5163 | } | ||
5164 | |||
5165 | /* Wait until PRS register shows 2 packets */ | ||
5166 | val = REG_RD(bp, PRS_REG_NUM_OF_PACKETS); | ||
5167 | if (val != 2) | ||
5168 | BNX2X_ERR("PRS timeout val = 0x%x\n", val); | ||
5169 | |||
5170 | /* Write 1 to parser credits for CFC search request */ | ||
5171 | REG_WR(bp, PRS_REG_CFC_SEARCH_INITIAL_CREDIT, 0x1); | ||
5172 | |||
5173 | /* Wait until PRS register shows 3 packets */ | ||
5174 | msleep(10 * factor); | ||
5175 | /* Wait until NIG register shows 1 packet of size 0x10 */ | ||
5176 | val = REG_RD(bp, PRS_REG_NUM_OF_PACKETS); | ||
5177 | if (val != 3) | ||
5178 | BNX2X_ERR("PRS timeout val = 0x%x\n", val); | ||
5179 | |||
5180 | /* clear NIG EOP FIFO */ | ||
5181 | for (i = 0; i < 11; i++) | ||
5182 | REG_RD(bp, NIG_REG_INGRESS_EOP_LB_FIFO); | ||
5183 | val = REG_RD(bp, NIG_REG_INGRESS_EOP_LB_EMPTY); | ||
5184 | if (val != 1) { | ||
5185 | BNX2X_ERR("clear of NIG failed\n"); | ||
5186 | return -4; | ||
5187 | } | ||
5188 | |||
5189 | /* Reset and init BRB, PRS, NIG */ | ||
5190 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_CLEAR, 0x03); | ||
5191 | msleep(50); | ||
5192 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_SET, 0x03); | ||
5193 | msleep(50); | ||
5194 | bnx2x_init_block(bp, BRB1_COMMON_START, BRB1_COMMON_END); | ||
5195 | bnx2x_init_block(bp, PRS_COMMON_START, PRS_COMMON_END); | ||
5196 | #ifndef BCM_ISCSI | ||
5197 | /* set NIC mode */ | ||
5198 | REG_WR(bp, PRS_REG_NIC_MODE, 1); | ||
5199 | #endif | ||
5200 | |||
5201 | /* Enable inputs of parser neighbor blocks */ | ||
5202 | REG_WR(bp, TSDM_REG_ENABLE_IN1, 0x7fffffff); | ||
5203 | REG_WR(bp, TCM_REG_PRS_IFEN, 0x1); | ||
5204 | REG_WR(bp, CFC_REG_DEBUG0, 0x0); | ||
5205 | NIG_WR(NIG_REG_PRS_REQ_IN_EN, 0x1); | ||
5206 | |||
5207 | DP(NETIF_MSG_HW, "done\n"); | ||
5208 | |||
5209 | return 0; /* OK */ | ||
5210 | } | ||
5211 | |||
5212 | static void enable_blocks_attention(struct bnx2x *bp) | ||
5213 | { | ||
5214 | REG_WR(bp, PXP_REG_PXP_INT_MASK_0, 0); | ||
5215 | REG_WR(bp, PXP_REG_PXP_INT_MASK_1, 0); | ||
5216 | REG_WR(bp, DORQ_REG_DORQ_INT_MASK, 0); | ||
5217 | REG_WR(bp, CFC_REG_CFC_INT_MASK, 0); | ||
5218 | REG_WR(bp, QM_REG_QM_INT_MASK, 0); | ||
5219 | REG_WR(bp, TM_REG_TM_INT_MASK, 0); | ||
5220 | REG_WR(bp, XSDM_REG_XSDM_INT_MASK_0, 0); | ||
5221 | REG_WR(bp, XSDM_REG_XSDM_INT_MASK_1, 0); | ||
5222 | REG_WR(bp, XCM_REG_XCM_INT_MASK, 0); | ||
5223 | /* REG_WR(bp, XSEM_REG_XSEM_INT_MASK_0, 0); */ | ||
5224 | /* REG_WR(bp, XSEM_REG_XSEM_INT_MASK_1, 0); */ | ||
5225 | REG_WR(bp, USDM_REG_USDM_INT_MASK_0, 0); | ||
5226 | REG_WR(bp, USDM_REG_USDM_INT_MASK_1, 0); | ||
5227 | REG_WR(bp, UCM_REG_UCM_INT_MASK, 0); | ||
5228 | /* REG_WR(bp, USEM_REG_USEM_INT_MASK_0, 0); */ | ||
5229 | /* REG_WR(bp, USEM_REG_USEM_INT_MASK_1, 0); */ | ||
5230 | REG_WR(bp, GRCBASE_UPB + PB_REG_PB_INT_MASK, 0); | ||
5231 | REG_WR(bp, CSDM_REG_CSDM_INT_MASK_0, 0); | ||
5232 | REG_WR(bp, CSDM_REG_CSDM_INT_MASK_1, 0); | ||
5233 | REG_WR(bp, CCM_REG_CCM_INT_MASK, 0); | ||
5234 | /* REG_WR(bp, CSEM_REG_CSEM_INT_MASK_0, 0); */ | ||
5235 | /* REG_WR(bp, CSEM_REG_CSEM_INT_MASK_1, 0); */ | ||
5236 | REG_WR(bp, PXP2_REG_PXP2_INT_MASK, 0x480000); | ||
5237 | REG_WR(bp, TSDM_REG_TSDM_INT_MASK_0, 0); | ||
5238 | REG_WR(bp, TSDM_REG_TSDM_INT_MASK_1, 0); | ||
5239 | REG_WR(bp, TCM_REG_TCM_INT_MASK, 0); | ||
5240 | /* REG_WR(bp, TSEM_REG_TSEM_INT_MASK_0, 0); */ | ||
5241 | /* REG_WR(bp, TSEM_REG_TSEM_INT_MASK_1, 0); */ | ||
5242 | REG_WR(bp, CDU_REG_CDU_INT_MASK, 0); | ||
5243 | REG_WR(bp, DMAE_REG_DMAE_INT_MASK, 0); | ||
5244 | /* REG_WR(bp, MISC_REG_MISC_INT_MASK, 0); */ | ||
5245 | REG_WR(bp, PBF_REG_PBF_INT_MASK, 0X18); /* bit 3,4 masked */ | ||
5246 | } | ||
5247 | |||
5248 | static int bnx2x_function_init(struct bnx2x *bp, int mode) | ||
5249 | { | ||
5250 | int func = bp->port; | ||
5251 | int port = func ? PORT1 : PORT0; | ||
5252 | u32 val, i; | ||
5253 | #ifdef USE_DMAE | ||
5254 | u32 wb_write[2]; | ||
5255 | #endif | ||
5256 | |||
5257 | DP(BNX2X_MSG_MCP, "function is %d mode is %x\n", func, mode); | ||
5258 | if ((func != 0) && (func != 1)) { | ||
5259 | BNX2X_ERR("BAD function number (%d)\n", func); | ||
5260 | return -ENODEV; | ||
5261 | } | ||
5262 | |||
5263 | bnx2x_gunzip_init(bp); | ||
5264 | |||
5265 | if (mode & 0x1) { /* init common */ | ||
5266 | DP(BNX2X_MSG_MCP, "starting common init func %d mode %x\n", | ||
5267 | func, mode); | ||
5268 | REG_WR(bp, MISC_REG_RESET_REG_1, 0xffffffff); | ||
5269 | REG_WR(bp, MISC_REG_RESET_REG_2, 0xfffc); | ||
5270 | bnx2x_init_block(bp, MISC_COMMON_START, MISC_COMMON_END); | ||
5271 | |||
5272 | REG_WR(bp, MISC_REG_LCPLL_CTRL_REG_2, 0x100); | ||
5273 | msleep(30); | ||
5274 | REG_WR(bp, MISC_REG_LCPLL_CTRL_REG_2, 0x0); | ||
5275 | |||
5276 | bnx2x_init_block(bp, PXP_COMMON_START, PXP_COMMON_END); | ||
5277 | bnx2x_init_block(bp, PXP2_COMMON_START, PXP2_COMMON_END); | ||
5278 | |||
5279 | bnx2x_init_pxp(bp); | ||
5280 | |||
5281 | if (CHIP_REV(bp) == CHIP_REV_Ax) { | ||
5282 | /* enable HW interrupt from PXP on USDM | ||
5283 | overflow bit 16 on INT_MASK_0 */ | ||
5284 | REG_WR(bp, PXP_REG_PXP_INT_MASK_0, 0); | ||
5285 | } | ||
5286 | |||
5287 | #ifdef __BIG_ENDIAN | ||
5288 | REG_WR(bp, PXP2_REG_RQ_QM_ENDIAN_M, 1); | ||
5289 | REG_WR(bp, PXP2_REG_RQ_TM_ENDIAN_M, 1); | ||
5290 | REG_WR(bp, PXP2_REG_RQ_SRC_ENDIAN_M, 1); | ||
5291 | REG_WR(bp, PXP2_REG_RQ_CDU_ENDIAN_M, 1); | ||
5292 | REG_WR(bp, PXP2_REG_RQ_DBG_ENDIAN_M, 1); | ||
5293 | REG_WR(bp, PXP2_REG_RQ_HC_ENDIAN_M, 1); | ||
5294 | |||
5295 | /* REG_WR(bp, PXP2_REG_RD_PBF_SWAP_MODE, 1); */ | ||
5296 | REG_WR(bp, PXP2_REG_RD_QM_SWAP_MODE, 1); | ||
5297 | REG_WR(bp, PXP2_REG_RD_TM_SWAP_MODE, 1); | ||
5298 | REG_WR(bp, PXP2_REG_RD_SRC_SWAP_MODE, 1); | ||
5299 | REG_WR(bp, PXP2_REG_RD_CDURD_SWAP_MODE, 1); | ||
5300 | #endif | ||
5301 | |||
5302 | #ifndef BCM_ISCSI | ||
5303 | /* set NIC mode */ | ||
5304 | REG_WR(bp, PRS_REG_NIC_MODE, 1); | ||
5305 | #endif | ||
5306 | |||
5307 | REG_WR(bp, PXP2_REG_RQ_CDU_P_SIZE, 5); | ||
5308 | #ifdef BCM_ISCSI | ||
5309 | REG_WR(bp, PXP2_REG_RQ_TM_P_SIZE, 5); | ||
5310 | REG_WR(bp, PXP2_REG_RQ_QM_P_SIZE, 5); | ||
5311 | REG_WR(bp, PXP2_REG_RQ_SRC_P_SIZE, 5); | ||
5312 | #endif | ||
5313 | |||
5314 | bnx2x_init_block(bp, DMAE_COMMON_START, DMAE_COMMON_END); | ||
5315 | |||
5316 | /* let the HW do it's magic ... */ | ||
5317 | msleep(100); | ||
5318 | /* finish PXP init | ||
5319 | (can be moved up if we want to use the DMAE) */ | ||
5320 | val = REG_RD(bp, PXP2_REG_RQ_CFG_DONE); | ||
5321 | if (val != 1) { | ||
5322 | BNX2X_ERR("PXP2 CFG failed\n"); | ||
5323 | return -EBUSY; | ||
5324 | } | ||
5325 | |||
5326 | val = REG_RD(bp, PXP2_REG_RD_INIT_DONE); | ||
5327 | if (val != 1) { | ||
5328 | BNX2X_ERR("PXP2 RD_INIT failed\n"); | ||
5329 | return -EBUSY; | ||
5330 | } | ||
5331 | |||
5332 | REG_WR(bp, PXP2_REG_RQ_DISABLE_INPUTS, 0); | ||
5333 | REG_WR(bp, PXP2_REG_RD_DISABLE_INPUTS, 0); | ||
5334 | |||
5335 | bnx2x_init_fill(bp, TSEM_REG_PRAM, 0, 8); | ||
5336 | |||
5337 | bnx2x_init_block(bp, TCM_COMMON_START, TCM_COMMON_END); | ||
5338 | bnx2x_init_block(bp, UCM_COMMON_START, UCM_COMMON_END); | ||
5339 | bnx2x_init_block(bp, CCM_COMMON_START, CCM_COMMON_END); | ||
5340 | bnx2x_init_block(bp, XCM_COMMON_START, XCM_COMMON_END); | ||
5341 | |||
5342 | #ifdef BNX2X_DMAE_RD | ||
5343 | bnx2x_read_dmae(bp, XSEM_REG_PASSIVE_BUFFER, 3); | ||
5344 | bnx2x_read_dmae(bp, CSEM_REG_PASSIVE_BUFFER, 3); | ||
5345 | bnx2x_read_dmae(bp, TSEM_REG_PASSIVE_BUFFER, 3); | ||
5346 | bnx2x_read_dmae(bp, USEM_REG_PASSIVE_BUFFER, 3); | ||
5347 | #else | ||
5348 | REG_RD(bp, XSEM_REG_PASSIVE_BUFFER); | ||
5349 | REG_RD(bp, XSEM_REG_PASSIVE_BUFFER + 4); | ||
5350 | REG_RD(bp, XSEM_REG_PASSIVE_BUFFER + 8); | ||
5351 | REG_RD(bp, CSEM_REG_PASSIVE_BUFFER); | ||
5352 | REG_RD(bp, CSEM_REG_PASSIVE_BUFFER + 4); | ||
5353 | REG_RD(bp, CSEM_REG_PASSIVE_BUFFER + 8); | ||
5354 | REG_RD(bp, TSEM_REG_PASSIVE_BUFFER); | ||
5355 | REG_RD(bp, TSEM_REG_PASSIVE_BUFFER + 4); | ||
5356 | REG_RD(bp, TSEM_REG_PASSIVE_BUFFER + 8); | ||
5357 | REG_RD(bp, USEM_REG_PASSIVE_BUFFER); | ||
5358 | REG_RD(bp, USEM_REG_PASSIVE_BUFFER + 4); | ||
5359 | REG_RD(bp, USEM_REG_PASSIVE_BUFFER + 8); | ||
5360 | #endif | ||
5361 | bnx2x_init_block(bp, QM_COMMON_START, QM_COMMON_END); | ||
5362 | /* softrest pulse */ | ||
5363 | REG_WR(bp, QM_REG_SOFT_RESET, 1); | ||
5364 | REG_WR(bp, QM_REG_SOFT_RESET, 0); | ||
5365 | |||
5366 | #ifdef BCM_ISCSI | ||
5367 | bnx2x_init_block(bp, TIMERS_COMMON_START, TIMERS_COMMON_END); | ||
5368 | #endif | ||
5369 | bnx2x_init_block(bp, DQ_COMMON_START, DQ_COMMON_END); | ||
5370 | REG_WR(bp, DORQ_REG_DPM_CID_OFST, BCM_PAGE_BITS); | ||
5371 | if (CHIP_REV(bp) == CHIP_REV_Ax) { | ||
5372 | /* enable hw interrupt from doorbell Q */ | ||
5373 | REG_WR(bp, DORQ_REG_DORQ_INT_MASK, 0); | ||
5374 | } | ||
5375 | |||
5376 | bnx2x_init_block(bp, BRB1_COMMON_START, BRB1_COMMON_END); | ||
5377 | |||
5378 | if (CHIP_REV_IS_SLOW(bp)) { | ||
5379 | /* fix for emulation and FPGA for no pause */ | ||
5380 | REG_WR(bp, BRB1_REG_PAUSE_HIGH_THRESHOLD_0, 513); | ||
5381 | REG_WR(bp, BRB1_REG_PAUSE_HIGH_THRESHOLD_1, 513); | ||
5382 | REG_WR(bp, BRB1_REG_PAUSE_LOW_THRESHOLD_0, 0); | ||
5383 | REG_WR(bp, BRB1_REG_PAUSE_LOW_THRESHOLD_1, 0); | ||
5384 | } | ||
5385 | |||
5386 | bnx2x_init_block(bp, PRS_COMMON_START, PRS_COMMON_END); | ||
5387 | |||
5388 | bnx2x_init_block(bp, TSDM_COMMON_START, TSDM_COMMON_END); | ||
5389 | bnx2x_init_block(bp, CSDM_COMMON_START, CSDM_COMMON_END); | ||
5390 | bnx2x_init_block(bp, USDM_COMMON_START, USDM_COMMON_END); | ||
5391 | bnx2x_init_block(bp, XSDM_COMMON_START, XSDM_COMMON_END); | ||
5392 | |||
5393 | bnx2x_init_fill(bp, TSTORM_INTMEM_ADDR, 0, STORM_INTMEM_SIZE); | ||
5394 | bnx2x_init_fill(bp, CSTORM_INTMEM_ADDR, 0, STORM_INTMEM_SIZE); | ||
5395 | bnx2x_init_fill(bp, XSTORM_INTMEM_ADDR, 0, STORM_INTMEM_SIZE); | ||
5396 | bnx2x_init_fill(bp, USTORM_INTMEM_ADDR, 0, STORM_INTMEM_SIZE); | ||
5397 | |||
5398 | bnx2x_init_block(bp, TSEM_COMMON_START, TSEM_COMMON_END); | ||
5399 | bnx2x_init_block(bp, USEM_COMMON_START, USEM_COMMON_END); | ||
5400 | bnx2x_init_block(bp, CSEM_COMMON_START, CSEM_COMMON_END); | ||
5401 | bnx2x_init_block(bp, XSEM_COMMON_START, XSEM_COMMON_END); | ||
5402 | |||
5403 | /* sync semi rtc */ | ||
5404 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_CLEAR, | ||
5405 | 0x80000000); | ||
5406 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_SET, | ||
5407 | 0x80000000); | ||
5408 | |||
5409 | bnx2x_init_block(bp, UPB_COMMON_START, UPB_COMMON_END); | ||
5410 | bnx2x_init_block(bp, XPB_COMMON_START, XPB_COMMON_END); | ||
5411 | bnx2x_init_block(bp, PBF_COMMON_START, PBF_COMMON_END); | ||
5412 | |||
5413 | REG_WR(bp, SRC_REG_SOFT_RST, 1); | ||
5414 | for (i = SRC_REG_KEYRSS0_0; i <= SRC_REG_KEYRSS1_9; i += 4) { | ||
5415 | REG_WR(bp, i, 0xc0cac01a); | ||
5416 | /* TODO: repleace with something meaningfull */ | ||
5417 | } | ||
5418 | /* SRCH COMMON comes here */ | ||
5419 | REG_WR(bp, SRC_REG_SOFT_RST, 0); | ||
5420 | |||
5421 | if (sizeof(union cdu_context) != 1024) { | ||
5422 | /* we currently assume that a context is 1024 bytes */ | ||
5423 | printk(KERN_ALERT PFX "please adjust the size of" | ||
5424 | " cdu_context(%ld)\n", | ||
5425 | (long)sizeof(union cdu_context)); | ||
5426 | } | ||
5427 | val = (4 << 24) + (0 << 12) + 1024; | ||
5428 | REG_WR(bp, CDU_REG_CDU_GLOBAL_PARAMS, val); | ||
5429 | bnx2x_init_block(bp, CDU_COMMON_START, CDU_COMMON_END); | ||
5430 | |||
5431 | bnx2x_init_block(bp, CFC_COMMON_START, CFC_COMMON_END); | ||
5432 | REG_WR(bp, CFC_REG_INIT_REG, 0x7FF); | ||
5433 | |||
5434 | bnx2x_init_block(bp, HC_COMMON_START, HC_COMMON_END); | ||
5435 | bnx2x_init_block(bp, MISC_AEU_COMMON_START, | ||
5436 | MISC_AEU_COMMON_END); | ||
5437 | /* RXPCS COMMON comes here */ | ||
5438 | /* EMAC0 COMMON comes here */ | ||
5439 | /* EMAC1 COMMON comes here */ | ||
5440 | /* DBU COMMON comes here */ | ||
5441 | /* DBG COMMON comes here */ | ||
5442 | bnx2x_init_block(bp, NIG_COMMON_START, NIG_COMMON_END); | ||
5443 | |||
5444 | if (CHIP_REV_IS_SLOW(bp)) | ||
5445 | msleep(200); | ||
5446 | |||
5447 | /* finish CFC init */ | ||
5448 | val = REG_RD(bp, CFC_REG_LL_INIT_DONE); | ||
5449 | if (val != 1) { | ||
5450 | BNX2X_ERR("CFC LL_INIT failed\n"); | ||
5451 | return -EBUSY; | ||
5452 | } | ||
5453 | |||
5454 | val = REG_RD(bp, CFC_REG_AC_INIT_DONE); | ||
5455 | if (val != 1) { | ||
5456 | BNX2X_ERR("CFC AC_INIT failed\n"); | ||
5457 | return -EBUSY; | ||
5458 | } | ||
5459 | |||
5460 | val = REG_RD(bp, CFC_REG_CAM_INIT_DONE); | ||
5461 | if (val != 1) { | ||
5462 | BNX2X_ERR("CFC CAM_INIT failed\n"); | ||
5463 | return -EBUSY; | ||
5464 | } | ||
5465 | |||
5466 | REG_WR(bp, CFC_REG_DEBUG0, 0); | ||
5467 | |||
5468 | /* read NIG statistic | ||
5469 | to see if this is our first up since powerup */ | ||
5470 | #ifdef BNX2X_DMAE_RD | ||
5471 | bnx2x_read_dmae(bp, NIG_REG_STAT2_BRB_OCTET, 2); | ||
5472 | val = *bnx2x_sp(bp, wb_data[0]); | ||
5473 | #else | ||
5474 | val = REG_RD(bp, NIG_REG_STAT2_BRB_OCTET); | ||
5475 | REG_RD(bp, NIG_REG_STAT2_BRB_OCTET + 4); | ||
5476 | #endif | ||
5477 | /* do internal memory self test */ | ||
5478 | if ((val == 0) && bnx2x_int_mem_test(bp)) { | ||
5479 | BNX2X_ERR("internal mem selftest failed\n"); | ||
5480 | return -EBUSY; | ||
5481 | } | ||
5482 | |||
5483 | /* clear PXP2 attentions */ | ||
5484 | REG_RD(bp, PXP2_REG_PXP2_INT_STS_CLR); | ||
5485 | |||
5486 | enable_blocks_attention(bp); | ||
5487 | /* enable_blocks_parity(bp); */ | ||
5488 | |||
5489 | } /* end of common init */ | ||
5490 | |||
5491 | /* per port init */ | ||
5492 | |||
5493 | /* the phys address is shifted right 12 bits and has an added | ||
5494 | 1=valid bit added to the 53rd bit | ||
5495 | then since this is a wide register(TM) | ||
5496 | we split it into two 32 bit writes | ||
5497 | */ | ||
5498 | #define RQ_ONCHIP_AT_PORT_SIZE 384 | ||
5499 | #define ONCHIP_ADDR1(x) ((u32)(((u64)x >> 12) & 0xFFFFFFFF)) | ||
5500 | #define ONCHIP_ADDR2(x) ((u32)((1 << 20) | ((u64)x >> 44))) | ||
5501 | #define PXP_ONE_ILT(x) ((x << 10) | x) | ||
5502 | |||
5503 | DP(BNX2X_MSG_MCP, "starting per-function init port is %x\n", func); | ||
5504 | |||
5505 | REG_WR(bp, NIG_REG_MASK_INTERRUPT_PORT0 + func*4, 0); | ||
5506 | |||
5507 | /* Port PXP comes here */ | ||
5508 | /* Port PXP2 comes here */ | ||
5509 | |||
5510 | /* Offset is | ||
5511 | * Port0 0 | ||
5512 | * Port1 384 */ | ||
5513 | i = func * RQ_ONCHIP_AT_PORT_SIZE; | ||
5514 | #ifdef USE_DMAE | ||
5515 | wb_write[0] = ONCHIP_ADDR1(bnx2x_sp_mapping(bp, context)); | ||
5516 | wb_write[1] = ONCHIP_ADDR2(bnx2x_sp_mapping(bp, context)); | ||
5517 | REG_WR_DMAE(bp, PXP2_REG_RQ_ONCHIP_AT + i*8, wb_write, 2); | ||
5518 | #else | ||
5519 | REG_WR_IND(bp, PXP2_REG_RQ_ONCHIP_AT + i*8, | ||
5520 | ONCHIP_ADDR1(bnx2x_sp_mapping(bp, context))); | ||
5521 | REG_WR_IND(bp, PXP2_REG_RQ_ONCHIP_AT + i*8 + 4, | ||
5522 | ONCHIP_ADDR2(bnx2x_sp_mapping(bp, context))); | ||
5523 | #endif | ||
5524 | REG_WR(bp, PXP2_REG_PSWRQ_CDU0_L2P + func*4, PXP_ONE_ILT(i)); | ||
5525 | |||
5526 | #ifdef BCM_ISCSI | ||
5527 | /* Port0 1 | ||
5528 | * Port1 385 */ | ||
5529 | i++; | ||
5530 | wb_write[0] = ONCHIP_ADDR1(bp->timers_mapping); | ||
5531 | wb_write[1] = ONCHIP_ADDR2(bp->timers_mapping); | ||
5532 | REG_WR_DMAE(bp, PXP2_REG_RQ_ONCHIP_AT + i*8, wb_write, 2); | ||
5533 | REG_WR(bp, PXP2_REG_PSWRQ_TM0_L2P + func*4, PXP_ONE_ILT(i)); | ||
5534 | |||
5535 | /* Port0 2 | ||
5536 | * Port1 386 */ | ||
5537 | i++; | ||
5538 | wb_write[0] = ONCHIP_ADDR1(bp->qm_mapping); | ||
5539 | wb_write[1] = ONCHIP_ADDR2(bp->qm_mapping); | ||
5540 | REG_WR_DMAE(bp, PXP2_REG_RQ_ONCHIP_AT + i*8, wb_write, 2); | ||
5541 | REG_WR(bp, PXP2_REG_PSWRQ_QM0_L2P + func*4, PXP_ONE_ILT(i)); | ||
5542 | |||
5543 | /* Port0 3 | ||
5544 | * Port1 387 */ | ||
5545 | i++; | ||
5546 | wb_write[0] = ONCHIP_ADDR1(bp->t1_mapping); | ||
5547 | wb_write[1] = ONCHIP_ADDR2(bp->t1_mapping); | ||
5548 | REG_WR_DMAE(bp, PXP2_REG_RQ_ONCHIP_AT + i*8, wb_write, 2); | ||
5549 | REG_WR(bp, PXP2_REG_PSWRQ_SRC0_L2P + func*4, PXP_ONE_ILT(i)); | ||
5550 | #endif | ||
5551 | |||
5552 | /* Port TCM comes here */ | ||
5553 | /* Port UCM comes here */ | ||
5554 | /* Port CCM comes here */ | ||
5555 | bnx2x_init_block(bp, func ? XCM_PORT1_START : XCM_PORT0_START, | ||
5556 | func ? XCM_PORT1_END : XCM_PORT0_END); | ||
5557 | |||
5558 | #ifdef USE_DMAE | ||
5559 | wb_write[0] = 0; | ||
5560 | wb_write[1] = 0; | ||
5561 | #endif | ||
5562 | for (i = 0; i < 32; i++) { | ||
5563 | REG_WR(bp, QM_REG_BASEADDR + (func*32 + i)*4, 1024 * 4 * i); | ||
5564 | #ifdef USE_DMAE | ||
5565 | REG_WR_DMAE(bp, QM_REG_PTRTBL + (func*32 + i)*8, wb_write, 2); | ||
5566 | #else | ||
5567 | REG_WR_IND(bp, QM_REG_PTRTBL + (func*32 + i)*8, 0); | ||
5568 | REG_WR_IND(bp, QM_REG_PTRTBL + (func*32 + i)*8 + 4, 0); | ||
5569 | #endif | ||
5570 | } | ||
5571 | REG_WR(bp, QM_REG_CONNNUM_0 + func*4, 1024/16 - 1); | ||
5572 | |||
5573 | /* Port QM comes here */ | ||
5574 | |||
5575 | #ifdef BCM_ISCSI | ||
5576 | REG_WR(bp, TM_REG_LIN0_SCAN_TIME + func*4, 1024/64*20); | ||
5577 | REG_WR(bp, TM_REG_LIN0_MAX_ACTIVE_CID + func*4, 31); | ||
5578 | |||
5579 | bnx2x_init_block(bp, func ? TIMERS_PORT1_START : TIMERS_PORT0_START, | ||
5580 | func ? TIMERS_PORT1_END : TIMERS_PORT0_END); | ||
5581 | #endif | ||
5582 | /* Port DQ comes here */ | ||
5583 | /* Port BRB1 comes here */ | ||
5584 | bnx2x_init_block(bp, func ? PRS_PORT1_START : PRS_PORT0_START, | ||
5585 | func ? PRS_PORT1_END : PRS_PORT0_END); | ||
5586 | /* Port TSDM comes here */ | ||
5587 | /* Port CSDM comes here */ | ||
5588 | /* Port USDM comes here */ | ||
5589 | /* Port XSDM comes here */ | ||
5590 | bnx2x_init_block(bp, func ? TSEM_PORT1_START : TSEM_PORT0_START, | ||
5591 | func ? TSEM_PORT1_END : TSEM_PORT0_END); | ||
5592 | bnx2x_init_block(bp, func ? USEM_PORT1_START : USEM_PORT0_START, | ||
5593 | func ? USEM_PORT1_END : USEM_PORT0_END); | ||
5594 | bnx2x_init_block(bp, func ? CSEM_PORT1_START : CSEM_PORT0_START, | ||
5595 | func ? CSEM_PORT1_END : CSEM_PORT0_END); | ||
5596 | bnx2x_init_block(bp, func ? XSEM_PORT1_START : XSEM_PORT0_START, | ||
5597 | func ? XSEM_PORT1_END : XSEM_PORT0_END); | ||
5598 | /* Port UPB comes here */ | ||
5599 | /* Port XSDM comes here */ | ||
5600 | bnx2x_init_block(bp, func ? PBF_PORT1_START : PBF_PORT0_START, | ||
5601 | func ? PBF_PORT1_END : PBF_PORT0_END); | ||
5602 | |||
5603 | /* configure PBF to work without PAUSE mtu 9000 */ | ||
5604 | REG_WR(bp, PBF_REG_P0_PAUSE_ENABLE + func*4, 0); | ||
5605 | |||
5606 | /* update threshold */ | ||
5607 | REG_WR(bp, PBF_REG_P0_ARB_THRSH + func*4, (9040/16)); | ||
5608 | /* update init credit */ | ||
5609 | REG_WR(bp, PBF_REG_P0_INIT_CRD + func*4, (9040/16) + 553 - 22); | ||
5610 | |||
5611 | /* probe changes */ | ||
5612 | REG_WR(bp, PBF_REG_INIT_P0 + func*4, 1); | ||
5613 | msleep(5); | ||
5614 | REG_WR(bp, PBF_REG_INIT_P0 + func*4, 0); | ||
5615 | |||
5616 | #ifdef BCM_ISCSI | ||
5617 | /* tell the searcher where the T2 table is */ | ||
5618 | REG_WR(bp, SRC_REG_COUNTFREE0 + func*4, 16*1024/64); | ||
5619 | |||
5620 | wb_write[0] = U64_LO(bp->t2_mapping); | ||
5621 | wb_write[1] = U64_HI(bp->t2_mapping); | ||
5622 | REG_WR_DMAE(bp, SRC_REG_FIRSTFREE0 + func*4, wb_write, 2); | ||
5623 | wb_write[0] = U64_LO((u64)bp->t2_mapping + 16*1024 - 64); | ||
5624 | wb_write[1] = U64_HI((u64)bp->t2_mapping + 16*1024 - 64); | ||
5625 | REG_WR_DMAE(bp, SRC_REG_LASTFREE0 + func*4, wb_write, 2); | ||
5626 | |||
5627 | REG_WR(bp, SRC_REG_NUMBER_HASH_BITS0 + func*4, 10); | ||
5628 | /* Port SRCH comes here */ | ||
5629 | #endif | ||
5630 | /* Port CDU comes here */ | ||
5631 | /* Port CFC comes here */ | ||
5632 | bnx2x_init_block(bp, func ? HC_PORT1_START : HC_PORT0_START, | ||
5633 | func ? HC_PORT1_END : HC_PORT0_END); | ||
5634 | bnx2x_init_block(bp, func ? MISC_AEU_PORT1_START : | ||
5635 | MISC_AEU_PORT0_START, | ||
5636 | func ? MISC_AEU_PORT1_END : MISC_AEU_PORT0_END); | ||
5637 | /* Port PXPCS comes here */ | ||
5638 | /* Port EMAC0 comes here */ | ||
5639 | /* Port EMAC1 comes here */ | ||
5640 | /* Port DBU comes here */ | ||
5641 | /* Port DBG comes here */ | ||
5642 | bnx2x_init_block(bp, func ? NIG_PORT1_START : NIG_PORT0_START, | ||
5643 | func ? NIG_PORT1_END : NIG_PORT0_END); | ||
5644 | REG_WR(bp, NIG_REG_XGXS_SERDES0_MODE_SEL + func*4, 1); | ||
5645 | /* Port MCP comes here */ | ||
5646 | /* Port DMAE comes here */ | ||
5647 | |||
5648 | bnx2x_link_reset(bp); | ||
5649 | |||
5650 | /* Reset pciex errors for debug */ | ||
5651 | REG_WR(bp, 0x2114, 0xffffffff); | ||
5652 | REG_WR(bp, 0x2120, 0xffffffff); | ||
5653 | REG_WR(bp, 0x2814, 0xffffffff); | ||
5654 | |||
5655 | /* !!! move to init_values.h */ | ||
5656 | REG_WR(bp, XSDM_REG_INIT_CREDIT_PXP_CTRL, 0x1); | ||
5657 | REG_WR(bp, USDM_REG_INIT_CREDIT_PXP_CTRL, 0x1); | ||
5658 | REG_WR(bp, CSDM_REG_INIT_CREDIT_PXP_CTRL, 0x1); | ||
5659 | REG_WR(bp, TSDM_REG_INIT_CREDIT_PXP_CTRL, 0x1); | ||
5660 | |||
5661 | REG_WR(bp, DBG_REG_PCI_REQ_CREDIT, 0x1); | ||
5662 | REG_WR(bp, TM_REG_PCIARB_CRDCNT_VAL, 0x1); | ||
5663 | REG_WR(bp, CDU_REG_CDU_DEBUG, 0x264); | ||
5664 | REG_WR(bp, CDU_REG_CDU_DEBUG, 0x0); | ||
5665 | |||
5666 | bnx2x_gunzip_end(bp); | ||
5667 | |||
5668 | if (!nomcp) { | ||
5669 | port = bp->port; | ||
5670 | |||
5671 | bp->fw_drv_pulse_wr_seq = | ||
5672 | (SHMEM_RD(bp, drv_fw_mb[port].drv_pulse_mb) & | ||
5673 | DRV_PULSE_SEQ_MASK); | ||
5674 | bp->fw_mb = SHMEM_RD(bp, drv_fw_mb[port].fw_mb_param); | ||
5675 | DP(BNX2X_MSG_MCP, "drv_pulse 0x%x fw_mb 0x%x\n", | ||
5676 | bp->fw_drv_pulse_wr_seq, bp->fw_mb); | ||
5677 | } else { | ||
5678 | bp->fw_mb = 0; | ||
5679 | } | ||
5680 | |||
5681 | return 0; | ||
5682 | } | ||
5683 | |||
5684 | |||
5685 | /* send the MCP a request, block untill there is a reply */ | ||
5686 | static u32 bnx2x_fw_command(struct bnx2x *bp, u32 command) | ||
5687 | { | ||
5688 | u32 rc = 0; | ||
5689 | u32 seq = ++bp->fw_seq; | ||
5690 | int port = bp->port; | ||
5691 | |||
5692 | SHMEM_WR(bp, drv_fw_mb[port].drv_mb_header, command|seq); | ||
5693 | DP(BNX2X_MSG_MCP, "wrote command (%x) to FW MB\n", command|seq); | ||
5694 | |||
5695 | /* let the FW do it's magic ... */ | ||
5696 | msleep(100); /* TBD */ | ||
5697 | |||
5698 | if (CHIP_REV_IS_SLOW(bp)) | ||
5699 | msleep(900); | ||
5700 | |||
5701 | rc = SHMEM_RD(bp, drv_fw_mb[port].fw_mb_header); | ||
5702 | |||
5703 | DP(BNX2X_MSG_MCP, "read (%x) seq is (%x) from FW MB\n", rc, seq); | ||
5704 | |||
5705 | /* is this a reply to our command? */ | ||
5706 | if (seq == (rc & FW_MSG_SEQ_NUMBER_MASK)) { | ||
5707 | rc &= FW_MSG_CODE_MASK; | ||
5708 | } else { | ||
5709 | /* FW BUG! */ | ||
5710 | BNX2X_ERR("FW failed to respond!\n"); | ||
5711 | bnx2x_fw_dump(bp); | ||
5712 | rc = 0; | ||
5713 | } | ||
5714 | return rc; | ||
5715 | } | ||
5716 | |||
5717 | static void bnx2x_free_mem(struct bnx2x *bp) | ||
5718 | { | ||
5719 | |||
5720 | #define BNX2X_PCI_FREE(x, y, size) \ | ||
5721 | do { \ | ||
5722 | if (x) { \ | ||
5723 | pci_free_consistent(bp->pdev, size, x, y); \ | ||
5724 | x = NULL; \ | ||
5725 | y = 0; \ | ||
5726 | } \ | ||
5727 | } while (0) | ||
5728 | |||
5729 | #define BNX2X_FREE(x) \ | ||
5730 | do { \ | ||
5731 | if (x) { \ | ||
5732 | vfree(x); \ | ||
5733 | x = NULL; \ | ||
5734 | } \ | ||
5735 | } while (0) | ||
5736 | |||
5737 | int i; | ||
5738 | |||
5739 | /* fastpath */ | ||
5740 | for_each_queue(bp, i) { | ||
5741 | |||
5742 | /* Status blocks */ | ||
5743 | BNX2X_PCI_FREE(bnx2x_fp(bp, i, status_blk), | ||
5744 | bnx2x_fp(bp, i, status_blk_mapping), | ||
5745 | sizeof(struct host_status_block) + | ||
5746 | sizeof(struct eth_tx_db_data)); | ||
5747 | |||
5748 | /* fast path rings: tx_buf tx_desc rx_buf rx_desc rx_comp */ | ||
5749 | BNX2X_FREE(bnx2x_fp(bp, i, tx_buf_ring)); | ||
5750 | BNX2X_PCI_FREE(bnx2x_fp(bp, i, tx_desc_ring), | ||
5751 | bnx2x_fp(bp, i, tx_desc_mapping), | ||
5752 | sizeof(struct eth_tx_bd) * NUM_TX_BD); | ||
5753 | |||
5754 | BNX2X_FREE(bnx2x_fp(bp, i, rx_buf_ring)); | ||
5755 | BNX2X_PCI_FREE(bnx2x_fp(bp, i, rx_desc_ring), | ||
5756 | bnx2x_fp(bp, i, rx_desc_mapping), | ||
5757 | sizeof(struct eth_rx_bd) * NUM_RX_BD); | ||
5758 | |||
5759 | BNX2X_PCI_FREE(bnx2x_fp(bp, i, rx_comp_ring), | ||
5760 | bnx2x_fp(bp, i, rx_comp_mapping), | ||
5761 | sizeof(struct eth_fast_path_rx_cqe) * | ||
5762 | NUM_RCQ_BD); | ||
5763 | } | ||
5764 | |||
5765 | BNX2X_FREE(bp->fp); | ||
5766 | |||
5767 | /* end of fastpath */ | ||
5768 | |||
5769 | BNX2X_PCI_FREE(bp->def_status_blk, bp->def_status_blk_mapping, | ||
5770 | (sizeof(struct host_def_status_block))); | ||
5771 | |||
5772 | BNX2X_PCI_FREE(bp->slowpath, bp->slowpath_mapping, | ||
5773 | (sizeof(struct bnx2x_slowpath))); | ||
5774 | |||
5775 | #ifdef BCM_ISCSI | ||
5776 | BNX2X_PCI_FREE(bp->t1, bp->t1_mapping, 64*1024); | ||
5777 | BNX2X_PCI_FREE(bp->t2, bp->t2_mapping, 16*1024); | ||
5778 | BNX2X_PCI_FREE(bp->timers, bp->timers_mapping, 8*1024); | ||
5779 | BNX2X_PCI_FREE(bp->qm, bp->qm_mapping, 128*1024); | ||
5780 | #endif | ||
5781 | BNX2X_PCI_FREE(bp->spq, bp->spq_mapping, PAGE_SIZE); | ||
5782 | |||
5783 | #undef BNX2X_PCI_FREE | ||
5784 | #undef BNX2X_KFREE | ||
5785 | } | ||
5786 | |||
5787 | static int bnx2x_alloc_mem(struct bnx2x *bp) | ||
5788 | { | ||
5789 | |||
5790 | #define BNX2X_PCI_ALLOC(x, y, size) \ | ||
5791 | do { \ | ||
5792 | x = pci_alloc_consistent(bp->pdev, size, y); \ | ||
5793 | if (x == NULL) \ | ||
5794 | goto alloc_mem_err; \ | ||
5795 | memset(x, 0, size); \ | ||
5796 | } while (0) | ||
5797 | |||
5798 | #define BNX2X_ALLOC(x, size) \ | ||
5799 | do { \ | ||
5800 | x = vmalloc(size); \ | ||
5801 | if (x == NULL) \ | ||
5802 | goto alloc_mem_err; \ | ||
5803 | memset(x, 0, size); \ | ||
5804 | } while (0) | ||
5805 | |||
5806 | int i; | ||
5807 | |||
5808 | /* fastpath */ | ||
5809 | BNX2X_ALLOC(bp->fp, sizeof(struct bnx2x_fastpath) * bp->num_queues); | ||
5810 | |||
5811 | for_each_queue(bp, i) { | ||
5812 | bnx2x_fp(bp, i, bp) = bp; | ||
5813 | |||
5814 | /* Status blocks */ | ||
5815 | BNX2X_PCI_ALLOC(bnx2x_fp(bp, i, status_blk), | ||
5816 | &bnx2x_fp(bp, i, status_blk_mapping), | ||
5817 | sizeof(struct host_status_block) + | ||
5818 | sizeof(struct eth_tx_db_data)); | ||
5819 | |||
5820 | bnx2x_fp(bp, i, hw_tx_prods) = | ||
5821 | (void *)(bnx2x_fp(bp, i, status_blk) + 1); | ||
5822 | |||
5823 | bnx2x_fp(bp, i, tx_prods_mapping) = | ||
5824 | bnx2x_fp(bp, i, status_blk_mapping) + | ||
5825 | sizeof(struct host_status_block); | ||
5826 | |||
5827 | /* fast path rings: tx_buf tx_desc rx_buf rx_desc rx_comp */ | ||
5828 | BNX2X_ALLOC(bnx2x_fp(bp, i, tx_buf_ring), | ||
5829 | sizeof(struct sw_tx_bd) * NUM_TX_BD); | ||
5830 | BNX2X_PCI_ALLOC(bnx2x_fp(bp, i, tx_desc_ring), | ||
5831 | &bnx2x_fp(bp, i, tx_desc_mapping), | ||
5832 | sizeof(struct eth_tx_bd) * NUM_TX_BD); | ||
5833 | |||
5834 | BNX2X_ALLOC(bnx2x_fp(bp, i, rx_buf_ring), | ||
5835 | sizeof(struct sw_rx_bd) * NUM_RX_BD); | ||
5836 | BNX2X_PCI_ALLOC(bnx2x_fp(bp, i, rx_desc_ring), | ||
5837 | &bnx2x_fp(bp, i, rx_desc_mapping), | ||
5838 | sizeof(struct eth_rx_bd) * NUM_RX_BD); | ||
5839 | |||
5840 | BNX2X_PCI_ALLOC(bnx2x_fp(bp, i, rx_comp_ring), | ||
5841 | &bnx2x_fp(bp, i, rx_comp_mapping), | ||
5842 | sizeof(struct eth_fast_path_rx_cqe) * | ||
5843 | NUM_RCQ_BD); | ||
5844 | |||
5845 | } | ||
5846 | /* end of fastpath */ | ||
5847 | |||
5848 | BNX2X_PCI_ALLOC(bp->def_status_blk, &bp->def_status_blk_mapping, | ||
5849 | sizeof(struct host_def_status_block)); | ||
5850 | |||
5851 | BNX2X_PCI_ALLOC(bp->slowpath, &bp->slowpath_mapping, | ||
5852 | sizeof(struct bnx2x_slowpath)); | ||
5853 | |||
5854 | #ifdef BCM_ISCSI | ||
5855 | BNX2X_PCI_ALLOC(bp->t1, &bp->t1_mapping, 64*1024); | ||
5856 | |||
5857 | /* Initialize T1 */ | ||
5858 | for (i = 0; i < 64*1024; i += 64) { | ||
5859 | *(u64 *)((char *)bp->t1 + i + 56) = 0x0UL; | ||
5860 | *(u64 *)((char *)bp->t1 + i + 3) = 0x0UL; | ||
5861 | } | ||
5862 | |||
5863 | /* allocate searcher T2 table | ||
5864 | we allocate 1/4 of alloc num for T2 | ||
5865 | (which is not entered into the ILT) */ | ||
5866 | BNX2X_PCI_ALLOC(bp->t2, &bp->t2_mapping, 16*1024); | ||
5867 | |||
5868 | /* Initialize T2 */ | ||
5869 | for (i = 0; i < 16*1024; i += 64) | ||
5870 | * (u64 *)((char *)bp->t2 + i + 56) = bp->t2_mapping + i + 64; | ||
5871 | |||
5872 | /* now sixup the last line in the block to point to the next block */ | ||
5873 | *(u64 *)((char *)bp->t2 + 1024*16-8) = bp->t2_mapping; | ||
5874 | |||
5875 | /* Timer block array (MAX_CONN*8) phys uncached for now 1024 conns */ | ||
5876 | BNX2X_PCI_ALLOC(bp->timers, &bp->timers_mapping, 8*1024); | ||
5877 | |||
5878 | /* QM queues (128*MAX_CONN) */ | ||
5879 | BNX2X_PCI_ALLOC(bp->qm, &bp->qm_mapping, 128*1024); | ||
5880 | #endif | ||
5881 | |||
5882 | /* Slow path ring */ | ||
5883 | BNX2X_PCI_ALLOC(bp->spq, &bp->spq_mapping, BCM_PAGE_SIZE); | ||
5884 | |||
5885 | return 0; | ||
5886 | |||
5887 | alloc_mem_err: | ||
5888 | bnx2x_free_mem(bp); | ||
5889 | return -ENOMEM; | ||
5890 | |||
5891 | #undef BNX2X_PCI_ALLOC | ||
5892 | #undef BNX2X_ALLOC | ||
5893 | } | ||
5894 | |||
5895 | static void bnx2x_free_tx_skbs(struct bnx2x *bp) | ||
5896 | { | ||
5897 | int i; | ||
5898 | |||
5899 | for_each_queue(bp, i) { | ||
5900 | struct bnx2x_fastpath *fp = &bp->fp[i]; | ||
5901 | |||
5902 | u16 bd_cons = fp->tx_bd_cons; | ||
5903 | u16 sw_prod = fp->tx_pkt_prod; | ||
5904 | u16 sw_cons = fp->tx_pkt_cons; | ||
5905 | |||
5906 | BUG_TRAP(fp->tx_buf_ring != NULL); | ||
5907 | |||
5908 | while (sw_cons != sw_prod) { | ||
5909 | bd_cons = bnx2x_free_tx_pkt(bp, fp, TX_BD(sw_cons)); | ||
5910 | sw_cons++; | ||
5911 | } | ||
5912 | } | ||
5913 | } | ||
5914 | |||
5915 | static void bnx2x_free_rx_skbs(struct bnx2x *bp) | ||
5916 | { | ||
5917 | int i, j; | ||
5918 | |||
5919 | for_each_queue(bp, j) { | ||
5920 | struct bnx2x_fastpath *fp = &bp->fp[j]; | ||
5921 | |||
5922 | BUG_TRAP(fp->rx_buf_ring != NULL); | ||
5923 | |||
5924 | for (i = 0; i < NUM_RX_BD; i++) { | ||
5925 | struct sw_rx_bd *rx_buf = &fp->rx_buf_ring[i]; | ||
5926 | struct sk_buff *skb = rx_buf->skb; | ||
5927 | |||
5928 | if (skb == NULL) | ||
5929 | continue; | ||
5930 | |||
5931 | pci_unmap_single(bp->pdev, | ||
5932 | pci_unmap_addr(rx_buf, mapping), | ||
5933 | bp->rx_buf_use_size, | ||
5934 | PCI_DMA_FROMDEVICE); | ||
5935 | |||
5936 | rx_buf->skb = NULL; | ||
5937 | dev_kfree_skb(skb); | ||
5938 | } | ||
5939 | } | ||
5940 | } | ||
5941 | |||
5942 | static void bnx2x_free_skbs(struct bnx2x *bp) | ||
5943 | { | ||
5944 | bnx2x_free_tx_skbs(bp); | ||
5945 | bnx2x_free_rx_skbs(bp); | ||
5946 | } | ||
5947 | |||
5948 | static void bnx2x_free_msix_irqs(struct bnx2x *bp) | ||
5949 | { | ||
5950 | int i; | ||
5951 | |||
5952 | free_irq(bp->msix_table[0].vector, bp->dev); | ||
5953 | DP(NETIF_MSG_IFDOWN, "rleased sp irq (%d)\n", | ||
5954 | bp->msix_table[0].vector); | ||
5955 | |||
5956 | for_each_queue(bp, i) { | ||
5957 | DP(NETIF_MSG_IFDOWN, "about to rlease fp #%d->%d irq " | ||
5958 | "state(%x)\n", i, bp->msix_table[i + 1].vector, | ||
5959 | bnx2x_fp(bp, i, state)); | ||
5960 | |||
5961 | if (bnx2x_fp(bp, i, state) != BNX2X_FP_STATE_CLOSED) { | ||
5962 | |||
5963 | free_irq(bp->msix_table[i + 1].vector, &bp->fp[i]); | ||
5964 | bnx2x_fp(bp, i, state) = BNX2X_FP_STATE_CLOSED; | ||
5965 | |||
5966 | } else | ||
5967 | DP(NETIF_MSG_IFDOWN, "irq not freed\n"); | ||
5968 | |||
5969 | } | ||
5970 | |||
5971 | } | ||
5972 | |||
5973 | static void bnx2x_free_irq(struct bnx2x *bp) | ||
5974 | { | ||
5975 | |||
5976 | if (bp->flags & USING_MSIX_FLAG) { | ||
5977 | |||
5978 | bnx2x_free_msix_irqs(bp); | ||
5979 | pci_disable_msix(bp->pdev); | ||
5980 | |||
5981 | bp->flags &= ~USING_MSIX_FLAG; | ||
5982 | |||
5983 | } else | ||
5984 | free_irq(bp->pdev->irq, bp->dev); | ||
5985 | } | ||
5986 | |||
5987 | static int bnx2x_enable_msix(struct bnx2x *bp) | ||
5988 | { | ||
5989 | |||
5990 | int i; | ||
5991 | |||
5992 | bp->msix_table[0].entry = 0; | ||
5993 | for_each_queue(bp, i) | ||
5994 | bp->msix_table[i + 1].entry = i + 1; | ||
5995 | |||
5996 | if (pci_enable_msix(bp->pdev, &bp->msix_table[0], | ||
5997 | bp->num_queues + 1)){ | ||
5998 | BNX2X_ERR("failed to enable msix\n"); | ||
5999 | return -1; | ||
6000 | |||
6001 | } | ||
6002 | |||
6003 | bp->flags |= USING_MSIX_FLAG; | ||
6004 | |||
6005 | return 0; | ||
6006 | |||
6007 | } | ||
6008 | |||
6009 | |||
6010 | static int bnx2x_req_msix_irqs(struct bnx2x *bp) | ||
6011 | { | ||
6012 | |||
6013 | |||
6014 | int i, rc; | ||
6015 | |||
6016 | DP(NETIF_MSG_IFUP, "about to request sp irq\n"); | ||
6017 | |||
6018 | rc = request_irq(bp->msix_table[0].vector, bnx2x_msix_sp_int, 0, | ||
6019 | bp->dev->name, bp->dev); | ||
6020 | |||
6021 | if (rc) { | ||
6022 | BNX2X_ERR("request sp irq failed\n"); | ||
6023 | return -EBUSY; | ||
6024 | } | ||
6025 | |||
6026 | for_each_queue(bp, i) { | ||
6027 | rc = request_irq(bp->msix_table[i + 1].vector, | ||
6028 | bnx2x_msix_fp_int, 0, | ||
6029 | bp->dev->name, &bp->fp[i]); | ||
6030 | |||
6031 | if (rc) { | ||
6032 | BNX2X_ERR("request fp #%d irq failed\n", i); | ||
6033 | bnx2x_free_msix_irqs(bp); | ||
6034 | return -EBUSY; | ||
6035 | } | ||
6036 | |||
6037 | bnx2x_fp(bp, i, state) = BNX2X_FP_STATE_IRQ; | ||
6038 | |||
6039 | } | ||
6040 | |||
6041 | return 0; | ||
6042 | |||
6043 | } | ||
6044 | |||
6045 | static int bnx2x_req_irq(struct bnx2x *bp) | ||
6046 | { | ||
6047 | |||
6048 | int rc = request_irq(bp->pdev->irq, bnx2x_interrupt, | ||
6049 | IRQF_SHARED, bp->dev->name, bp->dev); | ||
6050 | if (!rc) | ||
6051 | bnx2x_fp(bp, 0, state) = BNX2X_FP_STATE_IRQ; | ||
6052 | |||
6053 | return rc; | ||
6054 | |||
6055 | } | ||
6056 | |||
6057 | /* | ||
6058 | * Init service functions | ||
6059 | */ | ||
6060 | |||
6061 | static void bnx2x_set_mac_addr(struct bnx2x *bp) | ||
6062 | { | ||
6063 | struct mac_configuration_cmd *config = bnx2x_sp(bp, mac_config); | ||
6064 | |||
6065 | /* CAM allocation | ||
6066 | * unicasts 0-31:port0 32-63:port1 | ||
6067 | * multicast 64-127:port0 128-191:port1 | ||
6068 | */ | ||
6069 | config->hdr.length_6b = 2; | ||
6070 | config->hdr.offset = bp->port ? 31 : 0; | ||
6071 | config->hdr.reserved0 = 0; | ||
6072 | config->hdr.reserved1 = 0; | ||
6073 | |||
6074 | /* primary MAC */ | ||
6075 | config->config_table[0].cam_entry.msb_mac_addr = | ||
6076 | swab16(*(u16 *)&bp->dev->dev_addr[0]); | ||
6077 | config->config_table[0].cam_entry.middle_mac_addr = | ||
6078 | swab16(*(u16 *)&bp->dev->dev_addr[2]); | ||
6079 | config->config_table[0].cam_entry.lsb_mac_addr = | ||
6080 | swab16(*(u16 *)&bp->dev->dev_addr[4]); | ||
6081 | config->config_table[0].cam_entry.flags = cpu_to_le16(bp->port); | ||
6082 | config->config_table[0].target_table_entry.flags = 0; | ||
6083 | config->config_table[0].target_table_entry.client_id = 0; | ||
6084 | config->config_table[0].target_table_entry.vlan_id = 0; | ||
6085 | |||
6086 | DP(NETIF_MSG_IFUP, "setting MAC (%04x:%04x:%04x)\n", | ||
6087 | config->config_table[0].cam_entry.msb_mac_addr, | ||
6088 | config->config_table[0].cam_entry.middle_mac_addr, | ||
6089 | config->config_table[0].cam_entry.lsb_mac_addr); | ||
6090 | |||
6091 | /* broadcast */ | ||
6092 | config->config_table[1].cam_entry.msb_mac_addr = 0xffff; | ||
6093 | config->config_table[1].cam_entry.middle_mac_addr = 0xffff; | ||
6094 | config->config_table[1].cam_entry.lsb_mac_addr = 0xffff; | ||
6095 | config->config_table[1].cam_entry.flags = cpu_to_le16(bp->port); | ||
6096 | config->config_table[1].target_table_entry.flags = | ||
6097 | TSTORM_CAM_TARGET_TABLE_ENTRY_BROADCAST; | ||
6098 | config->config_table[1].target_table_entry.client_id = 0; | ||
6099 | config->config_table[1].target_table_entry.vlan_id = 0; | ||
6100 | |||
6101 | bnx2x_sp_post(bp, RAMROD_CMD_ID_ETH_SET_MAC, 0, | ||
6102 | U64_HI(bnx2x_sp_mapping(bp, mac_config)), | ||
6103 | U64_LO(bnx2x_sp_mapping(bp, mac_config)), 0); | ||
6104 | } | ||
6105 | |||
6106 | static int bnx2x_wait_ramrod(struct bnx2x *bp, int state, int idx, | ||
6107 | int *state_p, int poll) | ||
6108 | { | ||
6109 | /* can take a while if any port is running */ | ||
6110 | int timeout = 500; | ||
6111 | |||
6112 | /* DP("waiting for state to become %d on IDX [%d]\n", | ||
6113 | state, sb_idx); */ | ||
6114 | |||
6115 | might_sleep(); | ||
6116 | |||
6117 | while (timeout) { | ||
6118 | |||
6119 | if (poll) { | ||
6120 | bnx2x_rx_int(bp->fp, 10); | ||
6121 | /* If index is different from 0 | ||
6122 | * The reply for some commands will | ||
6123 | * be on the none default queue | ||
6124 | */ | ||
6125 | if (idx) | ||
6126 | bnx2x_rx_int(&bp->fp[idx], 10); | ||
6127 | } | ||
6128 | |||
6129 | mb(); /* state is changed by bnx2x_sp_event()*/ | ||
6130 | |||
6131 | if (*state_p != state) | ||
6132 | return 0; | ||
6133 | |||
6134 | timeout--; | ||
6135 | msleep(1); | ||
6136 | |||
6137 | } | ||
6138 | |||
6139 | |||
6140 | /* timeout! */ | ||
6141 | BNX2X_ERR("timeout waiting for ramrod %d on %d\n", state, idx); | ||
6142 | return -EBUSY; | ||
6143 | |||
6144 | } | ||
6145 | |||
6146 | static int bnx2x_setup_leading(struct bnx2x *bp) | ||
6147 | { | ||
6148 | |||
6149 | /* reset IGU staae */ | ||
6150 | bnx2x_ack_sb(bp, DEF_SB_ID, CSTORM_ID, 0, IGU_INT_ENABLE, 0); | ||
6151 | |||
6152 | /* SETUP ramrod */ | ||
6153 | bnx2x_sp_post(bp, RAMROD_CMD_ID_ETH_PORT_SETUP, 0, 0, 0, 0); | ||
6154 | |||
6155 | return bnx2x_wait_ramrod(bp, BNX2X_STATE_OPEN, 0, &(bp->state), 0); | ||
6156 | |||
6157 | } | ||
6158 | |||
6159 | static int bnx2x_setup_multi(struct bnx2x *bp, int index) | ||
6160 | { | ||
6161 | |||
6162 | /* reset IGU state */ | ||
6163 | bnx2x_ack_sb(bp, index, CSTORM_ID, 0, IGU_INT_ENABLE, 0); | ||
6164 | |||
6165 | bp->fp[index].state = BNX2X_FP_STATE_OPENING; | ||
6166 | bnx2x_sp_post(bp, RAMROD_CMD_ID_ETH_CLIENT_SETUP, index, 0, index, 0); | ||
6167 | |||
6168 | /* Wait for completion */ | ||
6169 | return bnx2x_wait_ramrod(bp, BNX2X_FP_STATE_OPEN, index, | ||
6170 | &(bp->fp[index].state), 1); | ||
6171 | |||
6172 | } | ||
6173 | |||
6174 | |||
6175 | static int bnx2x_poll(struct napi_struct *napi, int budget); | ||
6176 | static void bnx2x_set_rx_mode(struct net_device *dev); | ||
6177 | |||
6178 | static int bnx2x_nic_load(struct bnx2x *bp, int req_irq) | ||
6179 | { | ||
6180 | int rc; | ||
6181 | int i = 0; | ||
6182 | |||
6183 | bp->state = BNX2X_STATE_OPENING_WAIT4_LOAD; | ||
6184 | |||
6185 | /* Send LOAD_REQUEST command to MCP. | ||
6186 | Returns the type of LOAD command: if it is the | ||
6187 | first port to be initialized common blocks should be | ||
6188 | initialized, otherwise - not. | ||
6189 | */ | ||
6190 | if (!nomcp) { | ||
6191 | rc = bnx2x_fw_command(bp, DRV_MSG_CODE_LOAD_REQ); | ||
6192 | if (rc == FW_MSG_CODE_DRV_LOAD_REFUSED) { | ||
6193 | return -EBUSY; /* other port in diagnostic mode */ | ||
6194 | } | ||
6195 | } else { | ||
6196 | rc = FW_MSG_CODE_DRV_LOAD_COMMON; | ||
6197 | } | ||
6198 | |||
6199 | DP(NETIF_MSG_IFUP, "set number of queues to %d\n", bp->num_queues); | ||
6200 | |||
6201 | /* if we can't use msix we only need one fp, | ||
6202 | * so try to enable msix with the requested number of fp's | ||
6203 | * and fallback to inta with one fp | ||
6204 | */ | ||
6205 | if (req_irq) { | ||
6206 | |||
6207 | if (use_inta) { | ||
6208 | bp->num_queues = 1; | ||
6209 | } else { | ||
6210 | if (use_multi > 1 && use_multi <= 16) | ||
6211 | /* user requested number */ | ||
6212 | bp->num_queues = use_multi; | ||
6213 | else if (use_multi == 1) | ||
6214 | bp->num_queues = num_online_cpus(); | ||
6215 | else | ||
6216 | bp->num_queues = 1; | ||
6217 | |||
6218 | if (bnx2x_enable_msix(bp)) { | ||
6219 | /* faild to enable msix */ | ||
6220 | bp->num_queues = 1; | ||
6221 | if (use_multi) | ||
6222 | BNX2X_ERR("Muti requested but failed" | ||
6223 | " to enable MSI-X\n"); | ||
6224 | } | ||
6225 | } | ||
6226 | } | ||
6227 | |||
6228 | if (bnx2x_alloc_mem(bp)) | ||
6229 | return -ENOMEM; | ||
6230 | |||
6231 | if (req_irq) { | ||
6232 | if (bp->flags & USING_MSIX_FLAG) { | ||
6233 | if (bnx2x_req_msix_irqs(bp)) { | ||
6234 | pci_disable_msix(bp->pdev); | ||
6235 | goto out_error; | ||
6236 | } | ||
6237 | |||
6238 | } else { | ||
6239 | if (bnx2x_req_irq(bp)) { | ||
6240 | BNX2X_ERR("IRQ request failed, aborting\n"); | ||
6241 | goto out_error; | ||
6242 | } | ||
6243 | } | ||
6244 | } | ||
6245 | |||
6246 | for_each_queue(bp, i) | ||
6247 | netif_napi_add(bp->dev, &bnx2x_fp(bp, i, napi), | ||
6248 | bnx2x_poll, 128); | ||
6249 | |||
6250 | |||
6251 | /* Initialize HW */ | ||
6252 | if (bnx2x_function_init(bp, (rc == FW_MSG_CODE_DRV_LOAD_COMMON))) { | ||
6253 | BNX2X_ERR("HW init failed, aborting\n"); | ||
6254 | goto out_error; | ||
6255 | } | ||
6256 | |||
6257 | |||
6258 | atomic_set(&bp->intr_sem, 0); | ||
6259 | |||
6260 | /* Reenable SP tasklet */ | ||
6261 | /*if (bp->sp_task_en) { */ | ||
6262 | /* tasklet_enable(&bp->sp_task);*/ | ||
6263 | /*} else { */ | ||
6264 | /* bp->sp_task_en = 1; */ | ||
6265 | /*} */ | ||
6266 | |||
6267 | /* Setup NIC internals and enable interrupts */ | ||
6268 | bnx2x_nic_init(bp); | ||
6269 | |||
6270 | /* Send LOAD_DONE command to MCP */ | ||
6271 | if (!nomcp) { | ||
6272 | rc = bnx2x_fw_command(bp, DRV_MSG_CODE_LOAD_DONE); | ||
6273 | DP(NETIF_MSG_IFUP, "rc = 0x%x\n", rc); | ||
6274 | if (!rc) { | ||
6275 | BNX2X_ERR("MCP response failure, unloading\n"); | ||
6276 | goto int_disable; | ||
6277 | } | ||
6278 | } | ||
6279 | |||
6280 | bp->state = BNX2X_STATE_OPENING_WAIT4_PORT; | ||
6281 | |||
6282 | /* Enable Rx interrupt handling before sending the ramrod | ||
6283 | as it's completed on Rx FP queue */ | ||
6284 | for_each_queue(bp, i) | ||
6285 | napi_enable(&bnx2x_fp(bp, i, napi)); | ||
6286 | |||
6287 | if (bnx2x_setup_leading(bp)) | ||
6288 | goto stop_netif; | ||
6289 | |||
6290 | for_each_nondefault_queue(bp, i) | ||
6291 | if (bnx2x_setup_multi(bp, i)) | ||
6292 | goto stop_netif; | ||
6293 | |||
6294 | bnx2x_set_mac_addr(bp); | ||
6295 | |||
6296 | bnx2x_phy_init(bp); | ||
6297 | |||
6298 | /* Start fast path */ | ||
6299 | if (req_irq) { /* IRQ is only requested from bnx2x_open */ | ||
6300 | netif_start_queue(bp->dev); | ||
6301 | if (bp->flags & USING_MSIX_FLAG) | ||
6302 | printk(KERN_INFO PFX "%s: using MSI-X\n", | ||
6303 | bp->dev->name); | ||
6304 | |||
6305 | /* Otherwise Tx queue should be only reenabled */ | ||
6306 | } else if (netif_running(bp->dev)) { | ||
6307 | netif_wake_queue(bp->dev); | ||
6308 | bnx2x_set_rx_mode(bp->dev); | ||
6309 | } | ||
6310 | |||
6311 | /* start the timer */ | ||
6312 | mod_timer(&bp->timer, jiffies + bp->current_interval); | ||
6313 | |||
6314 | return 0; | ||
6315 | |||
6316 | stop_netif: | ||
6317 | for_each_queue(bp, i) | ||
6318 | napi_disable(&bnx2x_fp(bp, i, napi)); | ||
6319 | |||
6320 | int_disable: | ||
6321 | bnx2x_disable_int_sync(bp); | ||
6322 | |||
6323 | bnx2x_free_skbs(bp); | ||
6324 | bnx2x_free_irq(bp); | ||
6325 | |||
6326 | out_error: | ||
6327 | bnx2x_free_mem(bp); | ||
6328 | |||
6329 | /* TBD we really need to reset the chip | ||
6330 | if we want to recover from this */ | ||
6331 | return rc; | ||
6332 | } | ||
6333 | |||
6334 | static void bnx2x_netif_stop(struct bnx2x *bp) | ||
6335 | { | ||
6336 | int i; | ||
6337 | |||
6338 | bp->rx_mode = BNX2X_RX_MODE_NONE; | ||
6339 | bnx2x_set_storm_rx_mode(bp); | ||
6340 | |||
6341 | bnx2x_disable_int_sync(bp); | ||
6342 | bnx2x_link_reset(bp); | ||
6343 | |||
6344 | for_each_queue(bp, i) | ||
6345 | napi_disable(&bnx2x_fp(bp, i, napi)); | ||
6346 | |||
6347 | if (netif_running(bp->dev)) { | ||
6348 | netif_tx_disable(bp->dev); | ||
6349 | bp->dev->trans_start = jiffies; /* prevent tx timeout */ | ||
6350 | } | ||
6351 | } | ||
6352 | |||
6353 | static void bnx2x_reset_chip(struct bnx2x *bp, u32 reset_code) | ||
6354 | { | ||
6355 | int port = bp->port; | ||
6356 | #ifdef USE_DMAE | ||
6357 | u32 wb_write[2]; | ||
6358 | #endif | ||
6359 | int base, i; | ||
6360 | |||
6361 | DP(NETIF_MSG_IFDOWN, "reset called with code %x\n", reset_code); | ||
6362 | |||
6363 | /* Do not rcv packets to BRB */ | ||
6364 | REG_WR(bp, NIG_REG_LLH0_BRB1_DRV_MASK + port*4, 0x0); | ||
6365 | /* Do not direct rcv packets that are not for MCP to the BRB */ | ||
6366 | REG_WR(bp, (port ? NIG_REG_LLH1_BRB1_NOT_MCP : | ||
6367 | NIG_REG_LLH0_BRB1_NOT_MCP), 0x0); | ||
6368 | |||
6369 | /* Configure IGU and AEU */ | ||
6370 | REG_WR(bp, HC_REG_CONFIG_0 + port*4, 0x1000); | ||
6371 | REG_WR(bp, MISC_REG_AEU_MASK_ATTN_FUNC_0 + port*4, 0); | ||
6372 | |||
6373 | /* TODO: Close Doorbell port? */ | ||
6374 | |||
6375 | /* Clear ILT */ | ||
6376 | #ifdef USE_DMAE | ||
6377 | wb_write[0] = 0; | ||
6378 | wb_write[1] = 0; | ||
6379 | #endif | ||
6380 | base = port * RQ_ONCHIP_AT_PORT_SIZE; | ||
6381 | for (i = base; i < base + RQ_ONCHIP_AT_PORT_SIZE; i++) { | ||
6382 | #ifdef USE_DMAE | ||
6383 | REG_WR_DMAE(bp, PXP2_REG_RQ_ONCHIP_AT + i*8, wb_write, 2); | ||
6384 | #else | ||
6385 | REG_WR_IND(bp, PXP2_REG_RQ_ONCHIP_AT, 0); | ||
6386 | REG_WR_IND(bp, PXP2_REG_RQ_ONCHIP_AT + 4, 0); | ||
6387 | #endif | ||
6388 | } | ||
6389 | |||
6390 | if (reset_code == FW_MSG_CODE_DRV_UNLOAD_COMMON) { | ||
6391 | /* reset_common */ | ||
6392 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_1_CLEAR, | ||
6393 | 0xd3ffff7f); | ||
6394 | REG_WR(bp, GRCBASE_MISC + MISC_REGISTERS_RESET_REG_2_CLEAR, | ||
6395 | 0x1403); | ||
6396 | } | ||
6397 | } | ||
6398 | |||
6399 | static int bnx2x_stop_multi(struct bnx2x *bp, int index) | ||
6400 | { | ||
6401 | |||
6402 | int rc; | ||
6403 | |||
6404 | /* halt the connnection */ | ||
6405 | bp->fp[index].state = BNX2X_FP_STATE_HALTING; | ||
6406 | bnx2x_sp_post(bp, RAMROD_CMD_ID_ETH_HALT, index, 0, 0, 0); | ||
6407 | |||
6408 | |||
6409 | rc = bnx2x_wait_ramrod(bp, BNX2X_FP_STATE_HALTED, index, | ||
6410 | &(bp->fp[index].state), 1); | ||
6411 | if (rc) /* timout */ | ||
6412 | return rc; | ||
6413 | |||
6414 | /* delete cfc entry */ | ||
6415 | bnx2x_sp_post(bp, RAMROD_CMD_ID_ETH_CFC_DEL, index, 0, 0, 1); | ||
6416 | |||
6417 | return bnx2x_wait_ramrod(bp, BNX2X_FP_STATE_DELETED, index, | ||
6418 | &(bp->fp[index].state), 1); | ||
6419 | |||
6420 | } | ||
6421 | |||
6422 | |||
6423 | static void bnx2x_stop_leading(struct bnx2x *bp) | ||
6424 | { | ||
6425 | |||
6426 | /* if the other port is hadling traffic, | ||
6427 | this can take a lot of time */ | ||
6428 | int timeout = 500; | ||
6429 | |||
6430 | might_sleep(); | ||
6431 | |||
6432 | /* Send HALT ramrod */ | ||
6433 | bp->fp[0].state = BNX2X_FP_STATE_HALTING; | ||
6434 | bnx2x_sp_post(bp, RAMROD_CMD_ID_ETH_HALT, 0, 0, 0, 0); | ||
6435 | |||
6436 | if (bnx2x_wait_ramrod(bp, BNX2X_FP_STATE_HALTED, 0, | ||
6437 | &(bp->fp[0].state), 1)) | ||
6438 | return; | ||
6439 | |||
6440 | bp->dsb_sp_prod_idx = *bp->dsb_sp_prod; | ||
6441 | |||
6442 | /* Send CFC_DELETE ramrod */ | ||
6443 | bnx2x_sp_post(bp, RAMROD_CMD_ID_ETH_PORT_DEL, 0, 0, 0, 1); | ||
6444 | |||
6445 | /* | ||
6446 | Wait for completion. | ||
6447 | we are going to reset the chip anyway | ||
6448 | so there is not much to do if this times out | ||
6449 | */ | ||
6450 | while (bp->dsb_sp_prod_idx == *bp->dsb_sp_prod && timeout) { | ||
6451 | timeout--; | ||
6452 | msleep(1); | ||
6453 | } | ||
6454 | |||
6455 | } | ||
6456 | |||
6457 | static int bnx2x_nic_unload(struct bnx2x *bp, int fre_irq) | ||
6458 | { | ||
6459 | u32 reset_code = 0; | ||
6460 | int rc; | ||
6461 | int i; | ||
6462 | |||
6463 | bp->state = BNX2X_STATE_CLOSING_WAIT4_HALT; | ||
6464 | |||
6465 | /* Calling flush_scheduled_work() may deadlock because | ||
6466 | * linkwatch_event() may be on the workqueue and it will try to get | ||
6467 | * the rtnl_lock which we are holding. | ||
6468 | */ | ||
6469 | |||
6470 | while (bp->in_reset_task) | ||
6471 | msleep(1); | ||
6472 | |||
6473 | /* Delete the timer: do it before disabling interrupts, as it | ||
6474 | may be stil STAT_QUERY ramrod pending after stopping the timer */ | ||
6475 | del_timer_sync(&bp->timer); | ||
6476 | |||
6477 | /* Wait until stat ramrod returns and all SP tasks complete */ | ||
6478 | while (bp->stat_pending && (bp->spq_left != MAX_SPQ_PENDING)) | ||
6479 | msleep(1); | ||
6480 | |||
6481 | /* Stop fast path, disable MAC, disable interrupts, disable napi */ | ||
6482 | bnx2x_netif_stop(bp); | ||
6483 | |||
6484 | if (bp->flags & NO_WOL_FLAG) | ||
6485 | reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_MCP; | ||
6486 | else if (bp->wol) { | ||
6487 | u32 emac_base = bp->port ? GRCBASE_EMAC0 : GRCBASE_EMAC1; | ||
6488 | u8 *mac_addr = bp->dev->dev_addr; | ||
6489 | u32 val = (EMAC_MODE_MPKT | EMAC_MODE_MPKT_RCVD | | ||
6490 | EMAC_MODE_ACPI_RCVD); | ||
6491 | |||
6492 | EMAC_WR(EMAC_REG_EMAC_MODE, val); | ||
6493 | |||
6494 | val = (mac_addr[0] << 8) | mac_addr[1]; | ||
6495 | EMAC_WR(EMAC_REG_EMAC_MAC_MATCH, val); | ||
6496 | |||
6497 | val = (mac_addr[2] << 24) | (mac_addr[3] << 16) | | ||
6498 | (mac_addr[4] << 8) | mac_addr[5]; | ||
6499 | EMAC_WR(EMAC_REG_EMAC_MAC_MATCH + 4, val); | ||
6500 | |||
6501 | reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_EN; | ||
6502 | } else | ||
6503 | reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS; | ||
6504 | |||
6505 | for_each_nondefault_queue(bp, i) | ||
6506 | if (bnx2x_stop_multi(bp, i)) | ||
6507 | goto error; | ||
6508 | |||
6509 | |||
6510 | bnx2x_stop_leading(bp); | ||
6511 | |||
6512 | error: | ||
6513 | if (!nomcp) | ||
6514 | rc = bnx2x_fw_command(bp, reset_code); | ||
6515 | else | ||
6516 | rc = FW_MSG_CODE_DRV_UNLOAD_COMMON; | ||
6517 | |||
6518 | /* Release IRQs */ | ||
6519 | if (fre_irq) | ||
6520 | bnx2x_free_irq(bp); | ||
6521 | |||
6522 | /* Reset the chip */ | ||
6523 | bnx2x_reset_chip(bp, rc); | ||
6524 | |||
6525 | /* Report UNLOAD_DONE to MCP */ | ||
6526 | if (!nomcp) | ||
6527 | bnx2x_fw_command(bp, DRV_MSG_CODE_UNLOAD_DONE); | ||
6528 | |||
6529 | /* Free SKBs and driver internals */ | ||
6530 | bnx2x_free_skbs(bp); | ||
6531 | bnx2x_free_mem(bp); | ||
6532 | |||
6533 | bp->state = BNX2X_STATE_CLOSED; | ||
6534 | /* Set link down */ | ||
6535 | bp->link_up = 0; | ||
6536 | netif_carrier_off(bp->dev); | ||
6537 | |||
6538 | return 0; | ||
6539 | } | ||
6540 | |||
6541 | /* end of nic load/unload */ | ||
6542 | |||
6543 | /* ethtool_ops */ | ||
6544 | |||
6545 | /* | ||
6546 | * Init service functions | ||
6547 | */ | ||
6548 | |||
6549 | static void bnx2x_link_settings_supported(struct bnx2x *bp, u32 switch_cfg) | ||
6550 | { | ||
6551 | int port = bp->port; | ||
6552 | u32 ext_phy_type; | ||
6553 | |||
6554 | bp->phy_flags = 0; | ||
6555 | |||
6556 | switch (switch_cfg) { | ||
6557 | case SWITCH_CFG_1G: | ||
6558 | BNX2X_DEV_INFO("switch_cfg 0x%x (1G)\n", switch_cfg); | ||
6559 | |||
6560 | ext_phy_type = SERDES_EXT_PHY_TYPE(bp); | ||
6561 | switch (ext_phy_type) { | ||
6562 | case PORT_HW_CFG_SERDES_EXT_PHY_TYPE_DIRECT: | ||
6563 | BNX2X_DEV_INFO("ext_phy_type 0x%x (Direct)\n", | ||
6564 | ext_phy_type); | ||
6565 | |||
6566 | bp->supported |= (SUPPORTED_10baseT_Half | | ||
6567 | SUPPORTED_10baseT_Full | | ||
6568 | SUPPORTED_100baseT_Half | | ||
6569 | SUPPORTED_100baseT_Full | | ||
6570 | SUPPORTED_1000baseT_Full | | ||
6571 | SUPPORTED_2500baseT_Full | | ||
6572 | SUPPORTED_TP | SUPPORTED_FIBRE | | ||
6573 | SUPPORTED_Autoneg | | ||
6574 | SUPPORTED_Pause | | ||
6575 | SUPPORTED_Asym_Pause); | ||
6576 | break; | ||
6577 | |||
6578 | case PORT_HW_CFG_SERDES_EXT_PHY_TYPE_BCM5482: | ||
6579 | BNX2X_DEV_INFO("ext_phy_type 0x%x (5482)\n", | ||
6580 | ext_phy_type); | ||
6581 | |||
6582 | bp->phy_flags |= PHY_SGMII_FLAG; | ||
6583 | |||
6584 | bp->supported |= (/* SUPPORTED_10baseT_Half | | ||
6585 | SUPPORTED_10baseT_Full | | ||
6586 | SUPPORTED_100baseT_Half | | ||
6587 | SUPPORTED_100baseT_Full |*/ | ||
6588 | SUPPORTED_1000baseT_Full | | ||
6589 | SUPPORTED_TP | SUPPORTED_FIBRE | | ||
6590 | SUPPORTED_Autoneg | | ||
6591 | SUPPORTED_Pause | | ||
6592 | SUPPORTED_Asym_Pause); | ||
6593 | break; | ||
6594 | |||
6595 | default: | ||
6596 | BNX2X_ERR("NVRAM config error. " | ||
6597 | "BAD SerDes ext_phy_config 0x%x\n", | ||
6598 | bp->ext_phy_config); | ||
6599 | return; | ||
6600 | } | ||
6601 | |||
6602 | bp->phy_addr = REG_RD(bp, NIG_REG_SERDES0_CTRL_PHY_ADDR + | ||
6603 | port*0x10); | ||
6604 | BNX2X_DEV_INFO("phy_addr 0x%x\n", bp->phy_addr); | ||
6605 | break; | ||
6606 | |||
6607 | case SWITCH_CFG_10G: | ||
6608 | BNX2X_DEV_INFO("switch_cfg 0x%x (10G)\n", switch_cfg); | ||
6609 | |||
6610 | bp->phy_flags |= PHY_XGXS_FLAG; | ||
6611 | |||
6612 | ext_phy_type = XGXS_EXT_PHY_TYPE(bp); | ||
6613 | switch (ext_phy_type) { | ||
6614 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_DIRECT: | ||
6615 | BNX2X_DEV_INFO("ext_phy_type 0x%x (Direct)\n", | ||
6616 | ext_phy_type); | ||
6617 | |||
6618 | bp->supported |= (SUPPORTED_10baseT_Half | | ||
6619 | SUPPORTED_10baseT_Full | | ||
6620 | SUPPORTED_100baseT_Half | | ||
6621 | SUPPORTED_100baseT_Full | | ||
6622 | SUPPORTED_1000baseT_Full | | ||
6623 | SUPPORTED_2500baseT_Full | | ||
6624 | SUPPORTED_10000baseT_Full | | ||
6625 | SUPPORTED_TP | SUPPORTED_FIBRE | | ||
6626 | SUPPORTED_Autoneg | | ||
6627 | SUPPORTED_Pause | | ||
6628 | SUPPORTED_Asym_Pause); | ||
6629 | break; | ||
6630 | |||
6631 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8705: | ||
6632 | case PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8706: | ||
6633 | BNX2X_DEV_INFO("ext_phy_type 0x%x (8705/6)\n", | ||
6634 | ext_phy_type); | ||
6635 | |||
6636 | bp->supported |= (SUPPORTED_10000baseT_Full | | ||
6637 | SUPPORTED_FIBRE | | ||
6638 | SUPPORTED_Pause | | ||
6639 | SUPPORTED_Asym_Pause); | ||
6640 | break; | ||
6641 | |||
6642 | default: | ||
6643 | BNX2X_ERR("NVRAM config error. " | ||
6644 | "BAD XGXS ext_phy_config 0x%x\n", | ||
6645 | bp->ext_phy_config); | ||
6646 | return; | ||
6647 | } | ||
6648 | |||
6649 | bp->phy_addr = REG_RD(bp, NIG_REG_XGXS0_CTRL_PHY_ADDR + | ||
6650 | port*0x18); | ||
6651 | BNX2X_DEV_INFO("phy_addr 0x%x\n", bp->phy_addr); | ||
6652 | |||
6653 | bp->ser_lane = ((bp->lane_config & | ||
6654 | PORT_HW_CFG_LANE_SWAP_CFG_MASTER_MASK) >> | ||
6655 | PORT_HW_CFG_LANE_SWAP_CFG_MASTER_SHIFT); | ||
6656 | bp->rx_lane_swap = ((bp->lane_config & | ||
6657 | PORT_HW_CFG_LANE_SWAP_CFG_RX_MASK) >> | ||
6658 | PORT_HW_CFG_LANE_SWAP_CFG_RX_SHIFT); | ||
6659 | bp->tx_lane_swap = ((bp->lane_config & | ||
6660 | PORT_HW_CFG_LANE_SWAP_CFG_TX_MASK) >> | ||
6661 | PORT_HW_CFG_LANE_SWAP_CFG_TX_SHIFT); | ||
6662 | BNX2X_DEV_INFO("rx_lane_swap 0x%x tx_lane_swap 0x%x\n", | ||
6663 | bp->rx_lane_swap, bp->tx_lane_swap); | ||
6664 | break; | ||
6665 | |||
6666 | default: | ||
6667 | BNX2X_ERR("BAD switch_cfg link_config 0x%x\n", | ||
6668 | bp->link_config); | ||
6669 | return; | ||
6670 | } | ||
6671 | |||
6672 | /* mask what we support according to speed_cap_mask */ | ||
6673 | if (!(bp->speed_cap_mask & | ||
6674 | PORT_HW_CFG_SPEED_CAPABILITY_D0_10M_HALF)) | ||
6675 | bp->supported &= ~SUPPORTED_10baseT_Half; | ||
6676 | |||
6677 | if (!(bp->speed_cap_mask & | ||
6678 | PORT_HW_CFG_SPEED_CAPABILITY_D0_10M_FULL)) | ||
6679 | bp->supported &= ~SUPPORTED_10baseT_Full; | ||
6680 | |||
6681 | if (!(bp->speed_cap_mask & | ||
6682 | PORT_HW_CFG_SPEED_CAPABILITY_D0_100M_HALF)) | ||
6683 | bp->supported &= ~SUPPORTED_100baseT_Half; | ||
6684 | |||
6685 | if (!(bp->speed_cap_mask & | ||
6686 | PORT_HW_CFG_SPEED_CAPABILITY_D0_100M_FULL)) | ||
6687 | bp->supported &= ~SUPPORTED_100baseT_Full; | ||
6688 | |||
6689 | if (!(bp->speed_cap_mask & PORT_HW_CFG_SPEED_CAPABILITY_D0_1G)) | ||
6690 | bp->supported &= ~(SUPPORTED_1000baseT_Half | | ||
6691 | SUPPORTED_1000baseT_Full); | ||
6692 | |||
6693 | if (!(bp->speed_cap_mask & PORT_HW_CFG_SPEED_CAPABILITY_D0_2_5G)) | ||
6694 | bp->supported &= ~SUPPORTED_2500baseT_Full; | ||
6695 | |||
6696 | if (!(bp->speed_cap_mask & PORT_HW_CFG_SPEED_CAPABILITY_D0_10G)) | ||
6697 | bp->supported &= ~SUPPORTED_10000baseT_Full; | ||
6698 | |||
6699 | BNX2X_DEV_INFO("supported 0x%x\n", bp->supported); | ||
6700 | } | ||
6701 | |||
6702 | static void bnx2x_link_settings_requested(struct bnx2x *bp) | ||
6703 | { | ||
6704 | bp->req_autoneg = 0; | ||
6705 | bp->req_duplex = DUPLEX_FULL; | ||
6706 | |||
6707 | switch (bp->link_config & PORT_FEATURE_LINK_SPEED_MASK) { | ||
6708 | case PORT_FEATURE_LINK_SPEED_AUTO: | ||
6709 | if (bp->supported & SUPPORTED_Autoneg) { | ||
6710 | bp->req_autoneg |= AUTONEG_SPEED; | ||
6711 | bp->req_line_speed = 0; | ||
6712 | bp->advertising = bp->supported; | ||
6713 | } else { | ||
6714 | u32 ext_phy_type; | ||
6715 | |||
6716 | ext_phy_type = XGXS_EXT_PHY_TYPE(bp); | ||
6717 | if ((ext_phy_type == | ||
6718 | PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8705) || | ||
6719 | (ext_phy_type == | ||
6720 | PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8706)) { | ||
6721 | /* force 10G, no AN */ | ||
6722 | bp->req_line_speed = SPEED_10000; | ||
6723 | bp->advertising = | ||
6724 | (ADVERTISED_10000baseT_Full | | ||
6725 | ADVERTISED_FIBRE); | ||
6726 | break; | ||
6727 | } | ||
6728 | BNX2X_ERR("NVRAM config error. " | ||
6729 | "Invalid link_config 0x%x" | ||
6730 | " Autoneg not supported\n", | ||
6731 | bp->link_config); | ||
6732 | return; | ||
6733 | } | ||
6734 | break; | ||
6735 | |||
6736 | case PORT_FEATURE_LINK_SPEED_10M_FULL: | ||
6737 | if (bp->speed_cap_mask & | ||
6738 | PORT_HW_CFG_SPEED_CAPABILITY_D0_10M_FULL) { | ||
6739 | bp->req_line_speed = SPEED_10; | ||
6740 | bp->advertising = (ADVERTISED_10baseT_Full | | ||
6741 | ADVERTISED_TP); | ||
6742 | } else { | ||
6743 | BNX2X_ERR("NVRAM config error. " | ||
6744 | "Invalid link_config 0x%x" | ||
6745 | " speed_cap_mask 0x%x\n", | ||
6746 | bp->link_config, bp->speed_cap_mask); | ||
6747 | return; | ||
6748 | } | ||
6749 | break; | ||
6750 | |||
6751 | case PORT_FEATURE_LINK_SPEED_10M_HALF: | ||
6752 | if (bp->speed_cap_mask & | ||
6753 | PORT_HW_CFG_SPEED_CAPABILITY_D0_10M_HALF) { | ||
6754 | bp->req_line_speed = SPEED_10; | ||
6755 | bp->req_duplex = DUPLEX_HALF; | ||
6756 | bp->advertising = (ADVERTISED_10baseT_Half | | ||
6757 | ADVERTISED_TP); | ||
6758 | } else { | ||
6759 | BNX2X_ERR("NVRAM config error. " | ||
6760 | "Invalid link_config 0x%x" | ||
6761 | " speed_cap_mask 0x%x\n", | ||
6762 | bp->link_config, bp->speed_cap_mask); | ||
6763 | return; | ||
6764 | } | ||
6765 | break; | ||
6766 | |||
6767 | case PORT_FEATURE_LINK_SPEED_100M_FULL: | ||
6768 | if (bp->speed_cap_mask & | ||
6769 | PORT_HW_CFG_SPEED_CAPABILITY_D0_100M_FULL) { | ||
6770 | bp->req_line_speed = SPEED_100; | ||
6771 | bp->advertising = (ADVERTISED_100baseT_Full | | ||
6772 | ADVERTISED_TP); | ||
6773 | } else { | ||
6774 | BNX2X_ERR("NVRAM config error. " | ||
6775 | "Invalid link_config 0x%x" | ||
6776 | " speed_cap_mask 0x%x\n", | ||
6777 | bp->link_config, bp->speed_cap_mask); | ||
6778 | return; | ||
6779 | } | ||
6780 | break; | ||
6781 | |||
6782 | case PORT_FEATURE_LINK_SPEED_100M_HALF: | ||
6783 | if (bp->speed_cap_mask & | ||
6784 | PORT_HW_CFG_SPEED_CAPABILITY_D0_100M_HALF) { | ||
6785 | bp->req_line_speed = SPEED_100; | ||
6786 | bp->req_duplex = DUPLEX_HALF; | ||
6787 | bp->advertising = (ADVERTISED_100baseT_Half | | ||
6788 | ADVERTISED_TP); | ||
6789 | } else { | ||
6790 | BNX2X_ERR("NVRAM config error. " | ||
6791 | "Invalid link_config 0x%x" | ||
6792 | " speed_cap_mask 0x%x\n", | ||
6793 | bp->link_config, bp->speed_cap_mask); | ||
6794 | return; | ||
6795 | } | ||
6796 | break; | ||
6797 | |||
6798 | case PORT_FEATURE_LINK_SPEED_1G: | ||
6799 | if (bp->speed_cap_mask & | ||
6800 | PORT_HW_CFG_SPEED_CAPABILITY_D0_1G) { | ||
6801 | bp->req_line_speed = SPEED_1000; | ||
6802 | bp->advertising = (ADVERTISED_1000baseT_Full | | ||
6803 | ADVERTISED_TP); | ||
6804 | } else { | ||
6805 | BNX2X_ERR("NVRAM config error. " | ||
6806 | "Invalid link_config 0x%x" | ||
6807 | " speed_cap_mask 0x%x\n", | ||
6808 | bp->link_config, bp->speed_cap_mask); | ||
6809 | return; | ||
6810 | } | ||
6811 | break; | ||
6812 | |||
6813 | case PORT_FEATURE_LINK_SPEED_2_5G: | ||
6814 | if (bp->speed_cap_mask & | ||
6815 | PORT_HW_CFG_SPEED_CAPABILITY_D0_2_5G) { | ||
6816 | bp->req_line_speed = SPEED_2500; | ||
6817 | bp->advertising = (ADVERTISED_2500baseT_Full | | ||
6818 | ADVERTISED_TP); | ||
6819 | } else { | ||
6820 | BNX2X_ERR("NVRAM config error. " | ||
6821 | "Invalid link_config 0x%x" | ||
6822 | " speed_cap_mask 0x%x\n", | ||
6823 | bp->link_config, bp->speed_cap_mask); | ||
6824 | return; | ||
6825 | } | ||
6826 | break; | ||
6827 | |||
6828 | case PORT_FEATURE_LINK_SPEED_10G_CX4: | ||
6829 | case PORT_FEATURE_LINK_SPEED_10G_KX4: | ||
6830 | case PORT_FEATURE_LINK_SPEED_10G_KR: | ||
6831 | if (!(bp->phy_flags & PHY_XGXS_FLAG)) { | ||
6832 | BNX2X_ERR("NVRAM config error. " | ||
6833 | "Invalid link_config 0x%x" | ||
6834 | " phy_flags 0x%x\n", | ||
6835 | bp->link_config, bp->phy_flags); | ||
6836 | return; | ||
6837 | } | ||
6838 | if (bp->speed_cap_mask & | ||
6839 | PORT_HW_CFG_SPEED_CAPABILITY_D0_10G) { | ||
6840 | bp->req_line_speed = SPEED_10000; | ||
6841 | bp->advertising = (ADVERTISED_10000baseT_Full | | ||
6842 | ADVERTISED_FIBRE); | ||
6843 | } else { | ||
6844 | BNX2X_ERR("NVRAM config error. " | ||
6845 | "Invalid link_config 0x%x" | ||
6846 | " speed_cap_mask 0x%x\n", | ||
6847 | bp->link_config, bp->speed_cap_mask); | ||
6848 | return; | ||
6849 | } | ||
6850 | break; | ||
6851 | |||
6852 | default: | ||
6853 | BNX2X_ERR("NVRAM config error. " | ||
6854 | "BAD link speed link_config 0x%x\n", | ||
6855 | bp->link_config); | ||
6856 | bp->req_autoneg |= AUTONEG_SPEED; | ||
6857 | bp->req_line_speed = 0; | ||
6858 | bp->advertising = bp->supported; | ||
6859 | break; | ||
6860 | } | ||
6861 | BNX2X_DEV_INFO("req_line_speed %d req_duplex %d\n", | ||
6862 | bp->req_line_speed, bp->req_duplex); | ||
6863 | |||
6864 | bp->req_flow_ctrl = (bp->link_config & | ||
6865 | PORT_FEATURE_FLOW_CONTROL_MASK); | ||
6866 | /* Please refer to Table 28B-3 of the 802.3ab-1999 spec */ | ||
6867 | switch (bp->req_flow_ctrl) { | ||
6868 | case FLOW_CTRL_AUTO: | ||
6869 | bp->req_autoneg |= AUTONEG_FLOW_CTRL; | ||
6870 | if (bp->dev->mtu <= 4500) { | ||
6871 | bp->pause_mode = PAUSE_BOTH; | ||
6872 | bp->advertising |= (ADVERTISED_Pause | | ||
6873 | ADVERTISED_Asym_Pause); | ||
6874 | } else { | ||
6875 | bp->pause_mode = PAUSE_ASYMMETRIC; | ||
6876 | bp->advertising |= ADVERTISED_Asym_Pause; | ||
6877 | } | ||
6878 | break; | ||
6879 | |||
6880 | case FLOW_CTRL_TX: | ||
6881 | bp->pause_mode = PAUSE_ASYMMETRIC; | ||
6882 | bp->advertising |= ADVERTISED_Asym_Pause; | ||
6883 | break; | ||
6884 | |||
6885 | case FLOW_CTRL_RX: | ||
6886 | case FLOW_CTRL_BOTH: | ||
6887 | bp->pause_mode = PAUSE_BOTH; | ||
6888 | bp->advertising |= (ADVERTISED_Pause | | ||
6889 | ADVERTISED_Asym_Pause); | ||
6890 | break; | ||
6891 | |||
6892 | case FLOW_CTRL_NONE: | ||
6893 | default: | ||
6894 | bp->pause_mode = PAUSE_NONE; | ||
6895 | bp->advertising &= ~(ADVERTISED_Pause | | ||
6896 | ADVERTISED_Asym_Pause); | ||
6897 | break; | ||
6898 | } | ||
6899 | BNX2X_DEV_INFO("req_autoneg 0x%x req_flow_ctrl 0x%x\n" | ||
6900 | KERN_INFO " pause_mode %d advertising 0x%x\n", | ||
6901 | bp->req_autoneg, bp->req_flow_ctrl, | ||
6902 | bp->pause_mode, bp->advertising); | ||
6903 | } | ||
6904 | |||
6905 | static void bnx2x_get_hwinfo(struct bnx2x *bp) | ||
6906 | { | ||
6907 | u32 val, val2, val3, val4, id; | ||
6908 | int port = bp->port; | ||
6909 | u32 switch_cfg; | ||
6910 | |||
6911 | bp->shmem_base = REG_RD(bp, MISC_REG_SHARED_MEM_ADDR); | ||
6912 | BNX2X_DEV_INFO("shmem offset is %x\n", bp->shmem_base); | ||
6913 | |||
6914 | /* Get the chip revision id and number. */ | ||
6915 | /* chip num:16-31, rev:12-15, metal:4-11, bond_id:0-3 */ | ||
6916 | val = REG_RD(bp, MISC_REG_CHIP_NUM); | ||
6917 | id = ((val & 0xffff) << 16); | ||
6918 | val = REG_RD(bp, MISC_REG_CHIP_REV); | ||
6919 | id |= ((val & 0xf) << 12); | ||
6920 | val = REG_RD(bp, MISC_REG_CHIP_METAL); | ||
6921 | id |= ((val & 0xff) << 4); | ||
6922 | REG_RD(bp, MISC_REG_BOND_ID); | ||
6923 | id |= (val & 0xf); | ||
6924 | bp->chip_id = id; | ||
6925 | BNX2X_DEV_INFO("chip ID is %x\n", id); | ||
6926 | |||
6927 | if (!bp->shmem_base || (bp->shmem_base != 0xAF900)) { | ||
6928 | BNX2X_DEV_INFO("MCP not active\n"); | ||
6929 | nomcp = 1; | ||
6930 | goto set_mac; | ||
6931 | } | ||
6932 | |||
6933 | val = SHMEM_RD(bp, validity_map[port]); | ||
6934 | if ((val & (SHR_MEM_VALIDITY_DEV_INFO | SHR_MEM_VALIDITY_MB)) | ||
6935 | != (SHR_MEM_VALIDITY_DEV_INFO | SHR_MEM_VALIDITY_MB)) | ||
6936 | BNX2X_ERR("MCP validity signature bad\n"); | ||
6937 | |||
6938 | bp->fw_seq = (SHMEM_RD(bp, drv_fw_mb[port].drv_mb_header) & | ||
6939 | DRV_MSG_SEQ_NUMBER_MASK); | ||
6940 | |||
6941 | bp->hw_config = SHMEM_RD(bp, dev_info.shared_hw_config.config); | ||
6942 | |||
6943 | bp->serdes_config = | ||
6944 | SHMEM_RD(bp, dev_info.port_hw_config[bp->port].serdes_config); | ||
6945 | bp->lane_config = | ||
6946 | SHMEM_RD(bp, dev_info.port_hw_config[port].lane_config); | ||
6947 | bp->ext_phy_config = | ||
6948 | SHMEM_RD(bp, | ||
6949 | dev_info.port_hw_config[port].external_phy_config); | ||
6950 | bp->speed_cap_mask = | ||
6951 | SHMEM_RD(bp, | ||
6952 | dev_info.port_hw_config[port].speed_capability_mask); | ||
6953 | |||
6954 | bp->link_config = | ||
6955 | SHMEM_RD(bp, dev_info.port_feature_config[port].link_config); | ||
6956 | |||
6957 | BNX2X_DEV_INFO("hw_config (%08x) serdes_config (%08x)\n" | ||
6958 | KERN_INFO " lane_config (%08x) ext_phy_config (%08x)\n" | ||
6959 | KERN_INFO " speed_cap_mask (%08x) link_config (%08x)" | ||
6960 | " fw_seq (%08x)\n", | ||
6961 | bp->hw_config, bp->serdes_config, bp->lane_config, | ||
6962 | bp->ext_phy_config, bp->speed_cap_mask, | ||
6963 | bp->link_config, bp->fw_seq); | ||
6964 | |||
6965 | switch_cfg = (bp->link_config & PORT_FEATURE_CONNECTED_SWITCH_MASK); | ||
6966 | bnx2x_link_settings_supported(bp, switch_cfg); | ||
6967 | |||
6968 | bp->autoneg = (bp->hw_config & SHARED_HW_CFG_AN_ENABLE_MASK); | ||
6969 | /* for now disable cl73 */ | ||
6970 | bp->autoneg &= ~SHARED_HW_CFG_AN_ENABLE_CL73; | ||
6971 | BNX2X_DEV_INFO("autoneg 0x%x\n", bp->autoneg); | ||
6972 | |||
6973 | bnx2x_link_settings_requested(bp); | ||
6974 | |||
6975 | val2 = SHMEM_RD(bp, dev_info.port_hw_config[port].mac_upper); | ||
6976 | val = SHMEM_RD(bp, dev_info.port_hw_config[port].mac_lower); | ||
6977 | bp->dev->dev_addr[0] = (u8)(val2 >> 8 & 0xff); | ||
6978 | bp->dev->dev_addr[1] = (u8)(val2 & 0xff); | ||
6979 | bp->dev->dev_addr[2] = (u8)(val >> 24 & 0xff); | ||
6980 | bp->dev->dev_addr[3] = (u8)(val >> 16 & 0xff); | ||
6981 | bp->dev->dev_addr[4] = (u8)(val >> 8 & 0xff); | ||
6982 | bp->dev->dev_addr[5] = (u8)(val & 0xff); | ||
6983 | |||
6984 | memcpy(bp->dev->perm_addr, bp->dev->dev_addr, 6); | ||
6985 | |||
6986 | |||
6987 | val = SHMEM_RD(bp, dev_info.shared_hw_config.part_num); | ||
6988 | val2 = SHMEM_RD(bp, dev_info.shared_hw_config.part_num[4]); | ||
6989 | val3 = SHMEM_RD(bp, dev_info.shared_hw_config.part_num[8]); | ||
6990 | val4 = SHMEM_RD(bp, dev_info.shared_hw_config.part_num[12]); | ||
6991 | |||
6992 | printk(KERN_INFO PFX "part number %X-%X-%X-%X\n", | ||
6993 | val, val2, val3, val4); | ||
6994 | |||
6995 | /* bc ver */ | ||
6996 | if (!nomcp) { | ||
6997 | bp->bc_ver = val = ((SHMEM_RD(bp, dev_info.bc_rev)) >> 8); | ||
6998 | BNX2X_DEV_INFO("bc_ver %X\n", val); | ||
6999 | if (val < BNX2X_BC_VER) { | ||
7000 | /* for now only warn | ||
7001 | * later we might need to enforce this */ | ||
7002 | BNX2X_ERR("This driver needs bc_ver %X but found %X," | ||
7003 | " please upgrade BC\n", BNX2X_BC_VER, val); | ||
7004 | } | ||
7005 | } else { | ||
7006 | bp->bc_ver = 0; | ||
7007 | } | ||
7008 | |||
7009 | val = REG_RD(bp, MCP_REG_MCPR_NVM_CFG4); | ||
7010 | bp->flash_size = (NVRAM_1MB_SIZE << (val & MCPR_NVM_CFG4_FLASH_SIZE)); | ||
7011 | BNX2X_DEV_INFO("flash_size 0x%x (%d)\n", | ||
7012 | bp->flash_size, bp->flash_size); | ||
7013 | |||
7014 | return; | ||
7015 | |||
7016 | set_mac: /* only supposed to happen on emulation/FPGA */ | ||
7017 | BNX2X_ERR("warning constant MAC workaround active\n"); | ||
7018 | bp->dev->dev_addr[0] = 0; | ||
7019 | bp->dev->dev_addr[1] = 0x50; | ||
7020 | bp->dev->dev_addr[2] = 0xc2; | ||
7021 | bp->dev->dev_addr[3] = 0x2c; | ||
7022 | bp->dev->dev_addr[4] = 0x71; | ||
7023 | bp->dev->dev_addr[5] = port ? 0x0d : 0x0e; | ||
7024 | |||
7025 | memcpy(bp->dev->perm_addr, bp->dev->dev_addr, 6); | ||
7026 | |||
7027 | } | ||
7028 | |||
7029 | /* | ||
7030 | * ethtool service functions | ||
7031 | */ | ||
7032 | |||
7033 | /* All ethtool functions called with rtnl_lock */ | ||
7034 | |||
7035 | static int bnx2x_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) | ||
7036 | { | ||
7037 | struct bnx2x *bp = netdev_priv(dev); | ||
7038 | |||
7039 | cmd->supported = bp->supported; | ||
7040 | cmd->advertising = bp->advertising; | ||
7041 | |||
7042 | if (netif_carrier_ok(dev)) { | ||
7043 | cmd->speed = bp->line_speed; | ||
7044 | cmd->duplex = bp->duplex; | ||
7045 | } else { | ||
7046 | cmd->speed = bp->req_line_speed; | ||
7047 | cmd->duplex = bp->req_duplex; | ||
7048 | } | ||
7049 | |||
7050 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
7051 | cmd->port = PORT_FIBRE; | ||
7052 | } else { | ||
7053 | cmd->port = PORT_TP; | ||
7054 | } | ||
7055 | |||
7056 | cmd->phy_address = bp->phy_addr; | ||
7057 | cmd->transceiver = XCVR_INTERNAL; | ||
7058 | |||
7059 | if (bp->req_autoneg & AUTONEG_SPEED) { | ||
7060 | cmd->autoneg = AUTONEG_ENABLE; | ||
7061 | } else { | ||
7062 | cmd->autoneg = AUTONEG_DISABLE; | ||
7063 | } | ||
7064 | |||
7065 | cmd->maxtxpkt = 0; | ||
7066 | cmd->maxrxpkt = 0; | ||
7067 | |||
7068 | DP(NETIF_MSG_LINK, "ethtool_cmd: cmd %d\n" | ||
7069 | DP_LEVEL " supported 0x%x advertising 0x%x speed %d\n" | ||
7070 | DP_LEVEL " duplex %d port %d phy_address %d transceiver %d\n" | ||
7071 | DP_LEVEL " autoneg %d maxtxpkt %d maxrxpkt %d\n", | ||
7072 | cmd->cmd, cmd->supported, cmd->advertising, cmd->speed, | ||
7073 | cmd->duplex, cmd->port, cmd->phy_address, cmd->transceiver, | ||
7074 | cmd->autoneg, cmd->maxtxpkt, cmd->maxrxpkt); | ||
7075 | |||
7076 | return 0; | ||
7077 | } | ||
7078 | |||
7079 | static int bnx2x_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) | ||
7080 | { | ||
7081 | struct bnx2x *bp = netdev_priv(dev); | ||
7082 | u32 advertising; | ||
7083 | |||
7084 | DP(NETIF_MSG_LINK, "ethtool_cmd: cmd %d\n" | ||
7085 | DP_LEVEL " supported 0x%x advertising 0x%x speed %d\n" | ||
7086 | DP_LEVEL " duplex %d port %d phy_address %d transceiver %d\n" | ||
7087 | DP_LEVEL " autoneg %d maxtxpkt %d maxrxpkt %d\n", | ||
7088 | cmd->cmd, cmd->supported, cmd->advertising, cmd->speed, | ||
7089 | cmd->duplex, cmd->port, cmd->phy_address, cmd->transceiver, | ||
7090 | cmd->autoneg, cmd->maxtxpkt, cmd->maxrxpkt); | ||
7091 | |||
7092 | switch (cmd->port) { | ||
7093 | case PORT_TP: | ||
7094 | if (!(bp->supported & SUPPORTED_TP)) | ||
7095 | return -EINVAL; | ||
7096 | |||
7097 | if (bp->phy_flags & PHY_XGXS_FLAG) { | ||
7098 | bnx2x_link_reset(bp); | ||
7099 | bnx2x_link_settings_supported(bp, SWITCH_CFG_1G); | ||
7100 | bnx2x_phy_deassert(bp); | ||
7101 | } | ||
7102 | break; | ||
7103 | |||
7104 | case PORT_FIBRE: | ||
7105 | if (!(bp->supported & SUPPORTED_FIBRE)) | ||
7106 | return -EINVAL; | ||
7107 | |||
7108 | if (!(bp->phy_flags & PHY_XGXS_FLAG)) { | ||
7109 | bnx2x_link_reset(bp); | ||
7110 | bnx2x_link_settings_supported(bp, SWITCH_CFG_10G); | ||
7111 | bnx2x_phy_deassert(bp); | ||
7112 | } | ||
7113 | break; | ||
7114 | |||
7115 | default: | ||
7116 | return -EINVAL; | ||
7117 | } | ||
7118 | |||
7119 | if (cmd->autoneg == AUTONEG_ENABLE) { | ||
7120 | if (!(bp->supported & SUPPORTED_Autoneg)) | ||
7121 | return -EINVAL; | ||
7122 | |||
7123 | /* advertise the requested speed and duplex if supported */ | ||
7124 | cmd->advertising &= bp->supported; | ||
7125 | |||
7126 | bp->req_autoneg |= AUTONEG_SPEED; | ||
7127 | bp->req_line_speed = 0; | ||
7128 | bp->req_duplex = DUPLEX_FULL; | ||
7129 | bp->advertising |= (ADVERTISED_Autoneg | cmd->advertising); | ||
7130 | |||
7131 | } else { /* forced speed */ | ||
7132 | /* advertise the requested speed and duplex if supported */ | ||
7133 | switch (cmd->speed) { | ||
7134 | case SPEED_10: | ||
7135 | if (cmd->duplex == DUPLEX_FULL) { | ||
7136 | if (!(bp->supported & SUPPORTED_10baseT_Full)) | ||
7137 | return -EINVAL; | ||
7138 | |||
7139 | advertising = (ADVERTISED_10baseT_Full | | ||
7140 | ADVERTISED_TP); | ||
7141 | } else { | ||
7142 | if (!(bp->supported & SUPPORTED_10baseT_Half)) | ||
7143 | return -EINVAL; | ||
7144 | |||
7145 | advertising = (ADVERTISED_10baseT_Half | | ||
7146 | ADVERTISED_TP); | ||
7147 | } | ||
7148 | break; | ||
7149 | |||
7150 | case SPEED_100: | ||
7151 | if (cmd->duplex == DUPLEX_FULL) { | ||
7152 | if (!(bp->supported & | ||
7153 | SUPPORTED_100baseT_Full)) | ||
7154 | return -EINVAL; | ||
7155 | |||
7156 | advertising = (ADVERTISED_100baseT_Full | | ||
7157 | ADVERTISED_TP); | ||
7158 | } else { | ||
7159 | if (!(bp->supported & | ||
7160 | SUPPORTED_100baseT_Half)) | ||
7161 | return -EINVAL; | ||
7162 | |||
7163 | advertising = (ADVERTISED_100baseT_Half | | ||
7164 | ADVERTISED_TP); | ||
7165 | } | ||
7166 | break; | ||
7167 | |||
7168 | case SPEED_1000: | ||
7169 | if (cmd->duplex != DUPLEX_FULL) | ||
7170 | return -EINVAL; | ||
7171 | |||
7172 | if (!(bp->supported & SUPPORTED_1000baseT_Full)) | ||
7173 | return -EINVAL; | ||
7174 | |||
7175 | advertising = (ADVERTISED_1000baseT_Full | | ||
7176 | ADVERTISED_TP); | ||
7177 | break; | ||
7178 | |||
7179 | case SPEED_2500: | ||
7180 | if (cmd->duplex != DUPLEX_FULL) | ||
7181 | return -EINVAL; | ||
7182 | |||
7183 | if (!(bp->supported & SUPPORTED_2500baseT_Full)) | ||
7184 | return -EINVAL; | ||
7185 | |||
7186 | advertising = (ADVERTISED_2500baseT_Full | | ||
7187 | ADVERTISED_TP); | ||
7188 | break; | ||
7189 | |||
7190 | case SPEED_10000: | ||
7191 | if (cmd->duplex != DUPLEX_FULL) | ||
7192 | return -EINVAL; | ||
7193 | |||
7194 | if (!(bp->supported & SUPPORTED_10000baseT_Full)) | ||
7195 | return -EINVAL; | ||
7196 | |||
7197 | advertising = (ADVERTISED_10000baseT_Full | | ||
7198 | ADVERTISED_FIBRE); | ||
7199 | break; | ||
7200 | |||
7201 | default: | ||
7202 | return -EINVAL; | ||
7203 | } | ||
7204 | |||
7205 | bp->req_autoneg &= ~AUTONEG_SPEED; | ||
7206 | bp->req_line_speed = cmd->speed; | ||
7207 | bp->req_duplex = cmd->duplex; | ||
7208 | bp->advertising = advertising; | ||
7209 | } | ||
7210 | |||
7211 | DP(NETIF_MSG_LINK, "req_autoneg 0x%x req_line_speed %d\n" | ||
7212 | DP_LEVEL " req_duplex %d advertising 0x%x\n", | ||
7213 | bp->req_autoneg, bp->req_line_speed, bp->req_duplex, | ||
7214 | bp->advertising); | ||
7215 | |||
7216 | bnx2x_stop_stats(bp); | ||
7217 | bnx2x_link_initialize(bp); | ||
7218 | |||
7219 | return 0; | ||
7220 | } | ||
7221 | |||
7222 | static void bnx2x_get_drvinfo(struct net_device *dev, | ||
7223 | struct ethtool_drvinfo *info) | ||
7224 | { | ||
7225 | struct bnx2x *bp = netdev_priv(dev); | ||
7226 | |||
7227 | strcpy(info->driver, DRV_MODULE_NAME); | ||
7228 | strcpy(info->version, DRV_MODULE_VERSION); | ||
7229 | snprintf(info->fw_version, 32, "%d.%d.%d:%d (BC VER %x)", | ||
7230 | BCM_5710_FW_MAJOR_VERSION, BCM_5710_FW_MINOR_VERSION, | ||
7231 | BCM_5710_FW_REVISION_VERSION, BCM_5710_FW_COMPILE_FLAGS, | ||
7232 | bp->bc_ver); | ||
7233 | strcpy(info->bus_info, pci_name(bp->pdev)); | ||
7234 | info->n_stats = BNX2X_NUM_STATS; | ||
7235 | info->testinfo_len = BNX2X_NUM_TESTS; | ||
7236 | info->eedump_len = bp->flash_size; | ||
7237 | info->regdump_len = 0; | ||
7238 | } | ||
7239 | |||
7240 | static void bnx2x_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) | ||
7241 | { | ||
7242 | struct bnx2x *bp = netdev_priv(dev); | ||
7243 | |||
7244 | if (bp->flags & NO_WOL_FLAG) { | ||
7245 | wol->supported = 0; | ||
7246 | wol->wolopts = 0; | ||
7247 | } else { | ||
7248 | wol->supported = WAKE_MAGIC; | ||
7249 | if (bp->wol) | ||
7250 | wol->wolopts = WAKE_MAGIC; | ||
7251 | else | ||
7252 | wol->wolopts = 0; | ||
7253 | } | ||
7254 | memset(&wol->sopass, 0, sizeof(wol->sopass)); | ||
7255 | } | ||
7256 | |||
7257 | static int bnx2x_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) | ||
7258 | { | ||
7259 | struct bnx2x *bp = netdev_priv(dev); | ||
7260 | |||
7261 | if (wol->wolopts & ~WAKE_MAGIC) | ||
7262 | return -EINVAL; | ||
7263 | |||
7264 | if (wol->wolopts & WAKE_MAGIC) { | ||
7265 | if (bp->flags & NO_WOL_FLAG) | ||
7266 | return -EINVAL; | ||
7267 | |||
7268 | bp->wol = 1; | ||
7269 | } else { | ||
7270 | bp->wol = 0; | ||
7271 | } | ||
7272 | return 0; | ||
7273 | } | ||
7274 | |||
7275 | static u32 bnx2x_get_msglevel(struct net_device *dev) | ||
7276 | { | ||
7277 | struct bnx2x *bp = netdev_priv(dev); | ||
7278 | |||
7279 | return bp->msglevel; | ||
7280 | } | ||
7281 | |||
7282 | static void bnx2x_set_msglevel(struct net_device *dev, u32 level) | ||
7283 | { | ||
7284 | struct bnx2x *bp = netdev_priv(dev); | ||
7285 | |||
7286 | if (capable(CAP_NET_ADMIN)) | ||
7287 | bp->msglevel = level; | ||
7288 | } | ||
7289 | |||
7290 | static int bnx2x_nway_reset(struct net_device *dev) | ||
7291 | { | ||
7292 | struct bnx2x *bp = netdev_priv(dev); | ||
7293 | |||
7294 | if (bp->state != BNX2X_STATE_OPEN) { | ||
7295 | DP(NETIF_MSG_PROBE, "state is %x, returning\n", bp->state); | ||
7296 | return -EAGAIN; | ||
7297 | } | ||
7298 | |||
7299 | bnx2x_stop_stats(bp); | ||
7300 | bnx2x_link_initialize(bp); | ||
7301 | |||
7302 | return 0; | ||
7303 | } | ||
7304 | |||
7305 | static int bnx2x_get_eeprom_len(struct net_device *dev) | ||
7306 | { | ||
7307 | struct bnx2x *bp = netdev_priv(dev); | ||
7308 | |||
7309 | return bp->flash_size; | ||
7310 | } | ||
7311 | |||
7312 | static int bnx2x_acquire_nvram_lock(struct bnx2x *bp) | ||
7313 | { | ||
7314 | int port = bp->port; | ||
7315 | int count, i; | ||
7316 | u32 val = 0; | ||
7317 | |||
7318 | /* adjust timeout for emulation/FPGA */ | ||
7319 | count = NVRAM_TIMEOUT_COUNT; | ||
7320 | if (CHIP_REV_IS_SLOW(bp)) | ||
7321 | count *= 100; | ||
7322 | |||
7323 | /* request access to nvram interface */ | ||
7324 | REG_WR(bp, MCP_REG_MCPR_NVM_SW_ARB, | ||
7325 | (MCPR_NVM_SW_ARB_ARB_REQ_SET1 << port)); | ||
7326 | |||
7327 | for (i = 0; i < count*10; i++) { | ||
7328 | val = REG_RD(bp, MCP_REG_MCPR_NVM_SW_ARB); | ||
7329 | if (val & (MCPR_NVM_SW_ARB_ARB_ARB1 << port)) | ||
7330 | break; | ||
7331 | |||
7332 | udelay(5); | ||
7333 | } | ||
7334 | |||
7335 | if (!(val & (MCPR_NVM_SW_ARB_ARB_ARB1 << port))) { | ||
7336 | DP(NETIF_MSG_NVM, "cannot get access to nvram interface\n"); | ||
7337 | return -EBUSY; | ||
7338 | } | ||
7339 | |||
7340 | return 0; | ||
7341 | } | ||
7342 | |||
7343 | static int bnx2x_release_nvram_lock(struct bnx2x *bp) | ||
7344 | { | ||
7345 | int port = bp->port; | ||
7346 | int count, i; | ||
7347 | u32 val = 0; | ||
7348 | |||
7349 | /* adjust timeout for emulation/FPGA */ | ||
7350 | count = NVRAM_TIMEOUT_COUNT; | ||
7351 | if (CHIP_REV_IS_SLOW(bp)) | ||
7352 | count *= 100; | ||
7353 | |||
7354 | /* relinquish nvram interface */ | ||
7355 | REG_WR(bp, MCP_REG_MCPR_NVM_SW_ARB, | ||
7356 | (MCPR_NVM_SW_ARB_ARB_REQ_CLR1 << port)); | ||
7357 | |||
7358 | for (i = 0; i < count*10; i++) { | ||
7359 | val = REG_RD(bp, MCP_REG_MCPR_NVM_SW_ARB); | ||
7360 | if (!(val & (MCPR_NVM_SW_ARB_ARB_ARB1 << port))) | ||
7361 | break; | ||
7362 | |||
7363 | udelay(5); | ||
7364 | } | ||
7365 | |||
7366 | if (val & (MCPR_NVM_SW_ARB_ARB_ARB1 << port)) { | ||
7367 | DP(NETIF_MSG_NVM, "cannot free access to nvram interface\n"); | ||
7368 | return -EBUSY; | ||
7369 | } | ||
7370 | |||
7371 | return 0; | ||
7372 | } | ||
7373 | |||
7374 | static void bnx2x_enable_nvram_access(struct bnx2x *bp) | ||
7375 | { | ||
7376 | u32 val; | ||
7377 | |||
7378 | val = REG_RD(bp, MCP_REG_MCPR_NVM_ACCESS_ENABLE); | ||
7379 | |||
7380 | /* enable both bits, even on read */ | ||
7381 | REG_WR(bp, MCP_REG_MCPR_NVM_ACCESS_ENABLE, | ||
7382 | (val | MCPR_NVM_ACCESS_ENABLE_EN | | ||
7383 | MCPR_NVM_ACCESS_ENABLE_WR_EN)); | ||
7384 | } | ||
7385 | |||
7386 | static void bnx2x_disable_nvram_access(struct bnx2x *bp) | ||
7387 | { | ||
7388 | u32 val; | ||
7389 | |||
7390 | val = REG_RD(bp, MCP_REG_MCPR_NVM_ACCESS_ENABLE); | ||
7391 | |||
7392 | /* disable both bits, even after read */ | ||
7393 | REG_WR(bp, MCP_REG_MCPR_NVM_ACCESS_ENABLE, | ||
7394 | (val & ~(MCPR_NVM_ACCESS_ENABLE_EN | | ||
7395 | MCPR_NVM_ACCESS_ENABLE_WR_EN))); | ||
7396 | } | ||
7397 | |||
7398 | static int bnx2x_nvram_read_dword(struct bnx2x *bp, u32 offset, u32 *ret_val, | ||
7399 | u32 cmd_flags) | ||
7400 | { | ||
7401 | int rc; | ||
7402 | int count, i; | ||
7403 | u32 val; | ||
7404 | |||
7405 | /* build the command word */ | ||
7406 | cmd_flags |= MCPR_NVM_COMMAND_DOIT; | ||
7407 | |||
7408 | /* need to clear DONE bit separately */ | ||
7409 | REG_WR(bp, MCP_REG_MCPR_NVM_COMMAND, MCPR_NVM_COMMAND_DONE); | ||
7410 | |||
7411 | /* address of the NVRAM to read from */ | ||
7412 | REG_WR(bp, MCP_REG_MCPR_NVM_ADDR, | ||
7413 | (offset & MCPR_NVM_ADDR_NVM_ADDR_VALUE)); | ||
7414 | |||
7415 | /* issue a read command */ | ||
7416 | REG_WR(bp, MCP_REG_MCPR_NVM_COMMAND, cmd_flags); | ||
7417 | |||
7418 | /* adjust timeout for emulation/FPGA */ | ||
7419 | count = NVRAM_TIMEOUT_COUNT; | ||
7420 | if (CHIP_REV_IS_SLOW(bp)) | ||
7421 | count *= 100; | ||
7422 | |||
7423 | /* wait for completion */ | ||
7424 | *ret_val = 0; | ||
7425 | rc = -EBUSY; | ||
7426 | for (i = 0; i < count; i++) { | ||
7427 | udelay(5); | ||
7428 | val = REG_RD(bp, MCP_REG_MCPR_NVM_COMMAND); | ||
7429 | |||
7430 | if (val & MCPR_NVM_COMMAND_DONE) { | ||
7431 | val = REG_RD(bp, MCP_REG_MCPR_NVM_READ); | ||
7432 | DP(NETIF_MSG_NVM, "val 0x%08x\n", val); | ||
7433 | /* we read nvram data in cpu order | ||
7434 | * but ethtool sees it as an array of bytes | ||
7435 | * converting to big-endian will do the work */ | ||
7436 | val = cpu_to_be32(val); | ||
7437 | *ret_val = val; | ||
7438 | rc = 0; | ||
7439 | break; | ||
7440 | } | ||
7441 | } | ||
7442 | |||
7443 | return rc; | ||
7444 | } | ||
7445 | |||
7446 | static int bnx2x_nvram_read(struct bnx2x *bp, u32 offset, u8 *ret_buf, | ||
7447 | int buf_size) | ||
7448 | { | ||
7449 | int rc; | ||
7450 | u32 cmd_flags; | ||
7451 | u32 val; | ||
7452 | |||
7453 | if ((offset & 0x03) || (buf_size & 0x03) || (buf_size == 0)) { | ||
7454 | DP(NETIF_MSG_NVM, | ||
7455 | "Invalid paramter: offset 0x%x buf_size 0x%x\n", | ||
7456 | offset, buf_size); | ||
7457 | return -EINVAL; | ||
7458 | } | ||
7459 | |||
7460 | if (offset + buf_size > bp->flash_size) { | ||
7461 | DP(NETIF_MSG_NVM, "Invalid paramter: offset (0x%x) +" | ||
7462 | " buf_size (0x%x) > flash_size (0x%x)\n", | ||
7463 | offset, buf_size, bp->flash_size); | ||
7464 | return -EINVAL; | ||
7465 | } | ||
7466 | |||
7467 | /* request access to nvram interface */ | ||
7468 | rc = bnx2x_acquire_nvram_lock(bp); | ||
7469 | if (rc) | ||
7470 | return rc; | ||
7471 | |||
7472 | /* enable access to nvram interface */ | ||
7473 | bnx2x_enable_nvram_access(bp); | ||
7474 | |||
7475 | /* read the first word(s) */ | ||
7476 | cmd_flags = MCPR_NVM_COMMAND_FIRST; | ||
7477 | while ((buf_size > sizeof(u32)) && (rc == 0)) { | ||
7478 | rc = bnx2x_nvram_read_dword(bp, offset, &val, cmd_flags); | ||
7479 | memcpy(ret_buf, &val, 4); | ||
7480 | |||
7481 | /* advance to the next dword */ | ||
7482 | offset += sizeof(u32); | ||
7483 | ret_buf += sizeof(u32); | ||
7484 | buf_size -= sizeof(u32); | ||
7485 | cmd_flags = 0; | ||
7486 | } | ||
7487 | |||
7488 | if (rc == 0) { | ||
7489 | cmd_flags |= MCPR_NVM_COMMAND_LAST; | ||
7490 | rc = bnx2x_nvram_read_dword(bp, offset, &val, cmd_flags); | ||
7491 | memcpy(ret_buf, &val, 4); | ||
7492 | } | ||
7493 | |||
7494 | /* disable access to nvram interface */ | ||
7495 | bnx2x_disable_nvram_access(bp); | ||
7496 | bnx2x_release_nvram_lock(bp); | ||
7497 | |||
7498 | return rc; | ||
7499 | } | ||
7500 | |||
7501 | static int bnx2x_get_eeprom(struct net_device *dev, | ||
7502 | struct ethtool_eeprom *eeprom, u8 *eebuf) | ||
7503 | { | ||
7504 | struct bnx2x *bp = netdev_priv(dev); | ||
7505 | int rc; | ||
7506 | |||
7507 | DP(NETIF_MSG_NVM, "ethtool_eeprom: cmd %d\n" | ||
7508 | DP_LEVEL " magic 0x%x offset 0x%x (%d) len 0x%x (%d)\n", | ||
7509 | eeprom->cmd, eeprom->magic, eeprom->offset, eeprom->offset, | ||
7510 | eeprom->len, eeprom->len); | ||
7511 | |||
7512 | /* parameters already validated in ethtool_get_eeprom */ | ||
7513 | |||
7514 | rc = bnx2x_nvram_read(bp, eeprom->offset, eebuf, eeprom->len); | ||
7515 | |||
7516 | return rc; | ||
7517 | } | ||
7518 | |||
7519 | static int bnx2x_nvram_write_dword(struct bnx2x *bp, u32 offset, u32 val, | ||
7520 | u32 cmd_flags) | ||
7521 | { | ||
7522 | int rc; | ||
7523 | int count, i; | ||
7524 | |||
7525 | /* build the command word */ | ||
7526 | cmd_flags |= MCPR_NVM_COMMAND_DOIT | MCPR_NVM_COMMAND_WR; | ||
7527 | |||
7528 | /* need to clear DONE bit separately */ | ||
7529 | REG_WR(bp, MCP_REG_MCPR_NVM_COMMAND, MCPR_NVM_COMMAND_DONE); | ||
7530 | |||
7531 | /* write the data */ | ||
7532 | REG_WR(bp, MCP_REG_MCPR_NVM_WRITE, val); | ||
7533 | |||
7534 | /* address of the NVRAM to write to */ | ||
7535 | REG_WR(bp, MCP_REG_MCPR_NVM_ADDR, | ||
7536 | (offset & MCPR_NVM_ADDR_NVM_ADDR_VALUE)); | ||
7537 | |||
7538 | /* issue the write command */ | ||
7539 | REG_WR(bp, MCP_REG_MCPR_NVM_COMMAND, cmd_flags); | ||
7540 | |||
7541 | /* adjust timeout for emulation/FPGA */ | ||
7542 | count = NVRAM_TIMEOUT_COUNT; | ||
7543 | if (CHIP_REV_IS_SLOW(bp)) | ||
7544 | count *= 100; | ||
7545 | |||
7546 | /* wait for completion */ | ||
7547 | rc = -EBUSY; | ||
7548 | for (i = 0; i < count; i++) { | ||
7549 | udelay(5); | ||
7550 | val = REG_RD(bp, MCP_REG_MCPR_NVM_COMMAND); | ||
7551 | if (val & MCPR_NVM_COMMAND_DONE) { | ||
7552 | rc = 0; | ||
7553 | break; | ||
7554 | } | ||
7555 | } | ||
7556 | |||
7557 | return rc; | ||
7558 | } | ||
7559 | |||
7560 | #define BYTE_OFFSET(offset) (8 * (offset & 0x03)) | ||
7561 | |||
7562 | static int bnx2x_nvram_write1(struct bnx2x *bp, u32 offset, u8 *data_buf, | ||
7563 | int buf_size) | ||
7564 | { | ||
7565 | int rc; | ||
7566 | u32 cmd_flags; | ||
7567 | u32 align_offset; | ||
7568 | u32 val; | ||
7569 | |||
7570 | if (offset + buf_size > bp->flash_size) { | ||
7571 | DP(NETIF_MSG_NVM, "Invalid paramter: offset (0x%x) +" | ||
7572 | " buf_size (0x%x) > flash_size (0x%x)\n", | ||
7573 | offset, buf_size, bp->flash_size); | ||
7574 | return -EINVAL; | ||
7575 | } | ||
7576 | |||
7577 | /* request access to nvram interface */ | ||
7578 | rc = bnx2x_acquire_nvram_lock(bp); | ||
7579 | if (rc) | ||
7580 | return rc; | ||
7581 | |||
7582 | /* enable access to nvram interface */ | ||
7583 | bnx2x_enable_nvram_access(bp); | ||
7584 | |||
7585 | cmd_flags = (MCPR_NVM_COMMAND_FIRST | MCPR_NVM_COMMAND_LAST); | ||
7586 | align_offset = (offset & ~0x03); | ||
7587 | rc = bnx2x_nvram_read_dword(bp, align_offset, &val, cmd_flags); | ||
7588 | |||
7589 | if (rc == 0) { | ||
7590 | val &= ~(0xff << BYTE_OFFSET(offset)); | ||
7591 | val |= (*data_buf << BYTE_OFFSET(offset)); | ||
7592 | |||
7593 | /* nvram data is returned as an array of bytes | ||
7594 | * convert it back to cpu order */ | ||
7595 | val = be32_to_cpu(val); | ||
7596 | |||
7597 | DP(NETIF_MSG_NVM, "val 0x%08x\n", val); | ||
7598 | |||
7599 | rc = bnx2x_nvram_write_dword(bp, align_offset, val, | ||
7600 | cmd_flags); | ||
7601 | } | ||
7602 | |||
7603 | /* disable access to nvram interface */ | ||
7604 | bnx2x_disable_nvram_access(bp); | ||
7605 | bnx2x_release_nvram_lock(bp); | ||
7606 | |||
7607 | return rc; | ||
7608 | } | ||
7609 | |||
7610 | static int bnx2x_nvram_write(struct bnx2x *bp, u32 offset, u8 *data_buf, | ||
7611 | int buf_size) | ||
7612 | { | ||
7613 | int rc; | ||
7614 | u32 cmd_flags; | ||
7615 | u32 val; | ||
7616 | u32 written_so_far; | ||
7617 | |||
7618 | if (buf_size == 1) { /* ethtool */ | ||
7619 | return bnx2x_nvram_write1(bp, offset, data_buf, buf_size); | ||
7620 | } | ||
7621 | |||
7622 | if ((offset & 0x03) || (buf_size & 0x03) || (buf_size == 0)) { | ||
7623 | DP(NETIF_MSG_NVM, | ||
7624 | "Invalid paramter: offset 0x%x buf_size 0x%x\n", | ||
7625 | offset, buf_size); | ||
7626 | return -EINVAL; | ||
7627 | } | ||
7628 | |||
7629 | if (offset + buf_size > bp->flash_size) { | ||
7630 | DP(NETIF_MSG_NVM, "Invalid paramter: offset (0x%x) +" | ||
7631 | " buf_size (0x%x) > flash_size (0x%x)\n", | ||
7632 | offset, buf_size, bp->flash_size); | ||
7633 | return -EINVAL; | ||
7634 | } | ||
7635 | |||
7636 | /* request access to nvram interface */ | ||
7637 | rc = bnx2x_acquire_nvram_lock(bp); | ||
7638 | if (rc) | ||
7639 | return rc; | ||
7640 | |||
7641 | /* enable access to nvram interface */ | ||
7642 | bnx2x_enable_nvram_access(bp); | ||
7643 | |||
7644 | written_so_far = 0; | ||
7645 | cmd_flags = MCPR_NVM_COMMAND_FIRST; | ||
7646 | while ((written_so_far < buf_size) && (rc == 0)) { | ||
7647 | if (written_so_far == (buf_size - sizeof(u32))) | ||
7648 | cmd_flags |= MCPR_NVM_COMMAND_LAST; | ||
7649 | else if (((offset + 4) % NVRAM_PAGE_SIZE) == 0) | ||
7650 | cmd_flags |= MCPR_NVM_COMMAND_LAST; | ||
7651 | else if ((offset % NVRAM_PAGE_SIZE) == 0) | ||
7652 | cmd_flags |= MCPR_NVM_COMMAND_FIRST; | ||
7653 | |||
7654 | memcpy(&val, data_buf, 4); | ||
7655 | DP(NETIF_MSG_NVM, "val 0x%08x\n", val); | ||
7656 | |||
7657 | rc = bnx2x_nvram_write_dword(bp, offset, val, cmd_flags); | ||
7658 | |||
7659 | /* advance to the next dword */ | ||
7660 | offset += sizeof(u32); | ||
7661 | data_buf += sizeof(u32); | ||
7662 | written_so_far += sizeof(u32); | ||
7663 | cmd_flags = 0; | ||
7664 | } | ||
7665 | |||
7666 | /* disable access to nvram interface */ | ||
7667 | bnx2x_disable_nvram_access(bp); | ||
7668 | bnx2x_release_nvram_lock(bp); | ||
7669 | |||
7670 | return rc; | ||
7671 | } | ||
7672 | |||
7673 | static int bnx2x_set_eeprom(struct net_device *dev, | ||
7674 | struct ethtool_eeprom *eeprom, u8 *eebuf) | ||
7675 | { | ||
7676 | struct bnx2x *bp = netdev_priv(dev); | ||
7677 | int rc; | ||
7678 | |||
7679 | DP(NETIF_MSG_NVM, "ethtool_eeprom: cmd %d\n" | ||
7680 | DP_LEVEL " magic 0x%x offset 0x%x (%d) len 0x%x (%d)\n", | ||
7681 | eeprom->cmd, eeprom->magic, eeprom->offset, eeprom->offset, | ||
7682 | eeprom->len, eeprom->len); | ||
7683 | |||
7684 | /* parameters already validated in ethtool_set_eeprom */ | ||
7685 | |||
7686 | rc = bnx2x_nvram_write(bp, eeprom->offset, eebuf, eeprom->len); | ||
7687 | |||
7688 | return rc; | ||
7689 | } | ||
7690 | |||
7691 | static int bnx2x_get_coalesce(struct net_device *dev, | ||
7692 | struct ethtool_coalesce *coal) | ||
7693 | { | ||
7694 | struct bnx2x *bp = netdev_priv(dev); | ||
7695 | |||
7696 | memset(coal, 0, sizeof(struct ethtool_coalesce)); | ||
7697 | |||
7698 | coal->rx_coalesce_usecs = bp->rx_ticks; | ||
7699 | coal->tx_coalesce_usecs = bp->tx_ticks; | ||
7700 | coal->stats_block_coalesce_usecs = bp->stats_ticks; | ||
7701 | |||
7702 | return 0; | ||
7703 | } | ||
7704 | |||
7705 | static int bnx2x_set_coalesce(struct net_device *dev, | ||
7706 | struct ethtool_coalesce *coal) | ||
7707 | { | ||
7708 | struct bnx2x *bp = netdev_priv(dev); | ||
7709 | |||
7710 | bp->rx_ticks = (u16) coal->rx_coalesce_usecs; | ||
7711 | if (bp->rx_ticks > 3000) | ||
7712 | bp->rx_ticks = 3000; | ||
7713 | |||
7714 | bp->tx_ticks = (u16) coal->tx_coalesce_usecs; | ||
7715 | if (bp->tx_ticks > 0x3000) | ||
7716 | bp->tx_ticks = 0x3000; | ||
7717 | |||
7718 | bp->stats_ticks = coal->stats_block_coalesce_usecs; | ||
7719 | if (bp->stats_ticks > 0xffff00) | ||
7720 | bp->stats_ticks = 0xffff00; | ||
7721 | bp->stats_ticks &= 0xffff00; | ||
7722 | |||
7723 | if (netif_running(bp->dev)) | ||
7724 | bnx2x_update_coalesce(bp); | ||
7725 | |||
7726 | return 0; | ||
7727 | } | ||
7728 | |||
7729 | static void bnx2x_get_ringparam(struct net_device *dev, | ||
7730 | struct ethtool_ringparam *ering) | ||
7731 | { | ||
7732 | struct bnx2x *bp = netdev_priv(dev); | ||
7733 | |||
7734 | ering->rx_max_pending = MAX_RX_AVAIL; | ||
7735 | ering->rx_mini_max_pending = 0; | ||
7736 | ering->rx_jumbo_max_pending = 0; | ||
7737 | |||
7738 | ering->rx_pending = bp->rx_ring_size; | ||
7739 | ering->rx_mini_pending = 0; | ||
7740 | ering->rx_jumbo_pending = 0; | ||
7741 | |||
7742 | ering->tx_max_pending = MAX_TX_AVAIL; | ||
7743 | ering->tx_pending = bp->tx_ring_size; | ||
7744 | } | ||
7745 | |||
7746 | static int bnx2x_set_ringparam(struct net_device *dev, | ||
7747 | struct ethtool_ringparam *ering) | ||
7748 | { | ||
7749 | struct bnx2x *bp = netdev_priv(dev); | ||
7750 | |||
7751 | if ((ering->rx_pending > MAX_RX_AVAIL) || | ||
7752 | (ering->tx_pending > MAX_TX_AVAIL) || | ||
7753 | (ering->tx_pending <= MAX_SKB_FRAGS + 4)) | ||
7754 | return -EINVAL; | ||
7755 | |||
7756 | bp->rx_ring_size = ering->rx_pending; | ||
7757 | bp->tx_ring_size = ering->tx_pending; | ||
7758 | |||
7759 | if (netif_running(bp->dev)) { | ||
7760 | bnx2x_nic_unload(bp, 0); | ||
7761 | bnx2x_nic_load(bp, 0); | ||
7762 | } | ||
7763 | |||
7764 | return 0; | ||
7765 | } | ||
7766 | |||
7767 | static void bnx2x_get_pauseparam(struct net_device *dev, | ||
7768 | struct ethtool_pauseparam *epause) | ||
7769 | { | ||
7770 | struct bnx2x *bp = netdev_priv(dev); | ||
7771 | |||
7772 | epause->autoneg = | ||
7773 | ((bp->req_autoneg & AUTONEG_FLOW_CTRL) == AUTONEG_FLOW_CTRL); | ||
7774 | epause->rx_pause = ((bp->flow_ctrl & FLOW_CTRL_RX) == FLOW_CTRL_RX); | ||
7775 | epause->tx_pause = ((bp->flow_ctrl & FLOW_CTRL_TX) == FLOW_CTRL_TX); | ||
7776 | |||
7777 | DP(NETIF_MSG_LINK, "ethtool_pauseparam: cmd %d\n" | ||
7778 | DP_LEVEL " autoneg %d rx_pause %d tx_pause %d\n", | ||
7779 | epause->cmd, epause->autoneg, epause->rx_pause, epause->tx_pause); | ||
7780 | } | ||
7781 | |||
7782 | static int bnx2x_set_pauseparam(struct net_device *dev, | ||
7783 | struct ethtool_pauseparam *epause) | ||
7784 | { | ||
7785 | struct bnx2x *bp = netdev_priv(dev); | ||
7786 | |||
7787 | DP(NETIF_MSG_LINK, "ethtool_pauseparam: cmd %d\n" | ||
7788 | DP_LEVEL " autoneg %d rx_pause %d tx_pause %d\n", | ||
7789 | epause->cmd, epause->autoneg, epause->rx_pause, epause->tx_pause); | ||
7790 | |||
7791 | bp->req_flow_ctrl = FLOW_CTRL_AUTO; | ||
7792 | if (epause->autoneg) { | ||
7793 | bp->req_autoneg |= AUTONEG_FLOW_CTRL; | ||
7794 | if (bp->dev->mtu <= 4500) { | ||
7795 | bp->pause_mode = PAUSE_BOTH; | ||
7796 | bp->advertising |= (ADVERTISED_Pause | | ||
7797 | ADVERTISED_Asym_Pause); | ||
7798 | } else { | ||
7799 | bp->pause_mode = PAUSE_ASYMMETRIC; | ||
7800 | bp->advertising |= ADVERTISED_Asym_Pause; | ||
7801 | } | ||
7802 | |||
7803 | } else { | ||
7804 | bp->req_autoneg &= ~AUTONEG_FLOW_CTRL; | ||
7805 | |||
7806 | if (epause->rx_pause) | ||
7807 | bp->req_flow_ctrl |= FLOW_CTRL_RX; | ||
7808 | if (epause->tx_pause) | ||
7809 | bp->req_flow_ctrl |= FLOW_CTRL_TX; | ||
7810 | |||
7811 | switch (bp->req_flow_ctrl) { | ||
7812 | case FLOW_CTRL_AUTO: | ||
7813 | bp->req_flow_ctrl = FLOW_CTRL_NONE; | ||
7814 | bp->pause_mode = PAUSE_NONE; | ||
7815 | bp->advertising &= ~(ADVERTISED_Pause | | ||
7816 | ADVERTISED_Asym_Pause); | ||
7817 | break; | ||
7818 | |||
7819 | case FLOW_CTRL_TX: | ||
7820 | bp->pause_mode = PAUSE_ASYMMETRIC; | ||
7821 | bp->advertising |= ADVERTISED_Asym_Pause; | ||
7822 | break; | ||
7823 | |||
7824 | case FLOW_CTRL_RX: | ||
7825 | case FLOW_CTRL_BOTH: | ||
7826 | bp->pause_mode = PAUSE_BOTH; | ||
7827 | bp->advertising |= (ADVERTISED_Pause | | ||
7828 | ADVERTISED_Asym_Pause); | ||
7829 | break; | ||
7830 | } | ||
7831 | } | ||
7832 | |||
7833 | DP(NETIF_MSG_LINK, "req_autoneg 0x%x req_flow_ctrl 0x%x\n" | ||
7834 | DP_LEVEL " pause_mode %d advertising 0x%x\n", | ||
7835 | bp->req_autoneg, bp->req_flow_ctrl, bp->pause_mode, | ||
7836 | bp->advertising); | ||
7837 | |||
7838 | bnx2x_stop_stats(bp); | ||
7839 | bnx2x_link_initialize(bp); | ||
7840 | |||
7841 | return 0; | ||
7842 | } | ||
7843 | |||
7844 | static u32 bnx2x_get_rx_csum(struct net_device *dev) | ||
7845 | { | ||
7846 | struct bnx2x *bp = netdev_priv(dev); | ||
7847 | |||
7848 | return bp->rx_csum; | ||
7849 | } | ||
7850 | |||
7851 | static int bnx2x_set_rx_csum(struct net_device *dev, u32 data) | ||
7852 | { | ||
7853 | struct bnx2x *bp = netdev_priv(dev); | ||
7854 | |||
7855 | bp->rx_csum = data; | ||
7856 | return 0; | ||
7857 | } | ||
7858 | |||
7859 | static int bnx2x_set_tso(struct net_device *dev, u32 data) | ||
7860 | { | ||
7861 | if (data) | ||
7862 | dev->features |= (NETIF_F_TSO | NETIF_F_TSO_ECN); | ||
7863 | else | ||
7864 | dev->features &= ~(NETIF_F_TSO | NETIF_F_TSO_ECN); | ||
7865 | return 0; | ||
7866 | } | ||
7867 | |||
7868 | static struct { | ||
7869 | char string[ETH_GSTRING_LEN]; | ||
7870 | } bnx2x_tests_str_arr[BNX2X_NUM_TESTS] = { | ||
7871 | { "MC Errors (online)" } | ||
7872 | }; | ||
7873 | |||
7874 | static int bnx2x_self_test_count(struct net_device *dev) | ||
7875 | { | ||
7876 | return BNX2X_NUM_TESTS; | ||
7877 | } | ||
7878 | |||
7879 | static void bnx2x_self_test(struct net_device *dev, | ||
7880 | struct ethtool_test *etest, u64 *buf) | ||
7881 | { | ||
7882 | struct bnx2x *bp = netdev_priv(dev); | ||
7883 | int stats_state; | ||
7884 | |||
7885 | memset(buf, 0, sizeof(u64) * BNX2X_NUM_TESTS); | ||
7886 | |||
7887 | if (bp->state != BNX2X_STATE_OPEN) { | ||
7888 | DP(NETIF_MSG_PROBE, "state is %x, returning\n", bp->state); | ||
7889 | return; | ||
7890 | } | ||
7891 | |||
7892 | stats_state = bp->stats_state; | ||
7893 | bnx2x_stop_stats(bp); | ||
7894 | |||
7895 | if (bnx2x_mc_assert(bp) != 0) { | ||
7896 | buf[0] = 1; | ||
7897 | etest->flags |= ETH_TEST_FL_FAILED; | ||
7898 | } | ||
7899 | |||
7900 | #ifdef BNX2X_EXTRA_DEBUG | ||
7901 | bnx2x_panic_dump(bp); | ||
7902 | #endif | ||
7903 | bp->stats_state = stats_state; | ||
7904 | } | ||
7905 | |||
7906 | static struct { | ||
7907 | char string[ETH_GSTRING_LEN]; | ||
7908 | } bnx2x_stats_str_arr[BNX2X_NUM_STATS] = { | ||
7909 | { "rx_bytes"}, /* 0 */ | ||
7910 | { "rx_error_bytes"}, /* 1 */ | ||
7911 | { "tx_bytes"}, /* 2 */ | ||
7912 | { "tx_error_bytes"}, /* 3 */ | ||
7913 | { "rx_ucast_packets"}, /* 4 */ | ||
7914 | { "rx_mcast_packets"}, /* 5 */ | ||
7915 | { "rx_bcast_packets"}, /* 6 */ | ||
7916 | { "tx_ucast_packets"}, /* 7 */ | ||
7917 | { "tx_mcast_packets"}, /* 8 */ | ||
7918 | { "tx_bcast_packets"}, /* 9 */ | ||
7919 | { "tx_mac_errors"}, /* 10 */ | ||
7920 | { "tx_carrier_errors"}, /* 11 */ | ||
7921 | { "rx_crc_errors"}, /* 12 */ | ||
7922 | { "rx_align_errors"}, /* 13 */ | ||
7923 | { "tx_single_collisions"}, /* 14 */ | ||
7924 | { "tx_multi_collisions"}, /* 15 */ | ||
7925 | { "tx_deferred"}, /* 16 */ | ||
7926 | { "tx_excess_collisions"}, /* 17 */ | ||
7927 | { "tx_late_collisions"}, /* 18 */ | ||
7928 | { "tx_total_collisions"}, /* 19 */ | ||
7929 | { "rx_fragments"}, /* 20 */ | ||
7930 | { "rx_jabbers"}, /* 21 */ | ||
7931 | { "rx_undersize_packets"}, /* 22 */ | ||
7932 | { "rx_oversize_packets"}, /* 23 */ | ||
7933 | { "rx_xon_frames"}, /* 24 */ | ||
7934 | { "rx_xoff_frames"}, /* 25 */ | ||
7935 | { "tx_xon_frames"}, /* 26 */ | ||
7936 | { "tx_xoff_frames"}, /* 27 */ | ||
7937 | { "rx_mac_ctrl_frames"}, /* 28 */ | ||
7938 | { "rx_filtered_packets"}, /* 29 */ | ||
7939 | { "rx_discards"}, /* 30 */ | ||
7940 | }; | ||
7941 | |||
7942 | #define STATS_OFFSET32(offset_name) \ | ||
7943 | (offsetof(struct bnx2x_eth_stats, offset_name) / 4) | ||
7944 | |||
7945 | static unsigned long bnx2x_stats_offset_arr[BNX2X_NUM_STATS] = { | ||
7946 | STATS_OFFSET32(total_bytes_received_hi), /* 0 */ | ||
7947 | STATS_OFFSET32(stat_IfHCInBadOctets_hi), /* 1 */ | ||
7948 | STATS_OFFSET32(total_bytes_transmitted_hi), /* 2 */ | ||
7949 | STATS_OFFSET32(stat_IfHCOutBadOctets_hi), /* 3 */ | ||
7950 | STATS_OFFSET32(total_unicast_packets_received_hi), /* 4 */ | ||
7951 | STATS_OFFSET32(total_multicast_packets_received_hi), /* 5 */ | ||
7952 | STATS_OFFSET32(total_broadcast_packets_received_hi), /* 6 */ | ||
7953 | STATS_OFFSET32(total_unicast_packets_transmitted_hi), /* 7 */ | ||
7954 | STATS_OFFSET32(total_multicast_packets_transmitted_hi), /* 8 */ | ||
7955 | STATS_OFFSET32(total_broadcast_packets_transmitted_hi), /* 9 */ | ||
7956 | STATS_OFFSET32(stat_Dot3statsInternalMacTransmitErrors), /* 10 */ | ||
7957 | STATS_OFFSET32(stat_Dot3StatsCarrierSenseErrors), /* 11 */ | ||
7958 | STATS_OFFSET32(crc_receive_errors), /* 12 */ | ||
7959 | STATS_OFFSET32(alignment_errors), /* 13 */ | ||
7960 | STATS_OFFSET32(single_collision_transmit_frames), /* 14 */ | ||
7961 | STATS_OFFSET32(multiple_collision_transmit_frames), /* 15 */ | ||
7962 | STATS_OFFSET32(stat_Dot3StatsDeferredTransmissions), /* 16 */ | ||
7963 | STATS_OFFSET32(excessive_collision_frames), /* 17 */ | ||
7964 | STATS_OFFSET32(late_collision_frames), /* 18 */ | ||
7965 | STATS_OFFSET32(number_of_bugs_found_in_stats_spec), /* 19 */ | ||
7966 | STATS_OFFSET32(runt_packets_received), /* 20 */ | ||
7967 | STATS_OFFSET32(jabber_packets_received), /* 21 */ | ||
7968 | STATS_OFFSET32(error_runt_packets_received), /* 22 */ | ||
7969 | STATS_OFFSET32(error_jabber_packets_received), /* 23 */ | ||
7970 | STATS_OFFSET32(pause_xon_frames_received), /* 24 */ | ||
7971 | STATS_OFFSET32(pause_xoff_frames_received), /* 25 */ | ||
7972 | STATS_OFFSET32(pause_xon_frames_transmitted), /* 26 */ | ||
7973 | STATS_OFFSET32(pause_xoff_frames_transmitted), /* 27 */ | ||
7974 | STATS_OFFSET32(control_frames_received), /* 28 */ | ||
7975 | STATS_OFFSET32(mac_filter_discard), /* 29 */ | ||
7976 | STATS_OFFSET32(no_buff_discard), /* 30 */ | ||
7977 | }; | ||
7978 | |||
7979 | static u8 bnx2x_stats_len_arr[BNX2X_NUM_STATS] = { | ||
7980 | 8, 0, 8, 0, 8, 8, 8, 8, 8, 8, | ||
7981 | 4, 0, 4, 4, 4, 4, 4, 4, 4, 4, | ||
7982 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | ||
7983 | 4, | ||
7984 | }; | ||
7985 | |||
7986 | static void bnx2x_get_strings(struct net_device *dev, u32 stringset, u8 *buf) | ||
7987 | { | ||
7988 | switch (stringset) { | ||
7989 | case ETH_SS_STATS: | ||
7990 | memcpy(buf, bnx2x_stats_str_arr, sizeof(bnx2x_stats_str_arr)); | ||
7991 | break; | ||
7992 | |||
7993 | case ETH_SS_TEST: | ||
7994 | memcpy(buf, bnx2x_tests_str_arr, sizeof(bnx2x_tests_str_arr)); | ||
7995 | break; | ||
7996 | } | ||
7997 | } | ||
7998 | |||
7999 | static int bnx2x_get_stats_count(struct net_device *dev) | ||
8000 | { | ||
8001 | return BNX2X_NUM_STATS; | ||
8002 | } | ||
8003 | |||
8004 | static void bnx2x_get_ethtool_stats(struct net_device *dev, | ||
8005 | struct ethtool_stats *stats, u64 *buf) | ||
8006 | { | ||
8007 | struct bnx2x *bp = netdev_priv(dev); | ||
8008 | u32 *hw_stats = (u32 *)bnx2x_sp_check(bp, eth_stats); | ||
8009 | int i; | ||
8010 | |||
8011 | for (i = 0; i < BNX2X_NUM_STATS; i++) { | ||
8012 | if (bnx2x_stats_len_arr[i] == 0) { | ||
8013 | /* skip this counter */ | ||
8014 | buf[i] = 0; | ||
8015 | continue; | ||
8016 | } | ||
8017 | if (!hw_stats) { | ||
8018 | buf[i] = 0; | ||
8019 | continue; | ||
8020 | } | ||
8021 | if (bnx2x_stats_len_arr[i] == 4) { | ||
8022 | /* 4-byte counter */ | ||
8023 | buf[i] = (u64) *(hw_stats + bnx2x_stats_offset_arr[i]); | ||
8024 | continue; | ||
8025 | } | ||
8026 | /* 8-byte counter */ | ||
8027 | buf[i] = HILO_U64(*(hw_stats + bnx2x_stats_offset_arr[i]), | ||
8028 | *(hw_stats + bnx2x_stats_offset_arr[i] + 1)); | ||
8029 | } | ||
8030 | } | ||
8031 | |||
8032 | static int bnx2x_phys_id(struct net_device *dev, u32 data) | ||
8033 | { | ||
8034 | struct bnx2x *bp = netdev_priv(dev); | ||
8035 | int i; | ||
8036 | |||
8037 | if (data == 0) | ||
8038 | data = 2; | ||
8039 | |||
8040 | for (i = 0; i < (data * 2); i++) { | ||
8041 | if ((i % 2) == 0) { | ||
8042 | bnx2x_leds_set(bp, SPEED_1000); | ||
8043 | } else { | ||
8044 | bnx2x_leds_unset(bp); | ||
8045 | } | ||
8046 | msleep_interruptible(500); | ||
8047 | if (signal_pending(current)) | ||
8048 | break; | ||
8049 | } | ||
8050 | |||
8051 | if (bp->link_up) | ||
8052 | bnx2x_leds_set(bp, bp->line_speed); | ||
8053 | |||
8054 | return 0; | ||
8055 | } | ||
8056 | |||
8057 | static struct ethtool_ops bnx2x_ethtool_ops = { | ||
8058 | .get_settings = bnx2x_get_settings, | ||
8059 | .set_settings = bnx2x_set_settings, | ||
8060 | .get_drvinfo = bnx2x_get_drvinfo, | ||
8061 | .get_wol = bnx2x_get_wol, | ||
8062 | .set_wol = bnx2x_set_wol, | ||
8063 | .get_msglevel = bnx2x_get_msglevel, | ||
8064 | .set_msglevel = bnx2x_set_msglevel, | ||
8065 | .nway_reset = bnx2x_nway_reset, | ||
8066 | .get_link = ethtool_op_get_link, | ||
8067 | .get_eeprom_len = bnx2x_get_eeprom_len, | ||
8068 | .get_eeprom = bnx2x_get_eeprom, | ||
8069 | .set_eeprom = bnx2x_set_eeprom, | ||
8070 | .get_coalesce = bnx2x_get_coalesce, | ||
8071 | .set_coalesce = bnx2x_set_coalesce, | ||
8072 | .get_ringparam = bnx2x_get_ringparam, | ||
8073 | .set_ringparam = bnx2x_set_ringparam, | ||
8074 | .get_pauseparam = bnx2x_get_pauseparam, | ||
8075 | .set_pauseparam = bnx2x_set_pauseparam, | ||
8076 | .get_rx_csum = bnx2x_get_rx_csum, | ||
8077 | .set_rx_csum = bnx2x_set_rx_csum, | ||
8078 | .get_tx_csum = ethtool_op_get_tx_csum, | ||
8079 | .set_tx_csum = ethtool_op_set_tx_csum, | ||
8080 | .get_sg = ethtool_op_get_sg, | ||
8081 | .set_sg = ethtool_op_set_sg, | ||
8082 | .get_tso = ethtool_op_get_tso, | ||
8083 | .set_tso = bnx2x_set_tso, | ||
8084 | .self_test_count = bnx2x_self_test_count, | ||
8085 | .self_test = bnx2x_self_test, | ||
8086 | .get_strings = bnx2x_get_strings, | ||
8087 | .phys_id = bnx2x_phys_id, | ||
8088 | .get_stats_count = bnx2x_get_stats_count, | ||
8089 | .get_ethtool_stats = bnx2x_get_ethtool_stats | ||
8090 | }; | ||
8091 | |||
8092 | /* end of ethtool_ops */ | ||
8093 | |||
8094 | /**************************************************************************** | ||
8095 | * General service functions | ||
8096 | ****************************************************************************/ | ||
8097 | |||
8098 | static int bnx2x_set_power_state(struct bnx2x *bp, pci_power_t state) | ||
8099 | { | ||
8100 | u16 pmcsr; | ||
8101 | |||
8102 | pci_read_config_word(bp->pdev, bp->pm_cap + PCI_PM_CTRL, &pmcsr); | ||
8103 | |||
8104 | switch (state) { | ||
8105 | case PCI_D0: | ||
8106 | pci_write_config_word(bp->pdev, | ||
8107 | bp->pm_cap + PCI_PM_CTRL, | ||
8108 | ((pmcsr & ~PCI_PM_CTRL_STATE_MASK) | | ||
8109 | PCI_PM_CTRL_PME_STATUS)); | ||
8110 | |||
8111 | if (pmcsr & PCI_PM_CTRL_STATE_MASK) | ||
8112 | /* delay required during transition out of D3hot */ | ||
8113 | msleep(20); | ||
8114 | break; | ||
8115 | |||
8116 | case PCI_D3hot: | ||
8117 | pmcsr &= ~PCI_PM_CTRL_STATE_MASK; | ||
8118 | pmcsr |= 3; | ||
8119 | |||
8120 | if (bp->wol) | ||
8121 | pmcsr |= PCI_PM_CTRL_PME_ENABLE; | ||
8122 | |||
8123 | pci_write_config_word(bp->pdev, bp->pm_cap + PCI_PM_CTRL, | ||
8124 | pmcsr); | ||
8125 | |||
8126 | /* No more memory access after this point until | ||
8127 | * device is brought back to D0. | ||
8128 | */ | ||
8129 | break; | ||
8130 | |||
8131 | default: | ||
8132 | return -EINVAL; | ||
8133 | } | ||
8134 | return 0; | ||
8135 | } | ||
8136 | |||
8137 | /* | ||
8138 | * net_device service functions | ||
8139 | */ | ||
8140 | |||
8141 | /* Called with rtnl_lock from vlan functions and also netif_tx_lock | ||
8142 | * from set_multicast. | ||
8143 | */ | ||
8144 | static void bnx2x_set_rx_mode(struct net_device *dev) | ||
8145 | { | ||
8146 | struct bnx2x *bp = netdev_priv(dev); | ||
8147 | u32 rx_mode = BNX2X_RX_MODE_NORMAL; | ||
8148 | |||
8149 | DP(NETIF_MSG_IFUP, "called dev->flags = %x\n", dev->flags); | ||
8150 | |||
8151 | if (dev->flags & IFF_PROMISC) | ||
8152 | rx_mode = BNX2X_RX_MODE_PROMISC; | ||
8153 | |||
8154 | else if ((dev->flags & IFF_ALLMULTI) || | ||
8155 | (dev->mc_count > BNX2X_MAX_MULTICAST)) | ||
8156 | rx_mode = BNX2X_RX_MODE_ALLMULTI; | ||
8157 | |||
8158 | else { /* some multicasts */ | ||
8159 | int i, old, offset; | ||
8160 | struct dev_mc_list *mclist; | ||
8161 | struct mac_configuration_cmd *config = | ||
8162 | bnx2x_sp(bp, mcast_config); | ||
8163 | |||
8164 | for (i = 0, mclist = dev->mc_list; | ||
8165 | mclist && (i < dev->mc_count); | ||
8166 | i++, mclist = mclist->next) { | ||
8167 | |||
8168 | config->config_table[i].cam_entry.msb_mac_addr = | ||
8169 | swab16(*(u16 *)&mclist->dmi_addr[0]); | ||
8170 | config->config_table[i].cam_entry.middle_mac_addr = | ||
8171 | swab16(*(u16 *)&mclist->dmi_addr[2]); | ||
8172 | config->config_table[i].cam_entry.lsb_mac_addr = | ||
8173 | swab16(*(u16 *)&mclist->dmi_addr[4]); | ||
8174 | config->config_table[i].cam_entry.flags = | ||
8175 | cpu_to_le16(bp->port); | ||
8176 | config->config_table[i].target_table_entry.flags = 0; | ||
8177 | config->config_table[i].target_table_entry. | ||
8178 | client_id = 0; | ||
8179 | config->config_table[i].target_table_entry. | ||
8180 | vlan_id = 0; | ||
8181 | |||
8182 | DP(NETIF_MSG_IFUP, | ||
8183 | "setting MCAST[%d] (%04x:%04x:%04x)\n", | ||
8184 | i, config->config_table[i].cam_entry.msb_mac_addr, | ||
8185 | config->config_table[i].cam_entry.middle_mac_addr, | ||
8186 | config->config_table[i].cam_entry.lsb_mac_addr); | ||
8187 | } | ||
8188 | old = config->hdr.length_6b; | ||
8189 | if (old > i) { | ||
8190 | for (; i < old; i++) { | ||
8191 | if (CAM_IS_INVALID(config->config_table[i])) { | ||
8192 | i--; /* already invalidated */ | ||
8193 | break; | ||
8194 | } | ||
8195 | /* invalidate */ | ||
8196 | CAM_INVALIDATE(config->config_table[i]); | ||
8197 | } | ||
8198 | } | ||
8199 | |||
8200 | if (CHIP_REV_IS_SLOW(bp)) | ||
8201 | offset = BNX2X_MAX_EMUL_MULTI*(1 + bp->port); | ||
8202 | else | ||
8203 | offset = BNX2X_MAX_MULTICAST*(1 + bp->port); | ||
8204 | |||
8205 | config->hdr.length_6b = i; | ||
8206 | config->hdr.offset = offset; | ||
8207 | config->hdr.reserved0 = 0; | ||
8208 | config->hdr.reserved1 = 0; | ||
8209 | |||
8210 | bnx2x_sp_post(bp, RAMROD_CMD_ID_ETH_SET_MAC, 0, | ||
8211 | U64_HI(bnx2x_sp_mapping(bp, mcast_config)), | ||
8212 | U64_LO(bnx2x_sp_mapping(bp, mcast_config)), 0); | ||
8213 | } | ||
8214 | |||
8215 | bp->rx_mode = rx_mode; | ||
8216 | bnx2x_set_storm_rx_mode(bp); | ||
8217 | } | ||
8218 | |||
8219 | static int bnx2x_poll(struct napi_struct *napi, int budget) | ||
8220 | { | ||
8221 | struct bnx2x_fastpath *fp = container_of(napi, struct bnx2x_fastpath, | ||
8222 | napi); | ||
8223 | struct bnx2x *bp = fp->bp; | ||
8224 | int work_done = 0; | ||
8225 | |||
8226 | #ifdef BNX2X_STOP_ON_ERROR | ||
8227 | if (unlikely(bp->panic)) | ||
8228 | goto out_panic; | ||
8229 | #endif | ||
8230 | |||
8231 | prefetch(fp->tx_buf_ring[TX_BD(fp->tx_pkt_cons)].skb); | ||
8232 | prefetch(fp->rx_buf_ring[RX_BD(fp->rx_bd_cons)].skb); | ||
8233 | prefetch((char *)(fp->rx_buf_ring[RX_BD(fp->rx_bd_cons)].skb) + 256); | ||
8234 | |||
8235 | bnx2x_update_fpsb_idx(fp); | ||
8236 | |||
8237 | if (le16_to_cpu(*fp->tx_cons_sb) != fp->tx_pkt_cons) | ||
8238 | bnx2x_tx_int(fp, budget); | ||
8239 | |||
8240 | |||
8241 | if (le16_to_cpu(*fp->rx_cons_sb) != fp->rx_comp_cons) | ||
8242 | work_done = bnx2x_rx_int(fp, budget); | ||
8243 | |||
8244 | |||
8245 | rmb(); /* bnx2x_has_work() reads the status block */ | ||
8246 | |||
8247 | /* must not complete if we consumed full budget */ | ||
8248 | if ((work_done < budget) && !bnx2x_has_work(fp)) { | ||
8249 | |||
8250 | #ifdef BNX2X_STOP_ON_ERROR | ||
8251 | out_panic: | ||
8252 | #endif | ||
8253 | netif_rx_complete(bp->dev, napi); | ||
8254 | |||
8255 | bnx2x_ack_sb(bp, fp->index, USTORM_ID, | ||
8256 | le16_to_cpu(fp->fp_u_idx), IGU_INT_NOP, 1); | ||
8257 | bnx2x_ack_sb(bp, fp->index, CSTORM_ID, | ||
8258 | le16_to_cpu(fp->fp_c_idx), IGU_INT_ENABLE, 1); | ||
8259 | } | ||
8260 | |||
8261 | return work_done; | ||
8262 | } | ||
8263 | |||
8264 | /* Called with netif_tx_lock. | ||
8265 | * bnx2x_tx_int() runs without netif_tx_lock unless it needs to call | ||
8266 | * netif_wake_queue(). | ||
8267 | */ | ||
8268 | static int bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev) | ||
8269 | { | ||
8270 | struct bnx2x *bp = netdev_priv(dev); | ||
8271 | struct bnx2x_fastpath *fp; | ||
8272 | struct sw_tx_bd *tx_buf; | ||
8273 | struct eth_tx_bd *tx_bd; | ||
8274 | struct eth_tx_parse_bd *pbd = NULL; | ||
8275 | u16 pkt_prod, bd_prod; | ||
8276 | int nbd, fp_index = 0; | ||
8277 | dma_addr_t mapping; | ||
8278 | |||
8279 | #ifdef BNX2X_STOP_ON_ERROR | ||
8280 | if (unlikely(bp->panic)) | ||
8281 | return NETDEV_TX_BUSY; | ||
8282 | #endif | ||
8283 | |||
8284 | fp_index = smp_processor_id() % (bp->num_queues); | ||
8285 | |||
8286 | fp = &bp->fp[fp_index]; | ||
8287 | if (unlikely(bnx2x_tx_avail(bp->fp) < | ||
8288 | (skb_shinfo(skb)->nr_frags + 3))) { | ||
8289 | bp->slowpath->eth_stats.driver_xoff++, | ||
8290 | netif_stop_queue(dev); | ||
8291 | BNX2X_ERR("BUG! Tx ring full when queue awake!\n"); | ||
8292 | return NETDEV_TX_BUSY; | ||
8293 | } | ||
8294 | |||
8295 | /* | ||
8296 | This is a bit ugly. First we use one BD which we mark as start, | ||
8297 | then for TSO or xsum we have a parsing info BD, | ||
8298 | and only then we have the rest of the TSO bds. | ||
8299 | (don't forget to mark the last one as last, | ||
8300 | and to unmap only AFTER you write to the BD ...) | ||
8301 | I would like to thank DovH for this mess. | ||
8302 | */ | ||
8303 | |||
8304 | pkt_prod = fp->tx_pkt_prod++; | ||
8305 | bd_prod = fp->tx_bd_prod; | ||
8306 | bd_prod = TX_BD(bd_prod); | ||
8307 | |||
8308 | /* get a tx_buff and first bd */ | ||
8309 | tx_buf = &fp->tx_buf_ring[TX_BD(pkt_prod)]; | ||
8310 | tx_bd = &fp->tx_desc_ring[bd_prod]; | ||
8311 | |||
8312 | tx_bd->bd_flags.as_bitfield = ETH_TX_BD_FLAGS_START_BD; | ||
8313 | tx_bd->general_data = (UNICAST_ADDRESS << | ||
8314 | ETH_TX_BD_ETH_ADDR_TYPE_SHIFT); | ||
8315 | tx_bd->general_data |= 1; /* header nbd */ | ||
8316 | |||
8317 | /* remeber the first bd of the packet */ | ||
8318 | tx_buf->first_bd = bd_prod; | ||
8319 | |||
8320 | DP(NETIF_MSG_TX_QUEUED, | ||
8321 | "sending pkt %u @%p next_idx %u bd %u @%p\n", | ||
8322 | pkt_prod, tx_buf, fp->tx_pkt_prod, bd_prod, tx_bd); | ||
8323 | |||
8324 | if (skb->ip_summed == CHECKSUM_PARTIAL) { | ||
8325 | struct iphdr *iph = ip_hdr(skb); | ||
8326 | u8 len; | ||
8327 | |||
8328 | tx_bd->bd_flags.as_bitfield |= ETH_TX_BD_FLAGS_IP_CSUM; | ||
8329 | |||
8330 | /* turn on parsing and get a bd */ | ||
8331 | bd_prod = TX_BD(NEXT_TX_IDX(bd_prod)); | ||
8332 | pbd = (void *)&fp->tx_desc_ring[bd_prod]; | ||
8333 | len = ((u8 *)iph - (u8 *)skb->data) / 2; | ||
8334 | |||
8335 | /* for now NS flag is not used in Linux */ | ||
8336 | pbd->global_data = (len | | ||
8337 | ((skb->protocol == ETH_P_8021Q) << | ||
8338 | ETH_TX_PARSE_BD_LLC_SNAP_EN_SHIFT)); | ||
8339 | pbd->ip_hlen = ip_hdrlen(skb) / 2; | ||
8340 | pbd->total_hlen = cpu_to_le16(len + pbd->ip_hlen); | ||
8341 | if (iph->protocol == IPPROTO_TCP) { | ||
8342 | struct tcphdr *th = tcp_hdr(skb); | ||
8343 | |||
8344 | tx_bd->bd_flags.as_bitfield |= | ||
8345 | ETH_TX_BD_FLAGS_TCP_CSUM; | ||
8346 | pbd->tcp_flags = htonl(tcp_flag_word(skb)) & 0xFFFF; | ||
8347 | pbd->total_hlen += cpu_to_le16(tcp_hdrlen(skb) / 2); | ||
8348 | pbd->tcp_pseudo_csum = swab16(th->check); | ||
8349 | |||
8350 | } else if (iph->protocol == IPPROTO_UDP) { | ||
8351 | struct udphdr *uh = udp_hdr(skb); | ||
8352 | |||
8353 | tx_bd->bd_flags.as_bitfield |= | ||
8354 | ETH_TX_BD_FLAGS_TCP_CSUM; | ||
8355 | pbd->total_hlen += cpu_to_le16(4); | ||
8356 | pbd->global_data |= ETH_TX_PARSE_BD_CS_ANY_FLG; | ||
8357 | pbd->cs_offset = 5; /* 10 >> 1 */ | ||
8358 | pbd->tcp_pseudo_csum = 0; | ||
8359 | /* HW bug: we need to subtract 10 bytes before the | ||
8360 | * UDP header from the csum | ||
8361 | */ | ||
8362 | uh->check = (u16) ~csum_fold(csum_sub(uh->check, | ||
8363 | csum_partial(((u8 *)(uh)-10), 10, 0))); | ||
8364 | } | ||
8365 | } | ||
8366 | |||
8367 | if ((bp->vlgrp != NULL) && vlan_tx_tag_present(skb)) { | ||
8368 | tx_bd->vlan = cpu_to_le16(vlan_tx_tag_get(skb)); | ||
8369 | tx_bd->bd_flags.as_bitfield |= ETH_TX_BD_FLAGS_VLAN_TAG; | ||
8370 | } else { | ||
8371 | tx_bd->vlan = cpu_to_le16(pkt_prod); | ||
8372 | } | ||
8373 | |||
8374 | mapping = pci_map_single(bp->pdev, skb->data, | ||
8375 | skb->len, PCI_DMA_TODEVICE); | ||
8376 | |||
8377 | tx_bd->addr_hi = cpu_to_le32(U64_HI(mapping)); | ||
8378 | tx_bd->addr_lo = cpu_to_le32(U64_LO(mapping)); | ||
8379 | nbd = skb_shinfo(skb)->nr_frags + ((pbd == NULL)? 1 : 2); | ||
8380 | tx_bd->nbd = cpu_to_le16(nbd); | ||
8381 | tx_bd->nbytes = cpu_to_le16(skb_headlen(skb)); | ||
8382 | |||
8383 | DP(NETIF_MSG_TX_QUEUED, "first bd @%p addr (%x:%x) nbd %d" | ||
8384 | " nbytes %d flags %x vlan %u\n", | ||
8385 | tx_bd, tx_bd->addr_hi, tx_bd->addr_lo, tx_bd->nbd, | ||
8386 | tx_bd->nbytes, tx_bd->bd_flags.as_bitfield, tx_bd->vlan); | ||
8387 | |||
8388 | if (skb_shinfo(skb)->gso_size && | ||
8389 | (skb->len > (bp->dev->mtu + ETH_HLEN))) { | ||
8390 | int hlen = 2 * le32_to_cpu(pbd->total_hlen); | ||
8391 | |||
8392 | DP(NETIF_MSG_TX_QUEUED, | ||
8393 | "TSO packet len %d hlen %d total len %d tso size %d\n", | ||
8394 | skb->len, hlen, skb_headlen(skb), | ||
8395 | skb_shinfo(skb)->gso_size); | ||
8396 | |||
8397 | tx_bd->bd_flags.as_bitfield |= ETH_TX_BD_FLAGS_SW_LSO; | ||
8398 | |||
8399 | if (tx_bd->nbytes > cpu_to_le16(hlen)) { | ||
8400 | /* we split the first bd into headers and data bds | ||
8401 | * to ease the pain of our fellow micocode engineers | ||
8402 | * we use one mapping for both bds | ||
8403 | * So far this has only been observed to happen | ||
8404 | * in Other Operating Systems(TM) | ||
8405 | */ | ||
8406 | |||
8407 | /* first fix first bd */ | ||
8408 | nbd++; | ||
8409 | tx_bd->nbd = cpu_to_le16(nbd); | ||
8410 | tx_bd->nbytes = cpu_to_le16(hlen); | ||
8411 | |||
8412 | /* we only print this as an error | ||
8413 | * because we don't think this will ever happen. | ||
8414 | */ | ||
8415 | BNX2X_ERR("TSO split header size is %d (%x:%x)" | ||
8416 | " nbd %d\n", tx_bd->nbytes, tx_bd->addr_hi, | ||
8417 | tx_bd->addr_lo, tx_bd->nbd); | ||
8418 | |||
8419 | /* now get a new data bd | ||
8420 | * (after the pbd) and fill it */ | ||
8421 | bd_prod = TX_BD(NEXT_TX_IDX(bd_prod)); | ||
8422 | tx_bd = &fp->tx_desc_ring[bd_prod]; | ||
8423 | |||
8424 | tx_bd->addr_hi = cpu_to_le32(U64_HI(mapping)); | ||
8425 | tx_bd->addr_lo = cpu_to_le32(U64_LO(mapping) + hlen); | ||
8426 | tx_bd->nbytes = cpu_to_le16(skb_headlen(skb) - hlen); | ||
8427 | tx_bd->vlan = cpu_to_le16(pkt_prod); | ||
8428 | /* this marks the bd | ||
8429 | * as one that has no individual mapping | ||
8430 | * the FW ignors this flag in a bd not maked start | ||
8431 | */ | ||
8432 | tx_bd->bd_flags.as_bitfield = ETH_TX_BD_FLAGS_SW_LSO; | ||
8433 | DP(NETIF_MSG_TX_QUEUED, | ||
8434 | "TSO split data size is %d (%x:%x)\n", | ||
8435 | tx_bd->nbytes, tx_bd->addr_hi, tx_bd->addr_lo); | ||
8436 | } | ||
8437 | |||
8438 | if (!pbd) { | ||
8439 | /* supposed to be unreached | ||
8440 | * (and therefore not handled properly...) | ||
8441 | */ | ||
8442 | BNX2X_ERR("LSO with no PBD\n"); | ||
8443 | BUG(); | ||
8444 | } | ||
8445 | |||
8446 | pbd->lso_mss = cpu_to_le16(skb_shinfo(skb)->gso_size); | ||
8447 | pbd->tcp_send_seq = swab32(tcp_hdr(skb)->seq); | ||
8448 | pbd->ip_id = swab16(ip_hdr(skb)->id); | ||
8449 | pbd->tcp_pseudo_csum = | ||
8450 | swab16(~csum_tcpudp_magic(ip_hdr(skb)->saddr, | ||
8451 | ip_hdr(skb)->daddr, | ||
8452 | 0, IPPROTO_TCP, 0)); | ||
8453 | pbd->global_data |= ETH_TX_PARSE_BD_PSEUDO_CS_WITHOUT_LEN; | ||
8454 | } | ||
8455 | |||
8456 | { | ||
8457 | int i; | ||
8458 | |||
8459 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | ||
8460 | skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; | ||
8461 | |||
8462 | bd_prod = TX_BD(NEXT_TX_IDX(bd_prod)); | ||
8463 | tx_bd = &fp->tx_desc_ring[bd_prod]; | ||
8464 | |||
8465 | mapping = pci_map_page(bp->pdev, frag->page, | ||
8466 | frag->page_offset, | ||
8467 | frag->size, PCI_DMA_TODEVICE); | ||
8468 | |||
8469 | tx_bd->addr_hi = cpu_to_le32(U64_HI(mapping)); | ||
8470 | tx_bd->addr_lo = cpu_to_le32(U64_LO(mapping)); | ||
8471 | tx_bd->nbytes = cpu_to_le16(frag->size); | ||
8472 | tx_bd->vlan = cpu_to_le16(pkt_prod); | ||
8473 | tx_bd->bd_flags.as_bitfield = 0; | ||
8474 | DP(NETIF_MSG_TX_QUEUED, "frag %d bd @%p" | ||
8475 | " addr (%x:%x) nbytes %d flags %x\n", | ||
8476 | i, tx_bd, tx_bd->addr_hi, tx_bd->addr_lo, | ||
8477 | tx_bd->nbytes, tx_bd->bd_flags.as_bitfield); | ||
8478 | } /* for */ | ||
8479 | } | ||
8480 | |||
8481 | /* now at last mark the bd as the last bd */ | ||
8482 | tx_bd->bd_flags.as_bitfield |= ETH_TX_BD_FLAGS_END_BD; | ||
8483 | |||
8484 | DP(NETIF_MSG_TX_QUEUED, "last bd @%p flags %x\n", | ||
8485 | tx_bd, tx_bd->bd_flags.as_bitfield); | ||
8486 | |||
8487 | tx_buf->skb = skb; | ||
8488 | |||
8489 | bd_prod = TX_BD(NEXT_TX_IDX(bd_prod)); | ||
8490 | |||
8491 | /* now send a tx doorbell, counting the next bd | ||
8492 | * if the packet contains or ends with it | ||
8493 | */ | ||
8494 | if (TX_BD_POFF(bd_prod) < nbd) | ||
8495 | nbd++; | ||
8496 | |||
8497 | if (pbd) | ||
8498 | DP(NETIF_MSG_TX_QUEUED, | ||
8499 | "PBD @%p ip_data %x ip_hlen %u ip_id %u lso_mss %u" | ||
8500 | " tcp_flags %x xsum %x seq %u hlen %u\n", | ||
8501 | pbd, pbd->global_data, pbd->ip_hlen, pbd->ip_id, | ||
8502 | pbd->lso_mss, pbd->tcp_flags, pbd->tcp_pseudo_csum, | ||
8503 | pbd->tcp_send_seq, pbd->total_hlen); | ||
8504 | |||
8505 | DP(NETIF_MSG_TX_QUEUED, "doorbell: nbd %u bd %d\n", nbd, bd_prod); | ||
8506 | |||
8507 | fp->hw_tx_prods->bds_prod += cpu_to_le16(nbd); | ||
8508 | mb(); /* FW restriction: must not reorder writing nbd and packets */ | ||
8509 | fp->hw_tx_prods->packets_prod += cpu_to_le32(1); | ||
8510 | DOORBELL(bp, fp_index, 0); | ||
8511 | |||
8512 | mmiowb(); | ||
8513 | |||
8514 | fp->tx_bd_prod = bd_prod; | ||
8515 | dev->trans_start = jiffies; | ||
8516 | |||
8517 | if (unlikely(bnx2x_tx_avail(fp) < MAX_SKB_FRAGS + 3)) { | ||
8518 | netif_stop_queue(dev); | ||
8519 | bp->slowpath->eth_stats.driver_xoff++; | ||
8520 | if (bnx2x_tx_avail(fp) >= MAX_SKB_FRAGS + 3) | ||
8521 | netif_wake_queue(dev); | ||
8522 | } | ||
8523 | fp->tx_pkt++; | ||
8524 | |||
8525 | return NETDEV_TX_OK; | ||
8526 | } | ||
8527 | |||
8528 | static struct net_device_stats *bnx2x_get_stats(struct net_device *dev) | ||
8529 | { | ||
8530 | return &dev->stats; | ||
8531 | } | ||
8532 | |||
8533 | /* Called with rtnl_lock */ | ||
8534 | static int bnx2x_open(struct net_device *dev) | ||
8535 | { | ||
8536 | struct bnx2x *bp = netdev_priv(dev); | ||
8537 | |||
8538 | bnx2x_set_power_state(bp, PCI_D0); | ||
8539 | |||
8540 | return bnx2x_nic_load(bp, 1); | ||
8541 | } | ||
8542 | |||
8543 | /* Called with rtnl_lock */ | ||
8544 | static int bnx2x_close(struct net_device *dev) | ||
8545 | { | ||
8546 | int rc; | ||
8547 | struct bnx2x *bp = netdev_priv(dev); | ||
8548 | |||
8549 | /* Unload the driver, release IRQs */ | ||
8550 | rc = bnx2x_nic_unload(bp, 1); | ||
8551 | if (rc) { | ||
8552 | BNX2X_ERR("bnx2x_nic_unload failed: %d\n", rc); | ||
8553 | return rc; | ||
8554 | } | ||
8555 | bnx2x_set_power_state(bp, PCI_D3hot); | ||
8556 | |||
8557 | return 0; | ||
8558 | } | ||
8559 | |||
8560 | /* Called with rtnl_lock */ | ||
8561 | static int bnx2x_change_mac_addr(struct net_device *dev, void *p) | ||
8562 | { | ||
8563 | struct sockaddr *addr = p; | ||
8564 | struct bnx2x *bp = netdev_priv(dev); | ||
8565 | |||
8566 | if (!is_valid_ether_addr(addr->sa_data)) | ||
8567 | return -EINVAL; | ||
8568 | |||
8569 | memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); | ||
8570 | if (netif_running(dev)) | ||
8571 | bnx2x_set_mac_addr(bp); | ||
8572 | |||
8573 | return 0; | ||
8574 | } | ||
8575 | |||
8576 | /* Called with rtnl_lock */ | ||
8577 | static int bnx2x_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) | ||
8578 | { | ||
8579 | struct mii_ioctl_data *data = if_mii(ifr); | ||
8580 | struct bnx2x *bp = netdev_priv(dev); | ||
8581 | int err; | ||
8582 | |||
8583 | switch (cmd) { | ||
8584 | case SIOCGMIIPHY: | ||
8585 | data->phy_id = bp->phy_addr; | ||
8586 | |||
8587 | /* fallthru */ | ||
8588 | case SIOCGMIIREG: { | ||
8589 | u32 mii_regval; | ||
8590 | |||
8591 | spin_lock_bh(&bp->phy_lock); | ||
8592 | if (bp->state == BNX2X_STATE_OPEN) { | ||
8593 | err = bnx2x_mdio22_read(bp, data->reg_num & 0x1f, | ||
8594 | &mii_regval); | ||
8595 | |||
8596 | data->val_out = mii_regval; | ||
8597 | } else { | ||
8598 | err = -EAGAIN; | ||
8599 | } | ||
8600 | spin_unlock_bh(&bp->phy_lock); | ||
8601 | return err; | ||
8602 | } | ||
8603 | |||
8604 | case SIOCSMIIREG: | ||
8605 | if (!capable(CAP_NET_ADMIN)) | ||
8606 | return -EPERM; | ||
8607 | |||
8608 | spin_lock_bh(&bp->phy_lock); | ||
8609 | if (bp->state == BNX2X_STATE_OPEN) { | ||
8610 | err = bnx2x_mdio22_write(bp, data->reg_num & 0x1f, | ||
8611 | data->val_in); | ||
8612 | } else { | ||
8613 | err = -EAGAIN; | ||
8614 | } | ||
8615 | spin_unlock_bh(&bp->phy_lock); | ||
8616 | return err; | ||
8617 | |||
8618 | default: | ||
8619 | /* do nothing */ | ||
8620 | break; | ||
8621 | } | ||
8622 | |||
8623 | return -EOPNOTSUPP; | ||
8624 | } | ||
8625 | |||
8626 | /* Called with rtnl_lock */ | ||
8627 | static int bnx2x_change_mtu(struct net_device *dev, int new_mtu) | ||
8628 | { | ||
8629 | struct bnx2x *bp = netdev_priv(dev); | ||
8630 | |||
8631 | if ((new_mtu > ETH_MAX_JUMBO_PACKET_SIZE) || | ||
8632 | ((new_mtu + ETH_HLEN) < ETH_MIN_PACKET_SIZE)) | ||
8633 | return -EINVAL; | ||
8634 | |||
8635 | /* This does not race with packet allocation | ||
8636 | * because the actuall alloc size is | ||
8637 | * only updated as part of load | ||
8638 | */ | ||
8639 | dev->mtu = new_mtu; | ||
8640 | |||
8641 | if (netif_running(dev)) { | ||
8642 | bnx2x_nic_unload(bp, 0); | ||
8643 | bnx2x_nic_load(bp, 0); | ||
8644 | } | ||
8645 | return 0; | ||
8646 | } | ||
8647 | |||
8648 | static void bnx2x_tx_timeout(struct net_device *dev) | ||
8649 | { | ||
8650 | struct bnx2x *bp = netdev_priv(dev); | ||
8651 | |||
8652 | #ifdef BNX2X_STOP_ON_ERROR | ||
8653 | if (!bp->panic) | ||
8654 | bnx2x_panic(); | ||
8655 | #endif | ||
8656 | /* This allows the netif to be shutdown gracefully before resetting */ | ||
8657 | schedule_work(&bp->reset_task); | ||
8658 | } | ||
8659 | |||
8660 | #ifdef BCM_VLAN | ||
8661 | /* Called with rtnl_lock */ | ||
8662 | static void bnx2x_vlan_rx_register(struct net_device *dev, | ||
8663 | struct vlan_group *vlgrp) | ||
8664 | { | ||
8665 | struct bnx2x *bp = netdev_priv(dev); | ||
8666 | |||
8667 | bp->vlgrp = vlgrp; | ||
8668 | if (netif_running(dev)) | ||
8669 | bnx2x_set_rx_mode(dev); | ||
8670 | } | ||
8671 | #endif | ||
8672 | |||
8673 | #if defined(HAVE_POLL_CONTROLLER) || defined(CONFIG_NET_POLL_CONTROLLER) | ||
8674 | static void poll_bnx2x(struct net_device *dev) | ||
8675 | { | ||
8676 | struct bnx2x *bp = netdev_priv(dev); | ||
8677 | |||
8678 | disable_irq(bp->pdev->irq); | ||
8679 | bnx2x_interrupt(bp->pdev->irq, dev); | ||
8680 | enable_irq(bp->pdev->irq); | ||
8681 | } | ||
8682 | #endif | ||
8683 | |||
8684 | static void bnx2x_reset_task(struct work_struct *work) | ||
8685 | { | ||
8686 | struct bnx2x *bp = container_of(work, struct bnx2x, reset_task); | ||
8687 | |||
8688 | #ifdef BNX2X_STOP_ON_ERROR | ||
8689 | BNX2X_ERR("reset task called but STOP_ON_ERROR defined" | ||
8690 | " so reset not done to allow debug dump,\n" | ||
8691 | KERN_ERR " you will need to reboot when done\n"); | ||
8692 | return; | ||
8693 | #endif | ||
8694 | |||
8695 | if (!netif_running(bp->dev)) | ||
8696 | return; | ||
8697 | |||
8698 | bp->in_reset_task = 1; | ||
8699 | |||
8700 | bnx2x_netif_stop(bp); | ||
8701 | |||
8702 | bnx2x_nic_unload(bp, 0); | ||
8703 | bnx2x_nic_load(bp, 0); | ||
8704 | |||
8705 | bp->in_reset_task = 0; | ||
8706 | } | ||
8707 | |||
8708 | static int __devinit bnx2x_init_board(struct pci_dev *pdev, | ||
8709 | struct net_device *dev) | ||
8710 | { | ||
8711 | struct bnx2x *bp; | ||
8712 | int rc; | ||
8713 | |||
8714 | SET_NETDEV_DEV(dev, &pdev->dev); | ||
8715 | bp = netdev_priv(dev); | ||
8716 | |||
8717 | bp->flags = 0; | ||
8718 | bp->port = PCI_FUNC(pdev->devfn); | ||
8719 | |||
8720 | rc = pci_enable_device(pdev); | ||
8721 | if (rc) { | ||
8722 | printk(KERN_ERR PFX "Cannot enable PCI device, aborting\n"); | ||
8723 | goto err_out; | ||
8724 | } | ||
8725 | |||
8726 | if (!(pci_resource_flags(pdev, 0) & IORESOURCE_MEM)) { | ||
8727 | printk(KERN_ERR PFX "Cannot find PCI device base address," | ||
8728 | " aborting\n"); | ||
8729 | rc = -ENODEV; | ||
8730 | goto err_out_disable; | ||
8731 | } | ||
8732 | |||
8733 | if (!(pci_resource_flags(pdev, 2) & IORESOURCE_MEM)) { | ||
8734 | printk(KERN_ERR PFX "Cannot find second PCI device" | ||
8735 | " base address, aborting\n"); | ||
8736 | rc = -ENODEV; | ||
8737 | goto err_out_disable; | ||
8738 | } | ||
8739 | |||
8740 | rc = pci_request_regions(pdev, DRV_MODULE_NAME); | ||
8741 | if (rc) { | ||
8742 | printk(KERN_ERR PFX "Cannot obtain PCI resources," | ||
8743 | " aborting\n"); | ||
8744 | goto err_out_disable; | ||
8745 | } | ||
8746 | |||
8747 | pci_set_master(pdev); | ||
8748 | |||
8749 | bp->pm_cap = pci_find_capability(pdev, PCI_CAP_ID_PM); | ||
8750 | if (bp->pm_cap == 0) { | ||
8751 | printk(KERN_ERR PFX "Cannot find power management" | ||
8752 | " capability, aborting\n"); | ||
8753 | rc = -EIO; | ||
8754 | goto err_out_release; | ||
8755 | } | ||
8756 | |||
8757 | bp->pcie_cap = pci_find_capability(pdev, PCI_CAP_ID_EXP); | ||
8758 | if (bp->pcie_cap == 0) { | ||
8759 | printk(KERN_ERR PFX "Cannot find PCI Express capability," | ||
8760 | " aborting\n"); | ||
8761 | rc = -EIO; | ||
8762 | goto err_out_release; | ||
8763 | } | ||
8764 | |||
8765 | if (pci_set_dma_mask(pdev, DMA_64BIT_MASK) == 0) { | ||
8766 | bp->flags |= USING_DAC_FLAG; | ||
8767 | if (pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK) != 0) { | ||
8768 | printk(KERN_ERR PFX "pci_set_consistent_dma_mask" | ||
8769 | " failed, aborting\n"); | ||
8770 | rc = -EIO; | ||
8771 | goto err_out_release; | ||
8772 | } | ||
8773 | |||
8774 | } else if (pci_set_dma_mask(pdev, DMA_32BIT_MASK) != 0) { | ||
8775 | printk(KERN_ERR PFX "System does not support DMA," | ||
8776 | " aborting\n"); | ||
8777 | rc = -EIO; | ||
8778 | goto err_out_release; | ||
8779 | } | ||
8780 | |||
8781 | bp->dev = dev; | ||
8782 | bp->pdev = pdev; | ||
8783 | |||
8784 | spin_lock_init(&bp->phy_lock); | ||
8785 | |||
8786 | bp->in_reset_task = 0; | ||
8787 | |||
8788 | INIT_WORK(&bp->reset_task, bnx2x_reset_task); | ||
8789 | INIT_WORK(&bp->sp_task, bnx2x_sp_task); | ||
8790 | |||
8791 | dev->base_addr = dev->mem_start = pci_resource_start(pdev, 0); | ||
8792 | dev->mem_end = pci_resource_end(pdev, 0); | ||
8793 | |||
8794 | dev->irq = pdev->irq; | ||
8795 | |||
8796 | bp->regview = ioremap_nocache(dev->base_addr, | ||
8797 | pci_resource_len(pdev, 0)); | ||
8798 | if (!bp->regview) { | ||
8799 | printk(KERN_ERR PFX "Cannot map register space, aborting\n"); | ||
8800 | rc = -ENOMEM; | ||
8801 | goto err_out_release; | ||
8802 | } | ||
8803 | |||
8804 | bp->doorbells = ioremap_nocache(pci_resource_start(pdev , 2), | ||
8805 | pci_resource_len(pdev, 2)); | ||
8806 | if (!bp->doorbells) { | ||
8807 | printk(KERN_ERR PFX "Cannot map doorbell space, aborting\n"); | ||
8808 | rc = -ENOMEM; | ||
8809 | goto err_out_unmap; | ||
8810 | } | ||
8811 | |||
8812 | bnx2x_set_power_state(bp, PCI_D0); | ||
8813 | |||
8814 | bnx2x_get_hwinfo(bp); | ||
8815 | |||
8816 | if (CHIP_REV(bp) == CHIP_REV_FPGA) { | ||
8817 | printk(KERN_ERR PFX "FPGA detacted. MCP disabled," | ||
8818 | " will only init first device\n"); | ||
8819 | onefunc = 1; | ||
8820 | nomcp = 1; | ||
8821 | } | ||
8822 | |||
8823 | if (nomcp) { | ||
8824 | printk(KERN_ERR PFX "MCP disabled, will only" | ||
8825 | " init first device\n"); | ||
8826 | onefunc = 1; | ||
8827 | } | ||
8828 | |||
8829 | if (onefunc && bp->port) { | ||
8830 | printk(KERN_ERR PFX "Second device disabled, exiting\n"); | ||
8831 | rc = -ENODEV; | ||
8832 | goto err_out_unmap; | ||
8833 | } | ||
8834 | |||
8835 | bp->tx_ring_size = MAX_TX_AVAIL; | ||
8836 | bp->rx_ring_size = MAX_RX_AVAIL; | ||
8837 | |||
8838 | bp->rx_csum = 1; | ||
8839 | |||
8840 | bp->rx_offset = 0; | ||
8841 | |||
8842 | bp->tx_quick_cons_trip_int = 0xff; | ||
8843 | bp->tx_quick_cons_trip = 0xff; | ||
8844 | bp->tx_ticks_int = 50; | ||
8845 | bp->tx_ticks = 50; | ||
8846 | |||
8847 | bp->rx_quick_cons_trip_int = 0xff; | ||
8848 | bp->rx_quick_cons_trip = 0xff; | ||
8849 | bp->rx_ticks_int = 25; | ||
8850 | bp->rx_ticks = 25; | ||
8851 | |||
8852 | bp->stats_ticks = 1000000 & 0xffff00; | ||
8853 | |||
8854 | bp->timer_interval = HZ; | ||
8855 | bp->current_interval = (poll ? poll : HZ); | ||
8856 | |||
8857 | init_timer(&bp->timer); | ||
8858 | bp->timer.expires = jiffies + bp->current_interval; | ||
8859 | bp->timer.data = (unsigned long) bp; | ||
8860 | bp->timer.function = bnx2x_timer; | ||
8861 | |||
8862 | return 0; | ||
8863 | |||
8864 | err_out_unmap: | ||
8865 | if (bp->regview) { | ||
8866 | iounmap(bp->regview); | ||
8867 | bp->regview = NULL; | ||
8868 | } | ||
8869 | |||
8870 | if (bp->doorbells) { | ||
8871 | iounmap(bp->doorbells); | ||
8872 | bp->doorbells = NULL; | ||
8873 | } | ||
8874 | |||
8875 | err_out_release: | ||
8876 | pci_release_regions(pdev); | ||
8877 | |||
8878 | err_out_disable: | ||
8879 | pci_disable_device(pdev); | ||
8880 | pci_set_drvdata(pdev, NULL); | ||
8881 | |||
8882 | err_out: | ||
8883 | return rc; | ||
8884 | } | ||
8885 | |||
8886 | static int __devinit bnx2x_init_one(struct pci_dev *pdev, | ||
8887 | const struct pci_device_id *ent) | ||
8888 | { | ||
8889 | static int version_printed; | ||
8890 | struct net_device *dev = NULL; | ||
8891 | struct bnx2x *bp; | ||
8892 | int rc, i; | ||
8893 | int port = PCI_FUNC(pdev->devfn); | ||
8894 | |||
8895 | if (version_printed++ == 0) | ||
8896 | printk(KERN_INFO "%s", version); | ||
8897 | |||
8898 | /* dev zeroed in init_etherdev */ | ||
8899 | dev = alloc_etherdev(sizeof(*bp)); | ||
8900 | if (!dev) | ||
8901 | return -ENOMEM; | ||
8902 | |||
8903 | netif_carrier_off(dev); | ||
8904 | |||
8905 | bp = netdev_priv(dev); | ||
8906 | bp->msglevel = debug; | ||
8907 | |||
8908 | if (port && onefunc) { | ||
8909 | printk(KERN_ERR PFX "second function disabled. exiting\n"); | ||
8910 | return 0; | ||
8911 | } | ||
8912 | |||
8913 | rc = bnx2x_init_board(pdev, dev); | ||
8914 | if (rc < 0) { | ||
8915 | free_netdev(dev); | ||
8916 | return rc; | ||
8917 | } | ||
8918 | |||
8919 | dev->hard_start_xmit = bnx2x_start_xmit; | ||
8920 | dev->watchdog_timeo = TX_TIMEOUT; | ||
8921 | |||
8922 | dev->get_stats = bnx2x_get_stats; | ||
8923 | dev->ethtool_ops = &bnx2x_ethtool_ops; | ||
8924 | dev->open = bnx2x_open; | ||
8925 | dev->stop = bnx2x_close; | ||
8926 | dev->set_multicast_list = bnx2x_set_rx_mode; | ||
8927 | dev->set_mac_address = bnx2x_change_mac_addr; | ||
8928 | dev->do_ioctl = bnx2x_ioctl; | ||
8929 | dev->change_mtu = bnx2x_change_mtu; | ||
8930 | dev->tx_timeout = bnx2x_tx_timeout; | ||
8931 | #ifdef BCM_VLAN | ||
8932 | dev->vlan_rx_register = bnx2x_vlan_rx_register; | ||
8933 | #endif | ||
8934 | #if defined(HAVE_POLL_CONTROLLER) || defined(CONFIG_NET_POLL_CONTROLLER) | ||
8935 | dev->poll_controller = poll_bnx2x; | ||
8936 | #endif | ||
8937 | dev->features |= NETIF_F_SG; | ||
8938 | if (bp->flags & USING_DAC_FLAG) | ||
8939 | dev->features |= NETIF_F_HIGHDMA; | ||
8940 | dev->features |= NETIF_F_IP_CSUM; | ||
8941 | #ifdef BCM_VLAN | ||
8942 | dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; | ||
8943 | #endif | ||
8944 | dev->features |= NETIF_F_TSO | NETIF_F_TSO_ECN; | ||
8945 | |||
8946 | rc = register_netdev(dev); | ||
8947 | if (rc) { | ||
8948 | printk(KERN_ERR PFX "Cannot register net device\n"); | ||
8949 | if (bp->regview) | ||
8950 | iounmap(bp->regview); | ||
8951 | if (bp->doorbells) | ||
8952 | iounmap(bp->doorbells); | ||
8953 | pci_release_regions(pdev); | ||
8954 | pci_disable_device(pdev); | ||
8955 | pci_set_drvdata(pdev, NULL); | ||
8956 | free_netdev(dev); | ||
8957 | return rc; | ||
8958 | } | ||
8959 | |||
8960 | pci_set_drvdata(pdev, dev); | ||
8961 | |||
8962 | bp->name = board_info[ent->driver_data].name; | ||
8963 | printk(KERN_INFO "%s: %s (%c%d) PCI%s %s %dMHz " | ||
8964 | "found at mem %lx, IRQ %d, ", | ||
8965 | dev->name, bp->name, | ||
8966 | ((CHIP_ID(bp) & 0xf000) >> 12) + 'A', | ||
8967 | ((CHIP_ID(bp) & 0x0ff0) >> 4), | ||
8968 | ((bp->flags & PCIX_FLAG) ? "-X" : ""), | ||
8969 | ((bp->flags & PCI_32BIT_FLAG) ? "32-bit" : "64-bit"), | ||
8970 | bp->bus_speed_mhz, | ||
8971 | dev->base_addr, | ||
8972 | bp->pdev->irq); | ||
8973 | |||
8974 | printk("node addr "); | ||
8975 | for (i = 0; i < 6; i++) | ||
8976 | printk("%2.2x", dev->dev_addr[i]); | ||
8977 | printk("\n"); | ||
8978 | |||
8979 | return 0; | ||
8980 | } | ||
8981 | |||
8982 | static void __devexit bnx2x_remove_one(struct pci_dev *pdev) | ||
8983 | { | ||
8984 | struct net_device *dev = pci_get_drvdata(pdev); | ||
8985 | struct bnx2x *bp = netdev_priv(dev); | ||
8986 | |||
8987 | flush_scheduled_work(); | ||
8988 | /*tasklet_kill(&bp->sp_task);*/ | ||
8989 | unregister_netdev(dev); | ||
8990 | |||
8991 | if (bp->regview) | ||
8992 | iounmap(bp->regview); | ||
8993 | |||
8994 | if (bp->doorbells) | ||
8995 | iounmap(bp->doorbells); | ||
8996 | |||
8997 | free_netdev(dev); | ||
8998 | pci_release_regions(pdev); | ||
8999 | pci_disable_device(pdev); | ||
9000 | pci_set_drvdata(pdev, NULL); | ||
9001 | } | ||
9002 | |||
9003 | static int bnx2x_suspend(struct pci_dev *pdev, pm_message_t state) | ||
9004 | { | ||
9005 | struct net_device *dev = pci_get_drvdata(pdev); | ||
9006 | struct bnx2x *bp = netdev_priv(dev); | ||
9007 | int rc; | ||
9008 | |||
9009 | if (!netif_running(dev)) | ||
9010 | return 0; | ||
9011 | |||
9012 | rc = bnx2x_nic_unload(bp, 0); | ||
9013 | if (!rc) | ||
9014 | return rc; | ||
9015 | |||
9016 | netif_device_detach(dev); | ||
9017 | pci_save_state(pdev); | ||
9018 | |||
9019 | bnx2x_set_power_state(bp, pci_choose_state(pdev, state)); | ||
9020 | return 0; | ||
9021 | } | ||
9022 | |||
9023 | static int bnx2x_resume(struct pci_dev *pdev) | ||
9024 | { | ||
9025 | struct net_device *dev = pci_get_drvdata(pdev); | ||
9026 | struct bnx2x *bp = netdev_priv(dev); | ||
9027 | int rc; | ||
9028 | |||
9029 | if (!netif_running(dev)) | ||
9030 | return 0; | ||
9031 | |||
9032 | pci_restore_state(pdev); | ||
9033 | |||
9034 | bnx2x_set_power_state(bp, PCI_D0); | ||
9035 | netif_device_attach(dev); | ||
9036 | |||
9037 | rc = bnx2x_nic_load(bp, 0); | ||
9038 | if (rc) | ||
9039 | return rc; | ||
9040 | |||
9041 | return 0; | ||
9042 | } | ||
9043 | |||
9044 | static struct pci_driver bnx2x_pci_driver = { | ||
9045 | .name = DRV_MODULE_NAME, | ||
9046 | .id_table = bnx2x_pci_tbl, | ||
9047 | .probe = bnx2x_init_one, | ||
9048 | .remove = __devexit_p(bnx2x_remove_one), | ||
9049 | .suspend = bnx2x_suspend, | ||
9050 | .resume = bnx2x_resume, | ||
9051 | }; | ||
9052 | |||
9053 | static int __init bnx2x_init(void) | ||
9054 | { | ||
9055 | return pci_register_driver(&bnx2x_pci_driver); | ||
9056 | } | ||
9057 | |||
9058 | static void __exit bnx2x_cleanup(void) | ||
9059 | { | ||
9060 | pci_unregister_driver(&bnx2x_pci_driver); | ||
9061 | } | ||
9062 | |||
9063 | module_init(bnx2x_init); | ||
9064 | module_exit(bnx2x_cleanup); | ||
9065 | |||
diff --git a/drivers/net/bnx2x.h b/drivers/net/bnx2x.h new file mode 100644 index 000000000000..4f7ae6f77452 --- /dev/null +++ b/drivers/net/bnx2x.h | |||
@@ -0,0 +1,1071 @@ | |||
1 | /* bnx2x.h: Broadcom Everest network driver. | ||
2 | * | ||
3 | * Copyright (c) 2007 Broadcom Corporation | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation. | ||
8 | * | ||
9 | * Written by: Eliezer Tamir <eliezert@broadcom.com> | ||
10 | * Based on code from Michael Chan's bnx2 driver | ||
11 | */ | ||
12 | |||
13 | #ifndef BNX2X_H | ||
14 | #define BNX2X_H | ||
15 | |||
16 | /* error/debug prints */ | ||
17 | |||
18 | #define DRV_MODULE_NAME "bnx2x" | ||
19 | #define PFX DRV_MODULE_NAME ": " | ||
20 | |||
21 | /* for messages that are currently off */ | ||
22 | #define BNX2X_MSG_OFF 0 | ||
23 | #define BNX2X_MSG_MCP 0x10000 /* was: NETIF_MSG_HW */ | ||
24 | #define BNX2X_MSG_STATS 0x20000 /* was: NETIF_MSG_TIMER */ | ||
25 | #define NETIF_MSG_NVM 0x40000 /* was: NETIF_MSG_HW */ | ||
26 | #define NETIF_MSG_DMAE 0x80000 /* was: NETIF_MSG_HW */ | ||
27 | |||
28 | #define DP_LEVEL KERN_NOTICE /* was: KERN_DEBUG */ | ||
29 | |||
30 | /* regular debug print */ | ||
31 | #define DP(__mask, __fmt, __args...) do { \ | ||
32 | if (bp->msglevel & (__mask)) \ | ||
33 | printk(DP_LEVEL "[%s:%d(%s)]" __fmt, __FUNCTION__, \ | ||
34 | __LINE__, bp->dev?(bp->dev->name):"?", ##__args); \ | ||
35 | } while (0) | ||
36 | |||
37 | /* for errors (never masked) */ | ||
38 | #define BNX2X_ERR(__fmt, __args...) do { \ | ||
39 | printk(KERN_ERR "[%s:%d(%s)]" __fmt, __FUNCTION__, \ | ||
40 | __LINE__, bp->dev?(bp->dev->name):"?", ##__args); \ | ||
41 | } while (0) | ||
42 | |||
43 | /* before we have a dev->name use dev_info() */ | ||
44 | #define BNX2X_DEV_INFO(__fmt, __args...) do { \ | ||
45 | if (bp->msglevel & NETIF_MSG_PROBE) \ | ||
46 | dev_info(&bp->pdev->dev, __fmt, ##__args); \ | ||
47 | } while (0) | ||
48 | |||
49 | |||
50 | #ifdef BNX2X_STOP_ON_ERROR | ||
51 | #define bnx2x_panic() do { \ | ||
52 | bp->panic = 1; \ | ||
53 | BNX2X_ERR("driver assert\n"); \ | ||
54 | bnx2x_disable_int(bp); \ | ||
55 | bnx2x_panic_dump(bp); \ | ||
56 | } while (0) | ||
57 | #else | ||
58 | #define bnx2x_panic() do { \ | ||
59 | BNX2X_ERR("driver assert\n"); \ | ||
60 | bnx2x_panic_dump(bp); \ | ||
61 | } while (0) | ||
62 | #endif | ||
63 | |||
64 | |||
65 | #define U64_LO(x) (((u64)x) & 0xffffffff) | ||
66 | #define U64_HI(x) (((u64)x) >> 32) | ||
67 | #define HILO_U64(hi, lo) (((u64)hi << 32) + lo) | ||
68 | |||
69 | |||
70 | #define REG_ADDR(bp, offset) (bp->regview + offset) | ||
71 | |||
72 | #define REG_RD(bp, offset) readl(REG_ADDR(bp, offset)) | ||
73 | #define REG_RD8(bp, offset) readb(REG_ADDR(bp, offset)) | ||
74 | #define REG_RD64(bp, offset) readq(REG_ADDR(bp, offset)) | ||
75 | |||
76 | #define REG_WR(bp, offset, val) writel((u32)val, REG_ADDR(bp, offset)) | ||
77 | #define REG_WR8(bp, offset, val) writeb((u8)val, REG_ADDR(bp, offset)) | ||
78 | #define REG_WR16(bp, offset, val) writew((u16)val, REG_ADDR(bp, offset)) | ||
79 | #define REG_WR32(bp, offset, val) REG_WR(bp, offset, val) | ||
80 | |||
81 | #define REG_RD_IND(bp, offset) bnx2x_reg_rd_ind(bp, offset) | ||
82 | #define REG_WR_IND(bp, offset, val) bnx2x_reg_wr_ind(bp, offset, val) | ||
83 | |||
84 | #define REG_WR_DMAE(bp, offset, val, len32) \ | ||
85 | do { \ | ||
86 | memcpy(bnx2x_sp(bp, wb_data[0]), val, len32 * 4); \ | ||
87 | bnx2x_write_dmae(bp, bnx2x_sp_mapping(bp, wb_data), \ | ||
88 | offset, len32); \ | ||
89 | } while (0) | ||
90 | |||
91 | #define SHMEM_RD(bp, type) \ | ||
92 | REG_RD(bp, bp->shmem_base + offsetof(struct shmem_region, type)) | ||
93 | #define SHMEM_WR(bp, type, val) \ | ||
94 | REG_WR(bp, bp->shmem_base + offsetof(struct shmem_region, type), val) | ||
95 | |||
96 | #define NIG_WR(reg, val) REG_WR(bp, reg, val) | ||
97 | #define EMAC_WR(reg, val) REG_WR(bp, emac_base + reg, val) | ||
98 | #define BMAC_WR(reg, val) REG_WR(bp, GRCBASE_NIG + bmac_addr + reg, val) | ||
99 | |||
100 | |||
101 | #define for_each_queue(bp, var) for (var = 0; var < bp->num_queues; var++) | ||
102 | |||
103 | #define for_each_nondefault_queue(bp, var) \ | ||
104 | for (var = 1; var < bp->num_queues; var++) | ||
105 | #define is_multi(bp) (bp->num_queues > 1) | ||
106 | |||
107 | |||
108 | struct regp { | ||
109 | u32 lo; | ||
110 | u32 hi; | ||
111 | }; | ||
112 | |||
113 | struct bmac_stats { | ||
114 | struct regp tx_gtpkt; | ||
115 | struct regp tx_gtxpf; | ||
116 | struct regp tx_gtfcs; | ||
117 | struct regp tx_gtmca; | ||
118 | struct regp tx_gtgca; | ||
119 | struct regp tx_gtfrg; | ||
120 | struct regp tx_gtovr; | ||
121 | struct regp tx_gt64; | ||
122 | struct regp tx_gt127; | ||
123 | struct regp tx_gt255; /* 10 */ | ||
124 | struct regp tx_gt511; | ||
125 | struct regp tx_gt1023; | ||
126 | struct regp tx_gt1518; | ||
127 | struct regp tx_gt2047; | ||
128 | struct regp tx_gt4095; | ||
129 | struct regp tx_gt9216; | ||
130 | struct regp tx_gt16383; | ||
131 | struct regp tx_gtmax; | ||
132 | struct regp tx_gtufl; | ||
133 | struct regp tx_gterr; /* 20 */ | ||
134 | struct regp tx_gtbyt; | ||
135 | |||
136 | struct regp rx_gr64; | ||
137 | struct regp rx_gr127; | ||
138 | struct regp rx_gr255; | ||
139 | struct regp rx_gr511; | ||
140 | struct regp rx_gr1023; | ||
141 | struct regp rx_gr1518; | ||
142 | struct regp rx_gr2047; | ||
143 | struct regp rx_gr4095; | ||
144 | struct regp rx_gr9216; /* 30 */ | ||
145 | struct regp rx_gr16383; | ||
146 | struct regp rx_grmax; | ||
147 | struct regp rx_grpkt; | ||
148 | struct regp rx_grfcs; | ||
149 | struct regp rx_grmca; | ||
150 | struct regp rx_grbca; | ||
151 | struct regp rx_grxcf; | ||
152 | struct regp rx_grxpf; | ||
153 | struct regp rx_grxuo; | ||
154 | struct regp rx_grjbr; /* 40 */ | ||
155 | struct regp rx_grovr; | ||
156 | struct regp rx_grflr; | ||
157 | struct regp rx_grmeg; | ||
158 | struct regp rx_grmeb; | ||
159 | struct regp rx_grbyt; | ||
160 | struct regp rx_grund; | ||
161 | struct regp rx_grfrg; | ||
162 | struct regp rx_grerb; | ||
163 | struct regp rx_grfre; | ||
164 | struct regp rx_gripj; /* 50 */ | ||
165 | }; | ||
166 | |||
167 | struct emac_stats { | ||
168 | u32 rx_ifhcinoctets ; | ||
169 | u32 rx_ifhcinbadoctets ; | ||
170 | u32 rx_etherstatsfragments ; | ||
171 | u32 rx_ifhcinucastpkts ; | ||
172 | u32 rx_ifhcinmulticastpkts ; | ||
173 | u32 rx_ifhcinbroadcastpkts ; | ||
174 | u32 rx_dot3statsfcserrors ; | ||
175 | u32 rx_dot3statsalignmenterrors ; | ||
176 | u32 rx_dot3statscarriersenseerrors ; | ||
177 | u32 rx_xonpauseframesreceived ; /* 10 */ | ||
178 | u32 rx_xoffpauseframesreceived ; | ||
179 | u32 rx_maccontrolframesreceived ; | ||
180 | u32 rx_xoffstateentered ; | ||
181 | u32 rx_dot3statsframestoolong ; | ||
182 | u32 rx_etherstatsjabbers ; | ||
183 | u32 rx_etherstatsundersizepkts ; | ||
184 | u32 rx_etherstatspkts64octets ; | ||
185 | u32 rx_etherstatspkts65octetsto127octets ; | ||
186 | u32 rx_etherstatspkts128octetsto255octets ; | ||
187 | u32 rx_etherstatspkts256octetsto511octets ; /* 20 */ | ||
188 | u32 rx_etherstatspkts512octetsto1023octets ; | ||
189 | u32 rx_etherstatspkts1024octetsto1522octets; | ||
190 | u32 rx_etherstatspktsover1522octets ; | ||
191 | |||
192 | u32 rx_falsecarriererrors ; | ||
193 | |||
194 | u32 tx_ifhcoutoctets ; | ||
195 | u32 tx_ifhcoutbadoctets ; | ||
196 | u32 tx_etherstatscollisions ; | ||
197 | u32 tx_outxonsent ; | ||
198 | u32 tx_outxoffsent ; | ||
199 | u32 tx_flowcontroldone ; /* 30 */ | ||
200 | u32 tx_dot3statssinglecollisionframes ; | ||
201 | u32 tx_dot3statsmultiplecollisionframes ; | ||
202 | u32 tx_dot3statsdeferredtransmissions ; | ||
203 | u32 tx_dot3statsexcessivecollisions ; | ||
204 | u32 tx_dot3statslatecollisions ; | ||
205 | u32 tx_ifhcoutucastpkts ; | ||
206 | u32 tx_ifhcoutmulticastpkts ; | ||
207 | u32 tx_ifhcoutbroadcastpkts ; | ||
208 | u32 tx_etherstatspkts64octets ; | ||
209 | u32 tx_etherstatspkts65octetsto127octets ; /* 40 */ | ||
210 | u32 tx_etherstatspkts128octetsto255octets ; | ||
211 | u32 tx_etherstatspkts256octetsto511octets ; | ||
212 | u32 tx_etherstatspkts512octetsto1023octets ; | ||
213 | u32 tx_etherstatspkts1024octetsto1522octet ; | ||
214 | u32 tx_etherstatspktsover1522octets ; | ||
215 | u32 tx_dot3statsinternalmactransmiterrors ; /* 46 */ | ||
216 | }; | ||
217 | |||
218 | union mac_stats { | ||
219 | struct emac_stats emac; | ||
220 | struct bmac_stats bmac; | ||
221 | }; | ||
222 | |||
223 | struct nig_stats { | ||
224 | u32 brb_discard; | ||
225 | u32 brb_packet; | ||
226 | u32 brb_truncate; | ||
227 | u32 flow_ctrl_discard; | ||
228 | u32 flow_ctrl_octets; | ||
229 | u32 flow_ctrl_packet; | ||
230 | u32 mng_discard; | ||
231 | u32 mng_octet_inp; | ||
232 | u32 mng_octet_out; | ||
233 | u32 mng_packet_inp; | ||
234 | u32 mng_packet_out; | ||
235 | u32 pbf_octets; | ||
236 | u32 pbf_packet; | ||
237 | u32 safc_inp; | ||
238 | u32 done; | ||
239 | u32 pad; | ||
240 | }; | ||
241 | |||
242 | struct bnx2x_eth_stats { | ||
243 | u32 pad; /* to make long counters u64 aligned */ | ||
244 | u32 mac_stx_start; | ||
245 | u32 total_bytes_received_hi; | ||
246 | u32 total_bytes_received_lo; | ||
247 | u32 total_bytes_transmitted_hi; | ||
248 | u32 total_bytes_transmitted_lo; | ||
249 | u32 total_unicast_packets_received_hi; | ||
250 | u32 total_unicast_packets_received_lo; | ||
251 | u32 total_multicast_packets_received_hi; | ||
252 | u32 total_multicast_packets_received_lo; | ||
253 | u32 total_broadcast_packets_received_hi; | ||
254 | u32 total_broadcast_packets_received_lo; | ||
255 | u32 total_unicast_packets_transmitted_hi; | ||
256 | u32 total_unicast_packets_transmitted_lo; | ||
257 | u32 total_multicast_packets_transmitted_hi; | ||
258 | u32 total_multicast_packets_transmitted_lo; | ||
259 | u32 total_broadcast_packets_transmitted_hi; | ||
260 | u32 total_broadcast_packets_transmitted_lo; | ||
261 | u32 crc_receive_errors; | ||
262 | u32 alignment_errors; | ||
263 | u32 false_carrier_detections; | ||
264 | u32 runt_packets_received; | ||
265 | u32 jabber_packets_received; | ||
266 | u32 pause_xon_frames_received; | ||
267 | u32 pause_xoff_frames_received; | ||
268 | u32 pause_xon_frames_transmitted; | ||
269 | u32 pause_xoff_frames_transmitted; | ||
270 | u32 single_collision_transmit_frames; | ||
271 | u32 multiple_collision_transmit_frames; | ||
272 | u32 late_collision_frames; | ||
273 | u32 excessive_collision_frames; | ||
274 | u32 control_frames_received; | ||
275 | u32 frames_received_64_bytes; | ||
276 | u32 frames_received_65_127_bytes; | ||
277 | u32 frames_received_128_255_bytes; | ||
278 | u32 frames_received_256_511_bytes; | ||
279 | u32 frames_received_512_1023_bytes; | ||
280 | u32 frames_received_1024_1522_bytes; | ||
281 | u32 frames_received_1523_9022_bytes; | ||
282 | u32 frames_transmitted_64_bytes; | ||
283 | u32 frames_transmitted_65_127_bytes; | ||
284 | u32 frames_transmitted_128_255_bytes; | ||
285 | u32 frames_transmitted_256_511_bytes; | ||
286 | u32 frames_transmitted_512_1023_bytes; | ||
287 | u32 frames_transmitted_1024_1522_bytes; | ||
288 | u32 frames_transmitted_1523_9022_bytes; | ||
289 | u32 valid_bytes_received_hi; | ||
290 | u32 valid_bytes_received_lo; | ||
291 | u32 error_runt_packets_received; | ||
292 | u32 error_jabber_packets_received; | ||
293 | u32 mac_stx_end; | ||
294 | |||
295 | u32 pad2; | ||
296 | u32 stat_IfHCInBadOctets_hi; | ||
297 | u32 stat_IfHCInBadOctets_lo; | ||
298 | u32 stat_IfHCOutBadOctets_hi; | ||
299 | u32 stat_IfHCOutBadOctets_lo; | ||
300 | u32 stat_Dot3statsFramesTooLong; | ||
301 | u32 stat_Dot3statsInternalMacTransmitErrors; | ||
302 | u32 stat_Dot3StatsCarrierSenseErrors; | ||
303 | u32 stat_Dot3StatsDeferredTransmissions; | ||
304 | u32 stat_FlowControlDone; | ||
305 | u32 stat_XoffStateEntered; | ||
306 | |||
307 | u32 x_total_sent_bytes_hi; | ||
308 | u32 x_total_sent_bytes_lo; | ||
309 | u32 x_total_sent_pkts; | ||
310 | |||
311 | u32 t_rcv_unicast_bytes_hi; | ||
312 | u32 t_rcv_unicast_bytes_lo; | ||
313 | u32 t_rcv_broadcast_bytes_hi; | ||
314 | u32 t_rcv_broadcast_bytes_lo; | ||
315 | u32 t_rcv_multicast_bytes_hi; | ||
316 | u32 t_rcv_multicast_bytes_lo; | ||
317 | u32 t_total_rcv_pkt; | ||
318 | |||
319 | u32 checksum_discard; | ||
320 | u32 packets_too_big_discard; | ||
321 | u32 no_buff_discard; | ||
322 | u32 ttl0_discard; | ||
323 | u32 mac_discard; | ||
324 | u32 mac_filter_discard; | ||
325 | u32 xxoverflow_discard; | ||
326 | u32 brb_truncate_discard; | ||
327 | |||
328 | u32 brb_discard; | ||
329 | u32 brb_packet; | ||
330 | u32 brb_truncate; | ||
331 | u32 flow_ctrl_discard; | ||
332 | u32 flow_ctrl_octets; | ||
333 | u32 flow_ctrl_packet; | ||
334 | u32 mng_discard; | ||
335 | u32 mng_octet_inp; | ||
336 | u32 mng_octet_out; | ||
337 | u32 mng_packet_inp; | ||
338 | u32 mng_packet_out; | ||
339 | u32 pbf_octets; | ||
340 | u32 pbf_packet; | ||
341 | u32 safc_inp; | ||
342 | u32 driver_xoff; | ||
343 | u32 number_of_bugs_found_in_stats_spec; /* just kidding */ | ||
344 | }; | ||
345 | |||
346 | #define MAC_STX_NA 0xffffffff | ||
347 | |||
348 | #ifdef BNX2X_MULTI | ||
349 | #define MAX_CONTEXT 16 | ||
350 | #else | ||
351 | #define MAX_CONTEXT 1 | ||
352 | #endif | ||
353 | |||
354 | union cdu_context { | ||
355 | struct eth_context eth; | ||
356 | char pad[1024]; | ||
357 | }; | ||
358 | |||
359 | #define MAX_DMAE_C 5 | ||
360 | |||
361 | /* DMA memory not used in fastpath */ | ||
362 | struct bnx2x_slowpath { | ||
363 | union cdu_context context[MAX_CONTEXT]; | ||
364 | struct eth_stats_query fw_stats; | ||
365 | struct mac_configuration_cmd mac_config; | ||
366 | struct mac_configuration_cmd mcast_config; | ||
367 | |||
368 | /* used by dmae command executer */ | ||
369 | struct dmae_command dmae[MAX_DMAE_C]; | ||
370 | |||
371 | union mac_stats mac_stats; | ||
372 | struct nig_stats nig; | ||
373 | struct bnx2x_eth_stats eth_stats; | ||
374 | |||
375 | u32 wb_comp; | ||
376 | #define BNX2X_WB_COMP_VAL 0xe0d0d0ae | ||
377 | u32 wb_data[4]; | ||
378 | }; | ||
379 | |||
380 | #define bnx2x_sp(bp, var) (&bp->slowpath->var) | ||
381 | #define bnx2x_sp_check(bp, var) ((bp->slowpath) ? (&bp->slowpath->var) : NULL) | ||
382 | #define bnx2x_sp_mapping(bp, var) \ | ||
383 | (bp->slowpath_mapping + offsetof(struct bnx2x_slowpath, var)) | ||
384 | |||
385 | |||
386 | struct sw_rx_bd { | ||
387 | struct sk_buff *skb; | ||
388 | DECLARE_PCI_UNMAP_ADDR(mapping) | ||
389 | }; | ||
390 | |||
391 | struct sw_tx_bd { | ||
392 | struct sk_buff *skb; | ||
393 | u16 first_bd; | ||
394 | }; | ||
395 | |||
396 | struct bnx2x_fastpath { | ||
397 | |||
398 | struct napi_struct napi; | ||
399 | |||
400 | struct host_status_block *status_blk; | ||
401 | dma_addr_t status_blk_mapping; | ||
402 | |||
403 | struct eth_tx_db_data *hw_tx_prods; | ||
404 | dma_addr_t tx_prods_mapping; | ||
405 | |||
406 | struct sw_tx_bd *tx_buf_ring; | ||
407 | |||
408 | struct eth_tx_bd *tx_desc_ring; | ||
409 | dma_addr_t tx_desc_mapping; | ||
410 | |||
411 | struct sw_rx_bd *rx_buf_ring; | ||
412 | |||
413 | struct eth_rx_bd *rx_desc_ring; | ||
414 | dma_addr_t rx_desc_mapping; | ||
415 | |||
416 | union eth_rx_cqe *rx_comp_ring; | ||
417 | dma_addr_t rx_comp_mapping; | ||
418 | |||
419 | int state; | ||
420 | #define BNX2X_FP_STATE_CLOSED 0 | ||
421 | #define BNX2X_FP_STATE_IRQ 0x80000 | ||
422 | #define BNX2X_FP_STATE_OPENING 0x90000 | ||
423 | #define BNX2X_FP_STATE_OPEN 0xa0000 | ||
424 | #define BNX2X_FP_STATE_HALTING 0xb0000 | ||
425 | #define BNX2X_FP_STATE_HALTED 0xc0000 | ||
426 | #define BNX2X_FP_STATE_DELETED 0xd0000 | ||
427 | #define BNX2X_FP_STATE_CLOSE_IRQ 0xe0000 | ||
428 | |||
429 | int index; | ||
430 | |||
431 | u16 tx_pkt_prod; | ||
432 | u16 tx_pkt_cons; | ||
433 | u16 tx_bd_prod; | ||
434 | u16 tx_bd_cons; | ||
435 | u16 *tx_cons_sb; | ||
436 | |||
437 | u16 fp_c_idx; | ||
438 | u16 fp_u_idx; | ||
439 | |||
440 | u16 rx_bd_prod; | ||
441 | u16 rx_bd_cons; | ||
442 | u16 rx_comp_prod; | ||
443 | u16 rx_comp_cons; | ||
444 | u16 *rx_cons_sb; | ||
445 | |||
446 | unsigned long tx_pkt, | ||
447 | rx_pkt, | ||
448 | rx_calls; | ||
449 | |||
450 | struct bnx2x *bp; /* parent */ | ||
451 | }; | ||
452 | |||
453 | #define bnx2x_fp(bp, nr, var) (bp->fp[nr].var) | ||
454 | |||
455 | |||
456 | /* attn group wiring */ | ||
457 | #define MAX_DYNAMIC_ATTN_GRPS 8 | ||
458 | |||
459 | struct attn_route { | ||
460 | u32 sig[4]; | ||
461 | }; | ||
462 | |||
463 | struct bnx2x { | ||
464 | /* Fields used in the tx and intr/napi performance paths | ||
465 | * are grouped together in the beginning of the structure | ||
466 | */ | ||
467 | struct bnx2x_fastpath *fp; | ||
468 | void __iomem *regview; | ||
469 | void __iomem *doorbells; | ||
470 | |||
471 | struct net_device *dev; | ||
472 | struct pci_dev *pdev; | ||
473 | |||
474 | atomic_t intr_sem; | ||
475 | struct msix_entry msix_table[MAX_CONTEXT+1]; | ||
476 | |||
477 | int tx_ring_size; | ||
478 | |||
479 | #ifdef BCM_VLAN | ||
480 | struct vlan_group *vlgrp; | ||
481 | #endif | ||
482 | |||
483 | u32 rx_csum; | ||
484 | u32 rx_offset; | ||
485 | u32 rx_buf_use_size; /* useable size */ | ||
486 | u32 rx_buf_size; /* with alignment */ | ||
487 | #define ETH_OVREHEAD (ETH_HLEN + 8) /* 8 for CRC + VLAN */ | ||
488 | #define ETH_MIN_PACKET_SIZE 60 | ||
489 | #define ETH_MAX_PACKET_SIZE 1500 | ||
490 | #define ETH_MAX_JUMBO_PACKET_SIZE 9600 | ||
491 | |||
492 | struct host_def_status_block *def_status_blk; | ||
493 | #define DEF_SB_ID 16 | ||
494 | u16 def_c_idx; | ||
495 | u16 def_u_idx; | ||
496 | u16 def_t_idx; | ||
497 | u16 def_x_idx; | ||
498 | u16 def_att_idx; | ||
499 | u32 attn_state; | ||
500 | struct attn_route attn_group[MAX_DYNAMIC_ATTN_GRPS]; | ||
501 | u32 aeu_mask; | ||
502 | u32 nig_mask; | ||
503 | |||
504 | /* slow path ring */ | ||
505 | struct eth_spe *spq; | ||
506 | dma_addr_t spq_mapping; | ||
507 | u16 spq_prod_idx; | ||
508 | u16 dsb_sp_prod_idx; | ||
509 | struct eth_spe *spq_prod_bd; | ||
510 | struct eth_spe *spq_last_bd; | ||
511 | u16 *dsb_sp_prod; | ||
512 | u16 spq_left; /* serialize spq */ | ||
513 | spinlock_t spq_lock; | ||
514 | |||
515 | /* Flag for marking that there is either | ||
516 | * STAT_QUERY or CFC DELETE ramrod pending | ||
517 | */ | ||
518 | u8 stat_pending; | ||
519 | |||
520 | /* End of fileds used in the performance code paths */ | ||
521 | |||
522 | int panic; | ||
523 | int msglevel; | ||
524 | |||
525 | u32 flags; | ||
526 | #define PCIX_FLAG 1 | ||
527 | #define PCI_32BIT_FLAG 2 | ||
528 | #define ONE_TDMA_FLAG 4 /* no longer used */ | ||
529 | #define NO_WOL_FLAG 8 | ||
530 | #define USING_DAC_FLAG 0x10 | ||
531 | #define USING_MSIX_FLAG 0x20 | ||
532 | #define ASF_ENABLE_FLAG 0x40 | ||
533 | |||
534 | int port; | ||
535 | |||
536 | int pm_cap; | ||
537 | int pcie_cap; | ||
538 | |||
539 | /* Used to synchronize phy accesses */ | ||
540 | spinlock_t phy_lock; | ||
541 | |||
542 | struct work_struct reset_task; | ||
543 | u16 in_reset_task; | ||
544 | |||
545 | struct work_struct sp_task; | ||
546 | |||
547 | struct timer_list timer; | ||
548 | int timer_interval; | ||
549 | int current_interval; | ||
550 | |||
551 | u32 shmem_base; | ||
552 | |||
553 | u32 chip_id; | ||
554 | /* chip num:16-31, rev:12-15, metal:4-11, bond_id:0-3 */ | ||
555 | #define CHIP_ID(bp) (((bp)->chip_id) & 0xfffffff0) | ||
556 | |||
557 | #define CHIP_NUM(bp) (((bp)->chip_id) & 0xffff0000) | ||
558 | #define CHIP_NUM_5710 0x57100000 | ||
559 | |||
560 | #define CHIP_REV(bp) (((bp)->chip_id) & 0x0000f000) | ||
561 | #define CHIP_REV_Ax 0x00000000 | ||
562 | #define CHIP_REV_Bx 0x00001000 | ||
563 | #define CHIP_REV_Cx 0x00002000 | ||
564 | #define CHIP_REV_EMUL 0x0000e000 | ||
565 | #define CHIP_REV_FPGA 0x0000f000 | ||
566 | #define CHIP_REV_IS_SLOW(bp) ((CHIP_REV(bp) == CHIP_REV_EMUL) || \ | ||
567 | (CHIP_REV(bp) == CHIP_REV_FPGA)) | ||
568 | |||
569 | #define CHIP_METAL(bp) (((bp)->chip_id) & 0x00000ff0) | ||
570 | #define CHIP_BOND_ID(bp) (((bp)->chip_id) & 0x0000000f) | ||
571 | |||
572 | u16 fw_seq; | ||
573 | u16 fw_drv_pulse_wr_seq; | ||
574 | u32 fw_mb; | ||
575 | |||
576 | u32 hw_config; | ||
577 | u32 serdes_config; | ||
578 | u32 lane_config; | ||
579 | u32 ext_phy_config; | ||
580 | #define XGXS_EXT_PHY_TYPE(bp) (bp->ext_phy_config & \ | ||
581 | PORT_HW_CFG_XGXS_EXT_PHY_TYPE_MASK) | ||
582 | #define SERDES_EXT_PHY_TYPE(bp) (bp->ext_phy_config & \ | ||
583 | PORT_HW_CFG_SERDES_EXT_PHY_TYPE_MASK) | ||
584 | |||
585 | u32 speed_cap_mask; | ||
586 | u32 link_config; | ||
587 | #define SWITCH_CFG_1G PORT_FEATURE_CON_SWITCH_1G_SWITCH | ||
588 | #define SWITCH_CFG_10G PORT_FEATURE_CON_SWITCH_10G_SWITCH | ||
589 | #define SWITCH_CFG_AUTO_DETECT PORT_FEATURE_CON_SWITCH_AUTO_DETECT | ||
590 | #define SWITCH_CFG_ONE_TIME_DETECT \ | ||
591 | PORT_FEATURE_CON_SWITCH_ONE_TIME_DETECT | ||
592 | |||
593 | u8 ser_lane; | ||
594 | u8 rx_lane_swap; | ||
595 | u8 tx_lane_swap; | ||
596 | |||
597 | u8 link_up; | ||
598 | |||
599 | u32 supported; | ||
600 | /* link settings - missing defines */ | ||
601 | #define SUPPORTED_2500baseT_Full (1 << 15) | ||
602 | #define SUPPORTED_CX4 (1 << 16) | ||
603 | |||
604 | u32 phy_flags; | ||
605 | /*#define PHY_SERDES_FLAG 0x1*/ | ||
606 | #define PHY_BMAC_FLAG 0x2 | ||
607 | #define PHY_EMAC_FLAG 0x4 | ||
608 | #define PHY_XGXS_FLAG 0x8 | ||
609 | #define PHY_SGMII_FLAG 0x10 | ||
610 | #define PHY_INT_MODE_MASK_FLAG 0x300 | ||
611 | #define PHY_INT_MODE_AUTO_POLLING_FLAG 0x100 | ||
612 | #define PHY_INT_MODE_LINK_READY_FLAG 0x200 | ||
613 | |||
614 | u32 phy_addr; | ||
615 | u32 phy_id; | ||
616 | |||
617 | u32 autoneg; | ||
618 | #define AUTONEG_CL37 SHARED_HW_CFG_AN_ENABLE_CL37 | ||
619 | #define AUTONEG_CL73 SHARED_HW_CFG_AN_ENABLE_CL73 | ||
620 | #define AUTONEG_BAM SHARED_HW_CFG_AN_ENABLE_BAM | ||
621 | #define AUTONEG_PARALLEL \ | ||
622 | SHARED_HW_CFG_AN_ENABLE_PARALLEL_DETECTION | ||
623 | #define AUTONEG_SGMII_FIBER_AUTODET \ | ||
624 | SHARED_HW_CFG_AN_EN_SGMII_FIBER_AUTO_DETECT | ||
625 | #define AUTONEG_REMOTE_PHY SHARED_HW_CFG_AN_ENABLE_REMOTE_PHY | ||
626 | |||
627 | u32 req_autoneg; | ||
628 | #define AUTONEG_SPEED 0x1 | ||
629 | #define AUTONEG_FLOW_CTRL 0x2 | ||
630 | |||
631 | u32 req_line_speed; | ||
632 | /* link settings - missing defines */ | ||
633 | #define SPEED_12000 12000 | ||
634 | #define SPEED_12500 12500 | ||
635 | #define SPEED_13000 13000 | ||
636 | #define SPEED_15000 15000 | ||
637 | #define SPEED_16000 16000 | ||
638 | |||
639 | u32 req_duplex; | ||
640 | u32 req_flow_ctrl; | ||
641 | #define FLOW_CTRL_AUTO PORT_FEATURE_FLOW_CONTROL_AUTO | ||
642 | #define FLOW_CTRL_TX PORT_FEATURE_FLOW_CONTROL_TX | ||
643 | #define FLOW_CTRL_RX PORT_FEATURE_FLOW_CONTROL_RX | ||
644 | #define FLOW_CTRL_BOTH PORT_FEATURE_FLOW_CONTROL_BOTH | ||
645 | #define FLOW_CTRL_NONE PORT_FEATURE_FLOW_CONTROL_NONE | ||
646 | |||
647 | u32 pause_mode; | ||
648 | #define PAUSE_NONE 0 | ||
649 | #define PAUSE_SYMMETRIC 1 | ||
650 | #define PAUSE_ASYMMETRIC 2 | ||
651 | #define PAUSE_BOTH 3 | ||
652 | |||
653 | u32 advertising; | ||
654 | /* link settings - missing defines */ | ||
655 | #define ADVERTISED_2500baseT_Full (1 << 15) | ||
656 | #define ADVERTISED_CX4 (1 << 16) | ||
657 | |||
658 | u32 link_status; | ||
659 | u32 line_speed; | ||
660 | u32 duplex; | ||
661 | u32 flow_ctrl; | ||
662 | |||
663 | u32 bc_ver; | ||
664 | |||
665 | int flash_size; | ||
666 | #define NVRAM_1MB_SIZE 0x20000 /* 1M bit in bytes */ | ||
667 | #define NVRAM_TIMEOUT_COUNT 30000 | ||
668 | #define NVRAM_PAGE_SIZE 256 | ||
669 | |||
670 | int rx_ring_size; | ||
671 | |||
672 | u16 tx_quick_cons_trip_int; | ||
673 | u16 tx_quick_cons_trip; | ||
674 | u16 tx_ticks_int; | ||
675 | u16 tx_ticks; | ||
676 | |||
677 | u16 rx_quick_cons_trip_int; | ||
678 | u16 rx_quick_cons_trip; | ||
679 | u16 rx_ticks_int; | ||
680 | u16 rx_ticks; | ||
681 | |||
682 | u32 stats_ticks; | ||
683 | |||
684 | int state; | ||
685 | #define BNX2X_STATE_CLOSED 0x0 | ||
686 | #define BNX2X_STATE_OPENING_WAIT4_LOAD 0x1000 | ||
687 | #define BNX2X_STATE_OPENING_WAIT4_PORT 0x2000 | ||
688 | #define BNX2X_STATE_OPEN 0x3000 | ||
689 | #define BNX2X_STATE_CLOSING_WAIT4_HALT 0x4000 | ||
690 | #define BNX2X_STATE_CLOSING_WAIT4_DELETE 0x5000 | ||
691 | #define BNX2X_STATE_CLOSING_WAIT4_UNLOAD 0x6000 | ||
692 | #define BNX2X_STATE_ERROR 0xF000 | ||
693 | |||
694 | int num_queues; | ||
695 | |||
696 | u32 rx_mode; | ||
697 | #define BNX2X_RX_MODE_NONE 0 | ||
698 | #define BNX2X_RX_MODE_NORMAL 1 | ||
699 | #define BNX2X_RX_MODE_ALLMULTI 2 | ||
700 | #define BNX2X_RX_MODE_PROMISC 3 | ||
701 | #define BNX2X_MAX_MULTICAST 64 | ||
702 | #define BNX2X_MAX_EMUL_MULTI 16 | ||
703 | |||
704 | dma_addr_t def_status_blk_mapping; | ||
705 | |||
706 | struct bnx2x_slowpath *slowpath; | ||
707 | dma_addr_t slowpath_mapping; | ||
708 | |||
709 | #ifdef BCM_ISCSI | ||
710 | void *t1; | ||
711 | dma_addr_t t1_mapping; | ||
712 | void *t2; | ||
713 | dma_addr_t t2_mapping; | ||
714 | void *timers; | ||
715 | dma_addr_t timers_mapping; | ||
716 | void *qm; | ||
717 | dma_addr_t qm_mapping; | ||
718 | #endif | ||
719 | |||
720 | char *name; | ||
721 | u16 bus_speed_mhz; | ||
722 | u8 wol; | ||
723 | u8 pad; | ||
724 | |||
725 | /* used to synchronize stats collecting */ | ||
726 | int stats_state; | ||
727 | #define STATS_STATE_DISABLE 0 | ||
728 | #define STATS_STATE_ENABLE 1 | ||
729 | #define STATS_STATE_STOP 2 /* stop stats on next iteration */ | ||
730 | |||
731 | /* used by dmae command loader */ | ||
732 | struct dmae_command dmae; | ||
733 | int executer_idx; | ||
734 | |||
735 | u32 old_brb_discard; | ||
736 | struct bmac_stats old_bmac; | ||
737 | struct tstorm_per_client_stats old_tclient; | ||
738 | struct z_stream_s *strm; | ||
739 | void *gunzip_buf; | ||
740 | dma_addr_t gunzip_mapping; | ||
741 | int gunzip_outlen; | ||
742 | #define FW_BUF_SIZE 0x8000 | ||
743 | |||
744 | }; | ||
745 | |||
746 | |||
747 | /* DMAE command defines */ | ||
748 | #define DMAE_CMD_SRC_PCI 0 | ||
749 | #define DMAE_CMD_SRC_GRC DMAE_COMMAND_SRC | ||
750 | |||
751 | #define DMAE_CMD_DST_PCI (1 << DMAE_COMMAND_DST_SHIFT) | ||
752 | #define DMAE_CMD_DST_GRC (2 << DMAE_COMMAND_DST_SHIFT) | ||
753 | |||
754 | #define DMAE_CMD_C_DST_PCI 0 | ||
755 | #define DMAE_CMD_C_DST_GRC (1 << DMAE_COMMAND_C_DST_SHIFT) | ||
756 | |||
757 | #define DMAE_CMD_C_ENABLE DMAE_COMMAND_C_TYPE_ENABLE | ||
758 | |||
759 | #define DMAE_CMD_ENDIANITY_NO_SWAP (0 << DMAE_COMMAND_ENDIANITY_SHIFT) | ||
760 | #define DMAE_CMD_ENDIANITY_B_SWAP (1 << DMAE_COMMAND_ENDIANITY_SHIFT) | ||
761 | #define DMAE_CMD_ENDIANITY_DW_SWAP (2 << DMAE_COMMAND_ENDIANITY_SHIFT) | ||
762 | #define DMAE_CMD_ENDIANITY_B_DW_SWAP (3 << DMAE_COMMAND_ENDIANITY_SHIFT) | ||
763 | |||
764 | #define DMAE_CMD_PORT_0 0 | ||
765 | #define DMAE_CMD_PORT_1 DMAE_COMMAND_PORT | ||
766 | |||
767 | #define DMAE_CMD_SRC_RESET DMAE_COMMAND_SRC_RESET | ||
768 | #define DMAE_CMD_DST_RESET DMAE_COMMAND_DST_RESET | ||
769 | |||
770 | #define DMAE_LEN32_MAX 0x400 | ||
771 | |||
772 | |||
773 | /* MC hsi */ | ||
774 | #define RX_COPY_THRESH 92 | ||
775 | #define BCM_PAGE_BITS 12 | ||
776 | #define BCM_PAGE_SIZE (1 << BCM_PAGE_BITS) | ||
777 | |||
778 | #define NUM_TX_RINGS 16 | ||
779 | #define TX_DESC_CNT (BCM_PAGE_SIZE / sizeof(struct eth_tx_bd)) | ||
780 | #define MAX_TX_DESC_CNT (TX_DESC_CNT - 1) | ||
781 | #define NUM_TX_BD (TX_DESC_CNT * NUM_TX_RINGS) | ||
782 | #define MAX_TX_BD (NUM_TX_BD - 1) | ||
783 | #define MAX_TX_AVAIL (MAX_TX_DESC_CNT * NUM_TX_RINGS - 2) | ||
784 | #define NEXT_TX_IDX(x) ((((x) & MAX_TX_DESC_CNT) == \ | ||
785 | (MAX_TX_DESC_CNT - 1)) ? (x) + 2 : (x) + 1) | ||
786 | #define TX_BD(x) ((x) & MAX_TX_BD) | ||
787 | #define TX_BD_POFF(x) ((x) & MAX_TX_DESC_CNT) | ||
788 | |||
789 | /* The RX BD ring is special, each bd is 8 bytes but the last one is 16 */ | ||
790 | #define NUM_RX_RINGS 8 | ||
791 | #define RX_DESC_CNT (BCM_PAGE_SIZE / sizeof(struct eth_rx_bd)) | ||
792 | #define MAX_RX_DESC_CNT (RX_DESC_CNT - 2) | ||
793 | #define RX_DESC_MASK (RX_DESC_CNT - 1) | ||
794 | #define NUM_RX_BD (RX_DESC_CNT * NUM_RX_RINGS) | ||
795 | #define MAX_RX_BD (NUM_RX_BD - 1) | ||
796 | #define MAX_RX_AVAIL (MAX_RX_DESC_CNT * NUM_RX_RINGS - 2) | ||
797 | #define NEXT_RX_IDX(x) ((((x) & RX_DESC_MASK) == \ | ||
798 | (MAX_RX_DESC_CNT - 1)) ? (x) + 3 : (x) + 1) | ||
799 | #define RX_BD(x) ((x) & MAX_RX_BD) | ||
800 | |||
801 | #define NUM_RCQ_RINGS (NUM_RX_RINGS * 2) | ||
802 | #define RCQ_DESC_CNT (BCM_PAGE_SIZE / sizeof(union eth_rx_cqe)) | ||
803 | #define MAX_RCQ_DESC_CNT (RCQ_DESC_CNT - 1) | ||
804 | #define NUM_RCQ_BD (RCQ_DESC_CNT * NUM_RCQ_RINGS) | ||
805 | #define MAX_RCQ_BD (NUM_RCQ_BD - 1) | ||
806 | #define MAX_RCQ_AVAIL (MAX_RCQ_DESC_CNT * NUM_RCQ_RINGS - 2) | ||
807 | #define NEXT_RCQ_IDX(x) ((((x) & MAX_RCQ_DESC_CNT) == \ | ||
808 | (MAX_RCQ_DESC_CNT - 1)) ? (x) + 2 : (x) + 1) | ||
809 | #define RCQ_BD(x) ((x) & MAX_RCQ_BD) | ||
810 | |||
811 | |||
812 | /* used on a CID received from the HW */ | ||
813 | #define SW_CID(x) (le32_to_cpu(x) & \ | ||
814 | (COMMON_RAMROD_ETH_RX_CQE_CID >> 1)) | ||
815 | #define CQE_CMD(x) (le32_to_cpu(x) >> \ | ||
816 | COMMON_RAMROD_ETH_RX_CQE_CMD_ID_SHIFT) | ||
817 | |||
818 | #define BD_UNMAP_ADDR(bd) HILO_U64(le32_to_cpu((bd)->addr_hi), \ | ||
819 | le32_to_cpu((bd)->addr_lo)) | ||
820 | #define BD_UNMAP_LEN(bd) (le16_to_cpu((bd)->nbytes)) | ||
821 | |||
822 | |||
823 | #define STROM_ASSERT_ARRAY_SIZE 50 | ||
824 | |||
825 | |||
826 | #define MDIO_INDIRECT_REG_ADDR 0x1f | ||
827 | #define MDIO_SET_REG_BANK(bp, reg_bank) \ | ||
828 | bnx2x_mdio22_write(bp, MDIO_INDIRECT_REG_ADDR, reg_bank) | ||
829 | |||
830 | #define MDIO_ACCESS_TIMEOUT 1000 | ||
831 | |||
832 | |||
833 | /* must be used on a CID before placing it on a HW ring */ | ||
834 | #define HW_CID(bp, x) (x | (bp->port << 23)) | ||
835 | |||
836 | #define SP_DESC_CNT (BCM_PAGE_SIZE / sizeof(struct eth_spe)) | ||
837 | #define MAX_SP_DESC_CNT (SP_DESC_CNT - 1) | ||
838 | |||
839 | #define ATTN_NIG_FOR_FUNC (1L << 8) | ||
840 | #define ATTN_SW_TIMER_4_FUNC (1L << 9) | ||
841 | #define GPIO_2_FUNC (1L << 10) | ||
842 | #define GPIO_3_FUNC (1L << 11) | ||
843 | #define GPIO_4_FUNC (1L << 12) | ||
844 | #define ATTN_GENERAL_ATTN_1 (1L << 13) | ||
845 | #define ATTN_GENERAL_ATTN_2 (1L << 14) | ||
846 | #define ATTN_GENERAL_ATTN_3 (1L << 15) | ||
847 | #define ATTN_GENERAL_ATTN_4 (1L << 13) | ||
848 | #define ATTN_GENERAL_ATTN_5 (1L << 14) | ||
849 | #define ATTN_GENERAL_ATTN_6 (1L << 15) | ||
850 | |||
851 | #define ATTN_HARD_WIRED_MASK 0xff00 | ||
852 | #define ATTENTION_ID 4 | ||
853 | |||
854 | |||
855 | #define BNX2X_BTR 3 | ||
856 | #define MAX_SPQ_PENDING 8 | ||
857 | |||
858 | |||
859 | #define BNX2X_NUM_STATS 31 | ||
860 | #define BNX2X_NUM_TESTS 2 | ||
861 | |||
862 | |||
863 | #define DPM_TRIGER_TYPE 0x40 | ||
864 | #define DOORBELL(bp, cid, val) \ | ||
865 | do { \ | ||
866 | writel((u32)val, (bp)->doorbells + (BCM_PAGE_SIZE * cid) + \ | ||
867 | DPM_TRIGER_TYPE); \ | ||
868 | } while (0) | ||
869 | |||
870 | |||
871 | /* stuff added to make the code fit 80Col */ | ||
872 | |||
873 | #define TPA_TYPE_START ETH_FAST_PATH_RX_CQE_START_FLG | ||
874 | #define TPA_TYPE_END ETH_FAST_PATH_RX_CQE_END_FLG | ||
875 | #define TPA_TYPE(cqe) (cqe->fast_path_cqe.error_type_flags & \ | ||
876 | (TPA_TYPE_START | TPA_TYPE_END)) | ||
877 | #define BNX2X_RX_SUM_OK(cqe) \ | ||
878 | (!(cqe->fast_path_cqe.status_flags & \ | ||
879 | (ETH_FAST_PATH_RX_CQE_IP_XSUM_NO_VALIDATION_FLG | \ | ||
880 | ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG))) | ||
881 | |||
882 | #define BNX2X_RX_SUM_FIX(cqe) \ | ||
883 | ((le16_to_cpu(cqe->fast_path_cqe.pars_flags.flags) & \ | ||
884 | PARSING_FLAGS_OVER_ETHERNET_PROTOCOL) == \ | ||
885 | (1 << PARSING_FLAGS_OVER_ETHERNET_PROTOCOL_SHIFT)) | ||
886 | |||
887 | |||
888 | #define MDIO_AN_CL73_OR_37_COMPLETE \ | ||
889 | (MDIO_GP_STATUS_TOP_AN_STATUS1_CL73_AUTONEG_COMPLETE | \ | ||
890 | MDIO_GP_STATUS_TOP_AN_STATUS1_CL37_AUTONEG_COMPLETE) | ||
891 | |||
892 | #define GP_STATUS_PAUSE_RSOLUTION_TXSIDE \ | ||
893 | MDIO_GP_STATUS_TOP_AN_STATUS1_PAUSE_RSOLUTION_TXSIDE | ||
894 | #define GP_STATUS_PAUSE_RSOLUTION_RXSIDE \ | ||
895 | MDIO_GP_STATUS_TOP_AN_STATUS1_PAUSE_RSOLUTION_RXSIDE | ||
896 | #define GP_STATUS_SPEED_MASK \ | ||
897 | MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_MASK | ||
898 | #define GP_STATUS_10M MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10M | ||
899 | #define GP_STATUS_100M MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_100M | ||
900 | #define GP_STATUS_1G MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_1G | ||
901 | #define GP_STATUS_2_5G MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_2_5G | ||
902 | #define GP_STATUS_5G MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_5G | ||
903 | #define GP_STATUS_6G MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_6G | ||
904 | #define GP_STATUS_10G_HIG \ | ||
905 | MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_HIG | ||
906 | #define GP_STATUS_10G_CX4 \ | ||
907 | MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_CX4 | ||
908 | #define GP_STATUS_12G_HIG \ | ||
909 | MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_12G_HIG | ||
910 | #define GP_STATUS_12_5G MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_12_5G | ||
911 | #define GP_STATUS_13G MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_13G | ||
912 | #define GP_STATUS_15G MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_15G | ||
913 | #define GP_STATUS_16G MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_16G | ||
914 | #define GP_STATUS_1G_KX MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_1G_KX | ||
915 | #define GP_STATUS_10G_KX4 \ | ||
916 | MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_KX4 | ||
917 | |||
918 | #define LINK_10THD LINK_STATUS_SPEED_AND_DUPLEX_10THD | ||
919 | #define LINK_10TFD LINK_STATUS_SPEED_AND_DUPLEX_10TFD | ||
920 | #define LINK_100TXHD LINK_STATUS_SPEED_AND_DUPLEX_100TXHD | ||
921 | #define LINK_100T4 LINK_STATUS_SPEED_AND_DUPLEX_100T4 | ||
922 | #define LINK_100TXFD LINK_STATUS_SPEED_AND_DUPLEX_100TXFD | ||
923 | #define LINK_1000THD LINK_STATUS_SPEED_AND_DUPLEX_1000THD | ||
924 | #define LINK_1000TFD LINK_STATUS_SPEED_AND_DUPLEX_1000TFD | ||
925 | #define LINK_1000XFD LINK_STATUS_SPEED_AND_DUPLEX_1000XFD | ||
926 | #define LINK_2500THD LINK_STATUS_SPEED_AND_DUPLEX_2500THD | ||
927 | #define LINK_2500TFD LINK_STATUS_SPEED_AND_DUPLEX_2500TFD | ||
928 | #define LINK_2500XFD LINK_STATUS_SPEED_AND_DUPLEX_2500XFD | ||
929 | #define LINK_10GTFD LINK_STATUS_SPEED_AND_DUPLEX_10GTFD | ||
930 | #define LINK_10GXFD LINK_STATUS_SPEED_AND_DUPLEX_10GXFD | ||
931 | #define LINK_12GTFD LINK_STATUS_SPEED_AND_DUPLEX_12GTFD | ||
932 | #define LINK_12GXFD LINK_STATUS_SPEED_AND_DUPLEX_12GXFD | ||
933 | #define LINK_12_5GTFD LINK_STATUS_SPEED_AND_DUPLEX_12_5GTFD | ||
934 | #define LINK_12_5GXFD LINK_STATUS_SPEED_AND_DUPLEX_12_5GXFD | ||
935 | #define LINK_13GTFD LINK_STATUS_SPEED_AND_DUPLEX_13GTFD | ||
936 | #define LINK_13GXFD LINK_STATUS_SPEED_AND_DUPLEX_13GXFD | ||
937 | #define LINK_15GTFD LINK_STATUS_SPEED_AND_DUPLEX_15GTFD | ||
938 | #define LINK_15GXFD LINK_STATUS_SPEED_AND_DUPLEX_15GXFD | ||
939 | #define LINK_16GTFD LINK_STATUS_SPEED_AND_DUPLEX_16GTFD | ||
940 | #define LINK_16GXFD LINK_STATUS_SPEED_AND_DUPLEX_16GXFD | ||
941 | |||
942 | #define NIG_STATUS_INTERRUPT_XGXS0_LINK10G \ | ||
943 | NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK10G | ||
944 | #define NIG_XGXS0_LINK_STATUS \ | ||
945 | NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS | ||
946 | #define NIG_XGXS0_LINK_STATUS_SIZE \ | ||
947 | NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS_SIZE | ||
948 | #define NIG_SERDES0_LINK_STATUS \ | ||
949 | NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_SERDES0_LINK_STATUS | ||
950 | #define NIG_MASK_MI_INT \ | ||
951 | NIG_MASK_INTERRUPT_PORT0_REG_MASK_EMAC0_MISC_MI_INT | ||
952 | #define NIG_MASK_XGXS0_LINK10G \ | ||
953 | NIG_MASK_INTERRUPT_PORT0_REG_MASK_XGXS0_LINK10G | ||
954 | #define NIG_MASK_XGXS0_LINK_STATUS \ | ||
955 | NIG_MASK_INTERRUPT_PORT0_REG_MASK_XGXS0_LINK_STATUS | ||
956 | #define NIG_MASK_SERDES0_LINK_STATUS \ | ||
957 | NIG_MASK_INTERRUPT_PORT0_REG_MASK_SERDES0_LINK_STATUS | ||
958 | |||
959 | #define XGXS_RESET_BITS \ | ||
960 | (MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_RSTB_HW | \ | ||
961 | MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_IDDQ | \ | ||
962 | MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_PWRDWN | \ | ||
963 | MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_PWRDWN_SD | \ | ||
964 | MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_TXD_FIFO_RSTB) | ||
965 | |||
966 | #define SERDES_RESET_BITS \ | ||
967 | (MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_RSTB_HW | \ | ||
968 | MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_IDDQ | \ | ||
969 | MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_PWRDWN | \ | ||
970 | MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_PWRDWN_SD) | ||
971 | |||
972 | |||
973 | #define BNX2X_MC_ASSERT_BITS \ | ||
974 | (GENERAL_ATTEN_OFFSET(TSTORM_FATAL_ASSERT_ATTENTION_BIT) | \ | ||
975 | GENERAL_ATTEN_OFFSET(USTORM_FATAL_ASSERT_ATTENTION_BIT) | \ | ||
976 | GENERAL_ATTEN_OFFSET(CSTORM_FATAL_ASSERT_ATTENTION_BIT) | \ | ||
977 | GENERAL_ATTEN_OFFSET(XSTORM_FATAL_ASSERT_ATTENTION_BIT)) | ||
978 | |||
979 | #define BNX2X_MCP_ASSERT \ | ||
980 | GENERAL_ATTEN_OFFSET(MCP_FATAL_ASSERT_ATTENTION_BIT) | ||
981 | |||
982 | #define BNX2X_DOORQ_ASSERT \ | ||
983 | AEU_INPUTS_ATTN_BITS_DOORBELLQ_HW_INTERRUPT | ||
984 | |||
985 | #define HW_INTERRUT_ASSERT_SET_0 \ | ||
986 | (AEU_INPUTS_ATTN_BITS_TSDM_HW_INTERRUPT | \ | ||
987 | AEU_INPUTS_ATTN_BITS_TCM_HW_INTERRUPT | \ | ||
988 | AEU_INPUTS_ATTN_BITS_TSEMI_HW_INTERRUPT | \ | ||
989 | AEU_INPUTS_ATTN_BITS_PBF_HW_INTERRUPT) | ||
990 | #define HW_PRTY_ASSERT_SET_0 (AEU_INPUTS_ATTN_BITS_BRB_PARITY_ERROR | \ | ||
991 | AEU_INPUTS_ATTN_BITS_PARSER_PARITY_ERROR | \ | ||
992 | AEU_INPUTS_ATTN_BITS_TSDM_PARITY_ERROR | \ | ||
993 | AEU_INPUTS_ATTN_BITS_SEARCHER_PARITY_ERROR |\ | ||
994 | AEU_INPUTS_ATTN_BITS_TSEMI_PARITY_ERROR) | ||
995 | #define HW_INTERRUT_ASSERT_SET_1 \ | ||
996 | (AEU_INPUTS_ATTN_BITS_QM_HW_INTERRUPT | \ | ||
997 | AEU_INPUTS_ATTN_BITS_TIMERS_HW_INTERRUPT | \ | ||
998 | AEU_INPUTS_ATTN_BITS_XSDM_HW_INTERRUPT | \ | ||
999 | AEU_INPUTS_ATTN_BITS_XCM_HW_INTERRUPT | \ | ||
1000 | AEU_INPUTS_ATTN_BITS_XSEMI_HW_INTERRUPT | \ | ||
1001 | AEU_INPUTS_ATTN_BITS_USDM_HW_INTERRUPT | \ | ||
1002 | AEU_INPUTS_ATTN_BITS_UCM_HW_INTERRUPT | \ | ||
1003 | AEU_INPUTS_ATTN_BITS_USEMI_HW_INTERRUPT | \ | ||
1004 | AEU_INPUTS_ATTN_BITS_UPB_HW_INTERRUPT | \ | ||
1005 | AEU_INPUTS_ATTN_BITS_CSDM_HW_INTERRUPT | \ | ||
1006 | AEU_INPUTS_ATTN_BITS_CCM_HW_INTERRUPT) | ||
1007 | #define HW_PRTY_ASSERT_SET_1 (AEU_INPUTS_ATTN_BITS_PBCLIENT_PARITY_ERROR |\ | ||
1008 | AEU_INPUTS_ATTN_BITS_QM_PARITY_ERROR | \ | ||
1009 | AEU_INPUTS_ATTN_BITS_XSDM_PARITY_ERROR | \ | ||
1010 | AEU_INPUTS_ATTN_BITS_XSEMI_PARITY_ERROR | \ | ||
1011 | AEU_INPUTS_ATTN_BITS_DOORBELLQ_PARITY_ERROR |\ | ||
1012 | AEU_INPUTS_ATTN_BITS_VAUX_PCI_CORE_PARITY_ERROR |\ | ||
1013 | AEU_INPUTS_ATTN_BITS_DEBUG_PARITY_ERROR | \ | ||
1014 | AEU_INPUTS_ATTN_BITS_USDM_PARITY_ERROR | \ | ||
1015 | AEU_INPUTS_ATTN_BITS_USEMI_PARITY_ERROR | \ | ||
1016 | AEU_INPUTS_ATTN_BITS_UPB_PARITY_ERROR | \ | ||
1017 | AEU_INPUTS_ATTN_BITS_CSDM_PARITY_ERROR) | ||
1018 | #define HW_INTERRUT_ASSERT_SET_2 \ | ||
1019 | (AEU_INPUTS_ATTN_BITS_CSEMI_HW_INTERRUPT | \ | ||
1020 | AEU_INPUTS_ATTN_BITS_CDU_HW_INTERRUPT | \ | ||
1021 | AEU_INPUTS_ATTN_BITS_DMAE_HW_INTERRUPT | \ | ||
1022 | AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_HW_INTERRUPT |\ | ||
1023 | AEU_INPUTS_ATTN_BITS_MISC_HW_INTERRUPT) | ||
1024 | #define HW_PRTY_ASSERT_SET_2 (AEU_INPUTS_ATTN_BITS_CSEMI_PARITY_ERROR | \ | ||
1025 | AEU_INPUTS_ATTN_BITS_PXP_PARITY_ERROR | \ | ||
1026 | AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_PARITY_ERROR |\ | ||
1027 | AEU_INPUTS_ATTN_BITS_CFC_PARITY_ERROR | \ | ||
1028 | AEU_INPUTS_ATTN_BITS_CDU_PARITY_ERROR | \ | ||
1029 | AEU_INPUTS_ATTN_BITS_IGU_PARITY_ERROR | \ | ||
1030 | AEU_INPUTS_ATTN_BITS_MISC_PARITY_ERROR) | ||
1031 | |||
1032 | |||
1033 | #define ETH_RX_ERROR_FALGS (ETH_FAST_PATH_RX_CQE_PHY_DECODE_ERR_FLG | \ | ||
1034 | ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG | \ | ||
1035 | ETH_FAST_PATH_RX_CQE_L4_BAD_XSUM_FLG) | ||
1036 | |||
1037 | |||
1038 | #define MULTI_FLAGS \ | ||
1039 | (TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_CAPABILITY | \ | ||
1040 | TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_TCP_CAPABILITY | \ | ||
1041 | TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_CAPABILITY | \ | ||
1042 | TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY | \ | ||
1043 | TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_ENABLE) | ||
1044 | |||
1045 | #define MULTI_MASK 0x7f | ||
1046 | |||
1047 | |||
1048 | #define U_SB_ETH_RX_CQ_INDEX HC_INDEX_U_ETH_RX_CQ_CONS | ||
1049 | #define C_SB_ETH_TX_CQ_INDEX HC_INDEX_C_ETH_TX_CQ_CONS | ||
1050 | #define C_DEF_SB_SP_INDEX HC_INDEX_DEF_C_ETH_SLOW_PATH | ||
1051 | |||
1052 | #define BNX2X_RX_SB_INDEX \ | ||
1053 | &fp->status_blk->u_status_block.index_values[U_SB_ETH_RX_CQ_INDEX] | ||
1054 | |||
1055 | #define BNX2X_TX_SB_INDEX \ | ||
1056 | &fp->status_blk->c_status_block.index_values[C_SB_ETH_TX_CQ_INDEX] | ||
1057 | |||
1058 | #define BNX2X_SP_DSB_INDEX \ | ||
1059 | &bp->def_status_blk->c_def_status_block.index_values[C_DEF_SB_SP_INDEX] | ||
1060 | |||
1061 | |||
1062 | #define CAM_IS_INVALID(x) \ | ||
1063 | (x.target_table_entry.flags == TSTORM_CAM_TARGET_TABLE_ENTRY_ACTION_TYPE) | ||
1064 | |||
1065 | #define CAM_INVALIDATE(x) \ | ||
1066 | x.target_table_entry.flags = TSTORM_CAM_TARGET_TABLE_ENTRY_ACTION_TYPE | ||
1067 | |||
1068 | |||
1069 | /* MISC_REG_RESET_REG - this is here for the hsi to work don't touch */ | ||
1070 | |||
1071 | #endif /* bnx2x.h */ | ||
diff --git a/drivers/net/bnx2x_fw_defs.h b/drivers/net/bnx2x_fw_defs.h new file mode 100644 index 000000000000..62a6eb81025a --- /dev/null +++ b/drivers/net/bnx2x_fw_defs.h | |||
@@ -0,0 +1,198 @@ | |||
1 | /* bnx2x_fw_defs.h: Broadcom Everest network driver. | ||
2 | * | ||
3 | * Copyright (c) 2007 Broadcom Corporation | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation. | ||
8 | */ | ||
9 | |||
10 | |||
11 | #define CSTORM_DEF_SB_HC_DISABLE_OFFSET(port, index)\ | ||
12 | (0x1922 + (port * 0x40) + (index * 0x4)) | ||
13 | #define CSTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port)\ | ||
14 | (0x1900 + (port * 0x40)) | ||
15 | #define CSTORM_HC_BTR_OFFSET(port)\ | ||
16 | (0x1984 + (port * 0xc0)) | ||
17 | #define CSTORM_SB_HC_DISABLE_OFFSET(port, cpu_id, index)\ | ||
18 | (0x141a + (port * 0x280) + (cpu_id * 0x28) + (index * 0x4)) | ||
19 | #define CSTORM_SB_HC_TIMEOUT_OFFSET(port, cpu_id, index)\ | ||
20 | (0x1418 + (port * 0x280) + (cpu_id * 0x28) + (index * 0x4)) | ||
21 | #define CSTORM_SB_HOST_SB_ADDR_OFFSET(port, cpu_id)\ | ||
22 | (0x1400 + (port * 0x280) + (cpu_id * 0x28)) | ||
23 | #define CSTORM_STATS_FLAGS_OFFSET(port) (0x5108 + (port * 0x8)) | ||
24 | #define TSTORM_CLIENT_CONFIG_OFFSET(port, client_id)\ | ||
25 | (0x1510 + (port * 0x240) + (client_id * 0x20)) | ||
26 | #define TSTORM_DEF_SB_HC_DISABLE_OFFSET(port, index)\ | ||
27 | (0x138a + (port * 0x28) + (index * 0x4)) | ||
28 | #define TSTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port)\ | ||
29 | (0x1370 + (port * 0x28)) | ||
30 | #define TSTORM_ETH_STATS_QUERY_ADDR_OFFSET(port)\ | ||
31 | (0x4b70 + (port * 0x8)) | ||
32 | #define TSTORM_FUNCTION_COMMON_CONFIG_OFFSET(function)\ | ||
33 | (0x1418 + (function * 0x30)) | ||
34 | #define TSTORM_HC_BTR_OFFSET(port)\ | ||
35 | (0x13c4 + (port * 0x18)) | ||
36 | #define TSTORM_INDIRECTION_TABLE_OFFSET(port)\ | ||
37 | (0x22c8 + (port * 0x80)) | ||
38 | #define TSTORM_INDIRECTION_TABLE_SIZE 0x80 | ||
39 | #define TSTORM_MAC_FILTER_CONFIG_OFFSET(port)\ | ||
40 | (0x1420 + (port * 0x30)) | ||
41 | #define TSTORM_RCQ_PROD_OFFSET(port, client_id)\ | ||
42 | (0x1508 + (port * 0x240) + (client_id * 0x20)) | ||
43 | #define TSTORM_STATS_FLAGS_OFFSET(port) (0x4b90 + (port * 0x8)) | ||
44 | #define USTORM_DEF_SB_HC_DISABLE_OFFSET(port, index)\ | ||
45 | (0x191a + (port * 0x28) + (index * 0x4)) | ||
46 | #define USTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port)\ | ||
47 | (0x1900 + (port * 0x28)) | ||
48 | #define USTORM_HC_BTR_OFFSET(port)\ | ||
49 | (0x1954 + (port * 0xb8)) | ||
50 | #define USTORM_MEM_WORKAROUND_ADDRESS_OFFSET(port)\ | ||
51 | (0x5408 + (port * 0x8)) | ||
52 | #define USTORM_SB_HC_DISABLE_OFFSET(port, cpu_id, index)\ | ||
53 | (0x141a + (port * 0x280) + (cpu_id * 0x28) + (index * 0x4)) | ||
54 | #define USTORM_SB_HC_TIMEOUT_OFFSET(port, cpu_id, index)\ | ||
55 | (0x1418 + (port * 0x280) + (cpu_id * 0x28) + (index * 0x4)) | ||
56 | #define USTORM_SB_HOST_SB_ADDR_OFFSET(port, cpu_id)\ | ||
57 | (0x1400 + (port * 0x280) + (cpu_id * 0x28)) | ||
58 | #define XSTORM_ASSERT_LIST_INDEX_OFFSET 0x1000 | ||
59 | #define XSTORM_ASSERT_LIST_OFFSET(idx) (0x1020 + (idx * 0x10)) | ||
60 | #define XSTORM_DEF_SB_HC_DISABLE_OFFSET(port, index)\ | ||
61 | (0x141a + (port * 0x28) + (index * 0x4)) | ||
62 | #define XSTORM_DEF_SB_HOST_SB_ADDR_OFFSET(port)\ | ||
63 | (0x1400 + (port * 0x28)) | ||
64 | #define XSTORM_ETH_STATS_QUERY_ADDR_OFFSET(port)\ | ||
65 | (0x5408 + (port * 0x8)) | ||
66 | #define XSTORM_HC_BTR_OFFSET(port)\ | ||
67 | (0x1454 + (port * 0x18)) | ||
68 | #define XSTORM_SPQ_PAGE_BASE_OFFSET(port)\ | ||
69 | (0x5328 + (port * 0x18)) | ||
70 | #define XSTORM_SPQ_PROD_OFFSET(port)\ | ||
71 | (0x5330 + (port * 0x18)) | ||
72 | #define XSTORM_STATS_FLAGS_OFFSET(port) (0x53f8 + (port * 0x8)) | ||
73 | #define COMMON_ASM_INVALID_ASSERT_OPCODE 0x0 | ||
74 | |||
75 | /** | ||
76 | * This file defines HSI constatnts for the ETH flow | ||
77 | */ | ||
78 | |||
79 | /* hash types */ | ||
80 | #define DEFAULT_HASH_TYPE 0 | ||
81 | #define IPV4_HASH_TYPE 1 | ||
82 | #define TCP_IPV4_HASH_TYPE 2 | ||
83 | #define IPV6_HASH_TYPE 3 | ||
84 | #define TCP_IPV6_HASH_TYPE 4 | ||
85 | |||
86 | /* values of command IDs in the ramrod message */ | ||
87 | #define RAMROD_CMD_ID_ETH_PORT_SETUP (80) | ||
88 | #define RAMROD_CMD_ID_ETH_CLIENT_SETUP (85) | ||
89 | #define RAMROD_CMD_ID_ETH_STAT_QUERY (90) | ||
90 | #define RAMROD_CMD_ID_ETH_UPDATE (100) | ||
91 | #define RAMROD_CMD_ID_ETH_HALT (105) | ||
92 | #define RAMROD_CMD_ID_ETH_SET_MAC (110) | ||
93 | #define RAMROD_CMD_ID_ETH_CFC_DEL (115) | ||
94 | #define RAMROD_CMD_ID_ETH_PORT_DEL (120) | ||
95 | #define RAMROD_CMD_ID_ETH_FORWARD_SETUP (125) | ||
96 | |||
97 | |||
98 | /* command values for set mac command */ | ||
99 | #define T_ETH_MAC_COMMAND_SET 0 | ||
100 | #define T_ETH_MAC_COMMAND_INVALIDATE 1 | ||
101 | |||
102 | #define T_ETH_INDIRECTION_TABLE_SIZE 128 | ||
103 | |||
104 | /* Maximal L2 clients supported */ | ||
105 | #define ETH_MAX_RX_CLIENTS (18) | ||
106 | |||
107 | /** | ||
108 | * This file defines HSI constatnts common to all microcode flows | ||
109 | */ | ||
110 | |||
111 | /* Connection types */ | ||
112 | #define ETH_CONNECTION_TYPE 0 | ||
113 | |||
114 | #define PROTOCOL_STATE_BIT_OFFSET 6 | ||
115 | |||
116 | #define ETH_STATE (ETH_CONNECTION_TYPE << PROTOCOL_STATE_BIT_OFFSET) | ||
117 | |||
118 | /* microcode fixed page page size 4K (chains and ring segments) */ | ||
119 | #define MC_PAGE_SIZE (4096) | ||
120 | |||
121 | /* Host coalescing constants */ | ||
122 | |||
123 | /* IGU constants */ | ||
124 | #define IGU_PORT_BASE 0x0400 | ||
125 | |||
126 | #define IGU_ADDR_MSIX 0x0000 | ||
127 | #define IGU_ADDR_INT_ACK 0x0200 | ||
128 | #define IGU_ADDR_PROD_UPD 0x0201 | ||
129 | #define IGU_ADDR_ATTN_BITS_UPD 0x0202 | ||
130 | #define IGU_ADDR_ATTN_BITS_SET 0x0203 | ||
131 | #define IGU_ADDR_ATTN_BITS_CLR 0x0204 | ||
132 | #define IGU_ADDR_COALESCE_NOW 0x0205 | ||
133 | #define IGU_ADDR_SIMD_MASK 0x0206 | ||
134 | #define IGU_ADDR_SIMD_NOMASK 0x0207 | ||
135 | #define IGU_ADDR_MSI_CTL 0x0210 | ||
136 | #define IGU_ADDR_MSI_ADDR_LO 0x0211 | ||
137 | #define IGU_ADDR_MSI_ADDR_HI 0x0212 | ||
138 | #define IGU_ADDR_MSI_DATA 0x0213 | ||
139 | |||
140 | #define IGU_INT_ENABLE 0 | ||
141 | #define IGU_INT_DISABLE 1 | ||
142 | #define IGU_INT_NOP 2 | ||
143 | #define IGU_INT_NOP2 3 | ||
144 | |||
145 | /* index numbers */ | ||
146 | #define HC_USTORM_DEF_SB_NUM_INDICES 4 | ||
147 | #define HC_CSTORM_DEF_SB_NUM_INDICES 8 | ||
148 | #define HC_XSTORM_DEF_SB_NUM_INDICES 4 | ||
149 | #define HC_TSTORM_DEF_SB_NUM_INDICES 4 | ||
150 | #define HC_USTORM_SB_NUM_INDICES 4 | ||
151 | #define HC_CSTORM_SB_NUM_INDICES 4 | ||
152 | |||
153 | /* index values - which counterto update */ | ||
154 | |||
155 | #define HC_INDEX_U_ETH_RX_CQ_CONS 1 | ||
156 | |||
157 | #define HC_INDEX_C_ETH_TX_CQ_CONS 1 | ||
158 | |||
159 | #define HC_INDEX_DEF_X_SPQ_CONS 0 | ||
160 | |||
161 | #define HC_INDEX_DEF_C_ETH_FW_TX_CQ_CONS 2 | ||
162 | #define HC_INDEX_DEF_C_ETH_SLOW_PATH 3 | ||
163 | |||
164 | /* used by the driver to get the SB offset */ | ||
165 | #define USTORM_ID 0 | ||
166 | #define CSTORM_ID 1 | ||
167 | #define XSTORM_ID 2 | ||
168 | #define TSTORM_ID 3 | ||
169 | #define ATTENTION_ID 4 | ||
170 | |||
171 | /* max number of slow path commands per port */ | ||
172 | #define MAX_RAMRODS_PER_PORT (8) | ||
173 | |||
174 | /* values for RX ETH CQE type field */ | ||
175 | #define RX_ETH_CQE_TYPE_ETH_FASTPATH (0) | ||
176 | #define RX_ETH_CQE_TYPE_ETH_RAMROD (1) | ||
177 | |||
178 | /* MAC address list size */ | ||
179 | #define T_MAC_ADDRESS_LIST_SIZE (96) | ||
180 | |||
181 | #define XSTORM_IP_ID_ROLL_HALF 0x8000 | ||
182 | #define XSTORM_IP_ID_ROLL_ALL 0 | ||
183 | |||
184 | #define FW_LOG_LIST_SIZE (50) | ||
185 | |||
186 | #define NUM_OF_PROTOCOLS 4 | ||
187 | #define MAX_COS_NUMBER 16 | ||
188 | #define MAX_T_STAT_COUNTER_ID 18 | ||
189 | |||
190 | #define T_FAIR 1 | ||
191 | #define FAIR_MEM 2 | ||
192 | #define RS_PERIODIC_TIMEOUT_IN_SDM_TICS 25 | ||
193 | |||
194 | #define UNKNOWN_ADDRESS 0 | ||
195 | #define UNICAST_ADDRESS 1 | ||
196 | #define MULTICAST_ADDRESS 2 | ||
197 | #define BROADCAST_ADDRESS 3 | ||
198 | |||
diff --git a/drivers/net/bnx2x_hsi.h b/drivers/net/bnx2x_hsi.h new file mode 100644 index 000000000000..6fd959c34d1f --- /dev/null +++ b/drivers/net/bnx2x_hsi.h | |||
@@ -0,0 +1,2176 @@ | |||
1 | /* bnx2x_hsi.h: Broadcom Everest network driver. | ||
2 | * | ||
3 | * Copyright (c) 2007 Broadcom Corporation | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation. | ||
8 | */ | ||
9 | |||
10 | |||
11 | #define FUNC_0 0 | ||
12 | #define FUNC_1 1 | ||
13 | #define FUNC_MAX 2 | ||
14 | |||
15 | |||
16 | /* This value (in milliseconds) determines the frequency of the driver | ||
17 | * issuing the PULSE message code. The firmware monitors this periodic | ||
18 | * pulse to determine when to switch to an OS-absent mode. */ | ||
19 | #define DRV_PULSE_PERIOD_MS 250 | ||
20 | |||
21 | /* This value (in milliseconds) determines how long the driver should | ||
22 | * wait for an acknowledgement from the firmware before timing out. Once | ||
23 | * the firmware has timed out, the driver will assume there is no firmware | ||
24 | * running and there won't be any firmware-driver synchronization during a | ||
25 | * driver reset. */ | ||
26 | #define FW_ACK_TIME_OUT_MS 5000 | ||
27 | |||
28 | #define FW_ACK_POLL_TIME_MS 1 | ||
29 | |||
30 | #define FW_ACK_NUM_OF_POLL (FW_ACK_TIME_OUT_MS/FW_ACK_POLL_TIME_MS) | ||
31 | |||
32 | /* LED Blink rate that will achieve ~15.9Hz */ | ||
33 | #define LED_BLINK_RATE_VAL 480 | ||
34 | |||
35 | /**************************************************************************** | ||
36 | * Driver <-> FW Mailbox * | ||
37 | ****************************************************************************/ | ||
38 | struct drv_fw_mb { | ||
39 | u32 drv_mb_header; | ||
40 | #define DRV_MSG_CODE_MASK 0xffff0000 | ||
41 | #define DRV_MSG_CODE_LOAD_REQ 0x10000000 | ||
42 | #define DRV_MSG_CODE_LOAD_DONE 0x11000000 | ||
43 | #define DRV_MSG_CODE_UNLOAD_REQ_WOL_EN 0x20000000 | ||
44 | #define DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS 0x20010000 | ||
45 | #define DRV_MSG_CODE_UNLOAD_REQ_WOL_MCP 0x20020000 | ||
46 | #define DRV_MSG_CODE_UNLOAD_DONE 0x21000000 | ||
47 | #define DRV_MSG_CODE_DIAG_ENTER_REQ 0x50000000 | ||
48 | #define DRV_MSG_CODE_DIAG_EXIT_REQ 0x60000000 | ||
49 | #define DRV_MSG_CODE_VALIDATE_KEY 0x70000000 | ||
50 | #define DRV_MSG_CODE_GET_CURR_KEY 0x80000000 | ||
51 | #define DRV_MSG_CODE_GET_UPGRADE_KEY 0x81000000 | ||
52 | #define DRV_MSG_CODE_GET_MANUF_KEY 0x82000000 | ||
53 | #define DRV_MSG_CODE_LOAD_L2B_PRAM 0x90000000 | ||
54 | |||
55 | #define DRV_MSG_SEQ_NUMBER_MASK 0x0000ffff | ||
56 | |||
57 | u32 drv_mb_param; | ||
58 | |||
59 | u32 fw_mb_header; | ||
60 | #define FW_MSG_CODE_MASK 0xffff0000 | ||
61 | #define FW_MSG_CODE_DRV_LOAD_COMMON 0x11000000 | ||
62 | #define FW_MSG_CODE_DRV_LOAD_PORT 0x12000000 | ||
63 | #define FW_MSG_CODE_DRV_LOAD_REFUSED 0x13000000 | ||
64 | #define FW_MSG_CODE_DRV_LOAD_DONE 0x14000000 | ||
65 | #define FW_MSG_CODE_DRV_UNLOAD_COMMON 0x21000000 | ||
66 | #define FW_MSG_CODE_DRV_UNLOAD_PORT 0x22000000 | ||
67 | #define FW_MSG_CODE_DRV_UNLOAD_DONE 0x23000000 | ||
68 | #define FW_MSG_CODE_DIAG_ENTER_DONE 0x50000000 | ||
69 | #define FW_MSG_CODE_DIAG_REFUSE 0x51000000 | ||
70 | #define FW_MSG_CODE_VALIDATE_KEY_SUCCESS 0x70000000 | ||
71 | #define FW_MSG_CODE_VALIDATE_KEY_FAILURE 0x71000000 | ||
72 | #define FW_MSG_CODE_GET_KEY_DONE 0x80000000 | ||
73 | #define FW_MSG_CODE_NO_KEY 0x8f000000 | ||
74 | #define FW_MSG_CODE_LIC_INFO_NOT_READY 0x8f800000 | ||
75 | #define FW_MSG_CODE_L2B_PRAM_LOADED 0x90000000 | ||
76 | #define FW_MSG_CODE_L2B_PRAM_T_LOAD_FAILURE 0x91000000 | ||
77 | #define FW_MSG_CODE_L2B_PRAM_C_LOAD_FAILURE 0x92000000 | ||
78 | #define FW_MSG_CODE_L2B_PRAM_X_LOAD_FAILURE 0x93000000 | ||
79 | #define FW_MSG_CODE_L2B_PRAM_U_LOAD_FAILURE 0x94000000 | ||
80 | |||
81 | #define FW_MSG_SEQ_NUMBER_MASK 0x0000ffff | ||
82 | |||
83 | u32 fw_mb_param; | ||
84 | |||
85 | u32 link_status; | ||
86 | /* Driver should update this field on any link change event */ | ||
87 | |||
88 | #define LINK_STATUS_LINK_FLAG_MASK 0x00000001 | ||
89 | #define LINK_STATUS_LINK_UP 0x00000001 | ||
90 | #define LINK_STATUS_SPEED_AND_DUPLEX_MASK 0x0000001E | ||
91 | #define LINK_STATUS_SPEED_AND_DUPLEX_AN_NOT_COMPLETE (0<<1) | ||
92 | #define LINK_STATUS_SPEED_AND_DUPLEX_10THD (1<<1) | ||
93 | #define LINK_STATUS_SPEED_AND_DUPLEX_10TFD (2<<1) | ||
94 | #define LINK_STATUS_SPEED_AND_DUPLEX_100TXHD (3<<1) | ||
95 | #define LINK_STATUS_SPEED_AND_DUPLEX_100T4 (4<<1) | ||
96 | #define LINK_STATUS_SPEED_AND_DUPLEX_100TXFD (5<<1) | ||
97 | #define LINK_STATUS_SPEED_AND_DUPLEX_1000THD (6<<1) | ||
98 | #define LINK_STATUS_SPEED_AND_DUPLEX_1000TFD (7<<1) | ||
99 | #define LINK_STATUS_SPEED_AND_DUPLEX_1000XFD (7<<1) | ||
100 | #define LINK_STATUS_SPEED_AND_DUPLEX_2500THD (8<<1) | ||
101 | #define LINK_STATUS_SPEED_AND_DUPLEX_2500TFD (9<<1) | ||
102 | #define LINK_STATUS_SPEED_AND_DUPLEX_2500XFD (9<<1) | ||
103 | #define LINK_STATUS_SPEED_AND_DUPLEX_10GTFD (10<<1) | ||
104 | #define LINK_STATUS_SPEED_AND_DUPLEX_10GXFD (10<<1) | ||
105 | #define LINK_STATUS_SPEED_AND_DUPLEX_12GTFD (11<<1) | ||
106 | #define LINK_STATUS_SPEED_AND_DUPLEX_12GXFD (11<<1) | ||
107 | #define LINK_STATUS_SPEED_AND_DUPLEX_12_5GTFD (12<<1) | ||
108 | #define LINK_STATUS_SPEED_AND_DUPLEX_12_5GXFD (12<<1) | ||
109 | #define LINK_STATUS_SPEED_AND_DUPLEX_13GTFD (13<<1) | ||
110 | #define LINK_STATUS_SPEED_AND_DUPLEX_13GXFD (13<<1) | ||
111 | #define LINK_STATUS_SPEED_AND_DUPLEX_15GTFD (14<<1) | ||
112 | #define LINK_STATUS_SPEED_AND_DUPLEX_15GXFD (14<<1) | ||
113 | #define LINK_STATUS_SPEED_AND_DUPLEX_16GTFD (15<<1) | ||
114 | #define LINK_STATUS_SPEED_AND_DUPLEX_16GXFD (15<<1) | ||
115 | |||
116 | #define LINK_STATUS_AUTO_NEGOTIATE_FLAG_MASK 0x00000020 | ||
117 | #define LINK_STATUS_AUTO_NEGOTIATE_ENABLED 0x00000020 | ||
118 | |||
119 | #define LINK_STATUS_AUTO_NEGOTIATE_COMPLETE 0x00000040 | ||
120 | #define LINK_STATUS_PARALLEL_DETECTION_FLAG_MASK 0x00000080 | ||
121 | #define LINK_STATUS_PARALLEL_DETECTION_USED 0x00000080 | ||
122 | |||
123 | #define LINK_STATUS_LINK_PARTNER_1000TFD_CAPABLE 0x00000200 | ||
124 | #define LINK_STATUS_LINK_PARTNER_1000THD_CAPABLE 0x00000400 | ||
125 | #define LINK_STATUS_LINK_PARTNER_100T4_CAPABLE 0x00000800 | ||
126 | #define LINK_STATUS_LINK_PARTNER_100TXFD_CAPABLE 0x00001000 | ||
127 | #define LINK_STATUS_LINK_PARTNER_100TXHD_CAPABLE 0x00002000 | ||
128 | #define LINK_STATUS_LINK_PARTNER_10TFD_CAPABLE 0x00004000 | ||
129 | #define LINK_STATUS_LINK_PARTNER_10THD_CAPABLE 0x00008000 | ||
130 | |||
131 | #define LINK_STATUS_TX_FLOW_CONTROL_FLAG_MASK 0x00010000 | ||
132 | #define LINK_STATUS_TX_FLOW_CONTROL_ENABLED 0x00010000 | ||
133 | |||
134 | #define LINK_STATUS_RX_FLOW_CONTROL_FLAG_MASK 0x00020000 | ||
135 | #define LINK_STATUS_RX_FLOW_CONTROL_ENABLED 0x00020000 | ||
136 | |||
137 | #define LINK_STATUS_LINK_PARTNER_FLOW_CONTROL_MASK 0x000C0000 | ||
138 | #define LINK_STATUS_LINK_PARTNER_NOT_PAUSE_CAPABLE (0<<18) | ||
139 | #define LINK_STATUS_LINK_PARTNER_SYMMETRIC_PAUSE (1<<18) | ||
140 | #define LINK_STATUS_LINK_PARTNER_ASYMMETRIC_PAUSE (2<<18) | ||
141 | #define LINK_STATUS_LINK_PARTNER_BOTH_PAUSE (3<<18) | ||
142 | |||
143 | #define LINK_STATUS_SERDES_LINK 0x00100000 | ||
144 | |||
145 | #define LINK_STATUS_LINK_PARTNER_2500XFD_CAPABLE 0x00200000 | ||
146 | #define LINK_STATUS_LINK_PARTNER_2500XHD_CAPABLE 0x00400000 | ||
147 | #define LINK_STATUS_LINK_PARTNER_10GXFD_CAPABLE 0x00800000 | ||
148 | #define LINK_STATUS_LINK_PARTNER_12GXFD_CAPABLE 0x01000000 | ||
149 | #define LINK_STATUS_LINK_PARTNER_12_5GXFD_CAPABLE 0x02000000 | ||
150 | #define LINK_STATUS_LINK_PARTNER_13GXFD_CAPABLE 0x04000000 | ||
151 | #define LINK_STATUS_LINK_PARTNER_15GXFD_CAPABLE 0x08000000 | ||
152 | #define LINK_STATUS_LINK_PARTNER_16GXFD_CAPABLE 0x10000000 | ||
153 | |||
154 | u32 drv_pulse_mb; | ||
155 | #define DRV_PULSE_SEQ_MASK 0x00007fff | ||
156 | #define DRV_PULSE_SYSTEM_TIME_MASK 0xffff0000 | ||
157 | /* The system time is in the format of | ||
158 | * (year-2001)*12*32 + month*32 + day. */ | ||
159 | #define DRV_PULSE_ALWAYS_ALIVE 0x00008000 | ||
160 | /* Indicate to the firmware not to go into the | ||
161 | * OS-absent when it is not getting driver pulse. | ||
162 | * This is used for debugging as well for PXE(MBA). */ | ||
163 | |||
164 | u32 mcp_pulse_mb; | ||
165 | #define MCP_PULSE_SEQ_MASK 0x00007fff | ||
166 | #define MCP_PULSE_ALWAYS_ALIVE 0x00008000 | ||
167 | /* Indicates to the driver not to assert due to lack | ||
168 | * of MCP response */ | ||
169 | #define MCP_EVENT_MASK 0xffff0000 | ||
170 | #define MCP_EVENT_OTHER_DRIVER_RESET_REQ 0x00010000 | ||
171 | |||
172 | }; | ||
173 | |||
174 | |||
175 | /**************************************************************************** | ||
176 | * Shared HW configuration * | ||
177 | ****************************************************************************/ | ||
178 | struct shared_hw_cfg { /* NVRAM Offset */ | ||
179 | /* Up to 16 bytes of NULL-terminated string */ | ||
180 | u8 part_num[16]; /* 0x104 */ | ||
181 | |||
182 | u32 config; /* 0x114 */ | ||
183 | #define SHARED_HW_CFG_MDIO_VOLTAGE_MASK 0x00000001 | ||
184 | #define SHARED_HW_CFG_MDIO_VOLTAGE_SHIFT 0 | ||
185 | #define SHARED_HW_CFG_MDIO_VOLTAGE_1_2V 0x00000000 | ||
186 | #define SHARED_HW_CFG_MDIO_VOLTAGE_2_5V 0x00000001 | ||
187 | #define SHARED_HW_CFG_MCP_RST_ON_CORE_RST_EN 0x00000002 | ||
188 | |||
189 | #define SHARED_HW_CFG_PORT_SWAP 0x00000004 | ||
190 | |||
191 | #define SHARED_HW_CFG_BEACON_WOL_EN 0x00000008 | ||
192 | |||
193 | #define SHARED_HW_CFG_MFW_SELECT_MASK 0x00000700 | ||
194 | #define SHARED_HW_CFG_MFW_SELECT_SHIFT 8 | ||
195 | /* Whatever MFW found in NVM | ||
196 | (if multiple found, priority order is: NC-SI, UMP, IPMI) */ | ||
197 | #define SHARED_HW_CFG_MFW_SELECT_DEFAULT 0x00000000 | ||
198 | #define SHARED_HW_CFG_MFW_SELECT_NC_SI 0x00000100 | ||
199 | #define SHARED_HW_CFG_MFW_SELECT_UMP 0x00000200 | ||
200 | #define SHARED_HW_CFG_MFW_SELECT_IPMI 0x00000300 | ||
201 | /* Use SPIO4 as an arbiter between: 0-NC_SI, 1-IPMI | ||
202 | (can only be used when an add-in board, not BMC, pulls-down SPIO4) */ | ||
203 | #define SHARED_HW_CFG_MFW_SELECT_SPIO4_NC_SI_IPMI 0x00000400 | ||
204 | /* Use SPIO4 as an arbiter between: 0-UMP, 1-IPMI | ||
205 | (can only be used when an add-in board, not BMC, pulls-down SPIO4) */ | ||
206 | #define SHARED_HW_CFG_MFW_SELECT_SPIO4_UMP_IPMI 0x00000500 | ||
207 | /* Use SPIO4 as an arbiter between: 0-NC-SI, 1-UMP | ||
208 | (can only be used when an add-in board, not BMC, pulls-down SPIO4) */ | ||
209 | #define SHARED_HW_CFG_MFW_SELECT_SPIO4_NC_SI_UMP 0x00000600 | ||
210 | |||
211 | #define SHARED_HW_CFG_LED_MODE_MASK 0x000f0000 | ||
212 | #define SHARED_HW_CFG_LED_MODE_SHIFT 16 | ||
213 | #define SHARED_HW_CFG_LED_MAC1 0x00000000 | ||
214 | #define SHARED_HW_CFG_LED_PHY1 0x00010000 | ||
215 | #define SHARED_HW_CFG_LED_PHY2 0x00020000 | ||
216 | #define SHARED_HW_CFG_LED_PHY3 0x00030000 | ||
217 | #define SHARED_HW_CFG_LED_MAC2 0x00040000 | ||
218 | #define SHARED_HW_CFG_LED_PHY4 0x00050000 | ||
219 | #define SHARED_HW_CFG_LED_PHY5 0x00060000 | ||
220 | #define SHARED_HW_CFG_LED_PHY6 0x00070000 | ||
221 | #define SHARED_HW_CFG_LED_MAC3 0x00080000 | ||
222 | #define SHARED_HW_CFG_LED_PHY7 0x00090000 | ||
223 | #define SHARED_HW_CFG_LED_PHY9 0x000a0000 | ||
224 | #define SHARED_HW_CFG_LED_PHY11 0x000b0000 | ||
225 | #define SHARED_HW_CFG_LED_MAC4 0x000c0000 | ||
226 | #define SHARED_HW_CFG_LED_PHY8 0x000d0000 | ||
227 | |||
228 | #define SHARED_HW_CFG_AN_ENABLE_MASK 0x3f000000 | ||
229 | #define SHARED_HW_CFG_AN_ENABLE_SHIFT 24 | ||
230 | #define SHARED_HW_CFG_AN_ENABLE_CL37 0x01000000 | ||
231 | #define SHARED_HW_CFG_AN_ENABLE_CL73 0x02000000 | ||
232 | #define SHARED_HW_CFG_AN_ENABLE_BAM 0x04000000 | ||
233 | #define SHARED_HW_CFG_AN_ENABLE_PARALLEL_DETECTION 0x08000000 | ||
234 | #define SHARED_HW_CFG_AN_EN_SGMII_FIBER_AUTO_DETECT 0x10000000 | ||
235 | #define SHARED_HW_CFG_AN_ENABLE_REMOTE_PHY 0x20000000 | ||
236 | |||
237 | u32 config2; /* 0x118 */ | ||
238 | /* one time auto detect grace period (in sec) */ | ||
239 | #define SHARED_HW_CFG_GRACE_PERIOD_MASK 0x000000ff | ||
240 | #define SHARED_HW_CFG_GRACE_PERIOD_SHIFT 0 | ||
241 | |||
242 | #define SHARED_HW_CFG_PCIE_GEN2_ENABLED 0x00000100 | ||
243 | |||
244 | /* The default value for the core clock is 250MHz and it is | ||
245 | achieved by setting the clock change to 4 */ | ||
246 | #define SHARED_HW_CFG_CLOCK_CHANGE_MASK 0x00000e00 | ||
247 | #define SHARED_HW_CFG_CLOCK_CHANGE_SHIFT 9 | ||
248 | |||
249 | #define SHARED_HW_CFG_SMBUS_TIMING_100KHZ 0x00000000 | ||
250 | #define SHARED_HW_CFG_SMBUS_TIMING_400KHZ 0x00001000 | ||
251 | |||
252 | #define SHARED_HW_CFG_HIDE_FUNC1 0x00002000 | ||
253 | |||
254 | u32 power_dissipated; /* 0x11c */ | ||
255 | #define SHARED_HW_CFG_POWER_DIS_CMN_MASK 0xff000000 | ||
256 | #define SHARED_HW_CFG_POWER_DIS_CMN_SHIFT 24 | ||
257 | |||
258 | #define SHARED_HW_CFG_POWER_MGNT_SCALE_MASK 0x00ff0000 | ||
259 | #define SHARED_HW_CFG_POWER_MGNT_SCALE_SHIFT 16 | ||
260 | #define SHARED_HW_CFG_POWER_MGNT_UNKNOWN_SCALE 0x00000000 | ||
261 | #define SHARED_HW_CFG_POWER_MGNT_DOT_1_WATT 0x00010000 | ||
262 | #define SHARED_HW_CFG_POWER_MGNT_DOT_01_WATT 0x00020000 | ||
263 | #define SHARED_HW_CFG_POWER_MGNT_DOT_001_WATT 0x00030000 | ||
264 | |||
265 | u32 ump_nc_si_config; /* 0x120 */ | ||
266 | #define SHARED_HW_CFG_UMP_NC_SI_MII_MODE_MASK 0x00000003 | ||
267 | #define SHARED_HW_CFG_UMP_NC_SI_MII_MODE_SHIFT 0 | ||
268 | #define SHARED_HW_CFG_UMP_NC_SI_MII_MODE_MAC 0x00000000 | ||
269 | #define SHARED_HW_CFG_UMP_NC_SI_MII_MODE_PHY 0x00000001 | ||
270 | #define SHARED_HW_CFG_UMP_NC_SI_MII_MODE_MII 0x00000000 | ||
271 | #define SHARED_HW_CFG_UMP_NC_SI_MII_MODE_RMII 0x00000002 | ||
272 | |||
273 | #define SHARED_HW_CFG_UMP_NC_SI_NUM_DEVS_MASK 0x00000f00 | ||
274 | #define SHARED_HW_CFG_UMP_NC_SI_NUM_DEVS_SHIFT 8 | ||
275 | |||
276 | #define SHARED_HW_CFG_UMP_NC_SI_EXT_PHY_TYPE_MASK 0x00ff0000 | ||
277 | #define SHARED_HW_CFG_UMP_NC_SI_EXT_PHY_TYPE_SHIFT 16 | ||
278 | #define SHARED_HW_CFG_UMP_NC_SI_EXT_PHY_TYPE_NONE 0x00000000 | ||
279 | #define SHARED_HW_CFG_UMP_NC_SI_EXT_PHY_TYPE_BCM5221 0x00010000 | ||
280 | |||
281 | u32 board; /* 0x124 */ | ||
282 | #define SHARED_HW_CFG_BOARD_TYPE_MASK 0x0000ffff | ||
283 | #define SHARED_HW_CFG_BOARD_TYPE_SHIFT 0 | ||
284 | #define SHARED_HW_CFG_BOARD_TYPE_NONE 0x00000000 | ||
285 | #define SHARED_HW_CFG_BOARD_TYPE_BCM957710T1000 0x00000001 | ||
286 | #define SHARED_HW_CFG_BOARD_TYPE_BCM957710T1001 0x00000002 | ||
287 | #define SHARED_HW_CFG_BOARD_TYPE_BCM957710T1002G 0x00000003 | ||
288 | #define SHARED_HW_CFG_BOARD_TYPE_BCM957710T1004G 0x00000004 | ||
289 | #define SHARED_HW_CFG_BOARD_TYPE_BCM957710T1007G 0x00000005 | ||
290 | #define SHARED_HW_CFG_BOARD_TYPE_BCM957710T1015G 0x00000006 | ||
291 | #define SHARED_HW_CFG_BOARD_TYPE_BCM957710A1020G 0x00000007 | ||
292 | #define SHARED_HW_CFG_BOARD_TYPE_BCM957710T1003G 0x00000008 | ||
293 | |||
294 | #define SHARED_HW_CFG_BOARD_VER_MASK 0xffff0000 | ||
295 | #define SHARED_HW_CFG_BOARD_VER_SHIFT 16 | ||
296 | #define SHARED_HW_CFG_BOARD_MAJOR_VER_MASK 0xf0000000 | ||
297 | #define SHARED_HW_CFG_BOARD_MAJOR_VER_SHIFT 28 | ||
298 | #define SHARED_HW_CFG_BOARD_MINOR_VER_MASK 0x0f000000 | ||
299 | #define SHARED_HW_CFG_BOARD_MINOR_VER_SHIFT 24 | ||
300 | #define SHARED_HW_CFG_BOARD_REV_MASK 0x00ff0000 | ||
301 | #define SHARED_HW_CFG_BOARD_REV_SHIFT 16 | ||
302 | |||
303 | u32 reserved; /* 0x128 */ | ||
304 | |||
305 | }; | ||
306 | |||
307 | /**************************************************************************** | ||
308 | * Port HW configuration * | ||
309 | ****************************************************************************/ | ||
310 | struct port_hw_cfg { /* function 0: 0x12c-0x2bb, function 1: 0x2bc-0x44b */ | ||
311 | |||
312 | /* Fields below are port specific (in anticipation of dual port | ||
313 | devices */ | ||
314 | u32 pci_id; | ||
315 | #define PORT_HW_CFG_PCI_VENDOR_ID_MASK 0xffff0000 | ||
316 | #define PORT_HW_CFG_PCI_DEVICE_ID_MASK 0x0000ffff | ||
317 | |||
318 | u32 pci_sub_id; | ||
319 | #define PORT_HW_CFG_PCI_SUBSYS_DEVICE_ID_MASK 0xffff0000 | ||
320 | #define PORT_HW_CFG_PCI_SUBSYS_VENDOR_ID_MASK 0x0000ffff | ||
321 | |||
322 | u32 power_dissipated; | ||
323 | #define PORT_HW_CFG_POWER_DIS_D3_MASK 0xff000000 | ||
324 | #define PORT_HW_CFG_POWER_DIS_D3_SHIFT 24 | ||
325 | #define PORT_HW_CFG_POWER_DIS_D2_MASK 0x00ff0000 | ||
326 | #define PORT_HW_CFG_POWER_DIS_D2_SHIFT 16 | ||
327 | #define PORT_HW_CFG_POWER_DIS_D1_MASK 0x0000ff00 | ||
328 | #define PORT_HW_CFG_POWER_DIS_D1_SHIFT 8 | ||
329 | #define PORT_HW_CFG_POWER_DIS_D0_MASK 0x000000ff | ||
330 | #define PORT_HW_CFG_POWER_DIS_D0_SHIFT 0 | ||
331 | |||
332 | u32 power_consumed; | ||
333 | #define PORT_HW_CFG_POWER_CONS_D3_MASK 0xff000000 | ||
334 | #define PORT_HW_CFG_POWER_CONS_D3_SHIFT 24 | ||
335 | #define PORT_HW_CFG_POWER_CONS_D2_MASK 0x00ff0000 | ||
336 | #define PORT_HW_CFG_POWER_CONS_D2_SHIFT 16 | ||
337 | #define PORT_HW_CFG_POWER_CONS_D1_MASK 0x0000ff00 | ||
338 | #define PORT_HW_CFG_POWER_CONS_D1_SHIFT 8 | ||
339 | #define PORT_HW_CFG_POWER_CONS_D0_MASK 0x000000ff | ||
340 | #define PORT_HW_CFG_POWER_CONS_D0_SHIFT 0 | ||
341 | |||
342 | u32 mac_upper; | ||
343 | #define PORT_HW_CFG_UPPERMAC_MASK 0x0000ffff | ||
344 | #define PORT_HW_CFG_UPPERMAC_SHIFT 0 | ||
345 | u32 mac_lower; | ||
346 | |||
347 | u32 iscsi_mac_upper; /* Upper 16 bits are always zeroes */ | ||
348 | u32 iscsi_mac_lower; | ||
349 | |||
350 | u32 rdma_mac_upper; /* Upper 16 bits are always zeroes */ | ||
351 | u32 rdma_mac_lower; | ||
352 | |||
353 | u32 serdes_config; | ||
354 | /* for external PHY, or forced mode or during AN */ | ||
355 | #define PORT_HW_CFG_SERDES_TX_DRV_PRE_EMPHASIS_MASK 0xffff0000 | ||
356 | #define PORT_HW_CFG_SERDES_TX_DRV_PRE_EMPHASIS_SHIFT 16 | ||
357 | |||
358 | #define PORT_HW_CFG_SERDES_RX_DRV_EQUALIZER_MASK 0x0000ffff | ||
359 | #define PORT_HW_CFG_SERDES_RX_DRV_EQUALIZER_SHIFT 0 | ||
360 | |||
361 | u16 serdes_tx_driver_pre_emphasis[16]; | ||
362 | u16 serdes_rx_driver_equalizer[16]; | ||
363 | |||
364 | u32 xgxs_config_lane0; | ||
365 | u32 xgxs_config_lane1; | ||
366 | u32 xgxs_config_lane2; | ||
367 | u32 xgxs_config_lane3; | ||
368 | /* for external PHY, or forced mode or during AN */ | ||
369 | #define PORT_HW_CFG_XGXS_TX_DRV_PRE_EMPHASIS_MASK 0xffff0000 | ||
370 | #define PORT_HW_CFG_XGXS_TX_DRV_PRE_EMPHASIS_SHIFT 16 | ||
371 | |||
372 | #define PORT_HW_CFG_XGXS_RX_DRV_EQUALIZER_MASK 0x0000ffff | ||
373 | #define PORT_HW_CFG_XGXS_RX_DRV_EQUALIZER_SHIFT 0 | ||
374 | |||
375 | u16 xgxs_tx_driver_pre_emphasis_lane0[16]; | ||
376 | u16 xgxs_tx_driver_pre_emphasis_lane1[16]; | ||
377 | u16 xgxs_tx_driver_pre_emphasis_lane2[16]; | ||
378 | u16 xgxs_tx_driver_pre_emphasis_lane3[16]; | ||
379 | |||
380 | u16 xgxs_rx_driver_equalizer_lane0[16]; | ||
381 | u16 xgxs_rx_driver_equalizer_lane1[16]; | ||
382 | u16 xgxs_rx_driver_equalizer_lane2[16]; | ||
383 | u16 xgxs_rx_driver_equalizer_lane3[16]; | ||
384 | |||
385 | u32 lane_config; | ||
386 | #define PORT_HW_CFG_LANE_SWAP_CFG_MASK 0x0000ffff | ||
387 | #define PORT_HW_CFG_LANE_SWAP_CFG_SHIFT 0 | ||
388 | #define PORT_HW_CFG_LANE_SWAP_CFG_TX_MASK 0x000000ff | ||
389 | #define PORT_HW_CFG_LANE_SWAP_CFG_TX_SHIFT 0 | ||
390 | #define PORT_HW_CFG_LANE_SWAP_CFG_RX_MASK 0x0000ff00 | ||
391 | #define PORT_HW_CFG_LANE_SWAP_CFG_RX_SHIFT 8 | ||
392 | #define PORT_HW_CFG_LANE_SWAP_CFG_MASTER_MASK 0x0000c000 | ||
393 | #define PORT_HW_CFG_LANE_SWAP_CFG_MASTER_SHIFT 14 | ||
394 | /* AN and forced */ | ||
395 | #define PORT_HW_CFG_LANE_SWAP_CFG_01230123 0x00001b1b | ||
396 | /* forced only */ | ||
397 | #define PORT_HW_CFG_LANE_SWAP_CFG_01233210 0x00001be4 | ||
398 | /* forced only */ | ||
399 | #define PORT_HW_CFG_LANE_SWAP_CFG_31203120 0x0000d8d8 | ||
400 | /* forced only */ | ||
401 | #define PORT_HW_CFG_LANE_SWAP_CFG_32103210 0x0000e4e4 | ||
402 | |||
403 | u32 external_phy_config; | ||
404 | #define PORT_HW_CFG_SERDES_EXT_PHY_TYPE_MASK 0xff000000 | ||
405 | #define PORT_HW_CFG_SERDES_EXT_PHY_TYPE_SHIFT 24 | ||
406 | #define PORT_HW_CFG_SERDES_EXT_PHY_TYPE_DIRECT 0x00000000 | ||
407 | #define PORT_HW_CFG_SERDES_EXT_PHY_TYPE_BCM5482 0x01000000 | ||
408 | #define PORT_HW_CFG_SERDES_EXT_PHY_TYPE_NOT_CONN 0xff000000 | ||
409 | |||
410 | #define PORT_HW_CFG_SERDES_EXT_PHY_ADDR_MASK 0x00ff0000 | ||
411 | #define PORT_HW_CFG_SERDES_EXT_PHY_ADDR_SHIFT 16 | ||
412 | |||
413 | #define PORT_HW_CFG_XGXS_EXT_PHY_TYPE_MASK 0x0000ff00 | ||
414 | #define PORT_HW_CFG_XGXS_EXT_PHY_TYPE_SHIFT 8 | ||
415 | #define PORT_HW_CFG_XGXS_EXT_PHY_TYPE_DIRECT 0x00000000 | ||
416 | #define PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8071 0x00000100 | ||
417 | #define PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8072 0x00000200 | ||
418 | #define PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8073 0x00000300 | ||
419 | #define PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8705 0x00000400 | ||
420 | #define PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8706 0x00000500 | ||
421 | #define PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8276 0x00000600 | ||
422 | #define PORT_HW_CFG_XGXS_EXT_PHY_TYPE_BCM8481 0x00000700 | ||
423 | #define PORT_HW_CFG_XGXS_EXT_PHY_TYPE_NOT_CONN 0x0000ff00 | ||
424 | |||
425 | #define PORT_HW_CFG_XGXS_EXT_PHY_ADDR_MASK 0x000000ff | ||
426 | #define PORT_HW_CFG_XGXS_EXT_PHY_ADDR_SHIFT 0 | ||
427 | |||
428 | u32 speed_capability_mask; | ||
429 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_MASK 0xffff0000 | ||
430 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_SHIFT 16 | ||
431 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_10M_FULL 0x00010000 | ||
432 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_10M_HALF 0x00020000 | ||
433 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_100M_HALF 0x00040000 | ||
434 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_100M_FULL 0x00080000 | ||
435 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_1G 0x00100000 | ||
436 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_2_5G 0x00200000 | ||
437 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_10G 0x00400000 | ||
438 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_12G 0x00800000 | ||
439 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_12_5G 0x01000000 | ||
440 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_13G 0x02000000 | ||
441 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_15G 0x04000000 | ||
442 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_16G 0x08000000 | ||
443 | #define PORT_HW_CFG_SPEED_CAPABILITY_D0_RESERVED 0xf0000000 | ||
444 | |||
445 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_MASK 0x0000ffff | ||
446 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_SHIFT 0 | ||
447 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_10M_FULL 0x00000001 | ||
448 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_10M_HALF 0x00000002 | ||
449 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_100M_HALF 0x00000004 | ||
450 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_100M_FULL 0x00000008 | ||
451 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_1G 0x00000010 | ||
452 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_2_5G 0x00000020 | ||
453 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_10G 0x00000040 | ||
454 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_12G 0x00000080 | ||
455 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_12_5G 0x00000100 | ||
456 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_13G 0x00000200 | ||
457 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_15G 0x00000400 | ||
458 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_16G 0x00000800 | ||
459 | #define PORT_HW_CFG_SPEED_CAPABILITY_D3_RESERVED 0x0000f000 | ||
460 | |||
461 | u32 reserved[2]; | ||
462 | |||
463 | }; | ||
464 | |||
465 | /**************************************************************************** | ||
466 | * Shared Feature configuration * | ||
467 | ****************************************************************************/ | ||
468 | struct shared_feat_cfg { /* NVRAM Offset */ | ||
469 | u32 bmc_common; /* 0x450 */ | ||
470 | #define SHARED_FEATURE_BMC_ECHO_MODE_EN 0x00000001 | ||
471 | |||
472 | }; | ||
473 | |||
474 | |||
475 | /**************************************************************************** | ||
476 | * Port Feature configuration * | ||
477 | ****************************************************************************/ | ||
478 | struct port_feat_cfg { /* function 0: 0x454-0x4c7, function 1: 0x4c8-0x53b */ | ||
479 | u32 config; | ||
480 | #define PORT_FEATURE_BAR1_SIZE_MASK 0x0000000f | ||
481 | #define PORT_FEATURE_BAR1_SIZE_SHIFT 0 | ||
482 | #define PORT_FEATURE_BAR1_SIZE_DISABLED 0x00000000 | ||
483 | #define PORT_FEATURE_BAR1_SIZE_64K 0x00000001 | ||
484 | #define PORT_FEATURE_BAR1_SIZE_128K 0x00000002 | ||
485 | #define PORT_FEATURE_BAR1_SIZE_256K 0x00000003 | ||
486 | #define PORT_FEATURE_BAR1_SIZE_512K 0x00000004 | ||
487 | #define PORT_FEATURE_BAR1_SIZE_1M 0x00000005 | ||
488 | #define PORT_FEATURE_BAR1_SIZE_2M 0x00000006 | ||
489 | #define PORT_FEATURE_BAR1_SIZE_4M 0x00000007 | ||
490 | #define PORT_FEATURE_BAR1_SIZE_8M 0x00000008 | ||
491 | #define PORT_FEATURE_BAR1_SIZE_16M 0x00000009 | ||
492 | #define PORT_FEATURE_BAR1_SIZE_32M 0x0000000a | ||
493 | #define PORT_FEATURE_BAR1_SIZE_64M 0x0000000b | ||
494 | #define PORT_FEATURE_BAR1_SIZE_128M 0x0000000c | ||
495 | #define PORT_FEATURE_BAR1_SIZE_256M 0x0000000d | ||
496 | #define PORT_FEATURE_BAR1_SIZE_512M 0x0000000e | ||
497 | #define PORT_FEATURE_BAR1_SIZE_1G 0x0000000f | ||
498 | #define PORT_FEATURE_BAR2_SIZE_MASK 0x000000f0 | ||
499 | #define PORT_FEATURE_BAR2_SIZE_SHIFT 4 | ||
500 | #define PORT_FEATURE_BAR2_SIZE_DISABLED 0x00000000 | ||
501 | #define PORT_FEATURE_BAR2_SIZE_64K 0x00000010 | ||
502 | #define PORT_FEATURE_BAR2_SIZE_128K 0x00000020 | ||
503 | #define PORT_FEATURE_BAR2_SIZE_256K 0x00000030 | ||
504 | #define PORT_FEATURE_BAR2_SIZE_512K 0x00000040 | ||
505 | #define PORT_FEATURE_BAR2_SIZE_1M 0x00000050 | ||
506 | #define PORT_FEATURE_BAR2_SIZE_2M 0x00000060 | ||
507 | #define PORT_FEATURE_BAR2_SIZE_4M 0x00000070 | ||
508 | #define PORT_FEATURE_BAR2_SIZE_8M 0x00000080 | ||
509 | #define PORT_FEATURE_BAR2_SIZE_16M 0x00000090 | ||
510 | #define PORT_FEATURE_BAR2_SIZE_32M 0x000000a0 | ||
511 | #define PORT_FEATURE_BAR2_SIZE_64M 0x000000b0 | ||
512 | #define PORT_FEATURE_BAR2_SIZE_128M 0x000000c0 | ||
513 | #define PORT_FEATURE_BAR2_SIZE_256M 0x000000d0 | ||
514 | #define PORT_FEATURE_BAR2_SIZE_512M 0x000000e0 | ||
515 | #define PORT_FEATURE_BAR2_SIZE_1G 0x000000f0 | ||
516 | #define PORT_FEATURE_EN_SIZE_MASK 0x07000000 | ||
517 | #define PORT_FEATURE_EN_SIZE_SHIFT 24 | ||
518 | #define PORT_FEATURE_WOL_ENABLED 0x01000000 | ||
519 | #define PORT_FEATURE_MBA_ENABLED 0x02000000 | ||
520 | #define PORT_FEATURE_MFW_ENABLED 0x04000000 | ||
521 | |||
522 | u32 wol_config; | ||
523 | /* Default is used when driver sets to "auto" mode */ | ||
524 | #define PORT_FEATURE_WOL_DEFAULT_MASK 0x00000003 | ||
525 | #define PORT_FEATURE_WOL_DEFAULT_SHIFT 0 | ||
526 | #define PORT_FEATURE_WOL_DEFAULT_DISABLE 0x00000000 | ||
527 | #define PORT_FEATURE_WOL_DEFAULT_MAGIC 0x00000001 | ||
528 | #define PORT_FEATURE_WOL_DEFAULT_ACPI 0x00000002 | ||
529 | #define PORT_FEATURE_WOL_DEFAULT_MAGIC_AND_ACPI 0x00000003 | ||
530 | #define PORT_FEATURE_WOL_RES_PAUSE_CAP 0x00000004 | ||
531 | #define PORT_FEATURE_WOL_RES_ASYM_PAUSE_CAP 0x00000008 | ||
532 | #define PORT_FEATURE_WOL_ACPI_UPON_MGMT 0x00000010 | ||
533 | |||
534 | u32 mba_config; | ||
535 | #define PORT_FEATURE_MBA_BOOT_AGENT_TYPE_MASK 0x00000003 | ||
536 | #define PORT_FEATURE_MBA_BOOT_AGENT_TYPE_SHIFT 0 | ||
537 | #define PORT_FEATURE_MBA_BOOT_AGENT_TYPE_PXE 0x00000000 | ||
538 | #define PORT_FEATURE_MBA_BOOT_AGENT_TYPE_RPL 0x00000001 | ||
539 | #define PORT_FEATURE_MBA_BOOT_AGENT_TYPE_BOOTP 0x00000002 | ||
540 | #define PORT_FEATURE_MBA_BOOT_AGENT_TYPE_ISCSIB 0x00000003 | ||
541 | #define PORT_FEATURE_MBA_RES_PAUSE_CAP 0x00000100 | ||
542 | #define PORT_FEATURE_MBA_RES_ASYM_PAUSE_CAP 0x00000200 | ||
543 | #define PORT_FEATURE_MBA_SETUP_PROMPT_ENABLE 0x00000400 | ||
544 | #define PORT_FEATURE_MBA_HOTKEY_CTRL_S 0x00000000 | ||
545 | #define PORT_FEATURE_MBA_HOTKEY_CTRL_B 0x00000800 | ||
546 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_MASK 0x000ff000 | ||
547 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_SHIFT 12 | ||
548 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_DISABLED 0x00000000 | ||
549 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_2K 0x00001000 | ||
550 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_4K 0x00002000 | ||
551 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_8K 0x00003000 | ||
552 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_16K 0x00004000 | ||
553 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_32K 0x00005000 | ||
554 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_64K 0x00006000 | ||
555 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_128K 0x00007000 | ||
556 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_256K 0x00008000 | ||
557 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_512K 0x00009000 | ||
558 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_1M 0x0000a000 | ||
559 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_2M 0x0000b000 | ||
560 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_4M 0x0000c000 | ||
561 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_8M 0x0000d000 | ||
562 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_16M 0x0000e000 | ||
563 | #define PORT_FEATURE_MBA_EXP_ROM_SIZE_32M 0x0000f000 | ||
564 | #define PORT_FEATURE_MBA_MSG_TIMEOUT_MASK 0x00f00000 | ||
565 | #define PORT_FEATURE_MBA_MSG_TIMEOUT_SHIFT 20 | ||
566 | #define PORT_FEATURE_MBA_BIOS_BOOTSTRAP_MASK 0x03000000 | ||
567 | #define PORT_FEATURE_MBA_BIOS_BOOTSTRAP_SHIFT 24 | ||
568 | #define PORT_FEATURE_MBA_BIOS_BOOTSTRAP_AUTO 0x00000000 | ||
569 | #define PORT_FEATURE_MBA_BIOS_BOOTSTRAP_BBS 0x01000000 | ||
570 | #define PORT_FEATURE_MBA_BIOS_BOOTSTRAP_INT18H 0x02000000 | ||
571 | #define PORT_FEATURE_MBA_BIOS_BOOTSTRAP_INT19H 0x03000000 | ||
572 | #define PORT_FEATURE_MBA_LINK_SPEED_MASK 0x3c000000 | ||
573 | #define PORT_FEATURE_MBA_LINK_SPEED_SHIFT 26 | ||
574 | #define PORT_FEATURE_MBA_LINK_SPEED_AUTO 0x00000000 | ||
575 | #define PORT_FEATURE_MBA_LINK_SPEED_10HD 0x04000000 | ||
576 | #define PORT_FEATURE_MBA_LINK_SPEED_10FD 0x08000000 | ||
577 | #define PORT_FEATURE_MBA_LINK_SPEED_100HD 0x0c000000 | ||
578 | #define PORT_FEATURE_MBA_LINK_SPEED_100FD 0x10000000 | ||
579 | #define PORT_FEATURE_MBA_LINK_SPEED_1GBPS 0x14000000 | ||
580 | #define PORT_FEATURE_MBA_LINK_SPEED_2_5GBPS 0x18000000 | ||
581 | #define PORT_FEATURE_MBA_LINK_SPEED_10GBPS_CX4 0x1c000000 | ||
582 | #define PORT_FEATURE_MBA_LINK_SPEED_10GBPS_KX4 0x20000000 | ||
583 | #define PORT_FEATURE_MBA_LINK_SPEED_10GBPS_KR 0x24000000 | ||
584 | #define PORT_FEATURE_MBA_LINK_SPEED_12GBPS 0x28000000 | ||
585 | #define PORT_FEATURE_MBA_LINK_SPEED_12_5GBPS 0x2c000000 | ||
586 | #define PORT_FEATURE_MBA_LINK_SPEED_13GBPS 0x30000000 | ||
587 | #define PORT_FEATURE_MBA_LINK_SPEED_15GBPS 0x34000000 | ||
588 | #define PORT_FEATURE_MBA_LINK_SPEED_16GBPS 0x38000000 | ||
589 | |||
590 | u32 bmc_config; | ||
591 | #define PORT_FEATURE_BMC_LINK_OVERRIDE_DEFAULT 0x00000000 | ||
592 | #define PORT_FEATURE_BMC_LINK_OVERRIDE_EN 0x00000001 | ||
593 | |||
594 | u32 mba_vlan_cfg; | ||
595 | #define PORT_FEATURE_MBA_VLAN_TAG_MASK 0x0000ffff | ||
596 | #define PORT_FEATURE_MBA_VLAN_TAG_SHIFT 0 | ||
597 | #define PORT_FEATURE_MBA_VLAN_EN 0x00010000 | ||
598 | |||
599 | u32 resource_cfg; | ||
600 | #define PORT_FEATURE_RESOURCE_CFG_VALID 0x00000001 | ||
601 | #define PORT_FEATURE_RESOURCE_CFG_DIAG 0x00000002 | ||
602 | #define PORT_FEATURE_RESOURCE_CFG_L2 0x00000004 | ||
603 | #define PORT_FEATURE_RESOURCE_CFG_ISCSI 0x00000008 | ||
604 | #define PORT_FEATURE_RESOURCE_CFG_RDMA 0x00000010 | ||
605 | |||
606 | u32 smbus_config; | ||
607 | /* Obsolete */ | ||
608 | #define PORT_FEATURE_SMBUS_EN 0x00000001 | ||
609 | #define PORT_FEATURE_SMBUS_ADDR_MASK 0x000000fe | ||
610 | #define PORT_FEATURE_SMBUS_ADDR_SHIFT 1 | ||
611 | |||
612 | u32 iscsib_boot_cfg; | ||
613 | #define PORT_FEATURE_ISCSIB_SKIP_TARGET_BOOT 0x00000001 | ||
614 | |||
615 | u32 link_config; /* Used as HW defaults for the driver */ | ||
616 | #define PORT_FEATURE_CONNECTED_SWITCH_MASK 0x03000000 | ||
617 | #define PORT_FEATURE_CONNECTED_SWITCH_SHIFT 24 | ||
618 | /* (forced) low speed switch (< 10G) */ | ||
619 | #define PORT_FEATURE_CON_SWITCH_1G_SWITCH 0x00000000 | ||
620 | /* (forced) high speed switch (>= 10G) */ | ||
621 | #define PORT_FEATURE_CON_SWITCH_10G_SWITCH 0x01000000 | ||
622 | #define PORT_FEATURE_CON_SWITCH_AUTO_DETECT 0x02000000 | ||
623 | #define PORT_FEATURE_CON_SWITCH_ONE_TIME_DETECT 0x03000000 | ||
624 | |||
625 | #define PORT_FEATURE_LINK_SPEED_MASK 0x000f0000 | ||
626 | #define PORT_FEATURE_LINK_SPEED_SHIFT 16 | ||
627 | #define PORT_FEATURE_LINK_SPEED_AUTO 0x00000000 | ||
628 | #define PORT_FEATURE_LINK_SPEED_10M_FULL 0x00010000 | ||
629 | #define PORT_FEATURE_LINK_SPEED_10M_HALF 0x00020000 | ||
630 | #define PORT_FEATURE_LINK_SPEED_100M_HALF 0x00030000 | ||
631 | #define PORT_FEATURE_LINK_SPEED_100M_FULL 0x00040000 | ||
632 | #define PORT_FEATURE_LINK_SPEED_1G 0x00050000 | ||
633 | #define PORT_FEATURE_LINK_SPEED_2_5G 0x00060000 | ||
634 | #define PORT_FEATURE_LINK_SPEED_10G_CX4 0x00070000 | ||
635 | #define PORT_FEATURE_LINK_SPEED_10G_KX4 0x00080000 | ||
636 | #define PORT_FEATURE_LINK_SPEED_10G_KR 0x00090000 | ||
637 | #define PORT_FEATURE_LINK_SPEED_12G 0x000a0000 | ||
638 | #define PORT_FEATURE_LINK_SPEED_12_5G 0x000b0000 | ||
639 | #define PORT_FEATURE_LINK_SPEED_13G 0x000c0000 | ||
640 | #define PORT_FEATURE_LINK_SPEED_15G 0x000d0000 | ||
641 | #define PORT_FEATURE_LINK_SPEED_16G 0x000e0000 | ||
642 | |||
643 | #define PORT_FEATURE_FLOW_CONTROL_MASK 0x00000700 | ||
644 | #define PORT_FEATURE_FLOW_CONTROL_SHIFT 8 | ||
645 | #define PORT_FEATURE_FLOW_CONTROL_AUTO 0x00000000 | ||
646 | #define PORT_FEATURE_FLOW_CONTROL_TX 0x00000100 | ||
647 | #define PORT_FEATURE_FLOW_CONTROL_RX 0x00000200 | ||
648 | #define PORT_FEATURE_FLOW_CONTROL_BOTH 0x00000300 | ||
649 | #define PORT_FEATURE_FLOW_CONTROL_NONE 0x00000400 | ||
650 | |||
651 | /* The default for MCP link configuration, | ||
652 | uses the same defines as link_config */ | ||
653 | u32 mfw_wol_link_cfg; | ||
654 | |||
655 | u32 reserved[19]; | ||
656 | |||
657 | }; | ||
658 | |||
659 | |||
660 | /**************************************************************************** | ||
661 | * Device Information * | ||
662 | ****************************************************************************/ | ||
663 | struct dev_info { /* size */ | ||
664 | |||
665 | u32 bc_rev; /* 8 bits each: major, minor, build */ /* 4 */ | ||
666 | |||
667 | struct shared_hw_cfg shared_hw_config; /* 40 */ | ||
668 | |||
669 | struct port_hw_cfg port_hw_config[FUNC_MAX]; /* 400*2=800 */ | ||
670 | |||
671 | struct shared_feat_cfg shared_feature_config; /* 4 */ | ||
672 | |||
673 | struct port_feat_cfg port_feature_config[FUNC_MAX];/* 116*2=232 */ | ||
674 | |||
675 | }; | ||
676 | |||
677 | |||
678 | /**************************************************************************** | ||
679 | * Management firmware state * | ||
680 | ****************************************************************************/ | ||
681 | /* Allocate 320 bytes for management firmware: still not known exactly | ||
682 | * how much IMD needs. */ | ||
683 | #define MGMTFW_STATE_WORD_SIZE 80 | ||
684 | |||
685 | struct mgmtfw_state { | ||
686 | u32 opaque[MGMTFW_STATE_WORD_SIZE]; | ||
687 | }; | ||
688 | |||
689 | |||
690 | /**************************************************************************** | ||
691 | * Shared Memory Region * | ||
692 | ****************************************************************************/ | ||
693 | struct shmem_region { /* SharedMem Offset (size) */ | ||
694 | u32 validity_map[FUNC_MAX]; /* 0x0 (4 * 2 = 0x8) */ | ||
695 | #define SHR_MEM_VALIDITY_PCI_CFG 0x00000001 | ||
696 | #define SHR_MEM_VALIDITY_MB 0x00000002 | ||
697 | #define SHR_MEM_VALIDITY_DEV_INFO 0x00000004 | ||
698 | /* One licensing bit should be set */ | ||
699 | #define SHR_MEM_VALIDITY_LIC_KEY_IN_EFFECT_MASK 0x00000038 | ||
700 | #define SHR_MEM_VALIDITY_LIC_MANUF_KEY_IN_EFFECT 0x00000008 | ||
701 | #define SHR_MEM_VALIDITY_LIC_UPGRADE_KEY_IN_EFFECT 0x00000010 | ||
702 | #define SHR_MEM_VALIDITY_LIC_NO_KEY_IN_EFFECT 0x00000020 | ||
703 | |||
704 | struct drv_fw_mb drv_fw_mb[FUNC_MAX]; /* 0x8 (28 * 2 = 0x38) */ | ||
705 | |||
706 | struct dev_info dev_info; /* 0x40 (0x438) */ | ||
707 | |||
708 | #ifdef _LICENSE_H | ||
709 | license_key_t drv_lic_key[FUNC_MAX]; /* 0x478 (52 * 2 = 0x68) */ | ||
710 | #else /* Linux! */ | ||
711 | u8 reserved[52*FUNC_MAX]; | ||
712 | #endif | ||
713 | |||
714 | /* FW information (for internal FW use) */ | ||
715 | u32 fw_info_fio_offset; /* 0x4e0 (0x4) */ | ||
716 | struct mgmtfw_state mgmtfw_state; /* 0x4e4 (0x140) */ | ||
717 | |||
718 | }; /* 0x624 */ | ||
719 | |||
720 | |||
721 | #define BCM_5710_FW_MAJOR_VERSION 4 | ||
722 | #define BCM_5710_FW_MINOR_VERSION 0 | ||
723 | #define BCM_5710_FW_REVISION_VERSION 14 | ||
724 | #define BCM_5710_FW_COMPILE_FLAGS 1 | ||
725 | |||
726 | |||
727 | /* | ||
728 | * attention bits | ||
729 | */ | ||
730 | struct atten_def_status_block { | ||
731 | u32 attn_bits; | ||
732 | u32 attn_bits_ack; | ||
733 | #if defined(__BIG_ENDIAN) | ||
734 | u16 attn_bits_index; | ||
735 | u8 reserved0; | ||
736 | u8 status_block_id; | ||
737 | #elif defined(__LITTLE_ENDIAN) | ||
738 | u8 status_block_id; | ||
739 | u8 reserved0; | ||
740 | u16 attn_bits_index; | ||
741 | #endif | ||
742 | u32 reserved1; | ||
743 | }; | ||
744 | |||
745 | |||
746 | /* | ||
747 | * common data for all protocols | ||
748 | */ | ||
749 | struct doorbell_hdr { | ||
750 | u8 header; | ||
751 | #define DOORBELL_HDR_RX (0x1<<0) | ||
752 | #define DOORBELL_HDR_RX_SHIFT 0 | ||
753 | #define DOORBELL_HDR_DB_TYPE (0x1<<1) | ||
754 | #define DOORBELL_HDR_DB_TYPE_SHIFT 1 | ||
755 | #define DOORBELL_HDR_DPM_SIZE (0x3<<2) | ||
756 | #define DOORBELL_HDR_DPM_SIZE_SHIFT 2 | ||
757 | #define DOORBELL_HDR_CONN_TYPE (0xF<<4) | ||
758 | #define DOORBELL_HDR_CONN_TYPE_SHIFT 4 | ||
759 | }; | ||
760 | |||
761 | /* | ||
762 | * doorbell message send to the chip | ||
763 | */ | ||
764 | struct doorbell { | ||
765 | #if defined(__BIG_ENDIAN) | ||
766 | u16 zero_fill2; | ||
767 | u8 zero_fill1; | ||
768 | struct doorbell_hdr header; | ||
769 | #elif defined(__LITTLE_ENDIAN) | ||
770 | struct doorbell_hdr header; | ||
771 | u8 zero_fill1; | ||
772 | u16 zero_fill2; | ||
773 | #endif | ||
774 | }; | ||
775 | |||
776 | |||
777 | /* | ||
778 | * IGU driver acknowlegement register | ||
779 | */ | ||
780 | struct igu_ack_register { | ||
781 | #if defined(__BIG_ENDIAN) | ||
782 | u16 sb_id_and_flags; | ||
783 | #define IGU_ACK_REGISTER_STATUS_BLOCK_ID (0x1F<<0) | ||
784 | #define IGU_ACK_REGISTER_STATUS_BLOCK_ID_SHIFT 0 | ||
785 | #define IGU_ACK_REGISTER_STORM_ID (0x7<<5) | ||
786 | #define IGU_ACK_REGISTER_STORM_ID_SHIFT 5 | ||
787 | #define IGU_ACK_REGISTER_UPDATE_INDEX (0x1<<8) | ||
788 | #define IGU_ACK_REGISTER_UPDATE_INDEX_SHIFT 8 | ||
789 | #define IGU_ACK_REGISTER_INTERRUPT_MODE (0x3<<9) | ||
790 | #define IGU_ACK_REGISTER_INTERRUPT_MODE_SHIFT 9 | ||
791 | #define IGU_ACK_REGISTER_RESERVED (0x1F<<11) | ||
792 | #define IGU_ACK_REGISTER_RESERVED_SHIFT 11 | ||
793 | u16 status_block_index; | ||
794 | #elif defined(__LITTLE_ENDIAN) | ||
795 | u16 status_block_index; | ||
796 | u16 sb_id_and_flags; | ||
797 | #define IGU_ACK_REGISTER_STATUS_BLOCK_ID (0x1F<<0) | ||
798 | #define IGU_ACK_REGISTER_STATUS_BLOCK_ID_SHIFT 0 | ||
799 | #define IGU_ACK_REGISTER_STORM_ID (0x7<<5) | ||
800 | #define IGU_ACK_REGISTER_STORM_ID_SHIFT 5 | ||
801 | #define IGU_ACK_REGISTER_UPDATE_INDEX (0x1<<8) | ||
802 | #define IGU_ACK_REGISTER_UPDATE_INDEX_SHIFT 8 | ||
803 | #define IGU_ACK_REGISTER_INTERRUPT_MODE (0x3<<9) | ||
804 | #define IGU_ACK_REGISTER_INTERRUPT_MODE_SHIFT 9 | ||
805 | #define IGU_ACK_REGISTER_RESERVED (0x1F<<11) | ||
806 | #define IGU_ACK_REGISTER_RESERVED_SHIFT 11 | ||
807 | #endif | ||
808 | }; | ||
809 | |||
810 | |||
811 | /* | ||
812 | * Parser parsing flags field | ||
813 | */ | ||
814 | struct parsing_flags { | ||
815 | u16 flags; | ||
816 | #define PARSING_FLAGS_ETHERNET_ADDRESS_TYPE (0x1<<0) | ||
817 | #define PARSING_FLAGS_ETHERNET_ADDRESS_TYPE_SHIFT 0 | ||
818 | #define PARSING_FLAGS_NUMBER_OF_NESTED_VLANS (0x3<<1) | ||
819 | #define PARSING_FLAGS_NUMBER_OF_NESTED_VLANS_SHIFT 1 | ||
820 | #define PARSING_FLAGS_OVER_ETHERNET_PROTOCOL (0x3<<3) | ||
821 | #define PARSING_FLAGS_OVER_ETHERNET_PROTOCOL_SHIFT 3 | ||
822 | #define PARSING_FLAGS_IP_OPTIONS (0x1<<5) | ||
823 | #define PARSING_FLAGS_IP_OPTIONS_SHIFT 5 | ||
824 | #define PARSING_FLAGS_FRAGMENTATION_STATUS (0x1<<6) | ||
825 | #define PARSING_FLAGS_FRAGMENTATION_STATUS_SHIFT 6 | ||
826 | #define PARSING_FLAGS_OVER_IP_PROTOCOL (0x3<<7) | ||
827 | #define PARSING_FLAGS_OVER_IP_PROTOCOL_SHIFT 7 | ||
828 | #define PARSING_FLAGS_PURE_ACK_INDICATION (0x1<<9) | ||
829 | #define PARSING_FLAGS_PURE_ACK_INDICATION_SHIFT 9 | ||
830 | #define PARSING_FLAGS_TCP_OPTIONS_EXIST (0x1<<10) | ||
831 | #define PARSING_FLAGS_TCP_OPTIONS_EXIST_SHIFT 10 | ||
832 | #define PARSING_FLAGS_TIME_STAMP_EXIST_FLAG (0x1<<11) | ||
833 | #define PARSING_FLAGS_TIME_STAMP_EXIST_FLAG_SHIFT 11 | ||
834 | #define PARSING_FLAGS_CONNECTION_MATCH (0x1<<12) | ||
835 | #define PARSING_FLAGS_CONNECTION_MATCH_SHIFT 12 | ||
836 | #define PARSING_FLAGS_LLC_SNAP (0x1<<13) | ||
837 | #define PARSING_FLAGS_LLC_SNAP_SHIFT 13 | ||
838 | #define PARSING_FLAGS_RESERVED0 (0x3<<14) | ||
839 | #define PARSING_FLAGS_RESERVED0_SHIFT 14 | ||
840 | }; | ||
841 | |||
842 | |||
843 | /* | ||
844 | * dmae command structure | ||
845 | */ | ||
846 | struct dmae_command { | ||
847 | u32 opcode; | ||
848 | #define DMAE_COMMAND_SRC (0x1<<0) | ||
849 | #define DMAE_COMMAND_SRC_SHIFT 0 | ||
850 | #define DMAE_COMMAND_DST (0x3<<1) | ||
851 | #define DMAE_COMMAND_DST_SHIFT 1 | ||
852 | #define DMAE_COMMAND_C_DST (0x1<<3) | ||
853 | #define DMAE_COMMAND_C_DST_SHIFT 3 | ||
854 | #define DMAE_COMMAND_C_TYPE_ENABLE (0x1<<4) | ||
855 | #define DMAE_COMMAND_C_TYPE_ENABLE_SHIFT 4 | ||
856 | #define DMAE_COMMAND_C_TYPE_CRC_ENABLE (0x1<<5) | ||
857 | #define DMAE_COMMAND_C_TYPE_CRC_ENABLE_SHIFT 5 | ||
858 | #define DMAE_COMMAND_C_TYPE_CRC_OFFSET (0x7<<6) | ||
859 | #define DMAE_COMMAND_C_TYPE_CRC_OFFSET_SHIFT 6 | ||
860 | #define DMAE_COMMAND_ENDIANITY (0x3<<9) | ||
861 | #define DMAE_COMMAND_ENDIANITY_SHIFT 9 | ||
862 | #define DMAE_COMMAND_PORT (0x1<<11) | ||
863 | #define DMAE_COMMAND_PORT_SHIFT 11 | ||
864 | #define DMAE_COMMAND_CRC_RESET (0x1<<12) | ||
865 | #define DMAE_COMMAND_CRC_RESET_SHIFT 12 | ||
866 | #define DMAE_COMMAND_SRC_RESET (0x1<<13) | ||
867 | #define DMAE_COMMAND_SRC_RESET_SHIFT 13 | ||
868 | #define DMAE_COMMAND_DST_RESET (0x1<<14) | ||
869 | #define DMAE_COMMAND_DST_RESET_SHIFT 14 | ||
870 | #define DMAE_COMMAND_RESERVED0 (0x1FFFF<<15) | ||
871 | #define DMAE_COMMAND_RESERVED0_SHIFT 15 | ||
872 | u32 src_addr_lo; | ||
873 | u32 src_addr_hi; | ||
874 | u32 dst_addr_lo; | ||
875 | u32 dst_addr_hi; | ||
876 | #if defined(__BIG_ENDIAN) | ||
877 | u16 reserved1; | ||
878 | u16 len; | ||
879 | #elif defined(__LITTLE_ENDIAN) | ||
880 | u16 len; | ||
881 | u16 reserved1; | ||
882 | #endif | ||
883 | u32 comp_addr_lo; | ||
884 | u32 comp_addr_hi; | ||
885 | u32 comp_val; | ||
886 | u32 crc32; | ||
887 | u32 crc32_c; | ||
888 | #if defined(__BIG_ENDIAN) | ||
889 | u16 crc16_c; | ||
890 | u16 crc16; | ||
891 | #elif defined(__LITTLE_ENDIAN) | ||
892 | u16 crc16; | ||
893 | u16 crc16_c; | ||
894 | #endif | ||
895 | #if defined(__BIG_ENDIAN) | ||
896 | u16 reserved2; | ||
897 | u16 crc_t10; | ||
898 | #elif defined(__LITTLE_ENDIAN) | ||
899 | u16 crc_t10; | ||
900 | u16 reserved2; | ||
901 | #endif | ||
902 | #if defined(__BIG_ENDIAN) | ||
903 | u16 xsum8; | ||
904 | u16 xsum16; | ||
905 | #elif defined(__LITTLE_ENDIAN) | ||
906 | u16 xsum16; | ||
907 | u16 xsum8; | ||
908 | #endif | ||
909 | }; | ||
910 | |||
911 | |||
912 | struct double_regpair { | ||
913 | u32 regpair0_lo; | ||
914 | u32 regpair0_hi; | ||
915 | u32 regpair1_lo; | ||
916 | u32 regpair1_hi; | ||
917 | }; | ||
918 | |||
919 | |||
920 | /* | ||
921 | * The eth Rx Buffer Descriptor | ||
922 | */ | ||
923 | struct eth_rx_bd { | ||
924 | u32 addr_lo; | ||
925 | u32 addr_hi; | ||
926 | }; | ||
927 | |||
928 | /* | ||
929 | * The eth storm context of Ustorm | ||
930 | */ | ||
931 | struct ustorm_eth_st_context { | ||
932 | #if defined(__BIG_ENDIAN) | ||
933 | u8 sb_index_number; | ||
934 | u8 status_block_id; | ||
935 | u8 __local_rx_bd_cons; | ||
936 | u8 __local_rx_bd_prod; | ||
937 | #elif defined(__LITTLE_ENDIAN) | ||
938 | u8 __local_rx_bd_prod; | ||
939 | u8 __local_rx_bd_cons; | ||
940 | u8 status_block_id; | ||
941 | u8 sb_index_number; | ||
942 | #endif | ||
943 | #if defined(__BIG_ENDIAN) | ||
944 | u16 rcq_cons; | ||
945 | u16 rx_bd_cons; | ||
946 | #elif defined(__LITTLE_ENDIAN) | ||
947 | u16 rx_bd_cons; | ||
948 | u16 rcq_cons; | ||
949 | #endif | ||
950 | u32 rx_bd_page_base_lo; | ||
951 | u32 rx_bd_page_base_hi; | ||
952 | u32 rcq_base_address_lo; | ||
953 | u32 rcq_base_address_hi; | ||
954 | #if defined(__BIG_ENDIAN) | ||
955 | u16 __num_of_returned_cqes; | ||
956 | u8 num_rss; | ||
957 | u8 flags; | ||
958 | #define USTORM_ETH_ST_CONTEXT_ENABLE_MC_ALIGNMENT (0x1<<0) | ||
959 | #define USTORM_ETH_ST_CONTEXT_ENABLE_MC_ALIGNMENT_SHIFT 0 | ||
960 | #define USTORM_ETH_ST_CONTEXT_ENABLE_DYNAMIC_HC (0x1<<1) | ||
961 | #define USTORM_ETH_ST_CONTEXT_ENABLE_DYNAMIC_HC_SHIFT 1 | ||
962 | #define USTORM_ETH_ST_CONTEXT_ENABLE_TPA (0x1<<2) | ||
963 | #define USTORM_ETH_ST_CONTEXT_ENABLE_TPA_SHIFT 2 | ||
964 | #define __USTORM_ETH_ST_CONTEXT_RESERVED0 (0x1F<<3) | ||
965 | #define __USTORM_ETH_ST_CONTEXT_RESERVED0_SHIFT 3 | ||
966 | #elif defined(__LITTLE_ENDIAN) | ||
967 | u8 flags; | ||
968 | #define USTORM_ETH_ST_CONTEXT_ENABLE_MC_ALIGNMENT (0x1<<0) | ||
969 | #define USTORM_ETH_ST_CONTEXT_ENABLE_MC_ALIGNMENT_SHIFT 0 | ||
970 | #define USTORM_ETH_ST_CONTEXT_ENABLE_DYNAMIC_HC (0x1<<1) | ||
971 | #define USTORM_ETH_ST_CONTEXT_ENABLE_DYNAMIC_HC_SHIFT 1 | ||
972 | #define USTORM_ETH_ST_CONTEXT_ENABLE_TPA (0x1<<2) | ||
973 | #define USTORM_ETH_ST_CONTEXT_ENABLE_TPA_SHIFT 2 | ||
974 | #define __USTORM_ETH_ST_CONTEXT_RESERVED0 (0x1F<<3) | ||
975 | #define __USTORM_ETH_ST_CONTEXT_RESERVED0_SHIFT 3 | ||
976 | u8 num_rss; | ||
977 | u16 __num_of_returned_cqes; | ||
978 | #endif | ||
979 | #if defined(__BIG_ENDIAN) | ||
980 | u16 mc_alignment_size; | ||
981 | u16 agg_threshold; | ||
982 | #elif defined(__LITTLE_ENDIAN) | ||
983 | u16 agg_threshold; | ||
984 | u16 mc_alignment_size; | ||
985 | #endif | ||
986 | struct eth_rx_bd __local_bd_ring[16]; | ||
987 | }; | ||
988 | |||
989 | /* | ||
990 | * The eth storm context of Tstorm | ||
991 | */ | ||
992 | struct tstorm_eth_st_context { | ||
993 | u32 __reserved0[28]; | ||
994 | }; | ||
995 | |||
996 | /* | ||
997 | * The eth aggregative context section of Xstorm | ||
998 | */ | ||
999 | struct xstorm_eth_extra_ag_context_section { | ||
1000 | #if defined(__BIG_ENDIAN) | ||
1001 | u8 __tcp_agg_vars1; | ||
1002 | u8 __reserved50; | ||
1003 | u16 __mss; | ||
1004 | #elif defined(__LITTLE_ENDIAN) | ||
1005 | u16 __mss; | ||
1006 | u8 __reserved50; | ||
1007 | u8 __tcp_agg_vars1; | ||
1008 | #endif | ||
1009 | u32 __snd_nxt; | ||
1010 | u32 __tx_wnd; | ||
1011 | u32 __snd_una; | ||
1012 | u32 __reserved53; | ||
1013 | #if defined(__BIG_ENDIAN) | ||
1014 | u8 __agg_val8_th; | ||
1015 | u8 __agg_val8; | ||
1016 | u16 __tcp_agg_vars2; | ||
1017 | #elif defined(__LITTLE_ENDIAN) | ||
1018 | u16 __tcp_agg_vars2; | ||
1019 | u8 __agg_val8; | ||
1020 | u8 __agg_val8_th; | ||
1021 | #endif | ||
1022 | u32 __reserved58; | ||
1023 | u32 __reserved59; | ||
1024 | u32 __reserved60; | ||
1025 | u32 __reserved61; | ||
1026 | #if defined(__BIG_ENDIAN) | ||
1027 | u16 __agg_val7_th; | ||
1028 | u16 __agg_val7; | ||
1029 | #elif defined(__LITTLE_ENDIAN) | ||
1030 | u16 __agg_val7; | ||
1031 | u16 __agg_val7_th; | ||
1032 | #endif | ||
1033 | #if defined(__BIG_ENDIAN) | ||
1034 | u8 __tcp_agg_vars5; | ||
1035 | u8 __tcp_agg_vars4; | ||
1036 | u8 __tcp_agg_vars3; | ||
1037 | u8 __reserved62; | ||
1038 | #elif defined(__LITTLE_ENDIAN) | ||
1039 | u8 __reserved62; | ||
1040 | u8 __tcp_agg_vars3; | ||
1041 | u8 __tcp_agg_vars4; | ||
1042 | u8 __tcp_agg_vars5; | ||
1043 | #endif | ||
1044 | u32 __tcp_agg_vars6; | ||
1045 | #if defined(__BIG_ENDIAN) | ||
1046 | u16 __agg_misc6; | ||
1047 | u16 __tcp_agg_vars7; | ||
1048 | #elif defined(__LITTLE_ENDIAN) | ||
1049 | u16 __tcp_agg_vars7; | ||
1050 | u16 __agg_misc6; | ||
1051 | #endif | ||
1052 | u32 __agg_val10; | ||
1053 | u32 __agg_val10_th; | ||
1054 | #if defined(__BIG_ENDIAN) | ||
1055 | u16 __reserved3; | ||
1056 | u8 __reserved2; | ||
1057 | u8 __agg_misc7; | ||
1058 | #elif defined(__LITTLE_ENDIAN) | ||
1059 | u8 __agg_misc7; | ||
1060 | u8 __reserved2; | ||
1061 | u16 __reserved3; | ||
1062 | #endif | ||
1063 | }; | ||
1064 | |||
1065 | /* | ||
1066 | * The eth aggregative context of Xstorm | ||
1067 | */ | ||
1068 | struct xstorm_eth_ag_context { | ||
1069 | #if defined(__BIG_ENDIAN) | ||
1070 | u16 __bd_prod; | ||
1071 | u8 __agg_vars1; | ||
1072 | u8 __state; | ||
1073 | #elif defined(__LITTLE_ENDIAN) | ||
1074 | u8 __state; | ||
1075 | u8 __agg_vars1; | ||
1076 | u16 __bd_prod; | ||
1077 | #endif | ||
1078 | #if defined(__BIG_ENDIAN) | ||
1079 | u8 cdu_reserved; | ||
1080 | u8 __agg_vars4; | ||
1081 | u8 __agg_vars3; | ||
1082 | u8 __agg_vars2; | ||
1083 | #elif defined(__LITTLE_ENDIAN) | ||
1084 | u8 __agg_vars2; | ||
1085 | u8 __agg_vars3; | ||
1086 | u8 __agg_vars4; | ||
1087 | u8 cdu_reserved; | ||
1088 | #endif | ||
1089 | u32 __more_packets_to_send; | ||
1090 | #if defined(__BIG_ENDIAN) | ||
1091 | u16 __agg_vars5; | ||
1092 | u16 __agg_val4_th; | ||
1093 | #elif defined(__LITTLE_ENDIAN) | ||
1094 | u16 __agg_val4_th; | ||
1095 | u16 __agg_vars5; | ||
1096 | #endif | ||
1097 | struct xstorm_eth_extra_ag_context_section __extra_section; | ||
1098 | #if defined(__BIG_ENDIAN) | ||
1099 | u16 __agg_vars7; | ||
1100 | u8 __agg_val3_th; | ||
1101 | u8 __agg_vars6; | ||
1102 | #elif defined(__LITTLE_ENDIAN) | ||
1103 | u8 __agg_vars6; | ||
1104 | u8 __agg_val3_th; | ||
1105 | u16 __agg_vars7; | ||
1106 | #endif | ||
1107 | #if defined(__BIG_ENDIAN) | ||
1108 | u16 __agg_val11_th; | ||
1109 | u16 __agg_val11; | ||
1110 | #elif defined(__LITTLE_ENDIAN) | ||
1111 | u16 __agg_val11; | ||
1112 | u16 __agg_val11_th; | ||
1113 | #endif | ||
1114 | #if defined(__BIG_ENDIAN) | ||
1115 | u8 __reserved1; | ||
1116 | u8 __agg_val6_th; | ||
1117 | u16 __agg_val9; | ||
1118 | #elif defined(__LITTLE_ENDIAN) | ||
1119 | u16 __agg_val9; | ||
1120 | u8 __agg_val6_th; | ||
1121 | u8 __reserved1; | ||
1122 | #endif | ||
1123 | #if defined(__BIG_ENDIAN) | ||
1124 | u16 __agg_val2_th; | ||
1125 | u16 __agg_val2; | ||
1126 | #elif defined(__LITTLE_ENDIAN) | ||
1127 | u16 __agg_val2; | ||
1128 | u16 __agg_val2_th; | ||
1129 | #endif | ||
1130 | u32 __agg_vars8; | ||
1131 | #if defined(__BIG_ENDIAN) | ||
1132 | u16 __agg_misc0; | ||
1133 | u16 __agg_val4; | ||
1134 | #elif defined(__LITTLE_ENDIAN) | ||
1135 | u16 __agg_val4; | ||
1136 | u16 __agg_misc0; | ||
1137 | #endif | ||
1138 | #if defined(__BIG_ENDIAN) | ||
1139 | u8 __agg_val3; | ||
1140 | u8 __agg_val6; | ||
1141 | u8 __agg_val5_th; | ||
1142 | u8 __agg_val5; | ||
1143 | #elif defined(__LITTLE_ENDIAN) | ||
1144 | u8 __agg_val5; | ||
1145 | u8 __agg_val5_th; | ||
1146 | u8 __agg_val6; | ||
1147 | u8 __agg_val3; | ||
1148 | #endif | ||
1149 | #if defined(__BIG_ENDIAN) | ||
1150 | u16 __agg_misc1; | ||
1151 | u16 __bd_ind_max_val; | ||
1152 | #elif defined(__LITTLE_ENDIAN) | ||
1153 | u16 __bd_ind_max_val; | ||
1154 | u16 __agg_misc1; | ||
1155 | #endif | ||
1156 | u32 __reserved57; | ||
1157 | u32 __agg_misc4; | ||
1158 | u32 __agg_misc5; | ||
1159 | }; | ||
1160 | |||
1161 | /* | ||
1162 | * The eth aggregative context section of Tstorm | ||
1163 | */ | ||
1164 | struct tstorm_eth_extra_ag_context_section { | ||
1165 | u32 __agg_val1; | ||
1166 | #if defined(__BIG_ENDIAN) | ||
1167 | u8 __tcp_agg_vars2; | ||
1168 | u8 __agg_val3; | ||
1169 | u16 __agg_val2; | ||
1170 | #elif defined(__LITTLE_ENDIAN) | ||
1171 | u16 __agg_val2; | ||
1172 | u8 __agg_val3; | ||
1173 | u8 __tcp_agg_vars2; | ||
1174 | #endif | ||
1175 | #if defined(__BIG_ENDIAN) | ||
1176 | u16 __agg_val5; | ||
1177 | u8 __agg_val6; | ||
1178 | u8 __tcp_agg_vars3; | ||
1179 | #elif defined(__LITTLE_ENDIAN) | ||
1180 | u8 __tcp_agg_vars3; | ||
1181 | u8 __agg_val6; | ||
1182 | u16 __agg_val5; | ||
1183 | #endif | ||
1184 | u32 __reserved63; | ||
1185 | u32 __reserved64; | ||
1186 | u32 __reserved65; | ||
1187 | u32 __reserved66; | ||
1188 | u32 __reserved67; | ||
1189 | u32 __tcp_agg_vars1; | ||
1190 | u32 __reserved61; | ||
1191 | u32 __reserved62; | ||
1192 | u32 __reserved2; | ||
1193 | }; | ||
1194 | |||
1195 | /* | ||
1196 | * The eth aggregative context of Tstorm | ||
1197 | */ | ||
1198 | struct tstorm_eth_ag_context { | ||
1199 | #if defined(__BIG_ENDIAN) | ||
1200 | u16 __reserved54; | ||
1201 | u8 __agg_vars1; | ||
1202 | u8 __state; | ||
1203 | #elif defined(__LITTLE_ENDIAN) | ||
1204 | u8 __state; | ||
1205 | u8 __agg_vars1; | ||
1206 | u16 __reserved54; | ||
1207 | #endif | ||
1208 | #if defined(__BIG_ENDIAN) | ||
1209 | u16 __agg_val4; | ||
1210 | u16 __agg_vars2; | ||
1211 | #elif defined(__LITTLE_ENDIAN) | ||
1212 | u16 __agg_vars2; | ||
1213 | u16 __agg_val4; | ||
1214 | #endif | ||
1215 | struct tstorm_eth_extra_ag_context_section __extra_section; | ||
1216 | }; | ||
1217 | |||
1218 | /* | ||
1219 | * The eth aggregative context of Cstorm | ||
1220 | */ | ||
1221 | struct cstorm_eth_ag_context { | ||
1222 | u32 __agg_vars1; | ||
1223 | #if defined(__BIG_ENDIAN) | ||
1224 | u8 __aux1_th; | ||
1225 | u8 __aux1_val; | ||
1226 | u16 __agg_vars2; | ||
1227 | #elif defined(__LITTLE_ENDIAN) | ||
1228 | u16 __agg_vars2; | ||
1229 | u8 __aux1_val; | ||
1230 | u8 __aux1_th; | ||
1231 | #endif | ||
1232 | u32 __num_of_treated_packet; | ||
1233 | u32 __last_packet_treated; | ||
1234 | #if defined(__BIG_ENDIAN) | ||
1235 | u16 __reserved58; | ||
1236 | u16 __reserved57; | ||
1237 | #elif defined(__LITTLE_ENDIAN) | ||
1238 | u16 __reserved57; | ||
1239 | u16 __reserved58; | ||
1240 | #endif | ||
1241 | #if defined(__BIG_ENDIAN) | ||
1242 | u8 __reserved62; | ||
1243 | u8 __reserved61; | ||
1244 | u8 __reserved60; | ||
1245 | u8 __reserved59; | ||
1246 | #elif defined(__LITTLE_ENDIAN) | ||
1247 | u8 __reserved59; | ||
1248 | u8 __reserved60; | ||
1249 | u8 __reserved61; | ||
1250 | u8 __reserved62; | ||
1251 | #endif | ||
1252 | #if defined(__BIG_ENDIAN) | ||
1253 | u16 __reserved64; | ||
1254 | u16 __reserved63; | ||
1255 | #elif defined(__LITTLE_ENDIAN) | ||
1256 | u16 __reserved63; | ||
1257 | u16 __reserved64; | ||
1258 | #endif | ||
1259 | u32 __reserved65; | ||
1260 | #if defined(__BIG_ENDIAN) | ||
1261 | u16 __agg_vars3; | ||
1262 | u16 __rq_inv_cnt; | ||
1263 | #elif defined(__LITTLE_ENDIAN) | ||
1264 | u16 __rq_inv_cnt; | ||
1265 | u16 __agg_vars3; | ||
1266 | #endif | ||
1267 | #if defined(__BIG_ENDIAN) | ||
1268 | u16 __packet_index_th; | ||
1269 | u16 __packet_index; | ||
1270 | #elif defined(__LITTLE_ENDIAN) | ||
1271 | u16 __packet_index; | ||
1272 | u16 __packet_index_th; | ||
1273 | #endif | ||
1274 | }; | ||
1275 | |||
1276 | /* | ||
1277 | * The eth aggregative context of Ustorm | ||
1278 | */ | ||
1279 | struct ustorm_eth_ag_context { | ||
1280 | #if defined(__BIG_ENDIAN) | ||
1281 | u8 __aux_counter_flags; | ||
1282 | u8 __agg_vars2; | ||
1283 | u8 __agg_vars1; | ||
1284 | u8 __state; | ||
1285 | #elif defined(__LITTLE_ENDIAN) | ||
1286 | u8 __state; | ||
1287 | u8 __agg_vars1; | ||
1288 | u8 __agg_vars2; | ||
1289 | u8 __aux_counter_flags; | ||
1290 | #endif | ||
1291 | #if defined(__BIG_ENDIAN) | ||
1292 | u8 cdu_usage; | ||
1293 | u8 __agg_misc2; | ||
1294 | u16 __agg_misc1; | ||
1295 | #elif defined(__LITTLE_ENDIAN) | ||
1296 | u16 __agg_misc1; | ||
1297 | u8 __agg_misc2; | ||
1298 | u8 cdu_usage; | ||
1299 | #endif | ||
1300 | u32 __agg_misc4; | ||
1301 | #if defined(__BIG_ENDIAN) | ||
1302 | u8 __agg_val3_th; | ||
1303 | u8 __agg_val3; | ||
1304 | u16 __agg_misc3; | ||
1305 | #elif defined(__LITTLE_ENDIAN) | ||
1306 | u16 __agg_misc3; | ||
1307 | u8 __agg_val3; | ||
1308 | u8 __agg_val3_th; | ||
1309 | #endif | ||
1310 | u32 __agg_val1; | ||
1311 | u32 __agg_misc4_th; | ||
1312 | #if defined(__BIG_ENDIAN) | ||
1313 | u16 __agg_val2_th; | ||
1314 | u16 __agg_val2; | ||
1315 | #elif defined(__LITTLE_ENDIAN) | ||
1316 | u16 __agg_val2; | ||
1317 | u16 __agg_val2_th; | ||
1318 | #endif | ||
1319 | #if defined(__BIG_ENDIAN) | ||
1320 | u16 __reserved2; | ||
1321 | u8 __decision_rules; | ||
1322 | u8 __decision_rule_enable_bits; | ||
1323 | #elif defined(__LITTLE_ENDIAN) | ||
1324 | u8 __decision_rule_enable_bits; | ||
1325 | u8 __decision_rules; | ||
1326 | u16 __reserved2; | ||
1327 | #endif | ||
1328 | }; | ||
1329 | |||
1330 | /* | ||
1331 | * Timers connection context | ||
1332 | */ | ||
1333 | struct timers_block_context { | ||
1334 | u32 __reserved_0; | ||
1335 | u32 __reserved_1; | ||
1336 | u32 __reserved_2; | ||
1337 | u32 __reserved_flags; | ||
1338 | }; | ||
1339 | |||
1340 | /* | ||
1341 | * structure for easy accessability to assembler | ||
1342 | */ | ||
1343 | struct eth_tx_bd_flags { | ||
1344 | u8 as_bitfield; | ||
1345 | #define ETH_TX_BD_FLAGS_VLAN_TAG (0x1<<0) | ||
1346 | #define ETH_TX_BD_FLAGS_VLAN_TAG_SHIFT 0 | ||
1347 | #define ETH_TX_BD_FLAGS_IP_CSUM (0x1<<1) | ||
1348 | #define ETH_TX_BD_FLAGS_IP_CSUM_SHIFT 1 | ||
1349 | #define ETH_TX_BD_FLAGS_TCP_CSUM (0x1<<2) | ||
1350 | #define ETH_TX_BD_FLAGS_TCP_CSUM_SHIFT 2 | ||
1351 | #define ETH_TX_BD_FLAGS_END_BD (0x1<<3) | ||
1352 | #define ETH_TX_BD_FLAGS_END_BD_SHIFT 3 | ||
1353 | #define ETH_TX_BD_FLAGS_START_BD (0x1<<4) | ||
1354 | #define ETH_TX_BD_FLAGS_START_BD_SHIFT 4 | ||
1355 | #define ETH_TX_BD_FLAGS_HDR_POOL (0x1<<5) | ||
1356 | #define ETH_TX_BD_FLAGS_HDR_POOL_SHIFT 5 | ||
1357 | #define ETH_TX_BD_FLAGS_SW_LSO (0x1<<6) | ||
1358 | #define ETH_TX_BD_FLAGS_SW_LSO_SHIFT 6 | ||
1359 | #define ETH_TX_BD_FLAGS_IPV6 (0x1<<7) | ||
1360 | #define ETH_TX_BD_FLAGS_IPV6_SHIFT 7 | ||
1361 | }; | ||
1362 | |||
1363 | /* | ||
1364 | * The eth Tx Buffer Descriptor | ||
1365 | */ | ||
1366 | struct eth_tx_bd { | ||
1367 | u32 addr_lo; | ||
1368 | u32 addr_hi; | ||
1369 | u16 nbd; | ||
1370 | u16 nbytes; | ||
1371 | u16 vlan; | ||
1372 | struct eth_tx_bd_flags bd_flags; | ||
1373 | u8 general_data; | ||
1374 | #define ETH_TX_BD_HDR_NBDS (0x3F<<0) | ||
1375 | #define ETH_TX_BD_HDR_NBDS_SHIFT 0 | ||
1376 | #define ETH_TX_BD_ETH_ADDR_TYPE (0x3<<6) | ||
1377 | #define ETH_TX_BD_ETH_ADDR_TYPE_SHIFT 6 | ||
1378 | }; | ||
1379 | |||
1380 | /* | ||
1381 | * Tx parsing BD structure for ETH,Relevant in START | ||
1382 | */ | ||
1383 | struct eth_tx_parse_bd { | ||
1384 | u8 global_data; | ||
1385 | #define ETH_TX_PARSE_BD_IP_HDR_START_OFFSET (0xF<<0) | ||
1386 | #define ETH_TX_PARSE_BD_IP_HDR_START_OFFSET_SHIFT 0 | ||
1387 | #define ETH_TX_PARSE_BD_CS_ANY_FLG (0x1<<4) | ||
1388 | #define ETH_TX_PARSE_BD_CS_ANY_FLG_SHIFT 4 | ||
1389 | #define ETH_TX_PARSE_BD_PSEUDO_CS_WITHOUT_LEN (0x1<<5) | ||
1390 | #define ETH_TX_PARSE_BD_PSEUDO_CS_WITHOUT_LEN_SHIFT 5 | ||
1391 | #define ETH_TX_PARSE_BD_LLC_SNAP_EN (0x1<<6) | ||
1392 | #define ETH_TX_PARSE_BD_LLC_SNAP_EN_SHIFT 6 | ||
1393 | #define ETH_TX_PARSE_BD_NS_FLG (0x1<<7) | ||
1394 | #define ETH_TX_PARSE_BD_NS_FLG_SHIFT 7 | ||
1395 | u8 tcp_flags; | ||
1396 | #define ETH_TX_PARSE_BD_FIN_FLG (0x1<<0) | ||
1397 | #define ETH_TX_PARSE_BD_FIN_FLG_SHIFT 0 | ||
1398 | #define ETH_TX_PARSE_BD_SYN_FLG (0x1<<1) | ||
1399 | #define ETH_TX_PARSE_BD_SYN_FLG_SHIFT 1 | ||
1400 | #define ETH_TX_PARSE_BD_RST_FLG (0x1<<2) | ||
1401 | #define ETH_TX_PARSE_BD_RST_FLG_SHIFT 2 | ||
1402 | #define ETH_TX_PARSE_BD_PSH_FLG (0x1<<3) | ||
1403 | #define ETH_TX_PARSE_BD_PSH_FLG_SHIFT 3 | ||
1404 | #define ETH_TX_PARSE_BD_ACK_FLG (0x1<<4) | ||
1405 | #define ETH_TX_PARSE_BD_ACK_FLG_SHIFT 4 | ||
1406 | #define ETH_TX_PARSE_BD_URG_FLG (0x1<<5) | ||
1407 | #define ETH_TX_PARSE_BD_URG_FLG_SHIFT 5 | ||
1408 | #define ETH_TX_PARSE_BD_ECE_FLG (0x1<<6) | ||
1409 | #define ETH_TX_PARSE_BD_ECE_FLG_SHIFT 6 | ||
1410 | #define ETH_TX_PARSE_BD_CWR_FLG (0x1<<7) | ||
1411 | #define ETH_TX_PARSE_BD_CWR_FLG_SHIFT 7 | ||
1412 | u8 ip_hlen; | ||
1413 | s8 cs_offset; | ||
1414 | u16 total_hlen; | ||
1415 | u16 lso_mss; | ||
1416 | u16 tcp_pseudo_csum; | ||
1417 | u16 ip_id; | ||
1418 | u32 tcp_send_seq; | ||
1419 | }; | ||
1420 | |||
1421 | /* | ||
1422 | * The last BD in the BD memory will hold a pointer to the next BD memory | ||
1423 | */ | ||
1424 | struct eth_tx_next_bd { | ||
1425 | u32 addr_lo; | ||
1426 | u32 addr_hi; | ||
1427 | u8 reserved[8]; | ||
1428 | }; | ||
1429 | |||
1430 | /* | ||
1431 | * union for 3 Bd types | ||
1432 | */ | ||
1433 | union eth_tx_bd_types { | ||
1434 | struct eth_tx_bd reg_bd; | ||
1435 | struct eth_tx_parse_bd parse_bd; | ||
1436 | struct eth_tx_next_bd next_bd; | ||
1437 | }; | ||
1438 | |||
1439 | /* | ||
1440 | * The eth storm context of Xstorm | ||
1441 | */ | ||
1442 | struct xstorm_eth_st_context { | ||
1443 | u32 tx_bd_page_base_lo; | ||
1444 | u32 tx_bd_page_base_hi; | ||
1445 | #if defined(__BIG_ENDIAN) | ||
1446 | u16 tx_bd_cons; | ||
1447 | u8 __reserved0; | ||
1448 | u8 __local_tx_bd_prod; | ||
1449 | #elif defined(__LITTLE_ENDIAN) | ||
1450 | u8 __local_tx_bd_prod; | ||
1451 | u8 __reserved0; | ||
1452 | u16 tx_bd_cons; | ||
1453 | #endif | ||
1454 | u32 db_data_addr_lo; | ||
1455 | u32 db_data_addr_hi; | ||
1456 | u32 __pkt_cons; | ||
1457 | u32 __gso_next; | ||
1458 | u32 is_eth_conn_1b; | ||
1459 | union eth_tx_bd_types __bds[13]; | ||
1460 | }; | ||
1461 | |||
1462 | /* | ||
1463 | * The eth storm context of Cstorm | ||
1464 | */ | ||
1465 | struct cstorm_eth_st_context { | ||
1466 | #if defined(__BIG_ENDIAN) | ||
1467 | u16 __reserved0; | ||
1468 | u8 sb_index_number; | ||
1469 | u8 status_block_id; | ||
1470 | #elif defined(__LITTLE_ENDIAN) | ||
1471 | u8 status_block_id; | ||
1472 | u8 sb_index_number; | ||
1473 | u16 __reserved0; | ||
1474 | #endif | ||
1475 | u32 __reserved1[3]; | ||
1476 | }; | ||
1477 | |||
1478 | /* | ||
1479 | * Ethernet connection context | ||
1480 | */ | ||
1481 | struct eth_context { | ||
1482 | struct ustorm_eth_st_context ustorm_st_context; | ||
1483 | struct tstorm_eth_st_context tstorm_st_context; | ||
1484 | struct xstorm_eth_ag_context xstorm_ag_context; | ||
1485 | struct tstorm_eth_ag_context tstorm_ag_context; | ||
1486 | struct cstorm_eth_ag_context cstorm_ag_context; | ||
1487 | struct ustorm_eth_ag_context ustorm_ag_context; | ||
1488 | struct timers_block_context timers_context; | ||
1489 | struct xstorm_eth_st_context xstorm_st_context; | ||
1490 | struct cstorm_eth_st_context cstorm_st_context; | ||
1491 | }; | ||
1492 | |||
1493 | |||
1494 | /* | ||
1495 | * ethernet doorbell | ||
1496 | */ | ||
1497 | struct eth_tx_doorbell { | ||
1498 | #if defined(__BIG_ENDIAN) | ||
1499 | u16 npackets; | ||
1500 | u8 params; | ||
1501 | #define ETH_TX_DOORBELL_NUM_BDS (0x3F<<0) | ||
1502 | #define ETH_TX_DOORBELL_NUM_BDS_SHIFT 0 | ||
1503 | #define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG (0x1<<6) | ||
1504 | #define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG_SHIFT 6 | ||
1505 | #define ETH_TX_DOORBELL_SPARE (0x1<<7) | ||
1506 | #define ETH_TX_DOORBELL_SPARE_SHIFT 7 | ||
1507 | struct doorbell_hdr hdr; | ||
1508 | #elif defined(__LITTLE_ENDIAN) | ||
1509 | struct doorbell_hdr hdr; | ||
1510 | u8 params; | ||
1511 | #define ETH_TX_DOORBELL_NUM_BDS (0x3F<<0) | ||
1512 | #define ETH_TX_DOORBELL_NUM_BDS_SHIFT 0 | ||
1513 | #define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG (0x1<<6) | ||
1514 | #define ETH_TX_DOORBELL_RESERVED_TX_FIN_FLAG_SHIFT 6 | ||
1515 | #define ETH_TX_DOORBELL_SPARE (0x1<<7) | ||
1516 | #define ETH_TX_DOORBELL_SPARE_SHIFT 7 | ||
1517 | u16 npackets; | ||
1518 | #endif | ||
1519 | }; | ||
1520 | |||
1521 | |||
1522 | /* | ||
1523 | * ustorm status block | ||
1524 | */ | ||
1525 | struct ustorm_def_status_block { | ||
1526 | u16 index_values[HC_USTORM_DEF_SB_NUM_INDICES]; | ||
1527 | u16 status_block_index; | ||
1528 | u8 reserved0; | ||
1529 | u8 status_block_id; | ||
1530 | u32 __flags; | ||
1531 | }; | ||
1532 | |||
1533 | /* | ||
1534 | * cstorm status block | ||
1535 | */ | ||
1536 | struct cstorm_def_status_block { | ||
1537 | u16 index_values[HC_CSTORM_DEF_SB_NUM_INDICES]; | ||
1538 | u16 status_block_index; | ||
1539 | u8 reserved0; | ||
1540 | u8 status_block_id; | ||
1541 | u32 __flags; | ||
1542 | }; | ||
1543 | |||
1544 | /* | ||
1545 | * xstorm status block | ||
1546 | */ | ||
1547 | struct xstorm_def_status_block { | ||
1548 | u16 index_values[HC_XSTORM_DEF_SB_NUM_INDICES]; | ||
1549 | u16 status_block_index; | ||
1550 | u8 reserved0; | ||
1551 | u8 status_block_id; | ||
1552 | u32 __flags; | ||
1553 | }; | ||
1554 | |||
1555 | /* | ||
1556 | * tstorm status block | ||
1557 | */ | ||
1558 | struct tstorm_def_status_block { | ||
1559 | u16 index_values[HC_TSTORM_DEF_SB_NUM_INDICES]; | ||
1560 | u16 status_block_index; | ||
1561 | u8 reserved0; | ||
1562 | u8 status_block_id; | ||
1563 | u32 __flags; | ||
1564 | }; | ||
1565 | |||
1566 | /* | ||
1567 | * host status block | ||
1568 | */ | ||
1569 | struct host_def_status_block { | ||
1570 | struct atten_def_status_block atten_status_block; | ||
1571 | struct ustorm_def_status_block u_def_status_block; | ||
1572 | struct cstorm_def_status_block c_def_status_block; | ||
1573 | struct xstorm_def_status_block x_def_status_block; | ||
1574 | struct tstorm_def_status_block t_def_status_block; | ||
1575 | }; | ||
1576 | |||
1577 | |||
1578 | /* | ||
1579 | * ustorm status block | ||
1580 | */ | ||
1581 | struct ustorm_status_block { | ||
1582 | u16 index_values[HC_USTORM_SB_NUM_INDICES]; | ||
1583 | u16 status_block_index; | ||
1584 | u8 reserved0; | ||
1585 | u8 status_block_id; | ||
1586 | u32 __flags; | ||
1587 | }; | ||
1588 | |||
1589 | /* | ||
1590 | * cstorm status block | ||
1591 | */ | ||
1592 | struct cstorm_status_block { | ||
1593 | u16 index_values[HC_CSTORM_SB_NUM_INDICES]; | ||
1594 | u16 status_block_index; | ||
1595 | u8 reserved0; | ||
1596 | u8 status_block_id; | ||
1597 | u32 __flags; | ||
1598 | }; | ||
1599 | |||
1600 | /* | ||
1601 | * host status block | ||
1602 | */ | ||
1603 | struct host_status_block { | ||
1604 | struct ustorm_status_block u_status_block; | ||
1605 | struct cstorm_status_block c_status_block; | ||
1606 | }; | ||
1607 | |||
1608 | |||
1609 | /* | ||
1610 | * The data for RSS setup ramrod | ||
1611 | */ | ||
1612 | struct eth_client_setup_ramrod_data { | ||
1613 | u32 client_id_5b; | ||
1614 | u8 is_rdma_1b; | ||
1615 | u8 reserved0; | ||
1616 | u16 reserved1; | ||
1617 | }; | ||
1618 | |||
1619 | |||
1620 | /* | ||
1621 | * L2 dynamic host coalescing init parameters | ||
1622 | */ | ||
1623 | struct eth_dynamic_hc_config { | ||
1624 | u32 threshold[3]; | ||
1625 | u8 hc_timeout[4]; | ||
1626 | }; | ||
1627 | |||
1628 | |||
1629 | /* | ||
1630 | * regular eth FP CQE parameters struct | ||
1631 | */ | ||
1632 | struct eth_fast_path_rx_cqe { | ||
1633 | u8 type; | ||
1634 | u8 error_type_flags; | ||
1635 | #define ETH_FAST_PATH_RX_CQE_PHY_DECODE_ERR_FLG (0x1<<0) | ||
1636 | #define ETH_FAST_PATH_RX_CQE_PHY_DECODE_ERR_FLG_SHIFT 0 | ||
1637 | #define ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG (0x1<<1) | ||
1638 | #define ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG_SHIFT 1 | ||
1639 | #define ETH_FAST_PATH_RX_CQE_L4_BAD_XSUM_FLG (0x1<<2) | ||
1640 | #define ETH_FAST_PATH_RX_CQE_L4_BAD_XSUM_FLG_SHIFT 2 | ||
1641 | #define ETH_FAST_PATH_RX_CQE_START_FLG (0x1<<3) | ||
1642 | #define ETH_FAST_PATH_RX_CQE_START_FLG_SHIFT 3 | ||
1643 | #define ETH_FAST_PATH_RX_CQE_END_FLG (0x1<<4) | ||
1644 | #define ETH_FAST_PATH_RX_CQE_END_FLG_SHIFT 4 | ||
1645 | #define ETH_FAST_PATH_RX_CQE_RESERVED0 (0x7<<5) | ||
1646 | #define ETH_FAST_PATH_RX_CQE_RESERVED0_SHIFT 5 | ||
1647 | u8 status_flags; | ||
1648 | #define ETH_FAST_PATH_RX_CQE_RSS_HASH_TYPE (0x7<<0) | ||
1649 | #define ETH_FAST_PATH_RX_CQE_RSS_HASH_TYPE_SHIFT 0 | ||
1650 | #define ETH_FAST_PATH_RX_CQE_RSS_HASH_FLG (0x1<<3) | ||
1651 | #define ETH_FAST_PATH_RX_CQE_RSS_HASH_FLG_SHIFT 3 | ||
1652 | #define ETH_FAST_PATH_RX_CQE_BROADCAST_FLG (0x1<<4) | ||
1653 | #define ETH_FAST_PATH_RX_CQE_BROADCAST_FLG_SHIFT 4 | ||
1654 | #define ETH_FAST_PATH_RX_CQE_MAC_MATCH_FLG (0x1<<5) | ||
1655 | #define ETH_FAST_PATH_RX_CQE_MAC_MATCH_FLG_SHIFT 5 | ||
1656 | #define ETH_FAST_PATH_RX_CQE_IP_XSUM_NO_VALIDATION_FLG (0x1<<6) | ||
1657 | #define ETH_FAST_PATH_RX_CQE_IP_XSUM_NO_VALIDATION_FLG_SHIFT 6 | ||
1658 | #define ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG (0x1<<7) | ||
1659 | #define ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG_SHIFT 7 | ||
1660 | u8 placement_offset; | ||
1661 | u32 rss_hash_result; | ||
1662 | u16 vlan_tag; | ||
1663 | u16 pkt_len; | ||
1664 | u16 queue_index; | ||
1665 | struct parsing_flags pars_flags; | ||
1666 | }; | ||
1667 | |||
1668 | |||
1669 | /* | ||
1670 | * The data for RSS setup ramrod | ||
1671 | */ | ||
1672 | struct eth_halt_ramrod_data { | ||
1673 | u32 client_id_5b; | ||
1674 | u32 reserved0; | ||
1675 | }; | ||
1676 | |||
1677 | |||
1678 | /* | ||
1679 | * Place holder for ramrods protocol specific data | ||
1680 | */ | ||
1681 | struct ramrod_data { | ||
1682 | u32 data_lo; | ||
1683 | u32 data_hi; | ||
1684 | }; | ||
1685 | |||
1686 | /* | ||
1687 | * union for ramrod data for ethernet protocol (CQE) (force size of 16 bits) | ||
1688 | */ | ||
1689 | union eth_ramrod_data { | ||
1690 | struct ramrod_data general; | ||
1691 | }; | ||
1692 | |||
1693 | |||
1694 | /* | ||
1695 | * Rx Last BD in page (in ETH) | ||
1696 | */ | ||
1697 | struct eth_rx_bd_next_page { | ||
1698 | u32 addr_lo; | ||
1699 | u32 addr_hi; | ||
1700 | u8 reserved[8]; | ||
1701 | }; | ||
1702 | |||
1703 | |||
1704 | /* | ||
1705 | * Eth Rx Cqe structure- general structure for ramrods | ||
1706 | */ | ||
1707 | struct common_ramrod_eth_rx_cqe { | ||
1708 | u8 type; | ||
1709 | u8 conn_type_3b; | ||
1710 | u16 reserved; | ||
1711 | u32 conn_and_cmd_data; | ||
1712 | #define COMMON_RAMROD_ETH_RX_CQE_CID (0xFFFFFF<<0) | ||
1713 | #define COMMON_RAMROD_ETH_RX_CQE_CID_SHIFT 0 | ||
1714 | #define COMMON_RAMROD_ETH_RX_CQE_CMD_ID (0xFF<<24) | ||
1715 | #define COMMON_RAMROD_ETH_RX_CQE_CMD_ID_SHIFT 24 | ||
1716 | struct ramrod_data protocol_data; | ||
1717 | }; | ||
1718 | |||
1719 | /* | ||
1720 | * Rx Last CQE in page (in ETH) | ||
1721 | */ | ||
1722 | struct eth_rx_cqe_next_page { | ||
1723 | u32 addr_lo; | ||
1724 | u32 addr_hi; | ||
1725 | u32 reserved0; | ||
1726 | u32 reserved1; | ||
1727 | }; | ||
1728 | |||
1729 | /* | ||
1730 | * union for all eth rx cqe types (fix their sizes) | ||
1731 | */ | ||
1732 | union eth_rx_cqe { | ||
1733 | struct eth_fast_path_rx_cqe fast_path_cqe; | ||
1734 | struct common_ramrod_eth_rx_cqe ramrod_cqe; | ||
1735 | struct eth_rx_cqe_next_page next_page_cqe; | ||
1736 | }; | ||
1737 | |||
1738 | |||
1739 | /* | ||
1740 | * common data for all protocols | ||
1741 | */ | ||
1742 | struct spe_hdr { | ||
1743 | u32 conn_and_cmd_data; | ||
1744 | #define SPE_HDR_CID (0xFFFFFF<<0) | ||
1745 | #define SPE_HDR_CID_SHIFT 0 | ||
1746 | #define SPE_HDR_CMD_ID (0xFF<<24) | ||
1747 | #define SPE_HDR_CMD_ID_SHIFT 24 | ||
1748 | u16 type; | ||
1749 | #define SPE_HDR_CONN_TYPE (0xFF<<0) | ||
1750 | #define SPE_HDR_CONN_TYPE_SHIFT 0 | ||
1751 | #define SPE_HDR_COMMON_RAMROD (0xFF<<8) | ||
1752 | #define SPE_HDR_COMMON_RAMROD_SHIFT 8 | ||
1753 | u16 reserved; | ||
1754 | }; | ||
1755 | |||
1756 | struct regpair { | ||
1757 | u32 lo; | ||
1758 | u32 hi; | ||
1759 | }; | ||
1760 | |||
1761 | /* | ||
1762 | * ethernet slow path element | ||
1763 | */ | ||
1764 | union eth_specific_data { | ||
1765 | u8 protocol_data[8]; | ||
1766 | struct regpair mac_config_addr; | ||
1767 | struct eth_client_setup_ramrod_data client_setup_ramrod_data; | ||
1768 | struct eth_halt_ramrod_data halt_ramrod_data; | ||
1769 | struct regpair leading_cqe_addr; | ||
1770 | struct regpair update_data_addr; | ||
1771 | }; | ||
1772 | |||
1773 | /* | ||
1774 | * ethernet slow path element | ||
1775 | */ | ||
1776 | struct eth_spe { | ||
1777 | struct spe_hdr hdr; | ||
1778 | union eth_specific_data data; | ||
1779 | }; | ||
1780 | |||
1781 | |||
1782 | /* | ||
1783 | * doorbell data in host memory | ||
1784 | */ | ||
1785 | struct eth_tx_db_data { | ||
1786 | u32 packets_prod; | ||
1787 | u16 bds_prod; | ||
1788 | u16 reserved; | ||
1789 | }; | ||
1790 | |||
1791 | |||
1792 | /* | ||
1793 | * Common configuration parameters per port in Tstorm | ||
1794 | */ | ||
1795 | struct tstorm_eth_function_common_config { | ||
1796 | u32 config_flags; | ||
1797 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_CAPABILITY (0x1<<0) | ||
1798 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_CAPABILITY_SHIFT 0 | ||
1799 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_TCP_CAPABILITY (0x1<<1) | ||
1800 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV4_TCP_CAPABILITY_SHIFT 1 | ||
1801 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_CAPABILITY (0x1<<2) | ||
1802 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_CAPABILITY_SHIFT 2 | ||
1803 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY (0x1<<3) | ||
1804 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_IPV6_TCP_CAPABILITY_SHIFT 3 | ||
1805 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_ENABLE (0x1<<4) | ||
1806 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_RSS_ENABLE_SHIFT 4 | ||
1807 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_DEFAULT_ENABLE (0x1<<5) | ||
1808 | #define TSTORM_ETH_FUNCTION_COMMON_CONFIG_DEFAULT_ENABLE_SHIFT 5 | ||
1809 | #define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0 (0x3FFFFFF<<6) | ||
1810 | #define __TSTORM_ETH_FUNCTION_COMMON_CONFIG_RESERVED0_SHIFT 6 | ||
1811 | #if defined(__BIG_ENDIAN) | ||
1812 | u16 __secondary_vlan_id; | ||
1813 | u8 leading_client_id; | ||
1814 | u8 rss_result_mask; | ||
1815 | #elif defined(__LITTLE_ENDIAN) | ||
1816 | u8 rss_result_mask; | ||
1817 | u8 leading_client_id; | ||
1818 | u16 __secondary_vlan_id; | ||
1819 | #endif | ||
1820 | }; | ||
1821 | |||
1822 | /* | ||
1823 | * parameters for eth update ramrod | ||
1824 | */ | ||
1825 | struct eth_update_ramrod_data { | ||
1826 | struct tstorm_eth_function_common_config func_config; | ||
1827 | u8 indirectionTable[128]; | ||
1828 | }; | ||
1829 | |||
1830 | |||
1831 | /* | ||
1832 | * MAC filtering configuration command header | ||
1833 | */ | ||
1834 | struct mac_configuration_hdr { | ||
1835 | u8 length_6b; | ||
1836 | u8 offset; | ||
1837 | u16 reserved0; | ||
1838 | u32 reserved1; | ||
1839 | }; | ||
1840 | |||
1841 | /* | ||
1842 | * MAC address in list for ramrod | ||
1843 | */ | ||
1844 | struct tstorm_cam_entry { | ||
1845 | u16 lsb_mac_addr; | ||
1846 | u16 middle_mac_addr; | ||
1847 | u16 msb_mac_addr; | ||
1848 | u16 flags; | ||
1849 | #define TSTORM_CAM_ENTRY_PORT_ID (0x1<<0) | ||
1850 | #define TSTORM_CAM_ENTRY_PORT_ID_SHIFT 0 | ||
1851 | #define TSTORM_CAM_ENTRY_RSRVVAL0 (0x7<<1) | ||
1852 | #define TSTORM_CAM_ENTRY_RSRVVAL0_SHIFT 1 | ||
1853 | #define TSTORM_CAM_ENTRY_RESERVED0 (0xFFF<<4) | ||
1854 | #define TSTORM_CAM_ENTRY_RESERVED0_SHIFT 4 | ||
1855 | }; | ||
1856 | |||
1857 | /* | ||
1858 | * MAC filtering: CAM target table entry | ||
1859 | */ | ||
1860 | struct tstorm_cam_target_table_entry { | ||
1861 | u8 flags; | ||
1862 | #define TSTORM_CAM_TARGET_TABLE_ENTRY_BROADCAST (0x1<<0) | ||
1863 | #define TSTORM_CAM_TARGET_TABLE_ENTRY_BROADCAST_SHIFT 0 | ||
1864 | #define TSTORM_CAM_TARGET_TABLE_ENTRY_OVERRIDE_VLAN_REMOVAL (0x1<<1) | ||
1865 | #define TSTORM_CAM_TARGET_TABLE_ENTRY_OVERRIDE_VLAN_REMOVAL_SHIFT 1 | ||
1866 | #define TSTORM_CAM_TARGET_TABLE_ENTRY_ACTION_TYPE (0x1<<2) | ||
1867 | #define TSTORM_CAM_TARGET_TABLE_ENTRY_ACTION_TYPE_SHIFT 2 | ||
1868 | #define TSTORM_CAM_TARGET_TABLE_ENTRY_RDMA_MAC (0x1<<3) | ||
1869 | #define TSTORM_CAM_TARGET_TABLE_ENTRY_RDMA_MAC_SHIFT 3 | ||
1870 | #define TSTORM_CAM_TARGET_TABLE_ENTRY_RESERVED0 (0xF<<4) | ||
1871 | #define TSTORM_CAM_TARGET_TABLE_ENTRY_RESERVED0_SHIFT 4 | ||
1872 | u8 client_id; | ||
1873 | u16 vlan_id; | ||
1874 | }; | ||
1875 | |||
1876 | /* | ||
1877 | * MAC address in list for ramrod | ||
1878 | */ | ||
1879 | struct mac_configuration_entry { | ||
1880 | struct tstorm_cam_entry cam_entry; | ||
1881 | struct tstorm_cam_target_table_entry target_table_entry; | ||
1882 | }; | ||
1883 | |||
1884 | /* | ||
1885 | * MAC filtering configuration command | ||
1886 | */ | ||
1887 | struct mac_configuration_cmd { | ||
1888 | struct mac_configuration_hdr hdr; | ||
1889 | struct mac_configuration_entry config_table[64]; | ||
1890 | }; | ||
1891 | |||
1892 | |||
1893 | /* | ||
1894 | * Configuration parameters per client in Tstorm | ||
1895 | */ | ||
1896 | struct tstorm_eth_client_config { | ||
1897 | #if defined(__BIG_ENDIAN) | ||
1898 | u16 statistics_counter_id; | ||
1899 | u16 mtu; | ||
1900 | #elif defined(__LITTLE_ENDIAN) | ||
1901 | u16 mtu; | ||
1902 | u16 statistics_counter_id; | ||
1903 | #endif | ||
1904 | #if defined(__BIG_ENDIAN) | ||
1905 | u16 drop_flags; | ||
1906 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR (0x1<<0) | ||
1907 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR_SHIFT 0 | ||
1908 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_TCP_CS_ERR (0x1<<1) | ||
1909 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_TCP_CS_ERR_SHIFT 1 | ||
1910 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_MAC_ERR (0x1<<2) | ||
1911 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_MAC_ERR_SHIFT 2 | ||
1912 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_TTL0 (0x1<<3) | ||
1913 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_TTL0_SHIFT 3 | ||
1914 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR (0x1<<4) | ||
1915 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR_SHIFT 4 | ||
1916 | #define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1 (0x7FF<<5) | ||
1917 | #define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1_SHIFT 5 | ||
1918 | u16 config_flags; | ||
1919 | #define TSTORM_ETH_CLIENT_CONFIG_VLAN_REMOVAL_ENABLE (0x1<<0) | ||
1920 | #define TSTORM_ETH_CLIENT_CONFIG_VLAN_REMOVAL_ENABLE_SHIFT 0 | ||
1921 | #define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE (0x1<<1) | ||
1922 | #define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE_SHIFT 1 | ||
1923 | #define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0 (0x3FFF<<2) | ||
1924 | #define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0_SHIFT 2 | ||
1925 | #elif defined(__LITTLE_ENDIAN) | ||
1926 | u16 config_flags; | ||
1927 | #define TSTORM_ETH_CLIENT_CONFIG_VLAN_REMOVAL_ENABLE (0x1<<0) | ||
1928 | #define TSTORM_ETH_CLIENT_CONFIG_VLAN_REMOVAL_ENABLE_SHIFT 0 | ||
1929 | #define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE (0x1<<1) | ||
1930 | #define TSTORM_ETH_CLIENT_CONFIG_STATSITICS_ENABLE_SHIFT 1 | ||
1931 | #define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0 (0x3FFF<<2) | ||
1932 | #define __TSTORM_ETH_CLIENT_CONFIG_RESERVED0_SHIFT 2 | ||
1933 | u16 drop_flags; | ||
1934 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR (0x1<<0) | ||
1935 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_IP_CS_ERR_SHIFT 0 | ||
1936 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_TCP_CS_ERR (0x1<<1) | ||
1937 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_TCP_CS_ERR_SHIFT 1 | ||
1938 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_MAC_ERR (0x1<<2) | ||
1939 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_MAC_ERR_SHIFT 2 | ||
1940 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_TTL0 (0x1<<3) | ||
1941 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_TTL0_SHIFT 3 | ||
1942 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR (0x1<<4) | ||
1943 | #define TSTORM_ETH_CLIENT_CONFIG_DROP_UDP_CS_ERR_SHIFT 4 | ||
1944 | #define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1 (0x7FF<<5) | ||
1945 | #define __TSTORM_ETH_CLIENT_CONFIG_RESERVED1_SHIFT 5 | ||
1946 | #endif | ||
1947 | }; | ||
1948 | |||
1949 | |||
1950 | /* | ||
1951 | * MAC filtering configuration parameters per port in Tstorm | ||
1952 | */ | ||
1953 | struct tstorm_eth_mac_filter_config { | ||
1954 | u32 ucast_drop_all; | ||
1955 | u32 ucast_accept_all; | ||
1956 | u32 mcast_drop_all; | ||
1957 | u32 mcast_accept_all; | ||
1958 | u32 bcast_drop_all; | ||
1959 | u32 bcast_accept_all; | ||
1960 | u32 strict_vlan; | ||
1961 | u32 __secondary_vlan_clients; | ||
1962 | }; | ||
1963 | |||
1964 | |||
1965 | struct rate_shaping_per_protocol { | ||
1966 | #if defined(__BIG_ENDIAN) | ||
1967 | u16 reserved0; | ||
1968 | u16 protocol_rate; | ||
1969 | #elif defined(__LITTLE_ENDIAN) | ||
1970 | u16 protocol_rate; | ||
1971 | u16 reserved0; | ||
1972 | #endif | ||
1973 | u32 protocol_quota; | ||
1974 | s32 current_credit; | ||
1975 | u32 reserved; | ||
1976 | }; | ||
1977 | |||
1978 | struct rate_shaping_vars { | ||
1979 | struct rate_shaping_per_protocol protocol_vars[NUM_OF_PROTOCOLS]; | ||
1980 | u32 pause_mask; | ||
1981 | u32 periodic_stop; | ||
1982 | u32 rs_periodic_timeout; | ||
1983 | u32 rs_threshold; | ||
1984 | u32 last_periodic_time; | ||
1985 | u32 reserved; | ||
1986 | }; | ||
1987 | |||
1988 | struct fairness_per_protocol { | ||
1989 | u32 credit_delta; | ||
1990 | s32 fair_credit; | ||
1991 | #if defined(__BIG_ENDIAN) | ||
1992 | u16 reserved0; | ||
1993 | u8 state; | ||
1994 | u8 weight; | ||
1995 | #elif defined(__LITTLE_ENDIAN) | ||
1996 | u8 weight; | ||
1997 | u8 state; | ||
1998 | u16 reserved0; | ||
1999 | #endif | ||
2000 | u32 reserved1; | ||
2001 | }; | ||
2002 | |||
2003 | struct fairness_vars { | ||
2004 | struct fairness_per_protocol protocol_vars[NUM_OF_PROTOCOLS]; | ||
2005 | u32 upper_bound; | ||
2006 | u32 port_rate; | ||
2007 | u32 pause_mask; | ||
2008 | u32 fair_threshold; | ||
2009 | }; | ||
2010 | |||
2011 | struct safc_struct { | ||
2012 | u32 cur_pause_mask; | ||
2013 | u32 expire_time; | ||
2014 | #if defined(__BIG_ENDIAN) | ||
2015 | u16 reserved0; | ||
2016 | u8 cur_cos_types; | ||
2017 | u8 safc_timeout_usec; | ||
2018 | #elif defined(__LITTLE_ENDIAN) | ||
2019 | u8 safc_timeout_usec; | ||
2020 | u8 cur_cos_types; | ||
2021 | u16 reserved0; | ||
2022 | #endif | ||
2023 | u32 reserved1; | ||
2024 | }; | ||
2025 | |||
2026 | struct demo_struct { | ||
2027 | u8 con_number[NUM_OF_PROTOCOLS]; | ||
2028 | #if defined(__BIG_ENDIAN) | ||
2029 | u8 reserved1; | ||
2030 | u8 fairness_enable; | ||
2031 | u8 rate_shaping_enable; | ||
2032 | u8 cmng_enable; | ||
2033 | #elif defined(__LITTLE_ENDIAN) | ||
2034 | u8 cmng_enable; | ||
2035 | u8 rate_shaping_enable; | ||
2036 | u8 fairness_enable; | ||
2037 | u8 reserved1; | ||
2038 | #endif | ||
2039 | }; | ||
2040 | |||
2041 | struct cmng_struct { | ||
2042 | struct rate_shaping_vars rs_vars; | ||
2043 | struct fairness_vars fair_vars; | ||
2044 | struct safc_struct safc_vars; | ||
2045 | struct demo_struct demo_vars; | ||
2046 | }; | ||
2047 | |||
2048 | |||
2049 | struct cos_to_protocol { | ||
2050 | u8 mask[MAX_COS_NUMBER]; | ||
2051 | }; | ||
2052 | |||
2053 | |||
2054 | /* | ||
2055 | * Common statistics collected by the Xstorm (per port) | ||
2056 | */ | ||
2057 | struct xstorm_common_stats { | ||
2058 | struct regpair total_sent_bytes; | ||
2059 | u32 total_sent_pkts; | ||
2060 | u32 unicast_pkts_sent; | ||
2061 | struct regpair unicast_bytes_sent; | ||
2062 | struct regpair multicast_bytes_sent; | ||
2063 | u32 multicast_pkts_sent; | ||
2064 | u32 broadcast_pkts_sent; | ||
2065 | struct regpair broadcast_bytes_sent; | ||
2066 | struct regpair done; | ||
2067 | }; | ||
2068 | |||
2069 | /* | ||
2070 | * Protocol-common statistics collected by the Tstorm (per client) | ||
2071 | */ | ||
2072 | struct tstorm_per_client_stats { | ||
2073 | struct regpair total_rcv_bytes; | ||
2074 | struct regpair rcv_unicast_bytes; | ||
2075 | struct regpair rcv_broadcast_bytes; | ||
2076 | struct regpair rcv_multicast_bytes; | ||
2077 | struct regpair rcv_error_bytes; | ||
2078 | u32 checksum_discard; | ||
2079 | u32 packets_too_big_discard; | ||
2080 | u32 total_rcv_pkts; | ||
2081 | u32 rcv_unicast_pkts; | ||
2082 | u32 rcv_broadcast_pkts; | ||
2083 | u32 rcv_multicast_pkts; | ||
2084 | u32 no_buff_discard; | ||
2085 | u32 ttl0_discard; | ||
2086 | u32 mac_discard; | ||
2087 | u32 reserved; | ||
2088 | }; | ||
2089 | |||
2090 | /* | ||
2091 | * Protocol-common statistics collected by the Tstorm (per port) | ||
2092 | */ | ||
2093 | struct tstorm_common_stats { | ||
2094 | struct tstorm_per_client_stats client_statistics[MAX_T_STAT_COUNTER_ID]; | ||
2095 | u32 mac_filter_discard; | ||
2096 | u32 xxoverflow_discard; | ||
2097 | u32 brb_truncate_discard; | ||
2098 | u32 reserved; | ||
2099 | struct regpair done; | ||
2100 | }; | ||
2101 | |||
2102 | /* | ||
2103 | * Eth statistics query sturcture for the eth_stats_quesry ramrod | ||
2104 | */ | ||
2105 | struct eth_stats_query { | ||
2106 | struct xstorm_common_stats xstorm_common; | ||
2107 | struct tstorm_common_stats tstorm_common; | ||
2108 | }; | ||
2109 | |||
2110 | |||
2111 | /* | ||
2112 | * FW version stored in the Xstorm RAM | ||
2113 | */ | ||
2114 | struct fw_version { | ||
2115 | #if defined(__BIG_ENDIAN) | ||
2116 | u16 patch; | ||
2117 | u8 primary; | ||
2118 | u8 client; | ||
2119 | #elif defined(__LITTLE_ENDIAN) | ||
2120 | u8 client; | ||
2121 | u8 primary; | ||
2122 | u16 patch; | ||
2123 | #endif | ||
2124 | u32 flags; | ||
2125 | #define FW_VERSION_OPTIMIZED (0x1<<0) | ||
2126 | #define FW_VERSION_OPTIMIZED_SHIFT 0 | ||
2127 | #define FW_VERSION_BIG_ENDIEN (0x1<<1) | ||
2128 | #define FW_VERSION_BIG_ENDIEN_SHIFT 1 | ||
2129 | #define __FW_VERSION_RESERVED (0x3FFFFFFF<<2) | ||
2130 | #define __FW_VERSION_RESERVED_SHIFT 2 | ||
2131 | }; | ||
2132 | |||
2133 | |||
2134 | /* | ||
2135 | * FW version stored in first line of pram | ||
2136 | */ | ||
2137 | struct pram_fw_version { | ||
2138 | #if defined(__BIG_ENDIAN) | ||
2139 | u16 patch; | ||
2140 | u8 primary; | ||
2141 | u8 client; | ||
2142 | #elif defined(__LITTLE_ENDIAN) | ||
2143 | u8 client; | ||
2144 | u8 primary; | ||
2145 | u16 patch; | ||
2146 | #endif | ||
2147 | u8 flags; | ||
2148 | #define PRAM_FW_VERSION_OPTIMIZED (0x1<<0) | ||
2149 | #define PRAM_FW_VERSION_OPTIMIZED_SHIFT 0 | ||
2150 | #define PRAM_FW_VERSION_STORM_ID (0x3<<1) | ||
2151 | #define PRAM_FW_VERSION_STORM_ID_SHIFT 1 | ||
2152 | #define PRAM_FW_VERSION_BIG_ENDIEN (0x1<<3) | ||
2153 | #define PRAM_FW_VERSION_BIG_ENDIEN_SHIFT 3 | ||
2154 | #define __PRAM_FW_VERSION_RESERVED0 (0xF<<4) | ||
2155 | #define __PRAM_FW_VERSION_RESERVED0_SHIFT 4 | ||
2156 | }; | ||
2157 | |||
2158 | |||
2159 | /* | ||
2160 | * The send queue element | ||
2161 | */ | ||
2162 | struct slow_path_element { | ||
2163 | struct spe_hdr hdr; | ||
2164 | u8 protocol_data[8]; | ||
2165 | }; | ||
2166 | |||
2167 | |||
2168 | /* | ||
2169 | * eth/toe flags that indicate if to query | ||
2170 | */ | ||
2171 | struct stats_indication_flags { | ||
2172 | u32 collect_eth; | ||
2173 | u32 collect_toe; | ||
2174 | }; | ||
2175 | |||
2176 | |||
diff --git a/drivers/net/bnx2x_init.h b/drivers/net/bnx2x_init.h new file mode 100644 index 000000000000..04f93bff2ef4 --- /dev/null +++ b/drivers/net/bnx2x_init.h | |||
@@ -0,0 +1,564 @@ | |||
1 | /* bnx2x_init.h: Broadcom Everest network driver. | ||
2 | * | ||
3 | * Copyright (c) 2007 Broadcom Corporation | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation. | ||
8 | * | ||
9 | * Written by: Eliezer Tamir <eliezert@broadcom.com> | ||
10 | */ | ||
11 | |||
12 | #ifndef BNX2X_INIT_H | ||
13 | #define BNX2X_INIT_H | ||
14 | |||
15 | #define COMMON 0x1 | ||
16 | #define PORT0 0x2 | ||
17 | #define PORT1 0x4 | ||
18 | |||
19 | #define INIT_EMULATION 0x1 | ||
20 | #define INIT_FPGA 0x2 | ||
21 | #define INIT_ASIC 0x4 | ||
22 | #define INIT_HARDWARE 0x7 | ||
23 | |||
24 | #define STORM_INTMEM_SIZE (0x5800 / 4) | ||
25 | #define TSTORM_INTMEM_ADDR 0x1a0000 | ||
26 | #define CSTORM_INTMEM_ADDR 0x220000 | ||
27 | #define XSTORM_INTMEM_ADDR 0x2a0000 | ||
28 | #define USTORM_INTMEM_ADDR 0x320000 | ||
29 | |||
30 | |||
31 | /* Init operation types and structures */ | ||
32 | |||
33 | #define OP_RD 0x1 /* read single register */ | ||
34 | #define OP_WR 0x2 /* write single register */ | ||
35 | #define OP_IW 0x3 /* write single register using mailbox */ | ||
36 | #define OP_SW 0x4 /* copy a string to the device */ | ||
37 | #define OP_SI 0x5 /* copy a string using mailbox */ | ||
38 | #define OP_ZR 0x6 /* clear memory */ | ||
39 | #define OP_ZP 0x7 /* unzip then copy with DMAE */ | ||
40 | #define OP_WB 0x8 /* copy a string using DMAE */ | ||
41 | |||
42 | struct raw_op { | ||
43 | u32 op :8; | ||
44 | u32 offset :24; | ||
45 | u32 raw_data; | ||
46 | }; | ||
47 | |||
48 | struct op_read { | ||
49 | u32 op :8; | ||
50 | u32 offset :24; | ||
51 | u32 pad; | ||
52 | }; | ||
53 | |||
54 | struct op_write { | ||
55 | u32 op :8; | ||
56 | u32 offset :24; | ||
57 | u32 val; | ||
58 | }; | ||
59 | |||
60 | struct op_string_write { | ||
61 | u32 op :8; | ||
62 | u32 offset :24; | ||
63 | #ifdef __LITTLE_ENDIAN | ||
64 | u16 data_off; | ||
65 | u16 data_len; | ||
66 | #else /* __BIG_ENDIAN */ | ||
67 | u16 data_len; | ||
68 | u16 data_off; | ||
69 | #endif | ||
70 | }; | ||
71 | |||
72 | struct op_zero { | ||
73 | u32 op :8; | ||
74 | u32 offset :24; | ||
75 | u32 len; | ||
76 | }; | ||
77 | |||
78 | union init_op { | ||
79 | struct op_read read; | ||
80 | struct op_write write; | ||
81 | struct op_string_write str_wr; | ||
82 | struct op_zero zero; | ||
83 | struct raw_op raw; | ||
84 | }; | ||
85 | |||
86 | #include "bnx2x_init_values.h" | ||
87 | |||
88 | static void bnx2x_reg_wr_ind(struct bnx2x *bp, u32 addr, u32 val); | ||
89 | |||
90 | static void bnx2x_write_dmae(struct bnx2x *bp, dma_addr_t dma_addr, | ||
91 | u32 dst_addr, u32 len32); | ||
92 | |||
93 | static int bnx2x_gunzip(struct bnx2x *bp, u8 *zbuf, int len); | ||
94 | |||
95 | static void bnx2x_init_str_wr(struct bnx2x *bp, u32 addr, const u32 *data, | ||
96 | u32 len) | ||
97 | { | ||
98 | int i; | ||
99 | |||
100 | for (i = 0; i < len; i++) { | ||
101 | REG_WR(bp, addr + i*4, data[i]); | ||
102 | if (!(i % 10000)) { | ||
103 | touch_softlockup_watchdog(); | ||
104 | cpu_relax(); | ||
105 | } | ||
106 | } | ||
107 | } | ||
108 | |||
109 | #define INIT_MEM_WR(reg, data, reg_off, len) \ | ||
110 | bnx2x_init_str_wr(bp, reg + reg_off*4, data, len) | ||
111 | |||
112 | static void bnx2x_init_ind_wr(struct bnx2x *bp, u32 addr, const u32 *data, | ||
113 | u16 len) | ||
114 | { | ||
115 | int i; | ||
116 | |||
117 | for (i = 0; i < len; i++) { | ||
118 | REG_WR_IND(bp, addr + i*4, data[i]); | ||
119 | if (!(i % 10000)) { | ||
120 | touch_softlockup_watchdog(); | ||
121 | cpu_relax(); | ||
122 | } | ||
123 | } | ||
124 | } | ||
125 | |||
126 | static void bnx2x_init_wr_wb(struct bnx2x *bp, u32 addr, const u32 *data, | ||
127 | u32 len, int gunzip) | ||
128 | { | ||
129 | int offset = 0; | ||
130 | |||
131 | if (gunzip) { | ||
132 | int rc; | ||
133 | #ifdef __BIG_ENDIAN | ||
134 | int i, size; | ||
135 | u32 *temp; | ||
136 | |||
137 | temp = kmalloc(len, GFP_KERNEL); | ||
138 | size = (len / 4) + ((len % 4) ? 1 : 0); | ||
139 | for (i = 0; i < size; i++) | ||
140 | temp[i] = swab32(data[i]); | ||
141 | data = temp; | ||
142 | #endif | ||
143 | rc = bnx2x_gunzip(bp, (u8 *)data, len); | ||
144 | if (rc) { | ||
145 | DP(NETIF_MSG_HW, "gunzip failed ! rc %d\n", rc); | ||
146 | return; | ||
147 | } | ||
148 | len = bp->gunzip_outlen; | ||
149 | #ifdef __BIG_ENDIAN | ||
150 | kfree(temp); | ||
151 | for (i = 0; i < len; i++) | ||
152 | ((u32 *)bp->gunzip_buf)[i] = | ||
153 | swab32(((u32 *)bp->gunzip_buf)[i]); | ||
154 | #endif | ||
155 | } else { | ||
156 | if ((len * 4) > FW_BUF_SIZE) { | ||
157 | BNX2X_ERR("LARGE DMAE OPERATION ! len 0x%x\n", len*4); | ||
158 | return; | ||
159 | } | ||
160 | memcpy(bp->gunzip_buf, data, len * 4); | ||
161 | } | ||
162 | |||
163 | while (len > DMAE_LEN32_MAX) { | ||
164 | bnx2x_write_dmae(bp, bp->gunzip_mapping + offset, | ||
165 | addr + offset, DMAE_LEN32_MAX); | ||
166 | offset += DMAE_LEN32_MAX * 4; | ||
167 | len -= DMAE_LEN32_MAX; | ||
168 | } | ||
169 | bnx2x_write_dmae(bp, bp->gunzip_mapping + offset, addr + offset, len); | ||
170 | } | ||
171 | |||
172 | #define INIT_MEM_WB(reg, data, reg_off, len) \ | ||
173 | bnx2x_init_wr_wb(bp, reg + reg_off*4, data, len, 0) | ||
174 | |||
175 | #define INIT_GUNZIP_DMAE(reg, data, reg_off, len) \ | ||
176 | bnx2x_init_wr_wb(bp, reg + reg_off*4, data, len, 1) | ||
177 | |||
178 | static void bnx2x_init_fill(struct bnx2x *bp, u32 addr, int fill, u32 len) | ||
179 | { | ||
180 | int offset = 0; | ||
181 | |||
182 | if ((len * 4) > FW_BUF_SIZE) { | ||
183 | BNX2X_ERR("LARGE DMAE OPERATION ! len 0x%x\n", len * 4); | ||
184 | return; | ||
185 | } | ||
186 | memset(bp->gunzip_buf, fill, len * 4); | ||
187 | |||
188 | while (len > DMAE_LEN32_MAX) { | ||
189 | bnx2x_write_dmae(bp, bp->gunzip_mapping + offset, | ||
190 | addr + offset, DMAE_LEN32_MAX); | ||
191 | offset += DMAE_LEN32_MAX * 4; | ||
192 | len -= DMAE_LEN32_MAX; | ||
193 | } | ||
194 | bnx2x_write_dmae(bp, bp->gunzip_mapping + offset, addr + offset, len); | ||
195 | } | ||
196 | |||
197 | static void bnx2x_init_block(struct bnx2x *bp, u32 op_start, u32 op_end) | ||
198 | { | ||
199 | int i; | ||
200 | union init_op *op; | ||
201 | u32 op_type, addr, len; | ||
202 | const u32 *data; | ||
203 | |||
204 | for (i = op_start; i < op_end; i++) { | ||
205 | |||
206 | op = (union init_op *)&(init_ops[i]); | ||
207 | |||
208 | op_type = op->str_wr.op; | ||
209 | addr = op->str_wr.offset; | ||
210 | len = op->str_wr.data_len; | ||
211 | data = init_data + op->str_wr.data_off; | ||
212 | |||
213 | switch (op_type) { | ||
214 | case OP_RD: | ||
215 | REG_RD(bp, addr); | ||
216 | break; | ||
217 | case OP_WR: | ||
218 | REG_WR(bp, addr, op->write.val); | ||
219 | break; | ||
220 | case OP_SW: | ||
221 | bnx2x_init_str_wr(bp, addr, data, len); | ||
222 | break; | ||
223 | case OP_WB: | ||
224 | bnx2x_init_wr_wb(bp, addr, data, len, 0); | ||
225 | break; | ||
226 | case OP_SI: | ||
227 | bnx2x_init_ind_wr(bp, addr, data, len); | ||
228 | break; | ||
229 | case OP_ZR: | ||
230 | bnx2x_init_fill(bp, addr, 0, op->zero.len); | ||
231 | break; | ||
232 | case OP_ZP: | ||
233 | bnx2x_init_wr_wb(bp, addr, data, len, 1); | ||
234 | break; | ||
235 | default: | ||
236 | BNX2X_ERR("BAD init operation!\n"); | ||
237 | } | ||
238 | } | ||
239 | } | ||
240 | |||
241 | |||
242 | /**************************************************************************** | ||
243 | * PXP | ||
244 | ****************************************************************************/ | ||
245 | /* | ||
246 | * This code configures the PCI read/write arbiter | ||
247 | * which implements a wighted round robin | ||
248 | * between the virtual queues in the chip. | ||
249 | * | ||
250 | * The values were derived for each PCI max payload and max request size. | ||
251 | * since max payload and max request size are only known at run time, | ||
252 | * this is done as a separate init stage. | ||
253 | */ | ||
254 | |||
255 | #define NUM_WR_Q 13 | ||
256 | #define NUM_RD_Q 29 | ||
257 | #define MAX_RD_ORD 3 | ||
258 | #define MAX_WR_ORD 2 | ||
259 | |||
260 | /* configuration for one arbiter queue */ | ||
261 | struct arb_line { | ||
262 | int l; | ||
263 | int add; | ||
264 | int ubound; | ||
265 | }; | ||
266 | |||
267 | /* derived configuration for each read queue for each max request size */ | ||
268 | static const struct arb_line read_arb_data[NUM_RD_Q][MAX_RD_ORD + 1] = { | ||
269 | {{8 , 64 , 25}, {16 , 64 , 25}, {32 , 64 , 25}, {64 , 64 , 41} }, | ||
270 | {{4 , 8 , 4}, {4 , 8 , 4}, {4 , 8 , 4}, {4 , 8 , 4} }, | ||
271 | {{4 , 3 , 3}, {4 , 3 , 3}, {4 , 3 , 3}, {4 , 3 , 3} }, | ||
272 | {{8 , 3 , 6}, {16 , 3 , 11}, {16 , 3 , 11}, {16 , 3 , 11} }, | ||
273 | {{8 , 64 , 25}, {16 , 64 , 25}, {32 , 64 , 25}, {64 , 64 , 41} }, | ||
274 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {64 , 3 , 41} }, | ||
275 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {64 , 3 , 41} }, | ||
276 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {64 , 3 , 41} }, | ||
277 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {64 , 3 , 41} }, | ||
278 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
279 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
280 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
281 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
282 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
283 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
284 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
285 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
286 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
287 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
288 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
289 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
290 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
291 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
292 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
293 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
294 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
295 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
296 | {{8 , 3 , 6}, {16 , 3 , 11}, {32 , 3 , 21}, {32 , 3 , 21} }, | ||
297 | {{8 , 64 , 25}, {16 , 64 , 41}, {32 , 64 , 81}, {64 , 64 , 120} } | ||
298 | }; | ||
299 | |||
300 | /* derived configuration for each write queue for each max request size */ | ||
301 | static const struct arb_line write_arb_data[NUM_WR_Q][MAX_WR_ORD + 1] = { | ||
302 | {{4 , 6 , 3}, {4 , 6 , 3}, {4 , 6 , 3} }, | ||
303 | {{4 , 2 , 3}, {4 , 2 , 3}, {4 , 2 , 3} }, | ||
304 | {{8 , 2 , 6}, {16 , 2 , 11}, {16 , 2 , 11} }, | ||
305 | {{8 , 2 , 6}, {16 , 2 , 11}, {32 , 2 , 21} }, | ||
306 | {{8 , 2 , 6}, {16 , 2 , 11}, {32 , 2 , 21} }, | ||
307 | {{8 , 2 , 6}, {16 , 2 , 11}, {32 , 2 , 21} }, | ||
308 | {{8 , 64 , 25}, {16 , 64 , 25}, {32 , 64 , 25} }, | ||
309 | {{8 , 2 , 6}, {16 , 2 , 11}, {16 , 2 , 11} }, | ||
310 | {{8 , 2 , 6}, {16 , 2 , 11}, {16 , 2 , 11} }, | ||
311 | {{8 , 9 , 6}, {16 , 9 , 11}, {32 , 9 , 21} }, | ||
312 | {{8 , 47 , 19}, {16 , 47 , 19}, {32 , 47 , 21} }, | ||
313 | {{8 , 9 , 6}, {16 , 9 , 11}, {16 , 9 , 11} }, | ||
314 | {{8 , 64 , 25}, {16 , 64 , 41}, {32 , 64 , 81} } | ||
315 | }; | ||
316 | |||
317 | /* register adresses for read queues */ | ||
318 | static const struct arb_line read_arb_addr[NUM_RD_Q-1] = { | ||
319 | {PXP2_REG_RQ_BW_RD_L0, PXP2_REG_RQ_BW_RD_ADD0, | ||
320 | PXP2_REG_RQ_BW_RD_UBOUND0}, | ||
321 | {PXP2_REG_PSWRQ_BW_L1, PXP2_REG_PSWRQ_BW_ADD1, | ||
322 | PXP2_REG_PSWRQ_BW_UB1}, | ||
323 | {PXP2_REG_PSWRQ_BW_L2, PXP2_REG_PSWRQ_BW_ADD2, | ||
324 | PXP2_REG_PSWRQ_BW_UB2}, | ||
325 | {PXP2_REG_PSWRQ_BW_L3, PXP2_REG_PSWRQ_BW_ADD3, | ||
326 | PXP2_REG_PSWRQ_BW_UB3}, | ||
327 | {PXP2_REG_RQ_BW_RD_L4, PXP2_REG_RQ_BW_RD_ADD4, | ||
328 | PXP2_REG_RQ_BW_RD_UBOUND4}, | ||
329 | {PXP2_REG_RQ_BW_RD_L5, PXP2_REG_RQ_BW_RD_ADD5, | ||
330 | PXP2_REG_RQ_BW_RD_UBOUND5}, | ||
331 | {PXP2_REG_PSWRQ_BW_L6, PXP2_REG_PSWRQ_BW_ADD6, | ||
332 | PXP2_REG_PSWRQ_BW_UB6}, | ||
333 | {PXP2_REG_PSWRQ_BW_L7, PXP2_REG_PSWRQ_BW_ADD7, | ||
334 | PXP2_REG_PSWRQ_BW_UB7}, | ||
335 | {PXP2_REG_PSWRQ_BW_L8, PXP2_REG_PSWRQ_BW_ADD8, | ||
336 | PXP2_REG_PSWRQ_BW_UB8}, | ||
337 | {PXP2_REG_PSWRQ_BW_L9, PXP2_REG_PSWRQ_BW_ADD9, | ||
338 | PXP2_REG_PSWRQ_BW_UB9}, | ||
339 | {PXP2_REG_PSWRQ_BW_L10, PXP2_REG_PSWRQ_BW_ADD10, | ||
340 | PXP2_REG_PSWRQ_BW_UB10}, | ||
341 | {PXP2_REG_PSWRQ_BW_L11, PXP2_REG_PSWRQ_BW_ADD11, | ||
342 | PXP2_REG_PSWRQ_BW_UB11}, | ||
343 | {PXP2_REG_RQ_BW_RD_L12, PXP2_REG_RQ_BW_RD_ADD12, | ||
344 | PXP2_REG_RQ_BW_RD_UBOUND12}, | ||
345 | {PXP2_REG_RQ_BW_RD_L13, PXP2_REG_RQ_BW_RD_ADD13, | ||
346 | PXP2_REG_RQ_BW_RD_UBOUND13}, | ||
347 | {PXP2_REG_RQ_BW_RD_L14, PXP2_REG_RQ_BW_RD_ADD14, | ||
348 | PXP2_REG_RQ_BW_RD_UBOUND14}, | ||
349 | {PXP2_REG_RQ_BW_RD_L15, PXP2_REG_RQ_BW_RD_ADD15, | ||
350 | PXP2_REG_RQ_BW_RD_UBOUND15}, | ||
351 | {PXP2_REG_RQ_BW_RD_L16, PXP2_REG_RQ_BW_RD_ADD16, | ||
352 | PXP2_REG_RQ_BW_RD_UBOUND16}, | ||
353 | {PXP2_REG_RQ_BW_RD_L17, PXP2_REG_RQ_BW_RD_ADD17, | ||
354 | PXP2_REG_RQ_BW_RD_UBOUND17}, | ||
355 | {PXP2_REG_RQ_BW_RD_L18, PXP2_REG_RQ_BW_RD_ADD18, | ||
356 | PXP2_REG_RQ_BW_RD_UBOUND18}, | ||
357 | {PXP2_REG_RQ_BW_RD_L19, PXP2_REG_RQ_BW_RD_ADD19, | ||
358 | PXP2_REG_RQ_BW_RD_UBOUND19}, | ||
359 | {PXP2_REG_RQ_BW_RD_L20, PXP2_REG_RQ_BW_RD_ADD20, | ||
360 | PXP2_REG_RQ_BW_RD_UBOUND20}, | ||
361 | {PXP2_REG_RQ_BW_RD_L22, PXP2_REG_RQ_BW_RD_ADD22, | ||
362 | PXP2_REG_RQ_BW_RD_UBOUND22}, | ||
363 | {PXP2_REG_RQ_BW_RD_L23, PXP2_REG_RQ_BW_RD_ADD23, | ||
364 | PXP2_REG_RQ_BW_RD_UBOUND23}, | ||
365 | {PXP2_REG_RQ_BW_RD_L24, PXP2_REG_RQ_BW_RD_ADD24, | ||
366 | PXP2_REG_RQ_BW_RD_UBOUND24}, | ||
367 | {PXP2_REG_RQ_BW_RD_L25, PXP2_REG_RQ_BW_RD_ADD25, | ||
368 | PXP2_REG_RQ_BW_RD_UBOUND25}, | ||
369 | {PXP2_REG_RQ_BW_RD_L26, PXP2_REG_RQ_BW_RD_ADD26, | ||
370 | PXP2_REG_RQ_BW_RD_UBOUND26}, | ||
371 | {PXP2_REG_RQ_BW_RD_L27, PXP2_REG_RQ_BW_RD_ADD27, | ||
372 | PXP2_REG_RQ_BW_RD_UBOUND27}, | ||
373 | {PXP2_REG_PSWRQ_BW_L28, PXP2_REG_PSWRQ_BW_ADD28, | ||
374 | PXP2_REG_PSWRQ_BW_UB28} | ||
375 | }; | ||
376 | |||
377 | /* register adresses for wrtie queues */ | ||
378 | static const struct arb_line write_arb_addr[NUM_WR_Q-1] = { | ||
379 | {PXP2_REG_PSWRQ_BW_L1, PXP2_REG_PSWRQ_BW_ADD1, | ||
380 | PXP2_REG_PSWRQ_BW_UB1}, | ||
381 | {PXP2_REG_PSWRQ_BW_L2, PXP2_REG_PSWRQ_BW_ADD2, | ||
382 | PXP2_REG_PSWRQ_BW_UB2}, | ||
383 | {PXP2_REG_PSWRQ_BW_L3, PXP2_REG_PSWRQ_BW_ADD3, | ||
384 | PXP2_REG_PSWRQ_BW_UB3}, | ||
385 | {PXP2_REG_PSWRQ_BW_L6, PXP2_REG_PSWRQ_BW_ADD6, | ||
386 | PXP2_REG_PSWRQ_BW_UB6}, | ||
387 | {PXP2_REG_PSWRQ_BW_L7, PXP2_REG_PSWRQ_BW_ADD7, | ||
388 | PXP2_REG_PSWRQ_BW_UB7}, | ||
389 | {PXP2_REG_PSWRQ_BW_L8, PXP2_REG_PSWRQ_BW_ADD8, | ||
390 | PXP2_REG_PSWRQ_BW_UB8}, | ||
391 | {PXP2_REG_PSWRQ_BW_L9, PXP2_REG_PSWRQ_BW_ADD9, | ||
392 | PXP2_REG_PSWRQ_BW_UB9}, | ||
393 | {PXP2_REG_PSWRQ_BW_L10, PXP2_REG_PSWRQ_BW_ADD10, | ||
394 | PXP2_REG_PSWRQ_BW_UB10}, | ||
395 | {PXP2_REG_PSWRQ_BW_L11, PXP2_REG_PSWRQ_BW_ADD11, | ||
396 | PXP2_REG_PSWRQ_BW_UB11}, | ||
397 | {PXP2_REG_PSWRQ_BW_L28, PXP2_REG_PSWRQ_BW_ADD28, | ||
398 | PXP2_REG_PSWRQ_BW_UB28}, | ||
399 | {PXP2_REG_RQ_BW_WR_L29, PXP2_REG_RQ_BW_WR_ADD29, | ||
400 | PXP2_REG_RQ_BW_WR_UBOUND29}, | ||
401 | {PXP2_REG_RQ_BW_WR_L30, PXP2_REG_RQ_BW_WR_ADD30, | ||
402 | PXP2_REG_RQ_BW_WR_UBOUND30} | ||
403 | }; | ||
404 | |||
405 | static void bnx2x_init_pxp(struct bnx2x *bp) | ||
406 | { | ||
407 | int r_order, w_order; | ||
408 | u32 val, i; | ||
409 | |||
410 | pci_read_config_word(bp->pdev, | ||
411 | bp->pcie_cap + PCI_EXP_DEVCTL, (u16 *)&val); | ||
412 | DP(NETIF_MSG_HW, "read 0x%x from devctl\n", val); | ||
413 | w_order = ((val & PCI_EXP_DEVCTL_PAYLOAD) >> 5); | ||
414 | r_order = ((val & PCI_EXP_DEVCTL_READRQ) >> 12); | ||
415 | |||
416 | if (r_order > MAX_RD_ORD) { | ||
417 | DP(NETIF_MSG_HW, "read order of %d order adjusted to %d\n", | ||
418 | r_order, MAX_RD_ORD); | ||
419 | r_order = MAX_RD_ORD; | ||
420 | } | ||
421 | if (w_order > MAX_WR_ORD) { | ||
422 | DP(NETIF_MSG_HW, "write order of %d order adjusted to %d\n", | ||
423 | w_order, MAX_WR_ORD); | ||
424 | w_order = MAX_WR_ORD; | ||
425 | } | ||
426 | DP(NETIF_MSG_HW, "read order %d write order %d\n", r_order, w_order); | ||
427 | |||
428 | for (i = 0; i < NUM_RD_Q-1; i++) { | ||
429 | REG_WR(bp, read_arb_addr[i].l, read_arb_data[i][r_order].l); | ||
430 | REG_WR(bp, read_arb_addr[i].add, | ||
431 | read_arb_data[i][r_order].add); | ||
432 | REG_WR(bp, read_arb_addr[i].ubound, | ||
433 | read_arb_data[i][r_order].ubound); | ||
434 | } | ||
435 | |||
436 | for (i = 0; i < NUM_WR_Q-1; i++) { | ||
437 | if ((write_arb_addr[i].l == PXP2_REG_RQ_BW_WR_L29) || | ||
438 | (write_arb_addr[i].l == PXP2_REG_RQ_BW_WR_L30)) { | ||
439 | |||
440 | REG_WR(bp, write_arb_addr[i].l, | ||
441 | write_arb_data[i][w_order].l); | ||
442 | |||
443 | REG_WR(bp, write_arb_addr[i].add, | ||
444 | write_arb_data[i][w_order].add); | ||
445 | |||
446 | REG_WR(bp, write_arb_addr[i].ubound, | ||
447 | write_arb_data[i][w_order].ubound); | ||
448 | } else { | ||
449 | |||
450 | val = REG_RD(bp, write_arb_addr[i].l); | ||
451 | REG_WR(bp, write_arb_addr[i].l, | ||
452 | val | (write_arb_data[i][w_order].l << 10)); | ||
453 | |||
454 | val = REG_RD(bp, write_arb_addr[i].add); | ||
455 | REG_WR(bp, write_arb_addr[i].add, | ||
456 | val | (write_arb_data[i][w_order].add << 10)); | ||
457 | |||
458 | val = REG_RD(bp, write_arb_addr[i].ubound); | ||
459 | REG_WR(bp, write_arb_addr[i].ubound, | ||
460 | val | (write_arb_data[i][w_order].ubound << 7)); | ||
461 | } | ||
462 | } | ||
463 | |||
464 | val = write_arb_data[NUM_WR_Q-1][w_order].add; | ||
465 | val += write_arb_data[NUM_WR_Q-1][w_order].ubound << 10; | ||
466 | val += write_arb_data[NUM_WR_Q-1][w_order].l << 17; | ||
467 | REG_WR(bp, PXP2_REG_PSWRQ_BW_RD, val); | ||
468 | |||
469 | val = read_arb_data[NUM_RD_Q-1][r_order].add; | ||
470 | val += read_arb_data[NUM_RD_Q-1][r_order].ubound << 10; | ||
471 | val += read_arb_data[NUM_RD_Q-1][r_order].l << 17; | ||
472 | REG_WR(bp, PXP2_REG_PSWRQ_BW_WR, val); | ||
473 | |||
474 | REG_WR(bp, PXP2_REG_RQ_WR_MBS0, w_order); | ||
475 | REG_WR(bp, PXP2_REG_RQ_WR_MBS0 + 8, w_order); | ||
476 | REG_WR(bp, PXP2_REG_RQ_RD_MBS0, r_order); | ||
477 | REG_WR(bp, PXP2_REG_RQ_RD_MBS0 + 8, r_order); | ||
478 | |||
479 | REG_WR(bp, PXP2_REG_WR_DMAE_TH, (128 << w_order)/16); | ||
480 | } | ||
481 | |||
482 | |||
483 | /**************************************************************************** | ||
484 | * CDU | ||
485 | ****************************************************************************/ | ||
486 | |||
487 | #define CDU_REGION_NUMBER_XCM_AG 2 | ||
488 | #define CDU_REGION_NUMBER_UCM_AG 4 | ||
489 | |||
490 | /** | ||
491 | * String-to-compress [31:8] = CID (all 24 bits) | ||
492 | * String-to-compress [7:4] = Region | ||
493 | * String-to-compress [3:0] = Type | ||
494 | */ | ||
495 | #define CDU_VALID_DATA(_cid, _region, _type) \ | ||
496 | (((_cid) << 8) | (((_region) & 0xf) << 4) | (((_type) & 0xf))) | ||
497 | #define CDU_CRC8(_cid, _region, _type) \ | ||
498 | calc_crc8(CDU_VALID_DATA(_cid, _region, _type), 0xff) | ||
499 | #define CDU_RSRVD_VALUE_TYPE_A(_cid, _region, _type) \ | ||
500 | (0x80 | (CDU_CRC8(_cid, _region, _type) & 0x7f)) | ||
501 | #define CDU_RSRVD_VALUE_TYPE_B(_crc, _type) \ | ||
502 | (0x80 | ((_type) & 0xf << 3) | (CDU_CRC8(_cid, _region, _type) & 0x7)) | ||
503 | #define CDU_RSRVD_INVALIDATE_CONTEXT_VALUE(_val) ((_val) & ~0x80) | ||
504 | |||
505 | /***************************************************************************** | ||
506 | * Description: | ||
507 | * Calculates crc 8 on a word value: polynomial 0-1-2-8 | ||
508 | * Code was translated from Verilog. | ||
509 | ****************************************************************************/ | ||
510 | static u8 calc_crc8(u32 data, u8 crc) | ||
511 | { | ||
512 | u8 D[32]; | ||
513 | u8 NewCRC[8]; | ||
514 | u8 C[8]; | ||
515 | u8 crc_res; | ||
516 | u8 i; | ||
517 | |||
518 | /* split the data into 31 bits */ | ||
519 | for (i = 0; i < 32; i++) { | ||
520 | D[i] = data & 1; | ||
521 | data = data >> 1; | ||
522 | } | ||
523 | |||
524 | /* split the crc into 8 bits */ | ||
525 | for (i = 0; i < 8; i++) { | ||
526 | C[i] = crc & 1; | ||
527 | crc = crc >> 1; | ||
528 | } | ||
529 | |||
530 | NewCRC[0] = D[31] ^ D[30] ^ D[28] ^ D[23] ^ D[21] ^ D[19] ^ D[18] ^ | ||
531 | D[16] ^ D[14] ^ D[12] ^ D[8] ^ D[7] ^ D[6] ^ D[0] ^ C[4] ^ | ||
532 | C[6] ^ C[7]; | ||
533 | NewCRC[1] = D[30] ^ D[29] ^ D[28] ^ D[24] ^ D[23] ^ D[22] ^ D[21] ^ | ||
534 | D[20] ^ D[18] ^ D[17] ^ D[16] ^ D[15] ^ D[14] ^ D[13] ^ | ||
535 | D[12] ^ D[9] ^ D[6] ^ D[1] ^ D[0] ^ C[0] ^ C[4] ^ C[5] ^ C[6]; | ||
536 | NewCRC[2] = D[29] ^ D[28] ^ D[25] ^ D[24] ^ D[22] ^ D[17] ^ D[15] ^ | ||
537 | D[13] ^ D[12] ^ D[10] ^ D[8] ^ D[6] ^ D[2] ^ D[1] ^ D[0] ^ | ||
538 | C[0] ^ C[1] ^ C[4] ^ C[5]; | ||
539 | NewCRC[3] = D[30] ^ D[29] ^ D[26] ^ D[25] ^ D[23] ^ D[18] ^ D[16] ^ | ||
540 | D[14] ^ D[13] ^ D[11] ^ D[9] ^ D[7] ^ D[3] ^ D[2] ^ D[1] ^ | ||
541 | C[1] ^ C[2] ^ C[5] ^ C[6]; | ||
542 | NewCRC[4] = D[31] ^ D[30] ^ D[27] ^ D[26] ^ D[24] ^ D[19] ^ D[17] ^ | ||
543 | D[15] ^ D[14] ^ D[12] ^ D[10] ^ D[8] ^ D[4] ^ D[3] ^ D[2] ^ | ||
544 | C[0] ^ C[2] ^ C[3] ^ C[6] ^ C[7]; | ||
545 | NewCRC[5] = D[31] ^ D[28] ^ D[27] ^ D[25] ^ D[20] ^ D[18] ^ D[16] ^ | ||
546 | D[15] ^ D[13] ^ D[11] ^ D[9] ^ D[5] ^ D[4] ^ D[3] ^ C[1] ^ | ||
547 | C[3] ^ C[4] ^ C[7]; | ||
548 | NewCRC[6] = D[29] ^ D[28] ^ D[26] ^ D[21] ^ D[19] ^ D[17] ^ D[16] ^ | ||
549 | D[14] ^ D[12] ^ D[10] ^ D[6] ^ D[5] ^ D[4] ^ C[2] ^ C[4] ^ | ||
550 | C[5]; | ||
551 | NewCRC[7] = D[30] ^ D[29] ^ D[27] ^ D[22] ^ D[20] ^ D[18] ^ D[17] ^ | ||
552 | D[15] ^ D[13] ^ D[11] ^ D[7] ^ D[6] ^ D[5] ^ C[3] ^ C[5] ^ | ||
553 | C[6]; | ||
554 | |||
555 | crc_res = 0; | ||
556 | for (i = 0; i < 8; i++) | ||
557 | crc_res |= (NewCRC[i] << i); | ||
558 | |||
559 | return crc_res; | ||
560 | } | ||
561 | |||
562 | |||
563 | #endif /* BNX2X_INIT_H */ | ||
564 | |||
diff --git a/drivers/net/bnx2x_init_values.h b/drivers/net/bnx2x_init_values.h new file mode 100644 index 000000000000..bef0a9b19d68 --- /dev/null +++ b/drivers/net/bnx2x_init_values.h | |||
@@ -0,0 +1,6368 @@ | |||
1 | #ifndef __BNX2X_INIT_VALUES_H__ | ||
2 | #define __BNX2X_INIT_VALUES_H__ | ||
3 | |||
4 | /* This array contains the list of operations needed to initialize the chip. | ||
5 | * | ||
6 | * For each block in the chip there are three init stages: | ||
7 | * common - HW used by both ports, | ||
8 | * port1 and port2 - initialization for a specific Ethernet port. | ||
9 | * When a port is opened or closed, the management CPU tells the driver | ||
10 | * whether to init/disable common HW in addition to the port HW. | ||
11 | * This way the first port going up will first initializes the common HW, | ||
12 | * and the last port going down also resets the common HW | ||
13 | * | ||
14 | * For each init stage/block there is a list of actions needed in a format: | ||
15 | * {operation, register, data} | ||
16 | * where: | ||
17 | * OP_WR - write a value to the chip. | ||
18 | * OP_RD - read a register (usually a clear on read register). | ||
19 | * OP_SW - string write, write a section of consecutive addresses to the chip. | ||
20 | * OP_SI - copy a string using indirect writes. | ||
21 | * OP_ZR - clear a range of memory. | ||
22 | * OP_ZP - unzip and copy using DMAE. | ||
23 | * OP_WB - string copy using DMAE. | ||
24 | * | ||
25 | * The #defines mark the stages. | ||
26 | * | ||
27 | */ | ||
28 | |||
29 | static const struct raw_op init_ops[] = { | ||
30 | #define PRS_COMMON_START 0 | ||
31 | {OP_WR, PRS_REG_INC_VALUE, 0xf}, | ||
32 | {OP_WR, PRS_REG_EVENT_ID_1, 0x45}, | ||
33 | {OP_WR, PRS_REG_EVENT_ID_2, 0x84}, | ||
34 | {OP_WR, PRS_REG_EVENT_ID_3, 0x6}, | ||
35 | {OP_WR, PRS_REG_NO_MATCH_EVENT_ID, 0x4}, | ||
36 | {OP_WR, PRS_REG_CM_HDR_TYPE_0, 0x0}, | ||
37 | {OP_WR, PRS_REG_CM_HDR_TYPE_1, 0x12170000}, | ||
38 | {OP_WR, PRS_REG_CM_HDR_TYPE_2, 0x22170000}, | ||
39 | {OP_WR, PRS_REG_CM_HDR_TYPE_3, 0x32170000}, | ||
40 | {OP_ZR, PRS_REG_CM_HDR_TYPE_4, 0x5}, | ||
41 | {OP_WR, PRS_REG_CM_HDR_LOOPBACK_TYPE_1, 0x12150000}, | ||
42 | {OP_WR, PRS_REG_CM_HDR_LOOPBACK_TYPE_2, 0x22150000}, | ||
43 | {OP_WR, PRS_REG_CM_HDR_LOOPBACK_TYPE_3, 0x32150000}, | ||
44 | {OP_ZR, PRS_REG_CM_HDR_LOOPBACK_TYPE_4, 0x4}, | ||
45 | {OP_WR, PRS_REG_CM_NO_MATCH_HDR, 0x2100000}, | ||
46 | {OP_WR, PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_0, 0x100000}, | ||
47 | {OP_WR, PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_1, 0x10100000}, | ||
48 | {OP_WR, PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_2, 0x20100000}, | ||
49 | {OP_WR, PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_3, 0x30100000}, | ||
50 | {OP_ZR, PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_4, 0x4}, | ||
51 | {OP_WR, PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_0, 0x100000}, | ||
52 | {OP_WR, PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_1, 0x12140000}, | ||
53 | {OP_WR, PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_2, 0x22140000}, | ||
54 | {OP_WR, PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_3, 0x32140000}, | ||
55 | {OP_ZR, PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_4, 0x4}, | ||
56 | {OP_RD, PRS_REG_NUM_OF_PACKETS, 0x0}, | ||
57 | {OP_RD, PRS_REG_NUM_OF_CFC_FLUSH_MESSAGES, 0x0}, | ||
58 | {OP_RD, PRS_REG_NUM_OF_TRANSPARENT_FLUSH_MESSAGES, 0x0}, | ||
59 | {OP_RD, PRS_REG_NUM_OF_DEAD_CYCLES, 0x0}, | ||
60 | {OP_WR, PRS_REG_FLUSH_REGIONS_TYPE_0, 0xff}, | ||
61 | {OP_WR, PRS_REG_FLUSH_REGIONS_TYPE_1, 0xff}, | ||
62 | {OP_WR, PRS_REG_FLUSH_REGIONS_TYPE_2, 0xff}, | ||
63 | {OP_WR, PRS_REG_FLUSH_REGIONS_TYPE_3, 0xff}, | ||
64 | {OP_WR, PRS_REG_FLUSH_REGIONS_TYPE_4, 0xff}, | ||
65 | {OP_WR, PRS_REG_FLUSH_REGIONS_TYPE_5, 0xff}, | ||
66 | {OP_WR, PRS_REG_FLUSH_REGIONS_TYPE_6, 0xff}, | ||
67 | {OP_WR, PRS_REG_FLUSH_REGIONS_TYPE_7, 0xff}, | ||
68 | {OP_WR, PRS_REG_PURE_REGIONS, 0x3e}, | ||
69 | {OP_WR, PRS_REG_PACKET_REGIONS_TYPE_0, 0x0}, | ||
70 | {OP_WR, PRS_REG_PACKET_REGIONS_TYPE_1, 0x3f}, | ||
71 | {OP_WR, PRS_REG_PACKET_REGIONS_TYPE_2, 0x3f}, | ||
72 | {OP_WR, PRS_REG_PACKET_REGIONS_TYPE_3, 0x3f}, | ||
73 | {OP_WR, PRS_REG_PACKET_REGIONS_TYPE_4, 0x0}, | ||
74 | {OP_WR, PRS_REG_PACKET_REGIONS_TYPE_5, 0x3f}, | ||
75 | {OP_WR, PRS_REG_PACKET_REGIONS_TYPE_6, 0x3f}, | ||
76 | {OP_WR, PRS_REG_PACKET_REGIONS_TYPE_7, 0x3f}, | ||
77 | #define PRS_COMMON_END 46 | ||
78 | #define PRS_PORT0_START 46 | ||
79 | {OP_WR, PRS_REG_CID_PORT_0, 0x0}, | ||
80 | #define PRS_PORT0_END 47 | ||
81 | #define PRS_PORT1_START 47 | ||
82 | {OP_WR, PRS_REG_CID_PORT_1, 0x800000}, | ||
83 | #define PRS_PORT1_END 48 | ||
84 | #define TSDM_COMMON_START 48 | ||
85 | {OP_WR, TSDM_REG_CFC_RSP_START_ADDR, 0x411}, | ||
86 | {OP_WR, TSDM_REG_CMP_COUNTER_START_ADDR, 0x400}, | ||
87 | {OP_WR, TSDM_REG_Q_COUNTER_START_ADDR, 0x404}, | ||
88 | {OP_WR, TSDM_REG_PCK_END_MSG_START_ADDR, 0x419}, | ||
89 | {OP_WR, TSDM_REG_CMP_COUNTER_MAX0, 0xffff}, | ||
90 | {OP_WR, TSDM_REG_CMP_COUNTER_MAX1, 0xffff}, | ||
91 | {OP_WR, TSDM_REG_CMP_COUNTER_MAX2, 0xffff}, | ||
92 | {OP_WR, TSDM_REG_CMP_COUNTER_MAX3, 0xffff}, | ||
93 | {OP_ZR, TSDM_REG_AGG_INT_EVENT_0, 0x80}, | ||
94 | {OP_WR, TSDM_REG_ENABLE_IN1, 0x7ffffff}, | ||
95 | {OP_WR, TSDM_REG_ENABLE_IN2, 0x3f}, | ||
96 | {OP_WR, TSDM_REG_ENABLE_OUT1, 0x7ffffff}, | ||
97 | {OP_WR, TSDM_REG_ENABLE_OUT2, 0xf}, | ||
98 | {OP_RD, TSDM_REG_NUM_OF_Q0_CMD, 0x0}, | ||
99 | {OP_RD, TSDM_REG_NUM_OF_Q1_CMD, 0x0}, | ||
100 | {OP_RD, TSDM_REG_NUM_OF_Q3_CMD, 0x0}, | ||
101 | {OP_RD, TSDM_REG_NUM_OF_Q4_CMD, 0x0}, | ||
102 | {OP_RD, TSDM_REG_NUM_OF_Q5_CMD, 0x0}, | ||
103 | {OP_RD, TSDM_REG_NUM_OF_Q6_CMD, 0x0}, | ||
104 | {OP_RD, TSDM_REG_NUM_OF_Q7_CMD, 0x0}, | ||
105 | {OP_RD, TSDM_REG_NUM_OF_Q8_CMD, 0x0}, | ||
106 | {OP_RD, TSDM_REG_NUM_OF_Q9_CMD, 0x0}, | ||
107 | {OP_RD, TSDM_REG_NUM_OF_Q10_CMD, 0x0}, | ||
108 | {OP_RD, TSDM_REG_NUM_OF_Q11_CMD, 0x0}, | ||
109 | {OP_RD, TSDM_REG_NUM_OF_PKT_END_MSG, 0x0}, | ||
110 | {OP_RD, TSDM_REG_NUM_OF_PXP_ASYNC_REQ, 0x0}, | ||
111 | {OP_RD, TSDM_REG_NUM_OF_ACK_AFTER_PLACE, 0x0}, | ||
112 | {OP_WR, TSDM_REG_TIMER_TICK, 0x3e8}, | ||
113 | #define TSDM_COMMON_END 76 | ||
114 | #define TCM_COMMON_START 76 | ||
115 | {OP_WR, TCM_REG_XX_MAX_LL_SZ, 0x20}, | ||
116 | {OP_WR, TCM_REG_XX_OVFL_EVNT_ID, 0x32}, | ||
117 | {OP_WR, TCM_REG_TQM_TCM_HDR_P, 0x2150020}, | ||
118 | {OP_WR, TCM_REG_TQM_TCM_HDR_S, 0x2150020}, | ||
119 | {OP_WR, TCM_REG_TM_TCM_HDR, 0x30}, | ||
120 | {OP_WR, TCM_REG_ERR_TCM_HDR, 0x8100000}, | ||
121 | {OP_WR, TCM_REG_ERR_EVNT_ID, 0x33}, | ||
122 | {OP_WR, TCM_REG_EXPR_EVNT_ID, 0x30}, | ||
123 | {OP_WR, TCM_REG_STOP_EVNT_ID, 0x31}, | ||
124 | {OP_WR, TCM_REG_PRS_WEIGHT, 0x4}, | ||
125 | {OP_WR, TCM_REG_PBF_WEIGHT, 0x5}, | ||
126 | {OP_WR, TCM_REG_CP_WEIGHT, 0x0}, | ||
127 | {OP_WR, TCM_REG_TSDM_WEIGHT, 0x4}, | ||
128 | {OP_WR, TCM_REG_TCM_TQM_USE_Q, 0x1}, | ||
129 | {OP_WR, TCM_REG_GR_ARB_TYPE, 0x1}, | ||
130 | {OP_WR, TCM_REG_GR_LD0_PR, 0x1}, | ||
131 | {OP_WR, TCM_REG_GR_LD1_PR, 0x2}, | ||
132 | {OP_WR, TCM_REG_CFC_INIT_CRD, 0x1}, | ||
133 | {OP_WR, TCM_REG_FIC0_INIT_CRD, 0x40}, | ||
134 | {OP_WR, TCM_REG_FIC1_INIT_CRD, 0x40}, | ||
135 | {OP_WR, TCM_REG_TQM_INIT_CRD, 0x20}, | ||
136 | {OP_WR, TCM_REG_XX_INIT_CRD, 0x13}, | ||
137 | {OP_WR, TCM_REG_XX_MSG_NUM, 0x20}, | ||
138 | {OP_ZR, TCM_REG_XX_TABLE, 0xa}, | ||
139 | {OP_SW, TCM_REG_XX_DESCR_TABLE, 0x200000}, | ||
140 | {OP_WR, TCM_REG_N_SM_CTX_LD_0, 0x7}, | ||
141 | {OP_WR, TCM_REG_N_SM_CTX_LD_1, 0x7}, | ||
142 | {OP_WR, TCM_REG_N_SM_CTX_LD_2, 0x8}, | ||
143 | {OP_WR, TCM_REG_N_SM_CTX_LD_3, 0x8}, | ||
144 | {OP_ZR, TCM_REG_N_SM_CTX_LD_4, 0x4}, | ||
145 | {OP_WR, TCM_REG_TCM_REG0_SZ, 0x6}, | ||
146 | {OP_WR, TCM_REG_PHYS_QNUM0_0, 0xd}, | ||
147 | {OP_WR, TCM_REG_PHYS_QNUM0_1, 0x2d}, | ||
148 | {OP_ZR, TCM_REG_PHYS_QNUM1_0, 0x6}, | ||
149 | {OP_WR, TCM_REG_TCM_STORM0_IFEN, 0x1}, | ||
150 | {OP_WR, TCM_REG_TCM_STORM1_IFEN, 0x1}, | ||
151 | {OP_WR, TCM_REG_TCM_TQM_IFEN, 0x1}, | ||
152 | {OP_WR, TCM_REG_STORM_TCM_IFEN, 0x1}, | ||
153 | {OP_WR, TCM_REG_TQM_TCM_IFEN, 0x1}, | ||
154 | {OP_WR, TCM_REG_TSDM_IFEN, 0x1}, | ||
155 | {OP_WR, TCM_REG_TM_TCM_IFEN, 0x1}, | ||
156 | {OP_WR, TCM_REG_PRS_IFEN, 0x1}, | ||
157 | {OP_WR, TCM_REG_PBF_IFEN, 0x1}, | ||
158 | {OP_WR, TCM_REG_USEM_IFEN, 0x1}, | ||
159 | {OP_WR, TCM_REG_CSEM_IFEN, 0x1}, | ||
160 | {OP_WR, TCM_REG_CDU_AG_WR_IFEN, 0x1}, | ||
161 | {OP_WR, TCM_REG_CDU_AG_RD_IFEN, 0x1}, | ||
162 | {OP_WR, TCM_REG_CDU_SM_WR_IFEN, 0x1}, | ||
163 | {OP_WR, TCM_REG_CDU_SM_RD_IFEN, 0x1}, | ||
164 | {OP_WR, TCM_REG_TCM_CFC_IFEN, 0x1}, | ||
165 | #define TCM_COMMON_END 126 | ||
166 | #define BRB1_COMMON_START 126 | ||
167 | {OP_SW, BRB1_REG_LL_RAM, 0x2000020}, | ||
168 | {OP_WR, BRB1_REG_SOFT_RESET, 0x1}, | ||
169 | {OP_RD, BRB1_REG_NUM_OF_PAUSE_CYCLES_0, 0x0}, | ||
170 | {OP_RD, BRB1_REG_NUM_OF_PAUSE_CYCLES_1, 0x0}, | ||
171 | {OP_RD, BRB1_REG_NUM_OF_PAUSE_CYCLES_2, 0x0}, | ||
172 | {OP_RD, BRB1_REG_NUM_OF_PAUSE_CYCLES_3, 0x0}, | ||
173 | {OP_RD, BRB1_REG_NUM_OF_FULL_CYCLES_0, 0x0}, | ||
174 | {OP_RD, BRB1_REG_NUM_OF_FULL_CYCLES_1, 0x0}, | ||
175 | {OP_RD, BRB1_REG_NUM_OF_FULL_CYCLES_2, 0x0}, | ||
176 | {OP_RD, BRB1_REG_NUM_OF_FULL_CYCLES_3, 0x0}, | ||
177 | {OP_RD, BRB1_REG_NUM_OF_FULL_CYCLES_4, 0x0}, | ||
178 | {OP_SW, BRB1_REG_FREE_LIST_PRS_CRDT, 0x30220}, | ||
179 | {OP_WR, BRB1_REG_SOFT_RESET, 0x0}, | ||
180 | #define BRB1_COMMON_END 139 | ||
181 | #define TSEM_COMMON_START 139 | ||
182 | {OP_RD, TSEM_REG_MSG_NUM_FIC0, 0x0}, | ||
183 | {OP_RD, TSEM_REG_MSG_NUM_FIC1, 0x0}, | ||
184 | {OP_RD, TSEM_REG_MSG_NUM_FOC0, 0x0}, | ||
185 | {OP_RD, TSEM_REG_MSG_NUM_FOC1, 0x0}, | ||
186 | {OP_RD, TSEM_REG_MSG_NUM_FOC2, 0x0}, | ||
187 | {OP_RD, TSEM_REG_MSG_NUM_FOC3, 0x0}, | ||
188 | {OP_WR, TSEM_REG_ARB_ELEMENT0, 0x1}, | ||
189 | {OP_WR, TSEM_REG_ARB_ELEMENT1, 0x2}, | ||
190 | {OP_WR, TSEM_REG_ARB_ELEMENT2, 0x3}, | ||
191 | {OP_WR, TSEM_REG_ARB_ELEMENT3, 0x0}, | ||
192 | {OP_WR, TSEM_REG_ARB_ELEMENT4, 0x4}, | ||
193 | {OP_WR, TSEM_REG_ARB_CYCLE_SIZE, 0x1}, | ||
194 | {OP_WR, TSEM_REG_TS_0_AS, 0x0}, | ||
195 | {OP_WR, TSEM_REG_TS_1_AS, 0x1}, | ||
196 | {OP_WR, TSEM_REG_TS_2_AS, 0x4}, | ||
197 | {OP_WR, TSEM_REG_TS_3_AS, 0x0}, | ||
198 | {OP_WR, TSEM_REG_TS_4_AS, 0x1}, | ||
199 | {OP_WR, TSEM_REG_TS_5_AS, 0x3}, | ||
200 | {OP_WR, TSEM_REG_TS_6_AS, 0x0}, | ||
201 | {OP_WR, TSEM_REG_TS_7_AS, 0x1}, | ||
202 | {OP_WR, TSEM_REG_TS_8_AS, 0x4}, | ||
203 | {OP_WR, TSEM_REG_TS_9_AS, 0x0}, | ||
204 | {OP_WR, TSEM_REG_TS_10_AS, 0x1}, | ||
205 | {OP_WR, TSEM_REG_TS_11_AS, 0x3}, | ||
206 | {OP_WR, TSEM_REG_TS_12_AS, 0x0}, | ||
207 | {OP_WR, TSEM_REG_TS_13_AS, 0x1}, | ||
208 | {OP_WR, TSEM_REG_TS_14_AS, 0x4}, | ||
209 | {OP_WR, TSEM_REG_TS_15_AS, 0x0}, | ||
210 | {OP_WR, TSEM_REG_TS_16_AS, 0x4}, | ||
211 | {OP_WR, TSEM_REG_TS_17_AS, 0x3}, | ||
212 | {OP_ZR, TSEM_REG_TS_18_AS, 0x2}, | ||
213 | {OP_WR, TSEM_REG_ENABLE_IN, 0x3fff}, | ||
214 | {OP_WR, TSEM_REG_ENABLE_OUT, 0x3ff}, | ||
215 | {OP_WR, TSEM_REG_FIC0_DISABLE, 0x0}, | ||
216 | {OP_WR, TSEM_REG_FIC1_DISABLE, 0x0}, | ||
217 | {OP_WR, TSEM_REG_PAS_DISABLE, 0x0}, | ||
218 | {OP_WR, TSEM_REG_THREADS_LIST, 0xff}, | ||
219 | {OP_ZR, TSEM_REG_PASSIVE_BUFFER, 0x400}, | ||
220 | {OP_WR, TSEM_REG_FAST_MEMORY + 0x18bc0, 0x1}, | ||
221 | {OP_WR, TSEM_REG_FAST_MEMORY + 0x18000, 0x34}, | ||
222 | {OP_WR, TSEM_REG_FAST_MEMORY + 0x18040, 0x18}, | ||
223 | {OP_WR, TSEM_REG_FAST_MEMORY + 0x18080, 0xc}, | ||
224 | {OP_WR, TSEM_REG_FAST_MEMORY + 0x180c0, 0x20}, | ||
225 | {OP_WR, TSEM_REG_FAST_MEMORY + 0x18300, 0x7a120}, | ||
226 | {OP_WR, TSEM_REG_FAST_MEMORY + 0x183c0, 0x1f4}, | ||
227 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x2000, 0x1b3}, | ||
228 | {OP_SW, TSEM_REG_FAST_MEMORY + 0x2000 + 0x6cc, 0x10223}, | ||
229 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x1020, 0xc8}, | ||
230 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x1000, 0x2}, | ||
231 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x800, 0x2}, | ||
232 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x808, 0x2}, | ||
233 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x810, 0x4}, | ||
234 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x1fa0, 0x4}, | ||
235 | {OP_SW, TSEM_REG_FAST_MEMORY + 0x4cf0, 0x80224}, | ||
236 | {OP_ZP, TSEM_REG_INT_TABLE, 0x8c022c}, | ||
237 | {OP_ZP, TSEM_REG_PRAM, 0x3395024f}, | ||
238 | {OP_ZP, TSEM_REG_PRAM + 0x8000, 0x2c760f35}, | ||
239 | {OP_ZP, TSEM_REG_PRAM + 0x10000, 0x5e1a53}, | ||
240 | {OP_ZP, TSEM_REG_PRAM + 0x18000, 0x5e1a6b}, | ||
241 | {OP_ZP, TSEM_REG_PRAM + 0x20000, 0x5e1a83}, | ||
242 | {OP_ZP, TSEM_REG_PRAM + 0x28000, 0x5e1a9b}, | ||
243 | {OP_ZP, TSEM_REG_PRAM + 0x30000, 0x5e1ab3}, | ||
244 | {OP_ZP, TSEM_REG_PRAM + 0x38000, 0x5e1acb}, | ||
245 | #define TSEM_COMMON_END 202 | ||
246 | #define TSEM_PORT0_START 202 | ||
247 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x4000, 0x16c}, | ||
248 | {OP_SW, TSEM_REG_FAST_MEMORY + 0x4000 + 0x5b0, 0x21ae3}, | ||
249 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x1370, 0xa}, | ||
250 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x13c0, 0x6}, | ||
251 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x1418, 0xc}, | ||
252 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x1478, 0x12}, | ||
253 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x1508, 0x90}, | ||
254 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x800, 0x2}, | ||
255 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x820, 0x10}, | ||
256 | {OP_SW, TSEM_REG_FAST_MEMORY + 0x820 + 0x40, 0x21ae5}, | ||
257 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x2908, 0xa}, | ||
258 | #define TSEM_PORT0_END 213 | ||
259 | #define TSEM_PORT1_START 213 | ||
260 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x45b8, 0x16c}, | ||
261 | {OP_SW, TSEM_REG_FAST_MEMORY + 0x45b8 + 0x5b0, 0x21ae7}, | ||
262 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x1398, 0xa}, | ||
263 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x13d8, 0x6}, | ||
264 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x1448, 0xc}, | ||
265 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x14c0, 0x12}, | ||
266 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x1748, 0x90}, | ||
267 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x808, 0x2}, | ||
268 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x868, 0x10}, | ||
269 | {OP_SW, TSEM_REG_FAST_MEMORY + 0x868 + 0x40, 0x21ae9}, | ||
270 | {OP_ZR, TSEM_REG_FAST_MEMORY + 0x2930, 0xa}, | ||
271 | #define TSEM_PORT1_END 224 | ||
272 | #define MISC_COMMON_START 224 | ||
273 | {OP_WR, MISC_REG_GRC_TIMEOUT_EN, 0x1}, | ||
274 | {OP_WR, MISC_REG_PLL_STORM_CTRL_1, 0x71d2911}, | ||
275 | {OP_WR, MISC_REG_PLL_STORM_CTRL_2, 0x0}, | ||
276 | {OP_WR, MISC_REG_PLL_STORM_CTRL_3, 0x9c0424}, | ||
277 | {OP_WR, MISC_REG_PLL_STORM_CTRL_4, 0x0}, | ||
278 | {OP_WR, MISC_REG_LCPLL_CTRL_1, 0x209}, | ||
279 | #define MISC_COMMON_END 230 | ||
280 | #define NIG_COMMON_START 230 | ||
281 | {OP_WR, NIG_REG_PBF_LB_IN_EN, 0x1}, | ||
282 | {OP_WR, NIG_REG_PRS_REQ_IN_EN, 0x1}, | ||
283 | {OP_WR, NIG_REG_EGRESS_DEBUG_IN_EN, 0x1}, | ||
284 | {OP_WR, NIG_REG_BRB_LB_OUT_EN, 0x1}, | ||
285 | {OP_WR, NIG_REG_PRS_EOP_OUT_EN, 0x1}, | ||
286 | #define NIG_COMMON_END 235 | ||
287 | #define NIG_PORT0_START 235 | ||
288 | {OP_WR, NIG_REG_LLH0_CM_HEADER, 0x300000}, | ||
289 | {OP_WR, NIG_REG_LLH0_EVENT_ID, 0x26}, | ||
290 | {OP_WR, NIG_REG_LLH0_ERROR_MASK, 0x0}, | ||
291 | {OP_WR, NIG_REG_LLH0_XCM_MASK, 0x4}, | ||
292 | {OP_WR, NIG_REG_LLH0_BRB1_NOT_MCP, 0x1}, | ||
293 | {OP_WR, NIG_REG_STATUS_INTERRUPT_PORT0, 0x0}, | ||
294 | {OP_WR, NIG_REG_LLH0_XCM_INIT_CREDIT, 0x30}, | ||
295 | {OP_WR, NIG_REG_BRB0_PAUSE_IN_EN, 0x1}, | ||
296 | {OP_WR, NIG_REG_EGRESS_PBF0_IN_EN, 0x1}, | ||
297 | {OP_WR, NIG_REG_BRB0_OUT_EN, 0x1}, | ||
298 | {OP_WR, NIG_REG_XCM0_OUT_EN, 0x1}, | ||
299 | #define NIG_PORT0_END 246 | ||
300 | #define NIG_PORT1_START 246 | ||
301 | {OP_WR, NIG_REG_LLH1_CM_HEADER, 0x300000}, | ||
302 | {OP_WR, NIG_REG_LLH1_EVENT_ID, 0x26}, | ||
303 | {OP_WR, NIG_REG_LLH1_ERROR_MASK, 0x0}, | ||
304 | {OP_WR, NIG_REG_LLH1_XCM_MASK, 0x4}, | ||
305 | {OP_WR, NIG_REG_LLH1_BRB1_NOT_MCP, 0x1}, | ||
306 | {OP_WR, NIG_REG_STATUS_INTERRUPT_PORT1, 0x0}, | ||
307 | {OP_WR, NIG_REG_LLH1_XCM_INIT_CREDIT, 0x30}, | ||
308 | {OP_WR, NIG_REG_BRB1_PAUSE_IN_EN, 0x1}, | ||
309 | {OP_WR, NIG_REG_EGRESS_PBF1_IN_EN, 0x1}, | ||
310 | {OP_WR, NIG_REG_BRB1_OUT_EN, 0x1}, | ||
311 | {OP_WR, NIG_REG_XCM1_OUT_EN, 0x1}, | ||
312 | #define NIG_PORT1_END 257 | ||
313 | #define UPB_COMMON_START 257 | ||
314 | {OP_WR, GRCBASE_UPB + PB_REG_CONTROL, 0x20}, | ||
315 | #define UPB_COMMON_END 258 | ||
316 | #define CSDM_COMMON_START 258 | ||
317 | {OP_WR, CSDM_REG_CFC_RSP_START_ADDR, 0xa11}, | ||
318 | {OP_WR, CSDM_REG_CMP_COUNTER_START_ADDR, 0xa00}, | ||
319 | {OP_WR, CSDM_REG_Q_COUNTER_START_ADDR, 0xa04}, | ||
320 | {OP_WR, CSDM_REG_CMP_COUNTER_MAX0, 0xffff}, | ||
321 | {OP_WR, CSDM_REG_CMP_COUNTER_MAX1, 0xffff}, | ||
322 | {OP_WR, CSDM_REG_CMP_COUNTER_MAX2, 0xffff}, | ||
323 | {OP_WR, CSDM_REG_CMP_COUNTER_MAX3, 0xffff}, | ||
324 | {OP_ZR, CSDM_REG_AGG_INT_EVENT_0, 0x80}, | ||
325 | {OP_WR, CSDM_REG_ENABLE_IN1, 0x7ffffff}, | ||
326 | {OP_WR, CSDM_REG_ENABLE_IN2, 0x3f}, | ||
327 | {OP_WR, CSDM_REG_ENABLE_OUT1, 0x7ffffff}, | ||
328 | {OP_WR, CSDM_REG_ENABLE_OUT2, 0xf}, | ||
329 | {OP_RD, CSDM_REG_NUM_OF_Q0_CMD, 0x0}, | ||
330 | {OP_RD, CSDM_REG_NUM_OF_Q1_CMD, 0x0}, | ||
331 | {OP_RD, CSDM_REG_NUM_OF_Q3_CMD, 0x0}, | ||
332 | {OP_RD, CSDM_REG_NUM_OF_Q4_CMD, 0x0}, | ||
333 | {OP_RD, CSDM_REG_NUM_OF_Q5_CMD, 0x0}, | ||
334 | {OP_RD, CSDM_REG_NUM_OF_Q6_CMD, 0x0}, | ||
335 | {OP_RD, CSDM_REG_NUM_OF_Q7_CMD, 0x0}, | ||
336 | {OP_RD, CSDM_REG_NUM_OF_Q8_CMD, 0x0}, | ||
337 | {OP_RD, CSDM_REG_NUM_OF_Q9_CMD, 0x0}, | ||
338 | {OP_RD, CSDM_REG_NUM_OF_Q10_CMD, 0x0}, | ||
339 | {OP_RD, CSDM_REG_NUM_OF_Q11_CMD, 0x0}, | ||
340 | {OP_RD, CSDM_REG_NUM_OF_PKT_END_MSG, 0x0}, | ||
341 | {OP_RD, CSDM_REG_NUM_OF_PXP_ASYNC_REQ, 0x0}, | ||
342 | {OP_RD, CSDM_REG_NUM_OF_ACK_AFTER_PLACE, 0x0}, | ||
343 | {OP_WR, CSDM_REG_TIMER_TICK, 0x3e8}, | ||
344 | #define CSDM_COMMON_END 285 | ||
345 | #define USDM_COMMON_START 285 | ||
346 | {OP_WR, USDM_REG_CFC_RSP_START_ADDR, 0xa11}, | ||
347 | {OP_WR, USDM_REG_CMP_COUNTER_START_ADDR, 0xa00}, | ||
348 | {OP_WR, USDM_REG_Q_COUNTER_START_ADDR, 0xa04}, | ||
349 | {OP_WR, USDM_REG_PCK_END_MSG_START_ADDR, 0xa21}, | ||
350 | {OP_WR, USDM_REG_CMP_COUNTER_MAX0, 0xffff}, | ||
351 | {OP_WR, USDM_REG_CMP_COUNTER_MAX1, 0xffff}, | ||
352 | {OP_WR, USDM_REG_CMP_COUNTER_MAX2, 0xffff}, | ||
353 | {OP_WR, USDM_REG_CMP_COUNTER_MAX3, 0xffff}, | ||
354 | {OP_WR, USDM_REG_AGG_INT_EVENT_0, 0x46}, | ||
355 | {OP_ZR, USDM_REG_AGG_INT_EVENT_1, 0x5f}, | ||
356 | {OP_WR, USDM_REG_AGG_INT_MODE_0, 0x1}, | ||
357 | {OP_ZR, USDM_REG_AGG_INT_MODE_1, 0x1f}, | ||
358 | {OP_WR, USDM_REG_ENABLE_IN1, 0x7ffffff}, | ||
359 | {OP_WR, USDM_REG_ENABLE_IN2, 0x3f}, | ||
360 | {OP_WR, USDM_REG_ENABLE_OUT1, 0x7ffffff}, | ||
361 | {OP_WR, USDM_REG_ENABLE_OUT2, 0xf}, | ||
362 | {OP_RD, USDM_REG_NUM_OF_Q0_CMD, 0x0}, | ||
363 | {OP_RD, USDM_REG_NUM_OF_Q1_CMD, 0x0}, | ||
364 | {OP_RD, USDM_REG_NUM_OF_Q2_CMD, 0x0}, | ||
365 | {OP_RD, USDM_REG_NUM_OF_Q3_CMD, 0x0}, | ||
366 | {OP_RD, USDM_REG_NUM_OF_Q4_CMD, 0x0}, | ||
367 | {OP_RD, USDM_REG_NUM_OF_Q5_CMD, 0x0}, | ||
368 | {OP_RD, USDM_REG_NUM_OF_Q6_CMD, 0x0}, | ||
369 | {OP_RD, USDM_REG_NUM_OF_Q7_CMD, 0x0}, | ||
370 | {OP_RD, USDM_REG_NUM_OF_Q8_CMD, 0x0}, | ||
371 | {OP_RD, USDM_REG_NUM_OF_Q9_CMD, 0x0}, | ||
372 | {OP_RD, USDM_REG_NUM_OF_Q10_CMD, 0x0}, | ||
373 | {OP_RD, USDM_REG_NUM_OF_Q11_CMD, 0x0}, | ||
374 | {OP_RD, USDM_REG_NUM_OF_PKT_END_MSG, 0x0}, | ||
375 | {OP_RD, USDM_REG_NUM_OF_PXP_ASYNC_REQ, 0x0}, | ||
376 | {OP_RD, USDM_REG_NUM_OF_ACK_AFTER_PLACE, 0x0}, | ||
377 | {OP_WR, USDM_REG_TIMER_TICK, 0x3e8}, | ||
378 | #define USDM_COMMON_END 317 | ||
379 | #define CCM_COMMON_START 317 | ||
380 | {OP_WR, CCM_REG_XX_OVFL_EVNT_ID, 0x32}, | ||
381 | {OP_WR, CCM_REG_CQM_CCM_HDR_P, 0x2150020}, | ||
382 | {OP_WR, CCM_REG_CQM_CCM_HDR_S, 0x2150020}, | ||
383 | {OP_WR, CCM_REG_ERR_CCM_HDR, 0x8100000}, | ||
384 | {OP_WR, CCM_REG_ERR_EVNT_ID, 0x33}, | ||
385 | {OP_WR, CCM_REG_TSEM_WEIGHT, 0x0}, | ||
386 | {OP_WR, CCM_REG_XSEM_WEIGHT, 0x4}, | ||
387 | {OP_WR, CCM_REG_USEM_WEIGHT, 0x4}, | ||
388 | {OP_ZR, CCM_REG_PBF_WEIGHT, 0x2}, | ||
389 | {OP_WR, CCM_REG_CQM_P_WEIGHT, 0x2}, | ||
390 | {OP_WR, CCM_REG_CCM_CQM_USE_Q, 0x1}, | ||
391 | {OP_WR, CCM_REG_CNT_AUX1_Q, 0x2}, | ||
392 | {OP_WR, CCM_REG_CNT_AUX2_Q, 0x2}, | ||
393 | {OP_WR, CCM_REG_INV_DONE_Q, 0x1}, | ||
394 | {OP_WR, CCM_REG_GR_ARB_TYPE, 0x1}, | ||
395 | {OP_WR, CCM_REG_GR_LD0_PR, 0x1}, | ||
396 | {OP_WR, CCM_REG_GR_LD1_PR, 0x2}, | ||
397 | {OP_WR, CCM_REG_CFC_INIT_CRD, 0x1}, | ||
398 | {OP_WR, CCM_REG_CQM_INIT_CRD, 0x20}, | ||
399 | {OP_WR, CCM_REG_FIC0_INIT_CRD, 0x40}, | ||
400 | {OP_WR, CCM_REG_FIC1_INIT_CRD, 0x40}, | ||
401 | {OP_WR, CCM_REG_XX_INIT_CRD, 0x3}, | ||
402 | {OP_WR, CCM_REG_XX_MSG_NUM, 0x18}, | ||
403 | {OP_ZR, CCM_REG_XX_TABLE, 0x12}, | ||
404 | {OP_SW, CCM_REG_XX_DESCR_TABLE, 0x241aeb}, | ||
405 | {OP_WR, CCM_REG_N_SM_CTX_LD_0, 0x1}, | ||
406 | {OP_WR, CCM_REG_N_SM_CTX_LD_1, 0x2}, | ||
407 | {OP_WR, CCM_REG_N_SM_CTX_LD_2, 0x8}, | ||
408 | {OP_WR, CCM_REG_N_SM_CTX_LD_3, 0x8}, | ||
409 | {OP_ZR, CCM_REG_N_SM_CTX_LD_4, 0x4}, | ||
410 | {OP_WR, CCM_REG_CCM_REG0_SZ, 0x4}, | ||
411 | {OP_WR, CCM_REG_QOS_PHYS_QNUM0_0, 0x9}, | ||
412 | {OP_WR, CCM_REG_QOS_PHYS_QNUM0_1, 0x29}, | ||
413 | {OP_WR, CCM_REG_QOS_PHYS_QNUM1_0, 0xa}, | ||
414 | {OP_WR, CCM_REG_QOS_PHYS_QNUM1_1, 0x2a}, | ||
415 | {OP_ZR, CCM_REG_QOS_PHYS_QNUM2_0, 0x4}, | ||
416 | {OP_WR, CCM_REG_PHYS_QNUM1_0, 0xc}, | ||
417 | {OP_WR, CCM_REG_PHYS_QNUM1_1, 0x2c}, | ||
418 | {OP_WR, CCM_REG_PHYS_QNUM2_0, 0xb}, | ||
419 | {OP_WR, CCM_REG_PHYS_QNUM2_1, 0x2b}, | ||
420 | {OP_ZR, CCM_REG_PHYS_QNUM3_0, 0x2}, | ||
421 | {OP_WR, CCM_REG_CCM_STORM0_IFEN, 0x1}, | ||
422 | {OP_WR, CCM_REG_CCM_STORM1_IFEN, 0x1}, | ||
423 | {OP_WR, CCM_REG_CCM_CQM_IFEN, 0x1}, | ||
424 | {OP_WR, CCM_REG_STORM_CCM_IFEN, 0x1}, | ||
425 | {OP_WR, CCM_REG_CQM_CCM_IFEN, 0x1}, | ||
426 | {OP_WR, CCM_REG_CSDM_IFEN, 0x1}, | ||
427 | {OP_WR, CCM_REG_TSEM_IFEN, 0x1}, | ||
428 | {OP_WR, CCM_REG_XSEM_IFEN, 0x1}, | ||
429 | {OP_WR, CCM_REG_USEM_IFEN, 0x1}, | ||
430 | {OP_WR, CCM_REG_PBF_IFEN, 0x1}, | ||
431 | {OP_WR, CCM_REG_CDU_AG_WR_IFEN, 0x1}, | ||
432 | {OP_WR, CCM_REG_CDU_AG_RD_IFEN, 0x1}, | ||
433 | {OP_WR, CCM_REG_CDU_SM_WR_IFEN, 0x1}, | ||
434 | {OP_WR, CCM_REG_CDU_SM_RD_IFEN, 0x1}, | ||
435 | {OP_WR, CCM_REG_CCM_CFC_IFEN, 0x1}, | ||
436 | #define CCM_COMMON_END 373 | ||
437 | #define UCM_COMMON_START 373 | ||
438 | {OP_WR, UCM_REG_XX_OVFL_EVNT_ID, 0x32}, | ||
439 | {OP_WR, UCM_REG_UQM_UCM_HDR_P, 0x2150020}, | ||
440 | {OP_WR, UCM_REG_UQM_UCM_HDR_S, 0x2150020}, | ||
441 | {OP_WR, UCM_REG_TM_UCM_HDR, 0x30}, | ||
442 | {OP_WR, UCM_REG_ERR_UCM_HDR, 0x8100000}, | ||
443 | {OP_WR, UCM_REG_ERR_EVNT_ID, 0x33}, | ||
444 | {OP_WR, UCM_REG_EXPR_EVNT_ID, 0x30}, | ||
445 | {OP_WR, UCM_REG_STOP_EVNT_ID, 0x31}, | ||
446 | {OP_WR, UCM_REG_TSEM_WEIGHT, 0x3}, | ||
447 | {OP_WR, UCM_REG_CSEM_WEIGHT, 0x0}, | ||
448 | {OP_WR, UCM_REG_CP_WEIGHT, 0x0}, | ||
449 | {OP_WR, UCM_REG_UQM_P_WEIGHT, 0x6}, | ||
450 | {OP_WR, UCM_REG_UCM_UQM_USE_Q, 0x1}, | ||
451 | {OP_WR, UCM_REG_INV_CFLG_Q, 0x1}, | ||
452 | {OP_WR, UCM_REG_GR_ARB_TYPE, 0x1}, | ||
453 | {OP_WR, UCM_REG_GR_LD0_PR, 0x1}, | ||
454 | {OP_WR, UCM_REG_GR_LD1_PR, 0x2}, | ||
455 | {OP_WR, UCM_REG_CFC_INIT_CRD, 0x1}, | ||
456 | {OP_WR, UCM_REG_FIC0_INIT_CRD, 0x40}, | ||
457 | {OP_WR, UCM_REG_FIC1_INIT_CRD, 0x40}, | ||
458 | {OP_WR, UCM_REG_TM_INIT_CRD, 0x4}, | ||
459 | {OP_WR, UCM_REG_UQM_INIT_CRD, 0x20}, | ||
460 | {OP_WR, UCM_REG_XX_INIT_CRD, 0xc}, | ||
461 | {OP_WR, UCM_REG_XX_MSG_NUM, 0x20}, | ||
462 | {OP_ZR, UCM_REG_XX_TABLE, 0x12}, | ||
463 | {OP_SW, UCM_REG_XX_DESCR_TABLE, 0x201b0f}, | ||
464 | {OP_WR, UCM_REG_N_SM_CTX_LD_0, 0xa}, | ||
465 | {OP_WR, UCM_REG_N_SM_CTX_LD_1, 0x7}, | ||
466 | {OP_WR, UCM_REG_N_SM_CTX_LD_2, 0xf}, | ||
467 | {OP_WR, UCM_REG_N_SM_CTX_LD_3, 0x10}, | ||
468 | {OP_ZR, UCM_REG_N_SM_CTX_LD_4, 0x4}, | ||
469 | {OP_WR, UCM_REG_UCM_REG0_SZ, 0x3}, | ||
470 | {OP_WR, UCM_REG_PHYS_QNUM0_0, 0xf}, | ||
471 | {OP_WR, UCM_REG_PHYS_QNUM0_1, 0x2f}, | ||
472 | {OP_WR, UCM_REG_PHYS_QNUM1_0, 0xe}, | ||
473 | {OP_WR, UCM_REG_PHYS_QNUM1_1, 0x2e}, | ||
474 | {OP_WR, UCM_REG_UCM_STORM0_IFEN, 0x1}, | ||
475 | {OP_WR, UCM_REG_UCM_STORM1_IFEN, 0x1}, | ||
476 | {OP_WR, UCM_REG_UCM_UQM_IFEN, 0x1}, | ||
477 | {OP_WR, UCM_REG_STORM_UCM_IFEN, 0x1}, | ||
478 | {OP_WR, UCM_REG_UQM_UCM_IFEN, 0x1}, | ||
479 | {OP_WR, UCM_REG_USDM_IFEN, 0x1}, | ||
480 | {OP_WR, UCM_REG_TM_UCM_IFEN, 0x1}, | ||
481 | {OP_WR, UCM_REG_UCM_TM_IFEN, 0x1}, | ||
482 | {OP_WR, UCM_REG_TSEM_IFEN, 0x1}, | ||
483 | {OP_WR, UCM_REG_CSEM_IFEN, 0x1}, | ||
484 | {OP_WR, UCM_REG_XSEM_IFEN, 0x1}, | ||
485 | {OP_WR, UCM_REG_DORQ_IFEN, 0x1}, | ||
486 | {OP_WR, UCM_REG_CDU_AG_WR_IFEN, 0x1}, | ||
487 | {OP_WR, UCM_REG_CDU_AG_RD_IFEN, 0x1}, | ||
488 | {OP_WR, UCM_REG_CDU_SM_WR_IFEN, 0x1}, | ||
489 | {OP_WR, UCM_REG_CDU_SM_RD_IFEN, 0x1}, | ||
490 | {OP_WR, UCM_REG_UCM_CFC_IFEN, 0x1}, | ||
491 | #define UCM_COMMON_END 426 | ||
492 | #define USEM_COMMON_START 426 | ||
493 | {OP_RD, USEM_REG_MSG_NUM_FIC0, 0x0}, | ||
494 | {OP_RD, USEM_REG_MSG_NUM_FIC1, 0x0}, | ||
495 | {OP_RD, USEM_REG_MSG_NUM_FOC0, 0x0}, | ||
496 | {OP_RD, USEM_REG_MSG_NUM_FOC1, 0x0}, | ||
497 | {OP_RD, USEM_REG_MSG_NUM_FOC2, 0x0}, | ||
498 | {OP_RD, USEM_REG_MSG_NUM_FOC3, 0x0}, | ||
499 | {OP_WR, USEM_REG_ARB_ELEMENT0, 0x1}, | ||
500 | {OP_WR, USEM_REG_ARB_ELEMENT1, 0x2}, | ||
501 | {OP_WR, USEM_REG_ARB_ELEMENT2, 0x3}, | ||
502 | {OP_WR, USEM_REG_ARB_ELEMENT3, 0x0}, | ||
503 | {OP_WR, USEM_REG_ARB_ELEMENT4, 0x4}, | ||
504 | {OP_WR, USEM_REG_ARB_CYCLE_SIZE, 0x1}, | ||
505 | {OP_WR, USEM_REG_TS_0_AS, 0x0}, | ||
506 | {OP_WR, USEM_REG_TS_1_AS, 0x1}, | ||
507 | {OP_WR, USEM_REG_TS_2_AS, 0x4}, | ||
508 | {OP_WR, USEM_REG_TS_3_AS, 0x0}, | ||
509 | {OP_WR, USEM_REG_TS_4_AS, 0x1}, | ||
510 | {OP_WR, USEM_REG_TS_5_AS, 0x3}, | ||
511 | {OP_WR, USEM_REG_TS_6_AS, 0x0}, | ||
512 | {OP_WR, USEM_REG_TS_7_AS, 0x1}, | ||
513 | {OP_WR, USEM_REG_TS_8_AS, 0x4}, | ||
514 | {OP_WR, USEM_REG_TS_9_AS, 0x0}, | ||
515 | {OP_WR, USEM_REG_TS_10_AS, 0x1}, | ||
516 | {OP_WR, USEM_REG_TS_11_AS, 0x3}, | ||
517 | {OP_WR, USEM_REG_TS_12_AS, 0x0}, | ||
518 | {OP_WR, USEM_REG_TS_13_AS, 0x1}, | ||
519 | {OP_WR, USEM_REG_TS_14_AS, 0x4}, | ||
520 | {OP_WR, USEM_REG_TS_15_AS, 0x0}, | ||
521 | {OP_WR, USEM_REG_TS_16_AS, 0x4}, | ||
522 | {OP_WR, USEM_REG_TS_17_AS, 0x3}, | ||
523 | {OP_ZR, USEM_REG_TS_18_AS, 0x2}, | ||
524 | {OP_WR, USEM_REG_ENABLE_IN, 0x3fff}, | ||
525 | {OP_WR, USEM_REG_ENABLE_OUT, 0x3ff}, | ||
526 | {OP_WR, USEM_REG_FIC0_DISABLE, 0x0}, | ||
527 | {OP_WR, USEM_REG_FIC1_DISABLE, 0x0}, | ||
528 | {OP_WR, USEM_REG_PAS_DISABLE, 0x0}, | ||
529 | {OP_WR, USEM_REG_THREADS_LIST, 0xffff}, | ||
530 | {OP_ZR, USEM_REG_PASSIVE_BUFFER, 0x800}, | ||
531 | {OP_WR, USEM_REG_FAST_MEMORY + 0x18bc0, 0x1}, | ||
532 | {OP_WR, USEM_REG_FAST_MEMORY + 0x18000, 0x1a}, | ||
533 | {OP_WR, USEM_REG_FAST_MEMORY + 0x18040, 0x4e}, | ||
534 | {OP_WR, USEM_REG_FAST_MEMORY + 0x18080, 0x10}, | ||
535 | {OP_WR, USEM_REG_FAST_MEMORY + 0x180c0, 0x20}, | ||
536 | {OP_WR, USEM_REG_FAST_MEMORY + 0x18300, 0x7a120}, | ||
537 | {OP_WR, USEM_REG_FAST_MEMORY + 0x183c0, 0x1f4}, | ||
538 | {OP_WR, USEM_REG_FAST_MEMORY + 0x18380, 0x1dcd6500}, | ||
539 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x5000, 0x102}, | ||
540 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x1020, 0xc8}, | ||
541 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x1000, 0x2}, | ||
542 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x1e20, 0x40}, | ||
543 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3000, 0x400}, | ||
544 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x2400, 0x2}, | ||
545 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x2408, 0x2}, | ||
546 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x2410, 0x6}, | ||
547 | {OP_SW, USEM_REG_FAST_MEMORY + 0x2410 + 0x18, 0x21b2f}, | ||
548 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x4b68, 0x2}, | ||
549 | {OP_SW, USEM_REG_FAST_MEMORY + 0x4b68 + 0x8, 0x21b31}, | ||
550 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x4b10, 0x2}, | ||
551 | {OP_SW, USEM_REG_FAST_MEMORY + 0x2c30, 0x21b33}, | ||
552 | {OP_WR, USEM_REG_FAST_MEMORY + 0x10800, 0x1000000}, | ||
553 | {OP_SW, USEM_REG_FAST_MEMORY + 0x10c00, 0x101b35}, | ||
554 | {OP_WR, USEM_REG_FAST_MEMORY + 0x10800, 0x0}, | ||
555 | {OP_SW, USEM_REG_FAST_MEMORY + 0x10c40, 0x101b45}, | ||
556 | {OP_ZP, USEM_REG_INT_TABLE, 0xb41b55}, | ||
557 | {OP_ZP, USEM_REG_PRAM, 0x32d01b82}, | ||
558 | {OP_ZP, USEM_REG_PRAM + 0x8000, 0x32172836}, | ||
559 | {OP_ZP, USEM_REG_PRAM + 0x10000, 0x1a7a34bc}, | ||
560 | {OP_ZP, USEM_REG_PRAM + 0x18000, 0x5f3b5b}, | ||
561 | {OP_ZP, USEM_REG_PRAM + 0x20000, 0x5f3b73}, | ||
562 | {OP_ZP, USEM_REG_PRAM + 0x28000, 0x5f3b8b}, | ||
563 | {OP_ZP, USEM_REG_PRAM + 0x30000, 0x5f3ba3}, | ||
564 | {OP_ZP, USEM_REG_PRAM + 0x38000, 0x5f3bbb}, | ||
565 | #define USEM_COMMON_END 498 | ||
566 | #define USEM_PORT0_START 498 | ||
567 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x1400, 0xa0}, | ||
568 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x1900, 0xa}, | ||
569 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x1950, 0x2e}, | ||
570 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x1d00, 0x24}, | ||
571 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3000, 0x20}, | ||
572 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3100, 0x20}, | ||
573 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3200, 0x20}, | ||
574 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3300, 0x20}, | ||
575 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3400, 0x20}, | ||
576 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3500, 0x20}, | ||
577 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3600, 0x20}, | ||
578 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3700, 0x20}, | ||
579 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3800, 0x20}, | ||
580 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3900, 0x20}, | ||
581 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3a00, 0x20}, | ||
582 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3b00, 0x20}, | ||
583 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3c00, 0x20}, | ||
584 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3d00, 0x20}, | ||
585 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3e00, 0x20}, | ||
586 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3f00, 0x20}, | ||
587 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x2400, 0x2}, | ||
588 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x4b78, 0x52}, | ||
589 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x4e08, 0xc}, | ||
590 | #define USEM_PORT0_END 521 | ||
591 | #define USEM_PORT1_START 521 | ||
592 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x1680, 0xa0}, | ||
593 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x1928, 0xa}, | ||
594 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x1a08, 0x2e}, | ||
595 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x1d90, 0x24}, | ||
596 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3080, 0x20}, | ||
597 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3180, 0x20}, | ||
598 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3280, 0x20}, | ||
599 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3380, 0x20}, | ||
600 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3480, 0x20}, | ||
601 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3580, 0x20}, | ||
602 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3680, 0x20}, | ||
603 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3780, 0x20}, | ||
604 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3880, 0x20}, | ||
605 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3980, 0x20}, | ||
606 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3a80, 0x20}, | ||
607 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3b80, 0x20}, | ||
608 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3c80, 0x20}, | ||
609 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3d80, 0x20}, | ||
610 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3e80, 0x20}, | ||
611 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x3f80, 0x20}, | ||
612 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x2408, 0x2}, | ||
613 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x4cc0, 0x52}, | ||
614 | {OP_ZR, USEM_REG_FAST_MEMORY + 0x4e38, 0xc}, | ||
615 | #define USEM_PORT1_END 544 | ||
616 | #define CSEM_COMMON_START 544 | ||
617 | {OP_RD, CSEM_REG_MSG_NUM_FIC0, 0x0}, | ||
618 | {OP_RD, CSEM_REG_MSG_NUM_FIC1, 0x0}, | ||
619 | {OP_RD, CSEM_REG_MSG_NUM_FOC0, 0x0}, | ||
620 | {OP_RD, CSEM_REG_MSG_NUM_FOC1, 0x0}, | ||
621 | {OP_RD, CSEM_REG_MSG_NUM_FOC2, 0x0}, | ||
622 | {OP_RD, CSEM_REG_MSG_NUM_FOC3, 0x0}, | ||
623 | {OP_WR, CSEM_REG_ARB_ELEMENT0, 0x1}, | ||
624 | {OP_WR, CSEM_REG_ARB_ELEMENT1, 0x2}, | ||
625 | {OP_WR, CSEM_REG_ARB_ELEMENT2, 0x3}, | ||
626 | {OP_WR, CSEM_REG_ARB_ELEMENT3, 0x0}, | ||
627 | {OP_WR, CSEM_REG_ARB_ELEMENT4, 0x4}, | ||
628 | {OP_WR, CSEM_REG_ARB_CYCLE_SIZE, 0x1}, | ||
629 | {OP_WR, CSEM_REG_TS_0_AS, 0x0}, | ||
630 | {OP_WR, CSEM_REG_TS_1_AS, 0x1}, | ||
631 | {OP_WR, CSEM_REG_TS_2_AS, 0x4}, | ||
632 | {OP_WR, CSEM_REG_TS_3_AS, 0x0}, | ||
633 | {OP_WR, CSEM_REG_TS_4_AS, 0x1}, | ||
634 | {OP_WR, CSEM_REG_TS_5_AS, 0x3}, | ||
635 | {OP_WR, CSEM_REG_TS_6_AS, 0x0}, | ||
636 | {OP_WR, CSEM_REG_TS_7_AS, 0x1}, | ||
637 | {OP_WR, CSEM_REG_TS_8_AS, 0x4}, | ||
638 | {OP_WR, CSEM_REG_TS_9_AS, 0x0}, | ||
639 | {OP_WR, CSEM_REG_TS_10_AS, 0x1}, | ||
640 | {OP_WR, CSEM_REG_TS_11_AS, 0x3}, | ||
641 | {OP_WR, CSEM_REG_TS_12_AS, 0x0}, | ||
642 | {OP_WR, CSEM_REG_TS_13_AS, 0x1}, | ||
643 | {OP_WR, CSEM_REG_TS_14_AS, 0x4}, | ||
644 | {OP_WR, CSEM_REG_TS_15_AS, 0x0}, | ||
645 | {OP_WR, CSEM_REG_TS_16_AS, 0x4}, | ||
646 | {OP_WR, CSEM_REG_TS_17_AS, 0x3}, | ||
647 | {OP_ZR, CSEM_REG_TS_18_AS, 0x2}, | ||
648 | {OP_WR, CSEM_REG_ENABLE_IN, 0x3fff}, | ||
649 | {OP_WR, CSEM_REG_ENABLE_OUT, 0x3ff}, | ||
650 | {OP_WR, CSEM_REG_FIC0_DISABLE, 0x0}, | ||
651 | {OP_WR, CSEM_REG_FIC1_DISABLE, 0x0}, | ||
652 | {OP_WR, CSEM_REG_PAS_DISABLE, 0x0}, | ||
653 | {OP_WR, CSEM_REG_THREADS_LIST, 0xffff}, | ||
654 | {OP_ZR, CSEM_REG_PASSIVE_BUFFER, 0x800}, | ||
655 | {OP_WR, CSEM_REG_FAST_MEMORY + 0x18bc0, 0x1}, | ||
656 | {OP_WR, CSEM_REG_FAST_MEMORY + 0x18000, 0x10}, | ||
657 | {OP_WR, CSEM_REG_FAST_MEMORY + 0x18040, 0x12}, | ||
658 | {OP_WR, CSEM_REG_FAST_MEMORY + 0x18080, 0x30}, | ||
659 | {OP_WR, CSEM_REG_FAST_MEMORY + 0x180c0, 0xe}, | ||
660 | {OP_WR, CSEM_REG_FAST_MEMORY + 0x183c0, 0x1f4}, | ||
661 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x5000, 0x42}, | ||
662 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x1020, 0xc8}, | ||
663 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x1000, 0x2}, | ||
664 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x2000, 0xc0}, | ||
665 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x3070, 0x80}, | ||
666 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x4280, 0x4}, | ||
667 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x25c0, 0x240}, | ||
668 | {OP_SW, CSEM_REG_FAST_MEMORY + 0x25c0 + 0x900, 0x83bd3}, | ||
669 | {OP_WR, CSEM_REG_FAST_MEMORY + 0x10800, 0x13fffff}, | ||
670 | {OP_SW, CSEM_REG_FAST_MEMORY + 0x10c00, 0x103bdb}, | ||
671 | {OP_WR, CSEM_REG_FAST_MEMORY + 0x10800, 0x0}, | ||
672 | {OP_SW, CSEM_REG_FAST_MEMORY + 0x10c40, 0x103beb}, | ||
673 | {OP_ZP, CSEM_REG_INT_TABLE, 0x5f3bfb}, | ||
674 | {OP_ZP, CSEM_REG_PRAM, 0x32423c13}, | ||
675 | {OP_ZP, CSEM_REG_PRAM + 0x8000, 0xf2148a4}, | ||
676 | {OP_ZP, CSEM_REG_PRAM + 0x10000, 0x5f4c6d}, | ||
677 | {OP_ZP, CSEM_REG_PRAM + 0x18000, 0x5f4c85}, | ||
678 | {OP_ZP, CSEM_REG_PRAM + 0x20000, 0x5f4c9d}, | ||
679 | {OP_ZP, CSEM_REG_PRAM + 0x28000, 0x5f4cb5}, | ||
680 | {OP_ZP, CSEM_REG_PRAM + 0x30000, 0x5f4ccd}, | ||
681 | {OP_ZP, CSEM_REG_PRAM + 0x38000, 0x5f4ce5}, | ||
682 | #define CSEM_COMMON_END 609 | ||
683 | #define CSEM_PORT0_START 609 | ||
684 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x1400, 0xa0}, | ||
685 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x1900, 0x10}, | ||
686 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x1980, 0x30}, | ||
687 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x2300, 0x2}, | ||
688 | {OP_SW, CSEM_REG_FAST_MEMORY + 0x2300 + 0x8, 0x24cfd}, | ||
689 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x3040, 0x6}, | ||
690 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x2410, 0x30}, | ||
691 | #define CSEM_PORT0_END 616 | ||
692 | #define CSEM_PORT1_START 616 | ||
693 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x1680, 0xa0}, | ||
694 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x1940, 0x10}, | ||
695 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x1a40, 0x30}, | ||
696 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x2310, 0x2}, | ||
697 | {OP_SW, CSEM_REG_FAST_MEMORY + 0x2310 + 0x8, 0x24cff}, | ||
698 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x3058, 0x6}, | ||
699 | {OP_ZR, CSEM_REG_FAST_MEMORY + 0x24d0, 0x30}, | ||
700 | #define CSEM_PORT1_END 623 | ||
701 | #define XPB_COMMON_START 623 | ||
702 | {OP_WR, GRCBASE_XPB + PB_REG_CONTROL, 0x20}, | ||
703 | #define XPB_COMMON_END 624 | ||
704 | #define DQ_COMMON_START 624 | ||
705 | {OP_WR, DORQ_REG_MODE_ACT, 0x2}, | ||
706 | {OP_WR, DORQ_REG_NORM_CID_OFST, 0x3}, | ||
707 | {OP_WR, DORQ_REG_OUTST_REQ, 0x4}, | ||
708 | {OP_WR, DORQ_REG_DPM_CID_ADDR, 0x8}, | ||
709 | {OP_WR, DORQ_REG_RSP_INIT_CRD, 0x2}, | ||
710 | {OP_WR, DORQ_REG_NORM_CMHEAD_TX, 0x90}, | ||
711 | {OP_WR, DORQ_REG_CMHEAD_RX, 0x90}, | ||
712 | {OP_WR, DORQ_REG_SHRT_CMHEAD, 0x800090}, | ||
713 | {OP_WR, DORQ_REG_ERR_CMHEAD, 0x8140000}, | ||
714 | {OP_WR, DORQ_REG_AGG_CMD0, 0x8a}, | ||
715 | {OP_WR, DORQ_REG_AGG_CMD1, 0x80}, | ||
716 | {OP_WR, DORQ_REG_AGG_CMD2, 0x90}, | ||
717 | {OP_WR, DORQ_REG_AGG_CMD3, 0x80}, | ||
718 | {OP_WR, DORQ_REG_SHRT_ACT_CNT, 0x6}, | ||
719 | {OP_WR, DORQ_REG_DQ_FIFO_FULL_TH, 0x7d0}, | ||
720 | {OP_WR, DORQ_REG_DQ_FIFO_AFULL_TH, 0x76c}, | ||
721 | {OP_WR, DORQ_REG_REGN, 0x7c1004}, | ||
722 | {OP_WR, DORQ_REG_IF_EN, 0xf}, | ||
723 | #define DQ_COMMON_END 642 | ||
724 | #define TIMERS_COMMON_START 642 | ||
725 | {OP_ZR, TM_REG_CLIN_PRIOR0_CLIENT, 0x2}, | ||
726 | {OP_WR, TM_REG_LIN_SETCLR_FIFO_ALFULL_THR, 0x1c}, | ||
727 | {OP_WR, TM_REG_CFC_AC_CRDCNT_VAL, 0x1}, | ||
728 | {OP_WR, TM_REG_CFC_CLD_CRDCNT_VAL, 0x1}, | ||
729 | {OP_WR, TM_REG_CLOUT_CRDCNT0_VAL, 0x1}, | ||
730 | {OP_WR, TM_REG_CLOUT_CRDCNT1_VAL, 0x1}, | ||
731 | {OP_WR, TM_REG_CLOUT_CRDCNT2_VAL, 0x1}, | ||
732 | {OP_WR, TM_REG_EXP_CRDCNT_VAL, 0x1}, | ||
733 | {OP_WR, TM_REG_PCIARB_CRDCNT_VAL, 0x2}, | ||
734 | {OP_WR, TM_REG_TIMER_TICK_SIZE, 0x3d090}, | ||
735 | {OP_WR, TM_REG_CL0_CONT_REGION, 0x8}, | ||
736 | {OP_WR, TM_REG_CL1_CONT_REGION, 0xc}, | ||
737 | {OP_WR, TM_REG_CL2_CONT_REGION, 0x10}, | ||
738 | {OP_WR, TM_REG_TM_CONTEXT_REGION, 0x20}, | ||
739 | {OP_WR, TM_REG_EN_TIMERS, 0x1}, | ||
740 | {OP_WR, TM_REG_EN_REAL_TIME_CNT, 0x1}, | ||
741 | {OP_WR, TM_REG_EN_CL0_INPUT, 0x1}, | ||
742 | {OP_WR, TM_REG_EN_CL1_INPUT, 0x1}, | ||
743 | {OP_WR, TM_REG_EN_CL2_INPUT, 0x1}, | ||
744 | #define TIMERS_COMMON_END 661 | ||
745 | #define TIMERS_PORT0_START 661 | ||
746 | {OP_ZR, TM_REG_LIN0_PHY_ADDR, 0x2}, | ||
747 | #define TIMERS_PORT0_END 662 | ||
748 | #define TIMERS_PORT1_START 662 | ||
749 | {OP_ZR, TM_REG_LIN1_PHY_ADDR, 0x2}, | ||
750 | #define TIMERS_PORT1_END 663 | ||
751 | #define XSDM_COMMON_START 663 | ||
752 | {OP_WR, XSDM_REG_CFC_RSP_START_ADDR, 0xa14}, | ||
753 | {OP_WR, XSDM_REG_CMP_COUNTER_START_ADDR, 0xa00}, | ||
754 | {OP_WR, XSDM_REG_Q_COUNTER_START_ADDR, 0xa04}, | ||
755 | {OP_WR, XSDM_REG_CMP_COUNTER_MAX0, 0xffff}, | ||
756 | {OP_WR, XSDM_REG_CMP_COUNTER_MAX1, 0xffff}, | ||
757 | {OP_WR, XSDM_REG_CMP_COUNTER_MAX2, 0xffff}, | ||
758 | {OP_WR, XSDM_REG_CMP_COUNTER_MAX3, 0xffff}, | ||
759 | {OP_WR, XSDM_REG_AGG_INT_EVENT_0, 0x20}, | ||
760 | {OP_WR, XSDM_REG_AGG_INT_EVENT_1, 0x20}, | ||
761 | {OP_ZR, XSDM_REG_AGG_INT_EVENT_2, 0x5e}, | ||
762 | {OP_WR, XSDM_REG_AGG_INT_MODE_0, 0x1}, | ||
763 | {OP_ZR, XSDM_REG_AGG_INT_MODE_1, 0x1f}, | ||
764 | {OP_WR, XSDM_REG_ENABLE_IN1, 0x7ffffff}, | ||
765 | {OP_WR, XSDM_REG_ENABLE_IN2, 0x3f}, | ||
766 | {OP_WR, XSDM_REG_ENABLE_OUT1, 0x7ffffff}, | ||
767 | {OP_WR, XSDM_REG_ENABLE_OUT2, 0xf}, | ||
768 | {OP_RD, XSDM_REG_NUM_OF_Q0_CMD, 0x0}, | ||
769 | {OP_RD, XSDM_REG_NUM_OF_Q1_CMD, 0x0}, | ||
770 | {OP_RD, XSDM_REG_NUM_OF_Q3_CMD, 0x0}, | ||
771 | {OP_RD, XSDM_REG_NUM_OF_Q4_CMD, 0x0}, | ||
772 | {OP_RD, XSDM_REG_NUM_OF_Q5_CMD, 0x0}, | ||
773 | {OP_RD, XSDM_REG_NUM_OF_Q6_CMD, 0x0}, | ||
774 | {OP_RD, XSDM_REG_NUM_OF_Q7_CMD, 0x0}, | ||
775 | {OP_RD, XSDM_REG_NUM_OF_Q8_CMD, 0x0}, | ||
776 | {OP_RD, XSDM_REG_NUM_OF_Q9_CMD, 0x0}, | ||
777 | {OP_RD, XSDM_REG_NUM_OF_Q10_CMD, 0x0}, | ||
778 | {OP_RD, XSDM_REG_NUM_OF_Q11_CMD, 0x0}, | ||
779 | {OP_RD, XSDM_REG_NUM_OF_PKT_END_MSG, 0x0}, | ||
780 | {OP_RD, XSDM_REG_NUM_OF_PXP_ASYNC_REQ, 0x0}, | ||
781 | {OP_RD, XSDM_REG_NUM_OF_ACK_AFTER_PLACE, 0x0}, | ||
782 | {OP_WR, XSDM_REG_TIMER_TICK, 0x3e8}, | ||
783 | #define XSDM_COMMON_END 694 | ||
784 | #define QM_COMMON_START 694 | ||
785 | {OP_WR, QM_REG_ACTCTRINITVAL_0, 0x6}, | ||
786 | {OP_WR, QM_REG_ACTCTRINITVAL_1, 0x5}, | ||
787 | {OP_WR, QM_REG_ACTCTRINITVAL_2, 0xa}, | ||
788 | {OP_WR, QM_REG_ACTCTRINITVAL_3, 0x5}, | ||
789 | {OP_WR, QM_REG_PCIREQAT, 0x2}, | ||
790 | {OP_WR, QM_REG_CMINITCRD_0, 0x4}, | ||
791 | {OP_WR, QM_REG_CMINITCRD_1, 0x4}, | ||
792 | {OP_WR, QM_REG_CMINITCRD_2, 0x4}, | ||
793 | {OP_WR, QM_REG_CMINITCRD_3, 0x4}, | ||
794 | {OP_WR, QM_REG_CMINITCRD_4, 0x4}, | ||
795 | {OP_WR, QM_REG_CMINITCRD_5, 0x4}, | ||
796 | {OP_WR, QM_REG_CMINITCRD_6, 0x4}, | ||
797 | {OP_WR, QM_REG_CMINITCRD_7, 0x4}, | ||
798 | {OP_WR, QM_REG_OUTLDREQ, 0x4}, | ||
799 | {OP_WR, QM_REG_CTXREG_0, 0x7c}, | ||
800 | {OP_WR, QM_REG_CTXREG_1, 0x3d}, | ||
801 | {OP_WR, QM_REG_CTXREG_2, 0x3f}, | ||
802 | {OP_WR, QM_REG_CTXREG_3, 0x9c}, | ||
803 | {OP_WR, QM_REG_ENSEC, 0x7}, | ||
804 | {OP_ZR, QM_REG_QVOQIDX_0, 0x5}, | ||
805 | {OP_WR, QM_REG_WRRWEIGHTS_0, 0x1010101}, | ||
806 | {OP_WR, QM_REG_QVOQIDX_5, 0x0}, | ||
807 | {OP_WR, QM_REG_QVOQIDX_6, 0x4}, | ||
808 | {OP_WR, QM_REG_QVOQIDX_7, 0x4}, | ||
809 | {OP_WR, QM_REG_QVOQIDX_8, 0x2}, | ||
810 | {OP_WR, QM_REG_WRRWEIGHTS_1, 0x8012004}, | ||
811 | {OP_WR, QM_REG_QVOQIDX_9, 0x5}, | ||
812 | {OP_WR, QM_REG_QVOQIDX_10, 0x5}, | ||
813 | {OP_WR, QM_REG_QVOQIDX_11, 0x5}, | ||
814 | {OP_WR, QM_REG_QVOQIDX_12, 0x5}, | ||
815 | {OP_WR, QM_REG_WRRWEIGHTS_2, 0x20081001}, | ||
816 | {OP_WR, QM_REG_QVOQIDX_13, 0x8}, | ||
817 | {OP_WR, QM_REG_QVOQIDX_14, 0x6}, | ||
818 | {OP_WR, QM_REG_QVOQIDX_15, 0x7}, | ||
819 | {OP_WR, QM_REG_QVOQIDX_16, 0x0}, | ||
820 | {OP_WR, QM_REG_WRRWEIGHTS_3, 0x1010120}, | ||
821 | {OP_ZR, QM_REG_QVOQIDX_17, 0x4}, | ||
822 | {OP_WR, QM_REG_WRRWEIGHTS_4, 0x1010101}, | ||
823 | {OP_ZR, QM_REG_QVOQIDX_21, 0x4}, | ||
824 | {OP_WR, QM_REG_WRRWEIGHTS_5, 0x1010101}, | ||
825 | {OP_ZR, QM_REG_QVOQIDX_25, 0x4}, | ||
826 | {OP_WR, QM_REG_WRRWEIGHTS_6, 0x1010101}, | ||
827 | {OP_ZR, QM_REG_QVOQIDX_29, 0x3}, | ||
828 | {OP_WR, QM_REG_QVOQIDX_32, 0x1}, | ||
829 | {OP_WR, QM_REG_WRRWEIGHTS_7, 0x1010101}, | ||
830 | {OP_WR, QM_REG_QVOQIDX_33, 0x1}, | ||
831 | {OP_WR, QM_REG_QVOQIDX_34, 0x1}, | ||
832 | {OP_WR, QM_REG_QVOQIDX_35, 0x1}, | ||
833 | {OP_WR, QM_REG_QVOQIDX_36, 0x1}, | ||
834 | {OP_WR, QM_REG_WRRWEIGHTS_8, 0x1010101}, | ||
835 | {OP_WR, QM_REG_QVOQIDX_37, 0x1}, | ||
836 | {OP_WR, QM_REG_QVOQIDX_38, 0x4}, | ||
837 | {OP_WR, QM_REG_QVOQIDX_39, 0x4}, | ||
838 | {OP_WR, QM_REG_QVOQIDX_40, 0x2}, | ||
839 | {OP_WR, QM_REG_WRRWEIGHTS_9, 0x8012004}, | ||
840 | {OP_WR, QM_REG_QVOQIDX_41, 0x5}, | ||
841 | {OP_WR, QM_REG_QVOQIDX_42, 0x5}, | ||
842 | {OP_WR, QM_REG_QVOQIDX_43, 0x5}, | ||
843 | {OP_WR, QM_REG_QVOQIDX_44, 0x5}, | ||
844 | {OP_WR, QM_REG_WRRWEIGHTS_10, 0x20081001}, | ||
845 | {OP_WR, QM_REG_QVOQIDX_45, 0x8}, | ||
846 | {OP_WR, QM_REG_QVOQIDX_46, 0x6}, | ||
847 | {OP_WR, QM_REG_QVOQIDX_47, 0x7}, | ||
848 | {OP_WR, QM_REG_QVOQIDX_48, 0x1}, | ||
849 | {OP_WR, QM_REG_WRRWEIGHTS_11, 0x1010120}, | ||
850 | {OP_WR, QM_REG_QVOQIDX_49, 0x1}, | ||
851 | {OP_WR, QM_REG_QVOQIDX_50, 0x1}, | ||
852 | {OP_WR, QM_REG_QVOQIDX_51, 0x1}, | ||
853 | {OP_WR, QM_REG_QVOQIDX_52, 0x1}, | ||
854 | {OP_WR, QM_REG_WRRWEIGHTS_12, 0x1010101}, | ||
855 | {OP_WR, QM_REG_QVOQIDX_53, 0x1}, | ||
856 | {OP_WR, QM_REG_QVOQIDX_54, 0x1}, | ||
857 | {OP_WR, QM_REG_QVOQIDX_55, 0x1}, | ||
858 | {OP_WR, QM_REG_QVOQIDX_56, 0x1}, | ||
859 | {OP_WR, QM_REG_WRRWEIGHTS_13, 0x1010101}, | ||
860 | {OP_WR, QM_REG_QVOQIDX_57, 0x1}, | ||
861 | {OP_WR, QM_REG_QVOQIDX_58, 0x1}, | ||
862 | {OP_WR, QM_REG_QVOQIDX_59, 0x1}, | ||
863 | {OP_WR, QM_REG_QVOQIDX_60, 0x1}, | ||
864 | {OP_WR, QM_REG_WRRWEIGHTS_14, 0x1010101}, | ||
865 | {OP_WR, QM_REG_QVOQIDX_61, 0x1}, | ||
866 | {OP_WR, QM_REG_QVOQIDX_62, 0x1}, | ||
867 | {OP_WR, QM_REG_QVOQIDX_63, 0x1}, | ||
868 | {OP_WR, QM_REG_WRRWEIGHTS_15, 0x1010101}, | ||
869 | {OP_WR, QM_REG_VOQQMASK_0_LSB, 0xffff003f}, | ||
870 | {OP_ZR, QM_REG_VOQQMASK_0_MSB, 0x2}, | ||
871 | {OP_WR, QM_REG_VOQQMASK_1_MSB, 0xffff003f}, | ||
872 | {OP_WR, QM_REG_VOQQMASK_2_LSB, 0x100}, | ||
873 | {OP_WR, QM_REG_VOQQMASK_2_MSB, 0x100}, | ||
874 | {OP_ZR, QM_REG_VOQQMASK_3_LSB, 0x2}, | ||
875 | {OP_WR, QM_REG_VOQQMASK_4_LSB, 0xc0}, | ||
876 | {OP_WR, QM_REG_VOQQMASK_4_MSB, 0xc0}, | ||
877 | {OP_WR, QM_REG_VOQQMASK_5_LSB, 0x1e00}, | ||
878 | {OP_WR, QM_REG_VOQQMASK_5_MSB, 0x1e00}, | ||
879 | {OP_WR, QM_REG_VOQQMASK_6_LSB, 0x4000}, | ||
880 | {OP_WR, QM_REG_VOQQMASK_6_MSB, 0x4000}, | ||
881 | {OP_WR, QM_REG_VOQQMASK_7_LSB, 0x8000}, | ||
882 | {OP_WR, QM_REG_VOQQMASK_7_MSB, 0x8000}, | ||
883 | {OP_WR, QM_REG_VOQQMASK_8_LSB, 0x2000}, | ||
884 | {OP_WR, QM_REG_VOQQMASK_8_MSB, 0x2000}, | ||
885 | {OP_ZR, QM_REG_VOQQMASK_9_LSB, 0x7}, | ||
886 | {OP_WR, QM_REG_VOQPORT_1, 0x1}, | ||
887 | {OP_ZR, QM_REG_VOQPORT_2, 0xa}, | ||
888 | {OP_WR, QM_REG_CMINTVOQMASK_0, 0xc08}, | ||
889 | {OP_WR, QM_REG_CMINTVOQMASK_1, 0x40}, | ||
890 | {OP_WR, QM_REG_CMINTVOQMASK_2, 0x100}, | ||
891 | {OP_WR, QM_REG_CMINTVOQMASK_3, 0x20}, | ||
892 | {OP_WR, QM_REG_CMINTVOQMASK_4, 0x17}, | ||
893 | {OP_WR, QM_REG_CMINTVOQMASK_5, 0x80}, | ||
894 | {OP_WR, QM_REG_CMINTVOQMASK_6, 0x200}, | ||
895 | {OP_WR, QM_REG_CMINTVOQMASK_7, 0x0}, | ||
896 | {OP_WR, QM_REG_HWAEMPTYMASK_LSB, 0xffff01ff}, | ||
897 | {OP_WR, QM_REG_HWAEMPTYMASK_MSB, 0xffff01ff}, | ||
898 | {OP_WR, QM_REG_ENBYPVOQMASK, 0x13}, | ||
899 | {OP_WR, QM_REG_VOQCREDITAFULLTHR, 0x13f}, | ||
900 | {OP_WR, QM_REG_VOQINITCREDIT_0, 0x140}, | ||
901 | {OP_WR, QM_REG_VOQINITCREDIT_1, 0x140}, | ||
902 | {OP_ZR, QM_REG_VOQINITCREDIT_2, 0x2}, | ||
903 | {OP_WR, QM_REG_VOQINITCREDIT_4, 0xc0}, | ||
904 | {OP_ZR, QM_REG_VOQINITCREDIT_5, 0x7}, | ||
905 | {OP_WR, QM_REG_TASKCRDCOST_0, 0x48}, | ||
906 | {OP_WR, QM_REG_TASKCRDCOST_1, 0x48}, | ||
907 | {OP_ZR, QM_REG_TASKCRDCOST_2, 0x2}, | ||
908 | {OP_WR, QM_REG_TASKCRDCOST_4, 0x48}, | ||
909 | {OP_ZR, QM_REG_TASKCRDCOST_5, 0x7}, | ||
910 | {OP_WR, QM_REG_BYTECRDINITVAL, 0x8000}, | ||
911 | {OP_WR, QM_REG_BYTECRDCOST, 0x25e4}, | ||
912 | {OP_WR, QM_REG_BYTECREDITAFULLTHR, 0x7fff}, | ||
913 | {OP_WR, QM_REG_ENBYTECRD_LSB, 0x7}, | ||
914 | {OP_WR, QM_REG_ENBYTECRD_MSB, 0x7}, | ||
915 | {OP_WR, QM_REG_BYTECRDPORT_LSB, 0x0}, | ||
916 | {OP_WR, QM_REG_BYTECRDPORT_MSB, 0xffffffff}, | ||
917 | {OP_WR, QM_REG_FUNCNUMSEL_LSB, 0x0}, | ||
918 | {OP_WR, QM_REG_FUNCNUMSEL_MSB, 0xffffffff}, | ||
919 | {OP_WR, QM_REG_CMINTEN, 0xff}, | ||
920 | #define QM_COMMON_END 829 | ||
921 | #define PBF_COMMON_START 829 | ||
922 | {OP_WR, PBF_REG_INIT, 0x1}, | ||
923 | {OP_WR, PBF_REG_INIT_P4, 0x1}, | ||
924 | {OP_WR, PBF_REG_MAC_LB_ENABLE, 0x1}, | ||
925 | {OP_WR, PBF_REG_IF_ENABLE_REG, 0x7fff}, | ||
926 | {OP_WR, PBF_REG_INIT_P4, 0x0}, | ||
927 | {OP_WR, PBF_REG_INIT, 0x0}, | ||
928 | {OP_WR, PBF_REG_DISABLE_NEW_TASK_PROC_P4, 0x0}, | ||
929 | #define PBF_COMMON_END 836 | ||
930 | #define PBF_PORT0_START 836 | ||
931 | {OP_WR, PBF_REG_INIT_P0, 0x1}, | ||
932 | {OP_WR, PBF_REG_MAC_IF0_ENABLE, 0x1}, | ||
933 | {OP_WR, PBF_REG_INIT_P0, 0x0}, | ||
934 | {OP_WR, PBF_REG_DISABLE_NEW_TASK_PROC_P0, 0x0}, | ||
935 | #define PBF_PORT0_END 840 | ||
936 | #define PBF_PORT1_START 840 | ||
937 | {OP_WR, PBF_REG_INIT_P1, 0x1}, | ||
938 | {OP_WR, PBF_REG_MAC_IF1_ENABLE, 0x1}, | ||
939 | {OP_WR, PBF_REG_INIT_P1, 0x0}, | ||
940 | {OP_WR, PBF_REG_DISABLE_NEW_TASK_PROC_P1, 0x0}, | ||
941 | #define PBF_PORT1_END 844 | ||
942 | #define XCM_COMMON_START 844 | ||
943 | {OP_WR, XCM_REG_XX_OVFL_EVNT_ID, 0x32}, | ||
944 | {OP_WR, XCM_REG_XQM_XCM_HDR_P, 0x3150020}, | ||
945 | {OP_WR, XCM_REG_XQM_XCM_HDR_S, 0x3150020}, | ||
946 | {OP_WR, XCM_REG_TM_XCM_HDR, 0x1000030}, | ||
947 | {OP_WR, XCM_REG_ERR_XCM_HDR, 0x8100000}, | ||
948 | {OP_WR, XCM_REG_ERR_EVNT_ID, 0x33}, | ||
949 | {OP_WR, XCM_REG_EXPR_EVNT_ID, 0x30}, | ||
950 | {OP_WR, XCM_REG_STOP_EVNT_ID, 0x31}, | ||
951 | {OP_WR, XCM_REG_STORM_WEIGHT, 0x2}, | ||
952 | {OP_WR, XCM_REG_TSEM_WEIGHT, 0x5}, | ||
953 | {OP_WR, XCM_REG_CSEM_WEIGHT, 0x2}, | ||
954 | {OP_WR, XCM_REG_USEM_WEIGHT, 0x2}, | ||
955 | {OP_WR, XCM_REG_PBF_WEIGHT, 0x7}, | ||
956 | {OP_WR, XCM_REG_NIG1_WEIGHT, 0x1}, | ||
957 | {OP_WR, XCM_REG_CP_WEIGHT, 0x0}, | ||
958 | {OP_WR, XCM_REG_XSDM_WEIGHT, 0x5}, | ||
959 | {OP_WR, XCM_REG_XQM_P_WEIGHT, 0x3}, | ||
960 | {OP_WR, XCM_REG_XCM_XQM_USE_Q, 0x1}, | ||
961 | {OP_WR, XCM_REG_XQM_BYP_ACT_UPD, 0x6}, | ||
962 | {OP_WR, XCM_REG_UNA_GT_NXT_Q, 0x0}, | ||
963 | {OP_WR, XCM_REG_AUX1_Q, 0x2}, | ||
964 | {OP_WR, XCM_REG_AUX_CNT_FLG_Q_19, 0x1}, | ||
965 | {OP_WR, XCM_REG_GR_ARB_TYPE, 0x1}, | ||
966 | {OP_WR, XCM_REG_GR_LD0_PR, 0x1}, | ||
967 | {OP_WR, XCM_REG_GR_LD1_PR, 0x2}, | ||
968 | {OP_WR, XCM_REG_CFC_INIT_CRD, 0x1}, | ||
969 | {OP_WR, XCM_REG_FIC0_INIT_CRD, 0x40}, | ||
970 | {OP_WR, XCM_REG_FIC1_INIT_CRD, 0x40}, | ||
971 | {OP_WR, XCM_REG_TM_INIT_CRD, 0x4}, | ||
972 | {OP_WR, XCM_REG_XQM_INIT_CRD, 0x20}, | ||
973 | {OP_WR, XCM_REG_XX_INIT_CRD, 0x2}, | ||
974 | {OP_WR, XCM_REG_XX_MSG_NUM, 0x1f}, | ||
975 | {OP_ZR, XCM_REG_XX_TABLE, 0x12}, | ||
976 | {OP_SW, XCM_REG_XX_DESCR_TABLE, 0x1f4d01}, | ||
977 | {OP_WR, XCM_REG_N_SM_CTX_LD_0, 0xf}, | ||
978 | {OP_WR, XCM_REG_N_SM_CTX_LD_1, 0x7}, | ||
979 | {OP_WR, XCM_REG_N_SM_CTX_LD_2, 0xb}, | ||
980 | {OP_WR, XCM_REG_N_SM_CTX_LD_3, 0xe}, | ||
981 | {OP_ZR, XCM_REG_N_SM_CTX_LD_4, 0x4}, | ||
982 | {OP_WR, XCM_REG_XCM_REG0_SZ, 0x4}, | ||
983 | {OP_WR, XCM_REG_XCM_STORM0_IFEN, 0x1}, | ||
984 | {OP_WR, XCM_REG_XCM_STORM1_IFEN, 0x1}, | ||
985 | {OP_WR, XCM_REG_XCM_XQM_IFEN, 0x1}, | ||
986 | {OP_WR, XCM_REG_STORM_XCM_IFEN, 0x1}, | ||
987 | {OP_WR, XCM_REG_XQM_XCM_IFEN, 0x1}, | ||
988 | {OP_WR, XCM_REG_XSDM_IFEN, 0x1}, | ||
989 | {OP_WR, XCM_REG_TM_XCM_IFEN, 0x1}, | ||
990 | {OP_WR, XCM_REG_XCM_TM_IFEN, 0x1}, | ||
991 | {OP_WR, XCM_REG_TSEM_IFEN, 0x1}, | ||
992 | {OP_WR, XCM_REG_CSEM_IFEN, 0x1}, | ||
993 | {OP_WR, XCM_REG_USEM_IFEN, 0x1}, | ||
994 | {OP_WR, XCM_REG_DORQ_IFEN, 0x1}, | ||
995 | {OP_WR, XCM_REG_PBF_IFEN, 0x1}, | ||
996 | {OP_WR, XCM_REG_NIG0_IFEN, 0x1}, | ||
997 | {OP_WR, XCM_REG_NIG1_IFEN, 0x1}, | ||
998 | {OP_WR, XCM_REG_CDU_AG_WR_IFEN, 0x1}, | ||
999 | {OP_WR, XCM_REG_CDU_AG_RD_IFEN, 0x1}, | ||
1000 | {OP_WR, XCM_REG_CDU_SM_WR_IFEN, 0x1}, | ||
1001 | {OP_WR, XCM_REG_CDU_SM_RD_IFEN, 0x1}, | ||
1002 | {OP_WR, XCM_REG_XCM_CFC_IFEN, 0x1}, | ||
1003 | #define XCM_COMMON_END 904 | ||
1004 | #define XCM_PORT0_START 904 | ||
1005 | {OP_WR, XCM_REG_GLB_DEL_ACK_TMR_VAL_0, 0xc8}, | ||
1006 | {OP_WR, XCM_REG_GLB_DEL_ACK_MAX_CNT_0, 0x2}, | ||
1007 | {OP_WR, XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD00, 0x0}, | ||
1008 | {OP_WR, XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD10, 0x0}, | ||
1009 | {OP_WR, XCM_REG_WU_DA_CNT_CMD00, 0x2}, | ||
1010 | {OP_WR, XCM_REG_WU_DA_CNT_CMD10, 0x2}, | ||
1011 | {OP_WR, XCM_REG_WU_DA_CNT_UPD_VAL00, 0xff}, | ||
1012 | {OP_WR, XCM_REG_WU_DA_CNT_UPD_VAL10, 0xff}, | ||
1013 | #define XCM_PORT0_END 912 | ||
1014 | #define XCM_PORT1_START 912 | ||
1015 | {OP_WR, XCM_REG_GLB_DEL_ACK_TMR_VAL_1, 0xc8}, | ||
1016 | {OP_WR, XCM_REG_GLB_DEL_ACK_MAX_CNT_1, 0x2}, | ||
1017 | {OP_WR, XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD01, 0x0}, | ||
1018 | {OP_WR, XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD11, 0x0}, | ||
1019 | {OP_WR, XCM_REG_WU_DA_CNT_CMD01, 0x2}, | ||
1020 | {OP_WR, XCM_REG_WU_DA_CNT_CMD11, 0x2}, | ||
1021 | {OP_WR, XCM_REG_WU_DA_CNT_UPD_VAL01, 0xff}, | ||
1022 | {OP_WR, XCM_REG_WU_DA_CNT_UPD_VAL11, 0xff}, | ||
1023 | #define XCM_PORT1_END 920 | ||
1024 | #define XSEM_COMMON_START 920 | ||
1025 | {OP_RD, XSEM_REG_MSG_NUM_FIC0, 0x0}, | ||
1026 | {OP_RD, XSEM_REG_MSG_NUM_FIC1, 0x0}, | ||
1027 | {OP_RD, XSEM_REG_MSG_NUM_FOC0, 0x0}, | ||
1028 | {OP_RD, XSEM_REG_MSG_NUM_FOC1, 0x0}, | ||
1029 | {OP_RD, XSEM_REG_MSG_NUM_FOC2, 0x0}, | ||
1030 | {OP_RD, XSEM_REG_MSG_NUM_FOC3, 0x0}, | ||
1031 | {OP_WR, XSEM_REG_ARB_ELEMENT0, 0x1}, | ||
1032 | {OP_WR, XSEM_REG_ARB_ELEMENT1, 0x2}, | ||
1033 | {OP_WR, XSEM_REG_ARB_ELEMENT2, 0x3}, | ||
1034 | {OP_WR, XSEM_REG_ARB_ELEMENT3, 0x0}, | ||
1035 | {OP_WR, XSEM_REG_ARB_ELEMENT4, 0x4}, | ||
1036 | {OP_WR, XSEM_REG_ARB_CYCLE_SIZE, 0x1}, | ||
1037 | {OP_WR, XSEM_REG_TS_0_AS, 0x0}, | ||
1038 | {OP_WR, XSEM_REG_TS_1_AS, 0x1}, | ||
1039 | {OP_WR, XSEM_REG_TS_2_AS, 0x4}, | ||
1040 | {OP_WR, XSEM_REG_TS_3_AS, 0x0}, | ||
1041 | {OP_WR, XSEM_REG_TS_4_AS, 0x1}, | ||
1042 | {OP_WR, XSEM_REG_TS_5_AS, 0x3}, | ||
1043 | {OP_WR, XSEM_REG_TS_6_AS, 0x0}, | ||
1044 | {OP_WR, XSEM_REG_TS_7_AS, 0x1}, | ||
1045 | {OP_WR, XSEM_REG_TS_8_AS, 0x4}, | ||
1046 | {OP_WR, XSEM_REG_TS_9_AS, 0x0}, | ||
1047 | {OP_WR, XSEM_REG_TS_10_AS, 0x1}, | ||
1048 | {OP_WR, XSEM_REG_TS_11_AS, 0x3}, | ||
1049 | {OP_WR, XSEM_REG_TS_12_AS, 0x0}, | ||
1050 | {OP_WR, XSEM_REG_TS_13_AS, 0x1}, | ||
1051 | {OP_WR, XSEM_REG_TS_14_AS, 0x4}, | ||
1052 | {OP_WR, XSEM_REG_TS_15_AS, 0x0}, | ||
1053 | {OP_WR, XSEM_REG_TS_16_AS, 0x4}, | ||
1054 | {OP_WR, XSEM_REG_TS_17_AS, 0x3}, | ||
1055 | {OP_ZR, XSEM_REG_TS_18_AS, 0x2}, | ||
1056 | {OP_WR, XSEM_REG_ENABLE_IN, 0x3fff}, | ||
1057 | {OP_WR, XSEM_REG_ENABLE_OUT, 0x3ff}, | ||
1058 | {OP_WR, XSEM_REG_FIC0_DISABLE, 0x0}, | ||
1059 | {OP_WR, XSEM_REG_FIC1_DISABLE, 0x0}, | ||
1060 | {OP_WR, XSEM_REG_PAS_DISABLE, 0x0}, | ||
1061 | {OP_WR, XSEM_REG_THREADS_LIST, 0xffff}, | ||
1062 | {OP_ZR, XSEM_REG_PASSIVE_BUFFER, 0x800}, | ||
1063 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x18bc0, 0x1}, | ||
1064 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x18000, 0x0}, | ||
1065 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x18040, 0x18}, | ||
1066 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x18080, 0xc}, | ||
1067 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x180c0, 0x66}, | ||
1068 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x18300, 0x7a120}, | ||
1069 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x183c0, 0x1f4}, | ||
1070 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x18340, 0x1f4}, | ||
1071 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x18380, 0x1dcd6500}, | ||
1072 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x55d8, 0x2}, | ||
1073 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x5000, 0x48}, | ||
1074 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x1020, 0xc8}, | ||
1075 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x1000, 0x2}, | ||
1076 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x5128, 0x92}, | ||
1077 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x5378, 0x0}, | ||
1078 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x5380, 0x24d20}, | ||
1079 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x5428, 0x44d22}, | ||
1080 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x1518, 0x1}, | ||
1081 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x1830, 0x0}, | ||
1082 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x1838, 0x0}, | ||
1083 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x1820, 0x24d26}, | ||
1084 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x4ac0, 0x2}, | ||
1085 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x4ad8, 0x24d28}, | ||
1086 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x4b08, 0x4}, | ||
1087 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x1f50, 0x24d2a}, | ||
1088 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x10800, 0x0}, | ||
1089 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x10c00, 0x104d2c}, | ||
1090 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x10800, 0x1000000}, | ||
1091 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x10c40, 0x84d3c}, | ||
1092 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x10800, 0x2000000}, | ||
1093 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x10c60, 0x84d44}, | ||
1094 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x10800, 0x3000000}, | ||
1095 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x10c80, 0x84d4c}, | ||
1096 | {OP_ZP, XSEM_REG_INT_TABLE, 0x814d54}, | ||
1097 | {OP_ZP, XSEM_REG_PRAM, 0x35774d75}, | ||
1098 | {OP_ZP, XSEM_REG_PRAM + 0x8000, 0x36525ad3}, | ||
1099 | {OP_ZP, XSEM_REG_PRAM + 0x10000, 0x27266868}, | ||
1100 | {OP_ZP, XSEM_REG_PRAM + 0x18000, 0x5e7232}, | ||
1101 | {OP_ZP, XSEM_REG_PRAM + 0x20000, 0x5e724a}, | ||
1102 | {OP_ZP, XSEM_REG_PRAM + 0x28000, 0x5e7262}, | ||
1103 | {OP_ZP, XSEM_REG_PRAM + 0x30000, 0x5e727a}, | ||
1104 | {OP_ZP, XSEM_REG_PRAM + 0x38000, 0x5e7292}, | ||
1105 | #define XSEM_COMMON_END 1000 | ||
1106 | #define XSEM_PORT0_START 1000 | ||
1107 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x1400, 0xa}, | ||
1108 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x1450, 0x6}, | ||
1109 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x5388, 0xc}, | ||
1110 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x5388 + 0x30, 0x272aa}, | ||
1111 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x55e0, 0x772ac}, | ||
1112 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x5600, 0x7}, | ||
1113 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x1500, 0x0}, | ||
1114 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x1508, 0x1}, | ||
1115 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x3020, 0x2}, | ||
1116 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x3030, 0x2}, | ||
1117 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x3000, 0x2}, | ||
1118 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x3010, 0x2}, | ||
1119 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x3040, 0x0}, | ||
1120 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x3048, 0xc}, | ||
1121 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x3048 + 0x30, 0x272b3}, | ||
1122 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x30b8, 0x1}, | ||
1123 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x4ac8, 0x272b5}, | ||
1124 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x4b18, 0x42}, | ||
1125 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x4d28, 0x4}, | ||
1126 | #define XSEM_PORT0_END 1019 | ||
1127 | #define XSEM_PORT1_START 1019 | ||
1128 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x1428, 0xa}, | ||
1129 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x1468, 0x6}, | ||
1130 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x53c0, 0xc}, | ||
1131 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x53c0 + 0x30, 0x272b7}, | ||
1132 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x5620, 0x772b9}, | ||
1133 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x5640, 0x7}, | ||
1134 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x1504, 0x0}, | ||
1135 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x150c, 0x1}, | ||
1136 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x3028, 0x2}, | ||
1137 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x3038, 0x2}, | ||
1138 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x3008, 0x2}, | ||
1139 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x3018, 0x2}, | ||
1140 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x3044, 0x0}, | ||
1141 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x3080, 0xc}, | ||
1142 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x3080 + 0x30, 0x272c0}, | ||
1143 | {OP_WR, XSEM_REG_FAST_MEMORY + 0x30bc, 0x1}, | ||
1144 | {OP_SW, XSEM_REG_FAST_MEMORY + 0x4ad0, 0x272c2}, | ||
1145 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x4c20, 0x42}, | ||
1146 | {OP_ZR, XSEM_REG_FAST_MEMORY + 0x4d38, 0x4}, | ||
1147 | #define XSEM_PORT1_END 1038 | ||
1148 | #define CDU_COMMON_START 1038 | ||
1149 | {OP_WR, CDU_REG_CDU_CONTROL0, 0x1}, | ||
1150 | {OP_WR, CDU_REG_CDU_CHK_MASK0, 0x3d000}, | ||
1151 | {OP_WR, CDU_REG_CDU_CHK_MASK1, 0x3d}, | ||
1152 | {OP_WB, CDU_REG_L1TT, 0x20072c4}, | ||
1153 | {OP_WB, CDU_REG_MATT, 0x2074c4}, | ||
1154 | {OP_ZR, CDU_REG_MATT + 0x80, 0x20}, | ||
1155 | #define CDU_COMMON_END 1044 | ||
1156 | #define DMAE_COMMON_START 1044 | ||
1157 | {OP_WR, DMAE_REG_CRC16C_INIT, 0x0}, | ||
1158 | {OP_WR, DMAE_REG_CRC16T10_INIT, 0x1}, | ||
1159 | {OP_WR, DMAE_REG_PXP_REQ_INIT_CRD, 0x2}, | ||
1160 | {OP_WR, DMAE_REG_PCI_IFEN, 0x1}, | ||
1161 | {OP_WR, DMAE_REG_GRC_IFEN, 0x1}, | ||
1162 | #define DMAE_COMMON_END 1049 | ||
1163 | #define PXP_COMMON_START 1049 | ||
1164 | {OP_SI, PXP_REG_HST_INBOUND_INT + 0x400, 0x574e4}, | ||
1165 | {OP_SI, PXP_REG_HST_INBOUND_INT + 0x420, 0x574e9}, | ||
1166 | {OP_SI, PXP_REG_HST_INBOUND_INT, 0x574ee}, | ||
1167 | #define PXP_COMMON_END 1052 | ||
1168 | #define CFC_COMMON_START 1052 | ||
1169 | {OP_WR, CFC_REG_CONTROL0, 0x10}, | ||
1170 | {OP_WR, CFC_REG_DISABLE_ON_ERROR, 0x3fff}, | ||
1171 | {OP_WR, CFC_REG_LCREQ_WEIGHTS, 0x84924a}, | ||
1172 | #define CFC_COMMON_END 1055 | ||
1173 | #define HC_COMMON_START 1055 | ||
1174 | {OP_ZR, HC_REG_USTORM_ADDR_FOR_COALESCE, 0x4}, | ||
1175 | #define HC_COMMON_END 1056 | ||
1176 | #define HC_PORT0_START 1056 | ||
1177 | {OP_WR, HC_REG_CONFIG_0, 0x1080}, | ||
1178 | {OP_ZR, HC_REG_UC_RAM_ADDR_0, 0x2}, | ||
1179 | {OP_WR, HC_REG_ATTN_NUM_P0, 0x10}, | ||
1180 | {OP_WR, HC_REG_LEADING_EDGE_0, 0xffff}, | ||
1181 | {OP_WR, HC_REG_TRAILING_EDGE_0, 0xffff}, | ||
1182 | {OP_WR, HC_REG_AGG_INT_0, 0x0}, | ||
1183 | {OP_WR, HC_REG_ATTN_IDX, 0x0}, | ||
1184 | {OP_ZR, HC_REG_ATTN_BIT, 0x2}, | ||
1185 | {OP_WR, HC_REG_VQID_0, 0x2b5}, | ||
1186 | {OP_WR, HC_REG_PCI_CONFIG_0, 0x0}, | ||
1187 | {OP_ZR, HC_REG_P0_PROD_CONS, 0x4a}, | ||
1188 | {OP_ZR, HC_REG_PBA_COMMAND, 0x2}, | ||
1189 | {OP_WR, HC_REG_INT_MASK, 0x1ffff}, | ||
1190 | {OP_WR, HC_REG_CONFIG_0, 0x1a82}, | ||
1191 | {OP_ZR, HC_REG_STATISTIC_COUNTERS, 0x24}, | ||
1192 | {OP_ZR, HC_REG_STATISTIC_COUNTERS + 0x120, 0x4a}, | ||
1193 | {OP_ZR, HC_REG_STATISTIC_COUNTERS + 0x370, 0x4a}, | ||
1194 | {OP_ZR, HC_REG_STATISTIC_COUNTERS + 0x5c0, 0x4a}, | ||
1195 | #define HC_PORT0_END 1074 | ||
1196 | #define HC_PORT1_START 1074 | ||
1197 | {OP_WR, HC_REG_CONFIG_1, 0x1080}, | ||
1198 | {OP_ZR, HC_REG_UC_RAM_ADDR_1, 0x2}, | ||
1199 | {OP_WR, HC_REG_ATTN_NUM_P1, 0x10}, | ||
1200 | {OP_WR, HC_REG_LEADING_EDGE_1, 0xffff}, | ||
1201 | {OP_WR, HC_REG_TRAILING_EDGE_1, 0xffff}, | ||
1202 | {OP_WR, HC_REG_AGG_INT_1, 0x0}, | ||
1203 | {OP_WR, HC_REG_ATTN_IDX + 0x4, 0x0}, | ||
1204 | {OP_ZR, HC_REG_ATTN_BIT + 0x8, 0x2}, | ||
1205 | {OP_WR, HC_REG_VQID_1, 0x2b5}, | ||
1206 | {OP_WR, HC_REG_PCI_CONFIG_1, 0x0}, | ||
1207 | {OP_ZR, HC_REG_P1_PROD_CONS, 0x4a}, | ||
1208 | {OP_ZR, HC_REG_PBA_COMMAND + 0x8, 0x2}, | ||
1209 | {OP_WR, HC_REG_INT_MASK + 0x4, 0x1ffff}, | ||
1210 | {OP_WR, HC_REG_CONFIG_1, 0x1a82}, | ||
1211 | {OP_ZR, HC_REG_STATISTIC_COUNTERS + 0x90, 0x24}, | ||
1212 | {OP_ZR, HC_REG_STATISTIC_COUNTERS + 0x248, 0x4a}, | ||
1213 | {OP_ZR, HC_REG_STATISTIC_COUNTERS + 0x498, 0x4a}, | ||
1214 | {OP_ZR, HC_REG_STATISTIC_COUNTERS + 0x6e8, 0x4a}, | ||
1215 | #define HC_PORT1_END 1092 | ||
1216 | #define PXP2_COMMON_START 1092 | ||
1217 | {OP_WR, PXP2_REG_PGL_CONTROL0, 0xe38324}, | ||
1218 | {OP_WR, PXP2_REG_PGL_CONTROL1, 0x3c10}, | ||
1219 | {OP_WR, PXP2_REG_PGL_INT_TSDM_0, 0xffffffff}, | ||
1220 | {OP_WR, PXP2_REG_PGL_INT_TSDM_1, 0xffffffff}, | ||
1221 | {OP_WR, PXP2_REG_PGL_INT_TSDM_2, 0xffffffff}, | ||
1222 | {OP_WR, PXP2_REG_PGL_INT_TSDM_3, 0xffffffff}, | ||
1223 | {OP_WR, PXP2_REG_PGL_INT_TSDM_4, 0xffffffff}, | ||
1224 | {OP_WR, PXP2_REG_PGL_INT_TSDM_5, 0xffffffff}, | ||
1225 | {OP_WR, PXP2_REG_PGL_INT_TSDM_6, 0xffffffff}, | ||
1226 | {OP_WR, PXP2_REG_PGL_INT_TSDM_7, 0xffffffff}, | ||
1227 | {OP_WR, PXP2_REG_PGL_INT_USDM_1, 0xffffffff}, | ||
1228 | {OP_WR, PXP2_REG_PGL_INT_USDM_2, 0xffffffff}, | ||
1229 | {OP_WR, PXP2_REG_PGL_INT_USDM_3, 0xffffffff}, | ||
1230 | {OP_WR, PXP2_REG_PGL_INT_USDM_4, 0xffffffff}, | ||
1231 | {OP_WR, PXP2_REG_PGL_INT_USDM_5, 0xffffffff}, | ||
1232 | {OP_WR, PXP2_REG_PGL_INT_USDM_6, 0xffffffff}, | ||
1233 | {OP_WR, PXP2_REG_PGL_INT_USDM_7, 0xffffffff}, | ||
1234 | {OP_WR, PXP2_REG_PGL_INT_XSDM_2, 0xffffffff}, | ||
1235 | {OP_WR, PXP2_REG_PGL_INT_XSDM_3, 0xffffffff}, | ||
1236 | {OP_WR, PXP2_REG_PGL_INT_XSDM_4, 0xffffffff}, | ||
1237 | {OP_WR, PXP2_REG_PGL_INT_XSDM_5, 0xffffffff}, | ||
1238 | {OP_WR, PXP2_REG_PGL_INT_XSDM_6, 0xffffffff}, | ||
1239 | {OP_WR, PXP2_REG_PGL_INT_XSDM_7, 0xffffffff}, | ||
1240 | {OP_WR, PXP2_REG_PGL_INT_CSDM_0, 0xffffffff}, | ||
1241 | {OP_WR, PXP2_REG_PGL_INT_CSDM_1, 0xffffffff}, | ||
1242 | {OP_WR, PXP2_REG_PGL_INT_CSDM_2, 0xffffffff}, | ||
1243 | {OP_WR, PXP2_REG_PGL_INT_CSDM_3, 0xffffffff}, | ||
1244 | {OP_WR, PXP2_REG_PGL_INT_CSDM_4, 0xffffffff}, | ||
1245 | {OP_WR, PXP2_REG_PGL_INT_CSDM_5, 0xffffffff}, | ||
1246 | {OP_WR, PXP2_REG_PGL_INT_CSDM_6, 0xffffffff}, | ||
1247 | {OP_WR, PXP2_REG_PGL_INT_CSDM_7, 0xffffffff}, | ||
1248 | {OP_WR, PXP2_REG_PGL_INT_XSDM_0, 0xffff5330}, | ||
1249 | {OP_WR, PXP2_REG_PGL_INT_XSDM_1, 0xffff5348}, | ||
1250 | {OP_WR, PXP2_REG_PGL_INT_USDM_0, 0xf0003000}, | ||
1251 | {OP_WR, PXP2_REG_RD_MAX_BLKS_VQ6, 0x8}, | ||
1252 | {OP_WR, PXP2_REG_RD_MAX_BLKS_VQ9, 0x8}, | ||
1253 | {OP_WR, PXP2_REG_RD_MAX_BLKS_VQ10, 0x8}, | ||
1254 | {OP_WR, PXP2_REG_RD_MAX_BLKS_VQ11, 0x2}, | ||
1255 | {OP_WR, PXP2_REG_RD_MAX_BLKS_VQ17, 0x4}, | ||
1256 | {OP_WR, PXP2_REG_RD_MAX_BLKS_VQ18, 0x5}, | ||
1257 | {OP_WR, PXP2_REG_RD_MAX_BLKS_VQ19, 0x4}, | ||
1258 | {OP_WR, PXP2_REG_RD_MAX_BLKS_VQ22, 0x0}, | ||
1259 | {OP_WR, PXP2_REG_RD_START_INIT, 0x1}, | ||
1260 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD0, 0x40}, | ||
1261 | {OP_WR, PXP2_REG_PSWRQ_BW_ADD1, 0x1808}, | ||
1262 | {OP_WR, PXP2_REG_PSWRQ_BW_ADD2, 0x803}, | ||
1263 | {OP_WR, PXP2_REG_PSWRQ_BW_ADD3, 0x803}, | ||
1264 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD4, 0x40}, | ||
1265 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD5, 0x3}, | ||
1266 | {OP_WR, PXP2_REG_PSWRQ_BW_ADD6, 0x803}, | ||
1267 | {OP_WR, PXP2_REG_PSWRQ_BW_ADD7, 0x803}, | ||
1268 | {OP_WR, PXP2_REG_PSWRQ_BW_ADD8, 0x803}, | ||
1269 | {OP_WR, PXP2_REG_PSWRQ_BW_ADD9, 0x10003}, | ||
1270 | {OP_WR, PXP2_REG_PSWRQ_BW_ADD10, 0x803}, | ||
1271 | {OP_WR, PXP2_REG_PSWRQ_BW_ADD11, 0x803}, | ||
1272 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD12, 0x3}, | ||
1273 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD13, 0x3}, | ||
1274 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD14, 0x3}, | ||
1275 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD15, 0x3}, | ||
1276 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD16, 0x3}, | ||
1277 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD17, 0x3}, | ||
1278 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD18, 0x3}, | ||
1279 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD19, 0x3}, | ||
1280 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD20, 0x3}, | ||
1281 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD22, 0x3}, | ||
1282 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD23, 0x3}, | ||
1283 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD24, 0x3}, | ||
1284 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD25, 0x3}, | ||
1285 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD26, 0x3}, | ||
1286 | {OP_WR, PXP2_REG_RQ_BW_RD_ADD27, 0x3}, | ||
1287 | {OP_WR, PXP2_REG_PSWRQ_BW_ADD28, 0x2403}, | ||
1288 | {OP_WR, PXP2_REG_RQ_BW_WR_ADD29, 0x2f}, | ||
1289 | {OP_WR, PXP2_REG_RQ_BW_WR_ADD30, 0x9}, | ||
1290 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND0, 0x19}, | ||
1291 | {OP_WR, PXP2_REG_PSWRQ_BW_UB1, 0x184}, | ||
1292 | {OP_WR, PXP2_REG_PSWRQ_BW_UB2, 0x183}, | ||
1293 | {OP_WR, PXP2_REG_PSWRQ_BW_UB3, 0x306}, | ||
1294 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND4, 0x19}, | ||
1295 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND5, 0x6}, | ||
1296 | {OP_WR, PXP2_REG_PSWRQ_BW_UB6, 0x306}, | ||
1297 | {OP_WR, PXP2_REG_PSWRQ_BW_UB7, 0x306}, | ||
1298 | {OP_WR, PXP2_REG_PSWRQ_BW_UB8, 0x306}, | ||
1299 | {OP_WR, PXP2_REG_PSWRQ_BW_UB9, 0xc86}, | ||
1300 | {OP_WR, PXP2_REG_PSWRQ_BW_UB10, 0x306}, | ||
1301 | {OP_WR, PXP2_REG_PSWRQ_BW_UB11, 0x306}, | ||
1302 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND12, 0x6}, | ||
1303 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND13, 0x6}, | ||
1304 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND14, 0x6}, | ||
1305 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND15, 0x6}, | ||
1306 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND16, 0x6}, | ||
1307 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND17, 0x6}, | ||
1308 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND18, 0x6}, | ||
1309 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND19, 0x6}, | ||
1310 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND20, 0x6}, | ||
1311 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND22, 0x6}, | ||
1312 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND23, 0x6}, | ||
1313 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND24, 0x6}, | ||
1314 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND25, 0x6}, | ||
1315 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND26, 0x6}, | ||
1316 | {OP_WR, PXP2_REG_RQ_BW_RD_UBOUND27, 0x6}, | ||
1317 | {OP_WR, PXP2_REG_PSWRQ_BW_UB28, 0x306}, | ||
1318 | {OP_WR, PXP2_REG_RQ_BW_WR_UBOUND29, 0x13}, | ||
1319 | {OP_WR, PXP2_REG_RQ_BW_WR_UBOUND30, 0x6}, | ||
1320 | {OP_WR, PXP2_REG_PSWRQ_BW_L1, 0x1004}, | ||
1321 | {OP_WR, PXP2_REG_PSWRQ_BW_L2, 0x1004}, | ||
1322 | {OP_WR, PXP2_REG_PSWRQ_BW_RD, 0x106440}, | ||
1323 | {OP_WR, PXP2_REG_PSWRQ_BW_WR, 0x106440}, | ||
1324 | {OP_WR, PXP2_REG_RQ_RBC_DONE, 0x1}, | ||
1325 | #define PXP2_COMMON_END 1200 | ||
1326 | #define MISC_AEU_COMMON_START 1200 | ||
1327 | {OP_ZR, MISC_REG_AEU_GENERAL_ATTN_0, 0x16}, | ||
1328 | #define MISC_AEU_COMMON_END 1201 | ||
1329 | #define MISC_AEU_PORT0_START 1201 | ||
1330 | {OP_WR, MISC_REG_AEU_ENABLE1_FUNC_0_OUT_0, 0xbf5c0000}, | ||
1331 | {OP_WR, MISC_REG_AEU_ENABLE2_FUNC_0_OUT_0, 0xfff51fef}, | ||
1332 | {OP_WR, MISC_REG_AEU_ENABLE3_FUNC_0_OUT_0, 0xffff}, | ||
1333 | {OP_WR, MISC_REG_AEU_ENABLE4_FUNC_0_OUT_0, 0x500003e0}, | ||
1334 | {OP_WR, MISC_REG_AEU_ENABLE1_FUNC_0_OUT_1, 0x0}, | ||
1335 | {OP_WR, MISC_REG_AEU_ENABLE2_FUNC_0_OUT_1, 0xa000}, | ||
1336 | {OP_ZR, MISC_REG_AEU_ENABLE3_FUNC_0_OUT_1, 0x5}, | ||
1337 | {OP_WR, MISC_REG_AEU_ENABLE4_FUNC_0_OUT_2, 0xfe00000}, | ||
1338 | {OP_ZR, MISC_REG_AEU_ENABLE1_FUNC_0_OUT_3, 0x14}, | ||
1339 | {OP_WR, MISC_REG_AEU_ENABLE1_NIG_0, 0x55540000}, | ||
1340 | {OP_WR, MISC_REG_AEU_ENABLE2_NIG_0, 0x55555555}, | ||
1341 | {OP_WR, MISC_REG_AEU_ENABLE3_NIG_0, 0x5555}, | ||
1342 | {OP_WR, MISC_REG_AEU_ENABLE4_NIG_0, 0x0}, | ||
1343 | {OP_WR, MISC_REG_AEU_ENABLE1_PXP_0, 0x55540000}, | ||
1344 | {OP_WR, MISC_REG_AEU_ENABLE2_PXP_0, 0x55555555}, | ||
1345 | {OP_WR, MISC_REG_AEU_ENABLE3_PXP_0, 0x5555}, | ||
1346 | {OP_WR, MISC_REG_AEU_ENABLE4_PXP_0, 0x0}, | ||
1347 | {OP_WR, MISC_REG_AEU_INVERTER_1_FUNC_0, 0x0}, | ||
1348 | {OP_ZR, MISC_REG_AEU_INVERTER_2_FUNC_0, 0x3}, | ||
1349 | {OP_WR, MISC_REG_AEU_MASK_ATTN_FUNC_0, 0x7}, | ||
1350 | #define MISC_AEU_PORT0_END 1221 | ||
1351 | #define MISC_AEU_PORT1_START 1221 | ||
1352 | {OP_WR, MISC_REG_AEU_ENABLE1_FUNC_1_OUT_0, 0xbf5c0000}, | ||
1353 | {OP_WR, MISC_REG_AEU_ENABLE2_FUNC_1_OUT_0, 0xfff51fef}, | ||
1354 | {OP_WR, MISC_REG_AEU_ENABLE3_FUNC_1_OUT_0, 0xffff}, | ||
1355 | {OP_WR, MISC_REG_AEU_ENABLE4_FUNC_1_OUT_0, 0x500003e0}, | ||
1356 | {OP_WR, MISC_REG_AEU_ENABLE1_FUNC_1_OUT_1, 0x0}, | ||
1357 | {OP_WR, MISC_REG_AEU_ENABLE2_FUNC_1_OUT_1, 0xa000}, | ||
1358 | {OP_ZR, MISC_REG_AEU_ENABLE3_FUNC_1_OUT_1, 0x5}, | ||
1359 | {OP_WR, MISC_REG_AEU_ENABLE4_FUNC_1_OUT_2, 0xfe00000}, | ||
1360 | {OP_ZR, MISC_REG_AEU_ENABLE1_FUNC_1_OUT_3, 0x14}, | ||
1361 | {OP_WR, MISC_REG_AEU_ENABLE1_NIG_1, 0x55540000}, | ||
1362 | {OP_WR, MISC_REG_AEU_ENABLE2_NIG_1, 0x55555555}, | ||
1363 | {OP_WR, MISC_REG_AEU_ENABLE3_NIG_1, 0x5555}, | ||
1364 | {OP_WR, MISC_REG_AEU_ENABLE4_NIG_1, 0x0}, | ||
1365 | {OP_WR, MISC_REG_AEU_ENABLE1_PXP_1, 0x55540000}, | ||
1366 | {OP_WR, MISC_REG_AEU_ENABLE2_PXP_1, 0x55555555}, | ||
1367 | {OP_WR, MISC_REG_AEU_ENABLE3_PXP_1, 0x5555}, | ||
1368 | {OP_WR, MISC_REG_AEU_ENABLE4_PXP_1, 0x0}, | ||
1369 | {OP_WR, MISC_REG_AEU_INVERTER_1_FUNC_1, 0x0}, | ||
1370 | {OP_ZR, MISC_REG_AEU_INVERTER_2_FUNC_1, 0x3}, | ||
1371 | {OP_WR, MISC_REG_AEU_MASK_ATTN_FUNC_1, 0x7} | ||
1372 | #define MISC_AEU_PORT1_END 1241 | ||
1373 | }; | ||
1374 | |||
1375 | static const u32 init_data[] = { | ||
1376 | 0x00010000, 0x000204c0, 0x00030980, 0x00040e40, 0x00051300, 0x000617c0, | ||
1377 | 0x00071c80, 0x00082140, 0x00092600, 0x000a2ac0, 0x000b2f80, 0x000c3440, | ||
1378 | 0x000d3900, 0x000e3dc0, 0x000f4280, 0x00104740, 0x00114c00, 0x001250c0, | ||
1379 | 0x00135580, 0x00145a40, 0x00155f00, 0x001663c0, 0x00176880, 0x00186d40, | ||
1380 | 0x00197200, 0x001a76c0, 0x001b7b80, 0x001c8040, 0x001d8500, 0x001e89c0, | ||
1381 | 0x001f8e80, 0x00209340, 0x00002000, 0x00004000, 0x00006000, 0x00008000, | ||
1382 | 0x0000a000, 0x0000c000, 0x0000e000, 0x00010000, 0x00012000, 0x00014000, | ||
1383 | 0x00016000, 0x00018000, 0x0001a000, 0x0001c000, 0x0001e000, 0x00020000, | ||
1384 | 0x00022000, 0x00024000, 0x00026000, 0x00028000, 0x0002a000, 0x0002c000, | ||
1385 | 0x0002e000, 0x00030000, 0x00032000, 0x00034000, 0x00036000, 0x00038000, | ||
1386 | 0x0003a000, 0x0003c000, 0x0003e000, 0x00040000, 0x00042000, 0x00044000, | ||
1387 | 0x00046000, 0x00048000, 0x0004a000, 0x0004c000, 0x0004e000, 0x00050000, | ||
1388 | 0x00052000, 0x00054000, 0x00056000, 0x00058000, 0x0005a000, 0x0005c000, | ||
1389 | 0x0005e000, 0x00060000, 0x00062000, 0x00064000, 0x00066000, 0x00068000, | ||
1390 | 0x0006a000, 0x0006c000, 0x0006e000, 0x00070000, 0x00072000, 0x00074000, | ||
1391 | 0x00076000, 0x00078000, 0x0007a000, 0x0007c000, 0x0007e000, 0x00080000, | ||
1392 | 0x00082000, 0x00084000, 0x00086000, 0x00088000, 0x0008a000, 0x0008c000, | ||
1393 | 0x0008e000, 0x00090000, 0x00092000, 0x00094000, 0x00096000, 0x00098000, | ||
1394 | 0x0009a000, 0x0009c000, 0x0009e000, 0x000a0000, 0x000a2000, 0x000a4000, | ||
1395 | 0x000a6000, 0x000a8000, 0x000aa000, 0x000ac000, 0x000ae000, 0x000b0000, | ||
1396 | 0x000b2000, 0x000b4000, 0x000b6000, 0x000b8000, 0x000ba000, 0x000bc000, | ||
1397 | 0x000be000, 0x000c0000, 0x000c2000, 0x000c4000, 0x000c6000, 0x000c8000, | ||
1398 | 0x000ca000, 0x000cc000, 0x000ce000, 0x000d0000, 0x000d2000, 0x000d4000, | ||
1399 | 0x000d6000, 0x000d8000, 0x000da000, 0x000dc000, 0x000de000, 0x000e0000, | ||
1400 | 0x000e2000, 0x000e4000, 0x000e6000, 0x000e8000, 0x000ea000, 0x000ec000, | ||
1401 | 0x000ee000, 0x000f0000, 0x000f2000, 0x000f4000, 0x000f6000, 0x000f8000, | ||
1402 | 0x000fa000, 0x000fc000, 0x000fe000, 0x00100000, 0x00102000, 0x00104000, | ||
1403 | 0x00106000, 0x00108000, 0x0010a000, 0x0010c000, 0x0010e000, 0x00110000, | ||
1404 | 0x00112000, 0x00114000, 0x00116000, 0x00118000, 0x0011a000, 0x0011c000, | ||
1405 | 0x0011e000, 0x00120000, 0x00122000, 0x00124000, 0x00126000, 0x00128000, | ||
1406 | 0x0012a000, 0x0012c000, 0x0012e000, 0x00130000, 0x00132000, 0x00134000, | ||
1407 | 0x00136000, 0x00138000, 0x0013a000, 0x0013c000, 0x0013e000, 0x00140000, | ||
1408 | 0x00142000, 0x00144000, 0x00146000, 0x00148000, 0x0014a000, 0x0014c000, | ||
1409 | 0x0014e000, 0x00150000, 0x00152000, 0x00154000, 0x00156000, 0x00158000, | ||
1410 | 0x0015a000, 0x0015c000, 0x0015e000, 0x00160000, 0x00162000, 0x00164000, | ||
1411 | 0x00166000, 0x00168000, 0x0016a000, 0x0016c000, 0x0016e000, 0x00170000, | ||
1412 | 0x00172000, 0x00174000, 0x00176000, 0x00178000, 0x0017a000, 0x0017c000, | ||
1413 | 0x0017e000, 0x00180000, 0x00182000, 0x00184000, 0x00186000, 0x00188000, | ||
1414 | 0x0018a000, 0x0018c000, 0x0018e000, 0x00190000, 0x00192000, 0x00194000, | ||
1415 | 0x00196000, 0x00198000, 0x0019a000, 0x0019c000, 0x0019e000, 0x001a0000, | ||
1416 | 0x001a2000, 0x001a4000, 0x001a6000, 0x001a8000, 0x001aa000, 0x001ac000, | ||
1417 | 0x001ae000, 0x001b0000, 0x001b2000, 0x001b4000, 0x001b6000, 0x001b8000, | ||
1418 | 0x001ba000, 0x001bc000, 0x001be000, 0x001c0000, 0x001c2000, 0x001c4000, | ||
1419 | 0x001c6000, 0x001c8000, 0x001ca000, 0x001cc000, 0x001ce000, 0x001d0000, | ||
1420 | 0x001d2000, 0x001d4000, 0x001d6000, 0x001d8000, 0x001da000, 0x001dc000, | ||
1421 | 0x001de000, 0x001e0000, 0x001e2000, 0x001e4000, 0x001e6000, 0x001e8000, | ||
1422 | 0x001ea000, 0x001ec000, 0x001ee000, 0x001f0000, 0x001f2000, 0x001f4000, | ||
1423 | 0x001f6000, 0x001f8000, 0x001fa000, 0x001fc000, 0x001fe000, 0x00200000, | ||
1424 | 0x00202000, 0x00204000, 0x00206000, 0x00208000, 0x0020a000, 0x0020c000, | ||
1425 | 0x0020e000, 0x00210000, 0x00212000, 0x00214000, 0x00216000, 0x00218000, | ||
1426 | 0x0021a000, 0x0021c000, 0x0021e000, 0x00220000, 0x00222000, 0x00224000, | ||
1427 | 0x00226000, 0x00228000, 0x0022a000, 0x0022c000, 0x0022e000, 0x00230000, | ||
1428 | 0x00232000, 0x00234000, 0x00236000, 0x00238000, 0x0023a000, 0x0023c000, | ||
1429 | 0x0023e000, 0x00240000, 0x00242000, 0x00244000, 0x00246000, 0x00248000, | ||
1430 | 0x0024a000, 0x0024c000, 0x0024e000, 0x00250000, 0x00252000, 0x00254000, | ||
1431 | 0x00256000, 0x00258000, 0x0025a000, 0x0025c000, 0x0025e000, 0x00260000, | ||
1432 | 0x00262000, 0x00264000, 0x00266000, 0x00268000, 0x0026a000, 0x0026c000, | ||
1433 | 0x0026e000, 0x00270000, 0x00272000, 0x00274000, 0x00276000, 0x00278000, | ||
1434 | 0x0027a000, 0x0027c000, 0x0027e000, 0x00280000, 0x00282000, 0x00284000, | ||
1435 | 0x00286000, 0x00288000, 0x0028a000, 0x0028c000, 0x0028e000, 0x00290000, | ||
1436 | 0x00292000, 0x00294000, 0x00296000, 0x00298000, 0x0029a000, 0x0029c000, | ||
1437 | 0x0029e000, 0x002a0000, 0x002a2000, 0x002a4000, 0x002a6000, 0x002a8000, | ||
1438 | 0x002aa000, 0x002ac000, 0x002ae000, 0x002b0000, 0x002b2000, 0x002b4000, | ||
1439 | 0x002b6000, 0x002b8000, 0x002ba000, 0x002bc000, 0x002be000, 0x002c0000, | ||
1440 | 0x002c2000, 0x002c4000, 0x002c6000, 0x002c8000, 0x002ca000, 0x002cc000, | ||
1441 | 0x002ce000, 0x002d0000, 0x002d2000, 0x002d4000, 0x002d6000, 0x002d8000, | ||
1442 | 0x002da000, 0x002dc000, 0x002de000, 0x002e0000, 0x002e2000, 0x002e4000, | ||
1443 | 0x002e6000, 0x002e8000, 0x002ea000, 0x002ec000, 0x002ee000, 0x002f0000, | ||
1444 | 0x002f2000, 0x002f4000, 0x002f6000, 0x002f8000, 0x002fa000, 0x002fc000, | ||
1445 | 0x002fe000, 0x00300000, 0x00302000, 0x00304000, 0x00306000, 0x00308000, | ||
1446 | 0x0030a000, 0x0030c000, 0x0030e000, 0x00310000, 0x00312000, 0x00314000, | ||
1447 | 0x00316000, 0x00318000, 0x0031a000, 0x0031c000, 0x0031e000, 0x00320000, | ||
1448 | 0x00322000, 0x00324000, 0x00326000, 0x00328000, 0x0032a000, 0x0032c000, | ||
1449 | 0x0032e000, 0x00330000, 0x00332000, 0x00334000, 0x00336000, 0x00338000, | ||
1450 | 0x0033a000, 0x0033c000, 0x0033e000, 0x00340000, 0x00342000, 0x00344000, | ||
1451 | 0x00346000, 0x00348000, 0x0034a000, 0x0034c000, 0x0034e000, 0x00350000, | ||
1452 | 0x00352000, 0x00354000, 0x00356000, 0x00358000, 0x0035a000, 0x0035c000, | ||
1453 | 0x0035e000, 0x00360000, 0x00362000, 0x00364000, 0x00366000, 0x00368000, | ||
1454 | 0x0036a000, 0x0036c000, 0x0036e000, 0x00370000, 0x00372000, 0x00374000, | ||
1455 | 0x00376000, 0x00378000, 0x0037a000, 0x0037c000, 0x0037e000, 0x00380000, | ||
1456 | 0x00382000, 0x00384000, 0x00386000, 0x00388000, 0x0038a000, 0x0038c000, | ||
1457 | 0x0038e000, 0x00390000, 0x00392000, 0x00394000, 0x00396000, 0x00398000, | ||
1458 | 0x0039a000, 0x0039c000, 0x0039e000, 0x003a0000, 0x003a2000, 0x003a4000, | ||
1459 | 0x003a6000, 0x003a8000, 0x003aa000, 0x003ac000, 0x003ae000, 0x003b0000, | ||
1460 | 0x003b2000, 0x003b4000, 0x003b6000, 0x003b8000, 0x003ba000, 0x003bc000, | ||
1461 | 0x003be000, 0x003c0000, 0x003c2000, 0x003c4000, 0x003c6000, 0x003c8000, | ||
1462 | 0x003ca000, 0x003cc000, 0x003ce000, 0x003d0000, 0x003d2000, 0x003d4000, | ||
1463 | 0x003d6000, 0x003d8000, 0x003da000, 0x003dc000, 0x003de000, 0x003e0000, | ||
1464 | 0x003e2000, 0x003e4000, 0x003e6000, 0x003e8000, 0x003ea000, 0x003ec000, | ||
1465 | 0x003ee000, 0x003f0000, 0x003f2000, 0x003f4000, 0x003f6000, 0x003f8000, | ||
1466 | 0x003fa000, 0x003fc000, 0x003fe000, 0x003fe001, 0x00000000, 0x000001ff, | ||
1467 | 0x00000200, 0x00000001, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, | ||
1468 | 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x00088b1f, 0x00000000, | ||
1469 | 0x51fbff00, 0x03f0c0cf, 0x3130ef8a, 0x22b1c430, 0x3b0143f8, 0x02ecdd01, | ||
1470 | 0xdc406ec4, 0x19b7c404, 0x23dfd348, 0xf1476080, 0x03343031, 0x032f3731, | ||
1471 | 0x423f2483, 0x4d5011fc, 0x02ef9025, 0xa40cdb15, 0x77280475, 0xf2c060fb, | ||
1472 | 0x77629812, 0x056c1144, 0x58c8f22c, 0x4dde4d11, 0x44af950c, 0xe340ff40, | ||
1473 | 0xfca8b235, 0x6d081948, 0x8b5f150b, 0x95051f26, 0xd0849577, 0xe76964eb, | ||
1474 | 0x00607a36, 0x2726b9d6, 0x00000400, 0x00088b1f, 0x00000000, 0x7dedff00, | ||
1475 | 0xd554780b, 0x333ef0b5, 0x64ccce67, 0x093c991e, 0x20f264af, 0xf09c0682, | ||
1476 | 0x93a8a808, 0x07be3040, 0x0e22a5e4, 0x27902018, 0xf5e8bd48, 0x620c19bf, | ||
1477 | 0x2f06d6b4, 0x93a45a2a, 0xb6968a80, 0x6c1a06c1, 0x822203b4, 0x6b06f5bf, | ||
1478 | 0x368b6d7b, 0x2062a28a, 0xa5ebd8b9, 0xaffadaf7, 0x99def6b5, 0x91332673, | ||
1479 | 0xfebffdaa, 0x5fa7f7df, 0xf7b3ecdd, 0xf5ed7bd9, 0xb3ef6b5e, 0xa66e6547, | ||
1480 | 0x97d8ce5d, 0x9be507f8, 0x232c630a, 0xa1bbd65a, 0xed58cc9c, 0x9ef8731e, | ||
1481 | 0xec66c65c, 0x4f2e44b1, 0x12ab7a87, 0xf4dd42b6, 0x4fda9d92, 0x7af5e56f, | ||
1482 | 0x9743f773, 0xb9fb3b40, 0x05053d99, 0x589bb1eb, 0x6c276309, 0xf2f5ff8c, | ||
1483 | 0xaf3b72fa, 0x5feeb6d6, 0x557fa0cc, 0xe1d995a7, 0x661d13fd, 0x3cd7d63f, | ||
1484 | 0xc01984a5, 0x3eefbb50, 0xbf8c046d, 0xdbb4ac22, 0x0a7f50bd, 0xcafb421e, | ||
1485 | 0xfb18730e, 0x33bbb9f7, 0x4ec64e03, 0x5798da36, 0x937ef843, 0xd8c453d9, | ||
1486 | 0x59eef0aa, 0xaadfa023, 0x04cf8a5d, 0xaadaacf3, 0x8c9f2e44, 0x19b095cf, | ||
1487 | 0xe9dea886, 0x1cb1de60, 0xcd192f86, 0xf358eb4b, 0xe30bcc24, 0x0b45b532, | ||
1488 | 0x4dbe70b8, 0xc515d79a, 0x0f46c9cf, 0xb5eb23cd, 0xf03cc2cf, 0x144fdd5e, | ||
1489 | 0xceb12e1f, 0x30ed82c4, 0xf67de9ff, 0xb89ddb85, 0xa15af5be, 0x258ebf4b, | ||
1490 | 0xab1d717b, 0x2cdaadc2, 0xaad5c227, 0x8e8a2f2d, 0xcd33bd57, 0xfc96d708, | ||
1491 | 0x7b5d4161, 0x91b2796c, 0xb4616f31, 0x7f318abe, 0x0fe113bb, 0x47c7b36b, | ||
1492 | 0x29641f9f, 0x9deacf44, 0x45b5e666, 0x442c67c7, 0x17cccdcf, 0x2eb2bc41, | ||
1493 | 0xb74f4f97, 0xdd231e33, 0x7788a4d6, 0x7df3c013, 0x024d8741, 0xf843df4f, | ||
1494 | 0x7bf64ca0, 0xfeb0abd6, 0xa3cc99e4, 0x26fef10c, 0x1ed85b0b, 0x900bbd67, | ||
1495 | 0x1630a619, 0xb7822664, 0xc26f058e, 0x50d4cfb2, 0x5fc3c005, 0xeb002b24, | ||
1496 | 0xefe14fbd, 0xd4bccf5f, 0x9ad1beff, 0xe9bae91f, 0xe6ed92ca, 0x7496b15c, | ||
1497 | 0xfa7f2fac, 0xb5321801, 0xbf10cfc2, 0x88ade22a, 0x43321e16, 0xca576bbb, | ||
1498 | 0x7abc07c4, 0xc72d95fc, 0x4d93dcf9, 0xa678fa06, 0xa9ea1927, 0xf0635333, | ||
1499 | 0xb89cf4eb, 0x4e01d440, 0x827fa9ab, 0x6958cf9a, 0xedf88db6, 0xe48d6c8e, | ||
1500 | 0x38cb8ee6, 0x3b64775c, 0x7fa821c3, 0x08b85f17, 0x42f05aea, 0xc07c1c4f, | ||
1501 | 0x859626cc, 0xa6c4d065, 0x466f6e0d, 0x941f023c, 0xf8517ce5, 0xa6f5941e, | ||
1502 | 0x2814c2fe, 0x21a52b57, 0xc446cbc4, 0x330e9423, 0x3b75c06b, 0xd4f08cac, | ||
1503 | 0x7b64a63c, 0xfba78748, 0xb94f0173, 0xb7ef71d1, 0x1f316434, 0xca840f63, | ||
1504 | 0xc070ea43, 0xf7102e6f, 0x3cb78462, 0xf7802a12, 0x42c8ef73, 0x9034da7c, | ||
1505 | 0x1afcfd03, 0xf3445fcc, 0x1f1e20b7, 0x9d8c7415, 0xcd3856df, 0xaf3dbf30, | ||
1506 | 0x5dbf30ca, 0x2781f983, 0x2b5d089f, 0x8e3c07e6, 0xec07ec60, 0x96df9a5a, | ||
1507 | 0x6fe68eb7, 0x619558d6, 0xf981a4fe, 0xd3ef38c3, 0x2e6fe609, 0xfeb8d8bc, | ||
1508 | 0xf5c655bc, 0xcffd7c6b, 0xf989e685, 0x3ffd6893, 0xfaf8f362, 0xebe2eef3, | ||
1509 | 0xfab8c2b7, 0xf803ddf9, 0xefbc476f, 0xdb7f804d, 0xeb8dd379, 0xae31afcf, | ||
1510 | 0x7fe7cadf, 0x988b7421, 0xfff349df, 0xd7c2dd82, 0xcd377f9f, 0xf836b56f, | ||
1511 | 0xcd64d03c, 0x23086a49, 0x7fe17b5f, 0x802ca0c3, 0x5942a679, 0xbc18ca94, | ||
1512 | 0x47961dff, 0x2923b878, 0xfff61e78, 0xcdf8093c, 0x2c0bd519, 0xb94151bc, | ||
1513 | 0x5d3c13af, 0xf6896bb9, 0xb2a5783d, 0x064beb93, 0xc00c74fa, 0xb3f3ba77, | ||
1514 | 0xf000ffcf, 0xf628ee56, 0x8f24bd99, 0x265bdf0c, 0xe66f5296, 0x902c60f8, | ||
1515 | 0xfa85db3d, 0x673d9029, 0x59f9353c, 0x4645e826, 0xe3e20e30, 0x13962d65, | ||
1516 | 0x5af93a3d, 0x5f58c5b1, 0x25d63619, 0x24c8a5dc, 0xd8ca8650, 0xf79806d8, | ||
1517 | 0x0623e804, 0xd07df27a, 0x647e5847, 0xdda2b761, 0x15f400f8, 0xb572f4d3, | ||
1518 | 0x4272e89e, 0xb13ff8e5, 0xf8f241c5, 0x1ad5a6f9, 0x1c7847cb, 0x7cdd6480, | ||
1519 | 0x1156f621, 0x58be73ac, 0x04b9e127, 0xcf5f15f5, 0x6bdaaefc, 0xdc02c4c0, | ||
1520 | 0x4ef78669, 0xd416225b, 0xf0b0b75b, 0xfe3059bd, 0xb6ee0f6d, 0xf8ff4904, | ||
1521 | 0xae489a47, 0xc81348d9, 0x968582f5, 0xef747bf7, 0x64d8ec2d, 0x8de50919, | ||
1522 | 0x9bf3e341, 0xd3f58cab, 0x84c5b096, 0xc2a57976, 0x5bfc615a, 0x72ed8c1a, | ||
1523 | 0x54b13f9e, 0xdf31674e, 0xf0c5a07c, 0x06575c54, 0xe1e82fd1, 0x3ebb00eb, | ||
1524 | 0x87da246b, 0x53df14db, 0xfb05bf50, 0x1e3a444d, 0xe2f9f0d6, 0x07be2965, | ||
1525 | 0x997860d8, 0xdf40930a, 0x78dd8577, 0x743cb557, 0xfe183291, 0x7e1c979e, | ||
1526 | 0xebc184d3, 0x56fb8588, 0xdc3a21e6, 0x7cf8ceba, 0x7d762849, 0x3bea0f9c, | ||
1527 | 0xd03ed34b, 0xbf6daf3d, 0x1d03ed32, 0x9cef54bf, 0x0cafa86d, 0xbfe868df, | ||
1528 | 0x4312cb62, 0x9596b2fb, 0x9adbf686, 0x4bea1b57, 0xfa1a7742, 0xbd6ebadf, | ||
1529 | 0x8696fda1, 0x37ed0dfb, 0xd4326d57, 0x6e3e0c6f, 0x6160bfe8, 0x795da1ab, | ||
1530 | 0xfa0e6569, 0x305af537, 0xfde03867, 0xacacefd4, 0xb1f2894d, 0x1b8ff3e4, | ||
1531 | 0xd93ca8b3, 0x3d72a5e8, 0xbfc82bca, 0xeb2f1f69, 0xa0e496db, 0xffbe4b9c, | ||
1532 | 0x8d90d2c8, 0xdfcb1272, 0xcb18f2b1, 0x6837c8c7, 0xf3d91287, 0x5005851a, | ||
1533 | 0x6e14fbee, 0x77f3e48f, 0xec65fe84, 0x1ab7921e, 0xcd63cb8d, 0x50cbc3f3, | ||
1534 | 0x48b46a5e, 0xf1338361, 0xa15dacb8, 0x46d63075, 0x830cace3, 0x9ae81854, | ||
1535 | 0x77b3806f, 0xafe699bf, 0x22e3e743, 0x2581f7b4, 0x791fce0a, 0xf186fb39, | ||
1536 | 0x297f8f08, 0x48333bd5, 0x5636f62f, 0x22a07da4, 0x7e5402fe, 0xca90b8dc, | ||
1537 | 0x2a418d13, 0xa2ac683f, 0x06c6fdf2, 0xd71a7b2a, 0x636ef951, 0x8d63ca88, | ||
1538 | 0xbefe54cd, 0xb7ca85b1, 0xf950b71b, 0x9530c6db, 0x54fd1ba7, 0xb5a9f00e, | ||
1539 | 0x43fd10bf, 0x432b07f6, 0x0ebd9717, 0xcdc816fe, 0x7737e919, 0xe11afaf2, | ||
1540 | 0x4bc22737, 0xe213dd2c, 0x434c858f, 0x89292dd1, 0xc4c923d3, 0xf9c8182a, | ||
1541 | 0xfaf6e303, 0x8abaf296, 0xe008032a, 0x0397fbd3, 0x860d22e3, 0xde3d357d, | ||
1542 | 0xf683bb41, 0xd93365ef, 0x99f9163f, 0x1e9706ef, 0xd423401f, 0x8474bf37, | ||
1543 | 0x35fd029f, 0x7e72f14a, 0x9cbc0af9, 0x8dddbc39, 0x964d747a, 0xa4c1f3c9, | ||
1544 | 0x6dabebc4, 0x7538f5cf, 0x1a77d4f0, 0x945a67eb, 0x7a0fee0a, 0x478ee793, | ||
1545 | 0x3e78f07e, 0x65ba4028, 0x59c72951, 0x3e79a593, 0x617ec348, 0x95db0f5a, | ||
1546 | 0xf105fc42, 0xb6fbf508, 0x4e3448e1, 0x760e8e14, 0x1f27de1c, 0xff713f3b, | ||
1547 | 0xfea17c84, 0x9a3f4349, 0x473e5975, 0xff856abb, 0x1401897f, 0xc72ea953, | ||
1548 | 0x87376fad, 0xf3e217ac, 0xe0f9865d, 0xf58caf3d, 0x8a1bccbe, 0x427654ff, | ||
1549 | 0xa4a807f2, 0xacde22a3, 0x18f769de, 0xa18a75f5, 0xdc39df5e, 0xf8dfd063, | ||
1550 | 0x3657900f, 0x5ed15153, 0xe8b608d5, 0x0acd9d53, 0xf90bb7c0, 0xaf52e806, | ||
1551 | 0xb6b57ef0, 0x8f082d1e, 0xcd3474ce, 0x3d8bc4bf, 0xb1bd685b, 0x3c6c9df0, | ||
1552 | 0xc4d555ec, 0xcf9b57f0, 0xe38811dc, 0xf0ae7f97, 0xc4c6a538, 0x0b665ffd, | ||
1553 | 0x584e51b9, 0x873dc856, 0x07399bf8, 0x0b7143f0, 0xcbaba3cc, 0xe9afc071, | ||
1554 | 0x7acf678f, 0x8dafdc4d, 0x526ad79d, 0x757f09ce, 0xc2ce8ebb, 0xb1e2c775, | ||
1555 | 0xb43ff3ae, 0xcc8dc520, 0xdf894780, 0x6ac04a5d, 0xed57f182, 0xf9434f7c, | ||
1556 | 0x2a12d8fa, 0xc4dce7fc, 0xbf0c19f8, 0x2384eb33, 0x7b35ceba, 0xad5fe45c, | ||
1557 | 0xede224d9, 0x79c6eb10, 0x13134e97, 0x74bd017f, 0x62e58070, 0x26dfa826, | ||
1558 | 0x5dee326a, 0xfe4d51da, 0xa42c87d5, 0x89f53fa1, 0xfd04a5b9, 0xaded5583, | ||
1559 | 0x3ce01f9a, 0x88154cc5, 0x4dec53af, 0xbd1d24f7, 0xd11a4c8a, 0xa366b6e9, | ||
1560 | 0xa6fe00df, 0xa6fe0ea1, 0xcd9cbea1, 0x7638c4c9, 0xb80b66f9, 0x434eb4be, | ||
1561 | 0x879328fb, 0x3582b0e8, 0x7afb446c, 0xfcd263bc, 0x3f0e904b, 0xf104b27f, | ||
1562 | 0x479a14bb, 0x8f1e22a6, 0xd6ff1e12, 0xfbe257f9, 0x1bcf0713, 0x7c98dbe5, | ||
1563 | 0xed43c080, 0x8e1fc54e, 0x991737c3, 0xfe4abf38, 0x4ff080da, 0x2dcdfa89, | ||
1564 | 0x4d6bf531, 0x6b724a8a, 0xe3a46666, 0x642d8f29, 0x5f76a64a, 0x7a12f004, | ||
1565 | 0x026beade, 0x12a3fafe, 0xbb226d98, 0x74c0991e, 0x04a8fefd, 0xf2af79e9, | ||
1566 | 0x013472fa, 0xc04c8d4c, 0x06d80b3c, 0xd04d3be2, 0x60f08ad7, 0x1aa59cbc, | ||
1567 | 0x728f59d6, 0x9dd8e30d, 0xb7df0c1d, 0xf1da637b, 0xc637681f, 0x8e1bb232, | ||
1568 | 0x2776c6b1, 0x87f219b0, 0xbe7c67cb, 0x180fc842, 0x4c3be222, 0xebdfa17b, | ||
1569 | 0x662339b6, 0x34d94bf0, 0xce2077b5, 0xc878c3c8, 0xfe91813d, 0x645e52f3, | ||
1570 | 0xaff787ad, 0xb5847913, 0x4b0d94ef, 0xa97fc21d, 0x84b61b3f, 0xb57574d3, | ||
1571 | 0xa97e435f, 0x12c3bb3f, 0xf40df49e, 0x989617a0, 0x279b9519, 0xca236094, | ||
1572 | 0xd49bc4ad, 0x3c3d517f, 0xcb97a3ca, 0xfef431ad, 0x03a470da, 0xec70753d, | ||
1573 | 0x482d8252, 0xbe3858f7, 0x8359f8f6, 0xadfadfc6, 0x68305f8e, 0xf0f19dfc, | ||
1574 | 0x631c7a78, 0x0337a4dd, 0xfee80cc9, 0xa8f3dd9f, 0x8ff7444c, 0x85233e41, | ||
1575 | 0x58f84fe8, 0x4b79e344, 0xb8f8cbac, 0x59e5ebaa, 0x81575718, 0xfe05eb7f, | ||
1576 | 0x485ac95d, 0x294c448f, 0xb335cfc2, 0x55de0e88, 0xfea6bf5d, 0xff783aab, | ||
1577 | 0xfd4ed66a, 0x3119bf31, 0xe1927bac, 0x7def293d, 0x9cd49ec2, 0x1d11612d, | ||
1578 | 0x790b763f, 0xe087bf00, 0x106bcf93, 0xb26bcc3e, 0xb6a79a6e, 0xcf30cd3d, | ||
1579 | 0xf6735f80, 0xf9d11662, 0x376ab53d, 0xd9ed77f1, 0x019e68cb, 0x6afe067b, | ||
1580 | 0xfc6a1b44, 0xa3b80691, 0xc0334fe3, 0x3a7f1d1b, 0xcfc72bcd, 0xca72039a, | ||
1581 | 0x2be513f5, 0xc293cb42, 0xb7a7804d, 0x91f7c1ac, 0x9b5cb25f, 0x76415f73, | ||
1582 | 0x04f1fa5a, 0x744fc7d4, 0x1d34df6c, 0xea09fae8, 0x9b975c39, 0x739eb9b9, | ||
1583 | 0x92174c86, 0x7c853afe, 0x18bfa030, 0x43f1afe8, 0xb7e8c7b4, 0x8c0af851, | ||
1584 | 0x28f59a3f, 0x3746dfa8, 0x8e50f518, 0xef84dd33, 0x3e33ace5, 0x019ea2f7, | ||
1585 | 0x521b95bd, 0x9f5ce263, 0x6fcfc709, 0x9f4f3e36, 0xc73aba51, 0xd3516e07, | ||
1586 | 0x2798a533, 0xba505f4a, 0xb187a47b, 0x7957d40b, 0xe2d299fd, 0x79ff50e1, | ||
1587 | 0x1532bad3, 0x7ff4d5fc, 0x86ce2d2b, 0x91b2d3ba, 0xca15abd7, 0xb7cc592b, | ||
1588 | 0x89be8594, 0xcac0081e, 0x6294728d, 0x0a9cfc06, 0xccbf9b1c, 0x5fb47a8b, | ||
1589 | 0x9e8478e3, 0xd3d19f80, 0x39467e38, 0xfc46ed8f, 0xd67a98e4, 0xc3f973a3, | ||
1590 | 0x052bff17, 0xe62f4643, 0x1e0f013d, 0xf483c1b6, 0xbed34781, 0x8ebfc21c, | ||
1591 | 0x5f2533f5, 0xf305b14c, 0x4b938e10, 0x167f7ec7, 0xeaa27d3c, 0x5b0dc500, | ||
1592 | 0x71f9fe44, 0xf46eb710, 0x326f55bb, 0x3364e3f2, 0x0965d7cf, 0x378ceebf, | ||
1593 | 0xfd487937, 0xa195959e, 0x53eae0ea, 0x9fc8ddfb, 0x5f1c5f7d, 0xd6237e8c, | ||
1594 | 0x13d08653, 0x32a359f5, 0xa3139254, 0x749e667e, 0xc14aa3e2, 0x5b378847, | ||
1595 | 0xb6cf3466, 0x7e510942, 0xc0b5fa44, 0xbf5c1e01, 0x7f31aa12, 0x8edfc179, | ||
1596 | 0xe0d6e3a7, 0x775866d5, 0x83c85985, 0xbdb0b98b, 0xf08f2ab7, 0xf6836e96, | ||
1597 | 0x6b3d688c, 0xe809cee9, 0x0398a4e7, 0xc37be2d7, 0xc6cd9f97, 0x43d98e7a, | ||
1598 | 0xb4a2dbf8, 0x00f8470c, 0xc3cfb48f, 0x569d82f6, 0xdcc93168, 0xcf26f64f, | ||
1599 | 0x69ce2219, 0x1f4acc6b, 0x55cf2fca, 0xde718b83, 0xf7bebdfc, 0xf1fc619b, | ||
1600 | 0xf70f9a95, 0x9bafc65b, 0xccf88e99, 0xc03d7132, 0x72f390ee, 0xf82f5f3d, | ||
1601 | 0xf8aacfae, 0x77ded0fd, 0x8435a7bb, 0xda0b33ed, 0xb519afd1, 0xfdc3ebce, | ||
1602 | 0x42873e80, 0x7a35f7ef, 0xe7282f29, 0x1c95dd1d, 0x9e49bbb1, 0xf3c8373f, | ||
1603 | 0xd07d633a, 0x3b7a5f7c, 0x7fbc707b, 0x9c42f8f6, 0x1d0f949e, 0x67d9e82d, | ||
1604 | 0x725dfbe6, 0xb42cd1be, 0x7391fd1f, 0xcc5fef9d, 0x7fda74ae, 0xba037410, | ||
1605 | 0x925e9084, 0xfbdf402e, 0x121b5f10, 0x78bef7d3, 0x6b6e5df4, 0x5db946c8, | ||
1606 | 0x659f6815, 0xe625e781, 0xafd883e0, 0x21f76166, 0x50decd0b, 0xe927fc88, | ||
1607 | 0x70d0d4ce, 0x740353d4, 0xfc21497f, 0x7c717667, 0xb7361fd6, 0xcb1e7ee2, | ||
1608 | 0x40b7ae0a, 0x42ca99fb, 0xa22627ca, 0xfe75f8f3, 0x017cbd74, 0xfce2b7dd, | ||
1609 | 0x9a8ebbe3, 0xef493e10, 0x49de44c7, 0xffecadca, 0xbdfa598c, 0x0f76be62, | ||
1610 | 0xfc55f7cd, 0x166eb457, 0x7c780b8d, 0x80dfcf56, 0xff9c76c7, 0x1fe166c7, | ||
1611 | 0x3b63c60f, 0x3c073ff6, 0x3c1739ee, 0x939de87e, 0xcfe30799, 0x7f093b32, | ||
1612 | 0x87329f2b, 0xbea4b0ad, 0xf52fd2d9, 0x333c335f, 0x5e5627aa, 0xd71fb0d4, | ||
1613 | 0x8549f2b9, 0x6bb2acf8, 0xc26c35c5, 0xf96378e0, 0xe3e910c2, 0xd903b8d8, | ||
1614 | 0x5ab2f912, 0x7f13178e, 0xff07b354, 0x734e4cc3, 0xf54ef498, 0xbffb634e, | ||
1615 | 0x9b30f945, 0x24ce04f2, 0xf1b1b79e, 0xf1d0b2f1, 0xe248be47, 0x8b26717c, | ||
1616 | 0x619e1c91, 0xd0f7c429, 0xbb608bee, 0x33fca2e6, 0xdc6291db, 0x314cac9f, | ||
1617 | 0x6e8e4fec, 0x4ff21930, 0xc9b1f3b1, 0x5fec4cca, 0x6730e42a, 0x6fb0c99d, | ||
1618 | 0xee321b97, 0xa737e5eb, 0x5a63ea1a, 0x9ffa1846, 0xd0cf25b7, 0xbe7c2e3e, | ||
1619 | 0x9d82fda1, 0xf1f50d13, 0xfa1b17ed, 0x6659d85f, 0xae4717a8, 0x749ff432, | ||
1620 | 0x3ea18e78, 0x4326fba5, 0x2f6fa9ff, 0xd45fb435, 0x7ed0cab3, 0x0c6bc7c9, | ||
1621 | 0xeffb4bf5, 0x2c8ff432, 0x00ac38a9, 0xff025efd, 0xe086f314, 0x67c8a857, | ||
1622 | 0x99acfe07, 0xfc0e4f90, 0xa8c4d0b9, 0x2bc867dd, 0xa673f81e, 0xf81f9f1f, | ||
1623 | 0xfb1f8973, 0xe7cb3295, 0x5952e2f1, 0xdb19b0ce, 0x0be05553, 0xc0d96fb4, | ||
1624 | 0x569a9817, 0x7203f28d, 0x39454235, 0x0fc3a7fb, 0x469d0215, 0x46482cac, | ||
1625 | 0x34f20d3b, 0xbd373d42, 0x27ef8394, 0x962da792, 0x290f1b96, 0xac7ded83, | ||
1626 | 0x38e590be, 0x5bade655, 0xbad37de8, 0x65a7616c, 0xb230f17d, 0x5f9f9233, | ||
1627 | 0x7a1c5333, 0xe3d70366, 0x86a43667, 0xdf9efef9, 0x0fe75c39, 0x24e8399e, | ||
1628 | 0x9efdcefe, 0xaf01db93, 0x892cebd3, 0x7f2901da, 0x323f22f9, 0x7945582a, | ||
1629 | 0xe3fe418f, 0xb8f59ea2, 0x1ff573ce, 0x99c6fd63, 0xff021e92, 0x05d1d709, | ||
1630 | 0xf1f68972, 0x27da1483, 0x7161e35a, 0x36b6eff7, 0x16770f36, 0x4b2e7e0c, | ||
1631 | 0xdce1cd65, 0xb40f30fb, 0xe159f14f, 0x1fd86dfd, 0xbc587bec, 0xb5ea26d7, | ||
1632 | 0xbd454d21, 0xebe22b56, 0x521e71d8, 0x7e466f4b, 0xdd96a1d8, 0xc5d14eac, | ||
1633 | 0xdc5a0dd3, 0xd077c7bc, 0x0473c089, 0x0d80efaa, 0xcf5fefe6, 0xff306d7c, | ||
1634 | 0x0ca78b1a, 0xf4ee6beb, 0x9af21d12, 0x7ae1667b, 0x5dc13a73, 0x73fbd9d7, | ||
1635 | 0xc056a780, 0xd4f08b53, 0xa714fda9, 0xb0a8bff5, 0x879c5cb6, 0x5f66bb8f, | ||
1636 | 0x487e432e, 0xd51ce704, 0x72057c42, 0x738e3770, 0x4ed09aa7, 0xf28e7ddf, | ||
1637 | 0x638d5eb0, 0xf2ec065f, 0xf15bed52, 0x137072c7, 0x9eb44a78, 0xe196d0ff, | ||
1638 | 0x9d39b728, 0xc0a89fa5, 0x60e039b7, 0x9f22a726, 0xd1bef632, 0xebef623f, | ||
1639 | 0xf344d0fc, 0x7689557e, 0xf1157def, 0x0631f7ce, 0xc7231dc1, 0xe46f75de, | ||
1640 | 0xebe9a417, 0x4c17e7af, 0x10950012, 0x306c14bc, 0xe5e2db88, 0x95f6738b, | ||
1641 | 0x2427561e, 0xbdefe786, 0x377881ce, 0x4bfd5e46, 0x7c8f5ec7, 0xb311fb77, | ||
1642 | 0xb2845562, 0xc84178c1, 0xe677b2eb, 0xf0e8a664, 0xe5b1b5b3, 0xaf27556a, | ||
1643 | 0xf7f012a3, 0x9ff72a9b, 0x5c3635b6, 0xe380595d, 0x3d7a4c7a, 0xca13dd90, | ||
1644 | 0xd27988dd, 0x8c2f870e, 0x9327acfa, 0x702b58f0, 0xbe0a6c90, 0xf4bcfc89, | ||
1645 | 0xd7ca6ec2, 0xe97c88e6, 0x297e7168, 0x2ae3be76, 0x97f847cf, 0x8c2958da, | ||
1646 | 0x16cda7fb, 0x34b277f2, 0x08e28798, 0x5a5b9d07, 0x0a6c0636, 0x93db2fb4, | ||
1647 | 0x0c53f5c6, 0xd0c6e15c, 0xa20a1bd5, 0xc71c02f3, 0x3dbc1e51, 0x7f3859c1, | ||
1648 | 0x4451c22e, 0xe11276f2, 0xe84d48fb, 0x473c9dcf, 0xd21beb79, 0x43c6c4fe, | ||
1649 | 0xf0e2fd09, 0xa7e485fd, 0x7e4dffe6, 0xa1c3fa31, 0x0c3fa8a2, 0xd058b2eb, | ||
1650 | 0xeb8c594e, 0x8b55d9d2, 0x95d6dce5, 0xaeda1964, 0x92416e3e, 0x32407389, | ||
1651 | 0x9ae1230f, 0x57f2e169, 0xe618d1ef, 0x4e51ead3, 0x54d9f0e3, 0xbb88628b, | ||
1652 | 0x3138adbf, 0xede6553f, 0x7887bda4, 0xe5c2e311, 0x33a3e24e, 0x0bfbd6de, | ||
1653 | 0x877c7327, 0xc8f7c086, 0x04322375, 0x0f887d5e, 0x16f1c789, 0xbc069ea3, | ||
1654 | 0xb5e2e2fa, 0x326af006, 0x57ca75e0, 0x95fc95e0, 0xa98f9daf, 0x9cefee34, | ||
1655 | 0xa5dff816, 0xde703304, 0x5bbc3753, 0xbab0f982, 0x086b9f79, 0x679ed7d7, | ||
1656 | 0xe7e9b32e, 0x981ef991, 0x9cf383c7, 0x9aafe1be, 0xe825a7d0, 0x39ed3667, | ||
1657 | 0x35cf192f, 0x93f38ad4, 0xfd5af6a7, 0x3e5f8e8a, 0x1e70f2fd, 0x1b4fa5ea, | ||
1658 | 0xf2c7ccaf, 0x5bcf2a54, 0xf53bda9e, 0xa9d5f210, 0xb12d1c9f, 0x9ea738c0, | ||
1659 | 0xd2a25a3f, 0x60d85b3e, 0xef2f6a7f, 0x203b412e, 0x7c03daf3, 0xdfaf8b67, | ||
1660 | 0xfcfe0b56, 0x4aafebda, 0xc8d5e788, 0xef1ca707, 0xebfae096, 0x0f09675c, | ||
1661 | 0x7cb9db0f, 0x6da1923c, 0xd32332c4, 0x17fa10f4, 0x4fc1a45a, 0x5b8788db, | ||
1662 | 0x75265822, 0x7971fbb7, 0x23bbb7ce, 0xfa7bba58, 0xbd7618fd, 0xe201fe05, | ||
1663 | 0x67b1f3d5, 0xbe1fd63f, 0x33e504f2, 0x1ab017d9, 0x80916380, 0x3b59f7e3, | ||
1664 | 0x3a04a91e, 0xf37d2efc, 0x7e86e423, 0xf685eb01, 0xa0dff19b, 0x1e818e87, | ||
1665 | 0xdc6c80f2, 0x7cfb72a4, 0xb512a553, 0x191ff853, 0xe9187947, 0x8a3545d3, | ||
1666 | 0xeea5aec1, 0xd3f94199, 0x6429af3e, 0x61a47581, 0xbff81a56, 0x66ceeb4f, | ||
1667 | 0xc5cec0df, 0x3883bf96, 0x9d9d7de5, 0x0952acfa, 0x67df30a9, 0x7fac8f42, | ||
1668 | 0xd3f1127d, 0x178a65e6, 0xfefb18f1, 0xcb5eeb63, 0x727a099f, 0xf3879dd8, | ||
1669 | 0x6efc8267, 0x90027916, 0xa7cf0537, 0x80f22c3d, 0x877b866b, 0x9ae3ede9, | ||
1670 | 0x8252f323, 0x46defaba, 0x89d6dfbe, 0x7ca15ee7, 0xed7b9c41, 0xfaa2cc6a, | ||
1671 | 0x2a5e8d4b, 0xe9638d23, 0x434b66f9, 0x7bdf9e0a, 0x3342c2cd, 0x77bf97c1, | ||
1672 | 0xe51bff78, 0x1ddb42e0, 0x699b2fbf, 0x33d6f187, 0xd6f8cf3a, 0x13ddefbd, | ||
1673 | 0x1df00e9a, 0x1929a4f8, 0xd2a740ed, 0xa61c478e, 0x23fdbe2a, 0xcb5d4f51, | ||
1674 | 0x75a54f48, 0x306e742a, 0x3611cbad, 0xb7d3fce9, 0x765edc2c, 0x72de785b, | ||
1675 | 0xb442da2a, 0x7fa5b32f, 0xef413fd7, 0x0fea0cc7, 0x7b9e1f81, 0xa98f9d8e, | ||
1676 | 0x4ecf94fd, 0x7c30def4, 0xbfb9fc6f, 0xad4c77d7, 0x2a89f3a0, 0x66a77fb7, | ||
1677 | 0x903eb667, 0xcfebfbcb, 0x79e1f497, 0xfa7238ce, 0xbdef3117, 0xc7f74e16, | ||
1678 | 0x64768d72, 0x8fdb9597, 0x1df316ff, 0xa392dc68, 0x9651bf3f, 0xffe8dfc0, | ||
1679 | 0x335ff2a6, 0xe488ff68, 0x68f596be, 0x3f72bcfc, 0x11fc49e5, 0x3619af8e, | ||
1680 | 0x577d470e, 0xca04b2b1, 0x97ae4e19, 0xe50eb0d2, 0xeb9c550c, 0x689cfc66, | ||
1681 | 0x2b56455a, 0xe28e5f9e, 0x5a73af81, 0x1c16bf4f, 0x7dc3dfcf, 0x7c0fb4df, | ||
1682 | 0x29ebf20a, 0x7fee39a4, 0xfd11b6cc, 0xaa825b67, 0xbc52f486, 0x9d22578f, | ||
1683 | 0x3a238cf6, 0xec958fd9, 0x5c3a464f, 0xde4cf2cb, 0x2dec1f28, 0x9c627a05, | ||
1684 | 0xb6f14fb4, 0xa73ee8b1, 0xe340bf9c, 0x23e595f8, 0xc877e04a, 0xea5a05e7, | ||
1685 | 0x784fdc0c, 0x82581ec4, 0x7e113247, 0x678c165b, 0x478cde0f, 0x5debedd2, | ||
1686 | 0xf4e0154d, 0x3b40b5ed, 0xba360bd4, 0xfe00369b, 0x4704a6f6, 0x6b9796e2, | ||
1687 | 0x30e9a3bd, 0xb970a7b6, 0x68e8d828, 0xd1c8b942, 0xe61f3c3c, 0x5f22e7f4, | ||
1688 | 0x503dd40d, 0xdbabaf1f, 0xaf2aea62, 0xbed575cb, 0xc843e7fc, 0x5c5d75a7, | ||
1689 | 0xd6f006be, 0xfea0ac59, 0x7e135f3c, 0xf4398392, 0x547fddfb, 0xbe341382, | ||
1690 | 0xedc85d8f, 0x4a07dc98, 0x81f62ed0, 0x828b58b2, 0x1e04767a, 0xff47cb60, | ||
1691 | 0x6cca9bba, 0xdca54fd6, 0x59dbc8df, 0xea04607c, 0x76605353, 0x35e7d239, | ||
1692 | 0x18f7970b, 0x72b1efbc, 0x2d6bdd3e, 0xf985659d, 0x63d01e1e, 0x46ba5f7c, | ||
1693 | 0x81b669e8, 0xc15eedeb, 0x9b369fbb, 0xc9c01a42, 0x79e83876, 0x553f388d, | ||
1694 | 0x4c81cef3, 0xd4f8d7dc, 0xc9e22acf, 0x7b085cc5, 0x5b5f8f11, 0xb946822e, | ||
1695 | 0xef907fa8, 0xcc7c819b, 0x21d57c45, 0xd937505c, 0x847ce9ba, 0x87f69ee5, | ||
1696 | 0xff3718cc, 0x73c1e2d8, 0xbeb9d58e, 0xa2fe78fd, 0x0fae5f7a, 0xc3bde555, | ||
1697 | 0x9d577c79, 0xd1399ed2, 0xbacbe519, 0x21d94dce, 0xfb27f7c0, 0x95f2477f, | ||
1698 | 0x61ec878f, 0xa38edafc, 0xd79e105a, 0xa1a7bc75, 0x4524fd61, 0xda3e81fa, | ||
1699 | 0xb877bdb7, 0x9c12f92f, 0x3c6657ef, 0xa7803859, 0x14ee96d1, 0xc3c979fd, | ||
1700 | 0xa0fde7a0, 0x3d035fcf, 0xd021e58f, 0xf3d07eff, 0xd7f8be47, 0xaf3fd44c, | ||
1701 | 0xccd7c25a, 0xcd9e71c1, 0xe15e60f7, 0xc1f84f53, 0xb4ff5089, 0x3d6f8c60, | ||
1702 | 0x6b3e57d4, 0x7fbc600e, 0x96716d44, 0x6083ff40, 0x9dfde847, 0xc2f4eaff, | ||
1703 | 0xdb0583f3, 0xf471bd33, 0xd36795dd, 0x60981f99, 0x7cef997b, 0x36078f94, | ||
1704 | 0x976c9bfa, 0xbeb9f802, 0xea18ac55, 0x0d93795a, 0xa99365e4, 0x1f62d1fd, | ||
1705 | 0xc73867d5, 0xce597f81, 0xf2b187e5, 0x278e52a6, 0x71b4dfaa, 0xdfdc0cd3, | ||
1706 | 0x8a7bbb5b, 0xc89a7c82, 0x7d9d56de, 0xc825ce8e, 0x6b263e7a, 0xd4aaef80, | ||
1707 | 0xaa59e510, 0xce84fece, 0x271acc33, 0x61fe68f3, 0x1f2dc68c, 0x8edd7886, | ||
1708 | 0x13177c7b, 0xbdf843c9, 0x68b2f6c2, 0xabc1f51d, 0xd0be02a9, 0x41334d8d, | ||
1709 | 0x0cb11fbe, 0xdcf1fbb4, 0xe12b9aa0, 0x523c2167, 0xfb26aafc, 0x099a6e2f, | ||
1710 | 0xcd76ea41, 0x36867e38, 0x02afdfd0, 0x249abe1f, 0xfc682beb, 0x6293fd41, | ||
1711 | 0xf1c997fa, 0xf3c2e3eb, 0xb75a3d88, 0x2ff57f41, 0x59fbe8d6, 0x3b68ff88, | ||
1712 | 0xc727978d, 0x56f0475f, 0xf6f3370f, 0xbf65e850, 0x4dcfa51a, 0xeb4dfdda, | ||
1713 | 0xdaaf6f01, 0x97a8a57d, 0xa465affa, 0x7cff916f, 0x49b87e3a, 0xb3aad9e8, | ||
1714 | 0x39fd3157, 0x58b49b92, 0x90c75cba, 0xde3ee76e, 0xa2f186f9, 0x7a604ce3, | ||
1715 | 0x7e047ffa, 0x6fb7584d, 0xedd762bf, 0x03ce90b3, 0xc510b3f3, 0xf35b55f3, | ||
1716 | 0x07a75859, 0x5f1c3ffe, 0x027f0e17, 0x5ffe6638, 0x61ac6386, 0x451c28be, | ||
1717 | 0xfefef806, 0x80259470, 0x02b7d663, 0x959dac47, 0x67617ee5, 0x0d5452fb, | ||
1718 | 0xbdb63bf7, 0x8ffda564, 0x96c85374, 0xceba7687, 0x5b7a7644, 0xbf1f8b6a, | ||
1719 | 0xc6b6d8bf, 0x1ee1e74b, 0x722a04b1, 0xdd0a7fc1, 0xabfda269, 0x6ebe796d, | ||
1720 | 0xf6dadfdc, 0x26be792f, 0x8b3d349c, 0x071662ec, 0x3c5b6d81, 0x087e2aff, | ||
1721 | 0xa3efef8d, 0x3e3b44e9, 0xf646c532, 0xe59cdb72, 0x9f4fff94, 0xda1c7673, | ||
1722 | 0x0a7e9d49, 0x66531d91, 0xf3353f93, 0x3c26d6be, 0x149191ef, 0x2ffd1c78, | ||
1723 | 0x74dad425, 0x76bc7878, 0x58667fae, 0xbe6066db, 0xcf595b68, 0x73938c38, | ||
1724 | 0x803e702e, 0xfcf5abaa, 0xff311311, 0xbc1adc73, 0xbb780ad6, 0x1bf22aca, | ||
1725 | 0xf2852c29, 0xc9051562, 0x6dd2c2a8, 0x5a253ed0, 0xa7caf87f, 0x3191cf29, | ||
1726 | 0xefc860af, 0xaf814b18, 0xa67a3abc, 0xf641ffa9, 0x461afeb9, 0x8bf47179, | ||
1727 | 0x172feff5, 0x027d7d7e, 0xb4e81dff, 0xad1ce11c, 0xd4c21cf4, 0xd1e75d61, | ||
1728 | 0xd45f18d9, 0x139955ae, 0xe46d496c, 0x8bffdc77, 0xfd6207f1, 0x22de595a, | ||
1729 | 0x7c44acfc, 0xf3958cf1, 0x25ff80e5, 0xe40fadfc, 0xb3f0a37e, 0x1ea2ed2a, | ||
1730 | 0x9e506e73, 0xfe13ec17, 0xfc62df4f, 0x37d61268, 0xd769978c, 0xee7ce904, | ||
1731 | 0xe5deb172, 0xd1334a5b, 0x7fdca9bf, 0xd963ad23, 0xf7e4d9e6, 0x84bcdf2f, | ||
1732 | 0x784a7bce, 0x9bfc632a, 0x51265acf, 0x1d112bbe, 0xfd221fa4, 0x273f5899, | ||
1733 | 0xde157bd1, 0x41cfa256, 0x58edafcf, 0xe67cc36e, 0xf67fa8c4, 0x7367c42a, | ||
1734 | 0xf1a6dca0, 0xb31e09ef, 0x1b6d38f3, 0xb6005f7e, 0x399650ff, 0xb957d715, | ||
1735 | 0xdf092329, 0x716b623f, 0xf91e5ca2, 0x61d7d7e2, 0xf093f43f, 0x9529ccbc, | ||
1736 | 0x9eb2a5fb, 0xb72b9e08, 0x55e93f70, 0xe1accf31, 0xeff3661f, 0x1879c4ab, | ||
1737 | 0xe97ca696, 0xec7efc48, 0xa69d9879, 0xaf903bb2, 0x9d7810ef, 0x873e0b62, | ||
1738 | 0x155793f5, 0x5ea79f12, 0xc7cdd079, 0x79d79e37, 0xd3a5c44c, 0xee4dc3fb, | ||
1739 | 0xbfdf3a74, 0x71e5e1db, 0x23ac1946, 0x653e4fed, 0x7f1e8ea9, 0xaf8978b1, | ||
1740 | 0xc528fe31, 0x47d7a438, 0x702ce0f1, 0x0579f82f, 0x7e48df23, 0xa6f3eafb, | ||
1741 | 0x2dff066d, 0x69f4de7a, 0x8b4edbf2, 0xacf5e5b8, 0x724be6c8, 0x51ef6c31, | ||
1742 | 0xdebd4e31, 0xbf416e99, 0x16bcc030, 0xf5ae4b8c, 0x16eb9cc5, 0x11aedae7, | ||
1743 | 0x7dc209fa, 0xfa0daefa, 0xaf15f619, 0xcfac669f, 0x37eb1bf6, 0x7effc454, | ||
1744 | 0xee374d8b, 0xdf169fdb, 0xf0299e75, 0xb10ca726, 0x002d82de, 0x3bbd6eb4, | ||
1745 | 0xae127f54, 0x9bcb4777, 0x26fe7d6e, 0xb0584f36, 0x4f212345, 0x900eee34, | ||
1746 | 0xbca43c0f, 0x9d688580, 0x99dda94f, 0xc0a0b8fa, 0xb579ce22, 0x12f33aff, | ||
1747 | 0x36c391a0, 0x9fea266c, 0xe7eb955e, 0x4afefbbe, 0x4b18ebf1, 0xcefc0de4, | ||
1748 | 0x168bcc78, 0x2853ee2f, 0xff285a2f, 0x4edb3f51, 0xa5bf03df, 0xf7a1935c, | ||
1749 | 0x3900c7c7, 0x5d33ae10, 0x5f3c8663, 0x9bacf73a, 0xb79ec5fa, 0xe7cdfbff, | ||
1750 | 0xcec73c24, 0xe23e5ec7, 0x16007bc6, 0xf9d1366c, 0x5c8b85ab, 0xa4889df4, | ||
1751 | 0x6338ec6f, 0xe171a8b6, 0x84ff844e, 0xb8f4b774, 0x74e6ff71, 0x4af299bb, | ||
1752 | 0x6de3edb1, 0x5f8b37ca, 0xbaf31a17, 0x43fd9ea7, 0x57d60461, 0x375cf4ab, | ||
1753 | 0xd8e2972e, 0x638c36f1, 0x5f719d37, 0x3fbe7a49, 0xaefba033, 0x86fdb7a9, | ||
1754 | 0xe3cf20a4, 0x4903be18, 0x2f128fc4, 0xea70f089, 0x7e16edf0, 0xd164327e, | ||
1755 | 0x28c6d7e7, 0xef9439fe, 0xa7b2a4db, 0xd1a77ce2, 0x7be71364, 0xc44c9ed5, | ||
1756 | 0xfda5dd57, 0x2f2ab714, 0x41eee87e, 0x7ef160bd, 0x23e0e29f, 0xe97b0710, | ||
1757 | 0x3c775efb, 0xfc1bfdfb, 0xc4ec10ee, 0x8fb71b02, 0x12f3edb1, 0x17f8a39c, | ||
1758 | 0xecdf8741, 0x9bd1e4ff, 0xd013e087, 0x6f30733c, 0xd551ef35, 0x3aaef983, | ||
1759 | 0xdbc90f4b, 0x3718affc, 0x76fc7f11, 0xa0f29dbf, 0xe9da160b, 0xf9d888fe, | ||
1760 | 0x8f3dab4e, 0x9df30cde, 0xff707806, 0x00a8f4ff, 0x66f4f1e1, 0xf6fb83d5, | ||
1761 | 0x983ae7f3, 0x54ffd74d, 0x08f9f1c7, 0x0cce99df, 0xba701f3a, 0x49df3e2b, | ||
1762 | 0xfb655d3c, 0x45c57986, 0xf209fcc6, 0x8eadca1f, 0x3c57feff, 0xc70abbfe, | ||
1763 | 0xd7e1c29e, 0xd53a8b9f, 0x8f1c9f91, 0x7c1f72ae, 0x1cf18b4c, 0x2ee80955, | ||
1764 | 0x775eb71e, 0xb180acb0, 0x0c8eb261, 0xa075f30e, 0x7071e39e, 0xfb24f104, | ||
1765 | 0xdd7cd43f, 0x8577dc4c, 0x03f11fba, 0x9d5bf9ef, 0x7762bfd4, 0xe8cfc211, | ||
1766 | 0x059ab9bb, 0x3b01e64e, 0x74a399f4, 0x54f00db3, 0x43407dd2, 0x6475857f, | ||
1767 | 0xc46bfad0, 0x6ef0b1fb, 0x68fd8bb3, 0xe4ca87bb, 0xc23ffdb7, 0xba3a4a7b, | ||
1768 | 0x49f8bc93, 0xfc6a4756, 0x5d9a0073, 0x60039c31, 0xf1e50f6a, 0x3cf06632, | ||
1769 | 0x473eff6b, 0x87894db8, 0x3bfcf59f, 0x2abb18af, 0x8d46b7e5, 0x11ad7d90, | ||
1770 | 0xe6abf5f6, 0x5bdf10ef, 0x9ac492be, 0x355df46d, 0xbfe013e0, 0xb41717fe, | ||
1771 | 0x7af9403d, 0x1cac9dfe, 0xf31164a7, 0x47fae9b7, 0xe33cf26c, 0x833d7cc3, | ||
1772 | 0xbd70e7de, 0xfb033a02, 0x4cf6a667, 0x01bff250, 0x7e316e1f, 0xeb6b5267, | ||
1773 | 0xf43d4429, 0x15fc1284, 0xedfeadd2, 0x77ac4c9e, 0xfc9279bc, 0x67c573ae, | ||
1774 | 0x7f3205ee, 0xeed0d114, 0x3a5dddac, 0xb57f286c, 0x9d40e306, 0x7de28c7e, | ||
1775 | 0xf187c516, 0x5abcc3c6, 0x2c11d9cd, 0xdd143694, 0x126859b2, 0x9fdf33c7, | ||
1776 | 0xdf8099e8, 0x6e3ac1ef, 0x2ff5039d, 0x3fccf462, 0x69e9fc2a, 0x574cffdc, | ||
1777 | 0x730d41d9, 0xdd376a6c, 0x214bf0bf, 0xf214bf2f, 0x33dff1d2, 0x74fa46ae, | ||
1778 | 0xdcf269bc, 0x97e3ab93, 0xc1b21624, 0x7b5bd77b, 0x8efe827e, 0xebf6cbac, | ||
1779 | 0x869d2fc1, 0x72e36afc, 0x66b5e523, 0x7d397c51, 0xfe26e6d2, 0xc476f61c, | ||
1780 | 0xc7ce798d, 0xff23e951, 0x7f271fb7, 0xccd3a3a1, 0x61cd93f0, 0xa0e6828b, | ||
1781 | 0xc1ff8a33, 0x2a3d70e3, 0x96a21de5, 0xde425c0b, 0xe57bdf91, 0x951e59f7, | ||
1782 | 0xc2b5c7fc, 0x3c65ec7f, 0xfb11a87e, 0xf02a7fac, 0x1afe39d3, 0x5c600b3b, | ||
1783 | 0x3f8f27f7, 0x78fc8539, 0xdf2d9fa3, 0xbdf67e93, 0xa55e39eb, 0x38a362de, | ||
1784 | 0xf266647f, 0xaf296bfd, 0xf687ab2c, 0x207f24b1, 0x03d3c4ff, 0xd47a0a97, | ||
1785 | 0xe819359c, 0x46a7a51a, 0xdfcf94f4, 0xd2127b07, 0xfa5cc39d, 0x377d0171, | ||
1786 | 0x51f31b73, 0x66b6e33e, 0xe4e90b07, 0x3e51e3b6, 0xc63dc76f, 0x798967f9, | ||
1787 | 0x3e38925b, 0xf877c43b, 0x91dfaa1d, 0x37d5145a, 0xae075f80, 0xabcbfd4f, | ||
1788 | 0x79498f14, 0x95dce390, 0x7ee1f7c4, 0xadf357f1, 0x2bb67db2, 0x76a5deba, | ||
1789 | 0x2f24b7d3, 0x27de437e, 0x24999f8a, 0xc5e58947, 0x92f215f3, 0x4d05f84e, | ||
1790 | 0xf97b46ea, 0x9f1ff09c, 0x68aa6c3b, 0xdb7fc38b, 0xe73d7c6d, 0xec01a867, | ||
1791 | 0xdb844177, 0x32fd44b3, 0x15f9c553, 0x3c589781, 0x3fc7e7a4, 0xd056b2ff, | ||
1792 | 0x7f8ca6a5, 0x22f78ccf, 0xca0c3e60, 0xd78c1f6c, 0xd10ce65b, 0xef22cbf3, | ||
1793 | 0xcd493ee2, 0xca2f56f3, 0xf6f3ef6f, 0xf49bcc2a, 0x6aad6f3e, 0xc7a60e73, | ||
1794 | 0x1e8d6fe6, 0xebfd6f7f, 0xf42bf49f, 0xbecd3b63, 0xf3c1de31, 0x845dd927, | ||
1795 | 0x93bd019f, 0x68d83fc0, 0x3b3c7273, 0x792d9e38, 0x5ba78f5c, 0xb1ff788d, | ||
1796 | 0x33748790, 0xd7a0b644, 0xfe7905a6, 0x90bb39e9, 0x5b87900f, 0x4eec2f90, | ||
1797 | 0x2c7efe03, 0xafa969fc, 0xc6575f1e, 0x7ee1a78e, 0x6ff6886c, 0xc91f7e3b, | ||
1798 | 0x4b7a79c6, 0xb56fdfe3, 0x6309f05b, 0xea6eff46, 0xfb42af4c, 0x678aede8, | ||
1799 | 0x9ff68b0c, 0xe7bfceda, 0x061ddb35, 0xf02cdbbf, 0x7638e521, 0x3cc40f9e, | ||
1800 | 0x90cfa81d, 0xc31ece2e, 0x03e4bb3e, 0x7ae4d7a9, 0xfd911da4, 0x67f82f7e, | ||
1801 | 0x8ccfe0ba, 0xfc1f3e26, 0xca9ac2b3, 0xdeff01ed, 0x7841eb9d, 0x9da2b21e, | ||
1802 | 0x78f34160, 0xaddd67a0, 0x16f7d18c, 0x33fc1f62, 0xbb2df047, 0x07e81d6e, | ||
1803 | 0x7e16fe92, 0xd738875f, 0xd407fd28, 0x7a9d134f, 0x0e1c43b8, 0x55f5c2b3, | ||
1804 | 0x70927e8c, 0x7cfc3ac0, 0x138d171c, 0x8edc6fb5, 0xb58f42a9, 0x6322ef8a, | ||
1805 | 0xfe7fe6e5, 0x569b911f, 0xe9025e71, 0xbcdf4f10, 0xc96eec25, 0x0562fedb, | ||
1806 | 0xc04c6bf8, 0x624fc3e9, 0x1ce7ba4a, 0xb0bd40b0, 0x37cb414b, 0x82855720, | ||
1807 | 0x45bc70df, 0x18f8a3e3, 0xf032e49d, 0x3e2a3fdf, 0x0366df0a, 0xa3a2dff0, | ||
1808 | 0x2e2494e7, 0xf32a19c7, 0xc3fedf13, 0x80381fc2, 0x00d4efdf, 0xdf34505d, | ||
1809 | 0x969bf01a, 0xbf4763dc, 0x43e66de7, 0xfb74e9bf, 0x8c78d312, 0xbf70b75f, | ||
1810 | 0x6e2f4065, 0xbd07ebe6, 0x6d7a8ed6, 0x477edbcc, 0x2167d411, 0x5bce30fd, | ||
1811 | 0xd379f8c4, 0xe3185776, 0x198f2925, 0xe0667b73, 0xa39d473e, 0xf75dbd61, | ||
1812 | 0x277fa07c, 0xca8dcff4, 0x35ca0d75, 0x82b53bcc, 0x2b4eb3b7, 0x8b160fdd, | ||
1813 | 0x47bec62f, 0xeff226f3, 0x7ae24c6e, 0xd234f50d, 0x6ec21ca9, 0x4afdc03b, | ||
1814 | 0x798cc86e, 0xe4c657d4, 0x957dc44e, 0xa2c14943, 0xa67ef035, 0x29983738, | ||
1815 | 0x26669bce, 0x126b72f1, 0x0e99cbd7, 0x5c1d065e, 0x79ba67bf, 0xef79d8ff, | ||
1816 | 0x54defd12, 0xed7f064c, 0x7c3c8204, 0x38af9f30, 0x327e88cb, 0xed42bf4f, | ||
1817 | 0x8002cdff, 0x9997456f, 0x4d3b07f2, 0xea24fac1, 0xfb1d12a7, 0x0f8b3d4c, | ||
1818 | 0x1ef10123, 0xf3128ba5, 0xb167d493, 0xa3ea34fe, 0xfcf20d9b, 0x3be3825d, | ||
1819 | 0x9190afb8, 0xfafcbfd8, 0x027e7d7c, 0xb7c26b7f, 0xfa496fe2, 0x8c80bccb, | ||
1820 | 0x307f25bf, 0x6bad20f6, 0xbfce4cea, 0x6177afa0, 0xbafa0afc, 0xebc91a68, | ||
1821 | 0x6bbc780f, 0x719178e3, 0x4f66667c, 0xc0b7c61d, 0xbc9ef487, 0xe4f729f7, | ||
1822 | 0xe41e749b, 0xf537248d, 0xb7f0e5db, 0x5bc9c526, 0x6869a88d, 0x8487fba2, | ||
1823 | 0x42f795dd, 0xafdf6a8d, 0x19be3aa8, 0xfee1c555, 0x60c59269, 0x7d443a17, | ||
1824 | 0xd3971277, 0xa5115551, 0xd88dfa00, 0x015143ba, 0xfced119e, 0x0688f77c, | ||
1825 | 0x0c9ff746, 0xf0e61bcc, 0x95870d8e, 0x70a28adb, 0x17669b37, 0xe69e0079, | ||
1826 | 0x09af874c, 0xe0ce699e, 0xcd77080b, 0x039d08b1, 0x5bac7a9d, 0xd32978c5, | ||
1827 | 0xf205ffe9, 0x6bd7849b, 0xbcc08cf6, 0x8718e3bd, 0x9fc065b3, 0x79e6c9ef, | ||
1828 | 0x3c0aefc9, 0xc9fb09b7, 0x4efdd30e, 0x336f6e4e, 0xa6db19ef, 0xfd26673f, | ||
1829 | 0xccd7e858, 0x72e3ee28, 0x614f799e, 0xb8ba03db, 0xb03f3cb1, 0x0f979f03, | ||
1830 | 0xbf11371b, 0x307fcfb7, 0xc73ee2a2, 0x154d5b0b, 0xf6fc38e1, 0xa75394b6, | ||
1831 | 0x2eb8d7ff, 0xc957ff09, 0x4967ec87, 0x1def9a1a, 0xb7060f82, 0xa5ed443f, | ||
1832 | 0x84dfa64f, 0xd06cd6f0, 0x48f16e18, 0x033a67bc, 0x239f1027, 0xc4155bda, | ||
1833 | 0x9f8e63c9, 0xae0e7828, 0xce798aba, 0xaef6d203, 0x7bc1cb6b, 0x7cee6a97, | ||
1834 | 0x79ef072e, 0x38c0f092, 0x98d6ef84, 0x0fd28b73, 0x67e11ff9, 0x67033b94, | ||
1835 | 0xcebafc70, 0xb7bfb44d, 0x5fbf0772, 0xcfbae127, 0x9eb02f11, 0xd5bfc8f5, | ||
1836 | 0x5478bfc0, 0x8dfb0147, 0x6859acf4, 0x6a26efa3, 0x63fe7176, 0x18f0b41b, | ||
1837 | 0x8eefb7ac, 0xe47da098, 0xa61f7edd, 0xed77abef, 0xf0e99656, 0x4c26b235, | ||
1838 | 0xb9e77bfb, 0x97227ee4, 0x4bed11f7, 0xb38f886a, 0x63e43e1c, 0x71d92fcc, | ||
1839 | 0xfdcecf3f, 0x1e52deaa, 0x425af49f, 0xafd0bd63, 0x87c93737, 0xbabd3bdf, | ||
1840 | 0xdefa0afb, 0x35bcf5d0, 0x7ca3b8a2, 0x6f7ac0f3, 0x40f9c229, 0xdf20f339, | ||
1841 | 0x835fde80, 0x2726f2f5, 0x1a9fbe43, 0x77a9c743, 0x3bf6be73, 0xc31ef2dc, | ||
1842 | 0x63d7c889, 0x81aedc1d, 0xeebf205d, 0xf3c38590, 0xdd74e33c, 0x75c8149a, | ||
1843 | 0x87f7e064, 0x54f18611, 0x86bb454a, 0x387608f9, 0xbd5bf095, 0x37d683b5, | ||
1844 | 0x7bf71772, 0x92b577aa, 0x82fd4a3c, 0x7b7bc0f8, 0x457be2a7, 0x47040fc4, | ||
1845 | 0x943b93e9, 0x927fd0e3, 0xbcf3ccc3, 0xc7ec775b, 0xf019887b, 0xd02fc60b, | ||
1846 | 0xce4affbe, 0xe96e2a3f, 0xce3dc80d, 0x59e7c453, 0x097b93a6, 0xbff91c77, | ||
1847 | 0x1e77e118, 0xe5c83eeb, 0x6fefc23f, 0xe921fc12, 0xf5c1c330, 0x21c7a48f, | ||
1848 | 0xe300e80d, 0xa24bca1c, 0xa23ca471, 0xfa11ccfc, 0xc68ce4c9, 0x090e1249, | ||
1849 | 0xd9472ee7, 0xb8298e15, 0x775a6eee, 0xe09556ed, 0x0502d72e, 0x3b7c75ab, | ||
1850 | 0xfbf9c1cf, 0xb57782c0, 0xf9be781e, 0x9f0947e7, 0x3f0a2db5, 0x5472dac7, | ||
1851 | 0x3e7a879b, 0xe319acf4, 0xff19ab9d, 0x51cf747b, 0x7757cfd2, 0x76d7bc70, | ||
1852 | 0x736f56ec, 0xf728f946, 0x74c581e4, 0x95bb751f, 0xe9923fa1, 0x788cde0c, | ||
1853 | 0x024fc418, 0x25cf520f, 0xf4871392, 0xf91a4253, 0xe421e029, 0xf520dc62, | ||
1854 | 0xdf1156e4, 0xfe7f2730, 0x515d624f, 0x41ac10fd, 0xf927947c, 0xdf50d80e, | ||
1855 | 0x3ce8544d, 0xe933b487, 0xf51e3833, 0x37bdc4f0, 0xd287e64f, 0xb25f8c98, | ||
1856 | 0x63bee8e7, 0xe2b7d018, 0x5d04bbfd, 0x3f8479e1, 0x37687967, 0x74b1dc25, | ||
1857 | 0x6bf081fb, 0x1351f0e2, 0x476b1fc2, 0xfac05f24, 0xf73db19a, 0x41ec89a4, | ||
1858 | 0x86d6c86d, 0x98af26fb, 0x75df90e6, 0xf09b8160, 0xdf90b357, 0x67f9bc63, | ||
1859 | 0x84d4af5c, 0x777f749c, 0x256e704d, 0xdba543ed, 0xc50fb87d, 0x79b50782, | ||
1860 | 0xf774c1ae, 0xce9fbf3e, 0xcedd5c31, 0x8f4060e5, 0x4bfa73b6, 0x1fd72efd, | ||
1861 | 0xcfc7375d, 0xec858d2c, 0x6dbc51a9, 0x7d08f24d, 0xdfe5cc10, 0x3ccd7fa3, | ||
1862 | 0x7b1666f7, 0x88b3d29f, 0xcf5b5a8f, 0x2faadc21, 0xd35fbb79, 0xf2c727ef, | ||
1863 | 0xd7baf557, 0xac2ed10a, 0xa54c3aca, 0xb7a0ff3e, 0x7d057b57, 0x8be5149e, | ||
1864 | 0xa7985f48, 0xc93b727a, 0x0d07f54d, 0x0ace6f24, 0xc79c67ae, 0xd6307a8c, | ||
1865 | 0xb4772a5f, 0xdefdc2cf, 0x9e2a1ff2, 0x5ed89626, 0xde7850ac, 0x2fada3f3, | ||
1866 | 0xc19cf1bb, 0xe26bbdc0, 0x0e1bf03c, 0x3bbdffce, 0x97c4e101, 0xfe50da0d, | ||
1867 | 0xc78d57e2, 0x74296f22, 0x7dc0808f, 0x1719aeef, 0xd2e7887d, 0x7e532677, | ||
1868 | 0x375dd3e7, 0xc021f9dc, 0x72e3bbdd, 0x4de943b2, 0xfe9fe201, 0xf70fbb0c, | ||
1869 | 0xa97e20df, 0xebee8050, 0xe3765fdb, 0x3f27e4fe, 0xda2270ba, 0x9c050fb7, | ||
1870 | 0x5e667f27, 0xe7b97887, 0x865e9f99, 0x2561d5ed, 0xef6cf50d, 0x15fe1fce, | ||
1871 | 0x8ed570f5, 0x9a9f8a7a, 0x0d4bf47e, 0xe14d39f7, 0x677cfe56, 0x7dfb07b2, | ||
1872 | 0x65d37db2, 0xf6a6ef88, 0xb93f6a26, 0x07ea95bd, 0x4be9f99e, 0x33f68dff, | ||
1873 | 0xbf61f6e0, 0x4fdb3f93, 0xaa09a974, 0x04f0defc, 0xeee8fd7c, 0xa19f5cfd, | ||
1874 | 0xb07287bf, 0xc919eb90, 0x3f7f92d7, 0x8bd6e679, 0xc6bbfaf4, 0x60a5181c, | ||
1875 | 0x1f5661ff, 0x7d07d79e, 0x15fbfa4e, 0xc4ed533b, 0xce9cadf7, 0xaf74d5e6, | ||
1876 | 0xd73e7943, 0xdc61883b, 0x72febaf7, 0x91477d07, 0x4afb10e1, 0x293f1176, | ||
1877 | 0xbcc3ed0a, 0x6d05e972, 0x217dba4d, 0x9457bf49, 0x1756a3d9, 0x8b379f45, | ||
1878 | 0xb8939b79, 0xf514f93d, 0xd539c430, 0xac1efc65, 0x5f6c7f4f, 0xd6b5fe48, | ||
1879 | 0xd76bf743, 0x34be7114, 0x9a3d393b, 0xb7e57e45, 0x39630ee0, 0xcf02e41e, | ||
1880 | 0x8eeb40d5, 0xfadf292f, 0x1a6fd913, 0xbed357c2, 0x784752da, 0x0e7f11f9, | ||
1881 | 0x8ee7c658, 0x354b06a2, 0x1b592f3c, 0xe91c5e3f, 0x3dfd3274, 0x663a2376, | ||
1882 | 0xde92f28f, 0xe8c6fab1, 0x5511d2fc, 0x27dc26c1, 0x906d6ab8, 0xe17ea9ee, | ||
1883 | 0x5ee937e3, 0x2ac667e3, 0x30df8893, 0x2f76847f, 0x6a79a4e4, 0x70078f31, | ||
1884 | 0x7114ef9e, 0x17a987a3, 0x32aff1eb, 0x75fb49d5, 0x6a97a4fd, 0xdc5d859b, | ||
1885 | 0x5b19e221, 0x6bde367f, 0x2f39ef0a, 0xc09bedd6, 0xd5274e7b, 0x8fe7b3fb, | ||
1886 | 0x5a143b47, 0xabc87648, 0xa527bc11, 0x09a161fe, 0xa1e2e8b7, 0xf51738d8, | ||
1887 | 0xca77e61b, 0xe77ea59d, 0xe3296894, 0xdd3c58df, 0x3877da25, 0xea277efd, | ||
1888 | 0x16e79dc7, 0x7a09d687, 0x2cf4aa3f, 0xed0e3e47, 0x2f907bb3, 0x29eb2eeb, | ||
1889 | 0x3bb1ebd4, 0x0b4e9e04, 0x41dfc13e, 0x64cdb8a0, 0xb5df110a, 0xa4dad05d, | ||
1890 | 0xe77bb60c, 0x44757f09, 0xba41e2a7, 0xc73ad88c, 0x9bf03f40, 0x7f686bd6, | ||
1891 | 0xe4252ac6, 0x7eae76cf, 0x11e61c6d, 0xaf586e81, 0x495d98eb, 0x833b03f8, | ||
1892 | 0xe75d6cfe, 0x73840eec, 0x3eb5fa64, 0x3f0797dc, 0xe77d1664, 0xa0a6c351, | ||
1893 | 0xda3a3efc, 0xad246fbf, 0x1e786143, 0x384b51f3, 0xa3f7ed0b, 0x787d0ae3, | ||
1894 | 0x582ea63e, 0x0af24359, 0x2f7d2d7e, 0xfe40dc15, 0x26f79d6b, 0xc6a7ed1f, | ||
1895 | 0x853ef9ca, 0x1be054fc, 0xab8b1dfa, 0x7c2cbbf1, 0x7920ec3f, 0x2dccebaf, | ||
1896 | 0x9eaef845, 0x9e60f3e9, 0x8fc494ed, 0xf4dd2d2c, 0xf7a7183b, 0x27485958, | ||
1897 | 0x03eeaf97, 0xf80266bf, 0xafc17b35, 0x3fdf8099, 0x1571d9fa, 0x0d7a71c6, | ||
1898 | 0x5deab779, 0xcdef74b9, 0x7f8ed129, 0x2d7ddd5e, 0xe21195b5, 0xcfe11acb, | ||
1899 | 0xc5fd5ba6, 0x26e8ebb7, 0xfa5894fd, 0xf6e4ee3f, 0xe727bce8, 0x00463d12, | ||
1900 | 0x239f103d, 0xa26e9ab6, 0x863485f5, 0x8aaabbeb, 0xbe01ea45, 0x229ab6ab, | ||
1901 | 0xfa884f97, 0x3de3b131, 0x4f7114e9, 0xf518a05a, 0xa702f95b, 0xca87af4f, | ||
1902 | 0xbb26fc93, 0x2c628fce, 0x92e31930, 0x845d338f, 0xaf4e1df7, 0x7e0c87f4, | ||
1903 | 0xd3b8e0cf, 0xe1f8c3ee, 0x04d0969a, 0xaf0e87dc, 0xf2885a4f, 0x49d47a08, | ||
1904 | 0x781eebfb, 0xb6d6e31f, 0xb8f3b64b, 0xf9d689b5, 0xc247a77d, 0xe301b937, | ||
1905 | 0x5ac0fcdc, 0xbe5c7f6e, 0xe5d6fb78, 0x2ee7e94e, 0xbef3c62e, 0x3e9d7375, | ||
1906 | 0xff36af8c, 0xe38a5942, 0x746c85d7, 0x705d6e39, 0xf2579bed, 0x5fdf8038, | ||
1907 | 0xbaa2fc23, 0x347d1bf4, 0x7a7e20ff, 0x4e8ddb8f, 0x4ebaaf4e, 0x1c642f6e, | ||
1908 | 0x5e217a8b, 0x29ca5ede, 0x6b8c63ea, 0x39497f24, 0x3c79573d, 0xfc90096d, | ||
1909 | 0x2375869c, 0xe1f00e3f, 0x630f9c0b, 0xff8934e3, 0x8bc2f8d8, 0xef7506c2, | ||
1910 | 0x8f7d0776, 0xe69af52f, 0x3d451c0c, 0x6476d754, 0xd0abb123, 0xdc2f7543, | ||
1911 | 0x3f94385f, 0x78f95365, 0x3d2b9036, 0x1359e0df, 0x432a44d7, 0xc0df3a4e, | ||
1912 | 0xc6df5fb8, 0x1d8e8fef, 0x4f42b7ef, 0xbf4a7c49, 0xcf82f319, 0xc29ff943, | ||
1913 | 0xfa227d7e, 0xcf29d5fd, 0xfc0d8457, 0xdf0535e7, 0x44f17dc3, 0xf7be56fa, | ||
1914 | 0x7226f34d, 0x63efa97c, 0x99f325e9, 0x45d98eb8, 0xecb5fb89, 0x0c48f117, | ||
1915 | 0x3e0b14ff, 0x80e7037e, 0x07724f75, 0xbea0b917, 0xd3f99928, 0x7e8bdf00, | ||
1916 | 0x29f7e569, 0xc42fed8c, 0x655aaa78, 0x5797cc21, 0xf584b4ef, 0xa1f736e7, | ||
1917 | 0xf5ef040f, 0x33216cb9, 0x3bb95df0, 0x0671c1e8, 0xcbbd87ee, 0xc1e1e74e, | ||
1918 | 0x7282994d, 0x481ed23b, 0xf7e06575, 0x4f743d89, 0x1e0e63ec, 0x311ff44f, | ||
1919 | 0xc5cbcf87, 0xe87bbe7b, 0xacce84f7, 0xea7ca7cd, 0x61fc2f3b, 0xede01fcf, | ||
1920 | 0x1a3e7b53, 0xd493cfad, 0x55364cd9, 0xad3c6f97, 0x2b67dfc4, 0x167d7176, | ||
1921 | 0xf3f65bcd, 0x438be5bc, 0x63eb41e7, 0xf3d1fbf2, 0xfdf9b1b3, 0x6fa878e8, | ||
1922 | 0xfbf263eb, 0x6f5c5d07, 0xf9e7df47, 0xf14c77fd, 0xc7bd6fbf, 0x8bafdc65, | ||
1923 | 0xc5cfbf6d, 0x8f23abf9, 0xe3ff45cb, 0xe4fd184a, 0x115d6be5, 0x396b8fbc, | ||
1924 | 0x63bf463c, 0x311427b9, 0xf9ae51b9, 0xcdfc323e, 0xbe5f81b5, 0xe807d844, | ||
1925 | 0xbe474ea7, 0xff68790c, 0xd0f42831, 0xff57ce92, 0x72f4f18c, 0xc3a6d995, | ||
1926 | 0xbe6d4b38, 0x13fbf843, 0xba673a1f, 0x7e56ed51, 0x744c86e7, 0x6a2d86e6, | ||
1927 | 0xf455bca0, 0xf374f57c, 0xfabe72df, 0x57302bb0, 0x7fd21bf2, 0x5f5cedd1, | ||
1928 | 0x9756fec8, 0xe467373c, 0xd01377b7, 0x665dc739, 0x3ababe46, 0xc698b029, | ||
1929 | 0x4194fdbd, 0x7a569caf, 0xf201fe9e, 0x7bfe6ae3, 0xd7efb147, 0x8afaf98a, | ||
1930 | 0xc53ee9bb, 0xc97fd5be, 0xebaebf26, 0xff51b7d5, 0x817bcad5, 0x7b862c3b, | ||
1931 | 0xfc932b81, 0xf7efc4d5, 0xfba14f4d, 0x73c186ce, 0x1ab82782, 0xf6fe41e1, | ||
1932 | 0xdbf9eba7, 0x2ce78c9b, 0xba01b5ea, 0x921ef7d0, 0xcb946c2e, 0x23ae8f48, | ||
1933 | 0x36a58f44, 0x701bdd3f, 0xf0403f9b, 0x4c8e4a2d, 0x5ff018f1, 0xf7dd37f4, | ||
1934 | 0xf6e42958, 0xfdfe2d1d, 0x3e09f7e2, 0x8dfb283c, 0x4efafce0, 0x1e7aab36, | ||
1935 | 0xff234ccb, 0x2ce42c3e, 0x71cbde2c, 0xbc421ffb, 0x18795e80, 0x8e7400f1, | ||
1936 | 0xcaf5e8a4, 0xe7ba7ee4, 0x374a6fa2, 0xae7d1f7d, 0x80ac66f8, 0x8e784bd6, | ||
1937 | 0xd1385e73, 0xf0b56f7a, 0xb5df0075, 0x47af48b9, 0x87bfebc6, 0x5b80b9ff, | ||
1938 | 0x493be5ca, 0x142cbc46, 0xe091fbeb, 0x87974a93, 0xfd7c1be7, 0x3bce38d9, | ||
1939 | 0xb8f1f1a9, 0x768f8a28, 0x7fb583c2, 0x6fd01a71, 0x6d35d83e, 0x12a7e122, | ||
1940 | 0x938a0f9f, 0x49ff228a, 0x5c6b6dfb, 0x0bc5ed0c, 0xfdc9be72, 0x963f8f3c, | ||
1941 | 0x885a0bcf, 0x57d96eff, 0xc2bd6de0, 0x3145e77f, 0x2b6844c3, 0xdf2f32c7, | ||
1942 | 0x7fce980f, 0x203ecaaf, 0x195c8797, 0xcec4fc51, 0xc09b0c7b, 0xc4bb779e, | ||
1943 | 0xe63e40f7, 0x1f16f7c3, 0x8b75ccfd, 0xf43df0d7, 0xef4e385b, 0x1fc8479d, | ||
1944 | 0x0a45a63b, 0xda719c5b, 0xc7b6c8b5, 0x6b3b6894, 0xadc17ee0, 0xbbe99acf, | ||
1945 | 0x9ea66398, 0x2d7f7047, 0xfc99a6f4, 0x3dde3fa8, 0xfa2bbe83, 0xffa30ef4, | ||
1946 | 0x45d0527a, 0x20309f7e, 0x830b783f, 0xc5eff079, 0xcb9ce6dc, 0x3ee629e5, | ||
1947 | 0x14164af6, 0xfb13fbbf, 0xe103427d, 0x893df079, 0xe73c87eb, 0x7ce6e995, | ||
1948 | 0xf38269f3, 0xebfb8a19, 0x3ee327da, 0xc4bed45d, 0xf1f1d3ee, 0x474e6edc, | ||
1949 | 0xf6fea769, 0x304aaef9, 0xe77175df, 0xba7cf393, 0xb3bafe3c, 0xd58edcdc, | ||
1950 | 0x461becc7, 0xb3e795c7, 0xa49fa85a, 0x2cd9fd77, 0xd2eb2e7a, 0x37be8a8f, | ||
1951 | 0xfd8bc68a, 0x13e6472e, 0xa7beff25, 0x9efd1b30, 0xf224db11, 0x78099e86, | ||
1952 | 0x687bd0bf, 0x06df412f, 0xf52f60af, 0xfe4b8800, 0x9aa17879, 0xd8efe517, | ||
1953 | 0x9d5f0075, 0xd51effd4, 0x4fb8b704, 0x217642ef, 0xf821177d, 0xe59df179, | ||
1954 | 0xf25aee74, 0x854f546f, 0x71adbc78, 0xa7319e3f, 0x18b3ff41, 0x13a4b0fb, | ||
1955 | 0xb204c1ec, 0xfc0e74cb, 0x12378bf8, 0x5f32571f, 0x17d1e926, 0xe93f74ad, | ||
1956 | 0x120bb5d7, 0x4b421b9e, 0x8adefc2c, 0x6bc7ba74, 0x86ff988e, 0x981fee2e, | ||
1957 | 0xfbfe7e6c, 0xf5e67e55, 0x03dff264, 0xca05fb21, 0xa5fa855d, 0x00cc8eb2, | ||
1958 | 0x3162e9f5, 0xf00fbe0a, 0xb64a2a5f, 0xf2859834, 0xb7ffef26, 0x961670b3, | ||
1959 | 0xbcf9174d, 0x04ae5e58, 0xa7070e54, 0x30d62cf3, 0x6c9bfb0a, 0xff9c663d, | ||
1960 | 0x58da7991, 0x4fa01fbc, 0xdf89f249, 0x74fba3fb, 0xf3f303ad, 0x9dd64bba, | ||
1961 | 0x0eefc32e, 0x7dc5bbd4, 0xa366360f, 0x4673ebdf, 0x057da13e, 0x616cda51, | ||
1962 | 0x0701ddfa, 0xcdba448b, 0x8c00fbf8, 0x614f9bbe, 0x3dfc112d, 0xff17be8c, | ||
1963 | 0x1e1c518b, 0x76fc0fbd, 0xef2194f7, 0xc7b6370b, 0x2a9e17dc, 0x7e634ae0, | ||
1964 | 0xad221fba, 0x635f78c2, 0x42ad7386, 0x3016e13f, 0xc444cf3e, 0x0b61ff43, | ||
1965 | 0x6f0bef63, 0xe1fc7051, 0x1b73e341, 0x5f7a463b, 0xbeb20489, 0x93de8b4c, | ||
1966 | 0xdf8920b4, 0x22eff44b, 0x115b9c8e, 0x6f015728, 0xafd88bf3, 0xe8de50fc, | ||
1967 | 0xe1177e09, 0x4370f1bf, 0x17d40d6d, 0xe3c6cebe, 0xc9c530f7, 0x185dea9e, | ||
1968 | 0xefcadd7f, 0x3efe2d6b, 0xec361d67, 0xf0c78a3c, 0xc9b51707, 0x2b2ace78, | ||
1969 | 0xb17d718c, 0xd48fb443, 0x7f18bda8, 0x3fdf1100, 0x95f74bcf, 0x74f38bd4, | ||
1970 | 0x9a7987f8, 0xc333f3d6, 0x67d30768, 0x7ac46ff4, 0xee8cfdff, 0x19f79059, | ||
1971 | 0x408ec76d, 0xbf4afa9f, 0x87da0325, 0xe23e64cf, 0x03bed149, 0xebcf9dff, | ||
1972 | 0xdf889797, 0x5d47c08d, 0x2733ca9b, 0xc6fa9b13, 0x5cfcc1b0, 0x18bb35df, | ||
1973 | 0x73f954f3, 0x297f13a7, 0xba0a2f82, 0x7c51ff14, 0x3f68c22f, 0x972bbeb5, | ||
1974 | 0x1c17dfce, 0x719e51f6, 0xd4e1a981, 0x1bdf5c1e, 0x13effe3c, 0xc84cc6fb, | ||
1975 | 0x7918d4f3, 0xafca24b9, 0xe72c5ed4, 0x7accfb97, 0x3ce046be, 0xfc44a0f0, | ||
1976 | 0xc7bd12c4, 0x1662ece5, 0x6671c3fd, 0xbd25c744, 0xbdb45332, 0x3fdf0b72, | ||
1977 | 0xf646aa9b, 0x225e1ca3, 0x4e5162ca, 0xe2330166, 0x7f73c4ab, 0x5177ce13, | ||
1978 | 0xf21a68e0, 0xaf9b74fd, 0x9f46af19, 0xb86150bb, 0x4e9cc4af, 0xffb17ebe, | ||
1979 | 0x3d8af52d, 0xfb67e799, 0xddbab3dc, 0xdf997dba, 0x30df85ba, 0xb98d8d96, | ||
1980 | 0x24f7ff67, 0x3bffa517, 0xdb18dc91, 0x4066e463, 0x7d3f313f, 0x7dfb18b7, | ||
1981 | 0xff3f3ce1, 0xc05e6a6e, 0x7e3e7cf8, 0xe71f97d7, 0x15d0ec77, 0x0b8e8ccb, | ||
1982 | 0x78416472, 0x6ec77f62, 0x2ab7f48e, 0xa2d6fe8c, 0x8522fa7f, 0xa7b0c0ec, | ||
1983 | 0xc1ccbf6b, 0xe25ce67c, 0xb12ebacb, 0x43fc0f3f, 0xfd89e3df, 0xe34efaf9, | ||
1984 | 0xd77d7cfe, 0x74337b92, 0x9d75f3fb, 0xcf3fb55f, 0x5bbfeeed, 0xd30f74c2, | ||
1985 | 0xd604afbf, 0x165e7982, 0x7107c2fb, 0x9462783f, 0x3cc5aeee, 0xe35073af, | ||
1986 | 0x3107f4fb, 0x4bcba37f, 0xfcf070cc, 0x340b8ce8, 0xe5573e7a, 0x2129f2fb, | ||
1987 | 0x0b92f927, 0x665defc4, 0x7e41d998, 0x1fe7847e, 0xeb3e22c2, 0xb40d7e16, | ||
1988 | 0x47fca06f, 0xa465dc8c, 0x6547ca31, 0xf2963cdc, 0x8abb0b3a, 0x0d3e6327, | ||
1989 | 0x7fe533f4, 0x7a5eddbb, 0x98b0617f, 0x395723f2, 0x8af3a46f, 0x6aad5df5, | ||
1990 | 0x7adf4ea5, 0xf5f78d93, 0x9a5df9c4, 0xfa29e482, 0xe019a5df, 0x489e7a27, | ||
1991 | 0xa7dfcb0f, 0x9bbe62ac, 0x7de2e597, 0x9d774001, 0x3194b79d, 0x53fb4f7e, | ||
1992 | 0x5d2b9d0a, 0x76483ce5, 0x630ed578, 0xd45b943f, 0x6bafd57b, 0xcd537f74, | ||
1993 | 0x467c41ae, 0x5de52d72, 0xa1b517de, 0x3ee0afd4, 0xe611df4f, 0x77fa436b, | ||
1994 | 0xc05b8cc4, 0xe04f98ed, 0xa5e858b3, 0x3666f349, 0x24e53ee1, 0x565f9713, | ||
1995 | 0x7fc91be9, 0xe7917377, 0xc7551d84, 0xfe50cad3, 0x63eb9f40, 0x067dfcb3, | ||
1996 | 0xc4531fd4, 0x717ab1f8, 0x2e03f08a, 0x137d6153, 0x0a7d76a3, 0xa683f5e3, | ||
1997 | 0xbddd332e, 0x3c9ce02f, 0x9fdc4720, 0xd24a7a90, 0xc6e5ef03, 0x92cb5df3, | ||
1998 | 0x63c87e85, 0x184f4879, 0xc157f89f, 0x8d2a73cc, 0xbca1521f, 0xf407cc44, | ||
1999 | 0x84df210e, 0x9dfa364c, 0x034a8d8f, 0xfa1b79e9, 0xa03e508d, 0xfd7f4904, | ||
2000 | 0x46642abc, 0x1ac45ebc, 0x1726b86e, 0x03b758f5, 0xb07c05e9, 0x4d1fcf52, | ||
2001 | 0x5bbd922c, 0xb509f031, 0xe8c4a6f7, 0x3d12a61d, 0xc238304c, 0xa5ad7669, | ||
2002 | 0xc42bf47d, 0x6e53a273, 0xc9d51fb4, 0x3fb4618f, 0x87c01fea, 0xf52fddb1, | ||
2003 | 0x93ea3309, 0x8f05f65c, 0xf43feed3, 0xfb0f8c1d, 0x8c5fc22c, 0xa1dd4ba1, | ||
2004 | 0x641f8b93, 0xbe49fa51, 0x983598ba, 0xca1f00b3, 0xf75e792f, 0x2a5ba462, | ||
2005 | 0xfc8c51fa, 0x892c69a7, 0xe64d8be4, 0x57c907f9, 0xa2255e92, 0x4fa484f6, | ||
2006 | 0x7841cb0e, 0x53b4ed2f, 0xa462e9de, 0x58bdd013, 0x4aed2f8c, 0x6af4e4c4, | ||
2007 | 0xb0174879, 0x7ec1e61b, 0x97aa665e, 0xe4c933e8, 0x614cfa27, 0xdba434be, | ||
2008 | 0xd7ddf6cf, 0xe8eb7084, 0xe3192db0, 0x80e80545, 0x3ed8357c, 0xe463db18, | ||
2009 | 0x94bbe259, 0x2c9fc979, 0x9c394665, 0x670d04e1, 0x8dcafba2, 0xa0b363f7, | ||
2010 | 0x7b94f08a, 0x6f8fdd06, 0x41b1d232, 0xc8ae7845, 0x444bf632, 0xa7a41ccf, | ||
2011 | 0x89690fb4, 0x6ae529e9, 0xa9d39db7, 0xfa84e81e, 0xd2afd266, 0x34813867, | ||
2012 | 0x25ccade7, 0xc53bb0fb, 0xfaf584db, 0xc5f4851a, 0xcbdf6ee4, 0x106fcf58, | ||
2013 | 0x337eb9ed, 0xafd683ee, 0xde53ede5, 0x7ac0cc0a, 0x5ede3ac1, 0xc9b04f7c, | ||
2014 | 0xaddfe385, 0x2fd8bdd0, 0xcbc7727c, 0x47be1ed8, 0xcfca5fbc, 0xe06fd6e1, | ||
2015 | 0xf9847fef, 0x3cf10bde, 0x7c0ccb44, 0x9739ae3e, 0xf0b00eff, 0xfc172e67, | ||
2016 | 0xe3695bb2, 0xc83c20f7, 0xc8715dc7, 0xce28c496, 0x65cafee1, 0x6f979d62, | ||
2017 | 0x3f4cebe5, 0x1785557e, 0x37b2a9f8, 0x2d95d740, 0x1109c164, 0x3372ef58, | ||
2018 | 0xf1f9f204, 0x10bc1be4, 0x0d288f28, 0x500aa744, 0x72fbf49d, 0xc0b67cd3, | ||
2019 | 0xc7ef9e78, 0x92fa79ef, 0xf329bc79, 0x35ffb8e5, 0xfb4f675b, 0x469e7992, | ||
2020 | 0x654ccbf6, 0x09ef3f7c, 0x91a3f917, 0x7c8298c7, 0xfec0b88f, 0x57faf289, | ||
2021 | 0xbd9037e4, 0xe64722ba, 0xa5d47bf3, 0x97f15f30, 0x178acd9f, 0xcc9e7f07, | ||
2022 | 0x62c7e4ed, 0xaf3e4f1f, 0xbdfdf30a, 0xf4cbc8dd, 0x30e9ad7d, 0xe19853d5, | ||
2023 | 0xb9ddab1e, 0xfe7aaebc, 0x28f35f7a, 0x06b35dfc, 0x36ca8435, 0xcc7da15b, | ||
2024 | 0x679fe0eb, 0xffe14627, 0x2830d93f, 0x00800092, 0x00000000, 0x00088b1f, | ||
2025 | 0x00000000, 0x7dedff00, 0x45947c09, 0xf37f78b2, 0x093215cd, 0x87213b93, | ||
2026 | 0x98884013, 0x861c2184, 0x4109264b, 0xe8098414, 0x720d7282, 0xeb22dc85, | ||
2027 | 0x97f75763, 0xd9110441, 0x73d6f8dd, 0x0160763d, 0x18896151, 0xc3824830, | ||
2028 | 0x12a20882, 0x75040411, 0x0844ae22, 0xf1e20c49, 0xabaf2e1e, 0xbe667bba, | ||
2029 | 0xfc38666f, 0xddbf7ffb, 0xdb2e23f7, 0xaaefafa9, 0xeaeaeaea, 0x084c8eaa, | ||
2030 | 0x908238b9, 0xadc4b45b, 0x9680a1cf, 0xc8401bfe, 0xd5fa25dc, 0x3f02242b, | ||
2031 | 0x213c6376, 0x33fe1277, 0x192d7aec, 0xf01dc844, 0x289085bb, 0x2afda4b3, | ||
2032 | 0x9fdefe83, 0xd328bff4, 0xf3bfcf72, 0xc84d94a3, 0x3a558caf, 0xd50a1dd2, | ||
2033 | 0x8459ece8, 0x9c9b359c, 0x7c84be9a, 0xcce2392e, 0x7d690903, 0x965cff76, | ||
2034 | 0x64beceef, 0x47e696be, 0xb048d4d0, 0xefde62df, 0x13d2e27c, 0x977cdfda, | ||
2035 | 0x918f0bee, 0xfd22ed0d, 0xa43a6a57, 0xae9a1a27, 0x232f7e57, 0x41e93d1e, | ||
2036 | 0xf2ad7948, 0xe271257b, 0xe57acaf7, 0x91d99277, 0x845efd06, 0xf69f8a1f, | ||
2037 | 0x5907cb67, 0xcfff6932, 0xe6147fbc, 0xb9346c57, 0x97129a65, 0xc193d5ae, | ||
2038 | 0x1e7ce1eb, 0x4e157f34, 0xc8fba793, 0x64246f17, 0x6cc89752, 0xbb9095d2, | ||
2039 | 0xe67e8ecc, 0xf99c4238, 0x146529e6, 0xe1e9cebf, 0x5c5025d6, 0x4c396536, | ||
2040 | 0x6308fdb4, 0x8bce9b96, 0x4cc588d8, 0x79f12df1, 0x9f0c0d4a, 0x3c52471f, | ||
2041 | 0x4832f8c3, 0xe699e006, 0x14d1f53b, 0x8448e3ee, 0x93881bf1, 0x88c23e00, | ||
2042 | 0x4252112b, 0xbf1846ac, 0x42475e1f, 0x2179adff, 0x57ccaef1, 0x1f027de1, | ||
2043 | 0xd36244cf, 0x47137f41, 0xa775f12b, 0xfbd22169, 0xfbf2bb4e, 0xcb1388af, | ||
2044 | 0xc2ac9a4f, 0x24c9b12f, 0xe0aed7de, 0xca1cbb93, 0x9e041372, 0x3cf1ab47, | ||
2045 | 0xc515fccc, 0x01309d2f, 0x54d24c7c, 0x58c9e3fd, 0xb30d6f0a, 0x1cf6c5ae, | ||
2046 | 0xb852178f, 0xbac12eb3, 0x4b44c002, 0xfdb409d7, 0x926c404a, 0x3d22ae8f, | ||
2047 | 0xab189d58, 0xe707e9ed, 0x93761991, 0xee389e0f, 0x1499a0d8, 0xcfe5d22e, | ||
2048 | 0x06913c03, 0x29837ffa, 0xd210c53f, 0xb2f80994, 0x18262574, 0x52d47107, | ||
2049 | 0xde92d3b8, 0xd814da35, 0x132b488f, 0xfdb4e313, 0xdb4bf8fd, 0x3e066911, | ||
2050 | 0xb0cf20b8, 0x2a383267, 0x53f552f3, 0xc131b4e2, 0x5acf37fa, 0x91787809, | ||
2051 | 0xa38e81e1, 0xadf943de, 0x2b5f7d73, 0x2a7210e5, 0x942468ce, 0xa67467de, | ||
2052 | 0x1f5f52e5, 0xea2ee63e, 0x4a95ed86, 0xd0b6efae, 0xc764836f, 0x52cf3023, | ||
2053 | 0xf8cf5b8d, 0xa13a6aa9, 0x6f3f96ed, 0xf748adb0, 0xf8d43fcd, 0x2d23f008, | ||
2054 | 0xc93bffa2, 0x1d7ad2d0, 0xeaeb1752, 0x0bdefc74, 0xddca2ce8, 0x2b17451f, | ||
2055 | 0x9185ef5d, 0xdd60278e, 0xe8b8c3b7, 0xa309697a, 0xaf8e86eb, 0x01932245, | ||
2056 | 0x74e2549f, 0x7e02ca2d, 0x04eba3bc, 0x951297ca, 0x81d1c953, 0x351856fd, | ||
2057 | 0x5e1fb764, 0x757d78db, 0x096655b9, 0x9989f7c7, 0x4dc7ff60, 0xdf30d5b6, | ||
2058 | 0xae293d16, 0xe96c78a5, 0x9a48d3c2, 0xa01bfad2, 0xcf2840fc, 0x70e0edea, | ||
2059 | 0xabe5868b, 0xbee517db, 0xdd9236ac, 0x545fac74, 0xf29bb213, 0x4369e597, | ||
2060 | 0x4bb68b95, 0x147fd2a6, 0xa2dbed2f, 0x453e0156, 0xbce67dbd, 0xdd1c604f, | ||
2061 | 0x802df64d, 0xcd35d98f, 0xfb5f877a, 0xe01f30ed, 0x579b1d13, 0x454b187b, | ||
2062 | 0x45ccfb7f, 0xef1e209f, 0xbcdd20f2, 0xdb0160f0, 0xe1f6fdb1, 0x1fd21e4c, | ||
2063 | 0x72c3ac0d, 0xc5cb0ebe, 0xae53ab7a, 0x04a64937, 0x63f9468d, 0x5aa0b941, | ||
2064 | 0xc67a957f, 0x17ef844f, 0x4ebac4d3, 0xfb42d089, 0x64535953, 0x1fbec35a, | ||
2065 | 0xa64248a5, 0x64b2c91b, 0x21a33f9a, 0x7175e501, 0x1997b3a4, 0x0cd23ce9, | ||
2066 | 0x0ce489fb, 0x5f862f97, 0xe4b4bf8a, 0xd93e312b, 0xa9ed6fc7, 0xf6cf384d, | ||
2067 | 0x81a63f55, 0x786f2ebc, 0xa875e507, 0x191f3979, 0x48f38516, 0xd6e0fb60, | ||
2068 | 0xd9391b6a, 0x059787d3, 0x428f3666, 0x0f40acb9, 0x313664f2, 0x7ea7e81b, | ||
2069 | 0xc3d3fba4, 0x57b95c28, 0x6f285c47, 0x93901a6c, 0x9c63c397, 0x7e2c435d, | ||
2070 | 0x72612df2, 0xf0c96217, 0x688e49c1, 0xdc5c9c05, 0xb53e514d, 0xff22bbaa, | ||
2071 | 0x147d45ba, 0x1ccee9f9, 0xf963dc05, 0xebf94510, 0x7015f26b, 0x536e67ef, | ||
2072 | 0x35c1bf94, 0xc2770141, 0x9e3f202f, 0xca4e5d97, 0xbfae37a7, 0xde7f515b, | ||
2073 | 0xbf4859be, 0x895ebe3a, 0x4994d6d3, 0xd05b30f1, 0x80686e9f, 0x670e52c7, | ||
2074 | 0x68a3ded5, 0xb725b89f, 0xe1cfcb44, 0x69bb31fc, 0xf94258ee, 0x897d6fa3, | ||
2075 | 0x67221fa2, 0xd28e30ca, 0xa18912ed, 0x46a73eac, 0x7bcc4fb9, 0x37170946, | ||
2076 | 0x992cbe3c, 0xf407ea04, 0xdb4b4327, 0xac5d2129, 0xf5a8dfa0, 0x11519e84, | ||
2077 | 0xdd0fc8b1, 0x57c63748, 0x79303e6a, 0x074861f1, 0xf4f5e83e, 0x3e3e01b0, | ||
2078 | 0x19ebe2f0, 0xb9d5f109, 0x7b8e07b7, 0xee3a36de, 0x18fc40f4, 0x10fc9512, | ||
2079 | 0x43f25166, 0x1f928678, 0x7e4aac22, 0xe4ab9ae8, 0xa3be3507, 0x20fe4a6c, | ||
2080 | 0x105ffa1e, 0x568cc77c, 0xbca94df2, 0xefe00f72, 0x5f9e7872, 0x1fe90abf, | ||
2081 | 0xf0a987a0, 0x1af01e3a, 0xff6bc3ee, 0x2625b6dd, 0x61df660b, 0xe478041c, | ||
2082 | 0x197620f8, 0x046c52e5, 0x3e561dea, 0xcca7a14e, 0x107ae288, 0xd69fa76f, | ||
2083 | 0xf7d613bd, 0xa049c932, 0x967fd09e, 0xdcd3bae4, 0xc639df14, 0xd520a02a, | ||
2084 | 0xa2b3ec6f, 0xd32c1ca8, 0xdf21b3bb, 0xefc1ef4f, 0x417bd2ad, 0xa7411ef5, | ||
2085 | 0x7281c439, 0xa61f0025, 0x2f50f427, 0x3f40ff80, 0xff8411ed, 0xed077ea8, | ||
2086 | 0x5179f256, 0x7234b93a, 0x06a4be20, 0x0d911dc9, 0x72106cd3, 0x3fb171d6, | ||
2087 | 0x157ca366, 0x4a0da2f8, 0xe84772fe, 0x817da28f, 0x448f211f, 0x255206bb, | ||
2088 | 0xab7f0227, 0x50c913e4, 0xa9371de2, 0x223ff841, 0x35e80bd8, 0x416f9bc4, | ||
2089 | 0x0899037e, 0xbc4de94a, 0xd30f723f, 0x06a48d4b, 0xb242b2e9, 0x7f69972e, | ||
2090 | 0x4be975f2, 0x7f4ba508, 0x64ffd533, 0xa69b42d8, 0xd18d77c0, 0x773ec329, | ||
2091 | 0xfe60b91d, 0x3f5a06ea, 0xc5f95d61, 0xbff2d098, 0x5b8d8dfc, 0x281f549d, | ||
2092 | 0x2464f4d9, 0x5afaf4a1, 0xa56f135b, 0x2ed6cbf5, 0xb4d1b48d, 0x7d44eb45, | ||
2093 | 0x3c976bea, 0x7f6415da, 0xed8a3f7e, 0x264274df, 0x7c153f90, 0x795fa72a, | ||
2094 | 0xd7ac1c6c, 0xccead6ef, 0xb9522d32, 0xd036e0de, 0x375151f5, 0x46c92c7f, | ||
2095 | 0x8fc199b8, 0x54f8037c, 0x5e4a1b9f, 0x82de327a, 0x5933a3fb, 0x3ba90893, | ||
2096 | 0x62b4d099, 0x81463fcd, 0x3a49567e, 0xd4b8c196, 0x1fffa0f5, 0x595afee8, | ||
2097 | 0x77d4cf2b, 0xe11e720d, 0xb5d05aeb, 0x6fb1eeb2, 0xcdf848e4, 0x557e07a3, | ||
2098 | 0xbd062f97, 0x3b67ea8e, 0x89bb3c84, 0x45eb04dc, 0xe2b883e0, 0xdf93ef50, | ||
2099 | 0x99bb2178, 0xf66badc2, 0x787e4a47, 0xc421e422, 0xaced674f, 0x0969bcbf, | ||
2100 | 0xaa36874d, 0xfe5e90d7, 0xcf585cf5, 0x9ee12f52, 0x5a581a4a, 0x0e4773a6, | ||
2101 | 0xb654aca5, 0x687a874a, 0xaebfc6d9, 0x33c533fb, 0x5eb06639, 0xdd2fdb4f, | ||
2102 | 0x43c7f6f8, 0xa6bfbe40, 0xa6cb1d8b, 0x7de29261, 0xffa4a974, 0xe8f8e516, | ||
2103 | 0xdbfaf250, 0xfb164b7a, 0x8fb460fe, 0xedafa51e, 0x40ac93d4, 0xeed4147c, | ||
2104 | 0x414c7bd4, 0x3cdb52e8, 0x1e02648a, 0xdd03d27e, 0x9121debf, 0xf820f484, | ||
2105 | 0xa476f55c, 0xe909e383, 0xa5e4e9c8, 0x5cfabd5b, 0x412bf4c9, 0x2bbe7527, | ||
2106 | 0x0afa8cca, 0xca7a87b4, 0xf6ff1b1b, 0xf14fc526, 0xcc2b0627, 0xf76ff8bf, | ||
2107 | 0x4e3cc245, 0x5f18ab69, 0xde34b0bf, 0xd62dfb46, 0x98cde339, 0x2fc5efb2, | ||
2108 | 0x6df91afe, 0x8ebf87de, 0xd93fa827, 0x38b93492, 0xdf9824cf, 0xc4efe79c, | ||
2109 | 0x0e25cdf9, 0x17e2bbe4, 0x9fe83b64, 0xf464b5e7, 0x45d6416b, 0x175b3441, | ||
2110 | 0x15d356a7, 0x4a77e74d, 0xf38044cf, 0x8b5aeca0, 0x517bd287, 0x28dafc18, | ||
2111 | 0x8402ffd6, 0x9d191bcf, 0xf86b45ba, 0xdf4ba2ba, 0x3cd75f9f, 0x39f404d2, | ||
2112 | 0x004b6a9d, 0x6892af3d, 0xd21f1c9d, 0xfcaeda45, 0xa3026161, 0x8568b10f, | ||
2113 | 0xa8f2a47c, 0xf943be00, 0x2c2d9d26, 0x5c8f515b, 0xbff5f74c, 0xc74ff790, | ||
2114 | 0xd0f405dd, 0xf5c1f153, 0xa668caf2, 0x269fd327, 0x7e5fc7e2, 0xf7ad9beb, | ||
2115 | 0xf5b28f35, 0xabbbd62d, 0x7fe43468, 0x1fad887b, 0x839c97a8, 0x602772e3, | ||
2116 | 0x243bcefe, 0xe2060794, 0xd7aeb60e, 0x56baf8e8, 0xa13e0be6, 0xb9c2d6e3, | ||
2117 | 0x842fcbc7, 0xf14e6f9d, 0x27dcc8f3, 0x7dbf3d68, 0x8bfa12be, 0xac4f6c0c, | ||
2118 | 0xfd7c79db, 0xf7cd1cdf, 0xc9febe5d, 0xcf4171f3, 0x5b73eabf, 0xeeb5ce99, | ||
2119 | 0xe95eb0cf, 0x605a74fa, 0x30eceabd, 0x761b33ef, 0x5d377c7d, 0xc56a6727, | ||
2120 | 0x4fca553a, 0xde2d3af5, 0xa7f236fc, 0xa99e9d7a, 0xe83e3b7d, 0xeded7d3a, | ||
2121 | 0xb0664f78, 0x2bbffa75, 0xe6fe053f, 0xa7e52b46, 0xf0a18790, 0x728796a8, | ||
2122 | 0xa9f105b4, 0xe7f48796, 0xc8141910, 0x04ef827f, 0x5abc95bf, 0x1dc81d7e, | ||
2123 | 0xbe0a5f2f, 0xe0a5f2f3, 0x957cf53b, 0x5be753f8, 0xf9472ce1, 0xf0edbec4, | ||
2124 | 0xcf4a64a8, 0x6ac906b2, 0x3dbd60b0, 0xd93c5300, 0x35231b70, 0xfd63927b, | ||
2125 | 0xae0a9761, 0xa9b79555, 0xbcaabb60, 0xa9570543, 0x5c70bbca, 0xf4bbf565, | ||
2126 | 0x5b81e504, 0x10f75e51, 0x3d804671, 0xad7651a1, 0xa76ca8a6, 0xeb465e63, | ||
2127 | 0x47486fb7, 0x12697b7d, 0xc474dbb3, 0xfc8197e9, 0x4477376a, 0x75fc5346, | ||
2128 | 0xb373f184, 0xca3223bd, 0xdcd32ecf, 0xf5fca320, 0xdae8c8b8, 0xaa1af620, | ||
2129 | 0x3cfd2249, 0x62fe5424, 0x4d90bf66, 0xef408b69, 0xa0ad91af, 0x3c5ecd0b, | ||
2130 | 0xcef41229, 0xe31e86f6, 0x73efd327, 0x43baa1f6, 0x903db9da, 0x49b4039e, | ||
2131 | 0x38b3fe94, 0xe710b63f, 0x7ce8c353, 0xa2943566, 0xa57b3e3e, 0x4d735e92, | ||
2132 | 0x9ccf510b, 0x1efd04fb, 0xe12fdf44, 0xaf3f14ed, 0x2b212fcc, 0x1d289f91, | ||
2133 | 0x297760f5, 0x77cca359, 0x2ecffb70, 0x48fde7c1, 0x87b9c53f, 0x3942d5cb, | ||
2134 | 0xb064fc73, 0x0995ec57, 0x836749f0, 0xdcef788c, 0x9e08b920, 0xa83d986b, | ||
2135 | 0x3ca07482, 0x8569f813, 0x2d0fa0f5, 0x7cb75a6f, 0x5a01e83a, 0xf1eb6ca4, | ||
2136 | 0xda68e7ec, 0xaf58f5ba, 0x71bf00ed, 0x0938ed24, 0x08ed3fb2, 0x64dda1b3, | ||
2137 | 0x00cb8447, 0x3f7c6ff4, 0xa3b401ed, 0xce30ac18, 0x67df1df6, 0x3fb4df03, | ||
2138 | 0x79062864, 0xecca9ed5, 0xbf1a4b23, 0xe57266cf, 0x5b57a461, 0x37e99eb4, | ||
2139 | 0x99fdff0d, 0x06fae704, 0xf7d82b3a, 0xf9e38477, 0x30cdf2ad, 0xbff6c117, | ||
2140 | 0xfd30e41f, 0xd0a9f372, 0x61f20713, 0x19bc9904, 0x704517c6, 0x07db953e, | ||
2141 | 0xed3175ff, 0xa76ebcbf, 0x2fcd167e, 0x6ca7eb78, 0x37db0fd8, 0x4da67d33, | ||
2142 | 0x5dd2b847, 0xad1e68f2, 0x61c616d7, 0x056eefe7, 0x160db77d, 0x9e423747, | ||
2143 | 0xab70d98e, 0x4f0c14d3, 0x5e21a53f, 0xd13f10ae, 0xfbe47a31, 0x48fc7d7f, | ||
2144 | 0x2bf28236, 0x609465c2, 0x767e3fde, 0x0ec1e41c, 0x98a9f203, 0xc5da99ef, | ||
2145 | 0x6e5c7fa8, 0xfe62fdde, 0x4ae2f85d, 0xafb92de7, 0x7ff6de64, 0xe21f7a71, | ||
2146 | 0x5d7aa8fb, 0xe379f204, 0x8c6f08fd, 0xaf78e2b0, 0xfeabdf90, 0x337dd1af, | ||
2147 | 0xe5e47ba5, 0x7fc7fde7, 0xa68779f1, 0x9ce9befb, 0xc3b066ee, 0x13f5be55, | ||
2148 | 0xe56aef8e, 0x537fa6dc, 0xba7a17be, 0x3890befa, 0xf0a5a225, 0x744f0e70, | ||
2149 | 0xd2e79e4a, 0xc388f77d, 0xd2113a79, 0xdd475048, 0xcad38f27, 0x2a4b24c3, | ||
2150 | 0xde132828, 0x7a071dec, 0x8aa932cb, 0x4737eca8, 0x6476d3b7, 0x940c474d, | ||
2151 | 0x2d0e242b, 0x217217bb, 0x3c91df1e, 0x15f9d768, 0xb4852db1, 0x9a8ed482, | ||
2152 | 0x3bdd6902, 0x97b42547, 0x923f2184, 0x9e3df57a, 0x0d11f516, 0x1de8019d, | ||
2153 | 0xce2b00a5, 0xbe9f5a77, 0x8bc20722, 0xa293d8e9, 0x313f7f2f, 0xcfccd63a, | ||
2154 | 0x58bd1d7d, 0xc46fd33e, 0xfbe8727d, 0x66f8e55c, 0x4ba76699, 0xf36f41dd, | ||
2155 | 0x8c15c71b, 0x291e0093, 0x3ca6de9e, 0x7bfaa463, 0xd1d1dc12, 0x618fecf1, | ||
2156 | 0x72ef2df4, 0x141b63e2, 0xe694d01b, 0xa9563f7f, 0xec193627, 0xae0d5b24, | ||
2157 | 0xad4fd0b5, 0x1b4ddef2, 0xa1dbcecb, 0xef13d0f1, 0x421e0453, 0x3efaabf1, | ||
2158 | 0x1be80665, 0x667c6103, 0x74c6f8c5, 0x29631bb1, 0xf3d47a9c, 0xd5f1a495, | ||
2159 | 0xd75b942f, 0x60fa073d, 0x2b7fd33d, 0xf57bb386, 0xda326d8a, 0x0c1ada0f, | ||
2160 | 0xb18e892e, 0xde177eb8, 0x1b56b4c7, 0x9eb7dc09, 0xab48eba6, 0x55fe04bd, | ||
2161 | 0x371c0df3, 0xcd67075b, 0xea86a746, 0xee5896d5, 0xb24d908f, 0x3fd31e61, | ||
2162 | 0xcd31173c, 0x9ede7682, 0x5e76feb1, 0xab37fdef, 0xedcf9017, 0xedef54c0, | ||
2163 | 0xcce2f20a, 0x65ef04fd, 0x6d23b689, 0x1cbf9642, 0x23a3ce50, 0xa9e3d186, | ||
2164 | 0xb4167b68, 0xf294dcd7, 0x2857b414, 0x06e9ec37, 0xcec859f8, 0xc40c2359, | ||
2165 | 0x64e94619, 0x56b5ef90, 0xde95c9f9, 0x9cf196bf, 0xfbc2e9fd, 0xfa6567a2, | ||
2166 | 0x692dedda, 0x741eecec, 0xa5bf67f3, 0x988ef4ed, 0xd3daf78a, 0x93bcec0c, | ||
2167 | 0xbbb87f7e, 0x6f5f5d07, 0xf81189e9, 0xeabdd74b, 0x4e70ade0, 0xabad928a, | ||
2168 | 0x32b17f69, 0x217c0919, 0xce1b1bc6, 0xe7be23e6, 0x0246b0bd, 0x8fbe22f9, | ||
2169 | 0x7fd1d258, 0xb1f54d01, 0xf8c53f8c, 0xf4741446, 0xf0f932af, 0xe7e466de, | ||
2170 | 0xd716b319, 0xb4c3b093, 0xec0979c1, 0xeb0e7024, 0x3db7c84b, 0x5e1f786d, | ||
2171 | 0x20ec4611, 0xdb35bef7, 0x7ce146ba, 0xb66f782c, 0xb7acacd0, 0x04fcd3f0, | ||
2172 | 0xa0571f28, 0xe91787bc, 0xc76658ac, 0x4341fb29, 0xe2767e9c, 0x0f5bad32, | ||
2173 | 0x1fb281f6, 0x77e9c4f4, 0x9d05fc0f, 0x5cefd3b7, 0x4f4b4f7e, 0x22cc27b4, | ||
2174 | 0xcc27b456, 0x9c4e1e5a, 0x3aa2e77e, 0xbd350e3e, 0x56fa71cf, 0x96896944, | ||
2175 | 0x2242abce, 0xdb954bf6, 0x9f764ffe, 0x23ff1eaf, 0x70e36eb0, 0x779fb87e, | ||
2176 | 0xab5c1a34, 0x9dcb03d3, 0xb8f6618b, 0x3dc51bf4, 0xc5cf07bf, 0x25e5b70b, | ||
2177 | 0x8aed2090, 0x1b07e2b4, 0xa5e1f971, 0x7983d682, 0x9230fc56, 0x6f07fab8, | ||
2178 | 0x66f982cf, 0x81cede05, 0x5fe81a7c, 0x4df1163f, 0xb091c44f, 0x97a95e7e, | ||
2179 | 0xf13d8347, 0xd19abd95, 0x678c83ab, 0x9f679f03, 0xf5f22d38, 0x5b626e8d, | ||
2180 | 0xa29e8415, 0xdb347c5c, 0x459f0117, 0xa8788159, 0x074cf7cb, 0x2469b87e, | ||
2181 | 0xefeb05b1, 0xc42f9c2f, 0x19a2ebb8, 0x18762b7e, 0xdb405ed0, 0x011455ed, | ||
2182 | 0x71733ddf, 0x74959b3d, 0x8d863cfb, 0x4f36eea3, 0x76d3f41a, 0x083ff72b, | ||
2183 | 0xe173df41, 0xe018f68e, 0x30b449c3, 0xda4187e5, 0xb7ecc92a, 0xbe94ae3e, | ||
2184 | 0xd6ac3f15, 0x102bd3f9, 0xae74ebef, 0xc576befe, 0x22f3643d, 0xe6def519, | ||
2185 | 0x95fefc83, 0x62eee3db, 0x499a4cac, 0x97b02ed5, 0x68495734, 0x41dbbbc7, | ||
2186 | 0xdeba22c8, 0x14b87aef, 0x97d34ded, 0x8234bebe, 0xca907f7f, 0x0912bb8d, | ||
2187 | 0x77a699b9, 0x09da56cf, 0xb70596a6, 0x3f7839a7, 0xfa0748d3, 0xa85f4cf9, | ||
2188 | 0xfb702fb2, 0xe541e383, 0x17e02ff7, 0xc60fd72a, 0x0e43bb72, 0xbd7901c9, | ||
2189 | 0x3d39e960, 0xf8a109a8, 0xc3ca85ba, 0x8b905a9e, 0xab5b4c46, 0x157e98cd, | ||
2190 | 0xf604fb6b, 0x8eb1f3a5, 0xb6ee414f, 0x52e4c87f, 0x4c73cae7, 0x418f2f9e, | ||
2191 | 0x2ef2c73b, 0xd78dff6c, 0xd3ea3b58, 0x3e3efe41, 0x8fc51c71, 0xeb5a2fe1, | ||
2192 | 0x9b878a12, 0xc0d3353c, 0x35e84525, 0x905aac8f, 0x127e8b11, 0xefc041d6, | ||
2193 | 0x32deafb1, 0x7133ec1a, 0x00db86af, 0x5cf22b7f, 0x62b18f78, 0xe7f41771, | ||
2194 | 0x0fcdd232, 0x0d8f7ae4, 0x3fb81a79, 0xb16ea1bd, 0xd76d1ba6, 0x0dd3b0dc, | ||
2195 | 0x35cb0efe, 0x6b3da0df, 0xf984cdf9, 0x287ef17f, 0x6919fb3e, 0x4c13f13b, | ||
2196 | 0x171d2f78, 0x50d44aee, 0xbd46ee38, 0x17ea0975, 0xe0a95f4c, 0x2c976834, | ||
2197 | 0x7e0a1c7f, 0x8264fb64, 0x16b13e7e, 0x087daf94, 0x0b92bfb3, 0x0f945f14, | ||
2198 | 0x8fc40c60, 0x2dab5aef, 0x92fc9f68, 0xd0fb29db, 0xce8ea1f3, 0x4f8a2be7, | ||
2199 | 0x6a1ecb80, 0xebe3051a, 0xabac48d8, 0xb7d89169, 0x912df292, 0xea337780, | ||
2200 | 0x13aba7bb, 0x16e31531, 0x6bd947fb, 0x3f41a36b, 0x9999229e, 0x43d7095f, | ||
2201 | 0x10121f05, 0x4c9e1456, 0x8bbf9c98, 0xa8539feb, 0xe3a30dd8, 0xd35887bd, | ||
2202 | 0x46dddea0, 0xf8a1a912, 0x3b50529f, 0x5299f710, 0xe7ec145d, 0xe30542a0, | ||
2203 | 0x8bfa5087, 0x72ea2758, 0x81af41a7, 0xc98db8f5, 0x11758a83, 0x6bbbb44e, | ||
2204 | 0xecffb03a, 0x7b1ebe38, 0xd22e3f31, 0xfd60d893, 0xbde8ec54, 0xa062e80a, | ||
2205 | 0xa5e303fc, 0x9b98ca72, 0xd19cfa83, 0x7f3fe748, 0x8a5b987b, 0xd9a7a3f4, | ||
2206 | 0xfa034fd6, 0x1c9484fc, 0x4a3a97f4, 0xd80447e5, 0xb8693c71, 0xeb47419e, | ||
2207 | 0x7d5cc306, 0x54ebdc1b, 0xfb30dc50, 0xee0ccbce, 0x2d6761c6, 0x7978d383, | ||
2208 | 0x777066e2, 0xdbddff51, 0xc743fec0, 0x621fcbcb, 0x1f011f70, 0x45b3e566, | ||
2209 | 0xce0c63f9, 0x1927f911, 0x7fb4483c, 0x1843c18a, 0xd3c9fc7c, 0x0f4139b7, | ||
2210 | 0x8ffae289, 0xaee783d5, 0x6b7b378a, 0xde96fdfc, 0xf3726389, 0x772b1874, | ||
2211 | 0x98cc9d3a, 0x08cbf400, 0x5e55fe5e, 0x02c5e85e, 0x493ea27f, 0x266f5e0c, | ||
2212 | 0x80bf37af, 0x64e129eb, 0x5bf31879, 0xba524675, 0xbde86eee, 0xc617ca1a, | ||
2213 | 0xd03a7345, 0xdaf80676, 0xed11f411, 0x244b7e89, 0xe9b497a6, 0xbbd89d98, | ||
2214 | 0xfdb1c66f, 0x30f3f684, 0xd293d3f6, 0x909bda15, 0x81f80fd2, 0xf39681f2, | ||
2215 | 0x80f81681, 0x7c6c5590, 0xc028ddb4, 0x3fa3b9b9, 0xbeedbff8, 0xfba7cb40, | ||
2216 | 0xcbe6adc6, 0xcddf3807, 0x81cec25f, 0x703d511d, 0xce1118bf, 0x403244f4, | ||
2217 | 0x380f8f39, 0x8b89de1e, 0xd2f4f362, 0x7ec24125, 0xa63c7096, 0xc84d7a78, | ||
2218 | 0xff79faba, 0x97e78f9e, 0xbd1fb79e, 0xd7e4326c, 0xcd9ab0df, 0xd60bd187, | ||
2219 | 0x85ea3447, 0x3bda2b8f, 0x3f5558bd, 0x98702e97, 0xac0f746f, 0x311848ff, | ||
2220 | 0xdab277e2, 0x9b3d2f5b, 0xc7a0abe9, 0x27ca2f96, 0x74ff6127, 0x85f78cde, | ||
2221 | 0x952a5c65, 0xe3d26f2f, 0x64ad6bfd, 0xef3cbf43, 0xe00ec73c, 0x79f334f3, | ||
2222 | 0x5d3cd99a, 0x87257e0a, 0x88eed23a, 0x2f63e408, 0x65edbdfe, 0x14f6f0e6, | ||
2223 | 0x7b582372, 0xd1422720, 0xd34bfdc5, 0x85538c45, 0x559e2f4f, 0x84f813e3, | ||
2224 | 0x32f58df5, 0xc6297c95, 0xf5a87af9, 0xfb33fe9d, 0xcaf563cb, 0x08e9437f, | ||
2225 | 0xc945a7fa, 0xe975e5d7, 0x7d327b9a, 0xae8036f5, 0xf3f3e717, 0xfdc71939, | ||
2226 | 0x0a485286, 0x7cce0fec, 0xfec37562, 0xfb80d9b9, 0xfd92e7fe, 0x505c5c54, | ||
2227 | 0xaefc20ff, 0x47b6173e, 0x1bec09e9, 0x7b40fb6a, 0x06c9b59c, 0x0967e5f7, | ||
2228 | 0x550edffa, 0x6fc033d9, 0x57c9b373, 0x295fb7cf, 0x4cf111e1, 0xc3b40cbf, | ||
2229 | 0xe68a7dd0, 0xb868300f, 0x018dd73c, 0x5c203d79, 0xf0d57705, 0xe0c8c4fd, | ||
2230 | 0x293b0e04, 0x2034f14c, 0x3187e459, 0x3f513af8, 0x51bf958c, 0x5f70e794, | ||
2231 | 0xa208fe55, 0xfdb28784, 0xb0a9e624, 0x20ff7031, 0x78d8a0f4, 0x2e43ce0b, | ||
2232 | 0x4be010d0, 0x80d53803, 0xc196f5be, 0xa08d7a05, 0xce94a853, 0x3dd82ab3, | ||
2233 | 0xf0bc6a7e, 0x977e6033, 0xbb40f2e8, 0x047615ca, 0x4761568f, 0x3a348f68, | ||
2234 | 0xc768aee5, 0xadf605eb, 0xf747788c, 0x32bf5a78, 0x3a7a75bc, 0xff0a1f85, | ||
2235 | 0x256cfd0c, 0x258fd31b, 0xa54c998b, 0x575a95e3, 0x23df41d8, 0x16a35625, | ||
2236 | 0x4aedc4e9, 0xe94bf770, 0xcbc77db1, 0x6eb3240f, 0xc18e30ec, 0xee54ae5c, | ||
2237 | 0xe3bbf1f8, 0x369fffb0, 0x7dfae159, 0xf7b3c370, 0xb838be81, 0x4c8fff61, | ||
2238 | 0x5fa1304f, 0x60f718ac, 0xdfa29bf0, 0x380deb73, 0x370dc1fe, 0x43f281cc, | ||
2239 | 0x01e86a3f, 0x84fc377c, 0x9988097b, 0x9237c6f6, 0xb91f281d, 0x25392c9f, | ||
2240 | 0xd5c19c41, 0x7c5e45ea, 0x7e8f43fc, 0x231f141e, 0xcc2e3e19, 0xc5b4fc05, | ||
2241 | 0x41e65c1d, 0x8b0a62a3, 0xe9f5e067, 0xb9fd03b9, 0x2b17493b, 0x23db5dd8, | ||
2242 | 0x3b6a3b58, 0x3a22d1e4, 0x787dfa3f, 0x9f811d07, 0x07e23fde, 0x3e4c1523, | ||
2243 | 0x29448f38, 0x926302e0, 0x39a17ca2, 0x4b7f915d, 0xfc8a0de2, 0x14fd2d5b, | ||
2244 | 0xc18c98f0, 0x5bb7f28a, 0xf8f014f3, 0xe5155bdc, 0x0a456c8b, 0x56bb9fb8, | ||
2245 | 0xdeffbe51, 0x21fe657a, 0x721d0322, 0x41775a8e, 0x1b4bf03a, 0xb507359a, | ||
2246 | 0x7482ed54, 0x1d0cb7f0, 0x90ec3b6a, 0xc1776a1f, 0x15876177, 0xce30f0fa, | ||
2247 | 0x3b2ec22f, 0xf4b93649, 0x89afedc1, 0x959e9a5a, 0x649f283c, 0xafed1d8d, | ||
2248 | 0x078e61c9, 0x473d29e2, 0x2814aa91, 0xb0ec0237, 0x33850894, 0xfc01fece, | ||
2249 | 0x32a73aad, 0x2051dc7b, 0xbbbbc80c, 0x788ed022, 0xf1b55754, 0xce43ea38, | ||
2250 | 0xc3a39054, 0xe62b263b, 0x8707e23d, 0x6479de62, 0xf74e8abe, 0xf342e02a, | ||
2251 | 0x6fe5146f, 0xc8ac5c49, 0xa8f2d5bf, 0x2b8f4e8a, 0xcfaddbe0, 0x4ab4e8aa, | ||
2252 | 0x1597a745, 0x1bbf82f9, 0x076c7db8, 0x3a68b5d8, 0x0054d3cc, 0xa5b9b874, | ||
2253 | 0xdb91e903, 0x74005354, 0x16b4721a, 0x6dc035e9, 0x3bf1002f, 0x2ed56f68, | ||
2254 | 0x5cf4dd48, 0x4efef503, 0xee9035cf, 0xb023e7a6, 0xcea9ed8f, 0xb56f74c0, | ||
2255 | 0x5bbfbf15, 0x7be98b9d, 0x3f4c36d5, 0x698d1ea8, 0xd31db553, 0x2c5aeada, | ||
2256 | 0x9ebab9bf, 0xf862d7d9, 0x0bf1473e, 0x38368c76, 0x9cbca253, 0x0db2f28a, | ||
2257 | 0x5f2850ce, 0x177066ef, 0x0c29930e, 0xebe5648e, 0xf2829a9f, 0x8cf83f74, | ||
2258 | 0x30bf81c4, 0xd824cf4b, 0xdd3409ec, 0x8186e70b, 0x5a89b8be, 0xe4a7688d, | ||
2259 | 0xb1eb9031, 0x525fbc31, 0x4296c632, 0x5ec5d2c8, 0xc18431f8, 0x2307eb28, | ||
2260 | 0x1bc1f8b3, 0xe21b6b61, 0xc61edfab, 0x97c6f7f2, 0x4173818c, 0xf330fae9, | ||
2261 | 0x29747e97, 0xc0528daf, 0xe649f595, 0x88e8fd2f, 0x7654c97e, 0xe5091492, | ||
2262 | 0x36c3d09f, 0x20438e48, 0x1e8dca7f, 0x1aa627f4, 0x6c2bfa30, 0x8044b16c, | ||
2263 | 0x85e0ea5d, 0xcf8011de, 0x672edc83, 0x3374fd23, 0xeda79a69, 0xff7d83a7, | ||
2264 | 0x124f4aa8, 0xef2941e9, 0x56b76853, 0xf413bd63, 0x3a6de724, 0x413ffc02, | ||
2265 | 0x51007662, 0xa604ddee, 0x6edfb4af, 0x21e0f3c0, 0xc60e6d8d, 0x9f024811, | ||
2266 | 0x149f718b, 0x11c2f7f3, 0x7489df22, 0xf9128f6b, 0xe5538e1c, 0x1d60a927, | ||
2267 | 0x5f19df2b, 0x05fe748d, 0x904ff9f1, 0xca7c6a0b, 0x97a66609, 0xa0a96db9, | ||
2268 | 0x50f808c7, 0xe41cad91, 0xdb3ca1c7, 0x83ef30f5, 0x17930376, 0xf5d708f6, | ||
2269 | 0x0db33768, 0xfecfd3bc, 0xc3a09d55, 0x1f00777a, 0xddc4fdc3, 0x3515ca32, | ||
2270 | 0x604a5ffe, 0x15f22afa, 0x0aefbb9c, 0x21cd73c7, 0x1cde290d, 0x387b5e84, | ||
2271 | 0x0974ce1d, 0x277df76e, 0xf9fbed81, 0x6e37cb13, 0x85cf7b81, 0xbb74d861, | ||
2272 | 0x93ea37bd, 0xf31255ed, 0x3aa96903, 0x560df2cb, 0x33f4128e, 0xd1bf029f, | ||
2273 | 0xf70d8dfc, 0xcb4c3f9d, 0xdc30b67f, 0xb9967b8a, 0x6eefe20f, 0x8c5a785e, | ||
2274 | 0x69bff511, 0x61f35213, 0xfdc29e1f, 0x6847a79a, 0x59bdd1e3, 0xd337a51b, | ||
2275 | 0xfa9b6676, 0x2418a32d, 0xf48b6373, 0x4e2e1451, 0xa41977b9, 0xd71f3d25, | ||
2276 | 0x595dd5c3, 0x40cb6be6, 0x22a72f0d, 0x5bca2063, 0x74d5fbcf, 0xc916335c, | ||
2277 | 0xe51e7616, 0xf4adb8fb, 0x045de2aa, 0xf1e21fbf, 0x78091447, 0xf1cbdede, | ||
2278 | 0xe5edea2d, 0xe0482af8, 0x245922f7, 0xb8aca2eb, 0x0125b8f7, 0xbda63dee, | ||
2279 | 0xbdc42bdf, 0xeb9f3288, 0x59eb1fbf, 0x75eba5bf, 0xb9104f2e, 0x9d812fbc, | ||
2280 | 0x89e90f9b, 0x9d55ee0d, 0x277db377, 0x87b9f27b, 0x67f9d206, 0xe8359837, | ||
2281 | 0x7ca33457, 0xb3a1d00b, 0x4751d39e, 0x4dfd61ea, 0xecfcce74, 0x96261230, | ||
2282 | 0x5e1fc7f8, 0x36b67f6e, 0xf7fc0b99, 0x7b1e01e7, 0x9cfeff81, 0x005351db, | ||
2283 | 0x8fd8b0fb, 0xbba83dc5, 0x03ef98ba, 0x77bf2855, 0x78422f57, 0xd313b54f, | ||
2284 | 0xf9cbd5bd, 0xf983503e, 0xc33f55ef, 0xdf1701f7, 0xf7e3d607, 0x98c9ea86, | ||
2285 | 0x6076a8ee, 0xbd8ba63a, 0x1df4e402, 0x47c60746, 0x81acfdbe, 0x675e7dc0, | ||
2286 | 0x47e30183, 0xf1788ae8, 0x538858b9, 0x58579832, 0xd495e302, 0x1f978afb, | ||
2287 | 0xb3fb7e54, 0x0b7ed8bb, 0x99e378fd, 0x2ebd3f40, 0x241d3f34, 0xdf390e5c, | ||
2288 | 0xd0743945, 0x07d6e42c, 0x7808b60c, 0xa2ad833f, 0xf72807fc, 0xbe78da0e, | ||
2289 | 0xed833f73, 0x601c9f3c, 0xefc043b0, 0x944ab831, 0x73dac03f, 0x063df80a, | ||
2290 | 0x4df288d7, 0x7831760c, 0xa21fd3ed, 0xd223cc5c, 0x056f586e, 0x2091f4c6, | ||
2291 | 0x79cd0b62, 0xdd9d61bb, 0x24733892, 0x826333ac, 0x56fcf905, 0x00dde2cb, | ||
2292 | 0xa558c98f, 0xcdba1305, 0xa861efd4, 0xa45b1f97, 0x53237a85, 0xea187dee, | ||
2293 | 0xb8f9ea8d, 0xe8debfd6, 0x061ed7cc, 0x9575ac78, 0x236bf416, 0xbe81c5c8, | ||
2294 | 0xf22c0476, 0xe2213ec5, 0xd836faf0, 0xaeca3f71, 0x247ee3b7, 0x477f9cf0, | ||
2295 | 0x9c3352d1, 0xb325ea03, 0x43b8e304, 0x404f06f2, 0x05c5630c, 0x1e291aba, | ||
2296 | 0xe13c12ea, 0x2b3ce98b, 0xf0821e01, 0xd97f8b63, 0x109dd5fd, 0xc2383f64, | ||
2297 | 0x2be807e5, 0x23ffb445, 0x3f835d74, 0x4bc70442, 0x88ccc365, 0x755e7899, | ||
2298 | 0x189e8044, 0x0490f5c3, 0x2dfe6948, 0xbfcb1d3c, 0xef6c941f, 0x30f8bc82, | ||
2299 | 0x03b79f81, 0x1861cde5, 0x73279507, 0xe40238d9, 0xcb9f328d, 0xdf62239b, | ||
2300 | 0xb2e2c01a, 0x8b0d49cb, 0x7c4cbee7, 0xb8dc405f, 0x84a71e2a, 0xa5b1eed4, | ||
2301 | 0x6f178b07, 0x2e2f1a0a, 0xfd031bfc, 0xb0b9f96d, 0x93cf930b, 0xc3d17641, | ||
2302 | 0xb9686760, 0xab971dfb, 0xcca0f0a1, 0xe0e285ff, 0xf90e2389, 0xbc3c5423, | ||
2303 | 0xf9c08be0, 0xb6f3b0d5, 0xea9fe196, 0x81c4c69f, 0x8823bf20, 0x6794ab1c, | ||
2304 | 0xcf212f87, 0x97f1f2d4, 0x6693bb92, 0xfdc1a794, 0x98b91043, 0xcb54e30a, | ||
2305 | 0xc93e6745, 0x7505fb80, 0x0a68f42a, 0xd3de213b, 0xed0c23b9, 0x8e31f514, | ||
2306 | 0x0fd0448c, 0x83be3bf3, 0xeb122d78, 0x371c3c41, 0xf6846e39, 0xbff33d25, | ||
2307 | 0x2dcdf110, 0x753f7d5e, 0x7923c62c, 0xfb0a7bf5, 0x9efdf7e9, 0xf20b1d49, | ||
2308 | 0xdec9bbad, 0x1921da1f, 0xc85d1fcc, 0xbef1508f, 0x3ed91343, 0xff92981f, | ||
2309 | 0x8e5838b7, 0xae7a369f, 0xf4e74dda, 0x62bf86ce, 0x57d9ccdc, 0x56c1c79a, | ||
2310 | 0x265dba5c, 0xb68f8a46, 0x0dc4110d, 0xe52d1be7, 0xd4969a3f, 0x2b8c36c9, | ||
2311 | 0x4d07bad2, 0x5bd7f08c, 0xe974ff98, 0xcadc08a6, 0x5c1b364b, 0x92fd6963, | ||
2312 | 0xd1b327ad, 0x0ea1f5af, 0xbe730fbc, 0x22d75922, 0x13d93cfa, 0x1b594fc1, | ||
2313 | 0x353e4edc, 0xad87e991, 0x8327c2db, 0xbf5a56bd, 0x25deed13, 0x707493b5, | ||
2314 | 0x4dca2a0f, 0x3e21d44c, 0xa7b43968, 0xb8965f3b, 0xe41eeb1e, 0xfc2caf7f, | ||
2315 | 0x665f5bb7, 0x7a92a976, 0xc60c2b9d, 0x36b5feb7, 0x3929c788, 0x4dfb406a, | ||
2316 | 0xf46ffae5, 0x4d82c740, 0x1f01231b, 0xd932f595, 0x550fbcad, 0x97ac41c6, | ||
2317 | 0xe3f006dd, 0x7f472baf, 0x23370a6e, 0x1e3c1b5c, 0xfafe72e8, 0xb71a9ba5, | ||
2318 | 0x4b0a293a, 0x12297f5f, 0x374e29e2, 0xbc048dad, 0x192f76d3, 0xf7101487, | ||
2319 | 0x25e8fb50, 0x134e1ee3, 0x134b03c6, 0xeb237155, 0xcb71b863, 0x3fdfc83d, | ||
2320 | 0x274787c9, 0xf3c6f3a3, 0x5e5c422f, 0x2f33e6eb, 0xfecb78c2, 0xf045ee79, | ||
2321 | 0xc23b26cf, 0xad0f60cc, 0xc630e57c, 0x7f7a8935, 0x627a6449, 0xe12fcbdb, | ||
2322 | 0x31db6a3d, 0x35b7afa6, 0x6dbe429e, 0x78c7ed7b, 0xd85af388, 0x0efe8858, | ||
2323 | 0x2414b70b, 0x02e72090, 0xbadf0291, 0x4d1e20ae, 0x755daf4d, 0xfc8fd0bb, | ||
2324 | 0xe837a52c, 0x9638dea1, 0x171672da, 0x2bf1e164, 0xfdc7821b, 0xd4abc405, | ||
2325 | 0x1c3f1c4d, 0x3a75e2ec, 0x415c85ab, 0x4a21cadc, 0x4057bec7, 0x728f0dbf, | ||
2326 | 0xf4e0fe7f, 0x50bf0b3b, 0x2a26353a, 0xd7ce56e3, 0x9fcbf9cd, 0x262eaf21, | ||
2327 | 0xfb8adc64, 0xe226f00a, 0xda24570a, 0x6c3c82f6, 0xc62afcdd, 0xc6dd0109, | ||
2328 | 0x6db689d2, 0xf1069f3c, 0x8eba2d98, 0xc1efdce9, 0x25acf70c, 0xfd70478d, | ||
2329 | 0x10f96db4, 0x8f08f6e3, 0xde236bef, 0x258f161f, 0x89ae79f1, 0x1c2ef160, | ||
2330 | 0x030f10ff, 0x3bf4d0f7, 0x7c617b8f, 0x4261e22c, 0x4c5cc1c5, 0x2df6ceec, | ||
2331 | 0xbe58ef1e, 0x2b8f38e6, 0xca4bd1f1, 0x5f353a05, 0xe048be32, 0xb8780cc1, | ||
2332 | 0x2bae3fc9, 0x3791bc78, 0x0bd38ffe, 0x5cf107e8, 0x0a2db8de, 0x3a58430f, | ||
2333 | 0x83c88242, 0x1e2c55b6, 0xe3ff7d4c, 0x3843cfa3, 0xd152ffaf, 0xf433cc59, | ||
2334 | 0xd3ad9239, 0x6aff8dcb, 0xd12673f1, 0x127388a2, 0x10bd6a78, 0x26a78e5c, | ||
2335 | 0x67eafdb1, 0x00b6b7eb, 0x092536fd, 0x66badbf4, 0xe62b7e85, 0x05754adb, | ||
2336 | 0xafadef90, 0x960c77b0, 0x3942eed5, 0x141796ae, 0xf760b62f, 0x98937d0d, | ||
2337 | 0x67a8aa9c, 0xe6eb44fb, 0xb6899708, 0x6df7fad3, 0x1b15cfc8, 0x8fb0f59a, | ||
2338 | 0xbaff59ef, 0xb317f99e, 0x84fb03f5, 0xadfc6fcb, 0x8d99db7f, 0x09fa1b72, | ||
2339 | 0xbce1d742, 0xe086ca9f, 0xf86e54fd, 0xa94fd146, 0xfccf56b3, 0xdfdd2e8d, | ||
2340 | 0x126dad69, 0x49ba77b4, 0x7269a607, 0x6df996ba, 0x24b7fba9, 0x4abdf8e9, | ||
2341 | 0xa8f7d70d, 0xc83f47bc, 0x9c271e61, 0x51c3735b, 0xc5e6b63e, 0x35a45da3, | ||
2342 | 0x6965af55, 0x7fff842f, 0x935bfbdb, 0xbfac8d72, 0x371f1851, 0xd6e8c62e, | ||
2343 | 0x8073f5d0, 0xaf513fbf, 0x00fff677, 0x8707cfee, 0x78e3dfa1, 0x4dbefcc9, | ||
2344 | 0x6827bc0a, 0xdf3537dd, 0x5f781d92, 0x91912ad0, 0x65279512, 0xf0a59acd, | ||
2345 | 0x0fef6aed, 0x477d16ca, 0xa19d1de0, 0x78102e8b, 0xefeae7df, 0xb3a29a13, | ||
2346 | 0x70b7602d, 0xfa6d812c, 0x829ad6a6, 0x597216ae, 0x0edcef3f, 0x67b012d7, | ||
2347 | 0xdec0b88c, 0xba4a18b7, 0x4daae158, 0xfccfddca, 0xbeaa79be, 0x31ae9877, | ||
2348 | 0x83ddf4b9, 0xe7909fbc, 0xdc82481e, 0x867b8837, 0x8ac730e4, 0xf71081a4, | ||
2349 | 0xc01beecf, 0xe4f915f3, 0x3fa6c7b7, 0x3081e780, 0xe71573f4, 0x27f58d99, | ||
2350 | 0x9fac60e3, 0xb93dc537, 0x34af7e9d, 0x79f8877f, 0x8f9f8932, 0xf28ac4ac, | ||
2351 | 0xf50f7e4b, 0xfb25cff8, 0xfb8a49b3, 0x08b9ef58, 0x63efabbf, 0x8cee7f85, | ||
2352 | 0xec276597, 0x0dbf85a3, 0xc608781b, 0x03961751, 0xc31fd8e3, 0x980641fd, | ||
2353 | 0xf1401f6f, 0xf5cb7673, 0x5b3fe039, 0x9eefb5e4, 0x88bcbd47, 0x338963db, | ||
2354 | 0xafd876f3, 0xd7bd848a, 0xdcf961e9, 0xd9febbde, 0x3ac3b7de, 0xa1c1fe14, | ||
2355 | 0xa2c56de4, 0x421f9137, 0xda12cbe6, 0xa6e4c939, 0xbd3f22b4, 0x072e4df9, | ||
2356 | 0x397efdc4, 0xa78b0bf7, 0xf68dc8d3, 0xbc5791f9, 0xba46e611, 0xcec4d97e, | ||
2357 | 0xe976dbc5, 0x09af1d99, 0xa78f21cf, 0x7c02de3a, 0x81da2c55, 0x762626f8, | ||
2358 | 0x6c96396e, 0x1d31fee6, 0x0eae5099, 0x6eb027ce, 0x7da184b6, 0xd1eb4136, | ||
2359 | 0x2ab8e95b, 0x8bf4128e, 0x33c7c638, 0xd40be9a8, 0x70e6bff7, 0x37e67ad7, | ||
2360 | 0xd7c3c6a1, 0xf1aa1149, 0xc60c37bf, 0x2231f02f, 0xfdc2d49c, 0x958f9d30, | ||
2361 | 0x98aac7cf, 0x814fd78f, 0x6ff74bd6, 0xebf0a2d7, 0x5b2af312, 0xdffc49d4, | ||
2362 | 0x1c5d6ad3, 0xe311df7c, 0x97dbdf56, 0x840f7698, 0x2ae4a37d, 0x02a7fafd, | ||
2363 | 0x3e01c46f, 0x871eaa59, 0x7ee32d3a, 0x17efea1d, 0xf67dc492, 0x7fae3b2f, | ||
2364 | 0x69bd7bb7, 0xf9153b55, 0xbbed1633, 0x713f7ba2, 0x75bff71f, 0xdeea17ff, | ||
2365 | 0xf66ec1ef, 0x8e946ecc, 0x29fcdfe3, 0x9df108f3, 0x1105eddb, 0xbe51c718, | ||
2366 | 0xc8156135, 0x7e470fe5, 0xc2f60f14, 0xf71231fd, 0x1cb4bde7, 0xf7bb52b9, | ||
2367 | 0x717bd567, 0x393f625c, 0x5846ed51, 0x3a9f076d, 0xa7bc31e2, 0xdb2dfc1e, | ||
2368 | 0xb05e8637, 0xf2c9b91d, 0xc231edf3, 0x32ec230e, 0xd4cf3b6a, 0xefe4666e, | ||
2369 | 0xec29bfe9, 0x9417fcca, 0xac472e7c, 0xffdc83d1, 0x17ee7cb9, 0xd65d3347, | ||
2370 | 0xe2877b40, 0xce89bda1, 0xb0475ee6, 0xc23de51d, 0x7b8e2e98, 0x73134e80, | ||
2371 | 0x88863f99, 0x5b942a5b, 0x7a049c9f, 0xfb8c934e, 0x7ddfc2d7, 0x2ce7b7f4, | ||
2372 | 0x34a8f481, 0x131ca277, 0x5eeb1774, 0x86a543f0, 0x14e7b1f9, 0x097fd058, | ||
2373 | 0x57d811e4, 0x0d34746b, 0x299ee742, 0x3c600bf9, 0x0e3afded, 0x8abf024f, | ||
2374 | 0x669dff2d, 0x09aebd41, 0xb39779cf, 0xbffd80df, 0xd73b105b, 0xe8393cb2, | ||
2375 | 0x298977fb, 0x6aceff4c, 0xbbfbb0d6, 0x7aeb92f9, 0x347973b0, 0x39acaa88, | ||
2376 | 0xe0192ee9, 0x559f963a, 0x2892e51e, 0x8c38359c, 0x851bdfe5, 0x88d3df71, | ||
2377 | 0xf3fb0747, 0xa60af00c, 0xc1624ce9, 0xf1b11674, 0xba3ae5f7, 0x9cfeb44b, | ||
2378 | 0x83f32306, 0x309e9e25, 0xfa10ec9f, 0xcc6eceef, 0x3bb7d3be, 0xf37ddf93, | ||
2379 | 0x19fc7295, 0x726eff9e, 0xef9849fe, 0x67b66ee9, 0xdd1bed21, 0x704fe2b4, | ||
2380 | 0x21a2dcde, 0x1a9df7a0, 0x9bb41bfc, 0x24df7a8a, 0x8dd8bfe7, 0x3124dbd6, | ||
2381 | 0x23674aff, 0x1d22a78f, 0xb6f6fef1, 0xd60b93d7, 0x02af7b40, 0xae3c815f, | ||
2382 | 0x29be462d, 0x935c3332, 0x457cec91, 0xca5da5eb, 0xf857d20e, 0x5c87c2f7, | ||
2383 | 0x86e117ec, 0xfdba4f3f, 0xbeef3a61, 0x073dfa1a, 0x02d8e5c6, 0xf74beae3, | ||
2384 | 0xff8c1373, 0x40a71e05, 0xdee0d2aa, 0x068bde6c, 0xc79bec0d, 0xbf03bca8, | ||
2385 | 0xa7e0e3eb, 0xb94fd34d, 0xdce7f63f, 0xfc19bb1f, 0x927a69ba, 0xe7482dca, | ||
2386 | 0x842560fc, 0x64c8e7f2, 0x95f2235b, 0x883bf82e, 0x21e726ef, 0xb4ebb31e, | ||
2387 | 0xd7678fb8, 0xfae7227b, 0x377f65d1, 0xb59a1f16, 0x5848cbe5, 0xef666d4f, | ||
2388 | 0xed126cbc, 0x73b71c6a, 0x0736efee, 0xb26ef5e7, 0xe7cc24ed, 0x01c764f5, | ||
2389 | 0xa3feb76c, 0x753f04ff, 0x7fde3eda, 0x4f1d4bb4, 0xf102950d, 0xa37f9dea, | ||
2390 | 0xe39fcd9e, 0xd3545379, 0x69bfa80a, 0x2cc0774b, 0x2c7ee2c9, 0x0527e804, | ||
2391 | 0xe7b33fc3, 0x0c74378d, 0xf8d17380, 0xff50728b, 0x3fef3131, 0xf38b3a0a, | ||
2392 | 0x286ba70e, 0xcf9287ba, 0x80cc78de, 0x442e1377, 0xe22f5c82, 0xbafa9376, | ||
2393 | 0x6fd0079e, 0xe04caf7f, 0x27ca23dd, 0x498efe0a, 0x48807a66, 0xf8f51ab3, | ||
2394 | 0xc6a6cf5e, 0x36ce7aaf, 0xce7a1d21, 0xe4e5e5a1, 0x507a15eb, 0xff1fe0d6, | ||
2395 | 0x2c58a7fc, 0x92412f0f, 0x42aac8bb, 0x629af7b8, 0x4c36f9dc, 0xb9b99a61, | ||
2396 | 0x66bdee10, 0x207b4a24, 0x1f49699d, 0xe25df705, 0x232b38dc, 0xecb00f6f, | ||
2397 | 0xca116b58, 0xc4583ce1, 0x814bfb7e, 0x1eee1c31, 0x39a170bc, 0x92df0146, | ||
2398 | 0x7f28ac98, 0x2287a5ab, 0x8dc64c7f, 0x9faf7c8a, 0xefbfb5bc, 0x47c0777b, | ||
2399 | 0xc3b07747, 0x9ca079d3, 0xb4656b21, 0x396d66db, 0x148ddb74, 0x4eeeb71e, | ||
2400 | 0x9b036c2b, 0xcdb8fe78, 0x4fd82e05, 0xb00a5de1, 0x3ee4b463, 0xa09fd4fa, | ||
2401 | 0x5f7b2d31, 0x74611e63, 0xebfc6b28, 0x799b6028, 0x3da1e6c3, 0x8c9de036, | ||
2402 | 0xd5dfc135, 0x52c1f610, 0x65e9ecc2, 0xbbf6d41b, 0x550ecc95, 0xe54faca7, | ||
2403 | 0x3c827fd1, 0x0ef5bbea, 0x6e97f833, 0x3763fc1a, 0x64d6e790, 0x284bbc65, | ||
2404 | 0xbff2f17e, 0x1fe03964, 0x17e6a1e7, 0xe9120761, 0x6e2c83b8, 0xc5e56ae1, | ||
2405 | 0xf85e403f, 0xe57917c5, 0x31fb9e98, 0xc41278f1, 0x3f1f0f47, 0x628e4b4f, | ||
2406 | 0x5aaf67e5, 0xd0b8ef0a, 0x13c4277c, 0x4b9db291, 0x85efaec1, 0xf32b3617, | ||
2407 | 0x2996941f, 0x95d387e0, 0x65bccaf0, 0xad43f5fe, 0x66fa8abb, 0xefca83bd, | ||
2408 | 0x39d8278a, 0x639f7024, 0x992ee8eb, 0x6fdb0554, 0x4a31fe44, 0x7853f40b, | ||
2409 | 0xc70bed83, 0xfef47aba, 0xc96527fe, 0xbb3b4f4c, 0x7ddff1ed, 0x6de27607, | ||
2410 | 0xce46fd04, 0x5cfb3146, 0x8d29dd76, 0x177ae406, 0xb36caf86, 0xec7e0347, | ||
2411 | 0x4ee1c5ed, 0x9cac83f0, 0x24fe811f, 0x866ce17d, 0xbfedc9e7, 0x7843d1b7, | ||
2412 | 0xbf09efe5, 0x03ff0f57, 0xd13f379c, 0x46fb1468, 0xff9589bb, 0x6cede48f, | ||
2413 | 0xeb67c8df, 0x83d03a63, 0x974261cb, 0xe252e566, 0xeeb0cb95, 0xbf003e60, | ||
2414 | 0xf78edcf6, 0xd37b009f, 0x5a3eb63e, 0x29e3fb89, 0x4cd8bfb8, 0x95a3ebfe, | ||
2415 | 0x7e77b2d4, 0x427dec2d, 0x7218bf71, 0xd1aeecbd, 0xbf8dfbc3, 0x2279baf4, | ||
2416 | 0x843bdf99, 0xc7071f5e, 0xdca93e50, 0x3b1afcc6, 0x4aefae1b, 0x804bd6fc, | ||
2417 | 0x068cf69e, 0x6dc05af9, 0x3bfdfc0d, 0xd8a17c55, 0x17b58837, 0xf78b13fa, | ||
2418 | 0x3ae80f3e, 0x541fa026, 0xc6fd16a3, 0x092ce816, 0x6fea9751, 0xfc5886b9, | ||
2419 | 0x68dbebfa, 0xe62df940, 0x73666ed1, 0x3e78dbed, 0x8171de1a, 0xc3ea3174, | ||
2420 | 0x87fd8a35, 0x58ba73ee, 0xec455810, 0x6370ec5e, 0xe1d03e42, 0x199c44b0, | ||
2421 | 0x309a9839, 0x35fb9bce, 0x27fc244d, 0xffeb4331, 0x6fd0b6ae, 0xf3bc6cef, | ||
2422 | 0x3e87d07a, 0xcee7bbae, 0x24fbf401, 0xe29b9778, 0xfb7740f7, 0x81df9834, | ||
2423 | 0x73f4255f, 0xfa91fc2a, 0x77f7acfc, 0xf307e50b, 0x65dd80c6, 0xfe83312a, | ||
2424 | 0xfa665e3c, 0xad8b7916, 0x2a37212b, 0xe868a6a5, 0x09e4f5ff, 0xbce99287, | ||
2425 | 0x01fd1613, 0x3df569f5, 0x5bea95f3, 0x26b0f285, 0xebede81b, 0x6e7f1625, | ||
2426 | 0x31577c65, 0x9393ccec, 0x7d508e40, 0xf28ff41e, 0x1ef89dfa, 0xe6dcfa81, | ||
2427 | 0xe7d5abd5, 0xf38dabef, 0xedcbd00f, 0x7071c96d, 0x7877388e, 0xcfd40912, | ||
2428 | 0xcd56f27d, 0x021f5477, 0xdc36b479, 0xa6aef8c5, 0x6fce94ad, 0xb364dac1, | ||
2429 | 0xf6e78a13, 0xa2d6f162, 0xdba7f0fc, 0xcbf3437e, 0x83370a5e, 0x9d30bdda, | ||
2430 | 0x818de138, 0xa37aab85, 0xdeafbbbd, 0xd006eaf2, 0xa1d65eaf, 0xe06bf45d, | ||
2431 | 0xbd7f0a1d, 0xd81706f9, 0x2c69e783, 0x8cf7847f, 0xf9193ac9, 0x060bd4ed, | ||
2432 | 0x1fe75fdc, 0x2bfb81e9, 0xa50b23ac, 0x4254a9cf, 0xfcdeb4cc, 0x5db193d7, | ||
2433 | 0xaf7625f9, 0x02537f3b, 0xfa0aa1c6, 0x8610bcb6, 0xd9c591f1, 0xf4dcbdb5, | ||
2434 | 0x47449edb, 0xbc1c4a54, 0x975ae7ff, 0xf054f144, 0xc01f4fd2, 0x537f36be, | ||
2435 | 0x47cbd21c, 0x61fbe0e7, 0xb60f4367, 0x84be39ce, 0xef05fedc, 0x0653120f, | ||
2436 | 0x87895f82, 0xeece77bf, 0x7db8720f, 0xd977cd4e, 0x7e32ffbc, 0xd840c3ce, | ||
2437 | 0x67cff058, 0xdca24cf1, 0x628d14a8, 0x4f942d3f, 0x3e076c54, 0xf9e037ad, | ||
2438 | 0xb82c35b2, 0x0a486a9d, 0x8c2b57db, 0x49ec2adf, 0x507e8b15, 0x322b13d8, | ||
2439 | 0xe7bbde09, 0xbff4b12c, 0x71f7a697, 0xd9c4a7fc, 0x4a7cc387, 0xfadf1f6a, | ||
2440 | 0xf9f1e21e, 0x7e813ffb, 0x3bd89af7, 0x7c31ef6f, 0x6f02ff0b, 0xbe0ec67b, | ||
2441 | 0xf429570e, 0x476db6cb, 0x7f781db2, 0x382bfc77, 0x3c6d9f0f, 0x25a654f2, | ||
2442 | 0xc7cc7ec8, 0x658cec2b, 0x60fede30, 0x4b8db487, 0xb473b3f1, 0x5efc1d7f, | ||
2443 | 0xeeaff44b, 0x53646cf7, 0xb6dbbc36, 0x07698200, 0x46cff2fa, 0x3ec36537, | ||
2444 | 0x4437fc2b, 0x14cccedc, 0x4a947fee, 0xfbc44352, 0x0b8949cc, 0xdf83ef1a, | ||
2445 | 0xe7de3aaf, 0x19f78b3c, 0x7de333fe, 0x0c9f393a, 0xef1e0988, 0x5fcf04f2, | ||
2446 | 0x43d96a42, 0x43ee5c72, 0x077f0dd8, 0x67bc5658, 0x8899e5c9, 0xc0da18f3, | ||
2447 | 0xb943ffec, 0x6364ab1f, 0x88432e71, 0x7aa7b59b, 0xe5640597, 0x89119054, | ||
2448 | 0x113ae237, 0xc606fdef, 0x7be13425, 0x0e9337cd, 0xacc46d4c, 0x1ba29485, | ||
2449 | 0x8ec491d3, 0x855228e9, 0x835268e9, 0x16a46de9, 0x09a4b1d3, 0x8dc7d253, | ||
2450 | 0xff78c7ef, 0xf3adc67e, 0x0cffb034, 0x6f5c1498, 0xbfaf837b, 0x5243e04b, | ||
2451 | 0x9578afbc, 0xd84518f8, 0xf121c5fb, 0x7e819292, 0xea2f0258, 0x9c31bfbf, | ||
2452 | 0x119db078, 0x80f651b0, 0xef0594f3, 0x0d880a4f, 0xc42bc2e1, 0xa1c7ae47, | ||
2453 | 0x2532f665, 0xe0e9025e, 0x1bd4854c, 0x19ee4607, 0x2b038ca7, 0x5e718719, | ||
2454 | 0x5cec39fd, 0xe26ff2c0, 0xb1f79de5, 0x2824507c, 0x82ca45fc, 0x5c71fe71, | ||
2455 | 0xef190f72, 0xb187261d, 0x6ef17ab8, 0x4230e4c9, 0xb5bf809a, 0xcf9438ce, | ||
2456 | 0xde297a8b, 0x392530f3, 0x355ca00e, 0x142d23ba, 0x16670b7f, 0xb1c6ffa2, | ||
2457 | 0xdb8dcb38, 0x7e3c5f25, 0xd75b0a4b, 0xc4aaa547, 0x8f1e743e, 0x77dfa7e4, | ||
2458 | 0xbfafba7f, 0x04e7e82b, 0x3f755bac, 0x3c3ac46f, 0xf6313fd0, 0x2cfcf3c2, | ||
2459 | 0xde6cafbe, 0xaadb343c, 0xaccd7e81, 0xdd67dfdf, 0x32cd3f77, 0x424edaa7, | ||
2460 | 0x821496f9, 0x5da44deb, 0xf02dece2, 0x893bc45d, 0xbf33edef, 0xbe26eadf, | ||
2461 | 0x531faa38, 0x5ca1671c, 0xd693c6a5, 0x571d0e5f, 0x5c46c4b6, 0x655be47a, | ||
2462 | 0x2e3a993c, 0x3df7b68b, 0xee52abcc, 0xd3fc0b98, 0xfe91f516, 0xcaefea2c, | ||
2463 | 0x1dc6acb8, 0x687114fb, 0xe3781d62, 0x1c593ad0, 0x438850da, 0xbff1f48b, | ||
2464 | 0x7c134388, 0x10c3d62c, 0x72c34388, 0xf281cc37, 0x813a3fc3, 0x4e236871, | ||
2465 | 0xda1c7878, 0x9a1c6511, 0x159ffbed, 0xb1de2687, 0xbd85b058, 0xdb80bfa7, | ||
2466 | 0xfd060077, 0x5f7894e2, 0xc4579f86, 0xdf7ca4b9, 0xdf9eecdb, 0x041bff49, | ||
2467 | 0xa7ec907e, 0xe859f9f8, 0x0fe0122f, 0x0cb5c279, 0x0fe01dc6, 0x09aff2a9, | ||
2468 | 0x568277fd, 0xe9fbf506, 0x2bcfca93, 0x5c219f7c, 0xcbc7997f, 0xaec0fcc0, | ||
2469 | 0x8f51a0b5, 0x1782d1fa, 0xfe82b3ee, 0x64d520b4, 0xf2b77945, 0x514be43e, | ||
2470 | 0xfccf3c9e, 0x9b7ac473, 0xdea09cbf, 0xac4f3de5, 0xeff0d833, 0x404bac23, | ||
2471 | 0x3e7bcafd, 0x0814f6e7, 0xebfb84d3, 0xdd1d514d, 0x536ddee1, 0xf4158663, | ||
2472 | 0x5b220fbb, 0x71b14256, 0x5e9f0ce1, 0x0e98797d, 0x9603aff5, 0x74888298, | ||
2473 | 0xf3b13adf, 0xf99e4275, 0x3af98335, 0x7bb136b3, 0xf6a39c85, 0xdc0b4882, | ||
2474 | 0x84fbb02b, 0xefc12d41, 0x4ae7c7a9, 0xc08a7b8a, 0xcb16c9f7, 0x7fb8255d, | ||
2475 | 0x6a10f760, 0xbfb8bd3b, 0x2985b22e, 0xdd423fee, 0x0ef38b67, 0x1e89efdd, | ||
2476 | 0x118d7bf6, 0xc48337fd, 0xf7233dd3, 0xf663bdf0, 0xf3c0e48e, 0xa6c61dd0, | ||
2477 | 0x4fabe034, 0x53731c63, 0xcb6e20e3, 0xce39416a, 0xf17ceae3, 0xbca06f40, | ||
2478 | 0x073ef114, 0x20e32da5, 0x54deea1e, 0xa3d40547, 0x067b30d3, 0x9947def9, | ||
2479 | 0xc5f27b99, 0xa7682dd7, 0xb7f54caf, 0x3bbff3d3, 0x1e2f5ea2, 0x59e3058d, | ||
2480 | 0x5095bf9c, 0x8d0338af, 0x15f3c60c, 0x8a674ff2, 0xdbf98729, 0x4adefeaa, | ||
2481 | 0xdfe5576c, 0xf167a95b, 0xad89a50d, 0x59b3af4c, 0xfa6e2cad, 0x959dfde7, | ||
2482 | 0x9553ddcb, 0xf428b626, 0xe621b255, 0xbea6ec8a, 0xfdae5df9, 0x5a7f6c36, | ||
2483 | 0x7e0a87d5, 0x98e8b198, 0x3a66cf82, 0xb5f9959b, 0xaf7838d2, 0x1567d28c, | ||
2484 | 0x35b3c7d0, 0x0b14d469, 0xf01801f8, 0xf7cbbf5d, 0x77f11a7b, 0xcf09baa2, | ||
2485 | 0x9f5e628b, 0xd8451f55, 0xc651ed53, 0xa979f067, 0x704f8bfd, 0xdc1399bf, | ||
2486 | 0xf704e66f, 0xfdc1399b, 0xbf704e5a, 0x7c87e116, 0x4c8aa242, 0xe47f5074, | ||
2487 | 0x828f8137, 0xc23723f8, 0xc8fe90f7, 0x0a71c7e4, 0xb7e7647f, 0xe47f0b08, | ||
2488 | 0x91e7a95d, 0xec9bbb8f, 0xc43b436f, 0x9ffbd1e6, 0x23f943bb, 0xeeca9fbf, | ||
2489 | 0xa5503e93, 0x22f3d29f, 0xb4f1a9fa, 0x0bd95e50, 0x37ac59df, 0xcb879010, | ||
2490 | 0xf1a6d924, 0xb0f18fbf, 0x16ce5377, 0x1dfc28a5, 0x8b7f962a, 0x0f7e17f8, | ||
2491 | 0xd0196f39, 0xdf7ca04f, 0xd7405ec1, 0xe71d53c7, 0x1dfd9952, 0xab2e87df, | ||
2492 | 0x5fbfb033, 0xbf21cfc7, 0xebf139e0, 0x718181d4, 0x77e6a114, 0x53d34e76, | ||
2493 | 0xe55e7499, 0xef153b91, 0x8af18b22, 0xfa718979, 0x5f8cb9da, 0xc50ef2c9, | ||
2494 | 0xf6db6b3a, 0x63e02f48, 0x9c167ef1, 0xa904275b, 0xe8c69f1f, 0x5287cf42, | ||
2495 | 0xa4bfed1a, 0x7d0f9d8a, 0xffb9adf4, 0x3ec7a013, 0x509dca13, 0x2cf3d5f5, | ||
2496 | 0xf10fb1df, 0xd2173ea1, 0x0b4d7679, 0x3b9fcf32, 0x6bf5abbf, 0x4e217437, | ||
2497 | 0x715097e0, 0x9b250751, 0x2d77c605, 0x4b5e96bd, 0xd2d7a5af, 0xf4b5e96b, | ||
2498 | 0xbd2d7a5a, 0xaf4b5e96, 0x6bd2d7a5, 0xf4e5ffe9, 0xfffd007f, 0x8000c102, | ||
2499 | 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, 0x30001131, 0xafb00408, | ||
2500 | 0x521cae88, 0x11447fea, 0x992c9a42, 0x326ebaf3, 0xb6db6db6, 0x6db6db6d, | ||
2501 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
2502 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0x7f6db6db, 0x98a102fc, 0x80005382, | ||
2503 | 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, 0x30001131, 0xafb00408, | ||
2504 | 0x521cae88, 0x11447fea, 0x992c9a42, 0x326ebaf3, 0xb6db6db6, 0x6db6db6d, | ||
2505 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
2506 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0x7f6db6db, 0x98a102fc, 0x80005382, | ||
2507 | 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, 0x30001131, 0xafb00408, | ||
2508 | 0x521cae88, 0x11447fea, 0x992c9a42, 0x326ebaf3, 0xb6db6db6, 0x6db6db6d, | ||
2509 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
2510 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0x7f6db6db, 0x98a102fc, 0x80005382, | ||
2511 | 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, 0x30001131, 0xafb00408, | ||
2512 | 0x521cae88, 0x11447fea, 0x992c9a42, 0x326ebaf3, 0xb6db6db6, 0x6db6db6d, | ||
2513 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
2514 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0x7f6db6db, 0x98a102fc, 0x80005382, | ||
2515 | 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, 0x30001131, 0xafb00408, | ||
2516 | 0x521cae88, 0x11447fea, 0x992c9a42, 0x326ebaf3, 0xb6db6db6, 0x6db6db6d, | ||
2517 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
2518 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0x7f6db6db, 0x98a102fc, 0x80005382, | ||
2519 | 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, 0x30001131, 0xafb00408, | ||
2520 | 0x521cae88, 0x11447fea, 0x992c9a42, 0x326ebaf3, 0xb6db6db6, 0x6db6db6d, | ||
2521 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
2522 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0x7f6db6db, 0x98a102fc, 0x80005382, | ||
2523 | 0x00008000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, | ||
2524 | 0xffffffff, 0xffffffff, 0xffffffff, 0x00002000, 0x000040c0, 0x00006180, | ||
2525 | 0x00008240, 0x0000a300, 0x0000c3c0, 0x0000e480, 0x00010540, 0x00012600, | ||
2526 | 0x000146c0, 0x00016780, 0x00018840, 0x0001a900, 0x0001c9c0, 0x0001ea80, | ||
2527 | 0x00020b40, 0x00022c00, 0x00024cc0, 0x00026d80, 0x00028e40, 0x0002af00, | ||
2528 | 0x0002cfc0, 0x0002f080, 0x00031140, 0x00033200, 0x000352c0, 0x00037380, | ||
2529 | 0x00039440, 0x0003b500, 0x0003d5c0, 0x0003f680, 0x00041740, 0x00043800, | ||
2530 | 0x000458c0, 0x00047980, 0x00049a40, 0x00008000, 0x00010300, 0x00018600, | ||
2531 | 0x00020900, 0x00028c00, 0x00030f00, 0x00039200, 0x00041500, 0x00049800, | ||
2532 | 0x00051b00, 0x00059e00, 0x00062100, 0x0006a400, 0x00072700, 0x0007aa00, | ||
2533 | 0x00082d00, 0x0008b000, 0x00093300, 0x0009b600, 0x000a3900, 0x000abc00, | ||
2534 | 0x000b3f00, 0x000bc200, 0x000c4500, 0x000cc800, 0x000d4b00, 0x000dce00, | ||
2535 | 0x000e5100, 0x000ed400, 0x000f5700, 0x000fda00, 0x00105d00, 0x00000028, | ||
2536 | 0x00000000, 0x00100000, 0x00000000, 0x00000000, 0xffffffff, 0x40000000, | ||
2537 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
2538 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
2539 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
2540 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
2541 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
2542 | 0x40000000, 0x00088b1f, 0x00000000, 0x51fbff00, 0x03f0c0cf, 0x65e21f09, | ||
2543 | 0x63e62860, 0x88237860, 0xcc2b4e2a, 0xfe9942ce, 0x0c0cccf3, 0x32f88117, | ||
2544 | 0xe2055f10, 0xe9a48cd3, 0xb045e2b7, 0x30327377, 0x7df90358, 0x9b8b5a40, | ||
2545 | 0xc8014181, 0xb3e201b6, 0x204bfe40, 0xadc40afe, 0xdc0c0c3c, 0x6a0c0c5c, | ||
2546 | 0xc4042c40, 0xcdf8bcb6, 0xff2023b7, 0xaf951b9f, 0x17ca83cd, 0x3fafc6e6, | ||
2547 | 0x7cbf0789, 0x6c790106, 0xf928b3f8, 0x4620e1f1, 0x2d43749f, 0xca86aeac, | ||
2548 | 0x6065522f, 0xe7c40df8, 0x681ae2a1, 0x10aac5f2, 0x03329cfa, 0x7e1ab243, | ||
2549 | 0xc80853b3, 0x000c060f, 0x4022bae9, 0x00000400, 0x00088b1f, 0x00000000, | ||
2550 | 0x7dedff00, 0xd554780b, 0x733ef0b5, 0x27bcce66, 0x20212793, 0xf0841e4c, | ||
2551 | 0x04242074, 0x11093a8c, 0x5076c403, 0xc2ab16fe, 0x25786784, 0x5ae5a911, | ||
2552 | 0xc0133bff, 0x51b91688, 0x7e2da5a8, 0x68bc104e, 0x01226f69, 0x903a4483, | ||
2553 | 0xbd08a5c0, 0x168b6ad1, 0xe088786d, 0x7e929205, 0xcfe956de, 0xe7dad6bf, | ||
2554 | 0x9939cccc, 0x77e8f881, 0xbf41ffbf, 0xdecfb3ba, 0xd7b5ef67, 0xcfb5ef5e, | ||
2555 | 0x30733d1e, 0xd7632776, 0x73941ff1, 0x4158c645, 0xf81d0ca4, 0x614b3ce2, | ||
2556 | 0xc18b72ec, 0x6c64cc65, 0xe8431eca, 0x68afa84e, 0xd7588214, 0x3633301d, | ||
2557 | 0x5b2bb181, 0xec46bd79, 0xb41b78dc, 0xb645d7b3, 0xd3b60a03, 0x8c8563a6, | ||
2558 | 0xfe31379d, 0xb1d76f4f, 0x9916c634, 0xe3457579, 0x7e3839c1, 0x9991ab55, | ||
2559 | 0x2df3fde1, 0x2beb07a2, 0x26410877, 0x27befb40, 0x7f180ca5, 0x32685071, | ||
2560 | 0xe3bea0bb, 0x6765c959, 0x2f81cd6c, 0x0abce0ae, 0x4dfa9f5c, 0x7c2125cc, | ||
2561 | 0x8d75a5ef, 0xb0696c66, 0x8c066a79, 0xe09774b3, 0x4b3cc1d6, 0x3ba10ab7, | ||
2562 | 0x2173e027, 0xcbb8c228, 0x2b995a76, 0x9d70c38f, 0x8eb4bcd1, 0xbcc02f95, | ||
2563 | 0x83670899, 0xe647b5e4, 0xa9f3f053, 0x72b981bf, 0xaf15f523, 0x5ef03cc0, | ||
2564 | 0x3704aff5, 0xc75ab12e, 0xff304d7c, 0xd9e67d95, 0x7d70d92f, 0x3dae5275, | ||
2565 | 0x7b951d7a, 0x834b1d71, 0x1b54d28d, 0x2d28d5c2, 0x6f191d1a, 0xcc4dced9, | ||
2566 | 0x6b828a65, 0x5f00f64b, 0xfcb6bb54, 0xf054cfd4, 0xd3cc652c, 0x83f84364, | ||
2567 | 0x9131ccd2, 0x22422de7, 0xbe38a963, 0xb19f1aa8, 0x99173d00, 0x6778843b, | ||
2568 | 0xf477766d, 0xaa755dbe, 0xa2656df7, 0x781c6efc, 0x87de45fe, 0x2a4efd67, | ||
2569 | 0xa9d3f937, 0x45dfb1fc, 0x9fc4fe70, 0xfd4fe547, 0x73fe7a6e, 0x2f95117f, | ||
2570 | 0xbe543df8, 0xb2a72fe8, 0x7ea5efd1, 0x5367f92f, 0xa3efc3b9, 0xafeaffe7, | ||
2571 | 0x7f15f2a2, 0x85ff3d2d, 0xbf95357f, 0xf9e807f4, 0x53d7f9bf, 0x04fb8cd9, | ||
2572 | 0x16ff6ee5, 0x83f8f72a, 0xff75efd4, 0xf9f72a4e, 0x33f9e89b, 0x13283f88, | ||
2573 | 0x3d3ace3c, 0x19424fec, 0xb0790273, 0xceb7af64, 0x59e4f500, 0xd7c03ebc, | ||
2574 | 0x7e012750, 0x3a802c06, 0xdaa0dfec, 0xb4233ace, 0xdbc55a0f, 0x6b9c0687, | ||
2575 | 0x743ed04c, 0x6ecf6f1d, 0x4331aef0, 0xde66f67b, 0xb0d83c3e, 0xc3ed02c6, | ||
2576 | 0x51f6f3b7, 0xac6b9d4d, 0x85aa3ed0, 0x721adfb7, 0xfd41b5ae, 0xcf5e0ed6, | ||
2577 | 0xb5aef4ef, 0x5dff3d43, 0xd5d89f5e, 0xef01d6b0, 0xdfc73c4f, 0xd9bde2d7, | ||
2578 | 0x60cf9ce0, 0xee0736af, 0x4207e8f2, 0xc23e725d, 0x1cbd8cdc, 0x77d516f8, | ||
2579 | 0xded4dc1b, 0x47aef81a, 0x92ea093f, 0x058fda9b, 0xc7bed47c, 0x53f6a5e0, | ||
2580 | 0xbed42581, 0xfb52f247, 0x6a4ac095, 0x4b50dd7f, 0x87eeaced, 0x54bafed4, | ||
2581 | 0x7549ed4b, 0xcfbea8eb, 0x8c196d00, 0xe33dd4e5, 0xcdfd0009, 0x511b7c11, | ||
2582 | 0x6aeb747e, 0x12ca18ab, 0xf91d287d, 0xcd8149e9, 0x5d80fe46, 0xf27bba23, | ||
2583 | 0x7c83c916, 0xc29bfcd7, 0x994cc497, 0xbeb052d6, 0x05a7e5e8, 0xd827e71a, | ||
2584 | 0x71825baf, 0xce3e6fb2, 0xaa4563b8, 0xab1dc671, 0x1209c652, 0x8dfe963c, | ||
2585 | 0xb26c7cd3, 0x4b639e1a, 0xa15e7195, 0x5bfd1c71, 0x8ab7b8d7, 0xb5bcf0d5, | ||
2586 | 0x35e7195c, 0x7fa9271a, 0x1b7eecf0, 0xc64423f0, 0xe036fdd9, 0xd9c69327, | ||
2587 | 0xf5a4e34f, 0x77fc9e0f, 0xe4e3548a, 0x8ca553bf, 0xce7841d3, 0xbb38dfe8, | ||
2588 | 0x86ac99df, 0xcaa59de7, 0x9c682738, 0x575bfd21, 0xd58aeffe, 0xb96efcf0, | ||
2589 | 0x69efce32, 0x8dfeac9c, 0x357de7b3, 0x3f79ecfd, 0xa27f3f4c, 0xb7fb7271, | ||
2590 | 0xd40f82ae, 0x41f053f4, 0x102e7e98, 0x6ff6479e, 0xa81f3d9c, 0x07cf67e9, | ||
2591 | 0x33f9fa61, 0x7fb633c1, 0xa3f82aeb, 0xfe0a7e9a, 0xcf9fa618, 0xfdf19e09, | ||
2592 | 0xd3f5e783, 0x7ebcfc6a, 0x511f8c3a, 0xfb0a7840, 0x33c4cf07, 0x3c4cfc6a, | ||
2593 | 0x8d8fc613, 0xbfdc99c6, 0xa33f5e71, 0x67ebcfc6, 0x1549f8c2, 0xf4775d70, | ||
2594 | 0xcf135d6f, 0xf133f1aa, 0x433f186c, 0x19529e08, 0x8ce3061e, 0xbece3f89, | ||
2595 | 0xecfc6a8b, 0x33f1c8bb, 0x3a27d3be, 0xce90dda0, 0xe4ce08dc, 0x0080de0b, | ||
2596 | 0xa814faed, 0x30f4b0bb, 0x3d3bc81f, 0xf8d1ddea, 0x84405772, 0xc4aefb76, | ||
2597 | 0xa2bb4ff1, 0x58e96ff5, 0x8263975c, 0x3877654e, 0x7aaa2d8b, 0x4a925952, | ||
2598 | 0x6454a73f, 0xb369eaa8, 0xf4f554b2, 0xdeaa4707, 0x5e3058cf, 0x7cbc1f55, | ||
2599 | 0x643eaab2, 0x7deaa955, 0x55d3e3d7, 0xeeeb59ed, 0x3673d555, 0xcf554f7c, | ||
2600 | 0x554f3cdd, 0x54badbcf, 0xedc8de35, 0xd1f5552b, 0xd5531ebb, 0x51acb6c7, | ||
2601 | 0x4f6dddd5, 0x3be3eaab, 0x3f8d539e, 0x54cff8e1, 0xb777c2f5, 0xa745eaa9, | ||
2602 | 0x3fbd555e, 0x1a6bdcf9, 0x3ce6c6fb, 0x8bae4a3f, 0xc95acf68, 0x910e33ce, | ||
2603 | 0x192d5ec8, 0xa3faa262, 0x7f546c43, 0x70df0ef4, 0x8fe3ec27, 0x6bd005f0, | ||
2604 | 0x5bbe4a8f, 0x2fec319d, 0x4b1d39d8, 0x63a7d2c7, 0xd7db7d45, 0x80ce801b, | ||
2605 | 0x5e874a2e, 0x650d3dcb, 0x3727ae8d, 0xe8dfca11, 0x2e916a4a, 0x4474151f, | ||
2606 | 0xd591567f, 0x8d58dd22, 0xfd70e88c, 0x0297c2b0, 0x54f87451, 0xcaf39726, | ||
2607 | 0x6a194fb8, 0x3eef51d3, 0x0066f756, 0x9993f2f5, 0x664cbc60, 0x9bc287ec, | ||
2608 | 0xbc0e40a1, 0x3a68f99f, 0x09268bda, 0xf9e8d0ec, 0x347f9825, 0xf9c01fcd, | ||
2609 | 0x6fcce3eb, 0xcd522dca, 0x52aace6f, 0x60966fcd, 0x4f63277e, 0xe7961dd7, | ||
2610 | 0xffde9137, 0xe6987091, 0xa6ad6537, 0xac4bd7f9, 0x25bf354a, 0xf2037f3c, | ||
2611 | 0x7f38f3c1, 0xe7f58c41, 0x3faf564e, 0xfd7aa96b, 0xcfff5f12, 0xf3c84eea, | ||
2612 | 0x3ffd685b, 0xf5f04e17, 0xd7c63d67, 0xa371846f, 0xf18477e7, 0x5ff9c41f, | ||
2613 | 0x69bf338e, 0xfd7ab178, 0xebd5cbd9, 0x5ff9f237, 0x9e4f7bad, 0xfff346df, | ||
2614 | 0xaf8f7842, 0x9a71fb3f, 0x75ac68df, 0x38c9a13b, 0x441b52d4, 0x2fe600b9, | ||
2615 | 0x050c801b, 0xc6444cf3, 0xde0c6248, 0xd164285f, 0x016a3c3e, 0x9ffe83ba, | ||
2616 | 0xd0de8059, 0x72ed977e, 0xd017ac16, 0x6996af0e, 0x4aaec17a, 0x657819e9, | ||
2617 | 0x57f72b41, 0xc333f818, 0xad2bbe00, 0x11fd9fbd, 0x7db05de0, 0xa025c91c, | ||
2618 | 0x2def8674, 0x23529794, 0xe6307c72, 0xe413321d, 0x877bd329, 0x9a863bdc, | ||
2619 | 0x2fd7683c, 0x1f630466, 0x60d85e3a, 0xc515df38, 0xa8b78b6f, 0xea824beb, | ||
2620 | 0x097702ba, 0x81940912, 0x0b579652, 0x7f079ef3, 0x7ddd8180, 0x2c6dec06, | ||
2621 | 0xb9b0313f, 0x0e7e785e, 0x452605fc, 0xed1d55f3, 0xabbd79cb, 0x73d61d3e, | ||
2622 | 0xc3704abe, 0x0d81ec88, 0x3a196395, 0x7bcf0172, 0x77ef0039, 0x852ff298, | ||
2623 | 0x7273e9d6, 0x003617f8, 0x7ff1477f, 0xb0bbc88d, 0x0ee08517, 0x7fbfe790, | ||
2624 | 0xba054573, 0x83d7d0bc, 0x5e577def, 0xc92de2f7, 0xde98f7aa, 0xa9cdef44, | ||
2625 | 0x1ea20c4c, 0xc36ceef8, 0x3b552eb9, 0xf1c03f30, 0xdd0fec91, 0xf1eebacf, | ||
2626 | 0xdfb99e82, 0x75d7eea7, 0x8dd1eac0, 0xbb4b7285, 0x3dbec181, 0x8719a550, | ||
2627 | 0x1f7f6879, 0xa878e192, 0x973edd56, 0x5fd42539, 0x9fab5773, 0xe3b40657, | ||
2628 | 0xcf00f800, 0xf81c793c, 0xe6f844e7, 0xd7f36dcb, 0x7daa021b, 0x0a947a02, | ||
2629 | 0xa22cf6e5, 0xbd0f5a02, 0x3fb7dd9f, 0x434041d0, 0xfb588107, 0xf9f7fffe, | ||
2630 | 0xae7d8dff, 0x3e492d69, 0x8ad70517, 0xe7c969a6, 0xdb2dfaa2, 0x5f555339, | ||
2631 | 0xd55fbc12, 0x4a96f17f, 0x86c2fb55, 0xf9f6aa25, 0xd5561feb, 0xa4ff032b, | ||
2632 | 0x75773fea, 0xa1fdaa9d, 0xed54a7da, 0xab3d540f, 0xfbefdfaa, 0x77ffaaa9, | ||
2633 | 0xdaaa3767, 0x864b0385, 0x46a8dc62, 0x881d0df2, 0x8df7aef1, 0xa1109b6c, | ||
2634 | 0x2fae855b, 0xfca9d3f8, 0xb2a2efd4, 0xc830e50e, 0x5e3edd75, 0x1cab6cd6, | ||
2635 | 0xa15bf28a, 0xb50c4ff3, 0x69fe5043, 0x672b55e9, 0x6325d0fb, 0x88bed083, | ||
2636 | 0x2e596717, 0xf3ca2f30, 0x19db816e, 0xb213f3ca, 0x0d6c675e, 0x8972d7f1, | ||
2637 | 0xd7f2dff3, 0x3f229606, 0xb942972c, 0xe3f8b6b5, 0xd68126b2, 0x1a36d8c1, | ||
2638 | 0x10704967, 0xfbd17918, 0xf382ad9a, 0xe69141d2, 0x6e1f46af, 0xdec1da12, | ||
2639 | 0x3f9c3a0d, 0xbee43ed4, 0xe78f0831, 0xc1c01d19, 0xdf49535a, 0x2797f25d, | ||
2640 | 0xfe23d39f, 0xf05e54bc, 0xbcf2a6cf, 0x39e547df, 0x6795157f, 0x7654b5fc, | ||
2641 | 0xf95357f9, 0xe5403f91, 0x2a7aff29, 0x5037f03f, 0x85bfd279, 0x83fbdfca, | ||
2642 | 0x7bf15e54, 0xf4e854a8, 0xb57d96ff, 0xf2bdb8e8, 0xffafb8df, 0x16afbd1e, | ||
2643 | 0x23c3939d, 0x0d06ebef, 0x55794abc, 0x61797027, 0xf31676e4, 0x788e2958, | ||
2644 | 0xc3078955, 0x94571448, 0xf0ddc1e3, 0xd3f62777, 0x1831e537, 0xcfe8eaef, | ||
2645 | 0x7b8e3173, 0xb191a4f5, 0xd3ebf8cc, 0x3c5c5fee, 0x46ee80b0, 0x3858b7f8, | ||
2646 | 0x72aa015e, 0xdcec1e36, 0xf3dd7b11, 0x92cf5d78, 0x7726fdf0, 0x3c355c74, | ||
2647 | 0xc072e22e, 0xd16af1cd, 0xdacf7b71, 0x847c722e, 0xb3efbb76, 0xc6b5e847, | ||
2648 | 0x718b93d8, 0x2347f662, 0x36c63d43, 0x055871cb, 0x575e015f, 0x3a7ff5f0, | ||
2649 | 0xfda04e3e, 0x1f1f105b, 0x47e0a5dd, 0x32bff0c4, 0x574aafc5, 0xae90439d, | ||
2650 | 0x7bf4cab6, 0x027865b5, 0xe7191d1b, 0xd38b9d6e, 0x7ef04df5, 0x0e4be8f5, | ||
2651 | 0xa657f3b4, 0xf2e79ceb, 0x456fe3e3, 0x16d3a653, 0xaab4a76d, 0x841b57eb, | ||
2652 | 0x70371e72, 0x831acc25, 0x3ce9d1f2, 0x2c728397, 0x9c654a9d, 0xf392e995, | ||
2653 | 0x0bf6325c, 0x2576f872, 0xea7e5f12, 0x6fbf5137, 0xe3788e1a, 0x6168e044, | ||
2654 | 0x247de167, 0xf1d9ebd1, 0x3ba5c7fb, 0x8c245ffd, 0xc336b0c7, 0x985f6867, | ||
2655 | 0xd1d7ffe0, 0xaa7a63ee, 0x34d6e32b, 0xade30189, 0x6a977cf8, 0xa5cf783e, | ||
2656 | 0x67ae94e4, 0xf5be88dd, 0x7f42bcec, 0xa0e7ca20, 0x1079489d, 0xbf6d53b3, | ||
2657 | 0x35eaaa24, 0x2a9d03ad, 0x00ff067b, 0x04cac739, 0x72c1d23d, 0xf5ba2c99, | ||
2658 | 0xc002f5b6, 0x2e9d0937, 0xf78147a4, 0x92ea615b, 0xafa42e7c, 0xcdb9dfb5, | ||
2659 | 0x681b3d85, 0x60f85abd, 0xf5ea66ff, 0x265fe1f1, 0x1bd47d5e, 0x22d7fe83, | ||
2660 | 0xd01ea3fd, 0x999f3f71, 0x43e40e02, 0xdc701e96, 0x6cc3fc4b, 0x9ae0fc61, | ||
2661 | 0x5513cc19, 0xff01c657, 0x5f6d47ad, 0xa4bbbe72, 0x76bbfee3, 0xbcf2cdde, | ||
2662 | 0xf55fc337, 0xe2a7b7ae, 0xac78b5ba, 0xe4b3fd6e, 0x5314fca3, 0xefc151e1, | ||
2663 | 0x59bbd124, 0xee97f984, 0x7f212d3c, 0x7204305d, 0xb903787f, 0x5b7e17df, | ||
2664 | 0x646b79fa, 0xd8f72b9d, 0xf95fbec9, 0x0bd79cac, 0x779c4eb0, 0xf13c915e, | ||
2665 | 0x0515e835, 0xa67c6807, 0xd3d88c2b, 0x5e6d7e4a, 0x27f232cb, 0x0901663e, | ||
2666 | 0xc51792e3, 0x9fb44286, 0x4a353697, 0x32f3801e, 0xbe2395d3, 0x1c77b32e, | ||
2667 | 0xb5fb51f9, 0x9f08944f, 0x899f6760, 0x6cec1386, 0x6cec1d55, 0xbb117d55, | ||
2668 | 0x51f30d37, 0xc01b368b, 0xaa75a7c5, 0x9d115fda, 0x5662ee34, 0xc9768f5b, | ||
2669 | 0xeffc96d9, 0xf0fb86dc, 0x88850bfa, 0x3cd079df, 0xf8f10928, 0xcbf1e136, | ||
2670 | 0xdf04bfce, 0xde77df1f, 0xf26add08, 0x561e328e, 0xc13c14ec, 0x44737418, | ||
2671 | 0x7d0ad796, 0x5f8641fd, 0xc59c0f89, 0xdea4417a, 0xa17fa9ad, 0xfe657fa9, | ||
2672 | 0x4bba014d, 0x24f7ec8b, 0xe91677d1, 0x38f906ad, 0x5fb7c221, 0x3ef4fc79, | ||
2673 | 0xa37f77e3, 0xf3560fe3, 0xc5ff8c0d, 0x4e7e3a37, 0xfa8df81f, 0x77e3be82, | ||
2674 | 0x59631d9b, 0xc4a9d902, 0x3a71815f, 0x1fe9bbf2, 0xd2136bda, 0xc0a69fc9, | ||
2675 | 0x39ddd638, 0xd9a38c41, 0x14e99dcd, 0x54bf07d7, 0x6024f30f, 0x0edf907f, | ||
2676 | 0xf9f016e6, 0x2cd37ed3, 0xf8ca8794, 0xe55eb776, 0xe914267f, 0x7b28fe35, | ||
2677 | 0x61f00737, 0x38a6a793, 0xfcedd41b, 0x5b6b666f, 0xe30b7c4c, 0x04e8fca8, | ||
2678 | 0x2ffe45d6, 0x9e7aa78c, 0xa1d59a38, 0xa8f44a1a, 0x6d154f9f, 0x9c4b6f14, | ||
2679 | 0x9c4e28c6, 0xfad7ae5c, 0xd2c315f7, 0x4740e0a2, 0x32c9ea1b, 0xcfa6e01c, | ||
2680 | 0x67fde014, 0xf08cf4cb, 0xc5ff8012, 0xbc593380, 0x01f9c216, 0x39df155e, | ||
2681 | 0x65f540f2, 0xe7aabc11, 0x4d19e700, 0xe50f207c, 0xb8b31246, 0x53801e71, | ||
2682 | 0xdbd1eed5, 0x0e1e2853, 0xa3e517f2, 0xc989d4cd, 0xaaef9c7f, 0xf4ebaf0a, | ||
2683 | 0x190b23e9, 0xfc385085, 0x942fa601, 0x83ef8bf7, 0xd313bfaa, 0x8f04d9d4, | ||
2684 | 0xd8361c7a, 0x6f8f2d19, 0x8309fd95, 0xe9133bc1, 0xad6870aa, 0xa717f388, | ||
2685 | 0xaec872bb, 0x3a214b68, 0xca5d5acc, 0x685d42ce, 0x9cf78460, 0x39ef1c0d, | ||
2686 | 0xf71e3a3d, 0x0e09675c, 0x268cb183, 0x9c833016, 0x301cad02, 0x8259c78c, | ||
2687 | 0x5ae49fb2, 0xcd3cc3a3, 0x7829a07a, 0x54a7adaf, 0xa73610b7, 0xfc609b09, | ||
2688 | 0x3e3de96f, 0x67c1c63d, 0xe375d2fa, 0x9ae161f0, 0xa5a0c18e, 0xb8211b19, | ||
2689 | 0x05080b41, 0xc2de8e87, 0xdf184a43, 0x790f4185, 0xd72ed46c, 0xdaed0859, | ||
2690 | 0x2faf0b06, 0xae9417d7, 0x988ff787, 0x5d71cbbc, 0x891ce4cc, 0x4a162b79, | ||
2691 | 0xb7c6f5a2, 0x0724024f, 0xb6f2b815, 0x4cb54d77, 0x2814fe40, 0x1ecc3fcf, | ||
2692 | 0x24255bb6, 0xa5361dae, 0x6ed0921e, 0x2dbcb6f5, 0xa2bb7fa1, 0xd76a6de9, | ||
2693 | 0xa1ca1d61, 0x07535dc9, 0xd4f88981, 0xf4d2b2ba, 0x4b5e3011, 0xd60eba65, | ||
2694 | 0xb2badcf5, 0x4f75ea43, 0x1c51d35b, 0x775eb759, 0x77dd66b7, 0xcfdd70df, | ||
2695 | 0x5d2eefe9, 0x75ffdc5f, 0x8b3fbec2, 0xa25199f8, 0xeefe510b, 0xf0282da4, | ||
2696 | 0xec99bb78, 0xc69c7941, 0x1287f638, 0x7e718437, 0xe850eb8a, 0xa14f7947, | ||
2697 | 0x9174789b, 0x79239ccd, 0x1f4d503e, 0x6d9ef4c7, 0x7a4bd708, 0x4054894f, | ||
2698 | 0x787b25eb, 0x2ee7cf86, 0x2dd08fcb, 0xd1f2f9b3, 0xe61832be, 0x57e702fd, | ||
2699 | 0xb2519ae0, 0x7802cc52, 0x21ec6177, 0xd49eb235, 0x2e7301d5, 0x03d533ac, | ||
2700 | 0x7be177d8, 0xcf7c66be, 0x8427bb31, 0x32262647, 0x4620be5f, 0xaf995ee8, | ||
2701 | 0xdf1e4dfe, 0x05d4afaf, 0xed5c90d7, 0x08bc7012, 0xe869743d, 0x43d387a1, | ||
2702 | 0x87a269eb, 0x9cd3b6ea, 0x4aeb5a1e, 0xdbaa9e91, 0x85d1a704, 0x8719eaeb, | ||
2703 | 0xebeffcfb, 0x61ea97e6, 0x7b5a879f, 0x1d0107ea, 0x69655818, 0x7af09985, | ||
2704 | 0xb3ebe118, 0xca7c323f, 0x6fede2ba, 0x1facd1c3, 0x707d468d, 0xe61ee75c, | ||
2705 | 0xe94de08a, 0xd12f4977, 0x7c906c3e, 0x295e90ef, 0xcb823aea, 0x3be8ed7f, | ||
2706 | 0x1c5bb40e, 0x883defc7, 0xc1663bef, 0xf322b90e, 0x535f1c36, 0x1a67e78a, | ||
2707 | 0x64381d60, 0xa009eb02, 0x1f1f13dd, 0xf8c25f9c, 0xf84d3968, 0x9e1d61d1, | ||
2708 | 0xa7e72abf, 0x5ec8cf80, 0x7ee56a19, 0x1e7ac7ee, 0x5e9bfb3f, 0xef6e4b94, | ||
2709 | 0x2abf1ea6, 0x5c4fd0b9, 0xa9fea3a7, 0x5e8e8e58, 0xf7ea3aff, 0x055e5437, | ||
2710 | 0xfb287c11, 0x4813d0a9, 0x5fe62b4a, 0x577c5996, 0x6493f4d5, 0x4f1a8acd, | ||
2711 | 0x9fa36f79, 0x7f8017b9, 0xde63b137, 0x81ff2823, 0xf543fe7e, 0x198318de, | ||
2712 | 0x47f4a6f1, 0x3fb58cfa, 0x14331ef0, 0xd05c79f0, 0xa563b9bf, 0x7f617688, | ||
2713 | 0xf650b5f7, 0xacad0b8f, 0xbf7835f6, 0xac4a0130, 0x01f5cb27, 0x2f107d72, | ||
2714 | 0x75b94fb3, 0x946f3c02, 0x6e9effb8, 0x7a92e390, 0x3bcc48e7, 0x3db81ba5, | ||
2715 | 0x923e9c58, 0xb7c2bee4, 0x2484be88, 0x58021b32, 0xe964f566, 0x3e14df70, | ||
2716 | 0x42e8f7d6, 0x594a5076, 0x0dce977a, 0x61f98fcf, 0x9ff037dd, 0xbd108fa6, | ||
2717 | 0xd1d1ecb1, 0xfcbf5d06, 0x5276b898, 0x6c3b1f57, 0xec9521b4, 0x42f78da3, | ||
2718 | 0xaf447abd, 0xc6b5fb84, 0x8ddb7d5a, 0xe169efce, 0x13ed763f, 0x577bfa07, | ||
2719 | 0x8f2c6afe, 0x5078f715, 0xff51dbc6, 0xb14f7a6c, 0x30ab68a3, 0x3ec0cfbe, | ||
2720 | 0xd70bf0e2, 0x7d92548d, 0x3c890774, 0x3e80c7dc, 0x55a7f509, 0x777e73a0, | ||
2721 | 0xebb3fa46, 0x8477e7c0, 0xb1b05696, 0xb72bf950, 0x3ff04c6f, 0xe98faff4, | ||
2722 | 0xed1e747d, 0x9a79e318, 0x3b6d6b42, 0xd33199d6, 0xf985c3bd, 0xa29e753e, | ||
2723 | 0x2ca1a130, 0x42489509, 0xc533cd26, 0x0e4f69a4, 0xb2fe51e8, 0xe71e4cec, | ||
2724 | 0x945f3062, 0x44f40e9f, 0x7c3658f9, 0x3395d924, 0x65dd2af2, 0x48bdfbf2, | ||
2725 | 0x731b7eac, 0xfae44426, 0xeefdd734, 0xd1dd9532, 0xfd3946e0, 0xe245dfd6, | ||
2726 | 0x7f1e2d6b, 0x7d7ce065, 0x9775efd4, 0x63c5f4e5, 0x67584ba9, 0xa7c5f577, | ||
2727 | 0xfc5a5f16, 0xc95fc3c6, 0x52597729, 0xf1693c0c, 0x46ff0c72, 0x06368f3c, | ||
2728 | 0x9de20203, 0x4b98e9e3, 0x78188160, 0x29d2ec52, 0xa4683176, 0x9dd90f76, | ||
2729 | 0x68f0c977, 0x4f17d6f1, 0xd2bb8a9e, 0x411ff022, 0x4e91e87c, 0x884aefdc, | ||
2730 | 0xdb0304ff, 0xdd0ceb81, 0x6ab7f949, 0x434c1fb9, 0xf93bb579, 0x8375e150, | ||
2731 | 0xf087707c, 0x386301bd, 0x6d55fd7d, 0xb83dde7f, 0x14a0dd72, 0xfb9803c4, | ||
2732 | 0xd4671f1c, 0xf1b8c374, 0x7da4cd61, 0xdba8fc07, 0x587e3993, 0xcbbf6f32, | ||
2733 | 0xd0d769a9, 0x0abd768d, 0x3e1bfcdd, 0x3f17d498, 0x30ecdd0a, 0x067276c8, | ||
2734 | 0x1e788c1b, 0x02426fbb, 0x78da2dc5, 0x4f4b5ede, 0xc37a4f13, 0x47f4c8e3, | ||
2735 | 0x5f3025f4, 0xfb33b9f8, 0x569bc86b, 0xf25166d0, 0x7be8b866, 0x51bc9623, | ||
2736 | 0x7976fff6, 0x81676e9f, 0x4b03a283, 0x74c25ffd, 0xff591993, 0xda275c21, | ||
2737 | 0x20d883e7, 0x8318e75c, 0x7969cb8b, 0xcb75e19d, 0xe58a09e7, 0xb64d8bf9, | ||
2738 | 0x7acb8e10, 0xf8c297f4, 0x5cf8a2cf, 0xc08a4a40, 0xb3fb9061, 0xdb8cb521, | ||
2739 | 0x79d20f5d, 0xbb0bc01c, 0xf1c08d6e, 0xa7a08307, 0xc70c9578, 0x80a69de5, | ||
2740 | 0x57ac2b78, 0xf511fdf4, 0xf8e125d6, 0x3e9f5a58, 0x4a7a8b94, 0xdadbdedb, | ||
2741 | 0xd0ed8d51, 0x93f5116f, 0x71865fe1, 0x9ea7a007, 0x6dc18d37, 0x8a48e231, | ||
2742 | 0x4a6c093d, 0x83e15cf2, 0x6505513b, 0x92dfa5f7, 0x1c7af1d6, 0xa5b74b5f, | ||
2743 | 0x1da159e0, 0xbbd7a5aa, 0x7c1ccf58, 0x4553a5ae, 0x7a597eaf, 0x30a9ec50, | ||
2744 | 0x74d4845d, 0xd003d0a1, 0xfa42ffc7, 0xf1f09ee8, 0x9efe68f3, 0x169bd098, | ||
2745 | 0xbd810f4b, 0xeca293a7, 0xb3f678e8, 0x48273762, 0xc7da333e, 0x595d797a, | ||
2746 | 0x9e1d2e79, 0xf25dba8f, 0x62b9f058, 0x0fccdc4f, 0x80e01d60, 0x91cc7d02, | ||
2747 | 0x83a4ddf1, 0xc0dbe006, 0xf288214a, 0x63d621e6, 0xaa1ef9c0, 0xc9fca835, | ||
2748 | 0x8f9ee639, 0xe6fd087e, 0x3d270dd4, 0xbf28c3e4, 0x38f3ef48, 0xffcf3d44, | ||
2749 | 0x5c9ebcb3, 0xaee6bff4, 0xd1fc6836, 0x39e3a224, 0x23ecfe4e, 0x09303be8, | ||
2750 | 0x4d4aedc7, 0x76f94d1a, 0xfced7f55, 0xe3b43aca, 0x91abdf6a, 0xee78b2e3, | ||
2751 | 0xf7851dca, 0x83b71251, 0x131ef0c2, 0x6f80bc39, 0x6aebac1d, 0xd3e088db, | ||
2752 | 0x2954e831, 0x8e5d267d, 0xef52393e, 0x3b38d37a, 0x955f6318, 0x3f7c1479, | ||
2753 | 0x7c153ac8, 0x0e8b1e7e, 0xffdc7d8b, 0x910e6dd6, 0x2f1dacbd, 0xec8ca7a7, | ||
2754 | 0x81269cb0, 0x4de5deec, 0x2af9ba25, 0xa3fb9bfb, 0xa6efec7d, 0xf2de3483, | ||
2755 | 0xfedc8396, 0x3b23aa6e, 0xf70b797e, 0xa43ec047, 0xc80463f3, 0x15cbb268, | ||
2756 | 0x7983d33f, 0xb79815a2, 0xbd21ede4, 0xf3d5cf0b, 0x78d235fe, 0xf21ca9f1, | ||
2757 | 0xc0ff7913, 0xa7e8b5c4, 0xa85afd86, 0xbab5fb47, 0x9576c2ba, 0x6c281b5f, | ||
2758 | 0x5b5f91bf, 0x05385f53, 0x8fe05afd, 0xcdc15245, 0xe4b663f9, 0x797fa1ba, | ||
2759 | 0x41ade4c4, 0x02e2533e, 0x6abffdda, 0xfd202572, 0xbdfb253d, 0x23cf57d3, | ||
2760 | 0xfc3cde7b, 0xa37990da, 0x7df2de51, 0x76e24c7f, 0x7be88a4b, 0x3eebc70c, | ||
2761 | 0xcf172d74, 0x7fb4d4cb, 0xbcf911ba, 0x1ec3ce4d, 0x5d9157f7, 0x13dfeca3, | ||
2762 | 0xa777b712, 0xa077688f, 0xc14f7ffd, 0xcfe81cef, 0xbcf3d65c, 0x4922a5cf, | ||
2763 | 0x18f66f65, 0xd7027aee, 0x1e8094ad, 0xf16ee511, 0x82938e84, 0x8ffcbe23, | ||
2764 | 0x808f77c8, 0x7b5d9df2, 0x5bd70d3b, 0x81d872d3, 0x7e84bef8, 0x5bc9c610, | ||
2765 | 0x8f30d3da, 0x77f9a2b8, 0x9e7bf40e, 0x7b5db897, 0x40e9df59, 0x1ef96ebf, | ||
2766 | 0x5fc9dbb0, 0x003da50a, 0x32d4ba78, 0x3e69f0bf, 0xbf5a298d, 0x85f57fe1, | ||
2767 | 0x76edbb11, 0xeb282053, 0x284e253b, 0xefa1875c, 0x663d116c, 0xedfb5f47, | ||
2768 | 0x4dacd1f2, 0xcc0fb815, 0x0f861ee0, 0xec83acf5, 0x09962539, 0x21cf0a92, | ||
2769 | 0xbf2b901d, 0xefbde96e, 0xe7162236, 0xda0251ba, 0x0c14be3d, 0x8db69592, | ||
2770 | 0x9188375b, 0x73d950be, 0x12ef7b5a, 0x1b77dd73, 0x7aa3b9ca, 0xd6b37686, | ||
2771 | 0xfdd163fe, 0x9f7fe387, 0xd6bcbc25, 0xfdc56d92, 0x59d320da, 0x54ef4b4d, | ||
2772 | 0x166a97e4, 0x6f7e0efa, 0x3a22dd55, 0x7246ec43, 0xf85bdd77, 0x9b7753fd, | ||
2773 | 0xd8f485c1, 0x34d876dd, 0x22adeb16, 0x4e6a99c5, 0x3a428f14, 0x2866d2ba, | ||
2774 | 0xbcd7bc47, 0xf903b1f9, 0x57cfd15b, 0xde7a44da, 0x9e9676dd, 0x695ee32b, | ||
2775 | 0x7a851e4d, 0xfdc759a5, 0x9f238ebc, 0x7fdf915b, 0x326aed7d, 0x7eb297f9, | ||
2776 | 0xaaa7618d, 0xddad4eec, 0x6e19e53a, 0xb5494e47, 0xec579c93, 0xf8fa3ecb, | ||
2777 | 0x67675b14, 0x6b1f425f, 0x4919f0f4, 0x616ef3b6, 0xd8af31e3, 0x19792d7a, | ||
2778 | 0x9b7765f2, 0xe286b9d5, 0xe88edc1e, 0xb9f4f8ee, 0xb8fcf819, 0xee9c7148, | ||
2779 | 0xf1d1226b, 0x86cb03a1, 0xf1a2d976, 0xf5fb4f5c, 0x5f3fc0d9, 0x3ffd0fd9, | ||
2780 | 0x07716c3b, 0xf77a7d70, 0xd63daf28, 0x78e504be, 0x97432841, 0x4320658e, | ||
2781 | 0xec35f457, 0xe27d93c4, 0x7f91d7f7, 0xa67a9857, 0xddcd18a2, 0xfe425a7a, | ||
2782 | 0x057920df, 0x2687e923, 0x8075f22b, 0x73c20e95, 0x561655cc, 0x53d4f48a, | ||
2783 | 0xa0db9cc7, 0x9d51cf75, 0x30fb04ce, 0x1ba64761, 0xf955edb7, 0xa692f35c, | ||
2784 | 0x4a332906, 0xbf912c5e, 0x0860bb3b, 0x7a8a490c, 0xcb91a4fe, 0x97870bab, | ||
2785 | 0xeef248be, 0x161b237d, 0x362dbf43, 0x5bb57d72, 0x85d8cc0a, 0xe8e8cefd, | ||
2786 | 0x238ec1fb, 0xf3c11c6f, 0xba4e4b10, 0x28bea1c6, 0x6ffa7231, 0x3d6afe3d, | ||
2787 | 0x3d690b9e, 0x76f478c5, 0x83a8a57b, 0x1733f779, 0xabbd3f8f, 0x1c23ff23, | ||
2788 | 0x649e63b7, 0x461de75c, 0x1ff6672e, 0xc74795d5, 0xe7cbf605, 0x1a356e1c, | ||
2789 | 0x4661fc68, 0x8ed7ca91, 0x23cf2696, 0x19e5f3be, 0x75ceef91, 0x915c3bd5, | ||
2790 | 0xef629578, 0xb5f77a4c, 0xcfe06319, 0x4e749749, 0xbbd76edc, 0xaf5c44db, | ||
2791 | 0x896302eb, 0x07fb5f42, 0xf88f1bc6, 0x7fdbc657, 0x70078f89, 0x54be421c, | ||
2792 | 0xf41a0ff0, 0xbea1a347, 0x849f53bf, 0xf82813df, 0xcca1d657, 0x9e626aef, | ||
2793 | 0x8eb11b46, 0xc41bb5e7, 0x8f52314d, 0x54ef91f4, 0x7449cef8, 0x29e486f9, | ||
2794 | 0x1810f4e5, 0x870bf582, 0xec57642d, 0x4b11f596, 0xf88a1caf, 0xbe69f653, | ||
2795 | 0x0513eb91, 0xcff3789e, 0xca54e191, 0xafd74b2f, 0xa2015c1a, 0xc5023d9b, | ||
2796 | 0x90815c19, 0xfb053b29, 0xe739d365, 0x37d8de48, 0xbd87f707, 0xd6ffa6ab, | ||
2797 | 0x8ace9d2e, 0x214df1f2, 0xfde0d291, 0x74c34fb4, 0xfa226fa6, 0x88c93d6b, | ||
2798 | 0x7cee978f, 0x58cdc798, 0x728e9068, 0xc84181c8, 0x9c3fc8b7, 0x0503437f, | ||
2799 | 0x35b52728, 0xf8441dae, 0xaf90390d, 0xbe027822, 0x41b6b2c1, 0xb25d7a42, | ||
2800 | 0xe58b978a, 0x6c9647ef, 0x2e7f11f1, 0x15395ada, 0x98d5a7ed, 0x28bd40f4, | ||
2801 | 0x59d32bd3, 0x4ebcf032, 0x85df6caf, 0xdd3897e1, 0xd4d96c5e, 0x7d02f38e, | ||
2802 | 0x63e233fd, 0xcfb3eb72, 0xbd0ab823, 0xa06edc5e, 0xde90aa71, 0xad74f8a3, | ||
2803 | 0xde7bafbc, 0x693ef4e5, 0x7bf4a1bb, 0x0149eeb0, 0xec38c4e6, 0x443bedfe, | ||
2804 | 0x91fbdf94, 0x9f39339e, 0x70be9ea3, 0x63eb69f8, 0xeb4ecfa8, 0x777bc618, | ||
2805 | 0x39aaac4b, 0x1a3a2f8a, 0xeff1575f, 0x33759dd2, 0x95dcae28, 0xa66ba024, | ||
2806 | 0xf782adf0, 0x1a7b92dd, 0x34b7fff1, 0xdfc65ffc, 0x81ff87df, 0xfe649b7e, | ||
2807 | 0xfc0e54df, 0xb7128f0f, 0xce380a27, 0x79f6296e, 0xfd8d57a1, 0x5710b73b, | ||
2808 | 0x23ef1eae, 0x72355f57, 0x0d91dbff, 0x73df57f3, 0x30effc95, 0x6cdd327c, | ||
2809 | 0x26e8532a, 0x7b71f053, 0xf8839753, 0x3d22bc02, 0xf289bd93, 0xb82b24b6, | ||
2810 | 0x8f45884d, 0x967c946b, 0x72236f8a, 0x5f5fe14d, 0x5853c21b, 0xed16bb56, | ||
2811 | 0x008ae4e4, 0xc145e9d1, 0xf4093437, 0xe7e445da, 0x67e17218, 0x333e5e32, | ||
2812 | 0x1be754f8, 0x32c1c2fb, 0xc0abae90, 0x69f3a2e3, 0xee27055b, 0xdaeed28f, | ||
2813 | 0xf782fdca, 0x9e573e65, 0xf915ffbf, 0x53f78c3e, 0xeface27d, 0x933eb91b, | ||
2814 | 0xdcceb04c, 0x4c67d720, 0x60be2528, 0xc819e9ba, 0x8f404b6f, 0x8f4a2f7d, | ||
2815 | 0x1034345d, 0x38782abd, 0x67fbd32b, 0xcfdd7c89, 0xc41e70c9, 0x5be12998, | ||
2816 | 0x7a0947ce, 0x5af9c0bd, 0x8bbf3814, 0xc3c5fe38, 0xdd11a793, 0xee9b13df, | ||
2817 | 0x246aed97, 0x772c4cfa, 0xb3b9438e, 0x2736ef49, 0x8f258e8e, 0xec765483, | ||
2818 | 0x49f909f8, 0xf7c8c748, 0x0aa0f8f1, 0xa0c580f9, 0x7fd020ff, 0x7429fed4, | ||
2819 | 0x1d717400, 0xd73ca5f1, 0x379285d2, 0x5bb2f053, 0x669b7793, 0x601a78e2, | ||
2820 | 0x25def2e2, 0xfa78a9cb, 0xf3ef2be5, 0x2bf87dbb, 0xe6a054cd, 0x456fdc2f, | ||
2821 | 0x13717c4e, 0xe2679b3e, 0xfa644fed, 0x780ede4e, 0xe4a0627a, 0xeb720b5a, | ||
2822 | 0xe766d809, 0xa63e48f8, 0x595f9e49, 0xa09348c7, 0xf368dbca, 0x6f830629, | ||
2823 | 0x9f0a2984, 0x8d73f798, 0x334bd08e, 0xd81cfce3, 0x43cf946e, 0x5f765538, | ||
2824 | 0xc6912981, 0x40c1ea77, 0x967fd405, 0x0361d959, 0x0ceeeeb8, 0xe1718c54, | ||
2825 | 0x5981db77, 0xbae264f7, 0x853e829c, 0x53ace5d6, 0xdf20ce8e, 0x7c50b71d, | ||
2826 | 0x3ddb3f24, 0x974cfc8a, 0xf7c71f3b, 0xeca4fbc8, 0x6b75bc67, 0xfdbc5cf5, | ||
2827 | 0x21e3279c, 0xcad76e55, 0x2e26418f, 0xf9657a37, 0xf83fe5a1, 0x526f9317, | ||
2828 | 0x3b242fb7, 0x6d8c9d90, 0x326fde07, 0xff5179f0, 0x00d4bf40, 0x23ddfeff, | ||
2829 | 0xdcec27ef, 0xc343c41c, 0xa39d2376, 0x31d7f850, 0xf18e9bcb, 0xe48a4713, | ||
2830 | 0xaeb8c176, 0x7e1a6c59, 0xe8f2efbf, 0xd651bfc8, 0x26e1ff5f, 0x7ea26fba, | ||
2831 | 0x7da19187, 0x57ef209f, 0x0c162cc2, 0xbaf9f109, 0xb1e80763, 0xd3fe2894, | ||
2832 | 0xee89eb07, 0x5103bf80, 0xd93437fc, 0x2d806e97, 0xdbfac1fe, 0xc0b74cca, | ||
2833 | 0x8ccc993c, 0xa82aea16, 0x347c006f, 0x96047924, 0xb675f548, 0x0fe3f181, | ||
2834 | 0x2e4d303f, 0xbf04f3c3, 0x6fbe7a32, 0xc438a54a, 0x1c2cb00f, 0x28b22b50, | ||
2835 | 0x1d99bdbe, 0xb1f955f3, 0xb0738e46, 0x69469036, 0x9ce2f8aa, 0x2f8a2e9d, | ||
2836 | 0x507c8d3e, 0x79fe719d, 0x8da6ae1c, 0x078beb9f, 0x678c8a47, 0x17c4e790, | ||
2837 | 0x115ade29, 0xcf857ffd, 0xc925379e, 0x3011ebfb, 0x1dd0aefe, 0x93da29f2, | ||
2838 | 0xe31d7e4a, 0x2f8a762e, 0xb0ee8907, 0xc23e309e, 0x742a1b7f, 0x61e2b1e5, | ||
2839 | 0xafb64cbb, 0xf23487a7, 0xb17db589, 0x4bd031f7, 0x48b7f835, 0x29976af2, | ||
2840 | 0x54d81eca, 0xc78d2671, 0x439d19cd, 0xe39e447e, 0xffee35c5, 0xe1f28e18, | ||
2841 | 0x947efcb7, 0x80294671, 0xfdc0aae7, 0xe4d33975, 0xda9d90f1, 0xfc1d9084, | ||
2842 | 0xd1cf9add, 0xf37f0173, 0x2f951d73, 0x3cb7b3fe, 0x56d9ed13, 0x032c1b9d, | ||
2843 | 0x5c93ebcc, 0x41650f70, 0x9373d013, 0x2a9b9f85, 0x9079b769, 0x1305bbfe, | ||
2844 | 0x13e99b9d, 0x19ea2f8f, 0xd7da0bb2, 0x411f01b6, 0xb184bbb5, 0xef57844e, | ||
2845 | 0x0ad0f3a6, 0xd89ec77e, 0x63df4794, 0x37dc1be9, 0xcbc55b8a, 0xb6af16df, | ||
2846 | 0x894adc50, 0xf4f71593, 0xb5649d10, 0x61f8ea65, 0x5e8f3e29, 0xd792af5e, | ||
2847 | 0xbef1926d, 0x226be8fb, 0xb2c2b1ea, 0xef68b586, 0xef7d1867, 0x2e4ddd23, | ||
2848 | 0x1339db56, 0x3b76da84, 0x4634d7d2, 0x1fc2827e, 0x20ec5dc9, 0x4f12a986, | ||
2849 | 0xcfd07976, 0x73c17c9a, 0x04a9fd10, 0x77f8132f, 0x24f3e192, 0x58ff70e7, | ||
2850 | 0x07b8478a, 0x13fc29c6, 0xe328bc23, 0x2a5a3eec, 0xd2919da0, 0x46b82659, | ||
2851 | 0x2defa5f7, 0xe04e77e8, 0x5f701ee7, 0xe8687f15, 0x6196462f, 0x2fe9487c, | ||
2852 | 0xbd5cb99a, 0x429be7cd, 0xafa34fa1, 0x349de717, 0xa98ed83b, 0x81558997, | ||
2853 | 0x84f10c76, 0xd184b3d7, 0x02ba8378, 0x27818eb4, 0x9658257d, 0xf7048948, | ||
2854 | 0x3a210be4, 0x96a0312f, 0x5b9231d1, 0xfb25df3a, 0x4eda96e1, 0xf771f701, | ||
2855 | 0xef0443d1, 0x5e0ecee0, 0x9af57cca, 0xb814ffac, 0xa27f644a, 0xd5c38e44, | ||
2856 | 0x8e9f9e5f, 0xecd181fe, 0xa338c12b, 0x12fa8eb2, 0xbf9e3a5f, 0x3ce782dc, | ||
2857 | 0xe73fc426, 0x14966691, 0x8cc1373f, 0xaeecee7e, 0x5a7b4823, 0xf8ed39bf, | ||
2858 | 0xb48fda19, 0xdd1ddcd5, 0x80a57c72, 0xc1e5b5f4, 0x22b37ed8, 0x71c8b62f, | ||
2859 | 0x14f3a8c4, 0x7ad1cd83, 0x9ac932b9, 0xc28f2515, 0x9e722672, 0x9e7cb762, | ||
2860 | 0x6f7aa6c2, 0xa46613cc, 0x27834ea7, 0xdf2b9f07, 0xdf2abce1, 0x71f8a01b, | ||
2861 | 0x961ebe0a, 0x9e68d3f7, 0x1086e749, 0xe3a04e4f, 0xbfb1cd57, 0xd6685987, | ||
2862 | 0xd3977ac9, 0xf4e4eb0b, 0xb688eb82, 0xb999a633, 0xe3cdbd5e, 0x74e7a29b, | ||
2863 | 0x9c788452, 0x476c1454, 0x1e589dba, 0xbffa4768, 0x5274c985, 0x4b44e9ce, | ||
2864 | 0x939bf7ef, 0xa1e93a64, 0xe0260a7b, 0xe43145f7, 0xdb998563, 0xa59d2977, | ||
2865 | 0x0fc03f44, 0x857ce177, 0x03456a83, 0x339cd0a5, 0xf0f8ef50, 0x9e7822f2, | ||
2866 | 0x4769e45f, 0xbc7a737a, 0xa8db8e22, 0xc9ba7277, 0xb8c49ef4, 0xe4aa7d77, | ||
2867 | 0x38d02b5e, 0xe0c736df, 0xa7e416ab, 0x4a7e11d1, 0x5a47e391, 0xc3229cba, | ||
2868 | 0x1cf193e5, 0x43df1e7f, 0xa74a4f38, 0x33f783ce, 0x4c25b9e0, 0x055c4e46, | ||
2869 | 0x96f912fa, 0xd2f9d275, 0x09672aa4, 0xe5a0ddf2, 0xf9f7016e, 0x016fbd25, | ||
2870 | 0x3c76b3ee, 0x350c9f45, 0xbffe8879, 0x6268deb2, 0xf2ff8d26, 0xb5db99b0, | ||
2871 | 0x7e512b1b, 0x8499f2bf, 0xf0a5d5f2, 0xd6f1d1e5, 0xf3745179, 0xf83a5f74, | ||
2872 | 0xa07458a7, 0x3a5a7f95, 0xb50bc888, 0xadbc03fc, 0xedc3fbe5, 0x55ce94dc, | ||
2873 | 0x6a1b9722, 0x7f6f1779, 0x0d0dc8fa, 0x3de98f1e, 0x097ae0cf, 0xf39105e9, | ||
2874 | 0x74f4f1db, 0xae1ff9a3, 0x31cd1ba7, 0xd4ceb4f4, 0x9f3c1bf3, 0x744da2bb, | ||
2875 | 0x5f225c61, 0xf6ba8f3e, 0x4f3a24f1, 0xe09362f0, 0xd1439746, 0x502244d3, | ||
2876 | 0x6127b2bf, 0x4a15bb2c, 0x6ae78078, 0xb2250302, 0x08c759cf, 0x24d633ca, | ||
2877 | 0x1bac70ca, 0xdbb7fa41, 0x51e600a9, 0x256063eb, 0x91d3fa01, 0x684b181d, | ||
2878 | 0xf310783a, 0x988b6b2c, 0xb77000cf, 0x80f3f1b7, 0x485bd62f, 0x7e3eef9f, | ||
2879 | 0x400f37f5, 0x1d71e73d, 0x0e047f1d, 0x4ab673a6, 0x03b145de, 0xe8590e3a, | ||
2880 | 0xb32f703c, 0x7754d1b8, 0xf8790d8b, 0x21fbec02, 0xe8d983c4, 0xe2281fcb, | ||
2881 | 0x77aec439, 0xf1eca38a, 0xccbfd6de, 0xe48ae439, 0x7d0e9a97, 0xdf6d185e, | ||
2882 | 0x14a9f929, 0x3996f7d1, 0x963fdfca, 0x77cb9677, 0x055fb9cd, 0x9c5e309e, | ||
2883 | 0x5da27f1c, 0x2375f04f, 0x48bf687c, 0x10fb861e, 0xe3d648f8, 0xfb94de32, | ||
2884 | 0x0adbba0f, 0xbe80fa4e, 0x98393c5e, 0x7b5be1c7, 0xef7768cd, 0x214ef932, | ||
2885 | 0xf4b7899d, 0xf6a9f9d0, 0xe811deb6, 0xf9fc834f, 0x1ef79f08, 0x9d149b3f, | ||
2886 | 0xeb12feff, 0x3f5a24fb, 0x729f5bc4, 0x1f4b5e3e, 0xda167dda, 0x184dfe0e, | ||
2887 | 0x50c07c4b, 0xb086054e, 0xf567fa20, 0x17adc663, 0x31672371, 0x341dc517, | ||
2888 | 0x999fb479, 0x8e65ffbc, 0x4c679fe2, 0xde21bfde, 0x4efc1e71, 0x05f9d603, | ||
2889 | 0x989ec7d6, 0xdb478f9f, 0xf53ac2be, 0x18fb9896, 0x215afda2, 0xe60567af, | ||
2890 | 0x537cf0fd, 0x3852e18b, 0xef231ddf, 0x8091fb07, 0xdd4a05e3, 0x9fb87d27, | ||
2891 | 0x6bdcd81f, 0x4efa1f11, 0x0091da27, 0xb3b6227f, 0x97ba4aa2, 0x50f060c7, | ||
2892 | 0x3ad5f47e, 0x5bbd7e7e, 0x1e31b8b0, 0x6491dcd6, 0x33f87941, 0xfb1d2f93, | ||
2893 | 0x9d5dd48f, 0x09fa7183, 0x3cdd5e9d, 0x41be53d2, 0xe753b216, 0x8e09eaf7, | ||
2894 | 0xdfda315a, 0xcfeb12fe, 0xe7dcc4b1, 0xc790fb3e, 0xa1f7c5d7, 0xf462e7df, | ||
2895 | 0x3e9c7bfc, 0x45d651f9, 0xfb83f6f1, 0x3cc5c93e, 0x4f81f552, 0x7ead3fc8, | ||
2896 | 0x5b9b48c3, 0x0488c6f6, 0x252be3a4, 0x4b89edb1, 0x1eb75afe, 0x967199ec, | ||
2897 | 0xcb9b922c, 0x23dd2759, 0x61e9a2b0, 0x5e4a3eb7, 0x71d3f62a, 0x8e056743, | ||
2898 | 0x6440bc7f, 0xbd774075, 0x580389ee, 0x94ac390c, 0x097b45bf, 0xfd1f7f60, | ||
2899 | 0x9f9bd4d2, 0x9de6d283, 0x338fb4fb, 0x42a11c53, 0xb3cc8763, 0x88f73d70, | ||
2900 | 0x8fbc325c, 0xbcbce005, 0xe0e74ed7, 0xcf7f8f2e, 0x5c4b1f81, 0x7e5df96e, | ||
2901 | 0xb0ffcf00, 0xbf3047ce, 0x8d8bf816, 0x718aa8fc, 0xd9d7e5ef, 0x3b76fc23, | ||
2902 | 0xdbb0418f, 0x70e13f5f, 0xe68aff41, 0x144094f6, 0xa1e7b4fe, 0xc7d7911e, | ||
2903 | 0x6e745df4, 0x98bfed84, 0x563ef786, 0x829c3bec, 0xec37fdeb, 0xaedfc318, | ||
2904 | 0xf44d5d58, 0x9f22d533, 0x1960caa3, 0x8bfa0f28, 0x0573ed07, 0x5dc7c70f, | ||
2905 | 0xf77a821c, 0xd23b1c4a, 0x75ebf72f, 0xf6801a4f, 0xca14854d, 0x55bf1589, | ||
2906 | 0xbc2d2bfc, 0x3b373b37, 0x58f7e243, 0xb6af9f6a, 0xebdf3d70, 0xf000b336, | ||
2907 | 0x068d23e9, 0xc4eeaefa, 0xcacc3fb5, 0x64f8fd87, 0x06b9c1ab, 0x85eaadf8, | ||
2908 | 0x309bc1f6, 0x48ce395e, 0x5c4f97f1, 0xcba41ca1, 0xf3f02fc5, 0x7d6c9fb8, | ||
2909 | 0xc8f30d24, 0xb5f409ff, 0xdc58e01c, 0x55e7a068, 0xe7a7df8d, 0x5bba6517, | ||
2910 | 0xe52a42fc, 0x3c744f97, 0xaceb869d, 0xdf93fbfa, 0x966ffe41, 0x41c6a39c, | ||
2911 | 0xa0977cb9, 0x74b7773a, 0x575559bb, 0xbacad2f2, 0x8f391099, 0x7e7802e7, | ||
2912 | 0xe79af969, 0x89f57780, 0xc2d2fe5b, 0xdd6f8bed, 0x2eaeeb07, 0xaefb25e8, | ||
2913 | 0x8c8588fd, 0x44db5fa8, 0x71a1dfd2, 0xadd6f5ff, 0x77f29f50, 0xd31f9bbd, | ||
2914 | 0xb239274d, 0xece5c4c8, 0x70fa7d94, 0xff719cbe, 0x615776dd, 0x08797cfc, | ||
2915 | 0xdbd200e4, 0xe18a9f94, 0x79f479bc, 0x5cde6d54, 0xf36b8fc9, 0x029c78e6, | ||
2916 | 0xf2cdf1e5, 0x1c3f0ae6, 0x49cf84b3, 0x1fb7dd12, 0x45f279e1, 0x2f6e45c7, | ||
2917 | 0xfc4e44dd, 0xe3d6e116, 0x107b1efe, 0x6427dde3, 0xf6b89c6c, 0xafbc3ac9, | ||
2918 | 0x012293e1, 0x93ec2033, 0x58f2c66b, 0x2287707c, 0x659cf02f, 0xef5f645e, | ||
2919 | 0xd7092f71, 0x5dbe0d91, 0x1ceab0f4, 0xd5e5ff68, 0x49f0f98d, 0x419eff0b, | ||
2920 | 0xfcb4cf2b, 0x67928ff2, 0x0f0ee315, 0x7ca9d809, 0xcd4bcb19, 0xe568ae5c, | ||
2921 | 0x14a7581b, 0xe4e55a87, 0xa5c0a2f4, 0x5fc57785, 0x3f3058b3, 0xf5177e1a, | ||
2922 | 0x94efa15b, 0xf8acbe50, 0x260b2e6b, 0x50fea37f, 0x3f8635b2, 0xf095fa04, | ||
2923 | 0x07d42815, 0xfd408fd1, 0xdb46fd8f, 0x0025c95c, 0x96673ad2, 0x2772e515, | ||
2924 | 0x416b7fe8, 0x6a313e24, 0xe50e8357, 0x376fd845, 0xc577fda8, 0x72b2c95f, | ||
2925 | 0x795a31ba, 0xddfc98fd, 0x5df3bc4f, 0x3c4af8ca, 0xf184bea4, 0xb91273ef, | ||
2926 | 0x839ca6fd, 0x3967eb5c, 0x933e3df8, 0xd26bc3bf, 0xc8f0eff1, 0xfcf5c4a7, | ||
2927 | 0x83fdc8d8, 0x5c5574bc, 0x29bf09f0, 0x792def07, 0xf7a4efd2, 0x53a7f29f, | ||
2928 | 0x8bbf23f9, 0x79fc67ca, 0x135efc39, 0xc7c8fe46, 0xd18d2c87, 0xe49b04e7, | ||
2929 | 0xb093cdbc, 0xd062d7de, 0xe55623e1, 0xf497a03c, 0xd8d2c2db, 0x567bfdf2, | ||
2930 | 0xe4a5e13d, 0xa087fbf9, 0xc1f1f1dd, 0x097dd1ef, 0x83e26b1f, 0x6e6f250b, | ||
2931 | 0x13f37d2c, 0xc9379f99, 0x32c7e5fa, 0xfd900d7f, 0x9e729047, 0x4f78d1e6, | ||
2932 | 0xff773f30, 0xc31dfcac, 0xa9abfd4f, 0xf3cad3bc, 0x8ff76923, 0xf0073b7f, | ||
2933 | 0x3f036e75, 0xa4ce749f, 0x6cf3bf23, 0x85bcadad, 0xfd8ef0e0, 0xde76511f, | ||
2934 | 0xf1dc329d, 0xfd6355d6, 0x057e726a, 0xdea072eb, 0x876fd30a, 0x5c3e1e3a, | ||
2935 | 0xfa432df4, 0x695d66eb, 0xe846afd8, 0x2315ddcc, 0x79209b8f, 0xff84ac6b, | ||
2936 | 0x5f28219e, 0xed02fd95, 0xfefa2a31, 0xe72b228c, 0x7ce38fcb, 0xa65ab6ff, | ||
2937 | 0xcf25dbdb, 0xfa9e3e6a, 0x195fc37e, 0xf2b43f3d, 0xb4ffe678, 0x8c02f9ca, | ||
2938 | 0xce4894df, 0xdb9d7c70, 0xd635dedb, 0x78997118, 0x8e16bf7e, 0x9e9c6c5b, | ||
2939 | 0xa500f1b4, 0xcf01e254, 0x65044da0, 0x7049d5a6, 0x1803e36b, 0x07158d27, | ||
2940 | 0x8f2b4ff8, 0x3c7ba61f, 0x9f15d5a2, 0xcef8272f, 0x6c9b7dd0, 0x7bf3a336, | ||
2941 | 0x0e9b8a03, 0x60643c62, 0xd90eb059, 0xcb513ea5, 0xc63301a7, 0xba7cb249, | ||
2942 | 0xa4dbcc34, 0xa33f0275, 0x6a9781bd, 0xd69d22a5, 0x4f5d21d6, 0xf168e9f0, | ||
2943 | 0x412c3a13, 0x54e67141, 0x660266e7, 0x0bfeef39, 0xda82f3c2, 0x1db718b5, | ||
2944 | 0x797fbcb4, 0x9f7936f7, 0x84d9bc95, 0xc3c206ed, 0xa63fed84, 0xed84d6fc, | ||
2945 | 0x2885eb77, 0x35693efe, 0x878bff50, 0xff250e97, 0xaa39ce38, 0x26dc794e, | ||
2946 | 0xfc417bc4, 0xadc710f3, 0x8879f8df, 0xb8a8d6e3, 0xab8af54a, 0x5a77c724, | ||
2947 | 0x39f8feb9, 0x9f0169e6, 0xe4a05f3f, 0xfe291b69, 0x9a6a5bb6, 0x40887986, | ||
2948 | 0x43ce8eb5, 0x0bdcf386, 0xf08f79f8, 0x86ef98fb, 0xe2af3fe7, 0xc181eef9, | ||
2949 | 0xf6df2967, 0x03e79999, 0x6461db3f, 0xf25d2798, 0xefe51376, 0xb1d72cb6, | ||
2950 | 0xc364f758, 0x9cf9064c, 0xefcf018e, 0x7ca3fee0, 0x081df653, 0x08fdc24b, | ||
2951 | 0xf9b5c3e7, 0x8bae193f, 0xe9723e72, 0x4869e6ce, 0x93cb1927, 0x563fbc04, | ||
2952 | 0xeaebeb81, 0xbf506f91, 0xe5f7975e, 0x6f55fa66, 0xb55fa18b, 0xe0d3b57a, | ||
2953 | 0x6f52da31, 0x641b5fae, 0x2ab5eafa, 0x78e406e7, 0x6247e637, 0xd633cbec, | ||
2954 | 0x34ce713e, 0x738857db, 0x3149adfa, 0xf7ca9ce3, 0x6c490d9e, 0xfc18ccee, | ||
2955 | 0x37cc98f0, 0x743dcdba, 0x4da5230e, 0x4a972988, 0x17c94924, 0xc545b08d, | ||
2956 | 0x35f2b5c7, 0xd8dd7e06, 0xd0aec47f, 0x3e35ec21, 0x668ac731, 0x9c73e000, | ||
2957 | 0xf2719f0a, 0x9533bf0c, 0xe4a27d90, 0xd49a2e15, 0x6c77dbf6, 0x6dcf3f4a, | ||
2958 | 0xc4b78fb8, 0x6c53db91, 0x297f0282, 0xc5594bf6, 0x2572f154, 0x1b529e4e, | ||
2959 | 0xaffbf010, 0x3f230f14, 0xafb26862, 0x7afd00ce, 0x36f73126, 0xe83c27a8, | ||
2960 | 0x9779412c, 0x883ee554, 0xcbfadda1, 0x0fcaf7f2, 0x395efa33, 0x65f5ef9c, | ||
2961 | 0x7883bd91, 0x4f0efe8f, 0xfaca0fd1, 0x6bdd6f40, 0xb2cd70e3, 0x7d6f40dd, | ||
2962 | 0xcf317c83, 0x58be3fd6, 0xf769708c, 0x81ef1b2d, 0x7fd98d4a, 0xb0feac45, | ||
2963 | 0xd9fdd5cf, 0xbc720de7, 0xa4f9bfbf, 0xf5f0bd46, 0xf17de5e2, 0xbc2c44f2, | ||
2964 | 0xe5d0a86c, 0x009479e1, 0xe963b8b3, 0x7fb62d9d, 0x8b7edc78, 0x9edc462d, | ||
2965 | 0xfebf24dd, 0x49773fe2, 0xe2560f18, 0x507b61cf, 0x9e575793, 0xf909b757, | ||
2966 | 0xb49597e8, 0xb7fb235f, 0x64e7e0fb, 0x8fcdf6ff, 0x025779f3, 0xdc7f2279, | ||
2967 | 0xbf6f9f25, 0xf7fb95ba, 0xa4fd7322, 0x39a8e018, 0x6841606a, 0x606f8abf, | ||
2968 | 0x882116fb, 0x3d5f0bf7, 0x8bea853a, 0x192c09f7, 0xe9e02409, 0x160cefc4, | ||
2969 | 0x425e3e30, 0x8f754e91, 0x7d47a275, 0x7972784f, 0xea9eaa92, 0x3e13df55, | ||
2970 | 0xaa967660, 0xa46fa07d, 0xd5507daa, 0x96fd5578, 0xe13df55a, 0x457f4143, | ||
2971 | 0xd30333d7, 0xd7b3fd55, 0x0faaabdf, 0x13df506b, 0xcbadf8ae, 0xdf0cf5e4, | ||
2972 | 0x2f7d4f32, 0x61084877, 0xbca163be, 0x38e40bdd, 0x52e088c5, 0xc4cb38d5, | ||
2973 | 0xbbf0470d, 0x57de9b8a, 0x7448dad4, 0x68afbdaa, 0x7d754ed9, 0x46fb89ec, | ||
2974 | 0x5e0cf3f1, 0xc675373a, 0xdc5f8ea6, 0xc3035f74, 0x1abed6bf, 0x6afbd5d3, | ||
2975 | 0x886e5976, 0x7a9e6b37, 0x6f7c999f, 0x766f168c, 0xbfff7ab7, 0xed19bc69, | ||
2976 | 0x0c193c6a, 0xe31d8b3e, 0x44abad80, 0x5cb2defa, 0x4bee4e7d, 0xed93ddc4, | ||
2977 | 0xcaeee231, 0xcf376abd, 0x0dffb4a7, 0xd04664f3, 0x173c0634, 0x8536e455, | ||
2978 | 0x48e627f3, 0xaf2b5d9c, 0x75e41294, 0x2af29d8e, 0x5ad3bc91, 0xff21df86, | ||
2979 | 0x2b708bde, 0xf7588979, 0x05ce6880, 0xbe71c68e, 0x4d0afdea, 0xd240e7f8, | ||
2980 | 0xae76f983, 0x51ec0b07, 0x8739507a, 0x78c1e8a2, 0x897928e3, 0x4870a578, | ||
2981 | 0x0f44b8a4, 0xc86257e6, 0xbfdb6ff1, 0x7be93ea6, 0xf6dbf38e, 0xe0bf2882, | ||
2982 | 0x5047bdfb, 0xefde039e, 0xedd9f5c5, 0x888527a0, 0xd589fc9e, 0xf3d3fc41, | ||
2983 | 0x3c38311b, 0x48be7233, 0xe1689fc9, 0x0f7cd62d, 0x87b9a6d9, 0xb73c7eb4, | ||
2984 | 0xb9dae63b, 0xdf2c3d5e, 0xd7235143, 0x7a76346b, 0x8fee7acd, 0x6d15bde2, | ||
2985 | 0x8d5ff651, 0xe7fd4edd, 0x106a4be8, 0xf70b46ee, 0x8105eaab, 0xa67d78f4, | ||
2986 | 0x6e3ef340, 0x71f6a52a, 0x5c6a92f6, 0xacb930f7, 0x2a5e58c1, 0xed443bdd, | ||
2987 | 0x5efb1892, 0x6e765582, 0x7896cf2f, 0xddfd2fff, 0x0ee60ad4, 0x9bbe44a5, | ||
2988 | 0xd3be7162, 0x3d83c6d7, 0x140ece79, 0x3bf55f8b, 0x9a1fc42a, 0x3f1d0ade, | ||
2989 | 0x43e70f63, 0xfaf9fbe8, 0x66e7aecc, 0x109ebee0, 0xdb1e78dd, 0x1d602a75, | ||
2990 | 0x57c7829b, 0xa02256f1, 0x8d6cad93, 0x038bea19, 0x18f78a2e, 0x8fb25fc0, | ||
2991 | 0xcbddf08f, 0xc7c24cf6, 0xd3219398, 0x789f6858, 0xe3107bca, 0x58b3b9c3, | ||
2992 | 0x06ed8a12, 0x7f0530d6, 0x55b0291f, 0x5ab31bce, 0x19abfdfa, 0xe8a52b25, | ||
2993 | 0x5ba94073, 0xe2f3a61f, 0xf87579ca, 0x28fc4167, 0x9e47dff7, 0x4338f3f3, | ||
2994 | 0xe32f654d, 0x98e5297e, 0xc578ec60, 0xccbbf96c, 0x5ddef587, 0x5a63dfb8, | ||
2995 | 0xbddee8ba, 0x5b1c8ac5, 0x9defa3a0, 0xe1f793ef, 0x0f3cadbe, 0xbf5daecc, | ||
2996 | 0xce46162e, 0x0cf8c1fd, 0x2cf173f9, 0xb3bbdd3b, 0xbe932db8, 0x815e668b, | ||
2997 | 0x6d351be2, 0xbf497b6f, 0x44e0984c, 0x01f3d37f, 0x4b7ef013, 0x039701c4, | ||
2998 | 0x952efbea, 0x95efd37b, 0xa77ca7d7, 0x8372f20a, 0x78bbf015, 0x81a1dd6b, | ||
2999 | 0x2f7bde30, 0xa18fba31, 0xf240acf0, 0x37168981, 0xcb85edda, 0x05cfba04, | ||
3000 | 0xbdd1f40f, 0x6d862314, 0x7e3b8e8b, 0xb78bcb2a, 0xe5a078fe, 0x9c297404, | ||
3001 | 0x2a48f952, 0xfda768ec, 0x5dfc54c2, 0x95fdc2a8, 0xa338648f, 0x7b2a9bea, | ||
3002 | 0xde11bb07, 0x80cb530b, 0xe760fe4e, 0x85d74cf0, 0xd9bbfcf4, 0x543fca4e, | ||
3003 | 0xd20f24d8, 0x9d2d8569, 0x80ae37ee, 0xf400bdad, 0xdfa3fd35, 0x9f2e51eb, | ||
3004 | 0x05f7cbb2, 0x5c5cb2e4, 0x77c3b267, 0x2accf89e, 0xaf10339f, 0x0fb68d8d, | ||
3005 | 0xe539f4a3, 0xacdbba47, 0xf9586994, 0x3fe53666, 0xfbb4f795, 0xdf9f9cfa, | ||
3006 | 0xf0ec9873, 0x57fdc79c, 0xfade81fa, 0x93ddeb1c, 0x1db97f3f, 0xfc52bdc6, | ||
3007 | 0x17082197, 0x677e8fe0, 0x4ebfb941, 0x296dc719, 0x3f2762b9, 0x3f717986, | ||
3008 | 0xf9e3936e, 0xbb6d9d93, 0xebb7dd71, 0x0e516b42, 0xa9fef9be, 0x28671c64, | ||
3009 | 0x3eb8e078, 0xf5d573f8, 0x4570bee4, 0xbf7abee4, 0xf9f0a70b, 0xef2bbf0b, | ||
3010 | 0x8bc79b9b, 0x500df7bb, 0x0eed8bc5, 0xbfb86fbe, 0xc0937fd4, 0xcfd9f1ef, | ||
3011 | 0x937c564b, 0x9055fef7, 0x05824f7f, 0xe577e844, 0xc00fde4d, 0x66a87f21, | ||
3012 | 0x13a270ff, 0xb3cb839f, 0x51e7acc9, 0xb6e4e75c, 0x87efa77f, 0xf2792b27, | ||
3013 | 0xb93cea0b, 0xe2a59f0f, 0xf43d23b5, 0xb5f7701d, 0x63796fde, 0x43a95bf0, | ||
3014 | 0xfbf0fbc9, 0x837ec3f0, 0xf87e1f7c, 0xec5342bc, 0x7197f0fb, 0x89f120ca, | ||
3015 | 0xc52f0fdf, 0xe12fe03a, 0xe907f9ef, 0xc166c1fc, 0xb04c798d, 0xcfef5483, | ||
3016 | 0x87ded3c8, 0xf17fefcf, 0xe3df93c9, 0xc91f33ee, 0x1e194adf, 0x5dff1b5f, | ||
3017 | 0xcf3c0e82, 0xdeea7803, 0x51377fc0, 0x777fcf7b, 0x05b7e739, 0x4ba085eb, | ||
3018 | 0x553bfba0, 0xd6650bed, 0x6776085e, 0x3cec9328, 0x3dc477cd, 0x5c5f6c5e, | ||
3019 | 0x041befcc, 0xded34fbb, 0x754fe0a0, 0xf961ec4f, 0xfe1671f7, 0xf237d658, | ||
3020 | 0x64f32fbd, 0x590f31f8, 0xaf591692, 0xf9147fa2, 0xe16050b9, 0x1abee9f7, | ||
3021 | 0xed463ef9, 0xbb95e7fa, 0x36f3cf09, 0x761c6e08, 0xd067aff1, 0x078053f7, | ||
3022 | 0x2f995e95, 0x837e73af, 0x6ff3e740, 0xb2a98f76, 0xeeb845ee, 0xaef6becc, | ||
3023 | 0x50587ef6, 0x5f842e6f, 0xc6b1f990, 0x49afe1c8, 0x885f7466, 0xba25ec90, | ||
3024 | 0x125dc780, 0xf83b0f94, 0x0de10b39, 0xe627c923, 0xf2937b05, 0xe44e6574, | ||
3025 | 0x85058143, 0xcffaa3eb, 0x30fbe1af, 0xf842e7c2, 0x12c98efb, 0xc74cdbf9, | ||
3026 | 0xca3b6dfd, 0xd223d01d, 0x4e10dac9, 0xf2b126b7, 0x67bc0731, 0x20f06aea, | ||
3027 | 0x342e58cb, 0x2cdcb085, 0x3e7bbbc7, 0xaffc1134, 0x846cbe0b, 0x2a18a27f, | ||
3028 | 0xe79af927, 0xee93341b, 0xcaf9e3af, 0x167f328d, 0xaefa06b1, 0xa26b3260, | ||
3029 | 0x527598b2, 0xa1eb0779, 0xac5f83d2, 0xe03da364, 0x798cb2a6, 0x6aca9ca9, | ||
3030 | 0x0d672ca9, 0x712b7e54, 0xc002625e, 0x51359d35, 0x39e402bd, 0x32890bdd, | ||
3031 | 0xf74de319, 0xeecec89a, 0xac1cd37e, 0x0e6af800, 0x38bcb918, 0x577d2560, | ||
3032 | 0x08466073, 0x1fddf9e3, 0x7bf85cd9, 0xa7b176a0, 0xbf48e29a, 0xf7f93ab6, | ||
3033 | 0xbdd52e34, 0x2bb935dc, 0x78e3f77b, 0x7c7f421f, 0xbaad9e90, 0xafe27ba7, | ||
3034 | 0x7a8f907f, 0xe1ade260, 0xe81cf27b, 0xcb6d5fcf, 0xcafe3f26, 0x9446dd40, | ||
3035 | 0x5219d5d3, 0x7ab7e23d, 0x95ee8598, 0x05d3cee9, 0x415b2824, 0xe9fde3fe, | ||
3036 | 0x05efe06f, 0xff26d940, 0xf901c05e, 0xde10f57e, 0xdab60eaf, 0x951e7f21, | ||
3037 | 0x95377e1d, 0x5445fc47, 0xa87bf51e, 0x397f31df, 0x5efdc795, 0x9d1eaf2a, | ||
3038 | 0x77c7df4f, 0x839e9fa7, 0xc87427bf, 0x19a4f951, 0xb28fe1f4, 0x44fc2e7c, | ||
3039 | 0xfdf4eb08, 0x45aec0c8, 0xd508fdf8, 0xd7d67f41, 0xd19dd2f9, 0x555352ed, | ||
3040 | 0x92ea1db8, 0x7008fdfc, 0x629e93d2, 0xea4527a8, 0x118dfdf8, 0xbc199ce3, | ||
3041 | 0x57f3065e, 0xfb5220bf, 0x303f7811, 0xc72bd618, 0x2e094ca3, 0x03461f2e, | ||
3042 | 0x74e18cbd, 0x7c65df83, 0xea99d5d8, 0x69762310, 0x4e5c13e5, 0xedc0be54, | ||
3043 | 0xec67cace, 0x9eeef7f2, 0xef0d2132, 0x89cb511d, 0xf94c45f9, 0xbded13fd, | ||
3044 | 0xea2c45a5, 0x83b9983e, 0xe60f2475, 0xd3f756ae, 0x4ce807ca, 0x95aad3bf, | ||
3045 | 0x643a1f0b, 0x8d9733fb, 0x97faefc1, 0x1d93b1cf, 0xa76ec976, 0x763f7a73, | ||
3046 | 0x0164a475, 0x44fbd5bc, 0x0ab413ca, 0xb5b07640, 0xeab8de7f, 0xced0136e, | ||
3047 | 0xd7a7159d, 0xbeb1b8a6, 0xaefc49fa, 0x4ff352e2, 0x233aa4a7, 0xf4ec59f5, | ||
3048 | 0xdda007c6, 0xddf56eb9, 0x2ffac0f7, 0xb8c0bd23, 0xfc0d5b97, 0x12939b1e, | ||
3049 | 0xded32efd, 0x0b21af4c, 0x763f7bea, 0xa6ff3c33, 0x99bbf5e0, 0xbddbfbfc, | ||
3050 | 0x2b41be99, 0xa7deab47, 0x1afd61df, 0x6bf133ef, 0x00dc2fbe, 0x8a7bed7e, | ||
3051 | 0x7efbdb5c, 0xa77f0dee, 0x6dead976, 0xcea27243, 0x37d32c15, 0x658279d1, | ||
3052 | 0x921e5fab, 0xa5cdf603, 0xe88d96e2, 0x7835ef77, 0xf942ef12, 0x71e06cd5, | ||
3053 | 0xec904366, 0x89af4f80, 0x02466f34, 0x0609fbd7, 0x7c249f6e, 0x3d446a68, | ||
3054 | 0x1382f603, 0x6bdcafbf, 0xa439f0e6, 0xc112572e, 0xc2c3ebc9, 0x86f1f1ef, | ||
3055 | 0xf7b97025, 0xb25eb5e9, 0xd76e7ba7, 0x8082efd3, 0xc4faa07c, 0x6884523b, | ||
3056 | 0x226f67bb, 0x8af3de7f, 0xcc52fd48, 0xf1e8c49e, 0x2f1debb5, 0xdcd7b7cf, | ||
3057 | 0xc53f1aa3, 0xd653dfc0, 0xe36f9da3, 0x9de51324, 0x496e289e, 0xb2ebfcc3, | ||
3058 | 0x207bfe12, 0x8abc3245, 0xa3f1357d, 0xe1a3dba9, 0xeeff289b, 0x26e4ceb0, | ||
3059 | 0x557079fa, 0x7dfa38e2, 0xe297a742, 0xe71e73fb, 0x38f269f5, 0xe08e4520, | ||
3060 | 0xdcb9e772, 0xf20cd153, 0x28657c39, 0x79e417b7, 0x8afd608f, 0xf510a7a1, | ||
3061 | 0x24aab886, 0x33de0030, 0x9f495e3c, 0xd5d719f7, 0x6f34b005, 0xe1036468, | ||
3062 | 0xcdcdc2f9, 0xa13df70c, 0x8a176cf9, 0xefe69499, 0xaf6d7c53, 0xd813a641, | ||
3063 | 0xfe51998f, 0xa96736d7, 0xd7e60137, 0x391db939, 0x4245ac7d, 0x467a607b, | ||
3064 | 0xf5f9d906, 0xcc1cc1a5, 0x308cf70f, 0x3a627c53, 0x9f80258c, 0xc5886c72, | ||
3065 | 0xd412fe83, 0xcf58893d, 0xa7fd4c98, 0x86591d8f, 0xc658f87a, 0xb78c74f7, | ||
3066 | 0x9e2bc7af, 0x5fc0658e, 0xc21fda0e, 0x8969cf57, 0x963eafbe, 0xf92a74b1, | ||
3067 | 0xbd382315, 0x6c78cb1f, 0xd22bf62a, 0xc2cbee05, 0xf289a176, 0x70278fae, | ||
3068 | 0x0c5d3f3d, 0x09efc71d, 0xcef819ef, 0x566ff471, 0xc77ec826, 0x622b9018, | ||
3069 | 0x5c981fc4, 0x9f8edcd4, 0xde7b15cb, 0xeaea829e, 0xb73ff28e, 0x26f1e963, | ||
3070 | 0x2f7aa196, 0x03ae3d9d, 0xccdf32cb, 0xe8731032, 0xf88e3caf, 0x70f55a9e, | ||
3071 | 0x01ffd607, 0x88e3cafe, 0x55c992e7, 0x9f37fbf4, 0xa3e5dfdd, 0x7024e93c, | ||
3072 | 0x7dc463d4, 0x4b09f622, 0x781af7e2, 0x485f5092, 0xdf7db86b, 0x7b244fb3, | ||
3073 | 0x39751582, 0xea6e5c74, 0x33aafe90, 0x9e90d2bb, 0x38f207eb, 0x976715cb, | ||
3074 | 0xfdf2ea83, 0xf322ff02, 0x57624541, 0xc561d21a, 0x9e0261be, 0xe1e2bd3b, | ||
3075 | 0x56a04a76, 0x3061e7e4, 0xff2694cb, 0xd51678ee, 0x93fceec9, 0xfcf5ebc0, | ||
3076 | 0xf3d676ee, 0x23ed237d, 0x2f10cf8c, 0xe30f0f3d, 0xeabe0170, 0xb92f5ef1, | ||
3077 | 0xb983c33f, 0x52abf748, 0x87f21ee9, 0xfc24a72c, 0xe3302469, 0xae3e50d2, | ||
3078 | 0xe276ca68, 0xef06cdf3, 0x15f71a4c, 0x96e389c1, 0x3c966cef, 0x2a4fd236, | ||
3079 | 0x90f41e3b, 0x7ba7eed6, 0x3e32e687, 0xd126dcdf, 0x9aba0663, 0x03fcd2db, | ||
3080 | 0xeecd2e81, 0x8ff7c832, 0x4d6bdea9, 0xfa9f74e0, 0x4fba66cb, 0x87ce1976, | ||
3081 | 0xee81ab65, 0xab365d95, 0xf1443245, 0x3dd6b2cb, 0x577cafd4, 0xcbc5e533, | ||
3082 | 0x2f64ecf3, 0xeb0d634f, 0xdf2d5f28, 0x53e3e457, 0xc9add3b0, 0x65003fcf, | ||
3083 | 0xbe399fc5, 0x3efc53d8, 0x0f83f9b5, 0xbb2f91d9, 0xfc53960a, 0x942143e7, | ||
3084 | 0xf8bd001a, 0x0ee76650, 0xc92e1ff4, 0x0fd68ef6, 0x0b1dfad1, 0xa2a7335c, | ||
3085 | 0xdfd7d149, 0x38e8b660, 0xb03f168a, 0xdef11b1d, 0xa24d45a3, 0xd131ef13, | ||
3086 | 0xfe0a23fa, 0x953f78b4, 0xc7db2290, 0x3f706320, 0x20eca69b, 0xfa71933f, | ||
3087 | 0xd6017b20, 0x987dc971, 0xd39ab3ee, 0x6279efc4, 0x8a14a13d, 0xb3f06b03, | ||
3088 | 0x8cda1f41, 0xd60549f7, 0x02fee819, 0x5c02fe1f, 0x8dfdac52, 0xec4a27ba, | ||
3089 | 0xeb2d3f5b, 0x5bcf3ecb, 0x7a775fb9, 0x1b9f28bd, 0xdbcfb751, 0xb3247f97, | ||
3090 | 0x26fbe31f, 0xeed27df0, 0xcfd002c7, 0xdf8217e4, 0xafa97287, 0xdfa5e85f, | ||
3091 | 0xfed9b883, 0xdffff828, 0xc7a90a29, 0x00008000, 0x00088b1f, 0x00000000, | ||
3092 | 0x7dedff00, 0xc554780b, 0x3d9cf0d9, 0xcd8dcd7b, 0x09c246fd, 0xb8094404, | ||
3093 | 0x9fb1dc24, 0x4a34021b, 0x414045d0, 0x2dc8d812, 0x088d9242, 0x59b6b696, | ||
3094 | 0x5a4062e4, 0x7da5aac1, 0x2c142ea8, 0x11a0d05a, 0x86ec5d43, 0xba8b4508, | ||
3095 | 0x8ad45cb1, 0x14178026, 0xb16d0042, 0xfbdfad1f, 0xbb2733be, 0x6a2364e7, | ||
3096 | 0xffefefd5, 0x27a3cbff, 0x9cccce73, 0x997ef799, 0x6318c399, 0xb17fc39f, | ||
3097 | 0x50dff876, 0x261d8ac6, 0xd8c21b27, 0x4fab569c, 0x8a6c61c9, 0xef74676b, | ||
3098 | 0xa79cc624, 0x18564c0d, 0xedfd2e6b, 0xd543262f, 0x8ad79b24, 0xcb7693f7, | ||
3099 | 0xcd942f0e, 0x3b58eef1, 0xdaf4b7b4, 0xd5f6c468, 0x512c490f, 0x6724ac62, | ||
3100 | 0x618b126f, 0x9b0e576c, 0x7783cae5, 0xd0daefe1, 0x950ed135, 0x6cdb1992, | ||
3101 | 0xfb622577, 0x1b32dee7, 0x1ec60f58, 0x87f5e78c, 0xe3db99bd, 0xfd5098b6, | ||
3102 | 0x687f5841, 0xd5b23ca8, 0x467f58c0, 0xe8c79c3f, 0xb318a30f, 0xebdfca86, | ||
3103 | 0xaf94d048, 0xa9a198bd, 0x68fac85f, 0x0759179e, 0xb38f9e68, 0xdfca6817, | ||
3104 | 0xa9ad1b4f, 0xa4529d7f, 0x3fe84f29, 0xa27f5341, 0xbca6b263, 0xeb8ac8d6, | ||
3105 | 0x63675e61, 0x8f4b5e8c, 0xd8463cd0, 0xb787040d, 0x478702d3, 0x683b584b, | ||
3106 | 0x8576c572, 0xa98d5957, 0x7dec35a3, 0x9c38da0f, 0x819c5d58, 0x4eec630d, | ||
3107 | 0xffa899f5, 0x58df0143, 0x7be0d599, 0xdd46a303, 0xb5bc046f, 0x160d941f, | ||
3108 | 0x42f32fc0, 0xcec614bb, 0x1a17768b, 0xbe207a0b, 0x7f7e01d8, 0xdfdf8d91, | ||
3109 | 0xded1f025, 0xc335e0df, 0x816b5bb8, 0xde85fa26, 0x660c56e3, 0xdd7e1843, | ||
3110 | 0x8259b28d, 0x730370f2, 0x17dd7be3, 0x1059cccd, 0x5163071a, 0xde76bdfc, | ||
3111 | 0xe64e3abf, 0x8defe68c, 0xaedff7e7, 0xec62e245, 0x5d2b5a9d, 0x82cf0e7f, | ||
3112 | 0xc0633e38, 0x691fa0cc, 0x34f8cc74, 0x06f6b7a0, 0xfa016ec9, 0x366c6cac, | ||
3113 | 0xed17f8e3, 0x316549cc, 0x5ea7e15d, 0x31a6d78f, 0x5aabfa05, 0xd52ab2dc, | ||
3114 | 0x1f6ef401, 0x682bf752, 0xe303555f, 0xb1a91200, 0x965bab0f, 0xbb62d8cb, | ||
3115 | 0x6716f442, 0x7f43f981, 0xbff4feef, 0xf0073ccf, 0xd4b3fe3b, 0xfd07e47c, | ||
3116 | 0xffb559f3, 0x17e8f4fc, 0x27f77f3c, 0x83f63f7f, 0xd3ff6a2f, 0x65fbdecf, | ||
3117 | 0xc6eef3d8, 0x932ebb3f, 0x30746129, 0xace1cccc, 0xe90cb7af, 0x3b3ffa0a, | ||
3118 | 0x358f1fea, 0xb2497f43, 0xe01d997b, 0x27cd7edc, 0xc51e0cd9, 0xcc34bf0e, | ||
3119 | 0x37e2131d, 0x095ffb7d, 0xb1bc037e, 0xfb338018, 0x15b7cd81, 0x0ddf06e9, | ||
3120 | 0x924b63e5, 0x5e906b7d, 0x669ac15d, 0x95b1f718, 0xe06b1c7d, 0x0ec7e53d, | ||
3121 | 0x86f7338e, 0x2f3cb1f2, 0x24cbfbc3, 0x2cfb8307, 0x3a446acd, 0x5703899d, | ||
3122 | 0x2b2ef868, 0xd31674e0, 0xf9d02dd2, 0x7c61adfb, 0xb6a96b33, 0x96d5ee5c, | ||
3123 | 0x61fce387, 0xd899cf1e, 0xbc30fab4, 0xeffcc4fb, 0x047c2f89, 0xce3b8be5, | ||
3124 | 0x5376e54e, 0xfac85dc7, 0xbfb4f58c, 0x81fa2d1f, 0x32008e39, 0xb7b2f1c5, | ||
3125 | 0x9fcf34ac, 0xf89183e1, 0xf2266f3f, 0x4f82dbe3, 0xd6c4c4cf, 0x6707c049, | ||
3126 | 0x6f070e14, 0xd2e1cc8d, 0xed056013, 0x6e2777ab, 0xdfc0b822, 0xb3ee5451, | ||
3127 | 0xa4c7cb19, 0xde17b240, 0xfb07265b, 0x28cffbe2, 0x1d630fad, 0x4668e2ef, | ||
3128 | 0x53b491ed, 0x10fa7c04, 0x30f3148c, 0xe7801f01, 0x69d946cc, 0xf1f0441b, | ||
3129 | 0x29a3e0ea, 0xa8d0fe8f, 0x43af7f29, 0xa2f6be5b, 0xb4c85cb6, 0xdaac8bed, | ||
3130 | 0x8e02cbf2, 0xfbdaece3, 0x96d34fdf, 0x1e3a55df, 0x1d8bf2e2, 0xf3c30dca, | ||
3131 | 0x259521cc, 0xcfe00e2c, 0x179c66ec, 0xb864f78c, 0xc11e2b1c, 0x3adb78e1, | ||
3132 | 0x21cbe7c9, 0x5f9e6afc, 0xecab1cc7, 0xdaf74879, 0x418bf0fb, 0xe82b9a7a, | ||
3133 | 0xed3aee67, 0x19dfebf3, 0xbc019e35, 0xe325d84e, 0x207f78fb, 0x4e78881b, | ||
3134 | 0x419f738c, 0xc744f03e, 0xc37d420d, 0x46b9ede4, 0xabd9ff78, 0xe3990e6c, | ||
3135 | 0x3b21cb81, 0x3938ff1f, 0xe7c011c6, 0x058768fe, 0xd3da2d6e, 0x8fe51527, | ||
3136 | 0x37cf5eda, 0x52dc800f, 0x9c7be1fa, 0x99af4867, 0x25d20559, 0x28fa021b, | ||
3137 | 0xe4c2c81d, 0xf6878f8c, 0xceb71dcf, 0x3be04772, 0xef955ce0, 0x77c8259c, | ||
3138 | 0x35f4e63f, 0x1ec8cda6, 0x352c71c7, 0x9c20b26d, 0x8fc427eb, 0xb999fa03, | ||
3139 | 0x5b9df38c, 0x3064ac0a, 0x647b99bf, 0x25cce782, 0x44498f92, 0xf435e72f, | ||
3140 | 0xbea0f022, 0x5e71f00f, 0x329a5fc7, 0xfdd12850, 0xecc62683, 0x678ebef0, | ||
3141 | 0x1466df25, 0x648d53d9, 0xbb6d542f, 0x337047c2, 0xef1117b2, 0x2a8f816e, | ||
3142 | 0xa81e2323, 0x0658fe04, 0x4bd4e7f5, 0x178fae34, 0xa8067c5b, 0x261db55f, | ||
3143 | 0xae3fcf08, 0x2824f931, 0x3328dc7f, 0xbeb10fce, 0x7db550be, 0x7c2f2f3b, | ||
3144 | 0xf82d96fc, 0xff3c5dbc, 0x2db8fb78, 0xa2b5bef8, 0x9062ef7f, 0x6ddf504b, | ||
3145 | 0x3e6b5664, 0x0259b75c, 0x63b7a076, 0x4757f651, 0xe8ed3d21, 0x3e0cf0f3, | ||
3146 | 0xc618c524, 0xab59c74f, 0x85d0e109, 0x9f03b69f, 0x2be575c5, 0xa0f1d237, | ||
3147 | 0x50b9f4ae, 0x839039aa, 0x9267e372, 0x95d2ab63, 0xa974f54e, 0xc17cedd2, | ||
3148 | 0xd9b3d01f, 0x1bca1035, 0x1d38f5f4, 0x1fd635ac, 0xb9e715b9, 0x3bfea642, | ||
3149 | 0xb71009e7, 0xdc2d4902, 0x28c8f7d1, 0xdabe5e78, 0x32efe884, 0x33f3aecf, | ||
3150 | 0x6ce6fcd1, 0x673274e7, 0xa453e4a9, 0xcfd5f3ae, 0x98bccbb3, 0xa63d956b, | ||
3151 | 0xcebafceb, 0x218fd383, 0xf1104876, 0xa2d1be75, 0x9dd1fda0, 0xab5d3b7e, | ||
3152 | 0xff411b64, 0x675adbb6, 0x238c0732, 0x2575bb7e, 0x907688c8, 0x179fa8c1, | ||
3153 | 0xec5ddfac, 0x2d39be05, 0x4a6f7971, 0xf95874e6, 0x5926ea74, 0x6953f50a, | ||
3154 | 0x4073f40e, 0x15e3bbbd, 0x81a56382, 0xc1fa09eb, 0x4e0f4e38, 0xc606bcd8, | ||
3155 | 0x856de601, 0x32679fa6, 0xe361c937, 0x8604b4ab, 0x3b41fa69, 0x7c9fbc26, | ||
3156 | 0x1c19cfde, 0x9fa85e4f, 0xf1da5daa, 0x9a839954, 0xfb0954f1, 0x0ce7ed48, | ||
3157 | 0x9fea078e, 0xf784f1c1, 0x3c769cf3, 0x66a09655, 0x769d553c, 0x9f27e895, | ||
3158 | 0xae55d3f7, 0x73f634f8, 0xb64e7d55, 0x2b4f0c31, 0xfb1631af, 0x0f4dd822, | ||
3159 | 0xbff973c4, 0x7ecd9b70, 0x557eac32, 0xeca6bc7d, 0x9fb74c69, 0x859fa30c, | ||
3160 | 0x3bc807f8, 0x032418b6, 0x314ad3c8, 0xfbb291c4, 0xa3d47881, 0x011faf49, | ||
3161 | 0x5b559a0b, 0xa748cc3b, 0xfcfa5d8c, 0x865861f3, 0xcf1c653f, 0x38450394, | ||
3162 | 0x1d93469f, 0xf00cfd59, 0x71e017bf, 0xf5f061c6, 0x7fddf986, 0x119b83e9, | ||
3163 | 0x4dbb313e, 0x7940f709, 0xab45e3ad, 0xdb5fe302, 0xe5f62a68, 0x67dddea1, | ||
3164 | 0x5f261d9d, 0xfdb93ad7, 0xeb019ccd, 0xfba181e4, 0x8f5f8331, 0x0cf17b43, | ||
3165 | 0x5e2316b3, 0xd6031ad7, 0x587061c1, 0x3eaa2a0b, 0xc5765c02, 0x5fd744cb, | ||
3166 | 0xb54b2e1b, 0x01e15170, 0xf085d9f0, 0x535b58f1, 0xffbb4ed0, 0x6871e39a, | ||
3167 | 0x360d15a7, 0x9ca7a44a, 0x9721e912, 0xabaff39f, 0x0d7f2644, 0x08525626, | ||
3168 | 0xf441bbf0, 0xfa0ad677, 0xdbf06ae9, 0xd885091c, 0xbc71c6ee, 0xd2f978dd, | ||
3169 | 0x9e50c9a1, 0xca993dfc, 0x4d99eeaf, 0xe2600d72, 0x27bc0008, 0xbf258d4f, | ||
3170 | 0x3863fa0e, 0x9fa8a9be, 0xe126d481, 0xa937682d, 0xe005f258, 0x308e377d, | ||
3171 | 0xf3e70f1d, 0x796d4e49, 0x0cb6b172, 0x335f91fd, 0xafbda5d5, 0xe28759da, | ||
3172 | 0x07de9363, 0xb1458c17, 0xfed1cf8c, 0x6632fa11, 0x1f6b5ef0, 0x11d9d718, | ||
3173 | 0xebcd0766, 0xeca9dfd2, 0xb6c0c6bd, 0xa7337b62, 0xb28d9ffb, 0x84e796fa, | ||
3174 | 0x443dfbd3, 0x030e4db7, 0x37fb6133, 0x9bd43e2c, 0xbb33db7f, 0x77a08b17, | ||
3175 | 0xd198ed43, 0x35e34690, 0xdcfeb832, 0xfd8c51d4, 0x067bfcff, 0x8ffa0cb6, | ||
3176 | 0xfb76651b, 0x27bfb422, 0x4231f85e, 0xef072dde, 0x2f2dfd0f, 0x256c728b, | ||
3177 | 0x3f2148bb, 0x58b7f54d, 0xab2a1f5a, 0x340c967e, 0x34fa4419, 0x9e3d1076, | ||
3178 | 0x81e9f7f7, 0xe68d8ce3, 0xa07f3c78, 0x2f6e1ed9, 0x047fa234, 0xd01fc676, | ||
3179 | 0xa36b823f, 0xb5fd7fb0, 0x00bf2a76, 0x035e0e7e, 0x4ff90ab5, 0xd3fb6b7b, | ||
3180 | 0x075ac5f5, 0x8ed7f75d, 0x5a81eba0, 0xb97bd527, 0x07ae98b6, 0x75745d6b, | ||
3181 | 0xf9f025c7, 0xec5db918, 0x920afe79, 0xdbafe073, 0x88e28612, 0x3e20066b, | ||
3182 | 0x793e3bcf, 0x0af0b7f2, 0xafd3a8cf, 0xacf5c116, 0x735771d4, 0x3ff9fc98, | ||
3183 | 0x3f074fcd, 0x7fc71728, 0xef5d7f39, 0xb73d542f, 0x70179763, 0x87a9e0b4, | ||
3184 | 0xfbcc18e2, 0x0a5d7194, 0xadcae1ca, 0x709ce32b, 0x0e3bb305, 0x9f29e1f5, | ||
3185 | 0x3e891c5c, 0xfa54134a, 0x2848c670, 0xabe718e7, 0xefb89e8f, 0xbfabe406, | ||
3186 | 0x51d9356d, 0x7ec0785f, 0xae7e80b1, 0xf89db86e, 0xbc6dca12, 0x1939ef7c, | ||
3187 | 0xfe5a8dcb, 0x87bbf059, 0xa2589452, 0xb74e4cbb, 0xdba44c81, 0x8def2dea, | ||
3188 | 0xb0f23a47, 0xfad3d20e, 0x8bfef876, 0xbd4f7a00, 0xbd7e8e5c, 0xffcab9fe, | ||
3189 | 0x9eae411e, 0xc9cefb86, 0xab57f871, 0xafaef119, 0x0e34815f, 0x41313c7c, | ||
3190 | 0x3670f1f0, 0x156ded1c, 0x4c97cc1e, 0xf73f2cfc, 0xa86d419b, 0x39fcb7bf, | ||
3191 | 0xcaebca4e, 0x67ebe7af, 0xa507fa3f, 0x176cfe7b, 0x6bd7af74, 0x200c234a, | ||
3192 | 0x7e7e8a15, 0xe20534ad, 0xb9fda346, 0xacf244c9, 0x1f6fc772, 0xd3da35fb, | ||
3193 | 0x7d1c5a6f, 0xf69bb415, 0xe505191d, 0x494d3b85, 0x311a7c25, 0x2f084a52, | ||
3194 | 0x696ff81e, 0x0b0f087e, 0x5667d99e, 0x77fbf206, 0xb1f08427, 0x99936770, | ||
3195 | 0x8f0aec0d, 0x7326faa2, 0xbc044c6b, 0x478db7d4, 0xfb9f96be, 0x7ef119a7, | ||
3196 | 0xa58905ea, 0xe78044e6, 0x6e717da6, 0xa3c22701, 0xde2753c0, 0x803df574, | ||
3197 | 0x1553a417, 0x57e7fa4f, 0xc67a7027, 0xa23c94fe, 0x00ff27e7, 0xcb78a9f0, | ||
3198 | 0x57f9c0e2, 0x1c67793c, 0x6303e3ce, 0xdfeba70d, 0xc2714cac, 0xde4c2b7b, | ||
3199 | 0xf95d3b14, 0x96478afd, 0x6fcdbd10, 0xc8c29259, 0x1ba670ee, 0xd33cd046, | ||
3200 | 0x37737e71, 0xcdf9a54e, 0xbba26e63, 0x2ec8df8a, 0x353e2bb4, 0x119de2b2, | ||
3201 | 0xc175e2f8, 0x066c1f17, 0xfbf3046d, 0xef73c840, 0xcb8fb2eb, 0xca183bcd, | ||
3202 | 0xdcaa25c9, 0xfca88b64, 0xe9e395a9, 0xe08304f1, 0x70f2e02b, 0x6f72dd7a, | ||
3203 | 0x51f3f110, 0xfd153396, 0xbf030f47, 0x7d21f797, 0x2dcafd0e, 0x7e3952e3, | ||
3204 | 0xed4cbdb8, 0xc2290ec0, 0x683f58fb, 0xac3b7f22, 0x273cfb1d, 0xe2c5fef4, | ||
3205 | 0x28ee30fd, 0x07f3e409, 0xd36edc29, 0x095fefcf, 0xbf028e3c, 0xafa30b20, | ||
3206 | 0xfce6fe30, 0xe73565be, 0x7ddf956f, 0xf9f18a93, 0xff388727, 0x7cccbb60, | ||
3207 | 0x9520571a, 0x914d379e, 0x58581e48, 0x6f5f1220, 0xd6be0931, 0x04e9573e, | ||
3208 | 0x38c46dc6, 0x60bd2746, 0x7f0409ff, 0x3de787b2, 0xe4c2ed08, 0x17df07a1, | ||
3209 | 0x953fb5d7, 0xfe0be76f, 0x3ff9057f, 0x6cffc43a, 0xeefbe723, 0xf097adf5, | ||
3210 | 0x3df26957, 0x57e46bf6, 0x82af4fe0, 0xe1726afc, 0xdede3fbc, 0xf456e47c, | ||
3211 | 0x3e55eb1b, 0x3d4fcad5, 0xbd3c569f, 0xcf53e88f, 0xefd71fa7, 0xa7c8894b, | ||
3212 | 0xb4a5f73b, 0xd3e245e6, 0xaa7e56ef, 0x2754fbf0, 0xd879553f, 0xf2f51c1d, | ||
3213 | 0x250481f0, 0xdf843ca2, 0x2bac3621, 0xa774a9fd, 0xdf82dbd2, 0xb942f557, | ||
3214 | 0x2a9749d3, 0xa5d275dd, 0xf9fa774a, 0x7fa7e16a, 0x158047fe, 0xb90df9e2, | ||
3215 | 0xf7da1863, 0x45b8c153, 0x03054dbc, 0x6b1f34a3, 0x4d5f11a5, 0xfef3e311, | ||
3216 | 0xb7184983, 0x79c21241, 0xf4bff54d, 0x0df7be19, 0xdfa2f313, 0x2dcf767b, | ||
3217 | 0xab57da0a, 0x990ead92, 0xe68f84e4, 0x5eec8efd, 0xb00f7189, 0x8e51aaa3, | ||
3218 | 0xdb47f74c, 0xddb96ed1, 0x32709eea, 0x7f448411, 0x8dcbe489, 0x07b2656b, | ||
3219 | 0x2e3c79ad, 0xf2611ae1, 0x9efa5fa1, 0x2be345c1, 0xfd5e1829, 0xf73d1a23, | ||
3220 | 0xb93dd1cf, 0x2157c606, 0x8c3f87c6, 0xc2ceddd7, 0x0f5faa7e, 0x46bbce5d, | ||
3221 | 0xa1c5440a, 0xe3b12c3f, 0xddb87061, 0xefe32da7, 0xfd4252bf, 0x777eae5e, | ||
3222 | 0x5f4df47c, 0x3aba05df, 0x1b787e0e, 0xba7c8d5e, 0xcb3cf4e1, 0xa9e8e1cf, | ||
3223 | 0x031fc894, 0x615c9bbc, 0x44bad57e, 0xbddef72e, 0xcce280bb, 0xec0ff785, | ||
3224 | 0x2e6de5c1, 0x423cd7c5, 0x2af79e7e, 0xa8af503d, 0x03f9eef6, 0xe8efe445, | ||
3225 | 0xe822d3c7, 0xdec22ffc, 0x5a563b3d, 0x9ddf0327, 0x3f641d65, 0xd8dac779, | ||
3226 | 0x6f7e08d6, 0x7ea7624d, 0xd430f260, 0x86afea4b, 0x4f13b0f8, 0x329e276b, | ||
3227 | 0x7f0aea0e, 0xe5571dfc, 0xc3effca0, 0xe109f915, 0x1d6b62d9, 0xcf308aef, | ||
3228 | 0x4adc047b, 0x46667ef6, 0x3f937639, 0xb8f084c7, 0xb1acac69, 0x28947f63, | ||
3229 | 0x2b0144e4, 0xec9571c0, 0x246e2ebd, 0xec80e3e2, 0x3d5c01b0, 0xf76673fe, | ||
3230 | 0x11c3cbc0, 0xf5fb47fb, 0x0f31c984, 0x67e278e1, 0x3e05e636, 0x45c44578, | ||
3231 | 0xf51391e0, 0x44e5741a, 0x225f7dfd, 0x9bbc078f, 0x4eb82768, 0x2534292e, | ||
3232 | 0x1af37bc3, 0x6f3183ec, 0xbfea2191, 0xf3d0a89b, 0xad4ed14c, 0xebc95197, | ||
3233 | 0xd5ed99b5, 0x23dfe691, 0x6a5f53b9, 0xdefb35f0, 0x0fe8cd3b, 0xabe16fff, | ||
3234 | 0xc0d8fef0, 0x8d5f8c18, 0x746e4895, 0xfc4663a5, 0x63fc1e70, 0xfbcf13f4, | ||
3235 | 0x7cf2bc79, 0x02c38f09, 0x735db93c, 0x8d764493, 0xf87ae74a, 0xabe0273e, | ||
3236 | 0x28a8ffbe, 0x9db913fb, 0x8557c2a4, 0x6abc7eab, 0xd757907d, 0x1bfbcb86, | ||
3237 | 0x293f071b, 0x2fc23e61, 0x55d00dd9, 0x8cd5b1b5, 0x5c69e77c, 0x667f426f, | ||
3238 | 0x65fbc2ba, 0x29a0d746, 0x6ef37461, 0xdbde91a2, 0x267a3f9c, 0xb585c7d2, | ||
3239 | 0x77f38616, 0x871739ce, 0x8315f37a, 0xc8d1b5e3, 0xe4caaf7f, 0xc707778f, | ||
3240 | 0xafdad6bf, 0xef0c6b1f, 0x39c68737, 0x84d0b2b9, 0x654669ea, 0x8c352993, | ||
3241 | 0x4c4dde8e, 0xfdeae7a0, 0xf2854a8c, 0x1a3ef062, 0x16e7f787, 0xd5e49bca, | ||
3242 | 0xc344c707, 0xf13519f3, 0xc02afe9c, 0x8e72a6f0, 0xbea68f26, 0x5347cf47, | ||
3243 | 0xe535a24a, 0x3dad45d9, 0x96252e11, 0x044762c0, 0xa926f4fa, 0xf535f9f4, | ||
3244 | 0x37e81382, 0x5ffedd02, 0xab1617a7, 0x9355a17a, 0xa92ebecf, 0x8d485e8b, | ||
3245 | 0x2d1617a4, 0x0f115253, 0xd165be6a, 0x2252e34b, 0xb5c385e9, 0x1472df3c, | ||
3246 | 0xcf5e19e4, 0x70bd014e, 0x985e9875, 0xd13a2362, 0xba482bb7, 0xf1505e8c, | ||
3247 | 0x99cb1df4, 0x2217a8c3, 0x24f8f5f0, 0xd9b85ead, 0xe17a4e5f, 0x533229e6, | ||
3248 | 0x497df3c2, 0x56eefec2, 0x4ca6142f, 0x11c9b2a7, 0x106e811d, 0x3a17189e, | ||
3249 | 0xf8eef22a, 0x3f0fd41e, 0xbc13b24e, 0x3ba27af4, 0x39799e39, 0x04bffe39, | ||
3250 | 0x2f8e555f, 0xbd912a9a, 0x18ee95d7, 0xe9a2efd1, 0x16ade512, 0x7c72e1ed, | ||
3251 | 0xf1c81951, 0xae45d61c, 0x0eae50ba, 0xbcab9709, 0xeb9bb57d, 0xce634f01, | ||
3252 | 0xf9e14b2f, 0x0e4cebad, 0x35bfd42b, 0x85876724, 0x271fd9cb, 0x2b672375, | ||
3253 | 0xe0bd9cb8, 0x45f1e82f, 0x4263cb71, 0xcafc82be, 0x8ba04475, 0x9ad1a569, | ||
3254 | 0x06270375, 0x19ef29ff, 0x64578fe4, 0x27bc878a, 0xc1c1fdf4, 0xf6821a7f, | ||
3255 | 0x0f1c61ff, 0x49b7efe0, 0x9f80ef5c, 0xe058fd71, 0xdc39a2fb, 0x2edaae5e, | ||
3256 | 0x1baafc13, 0x6f57bf38, 0x3d0e2893, 0x3333ff3e, 0xf0f6ede5, 0x971a86b8, | ||
3257 | 0xf0bff156, 0x9955d695, 0xc4937cf8, 0xfc0acce3, 0xcd87cb0b, 0xbf242c73, | ||
3258 | 0xad06fe64, 0xe96250ff, 0x4aed8fd8, 0x3639277e, 0xec8bfc91, 0x7e89556f, | ||
3259 | 0x3ed36e16, 0x16ac72af, 0xe48057fe, 0xf6bd5576, 0x5fc15ef9, 0xde40e573, | ||
3260 | 0x7bcf9833, 0xd244764d, 0x4ebd6a67, 0x9bfc5478, 0x780168f0, 0xf0eaf90c, | ||
3261 | 0x44dfddb8, 0x0baf9379, 0x5ffcfd07, 0x3e46e554, 0xf6fc821b, 0x7249c19e, | ||
3262 | 0xcf32fbc3, 0xdf59ce3b, 0xfe3c3537, 0x8ba0bafc, 0x55ee0c57, 0x9aaf58e9, | ||
3263 | 0x6fe73fe7, 0xca1a8704, 0x306cf5a5, 0x37f36efa, 0xa76bf568, 0x48506f3e, | ||
3264 | 0xecd6975f, 0x43cb6e94, 0x5abcf3b8, 0xf8fd6f85, 0xb65e780c, 0xd437f414, | ||
3265 | 0x716f9d9f, 0xc5a8fc63, 0x517241d6, 0x05cfcfa5, 0xe053fcbf, 0xc74644e3, | ||
3266 | 0x8d3bd258, 0x2ef89d92, 0x087ae360, 0x728362f0, 0x8fbfc8f3, 0x5bb07817, | ||
3267 | 0xde392f88, 0xe427803c, 0x517ef1db, 0xddf6e7ae, 0xee39ff0c, 0x4c9bfbff, | ||
3268 | 0x91a2aed8, 0xa0236baf, 0x8c3be986, 0x84a61447, 0x1b4f73e1, 0x92adefa7, | ||
3269 | 0xe0f86e83, 0xe7c197df, 0xdaa8f065, 0x9f165f23, 0x4f3e5c2a, 0xc0827e12, | ||
3270 | 0x582d8b6b, 0xfc798052, 0x3363923d, 0x53c7f656, 0xbae4e15c, 0xd8df843e, | ||
3271 | 0x3d578e64, 0x80dfa3dd, 0xf2d4a6eb, 0xfa201c24, 0x7636c5f4, 0x6f6f7d42, | ||
3272 | 0xcb855f6e, 0xa3be351d, 0xbe6abf5e, 0x1482c3cc, 0x66f352af, 0x83f76523, | ||
3273 | 0x7257a889, 0xa44f5a25, 0x4660cfe6, 0x40dfd7c4, 0xbe9313ff, 0x66967fa0, | ||
3274 | 0xecedebe7, 0xe13b7dea, 0x6e5136e9, 0xb4761ace, 0xa17be014, 0xbae0764e, | ||
3275 | 0xca0c5bb4, 0x9e506b91, 0xe43131ac, 0x4d070b8f, 0xa3df2e4e, 0xbf949f49, | ||
3276 | 0xfa84c272, 0x82731cb0, 0x09ffc798, 0xc4271bd7, 0x3d02de78, 0x2898c4ec, | ||
3277 | 0x093a1fab, 0xd1c53fde, 0x9cf30e34, 0xacb48753, 0xe4ee38c4, 0x2391fb22, | ||
3278 | 0x32d5cf88, 0xaf1e7c43, 0xeb3f222b, 0xe2243bce, 0x6f0037af, 0x94ea7ed8, | ||
3279 | 0xe047239c, 0xc97565bd, 0x75295314, 0x0d3cdf26, 0x6507a5ca, 0x66f50287, | ||
3280 | 0x831b18df, 0xfd09d7f1, 0x830ee665, 0xae0b194f, 0x6957f8c4, 0x71531dcd, | ||
3281 | 0xe7a015dc, 0xe15d1f30, 0x8a97196f, 0xb5128de5, 0xe6dd78f7, 0xe09d2054, | ||
3282 | 0x21e67386, 0x5079fef0, 0xd9eec10f, 0xb679ebc8, 0x754c0e48, 0x27aff3cd, | ||
3283 | 0x8b6f3879, 0x598970c4, 0x2b58ec10, 0x8567d7ef, 0xa11b837e, 0x63e7943d, | ||
3284 | 0x4b77ec7b, 0x90d3cdfc, 0xd49c618f, 0xfdb2c47e, 0x41e72f28, 0x82cc783b, | ||
3285 | 0xfea0ee5b, 0xb128df6e, 0x62afe834, 0x47cfce44, 0x4d077f60, 0xb47e7c0e, | ||
3286 | 0x671457e9, 0x4bef099f, 0xcb67fe87, 0x9d68e3ad, 0x3b258fd7, 0xb92abbad, | ||
3287 | 0x5677f099, 0x9b4b19f0, 0x47baf64a, 0x6f3daa62, 0x3edb8f0c, 0xe89bdc96, | ||
3288 | 0x65d2de78, 0xad5e70ab, 0x031ce4de, 0x5a39d5d1, 0xe0127897, 0xf43b06ed, | ||
3289 | 0x83c79984, 0xcc27bd9b, 0xb37261ad, 0xf10fb939, 0x42c69ce5, 0x3aea2f92, | ||
3290 | 0x6e32f70a, 0xb4adb467, 0x36987ad1, 0xef1b3d93, 0xd0b4af37, 0x5c1df6fd, | ||
3291 | 0xb567b4bf, 0xdc7e83be, 0xcc4d1b07, 0xbe5c630b, 0x88c3cfb1, 0x9bb60fc7, | ||
3292 | 0xdfe4de88, 0xcd8e4898, 0x5be3c1df, 0xbf791bcd, 0x72e36c1f, 0x5337e8ad, | ||
3293 | 0x9ebca3c7, 0x42c9f20f, 0xafcad3f3, 0x1e02ca79, 0x89b75d47, 0x9557cbf4, | ||
3294 | 0x53e45d53, 0x5f1455cf, 0x7aef4eec, 0x77aa8c58, 0x5ebe31f2, 0x7335955e, | ||
3295 | 0x196fd203, 0x03068c4f, 0x087d3fbb, 0x2c6569f5, 0x46d53bc3, 0xa712c3fb, | ||
3296 | 0x96c7ca07, 0x8a7e77fa, 0x6a515ff4, 0xde1e2073, 0xbf23f847, 0x78a44dac, | ||
3297 | 0x395f3cea, 0xab3e79c1, 0xdfcf3821, 0x356fa5a0, 0x2ddd386e, 0x9eb86733, | ||
3298 | 0xce6688aa, 0x7f477ab0, 0xef0a7402, 0xf928d599, 0xdb96126c, 0x42192ff6, | ||
3299 | 0x6b8d3b65, 0x6bfbd0a9, 0x8f8e8963, 0x4adcf0fe, 0x7799d3a4, 0x6eed0c4b, | ||
3300 | 0x42af75e6, 0x41bd57bd, 0xd6bd7052, 0xfb79bbfc, 0xc71ed0f9, 0x9c57f47d, | ||
3301 | 0x15ae809e, 0x8deafba4, 0xfd53f7eb, 0xfd82922d, 0x4e54dd1f, 0x57854276, | ||
3302 | 0x4b7cf466, 0xa001f91b, 0xd30f2897, 0x905395ec, 0x5857abee, 0x57d798ec, | ||
3303 | 0xc7a547e9, 0x661f9136, 0xc9a0c756, 0xb2516ed0, 0xe50e9112, 0xdea75269, | ||
3304 | 0x78f17a44, 0xedb57d39, 0x25903930, 0x7c8f4f2e, 0x6f4a825d, 0x90dbd232, | ||
3305 | 0x6f35bd10, 0xfd23322c, 0xebe3e07d, 0x5e908a11, 0x571f1e91, 0x262c2ae3, | ||
3306 | 0xe9523edc, 0x07e80ab1, 0xe8e5f4e5, 0xd3fa3bb1, 0x02f81dd3, 0xcee47eb4, | ||
3307 | 0x771a3695, 0x37ddaad1, 0xc47ce52f, 0xab459c70, 0x8179487e, 0xff1e4679, | ||
3308 | 0xeb88e156, 0xd24f30da, 0x2e0f1c65, 0x997fa733, 0xf1c6e8f1, 0x10d8e48b, | ||
3309 | 0x96e803fd, 0x01bac59b, 0xe5039443, 0x5698c4d3, 0x31e304a3, 0x51187525, | ||
3310 | 0xe14f0f3f, 0xc23979fa, 0x3325eb0a, 0x67281f5a, 0xacee081a, 0xa3d7c297, | ||
3311 | 0x876476e6, 0xa67b63c7, 0xb06efea8, 0x189fde27, 0x5851e50d, 0xff404db6, | ||
3312 | 0x5745a26e, 0x60a061ee, 0xbc516313, 0x5eca2a9c, 0x4c9d0328, 0x479f54cc, | ||
3313 | 0xd12f72f3, 0xebcd1bde, 0xc79f500f, 0xead5f2f0, 0x7f5e18f3, 0x99e7a334, | ||
3314 | 0x7013b129, 0x14cf573d, 0x237c66bb, 0xfd0d4951, 0x62d957fa, 0x6eb489a8, | ||
3315 | 0x9a8a6fa7, 0xaf146787, 0xf4fff976, 0x5cb5e606, 0xf90098d6, 0xe9d34e07, | ||
3316 | 0x867b30d6, 0x13ca7589, 0xa4b23d04, 0xae0bb238, 0x2f01bfc7, 0x26818c13, | ||
3317 | 0x06b06f6c, 0xb0573f08, 0xfbf7f615, 0xf65222e3, 0xdd05e7e0, 0x56a86bfb, | ||
3318 | 0x6ff30fde, 0x4b632725, 0xc524ae81, 0xe590f94e, 0x46db994b, 0xed4b94eb, | ||
3319 | 0xcc49bf68, 0xaf9cf869, 0xfbe17657, 0xefa8f1d5, 0x802e32ef, 0x7c2131b4, | ||
3320 | 0x1fa91b5c, 0x07675c75, 0xb798bc5b, 0xfd618ef4, 0x74e0c26b, 0xf08ae916, | ||
3321 | 0xe22264b4, 0x098daced, 0xac728bbc, 0x8447fcfa, 0xeaf1b3d7, 0xd64e5173, | ||
3322 | 0x95d74f3d, 0xa4febc4d, 0x78272b94, 0x64b3bde1, 0x6814a4e7, 0xd0c73163, | ||
3323 | 0x28baeaba, 0xbee5debe, 0xed17b764, 0x5a73a023, 0x32cde497, 0x76317f93, | ||
3324 | 0x5f0ce488, 0xd043315f, 0xb114b1f5, 0xaeb2d94e, 0x0ded05a6, 0x4196c3f0, | ||
3325 | 0x0ba5cf7d, 0x4c4f8c66, 0x9199b7f4, 0x401baaee, 0xcb15e26e, 0x68dd5798, | ||
3326 | 0xf75a4676, 0x56452a76, 0xf59a17e3, 0xfab2fbc0, 0xb9424cad, 0xafcb873c, | ||
3327 | 0xc7e3bb45, 0x39517961, 0xbd6ff7b7, 0x0438e766, 0x69ab9941, 0xb1675e25, | ||
3328 | 0x8a687dd6, 0x74517ea3, 0x4edc25fa, 0xd449ab2e, 0x03ad6794, 0x75c20e6c, | ||
3329 | 0xfef5da99, 0xa7b9e44c, 0xe30fd0b3, 0xde04d38d, 0xa5ada7a7, 0xb774f7bc, | ||
3330 | 0x44e73d76, 0x026332ff, 0x2246bb8e, 0xb8e6093d, 0xf066ed82, 0x6c35c219, | ||
3331 | 0x7dc0385d, 0x67d0a35c, 0x97ce5c95, 0xb4a97f0a, 0xdd17af82, 0xc2666597, | ||
3332 | 0x7f71f2df, 0x84d8fd6a, 0xa3f71421, 0x7f1efef5, 0xcfeb098b, 0x137e0258, | ||
3333 | 0x4ec97bf7, 0xda0ea598, 0x86e60ceb, 0xe3c61b8d, 0xe755fa45, 0x3ee50d35, | ||
3334 | 0xf5edc3ae, 0x10ed09be, 0x5d668f98, 0x6d0a8ce9, 0x5b46acb9, 0xf733afd6, | ||
3335 | 0x3b3908a5, 0x7e400d80, 0x19229adb, 0xf944ff89, 0x5791d674, 0xefae0a03, | ||
3336 | 0x194b6d74, 0x0747eb4a, 0x295ca1a1, 0xf9dca9bb, 0xe6a81cdc, 0xc78c07fb, | ||
3337 | 0x25cf895b, 0x26e5dfe2, 0xe310bda7, 0x0fdc5529, 0x35cf819e, 0x7d7806eb, | ||
3338 | 0xcb5dcb2a, 0xfee14d7f, 0x6b9b72da, 0xc12dc531, 0xc13cc54f, 0x98d3a358, | ||
3339 | 0x307c4790, 0x7b3c922d, 0xabffd05b, 0x8c15b40c, 0x25121fab, 0xe4dfa5e0, | ||
3340 | 0xcf8c3e1e, 0xb963fbf5, 0xfd53e317, 0x0aef000a, 0x779e05ca, 0xaef2209d, | ||
3341 | 0xb33e8037, 0x5c9fb5c1, 0xc7f48d3f, 0x176e66d5, 0x2aac7c8b, 0x6b8f9c4f, | ||
3342 | 0x7a13b1f3, 0xe50cf81e, 0xd61b0dce, 0xdb99ff92, 0x1ebf99c7, 0x8d9f77c6, | ||
3343 | 0xddbeffbf, 0xcea98fdc, 0x35f24fdb, 0xf4f229d5, 0x36ce4269, 0xe7559c82, | ||
3344 | 0x454df80f, 0x64fe87b9, 0x37bd1e49, 0x87bd73bd, 0x14a4e493, 0x1cf86318, | ||
3345 | 0x78aa57e4, 0x0a599def, 0x41652bc1, 0xcef384bd, 0x6865de62, 0x6819ff37, | ||
3346 | 0xd7abef0a, 0x533ebdaf, 0x56ebf491, 0x541d2067, 0xf58ab5a5, 0xdfcf5faa, | ||
3347 | 0xe7fe82fc, 0xf7d41ca2, 0xebe7d30f, 0xec4ced04, 0xf144b847, 0xde2e3540, | ||
3348 | 0xad917e9d, 0x30dc8d06, 0xf234a3d9, 0xad7f4265, 0xd0e899bc, 0x471b99ca, | ||
3349 | 0x9f3cd1f4, 0x79a01ce4, 0x40b8b93e, 0x1aea9e53, 0xcb7fa9ad, 0xd94d22b4, | ||
3350 | 0xa6bd7692, 0x49b94dbe, 0x7fee8e53, 0xac7ea6ab, 0x73cd36e3, 0x4ecf4bcb, | ||
3351 | 0x662e0093, 0x0dd5b7ab, 0xde03a870, 0xd2109118, 0xace2031b, 0xaa287eb4, | ||
3352 | 0x6c7e46c0, 0x004b60dd, 0x832ea4e9, 0xbcb0d3ef, 0x002d24b4, 0x6c7b58fd, | ||
3353 | 0xf5c216b7, 0x0c6f92f7, 0x62ac73c6, 0x7755f61d, 0xf95e8d33, 0x2be70665, | ||
3354 | 0xaa657af5, 0x5c1a687b, 0x9929b6f3, 0xf068048c, 0x358fc42a, 0x6bbb718a, | ||
3355 | 0x7437df17, 0x91cfea35, 0x64967ea1, 0xc54a0e15, 0xaf3b7776, 0x91b3bf23, | ||
3356 | 0xbd42fbd9, 0x91bf62cd, 0xda999777, 0x1ab635e5, 0xfdfc619c, 0x0f2e5487, | ||
3357 | 0xb98d721e, 0x32f8898e, 0x0deac3ea, 0xf7e8cdc7, 0x689bfb57, 0xd720e1dd, | ||
3358 | 0x16f7da71, 0x9af42fba, 0xd70a23b1, 0x1f553d3d, 0xc2e23d79, 0x6bcd3354, | ||
3359 | 0x65e390bf, 0x7f61644b, 0x2aa4f8f3, 0x7676cb97, 0x1b8c6404, 0x93e36954, | ||
3360 | 0xf20d397a, 0xded76359, 0x7140223a, 0x11d3900d, 0x0f5545fd, 0x3cd6dc80, | ||
3361 | 0x3af6859f, 0x7943275f, 0x9ae39023, 0x4553d3e7, 0xcb006b3c, 0x6fc275c3, | ||
3362 | 0xe7110cb8, 0x1e0cdbf7, 0x5dc37ebf, 0x087f7044, 0xc21216e3, 0x0e2f0f53, | ||
3363 | 0x69c1cbc7, 0x15bf9a87, 0x7bd7d2f8, 0x6be3832a, 0x3a723747, 0xceedca90, | ||
3364 | 0x1f3052cd, 0x15c7a885, 0x033af445, 0x2014a5d7, 0x0ab6fe1e, 0x67b2a8fd, | ||
3365 | 0xf4fa8625, 0xd12f4daf, 0xae33263a, 0xa438c24f, 0x6954bf58, 0x7fa19652, | ||
3366 | 0x40e0f400, 0x31baa6fb, 0xaaafe340, 0xfbc2682f, 0xce3c8d55, 0xf1e069e2, | ||
3367 | 0x4ad66acb, 0x6ee6dd7e, 0x2a6f75c6, 0x5207efa7, 0xc7bf1a15, 0xbd44ef0d, | ||
3368 | 0xf9f160de, 0x2b7fc424, 0x76ca57c5, 0x941d6c4b, 0x4eb6af37, 0x3d2f648b, | ||
3369 | 0xe2fde02f, 0xf5c3336a, 0x1ed095e6, 0x6b3fb1e7, 0x3be319bf, 0xca253b65, | ||
3370 | 0x5bea7867, 0xd6be62a6, 0xd0c4d8b3, 0x77c7508e, 0x7e482b26, 0x84739be4, | ||
3371 | 0xc787391f, 0xcc5cde2d, 0xee790fed, 0x9d57147b, 0xc8fc255e, 0x0e281739, | ||
3372 | 0xf08566f4, 0xb8f2e723, 0xd43bf4c7, 0x8e968ebc, 0xd3d53a55, 0xf56e9e9f, | ||
3373 | 0xe955faf4, 0xa76a4773, 0xf508319d, 0x1c7be03a, 0x1fdef1fa, 0x4c27ca32, | ||
3374 | 0x426cd4bb, 0x2af7bf3f, 0x281ee3bb, 0x2b7d940f, 0x9ace5e31, 0x95c1f3f9, | ||
3375 | 0x5f2e249b, 0x3e715b94, 0x86667599, 0x020239fb, 0x53c4014f, 0x43a94e32, | ||
3376 | 0x357e468a, 0x1ca37b06, 0x0175c1ca, 0xc1a7c700, 0xf949dfcf, 0x065f2e25, | ||
3377 | 0x69b6973e, 0xd6bd184d, 0xcaa2b908, 0xe66601bd, 0x017189de, 0xc6067d63, | ||
3378 | 0xf8987717, 0xd16c963e, 0x1d3edf5f, 0xb5c127e3, 0x65ffbc4d, 0x7fcb5571, | ||
3379 | 0x94fe10c9, 0x75c11673, 0x5da3c8a2, 0x8a5034bf, 0x744ec8f3, 0x6f315307, | ||
3380 | 0x12a47d99, 0xef5d5af5, 0x1fd0f397, 0xabc3d751, 0x91e6f471, 0x13bc6c1f, | ||
3381 | 0x32bb6be6, 0xdb69f08a, 0xf48edeb3, 0x243beb6b, 0x57de5235, 0x2a2e7abd, | ||
3382 | 0x53fc0dcc, 0x5d37b17d, 0xbda4f2d5, 0x6dfd68a7, 0x78dcffb5, 0x698b8fe2, | ||
3383 | 0xf76d5f74, 0x81ee3127, 0xf32cff62, 0x065e9127, 0x911c6cb9, 0xc2a7aa1f, | ||
3384 | 0x68e75d41, 0xf085bbeb, 0x3c1de775, 0x7ad8c1bf, 0x654667ea, 0xfd0e548b, | ||
3385 | 0x9a7262dc, 0x47de0062, 0x709b4c7a, 0xd5d71732, 0xc1c1b8f3, 0xa5c52b5a, | ||
3386 | 0x53b5ad5e, 0x469b5839, 0x156bd7e5, 0xec915eba, 0x34e104fa, 0xbe9ac5f5, | ||
3387 | 0xace6b708, 0xa7985d87, 0x44d07b3c, 0xaecc60f0, 0xc17de7d9, 0xea3c532f, | ||
3388 | 0x5f5f0342, 0xe67f8ea2, 0x4ee60cc5, 0x8a6371e4, 0x0bfd2c57, 0xc54739c9, | ||
3389 | 0xf7e8f1b9, 0x5b6cae0c, 0xd2cf6585, 0xee9d694f, 0x282fa03b, 0xe3c8d1ef, | ||
3390 | 0x2d8d55a7, 0xf4b9ceb4, 0xb3f50262, 0x1e31d0c3, 0x82fbccf9, 0xde3beb44, | ||
3391 | 0x4e673c69, 0xd288fae5, 0x7c451b3a, 0x3c5a4879, 0x1fe3c1c1, 0xe5f8e06c, | ||
3392 | 0x8245d579, 0xfaae9a1e, 0xc3e21c47, 0xf5a154ba, 0x6407d522, 0x19acb38a, | ||
3393 | 0x8f6711d3, 0x6e317720, 0xde93eb8d, 0xf494eb12, 0xbd99a7cf, 0xc07d717d, | ||
3394 | 0xfde44334, 0x50b48ecf, 0x75d71f7e, 0xc7f53297, 0x3f83d7f7, 0xca88eb43, | ||
3395 | 0x8ca745fc, 0x6ef9ad78, 0x196acff2, 0xfdf0c1fd, 0x320fe806, 0x34bdfbcd, | ||
3396 | 0xae564b7e, 0x85d6ef26, 0x98335bfe, 0xaeaa7802, 0x20173003, 0xd7455f9d, | ||
3397 | 0x2af7ddf6, 0xa8d637c8, 0x2f51878e, 0xf2067eb0, 0x5abcaa27, 0xe84b273b, | ||
3398 | 0xee0cacad, 0x89a7173f, 0x2fc2b2fd, 0x4267ff02, 0xe27ff71a, 0x5f8d32f6, | ||
3399 | 0x7e4fbfa4, 0xc7ec5591, 0x7978001e, 0xafb8c23a, 0xc2e318cc, 0x1d6cd976, | ||
3400 | 0xfa0337d1, 0xcfd2ba46, 0x1f1a4673, 0xd3cfca97, 0x28f39f91, 0xacfc4ece, | ||
3401 | 0x464877ef, 0xcfb40ce1, 0x5fb37756, 0xefc12aeb, 0xc1181b55, 0x8121b3cb, | ||
3402 | 0x6d8674e0, 0x7a018d70, 0xd8e3033c, 0xd678f40c, 0x878e8ae5, 0xaedd67f6, | ||
3403 | 0x109884e8, 0x886f57ff, 0x73ab76a2, 0x872c4a6f, 0xf7a08d72, 0x2b22c6f6, | ||
3404 | 0x06e679c2, 0xfbea77ce, 0x4f4c09de, 0x6a1a3e44, 0xde6330ea, 0x2dbfa7ae, | ||
3405 | 0xa1bbed0e, 0x222727bb, 0x4e3775ff, 0x779f3a77, 0xb445d2d5, 0xb87f155e, | ||
3406 | 0xd0a1627e, 0x3a7b9e63, 0xd57ca11e, 0xdbf44652, 0xd5afebb4, 0xfeedbfc8, | ||
3407 | 0x9e6bca68, 0x7a4d13d9, 0x3cd3ecf0, 0xd4c679af, 0xaa60eb4a, 0xf476cb77, | ||
3408 | 0x7c2f3d07, 0x9ff230fc, 0xa1459767, 0xdeffbd78, 0xb6aeb873, 0xad1d7fd2, | ||
3409 | 0xfedca8c3, 0xd541f2dd, 0xfec8bbd2, 0xd71fcb51, 0x37285d5a, 0x2e5c8ddb, | ||
3410 | 0x867c6c2c, 0x9785d9ec, 0xfcc20c2e, 0xff3d99ef, 0x98e50c3d, 0x86178fe7, | ||
3411 | 0xe7ec3ed1, 0xe7c30c2f, 0x6ba2e79e, 0xef25d922, 0x8e38f066, 0x0e731faa, | ||
3412 | 0x9ef13519, 0x73fe8209, 0xc62bac56, 0xb6864d73, 0xaf84714c, 0xd7da1b1b, | ||
3413 | 0x8617fb40, 0x389b1e1e, 0x8addac37, 0x392fdf20, 0xf46c65a4, 0x747a309c, | ||
3414 | 0xb8d49866, 0xd38ad7d1, 0xa11fb130, 0x34132e33, 0xd5843ed0, 0x6f3f2341, | ||
3415 | 0xa1f242a0, 0x8a7600ff, 0x4bd91dbe, 0xe44f6f67, 0x5d1832e7, 0x1d220613, | ||
3416 | 0xf697dedc, 0x75af3387, 0x3d986e5f, 0xa0683d34, 0xfcd3ddf5, 0xefd90096, | ||
3417 | 0xefad2341, 0x99a4ed56, 0xcd883ee7, 0x5dc42291, 0x0e3ebffa, 0xfe3eb6e5, | ||
3418 | 0x6ec6b3d2, 0x2fef0898, 0x08ecc15d, 0x063c7d3f, 0xfb9db17e, 0xf8d75992, | ||
3419 | 0xd07c128c, 0x5c95ed8a, 0xa7c71d83, 0xb78899da, 0x3efc0886, 0xb3f39d2d, | ||
3420 | 0x822b47ca, 0x8ac7c206, 0x2e6b18e0, 0xe789275c, 0x7136a00d, 0xff0ae8df, | ||
3421 | 0x1f18ade4, 0x96e97158, 0x9ef081e8, 0x626e8715, 0xdbbf20f7, 0x62fb58c7, | ||
3422 | 0xb7df4bbb, 0xd10bcd4e, 0x4a7dfe89, 0x2127d73a, 0x7eb2207b, 0xfbfc178b, | ||
3423 | 0xd8b9e95d, 0x3d6cfff4, 0x52757e07, 0xabf250fa, 0x07b8f067, 0xfaf5abf7, | ||
3424 | 0x6abb9541, 0x7e04e3bf, 0x53ddcabb, 0xff80bf64, 0x5c77724b, 0x7af542ba, | ||
3425 | 0x922527fa, 0x4a687c5f, 0xb5d312a2, 0x87463eff, 0x6baf2121, 0xe69daaff, | ||
3426 | 0x59f73af1, 0xf2717fd1, 0x8a6796fc, 0x90a493e4, 0x4971e75d, 0xa9649f7c, | ||
3427 | 0xd4f587c9, 0xf0a70571, 0xa754e9b8, 0xaa86f289, 0x87daa7fd, 0x3c1dcf9d, | ||
3428 | 0x8bdaa8af, 0x74185daa, 0x94ec38f1, 0x15f9fc21, 0x106beec9, 0xf588ef5e, | ||
3429 | 0xf247432d, 0xf6b98cfb, 0xcb747fa1, 0x7e2312cd, 0x4aa2f617, 0x527b7a9f, | ||
3430 | 0x1ddf6f5d, 0xba0a371e, 0x5b2bf954, 0x9eaa17c7, 0xba7a11aa, 0x2274f51a, | ||
3431 | 0x34cfe9ea, 0x5fbeb776, 0xf4aed3d0, 0x08c76c64, 0x1b0e43be, 0xeefc915d, | ||
3432 | 0x375fa213, 0x3dae0fe2, 0xe2162f83, 0x7058b378, 0xdd8bfa19, 0xb0974fe9, | ||
3433 | 0x5e7bba63, 0x5f9fc693, 0x08d78f8e, 0x7c577ffc, 0x9c3feabc, 0xbeed3b8f, | ||
3434 | 0xba23ce6e, 0x7ef0a332, 0xb928dba4, 0x7c885826, 0xc51367f7, 0x4af5f5c9, | ||
3435 | 0xff063e85, 0xfbbf4355, 0xf406ccb2, 0xdc153c77, 0x578bafff, 0xe4bf235e, | ||
3436 | 0xd5d69925, 0x0eff042c, 0x1705b3ed, 0x44ad74ed, 0x33ae183b, 0xfe50b5b6, | ||
3437 | 0x76854660, 0x831875fc, 0xe477f6c5, 0x32fc7ad0, 0x44e29636, 0x3b78fe65, | ||
3438 | 0x4baf23ee, 0x86f5a7ae, 0xb2b2adde, 0xedfebc35, 0x8f2b7d6a, 0xf74d2d9b, | ||
3439 | 0x6b79e72d, 0xab2fbe8d, 0x5af3dbd1, 0xc45a3ffd, 0x03b3ba7d, 0x71b26f9e, | ||
3440 | 0x26407279, 0x78c6aefe, 0x998cd5d1, 0x4bd5f5d5, 0xdaa39c79, 0x23f68cbf, | ||
3441 | 0x1fe78957, 0x4714831a, 0x5417fca2, 0x9f5fe53d, 0x9cc87c82, 0xd54f7cda, | ||
3442 | 0x2724c396, 0x849f79f5, 0x3c8f2e06, 0xf3c8b295, 0x7d68930c, 0xa7d8a363, | ||
3443 | 0x223728aa, 0xcc5c61dc, 0x863ee0a7, 0xce3fe413, 0xf325fdd8, 0x17f84e3c, | ||
3444 | 0x7fb3cf31, 0xf972a65f, 0x63754f3c, 0x84fd098b, 0xde7be5cb, 0xc38cef49, | ||
3445 | 0x97b09c50, 0x7b5fc791, 0xc63b25f9, 0xf5897a97, 0x4757c37e, 0xc77ff5f1, | ||
3446 | 0xdf2224e6, 0x9f6978ab, 0xfed9e1c4, 0xd88527e6, 0xa331d86e, 0x3e11d71d, | ||
3447 | 0xbfe2e6ff, 0xad32f264, 0x6c7f18d3, 0x25fa3471, 0x4516c7ed, 0x879f3c23, | ||
3448 | 0xb9e3e22b, 0xe3118c37, 0x78a1e589, 0x7bd205f2, 0xb2788b77, 0x6c5ef411, | ||
3449 | 0x6fa32e28, 0xd72153f7, 0x8adf30ea, 0xe79bb974, 0xddd2ebfd, 0x57f953d7, | ||
3450 | 0x13ff69bd, 0xbcc279c3, 0xc63a019e, 0x9800cfb8, 0x9f95e62c, 0x302b628c, | ||
3451 | 0xec9753cf, 0xe6f8997e, 0xf9050657, 0x7e53da06, 0x2153bbc8, 0x55a1883d, | ||
3452 | 0x020cc3cc, 0x7da563dd, 0x8f944979, 0x2fe04ab9, 0xf452fc1d, 0x5334610f, | ||
3453 | 0x403c8f30, 0x450663e4, 0x7ff62331, 0xe6bdc99f, 0x34ffcc4a, 0x88cb1d19, | ||
3454 | 0x93891de8, 0x85e6bb62, 0x77cf2724, 0x3521f9ab, 0x7e5dddef, 0x0cf7c248, | ||
3455 | 0xf945f4e2, 0x3094e620, 0x81e6ae1f, 0x4a2ecdd8, 0x511f2d4e, 0x7967e743, | ||
3456 | 0x9d37d8b2, 0x8b4a29ff, 0xa5719f90, 0x6bef6131, 0xfa6b81f3, 0xfa744d3f, | ||
3457 | 0x6b80f355, 0x71e9bfd2, 0xd5efdc2b, 0xfc487b8d, 0xa3f214f9, 0x3a77f9fe, | ||
3458 | 0xffb560b7, 0xb3bde902, 0x0e71161d, 0x938f2b45, 0x2f144dfb, 0x58fe0b38, | ||
3459 | 0xdd3e9872, 0xddfbc69e, 0xfa222feb, 0x8d8e086f, 0xc487fac6, 0xa687d5fd, | ||
3460 | 0xde7b464c, 0xfa3a341b, 0x7fb848d2, 0x0e3410d5, 0x1be4fb45, 0x7a694bc4, | ||
3461 | 0xa359f984, 0xf3d23eb8, 0xbfe09c51, 0xe70e0cb8, 0x5fb937a2, 0xf3cc59e5, | ||
3462 | 0x1d75761f, 0x73cf0d70, 0x914acfef, 0x6a77f8d4, 0x6ec8fca4, 0xecbd2ebe, | ||
3463 | 0x2df68976, 0xc8fcd97f, 0x7fb6c68c, 0x8fa23f2b, 0x219ddf3b, 0x790322f2, | ||
3464 | 0xdd23b9dc, 0xa84bf34e, 0xfb885c19, 0x7ef9d49e, 0x901f7083, 0x43e6edf9, | ||
3465 | 0xedf9efaf, 0x352fdff6, 0x837cdd02, 0xcb7d97fd, 0x96fc2ffd, 0xf52fbffb, | ||
3466 | 0xdb7f85db, 0xcbffdcb7, 0x8fff72df, 0xff07d244, 0xf5ebe6af, 0xfe7d78f9, | ||
3467 | 0xb7979f5e, 0x8bd734bc, 0xd695eecf, 0x6ae00476, 0x4d35db8d, 0x8c687902, | ||
3468 | 0xbd4562df, 0xe7923259, 0xb58f56af, 0xa14936fa, 0xaf0abe3c, 0x3fdc5991, | ||
3469 | 0xf39de7b3, 0x6ce356e2, 0x226c7067, 0x3246bbc6, 0xdacf6ff2, 0x198b1e78, | ||
3470 | 0xd798e9ed, 0x37e99a82, 0x67521d81, 0x7d079c8b, 0xf7f0a7af, 0x4b1bd1ba, | ||
3471 | 0xc8af0ab2, 0xfed5a64c, 0x59f648ce, 0xdb2f88ad, 0x17c5191b, 0xbf495199, | ||
3472 | 0xa4abde89, 0xe3d3fda3, 0x2e3f7e45, 0x689b9cc0, 0x4dce4a5c, 0x928f6e74, | ||
3473 | 0x407be383, 0xae1367e4, 0xf18397ef, 0x03b004e4, 0x1eb78f31, 0xa7e479f3, | ||
3474 | 0xfa9ea9da, 0xdc99ddbe, 0xc4c07a4f, 0xef305ce8, 0x11dd7c95, 0xbd9156b3, | ||
3475 | 0x0ee1e6a6, 0xcb27029a, 0x8dc3ca25, 0x62bff1c1, 0xce6de408, 0x449c4411, | ||
3476 | 0x3f296dfb, 0xdfc8eaf8, 0x7bd377f5, 0x86fecd14, 0x6187f466, 0x29ee771c, | ||
3477 | 0xb19dfa20, 0x6fed2477, 0x091ae4f0, 0x46fc5dce, 0x43780711, 0x38d431c4, | ||
3478 | 0x7a8f9a80, 0xde3fc45b, 0x3f4ab8c1, 0xa1584f3c, 0xc34caceb, 0x5a9e77bf, | ||
3479 | 0x159cfe57, 0x203d3f49, 0xf78fb8f1, 0x29f71e15, 0x84fa3b30, 0xccac7faf, | ||
3480 | 0x0f2c78e4, 0x1a83bcf0, 0xcc4279c7, 0x7287e0a7, 0x687602c0, 0x6681aac1, | ||
3481 | 0xab05ebd4, 0x3af0a2b2, 0xa433e9c8, 0xcfa7bc00, 0xf15069d9, 0xee8e8917, | ||
3482 | 0x89f114ca, 0x8f941d03, 0x9797467b, 0xd7c99ddf, 0x7165e41b, 0x64ceeefc, | ||
3483 | 0xafb3be54, 0x8b9a3971, 0xcbb1ae3d, 0x6541f291, 0x38e2f7e0, 0xb8f8ebcb, | ||
3484 | 0x05977855, 0x4f7c2294, 0x558ebedb, 0xc8afcd78, 0x79b8a229, 0xb455b9e5, | ||
3485 | 0x85d2e9bf, 0x1c52d7fd, 0xffa0accc, 0x1b55b330, 0xc5909b4f, 0xa0cfe7e3, | ||
3486 | 0xbb708dc1, 0x6ffe48ce, 0xa24675c1, 0x1b32849f, 0x2609a7f9, 0x7960c726, | ||
3487 | 0xf283b712, 0xb08a938b, 0x93c4a6cc, 0x407f97fd, 0x179b9f89, 0x5c256f8a, | ||
3488 | 0xe11938b7, 0xa8bcb974, 0x22bb271a, 0xa44bf9d9, 0x179aafdf, 0x88783aad, | ||
3489 | 0xf3aa7bd6, 0xe6a2e152, 0x8bcbbb37, 0x3c12ebaa, 0xd6689fc5, 0x1d8c7851, | ||
3490 | 0x58ae31e3, 0xaccda7b0, 0xcb4b37ee, 0x0b4de509, 0x7ca39f76, 0xf51f9aa9, | ||
3491 | 0x3b239cd4, 0xb199da1a, 0x3fa0017d, 0x4364e41d, 0xee9bcf2d, 0x1a7bfb12, | ||
3492 | 0xae78fe61, 0xfe601ff6, 0xfcc3f578, 0xb50bfef1, 0xa81ae9fd, 0x6f75d075, | ||
3493 | 0x7aba08ed, 0xcf28e7fc, 0x36a642fa, 0x8f99d75f, 0x084d5d93, 0x1d7cb0af, | ||
3494 | 0x3af9f595, 0x63c78a39, 0xee303f70, 0xb41cf21f, 0xf42efc92, 0x7f42f797, | ||
3495 | 0xee2d6fe0, 0x6aee385e, 0xd18597cc, 0x61d3bb45, 0xdb6c73c3, 0xe61b0e5d, | ||
3496 | 0x4e9a0ac9, 0x6a847ed1, 0x15ce9063, 0xa6073ce8, 0x775f1ce1, 0x21b42feb, | ||
3497 | 0xd79b2f7c, 0x79fffc6a, 0xd7932fad, 0x32f905ba, 0xf23f2439, 0x26e7065d, | ||
3498 | 0xda701ebc, 0x87c986e6, 0x179e2ed5, 0x9bdb9d59, 0x5741eff8, 0x6139f8ef, | ||
3499 | 0xe628adfd, 0xeb848a71, 0xf7e16d72, 0x79e2c89f, 0xb98904ac, 0xe4b1c922, | ||
3500 | 0xbcb8df9e, 0xef648e4e, 0xf402bfb7, 0xc3d03578, 0x5abdf9ee, 0x71b4ae89, | ||
3501 | 0x73c5d5b6, 0xdbb9e17a, 0xac2c37de, 0x69c38f2f, 0x974c6ce2, 0xde2eeb4f, | ||
3502 | 0x40d8a336, 0x7bc2e2e7, 0xeb5f51b3, 0xd8cc62e3, 0xb9f5cd91, 0xe4739c53, | ||
3503 | 0x582364cd, 0x5bdabc97, 0x173877cc, 0x362f4fea, 0xf3509e90, 0x46c5f96b, | ||
3504 | 0x99f40b56, 0xa3e4d4bf, 0xb1b15abc, 0xff0b9e8d, 0x3f3d8570, 0x3bc9e513, | ||
3505 | 0x8c76cd07, 0x60e3e9a3, 0x752de28e, 0xa3bda1bd, 0x6d7da252, 0x373fd65d, | ||
3506 | 0xf8c38d36, 0xaeb660d9, 0x1bd42c6e, 0xe3b06b9c, 0xe5cbe57a, 0x3d85f2e1, | ||
3507 | 0x219f8fa3, 0xa1fda15d, 0x2f5fa38f, 0xb0bd7ef0, 0xbf43ee97, 0x8fd43932, | ||
3508 | 0x2f4f4eda, 0xbe94f68f, 0xbf7f2e30, 0x71456fe8, 0xc45ceafe, 0xa1818967, | ||
3509 | 0x3c5158de, 0xd61b9ac6, 0x234f595f, 0x7986af5f, 0xbcf0a4bd, 0xe9dfcf1e, | ||
3510 | 0x3caa79f3, 0x8cfa682b, 0x083efff6, 0x95f51972, 0xffc78d27, 0x3c285e0b, | ||
3511 | 0x34227280, 0x1f9fae4e, 0x37bf534c, 0x7c6788e0, 0xd14fb45e, 0xb8a247bb, | ||
3512 | 0x27c97e5b, 0xcca1a37b, 0x7fb4f15c, 0x773073de, 0xef939e39, 0xc50e3129, | ||
3513 | 0x971e3afd, 0xc22799d4, 0xd7e4d07c, 0xf5c7ae2a, 0x075305fc, 0xa67e20b7, | ||
3514 | 0x9d689a96, 0xa6d7e4de, 0xaae539d1, 0xba982b9e, 0x7c289ee9, 0xf3a25fde, | ||
3515 | 0x56bf261a, 0x4f9f063c, 0x88c01ed8, 0xb3889b38, 0x3c193907, 0x7c88d278, | ||
3516 | 0xfbb24572, 0x0537c827, 0xa89e4493, 0xa9e3eb94, 0xc62649fe, 0x7e8d46ed, | ||
3517 | 0x1bface6c, 0xf3d479c5, 0x7d711204, 0x2f485e42, 0x7d01ec15, 0x57d21b15, | ||
3518 | 0x7a9eaeff, 0xe09da7b4, 0x2be83579, 0x24c24f1c, 0x62ef4f9e, 0x77fc08bf, | ||
3519 | 0x93ba7fa7, 0xc467a8bb, 0x529983f9, 0xad7d575a, 0x38673c60, 0x9d12e5da, | ||
3520 | 0xfd1dd683, 0xcfec26bd, 0xb6ec6ef8, 0x76fd04d7, 0xf1a9aebb, 0xfd13c9bb, | ||
3521 | 0x787fe7b9, 0x57f8489e, 0xf548be6a, 0x7b09fac7, 0x215ebd57, 0x7b7fbbfc, | ||
3522 | 0xd12a013f, 0x1209fb88, 0x9827ef22, 0xbda12f59, 0xd827eea4, 0x3b856667, | ||
3523 | 0xab3d7093, 0x73e44fd8, 0xefb41d91, 0x7aad6fd7, 0x7bce893c, 0xa0cc6dc0, | ||
3524 | 0x9f485af7, 0x43fd8157, 0x63ff92f6, 0xe7ad3f1e, 0x1aabb1eb, 0xd496fbb5, | ||
3525 | 0x5f616ceb, 0x50f9858f, 0x77ac459e, 0x91ce2f1d, 0xef21c508, 0x21c78632, | ||
3526 | 0x59304a3d, 0xe3eb475d, 0x5c4d1779, 0x6438bbb2, 0x75a0eb35, 0x9215d5b3, | ||
3527 | 0xb7c3f503, 0x91ec971d, 0xddaf5da5, 0x83cb9327, 0x42496e69, 0x706ad5fb, | ||
3528 | 0xf8bad255, 0x6c7ef817, 0x66fa7c3d, 0x413c7971, 0x331e31e4, 0x6c787a73, | ||
3529 | 0x5bfb4494, 0xe21c1f70, 0xf817b1f9, 0xf2c7973e, 0x35173ef9, 0x5feea16f, | ||
3530 | 0xb79432b9, 0xea6ffda0, 0x1f7517be, 0x780fba8b, 0x00a886d2, 0x99f707da, | ||
3531 | 0x1db8d3ea, 0x3c3a25eb, 0xf3d193dc, 0x6f3f0b28, 0xf8ce3f5d, 0x28c3c2ac, | ||
3532 | 0xf37f0f87, 0xac88d176, 0x25a67108, 0xaffc2fc2, 0x98fb2eac, 0x30bffb54, | ||
3533 | 0xfec6a86b, 0xfedeb2a7, 0x16f2a6ff, 0x6f9f0141, 0x32abde70, 0xe6f8ddbf, | ||
3534 | 0xfc72df67, 0x7b247cfa, 0x4b88b976, 0xd9e7e9e9, 0x68bf552c, 0xbac34bbf, | ||
3535 | 0xfae43fec, 0x8e524ebb, 0x2f6bb9d2, 0x542573f1, 0xcb175a39, 0xe4215ffb, | ||
3536 | 0x547d7aa7, 0x914ceb5c, 0x884f5fe3, 0xe764b3e7, 0x0193a472, 0xc8f1b4db, | ||
3537 | 0x78daf581, 0x098dd5e4, 0x40e0f29a, 0xc17ea686, 0xe79ade81, 0x69578343, | ||
3538 | 0x237f0f9e, 0xd91e535f, 0x7f534a3a, 0xb46387f4, 0x68755ae7, 0x5ed791e3, | ||
3539 | 0x2fb749bc, 0x2bf047d2, 0x6f0dca04, 0xad9d6457, 0xa15997a9, 0x8d56579d, | ||
3540 | 0x96bd5e76, 0x2fcee826, 0x78e6fde1, 0x53ebf3b5, 0x025f9da7, 0xbef2d3e6, | ||
3541 | 0xd4cd3e7e, 0xecf7a153, 0x61b1f7f5, 0x738a07bb, 0xa99f686d, 0xc1db99fb, | ||
3542 | 0x6411786e, 0xffb69fdf, 0x9cd7d696, 0x06eda279, 0x79e6cf3a, 0x0379e199, | ||
3543 | 0x5963dbed, 0xa3e3de80, 0x34162873, 0x661ef4c8, 0x1c9b0c0c, 0x9d1afe76, | ||
3544 | 0xe9f28f4c, 0x911258a9, 0xf8b69e0b, 0x82fda04a, 0xe106275d, 0x7bf692fe, | ||
3545 | 0xfbcb3e78, 0x31f14484, 0x841d6de6, 0x60584bdf, 0xa89dfc8c, 0xbcb8b2d7, | ||
3546 | 0x9a3bbd3b, 0xdb49ebd6, 0xbf52669a, 0x3098b7f5, 0xdbd6a69f, 0xa849fc2f, | ||
3547 | 0x3d3df7c7, 0x5e77d12e, 0x71e17c70, 0x27bbf54d, 0xfae71fa7, 0x89a3416f, | ||
3548 | 0xb059efce, 0x9e3b676d, 0x0de0bd57, 0xe65b9d0b, 0xf48e76d9, 0x3b53d16a, | ||
3549 | 0x469ece08, 0xd5a8bd99, 0x8273da57, 0x5db8f1b7, 0xe9154375, 0xff932841, | ||
3550 | 0xf91f5d55, 0x9dcbecbc, 0xa9f0bb67, 0x00bcbb3d, 0xfccf85c2, 0x1ee30e2e, | ||
3551 | 0xc6b7051f, 0xedbedf91, 0xeee9cf8b, 0xfd702e72, 0x173c2fea, 0x03fc23f8, | ||
3552 | 0x2cc5cbe4, 0xdbcab9dd, 0xa9f7c512, 0xf7c2c302, 0xe8e087f9, 0xf1de78e5, | ||
3553 | 0x6e7823e9, 0x3fa7e9fd, 0x5bc7047e, 0x8f0baff9, 0xadf498fc, 0xc3728ecd, | ||
3554 | 0x3a61c4f3, 0x976d5bf7, 0x40e5cd90, 0xa3bfe3fb, 0xdfdbd2f3, 0xb7b038b4, | ||
3555 | 0x641f3df6, 0xefb77d23, 0xe3052cfc, 0x8cf78b5c, 0xe2f078a3, 0xf0be8b67, | ||
3556 | 0xb7486b7b, 0xe3e17ebe, 0x3e7375f2, 0xcd5f16b1, 0x38d9cd0d, 0x6f8033ce, | ||
3557 | 0x9e75f38c, 0xc55f5cf3, 0xc456cdcf, 0x23dbcef9, 0xe5df8b9f, 0xc986e73c, | ||
3558 | 0xed0f7e37, 0x2e7e069e, 0x75cf65cc, 0xbc78043e, 0x6fe04bfa, 0xbe716afb, | ||
3559 | 0x9dfc6449, 0x4f003fc1, 0xb9ed6c8e, 0xcc369fce, 0xf8d7f47d, 0xdbb121ac, | ||
3560 | 0x5f039d73, 0xb9ea6e02, 0x72ccfffb, 0x3e46ce8e, 0x74f7fa7c, 0xade2368e, | ||
3561 | 0x3a73c144, 0x7f46cd3e, 0x075343ee, 0xb1d72b9d, 0xefc762c7, 0x73d82d37, | ||
3562 | 0xfda7f894, 0x64b71e59, 0x76fbfce2, 0xe7e3f9d6, 0x8a988b95, 0x3f2c4b67, | ||
3563 | 0x1fc05a0f, 0xe2568bcf, 0x1738bee8, 0x7ab1d39a, 0xe777745e, 0xeeca2f44, | ||
3564 | 0xf89cf5cd, 0x96d5401e, 0x9fb99abf, 0x3497c21a, 0x7fe9f682, 0x2adbf9e1, | ||
3565 | 0xbfc2ec1c, 0x96dbc4eb, 0x7771e7c8, 0xf02f8f9e, 0x73c3f885, 0x35cf3a3c, | ||
3566 | 0x5435f287, 0x08b28e96, 0x137da0f2, 0xbdbd2f3f, 0xeea9fd1b, 0xd6caaa0f, | ||
3567 | 0x6798a9f1, 0xf2a1fc77, 0xffc6e5e9, 0x3333e155, 0x8bd0d15b, 0x97d3a70a, | ||
3568 | 0x75f1cb22, 0xb6bfef82, 0x62ece3fd, 0xf48fdcff, 0x66d0d558, 0x44d9fbe6, | ||
3569 | 0xf7cc547e, 0xf4dfd834, 0x6427a4fd, 0xd557e3b2, 0xd71c9337, 0x6eea8bcb, | ||
3570 | 0xb39b6df2, 0x7153bac5, 0xa7e9c14e, 0xefb87d63, 0xdddef4ea, 0xf6effd7c, | ||
3571 | 0xfa17b336, 0x19edbfdb, 0x721b8f33, 0xe13d41fe, 0xe9ff1b0b, 0x91069b27, | ||
3572 | 0xdd66eedc, 0x8f78bd77, 0x3df91fc7, 0x34e7ed9e, 0xade859ef, 0x72efff27, | ||
3573 | 0xe8c8fbef, 0xfbfb05bc, 0x3bf7c828, 0x4ffb847e, 0x17ffbc23, 0x176126d9, | ||
3574 | 0x22eb13ae, 0x3f03de41, 0x9ee02bbf, 0x3cf5cbd6, 0x9d1999c2, 0xe3be1083, | ||
3575 | 0x2725917e, 0xaf979f01, 0x7fa8ec95, 0x4c18af67, 0x9ccf9274, 0x89652744, | ||
3576 | 0xfa937bfc, 0xe6cf1cf7, 0x1ab6fc7a, 0xc3fa4313, 0x280cded3, 0xb624eb7f, | ||
3577 | 0x3197fb86, 0xe7425313, 0x6ead56d1, 0x0abc2389, 0xef3d533f, 0x3e66a2b6, | ||
3578 | 0x39fd07c9, 0xdeac9538, 0x2d6fe78c, 0x2dcfcb58, 0xa38b9fd4, 0xcf5dab97, | ||
3579 | 0x85fb5a89, 0x956df672, 0x81cc1cef, 0x07e7377c, 0xd7e456b1, 0x4a68f0ae, | ||
3580 | 0xb3ca05be, 0x07a4c80f, 0x2eb0b854, 0xebcbfddf, 0x7f3cf881, 0x973f2fa0, | ||
3581 | 0xb152515c, 0x3c1e9cde, 0xdd19282e, 0x597ef1c3, 0x19b87ba2, 0xb19beae5, | ||
3582 | 0xb596c7b8, 0x7c50345d, 0x36595980, 0x59d9938e, 0x537db876, 0x60a7b26e, | ||
3583 | 0x16cbc4de, 0x58fc51a5, 0xeb0addff, 0x1eff20da, 0x157bf683, 0x5f9c8965, | ||
3584 | 0xeff3763a, 0x1e46b1ef, 0xeb32b6bf, 0x9c778c32, 0xe0a5d652, 0x95ae5411, | ||
3585 | 0xc53dfe26, 0x4714f1ed, 0x91456db8, 0xba5fcf19, 0xf69e21ad, 0x93af30b5, | ||
3586 | 0xe2a8cfbe, 0xc1456db1, 0xf7e834fe, 0x871cfab6, 0x269fc5ac, 0xaea0bc1e, | ||
3587 | 0xc9dbc54d, 0x64ede0cb, 0xbe01bc24, 0x7a13f734, 0xeec5f169, 0xe94cf6e6, | ||
3588 | 0x62fafb1d, 0x0d7ceefe, 0x77631eff, 0x340e92f2, 0x35c5094a, 0xe33a338b, | ||
3589 | 0xef4829b5, 0x250ed617, 0x55f1e9bc, 0xc3d9affc, 0x7b337f71, 0x05ce962b, | ||
3590 | 0x66c3eb2e, 0x6ff184dd, 0xd953f389, 0xa316262f, 0x8bd01ade, 0xb56bfdf3, | ||
3591 | 0x82d9fe3c, 0x787ecff1, 0xca9dba6e, 0xf3fc4587, 0xe13fc628, 0x3fc626fa, | ||
3592 | 0x7c527ae1, 0x33e5433f, 0xd7a20020, 0x7f38bdc1, 0x8925ee0d, 0x34e2ddf8, | ||
3593 | 0xff8a4bb4, 0x73f38b25, 0x61637d7e, 0xce878d0c, 0xa3fef9cb, 0x7bd1bebf, | ||
3594 | 0x3a37630d, 0x69b4f1b5, 0xb4f1b453, 0x663915f2, 0x736fd7f4, 0xa3d4d68d, | ||
3595 | 0x0f5abc88, 0x925e98ba, 0x337e79a8, 0xbfcc34be, 0xf0a5ee2f, 0x1f7147f8, | ||
3596 | 0x4b5bbd4d, 0x2a5bdfb5, 0xb3c668bf, 0x62dbd985, 0x26b3309f, 0x87bfc219, | ||
3597 | 0xf1ca4402, 0x3e6de762, 0x416e3a31, 0x60e4fc7a, 0x5e7284b2, 0xaf150f8f, | ||
3598 | 0x080037b3, 0x1b39dfa0, 0xbd97940c, 0x55e3b66b, 0xaeeccf3c, 0x7bf7f8a7, | ||
3599 | 0x467bae4e, 0x39805df3, 0xbf84994f, 0xa1fb2763, 0xf232c568, 0x607dca3b, | ||
3600 | 0xcb88022f, 0xa23ef45f, 0x467e3196, 0x0f91594b, 0x80bec90e, 0xe2727844, | ||
3601 | 0x4fbd83f7, 0x7e47eff0, 0x0ed86208, 0x2b7677fa, 0x1287c71f, 0x53e5815b, | ||
3602 | 0xfdfbb7b6, 0x6675e600, 0x0679bae2, 0x307c8dc4, 0xd3e2e499, 0x2cfa4332, | ||
3603 | 0xe744c3bd, 0x587ede39, 0x31f4efa6, 0xc5533f29, 0xd9cbe62b, 0x1dfe1613, | ||
3604 | 0x04a00e9b, 0x71f8b7a8, 0x8f9f7d0b, 0xcfcb0328, 0x11adf40e, 0xf2f48874, | ||
3605 | 0xc6733c61, 0xfe7960d3, 0x6496a3e0, 0x82119f5a, 0xce106f9b, 0xfae09bd7, | ||
3606 | 0xa3a02f51, 0x06f9e68f, 0x3bbafc91, 0x0f47f899, 0x2e6693df, 0xef48bc9f, | ||
3607 | 0xea2e4852, 0x26d996ed, 0xc7df7d07, 0xa3a486cb, 0x96b93a5c, 0xf40f477f, | ||
3608 | 0x3f5f1c4a, 0xabd134f3, 0x46939efa, 0xef8e3c65, 0xe90e5d64, 0x0ad6dbaf, | ||
3609 | 0x06f4137f, 0xfae3efaf, 0x46ecbd6a, 0x275bc3bb, 0xaf9db9b9, 0x4db78fa5, | ||
3610 | 0x688b9ede, 0xd68db1fd, 0x6809dcaf, 0x9dca3cc5, 0x2ec9533b, 0x5bec2998, | ||
3611 | 0x2ddbc696, 0x3b3a73b6, 0x0f4fa07f, 0xea7ad7dc, 0xea01e010, 0x75f3a7b4, | ||
3612 | 0xacc6a705, 0x3747861b, 0x1dec369d, 0xffb803f6, 0xfbef44f1, 0xc8dbc046, | ||
3613 | 0x5ee6f76c, 0xac329f18, 0x4473c6cd, 0xfc4fface, 0xf50fbf1c, 0x83930ed1, | ||
3614 | 0x97e974d8, 0x0c4ed3b3, 0xeb835d8d, 0xf2eb67c2, 0x3f042704, 0x5bf8293c, | ||
3615 | 0x8b6fcfd5, 0xa7036cf2, 0x2482f63f, 0x34c46bbe, 0x9e217872, 0xe4872a43, | ||
3616 | 0x2b872aa5, 0xc7fadd85, 0x3e6edc5e, 0x60a5d6c5, 0x4fa005bd, 0x3b3cfef1, | ||
3617 | 0xb72a4bb7, 0x7ee7eff1, 0x4c9c7c84, 0xf5c31a7d, 0xe4167cf2, 0xea014e7a, | ||
3618 | 0x77dd0949, 0xc0388b45, 0x409fbe3a, 0xb9e7f72f, 0xe06ffb7d, 0xa3003bfd, | ||
3619 | 0x7cffe45d, 0x8f1b1ae6, 0x3c6deb71, 0xff97ac9e, 0xb9b7e84c, 0x3d7a7de2, | ||
3620 | 0xbbe85730, 0x377d3ab9, 0xce8e71cf, 0x0edca91d, 0xb2b945ef, 0xc2efab4e, | ||
3621 | 0x9a44a9e6, 0x872f3ce7, 0x873f3cf7, 0x769d7bcb, 0x08fda30d, 0x3d59dc2a, | ||
3622 | 0x77b4d3fc, 0x791c61c5, 0xc33283fe, 0x78aa1cef, 0x823e66a8, 0xb02cc7f7, | ||
3623 | 0x8f18ed0a, 0x062e31bc, 0xa1f0ba70, 0x2dc7ecbf, 0xa06b944a, 0x7efef3f3, | ||
3624 | 0x9427b3bf, 0xa4b2f37b, 0x6f7efdfc, 0xd570aecf, 0x829bf1c3, 0x6ef9131b, | ||
3625 | 0x9863076a, 0x377f85bb, 0xc91eac3a, 0x0901fffb, 0x00d0a8f5, 0x0000d0a8, | ||
3626 | 0x00088b1f, 0x00000000, 0x3bedff00, 0xe5557469, 0x73dcfbb5, 0xe1dc8487, | ||
3627 | 0xc2040464, 0xc06e49b9, 0x612f4865, 0x1213d41e, 0xde0d4b22, 0x00c10580, | ||
3628 | 0x86120137, 0x7c07504c, 0x0040e3e2, 0xaa1a4583, 0xf50af8a5, 0x22d28342, | ||
3629 | 0xb04a0834, 0xc141170c, 0xd6de8ba7, 0xa44f7d6a, 0x40932861, 0xd2bb6a52, | ||
3630 | 0xf7b79457, 0x3b939df7, 0xed83a404, 0x58b593af, 0x9ef37efb, 0x77f7bdbf, | ||
3631 | 0x52015000, 0xaaa8e601, 0xd08eceb5, 0x092bd00c, 0x72c06e60, 0xd80e35b6, | ||
3632 | 0x37fc0ddf, 0xbb746b7f, 0x01e5e696, 0xf7473754, 0xa41c5fe3, 0xbfe6cc01, | ||
3633 | 0xff5616a1, 0xd845cc41, 0x766f3d12, 0xe890eadc, 0x556679a4, 0x086e17eb, | ||
3634 | 0xa1e6ca0c, 0x840cfada, 0x9f12a24d, 0x6e0f351b, 0xca7a01b8, 0x7773948e, | ||
3635 | 0xde0bc361, 0xc5c2221b, 0x002300c9, 0x5c78174a, 0x439c1cfe, 0x2186f77f, | ||
3636 | 0xb09e7468, 0x39cd23c0, 0x098a6584, 0x68c79cf0, 0xb1c6994f, 0x477f788d, | ||
3637 | 0x617c67e2, 0xc1864ef6, 0x15483f08, 0x3a6f3c54, 0xeba236e1, 0x71eb15be, | ||
3638 | 0xdf8841e7, 0x11f8137a, 0xcbbf5b9e, 0xfe3e47e9, 0x695dc5fe, 0x88772b04, | ||
3639 | 0x66084410, 0xdcf015bf, 0x2f65f582, 0x56fb833f, 0xdaf78d6c, 0x88e2bbb0, | ||
3640 | 0x3c7008bf, 0x252b7c0f, 0xe3d7971c, 0xe070c341, 0x71dd8445, 0x8428f23d, | ||
3641 | 0xdfd982fd, 0x513de68f, 0xd927efe1, 0xd187faa3, 0xf4cc4fbe, 0xee3f7cff, | ||
3642 | 0x04b6c4fb, 0x9248caaf, 0x44e1a682, 0x84041489, 0x7b7f0bd5, 0x04fc8cd2, | ||
3643 | 0x9e8f83f1, 0xf2b8014a, 0xb6c408ba, 0x817f24ec, 0xcfdc4a9c, 0x703d05eb, | ||
3644 | 0x5d29b89e, 0x22f6c4ca, 0xeff9ecec, 0x8d4ce7e7, 0x4fc4e59f, 0xd599e914, | ||
3645 | 0xf3a50e1f, 0xbe70374f, 0x4d99face, 0xf397a7e3, 0xe7e73573, 0x339f8d4c, | ||
3646 | 0x7e35788f, 0x4f892bca, 0x9f8d6af2, 0xeace1c0d, 0x3a7537c2, 0x4fc4f5e1, | ||
3647 | 0xa7155e6c, 0xa60f885c, 0x173f909a, 0x4f508a76, 0x12a80b6d, 0x4485c3da, | ||
3648 | 0xdf511250, 0x3f8d04ff, 0x7e610a0e, 0xe50ecdce, 0xd29e9106, 0xc49d47b5, | ||
3649 | 0x453bb9d7, 0x3f2c704e, 0x73eee941, 0xc81f9e44, 0x24d53c25, 0x087942df, | ||
3650 | 0x408aa5c0, 0xb7fbe12e, 0x825a7df2, 0x79e3e522, 0xde2dfbed, 0x36efc8cd, | ||
3651 | 0x85c01587, 0x8384f676, 0x227265c1, 0x3a81679b, 0x505f3c00, 0xf8845814, | ||
3652 | 0xdd3e50db, 0xb2159e90, 0x5905c6cc, 0x87ec5282, 0x7e13200d, 0x24288282, | ||
3653 | 0x1d2fed75, 0x3e462283, 0x814c3bb5, 0x67ff48cd, 0x3c80d0d6, 0xffaf187b, | ||
3654 | 0xe913b192, 0x03c835f8, 0xd252bce8, 0xccafc235, 0xfc8cd815, 0x6c4c0879, | ||
3655 | 0x0cc087df, 0x982708a5, 0xd8713541, 0xba224f60, 0x3fa85990, 0xf1bf35e3, | ||
3656 | 0x7410e1ed, 0xef82af21, 0x3fae7081, 0x73a55d30, 0xc14d0726, 0x1e0fe87e, | ||
3657 | 0x090f0732, 0xb2714d08, 0x7c73c245, 0x913c84e3, 0x660cb0e4, 0xf15decf8, | ||
3658 | 0x21f846db, 0x1326a5bd, 0x8129ebc7, 0x0a28f1d1, 0xdd32f89d, 0x8444470c, | ||
3659 | 0x4439e28f, 0x5904b4f7, 0x0816f365, 0xa30ccdde, 0x54df8614, 0x2881bf0d, | ||
3660 | 0x4bc87387, 0x0df76ddc, 0x3547d3d4, 0x069f707c, 0xf1cf5b27, 0x1edf9588, | ||
3661 | 0xad004f8d, 0xcd6be256, 0x227fef63, 0x71359d20, 0x49f920f6, 0x6e5cb168, | ||
3662 | 0x39f9afed, 0x48afe1e4, 0xc05f384e, 0xf4f90083, 0x04db06a8, 0xb87b3bb4, | ||
3663 | 0x1e0d21ff, 0xa5ace8d7, 0xde0bca36, 0xdc5b0212, 0x03e73fb7, 0xd3ad8939, | ||
3664 | 0x3b0347f7, 0x1026e34d, 0xed6bfc80, 0xb2562dfe, 0xbf5a79bf, 0xb22187ee, | ||
3665 | 0x5dacde2d, 0x169f912a, 0x41ba6fc0, 0x8b3edad0, 0x13dc2958, 0x7afb25ef, | ||
3666 | 0xa1ecdad4, 0x5e76277b, 0x5874df2c, 0xef53805c, 0x3e75f9a0, 0x03c03465, | ||
3667 | 0x0bdbd3df, 0xcbda0a7c, 0xe39de1a4, 0x8e164a8d, 0x8e7f177f, 0x7828e864, | ||
3668 | 0x452fc133, 0xd7253ede, 0xfce39685, 0x8a728f0a, 0xdcd39ffc, 0xa0fecc0a, | ||
3669 | 0x58bbf191, 0x28061324, 0x28a37d1c, 0xb858f911, 0x6c9e605b, 0xe636e8ea, | ||
3670 | 0x50f13a77, 0xd478619f, 0x76f413ec, 0x71bbc148, 0x36ceeeea, 0xb070a3c3, | ||
3671 | 0xf27c6a2b, 0x9f1a8868, 0x1be91d78, 0x6a71b5a9, 0xd194f488, 0x4a8d9ff1, | ||
3672 | 0x235b6c6f, 0x42dae3e6, 0x4ba74f3a, 0x65ffef0e, 0x835f19e0, 0x9d75d199, | ||
3673 | 0xcc5075f9, 0xba6101be, 0x91df665c, 0x5dff223f, 0xe2a48229, 0xfc5f1aba, | ||
3674 | 0x6117f26a, 0x3d181a7a, 0x8f9d78a1, 0xf1a37cd1, 0x06bfa442, 0x8d55f1f4, | ||
3675 | 0x67cdf20a, 0xd2af9cea, 0x3f3ab1fc, 0x337f7d70, 0x7d6c4973, 0x4686a6d2, | ||
3676 | 0x9fa61ed5, 0xbe18b3b5, 0x7c21ee49, 0x295fd339, 0xc42f48ff, 0x4ef906b3, | ||
3677 | 0x5ca74557, 0x5f8c75d5, 0x6d1131a1, 0xa62337c2, 0xff022ddd, 0x52fc11de, | ||
3678 | 0x59f949d7, 0x7cd2f811, 0x8b4a67c4, 0x127fbd10, 0xb4ddcf1f, 0x1d1d51ae, | ||
3679 | 0x90fc036e, 0x5e8227f1, 0x9d299fc6, 0x9be75ef2, 0x6ac7eb85, 0xfee019fc, | ||
3680 | 0x45e88fa1, 0x7d3972fa, 0xd2fd2881, 0x65bcaef5, 0x14b48aed, 0x2004b38a, | ||
3681 | 0x68f2c37a, 0xe7fc91f2, 0x9bff3a4b, 0x586f8442, 0xa13dbc1e, 0xa9bf3f59, | ||
3682 | 0x64abf491, 0x6f2f4eb7, 0xf70bf587, 0xbff216fb, 0xea7c7a21, 0x53f5e8f2, | ||
3683 | 0x667f73a0, 0xf53a5357, 0xfa43cf17, 0xbcfc69e6, 0x4853537f, 0xbf76fae5, | ||
3684 | 0x67ac353b, 0xad12b365, 0xed85bf74, 0x6be31b71, 0x93b8de27, 0xbc0fe380, | ||
3685 | 0x07c7cd1f, 0xb27b79ea, 0xc1af9b7b, 0x4d7ed91e, 0x7764e3e7, 0x7d72bd94, | ||
3686 | 0xc4fd1df9, 0x4024f37b, 0x161fbd94, 0x4487dba3, 0x437baf9d, 0xa750e58f, | ||
3687 | 0x1f5efe7e, 0xfc0fb7dd, 0x719f1a30, 0xc7bdbd36, 0x6fe91857, 0x5f1937d4, | ||
3688 | 0xf9f4fc74, 0xd7a25f45, 0xddaaf3c3, 0x729afa6f, 0x320cdee8, 0xc49a56ff, | ||
3689 | 0x71c75c21, 0xb56a47bc, 0xbf68a938, 0xbcd00be8, 0xc2cf416e, 0x873d309c, | ||
3690 | 0xff99169e, 0x8085eb56, 0x196cfd07, 0x04ba56c8, 0xa5628267, 0xcb90f5fb, | ||
3691 | 0x9c15e8b5, 0x7169f87f, 0x3df70051, 0xc59928b9, 0xadb81f9b, 0x5d87ff8c, | ||
3692 | 0x6366d37d, 0x0cc250fb, 0x0ef38cab, 0xc1963b3d, 0x7fe93bb7, 0x337a47d7, | ||
3693 | 0xc9a5ce2b, 0x97e65df9, 0xf6f0250e, 0xbedbf72a, 0xd5af28a5, 0xe7ed996e, | ||
3694 | 0x5ad2924f, 0x39e13f50, 0x09916c0b, 0x098fef4f, 0x6de7b2bf, 0xfc239f03, | ||
3695 | 0x4695de96, 0x41ff2ef2, 0x9c4f5149, 0xe2c2be57, 0xab5e7015, 0x7c274a49, | ||
3696 | 0x658dcffd, 0xb96b30fa, 0x18fbd506, 0x4fd5f83c, 0xcf749dea, 0x1c58146e, | ||
3697 | 0xcd17f773, 0xbb62e7ef, 0x4bd321b2, 0x30e81ea8, 0x9ce78481, 0x202fdf5e, | ||
3698 | 0x899dcaa2, 0x3c777baf, 0xbf340f9f, 0x7c7cbaf2, 0x2f9a60fc, 0xfe70cb4a, | ||
3699 | 0x7017ec39, 0x712adcfc, 0x397840b3, 0x2404dd1d, 0xc097dce9, 0x2b73f0ae, | ||
3700 | 0xb865816c, 0x7fbb69cf, 0x673a7afa, 0xd29605bd, 0x93d7413a, 0x4e5f198f, | ||
3701 | 0x3f5cba4b, 0xa1cfcc6e, 0x2dbd3679, 0xca9f2195, 0x157a9d4c, 0x2aefbc04, | ||
3702 | 0xb5fb7912, 0xb6f91f4d, 0x2f73fae0, 0xaaf163f5, 0x276ca19c, 0xa19d3d7d, | ||
3703 | 0x3ffb20ec, 0x462ed5f8, 0x3c4bfb5f, 0x51d03b6e, 0x111e569e, 0x315c5427, | ||
3704 | 0x68387d33, 0x7c231f95, 0x23eb760f, 0x6a2f2ca8, 0xf8a12e4e, 0xe28cf511, | ||
3705 | 0x45ebd46d, 0x1f126ebb, 0x2645ba36, 0x4ddf43af, 0xea472d1d, 0xf9867ab7, | ||
3706 | 0xde64e289, 0x6d6eea3e, 0x9cafd154, 0x33822db5, 0xfaf5e159, 0xe8aef9fe, | ||
3707 | 0x39983938, 0x81d128e1, 0xca30c679, 0xeb7cf453, 0x0733f533, 0xf533f1c9, | ||
3708 | 0xe3630653, 0x43a74ad4, 0xde7fe725, 0x1c9330e1, 0x9c979a4e, 0x62b938a3, | ||
3709 | 0xb9f985a3, 0x8ba98d8a, 0x414e29db, 0x5740f17d, 0x2c32927a, 0xda5b9e8c, | ||
3710 | 0x2beedaa5, 0x07191dec, 0x5dad7fb4, 0xf36a6eb6, 0x6d6fd935, 0x5b129597, | ||
3711 | 0x2d1b4503, 0xcaabb23e, 0xa0330e21, 0xf1b31cbf, 0xefa42d9d, 0xf3e20b95, | ||
3712 | 0xe578886c, 0x53931b46, 0x4aa1c3ab, 0x3a77ee38, 0xaf0889cc, 0x6e8c4dba, | ||
3713 | 0x60cc8657, 0xb8e60881, 0x5397063c, 0xf10d711e, 0xc5f6c649, 0xa3ac2f45, | ||
3714 | 0x0412e4b4, 0x3d430d26, 0xfd70a6bd, 0x0c5bb6bc, 0x66047e50, 0xf98c5cc5, | ||
3715 | 0x7ee01cd3, 0x5dbdfaa2, 0x39fc7cd6, 0x41f2aea7, 0xf9f965c8, 0xfcfc98e9, | ||
3716 | 0x8e1e7474, 0xfe51a61b, 0x30aaffcd, 0xc43b24de, 0x5e6a3d7c, 0xd51e7e44, | ||
3717 | 0xf2d0c96f, 0xa3c83ceb, 0x9d5aee38, 0xdd829b25, 0x13da3b4a, 0x41b059d2, | ||
3718 | 0x2e56f860, 0xc4360312, 0xe79920b7, 0xa0976747, 0x5e8caddc, 0x2576c255, | ||
3719 | 0x37c4b1e5, 0xf8710210, 0x0b0dbef3, 0x1767e4cc, 0x4ca57e6b, 0xdbe91f00, | ||
3720 | 0xfa6f7899, 0x36c78a02, 0x56be33c6, 0xc7ee78fe, 0xd6bae12f, 0xa229c5a5, | ||
3721 | 0x5e87d61c, 0xfee03e9a, 0xde149710, 0x67d2fce7, 0x0bdf49d2, 0x4857ee5e, | ||
3722 | 0x22657871, 0x26e298ec, 0x974cf539, 0x9579e1ed, 0xe6ce9ecb, 0x8083e2f3, | ||
3723 | 0x2ad970f1, 0x6f01d191, 0x521e02d8, 0x4520fec8, 0xf2d66df2, 0x1cd6acf7, | ||
3724 | 0xd34a5bfe, 0xfc991ee2, 0x9c5faf37, 0xced171c6, 0xc676a7f8, 0x066ff8bd, | ||
3725 | 0xf993d5ed, 0x57d13f09, 0x4c66126a, 0x5bb4fb60, 0x328b8ec9, 0xb7701e78, | ||
3726 | 0xbdd2cb06, 0xea8f09d3, 0x32ef3635, 0x1c47df37, 0xb181e1aa, 0x5429b54d, | ||
3727 | 0xf3c223f1, 0x0b779b4d, 0xbc796dc9, 0xb924ef12, 0x0e7af282, 0xad98c7ab, | ||
3728 | 0xa72fb449, 0x76e64ab3, 0x989ffd8c, 0xc1dabfb1, 0x227560fd, 0x15cedbf2, | ||
3729 | 0xb7fb84c4, 0xbe4cafd1, 0xf0dccf5f, 0x85f3cefa, 0xb99df8f0, 0x49e4afc4, | ||
3730 | 0xdb1e108f, 0xc8af6645, 0x29c3358c, 0x0e2ed96e, 0xf1a64e7a, 0x57e445c3, | ||
3731 | 0xc81cefe7, 0x1db2b6e2, 0x617bb21f, 0x56e726be, 0xc7296f2d, 0x33844ef6, | ||
3732 | 0xf8bdb832, 0x666ba845, 0xe8bf9e6d, 0xabc7d6f2, 0x9c985957, 0x937fd1aa, | ||
3733 | 0xfa5ea8e3, 0xb56fb65b, 0x79469423, 0x961bf556, 0xcb6fe4a1, 0x97cbfc35, | ||
3734 | 0x09fd19f6, 0xc5b94fea, 0x543dd125, 0xa95b16a5, 0xb028d55d, 0x6a5d7876, | ||
3735 | 0xe7e3e93a, 0x4938f7cb, 0x07c4ce4f, 0xb4df743d, 0x52f7882f, 0xc0da887e, | ||
3736 | 0x97cf93ee, 0x873f367b, 0xc85259ed, 0xacf8e021, 0xc89332c7, 0x82949f2f, | ||
3737 | 0xd93f1a56, 0x5b5136ec, 0xd4d1a491, 0x62dfcc56, 0x55d1cfed, 0x43fa6b35, | ||
3738 | 0xe046a5fe, 0xed7aacf2, 0xcf0335b0, 0xffc9a95b, 0xb30ff6ca, 0xa756cfc9, | ||
3739 | 0x397db287, 0x14d9de4c, 0x04cfc2ff, 0xbcd6df76, 0xba60ebc6, 0xde486bbc, | ||
3740 | 0x34f35f68, 0xdeecd739, 0x7de924f3, 0xaf3bc90d, 0xdea0beab, 0xaffd611e, | ||
3741 | 0xbe022a6f, 0xc5e908fe, 0x53cc7899, 0x05b97b79, 0xbcacc7db, 0xbfe6acfd, | ||
3742 | 0xf790bfb0, 0x4f3c39ab, 0xac6b79e3, 0xbe4adfbe, 0x263f244d, 0xa7f31b0f, | ||
3743 | 0xadbd1a4d, 0x9270deab, 0x3f6caefc, 0xc1c8eefc, 0x57e61784, 0x5ef44df2, | ||
3744 | 0xd12d47e3, 0xb3f864ef, 0xe896a1b8, 0xefe98675, 0xdecd73d4, 0xa7d3816a, | ||
3745 | 0xd66b5bd3, 0xb5c7d7e8, 0x3a345bf5, 0xd7e340ab, 0xbedc7eee, 0x7b227b34, | ||
3746 | 0xa749fca5, 0xd7c49fcf, 0xbef9faeb, 0x4d6edf46, 0x766a414f, 0xbe487f12, | ||
3747 | 0x7f5067e4, 0xcd50eb14, 0x2b94e06f, 0xfcb1373b, 0x8e979751, 0xfbe1a7ff, | ||
3748 | 0x0a4c4942, 0x04d5b1cb, 0x5ded9a73, 0x1a23c5ef, 0xe8ad4f1f, 0xfc82de9e, | ||
3749 | 0x06f31cfb, 0xbea36e96, 0xd3ce239a, 0xaf3f46f5, 0xfdc95b60, 0x86600eac, | ||
3750 | 0x9fafed20, 0x304d527b, 0x81273ed3, 0xbf8e87db, 0xf505976e, 0xe81feed3, | ||
3751 | 0x1c5779a4, 0x37443999, 0x0cd3ff3f, 0x5457ad89, 0x4af3f307, 0x7010108b, | ||
3752 | 0xebc094e8, 0xec56a782, 0x84e79671, 0x327ffdf5, 0x62ff4e84, 0xa78aeb4e, | ||
3753 | 0xfa117fae, 0x782cf0cc, 0xd4fdf276, 0x7a16f4fe, 0xd74df3a9, 0xca9c584f, | ||
3754 | 0x3d5893e2, 0xca7dedad, 0xf6c5e74a, 0x19caf1eb, 0xfec97bca, 0x10faf2f7, | ||
3755 | 0x5923872c, 0xeeb0f711, 0x0ecff1d7, 0x84f7c343, 0x65e72f7e, 0x2efa3066, | ||
3756 | 0x1f35b341, 0x85d578fd, 0xa6539150, 0xf5644fb8, 0x08bfbba0, 0xb3d42e8a, | ||
3757 | 0xbceeddaa, 0xeaad7bc8, 0xa7a611f2, 0x756210d5, 0x1f55b2cb, 0x7d230f16, | ||
3758 | 0x45c629fc, 0x8c5757e4, 0x3d5c52b5, 0xa1cccb77, 0x0dd3e724, 0xb8badefc, | ||
3759 | 0x142bc87c, 0x786e9f17, 0x0e666d21, 0x1a282bad, 0x6b65fd89, 0x9e393207, | ||
3760 | 0x53150f89, 0x1171fdbb, 0x6a358ea8, 0x53c590cb, 0xd1ca3db1, 0x39e89137, | ||
3761 | 0x8e1624d9, 0x2cfb908c, 0xa54f1690, 0x92eccc78, 0x6a4e0ec8, 0xc2deabfe, | ||
3762 | 0x933bd2e5, 0x277279eb, 0xa0bafee4, 0x44db3ebe, 0x7e84db7c, 0xc5aee913, | ||
3763 | 0xd507a018, 0xff1e054d, 0x5c42b1cc, 0x1fd63ccf, 0x4dfb13d7, 0x09aa2709, | ||
3764 | 0x13c7b6ff, 0x4ddbaa24, 0x883781b3, 0xfb0769ed, 0xa6e851e4, 0xc6287168, | ||
3765 | 0x9d5cecab, 0xbdf9fa4f, 0xc51eb932, 0xf5e20bee, 0xc76fa4a1, 0x19d63ab4, | ||
3766 | 0xcb8bef0d, 0xee893a7f, 0x3d5b8ba5, 0xf9f74449, 0x140df1fd, 0x70b79cc7, | ||
3767 | 0x7fefa57f, 0xd88f77bb, 0x77d88ef7, 0x0c65800d, 0x189901af, 0x6740253f, | ||
3768 | 0xe3eba4fc, 0x70baeaed, 0xcdd78d22, 0xfaf53db5, 0x5ecd1ffa, 0xd64de257, | ||
3769 | 0x12f2f0e9, 0xce365864, 0x9e083aa3, 0xe5f0985f, 0xd9c510ae, 0x86c9368d, | ||
3770 | 0xbd259ef4, 0x86fab6c6, 0x1481eac8, 0x9f9e9313, 0x8050637d, 0x138ab7f2, | ||
3771 | 0x2cd15dbc, 0x7884a804, 0x22b3ed64, 0x718d9fcd, 0x2221775e, 0xed717d6e, | ||
3772 | 0x6bff5224, 0x9ecaff5e, 0x56daff38, 0xe037bd81, 0x5e263db0, 0xfca7b77d, | ||
3773 | 0xf5578bef, 0xe754bffc, 0xa42ef6bb, 0x57cf5bf3, 0x0c5ea20e, 0xedf30bcf, | ||
3774 | 0x2c3992ea, 0xc4bcbd5e, 0x709b60cf, 0x5628cd6a, 0xbab176e7, 0x5e5a2fef, | ||
3775 | 0xdc917b10, 0x4ebc0f77, 0xbb48e779, 0xbdbb224b, 0x401164ba, 0x63abad36, | ||
3776 | 0x5ebb9750, 0xf77bb9df, 0x6aeeb621, 0xa37da0cb, 0xbb01dd70, 0xcee7f98b, | ||
3777 | 0xf79892f7, 0xbc58ef91, 0x7dd913dd, 0x7451dfc1, 0xd772ebf9, 0xded4abe9, | ||
3778 | 0x2ffc7445, 0xdee5c53d, 0xd33aded9, 0xfa1ef449, 0x11bef251, 0x9704ef24, | ||
3779 | 0xb9da7144, 0x5c5fdcf5, 0xf2bd7388, 0xc2fbca20, 0x80698986, 0xa1f6727e, | ||
3780 | 0x7f512787, 0xa2417ec5, 0xbfbbdcf8, 0xd3f949c4, 0x4eadcdef, 0xbf7ef3ca, | ||
3781 | 0x0abf7f5e, 0x469fe488, 0x3489838e, 0x0cd0647f, 0xe233ee32, 0x2337ae41, | ||
3782 | 0x0a039b2e, 0xcfd83bc5, 0xbbd716ea, 0xfe05bab1, 0xfde09725, 0xaf2f7b39, | ||
3783 | 0xd072e873, 0x1a51adf3, 0x9333079d, 0xfeb4ff38, 0xffbce182, 0xe35d86fc, | ||
3784 | 0x4d8bbf69, 0xbef08916, 0xfb6164da, 0xc93cc3cf, 0x5b33ef44, 0xed421e79, | ||
3785 | 0x37d93778, 0x35e637cf, 0x7aa37cf3, 0xbab14581, 0x4167eaba, 0xe7ca3cc4, | ||
3786 | 0x73a64fb0, 0xa7fa6ae7, 0x853cedeb, 0xef0f37d3, 0x5637a235, 0x99a1138f, | ||
3787 | 0x4edddbbd, 0x3d56ff9f, 0x37e31dde, 0xa982584e, 0xef9f8993, 0x77565e89, | ||
3788 | 0xe87e85b9, 0x403f257c, 0xc3ebac7a, 0x0517d43c, 0x079a9287, 0xea3e93e6, | ||
3789 | 0x9bfba1fa, 0xa5e35bf9, 0x2dfe51b3, 0xdb5daa31, 0x1b3a53d2, 0x7a69e719, | ||
3790 | 0x99823908, 0xe9d2abe8, 0x535d6b8b, 0xf8a6b082, 0xc421150f, 0xafe88473, | ||
3791 | 0x9152a4f0, 0xc05e8bef, 0xc69ed964, 0x642091de, 0x061ef601, 0x6a17ff4c, | ||
3792 | 0xa2b1b075, 0xe519bfbd, 0xf3742a58, 0x96d93e52, 0x2e4d50ef, 0xf9327796, | ||
3793 | 0x04253e96, 0xc44ffb00, 0x9ea9733b, 0x0e420330, 0xbb3fb637, 0x464d7643, | ||
3794 | 0xf5ebd5f9, 0x2d63b56a, 0xe65767d5, 0xfffb5a8b, 0x3aa8944a, 0x8afdffc8, | ||
3795 | 0x530f20ea, 0xffb5943d, 0xf6f5425a, 0x71b477b6, 0xe3425eb8, 0xab402b6d, | ||
3796 | 0xdbc57d8b, 0x85c7d03f, 0xdb5fb409, 0xe45c7d2a, 0xfdf5e7ed, 0x98daf6b5, | ||
3797 | 0xe331a5f1, 0x1ff6f12f, 0x504e227e, 0x88f5c273, 0x9ef7b527, 0x7d5a65d2, | ||
3798 | 0x8336f4c2, 0x93df2cf6, 0x1d17cf54, 0xe7941d67, 0x27947914, 0x7bf0dde9, | ||
3799 | 0xcd7ffd7d, 0x44af3844, 0x9f78ad50, 0xd9026fc1, 0xda75e7c4, 0xe1ffdd7c, | ||
3800 | 0xc9bac83c, 0x6f3439bc, 0xcb3cd448, 0xda7de6cd, 0x376ebf75, 0x89e2979b, | ||
3801 | 0xe77f4fde, 0x9c56e29d, 0x278f5f34, 0x94afef62, 0x8c471e2c, 0x699254ca, | ||
3802 | 0xb40b239e, 0xe9bc42b8, 0x16615a3b, 0xbb4a038f, 0x99b677f1, 0x32711d43, | ||
3803 | 0x37e431e2, 0xf9077afe, 0xbe3c0db3, 0x98efb57a, 0xf41fb43e, 0xc757be8e, | ||
3804 | 0xcc43ef21, 0x3cb3b5af, 0x86fb8ff2, 0xd1bfc8b8, 0xebaf24db, 0xea9f7da5, | ||
3805 | 0x759dc5ee, 0x67dfbea6, 0xacb74def, 0x409df543, 0x5f71a875, 0x66f3bd71, | ||
3806 | 0xc93efcf5, 0x01b0da75, 0xb48fc8dd, 0x25effba4, 0xbb0da63c, 0xf9da88bb, | ||
3807 | 0xaef662b6, 0xefafa3dd, 0x6b3fea1e, 0xa1089e52, 0x6346fb3e, 0x7f611b20, | ||
3808 | 0xa2130a13, 0x983f0fda, 0x3d844a0c, 0x57b87a4e, 0xd291fb54, 0x53f9a8cc, | ||
3809 | 0x3515dd67, 0x0d0b6c5e, 0xf69c7966, 0x78ab7cce, 0xc61df3a2, 0x9f3debc1, | ||
3810 | 0xc7d3fbed, 0x6a1fa28f, 0x5d59126b, 0x2dfeee77, 0x70828f1f, 0xec46805c, | ||
3811 | 0x74bdfb22, 0x93ca044c, 0x5757eb63, 0xb46eb420, 0x80f135f0, 0xe5c58474, | ||
3812 | 0x8d1fa8ff, 0xc6a34bc8, 0xfb4567a7, 0x1f756bd3, 0x23180ba5, 0xac7568d5, | ||
3813 | 0x594f7b2b, 0xbbff5e65, 0xeafd0371, 0xde90b47d, 0xfe903b3b, 0x2d7fa841, | ||
3814 | 0x38adaca7, 0xe64b23de, 0x05ef4779, 0xe5007966, 0x4acc0b11, 0xa1171e84, | ||
3815 | 0xbea8b81d, 0xde3f71d2, 0x83474878, 0x74d7d6c2, 0xb8bb5898, 0x5465b4d7, | ||
3816 | 0xc336aa6f, 0xc754dd80, 0x6e2c1d90, 0x7df9fe2a, 0x67e580e3, 0x63f74282, | ||
3817 | 0xe7c2a355, 0x4c1ebf8b, 0x1db1b0f5, 0xc53ed8e3, 0x50131c22, 0xe0281f37, | ||
3818 | 0x31d5d17e, 0x76d7f581, 0x6e0f9b00, 0x54ace2ff, 0x7144aefe, 0x29aefe6f, | ||
3819 | 0x72888985, 0x86795bb2, 0x2297ebf4, 0xfbbb222c, 0x86f7bde5, 0x5f7a1494, | ||
3820 | 0x32283418, 0xc59358ff, 0x6a400ddf, 0x5df74ebf, 0x990481ed, 0xc5eac8e4, | ||
3821 | 0xb7ed0f14, 0xec7c77b1, 0xda90f567, 0x94cdb603, 0xdb3ad5e7, 0x0afec9b3, | ||
3822 | 0x8907c60e, 0xe307438e, 0xcdbf2ccd, 0x73a1aff4, 0x2bf60e0b, 0xd9537ca4, | ||
3823 | 0xf3033367, 0x98f7ca63, 0xca589e3d, 0xd25d3ae4, 0xea37fb04, 0xbfbf6c63, | ||
3824 | 0x4cabf381, 0x872ebbe3, 0x7eef8d72, 0x1a659f8d, 0xdf1067df, 0xc5f2ee91, | ||
3825 | 0x587b6fc8, 0x29a2c52e, 0xb260fd7b, 0xca5e3e8f, 0x15bf743f, 0x8eaaf7cb, | ||
3826 | 0xeaf7c638, 0x7c9a1e8e, 0xa1c945bb, 0xb58323bc, 0xdb7dba07, 0x7ae2ce89, | ||
3827 | 0x5fee2f94, 0x287a0f6e, 0x17519a3f, 0x87f7a5ef, 0x45dd8b6b, 0xab85d7c4, | ||
3828 | 0xfee6e1b0, 0x8ab5ee8b, 0x74add4df, 0x4a65c844, 0xb8c82e47, 0x2c8ec4df, | ||
3829 | 0xebed5f06, 0x2e724bdf, 0xcecf18eb, 0x66c8ef29, 0xa95c62e7, 0x23fef8b0, | ||
3830 | 0xfbffbe3d, 0x20b9c7be, 0x21811b30, 0x75dfca8a, 0x26ef3602, 0xcbfdfc21, | ||
3831 | 0x54238c4c, 0x1696673c, 0x5b650e7f, 0x6c9b7f22, 0xf8424381, 0x72ff18fb, | ||
3832 | 0x9da86a91, 0x3be5d7f6, 0x678c7c99, 0x26e5dd70, 0xd543930b, 0x950f5fa1, | ||
3833 | 0x9092fc70, 0x4eec9ddf, 0xc47ff24d, 0x810995ee, 0xcf6c161d, 0x73977e7f, | ||
3834 | 0x8fd61c84, 0x43d07366, 0xf919a67e, 0xe6b5f548, 0x00b8e2d5, 0x942667af, | ||
3835 | 0x9eb5b80c, 0x83b8ebcc, 0xb79febf1, 0x286b4dd3, 0x66cb869f, 0xed879796, | ||
3836 | 0xb78ef375, 0xb8127f48, 0x6ecadcfe, 0x58912cf7, 0xbf6b167c, 0x959eddba, | ||
3837 | 0xf9227ffd, 0xcfadbbde, 0xfee11fe0, 0x584a5363, 0x99ef1cbd, 0x87583ca8, | ||
3838 | 0x7f31eec9, 0xb3b7f9a1, 0xcac7bb6f, 0xcf6b12f8, 0x6db37d7a, 0xb2019dff, | ||
3839 | 0xf68093f7, 0x2fb47a4f, 0xd9a2de41, 0xdd07f33b, 0xb3af815c, 0x339951f7, | ||
3840 | 0xddef14ed, 0x9e1ddec4, 0xdece6fd4, 0xf23939bf, 0xf85201bc, 0x1c846afb, | ||
3841 | 0xa43d50d7, 0xc9852db8, 0x2e9b9751, 0xba7e5d47, 0xfd963ebc, 0x637d1177, | ||
3842 | 0xd775fdb6, 0xd55762ff, 0x53073deb, 0x793b767c, 0xfee1e3dc, 0x8f285ff6, | ||
3843 | 0xf7373c7b, 0xfe7af7bf, 0x7e8bff09, 0xe26ec072, 0x5bc3a64f, 0xa3f9872f, | ||
3844 | 0xb741e3cb, 0x2433d8bf, 0x68241fcc, 0x6f4fd530, 0x9ee98fc7, 0x99fefc6f, | ||
3845 | 0x67fa0b7e, 0xfff433fc, 0x1292f9c3, 0x78b12f9d, 0x49e50466, 0x5527963e, | ||
3846 | 0xfc83bd53, 0x4fe818df, 0x15bd59f1, 0x9aa43e58, 0xee4979ba, 0x42d97625, | ||
3847 | 0xc5259771, 0x3afd216b, 0xbea211ea, 0x48f56bef, 0x2496087d, 0xbd0ddfe8, | ||
3848 | 0x128cf2cd, 0x43cb4997, 0x30f6f30e, 0x09bdfc7d, 0x0c94d794, 0x18e1c6d2, | ||
3849 | 0x6c089f1f, 0x472df9fc, 0xcdb25e59, 0xfc20aca3, 0x4c48f05e, 0x74b7173e, | ||
3850 | 0xfde7e3ef, 0x5747c40d, 0x04bbffb2, 0x5676ad6b, 0xda136b4f, 0xc3b91773, | ||
3851 | 0xdfb57ff3, 0x8817f271, 0xaca3c877, 0x502f79a1, 0x12352231, 0x16ad79f2, | ||
3852 | 0x84e6f748, 0x5601cbfb, 0xae58bdd0, 0x6044fd1e, 0x1c3c1df1, 0x1fbe9437, | ||
3853 | 0x959f7604, 0x35b1dfeb, 0x06c77f44, 0xb3e3175e, 0xfea11dfe, 0xb09de09d, | ||
3854 | 0xd7bed25c, 0xf92370db, 0x866ce4eb, 0xafdf1173, 0x2e9059b5, 0x22efd757, | ||
3855 | 0xff477d85, 0xabd6fb42, 0xf2cf1ad0, 0xd7efe8d9, 0x4f3013aa, 0x7b287e45, | ||
3856 | 0xca3b411c, 0x04f6e171, 0xab986756, 0xa47b8fd7, 0x31f44bb0, 0x3d03d389, | ||
3857 | 0xfd7dd8d2, 0xe74ba6b8, 0x2cff4097, 0x6fcdc533, 0x1e23355f, 0xeff1f66f, | ||
3858 | 0x99543925, 0x285f483e, 0xdea45d53, 0x95d0f749, 0x4a97a21d, 0x9d5a5530, | ||
3859 | 0xb5529a1e, 0xbc188afa, 0xb98fc717, 0xf54cdcef, 0xfe1ec3bd, 0x0dd9714e, | ||
3860 | 0x5d519dec, 0x10b6936a, 0xa70fd72e, 0x71ed8d3f, 0xe979f719, 0xcef2eefd, | ||
3861 | 0xa366b367, 0xc05ad01c, 0x00fae2c9, 0x36c1675b, 0xd2b91f7d, 0x96ba42fd, | ||
3862 | 0x4220fbbf, 0xbb9f3a1e, 0xa28f1ff0, 0x0e29bdfa, 0x09dede98, 0xc78a241b, | ||
3863 | 0xa58c3975, 0x838a53c7, 0xc8efe0de, 0x6ce8050b, 0x3e725c53, 0x5dfbe78e, | ||
3864 | 0xb0ef8beb, 0x52cd017c, 0x6cdbaa8d, 0xfcf37998, 0xa5602522, 0xbae9bfad, | ||
3865 | 0xf68f25e3, 0x06103e4e, 0x791deff2, 0x9b52a35d, 0x952c5633, 0x6a4f44cd, | ||
3866 | 0xbfe4979c, 0x77666370, 0x7c3043f2, 0x83ce441d, 0x2f4cc90d, 0x1845ba56, | ||
3867 | 0xb7367a8e, 0xfba4c905, 0x160ee5a8, 0x92d83df7, 0xe313a0c4, 0xf8bfea4e, | ||
3868 | 0x7983fbca, 0xa7cb871d, 0x63eed5f8, 0x6afb1c58, 0xf563063f, 0x4fb9fcd6, | ||
3869 | 0xd84b77a1, 0x123ab023, 0x75ca12f9, 0xc7563d75, 0x6eac8378, 0xeec096f7, | ||
3870 | 0xbf9b293d, 0x75495463, 0xd20e1dec, 0xc22f2c7d, 0x2ec94b25, 0x6cddf45d, | ||
3871 | 0x8faeff12, 0xf7dacce5, 0x3e4d4eb1, 0x7df9d009, 0x881bef6c, 0xccb67277, | ||
3872 | 0x3d208bbf, 0x264949c1, 0x5cfc9bb7, 0x393fb66a, 0xe6bde29b, 0x9f54459d, | ||
3873 | 0x4aea0b9a, 0x13d94770, 0x6ae848dc, 0x77b497a7, 0x2b0f5d31, 0x852173b5, | ||
3874 | 0xc6855feb, 0x3e8d4ad6, 0x2b5418cb, 0x4772cfa4, 0x377ae6f6, 0x80fe8691, | ||
3875 | 0x1f0adf7d, 0x40fe3dfc, 0x3f7407bf, 0x2cf535fd, 0xc7d2cfc6, 0x7ce3ddb9, | ||
3876 | 0x0ffd175e, 0x511f5021, 0x6faceac7, 0x77b0233d, 0x326ebd6d, 0xbd0a0ccd, | ||
3877 | 0x095422ef, 0xd2f7d296, 0x8598e104, 0x62e38b9d, 0x8cc3ab12, 0x63ebfc62, | ||
3878 | 0xd39d5952, 0x9830ebce, 0xfd43dc27, 0xbf66ead7, 0x7920f8cb, 0xc51bf7d9, | ||
3879 | 0x6c4f5e36, 0xdf644f7f, 0xee8add1f, 0x555e5af1, 0x6f62e07b, 0x5f71dbb2, | ||
3880 | 0xf7e27e89, 0x11e38b71, 0x67c753ca, 0xf197f7f3, 0x9828a6d9, 0xe98bfb2e, | ||
3881 | 0xea3b3fdc, 0x5f909ba6, 0xc167be7f, 0x8771df2b, 0xae887ae9, 0x40a7ba2c, | ||
3882 | 0x4d3e90b6, 0x371de504, 0xf06df56e, 0x5064f6b3, 0xf7496c19, 0xa54eca4f, | ||
3883 | 0xac0310ef, 0x7dc47c7d, 0x8b125eac, 0x655e2c7f, 0x2c5efcd9, 0xc14536cb, | ||
3884 | 0xcfdfb271, 0x5e1852f1, 0xd1365fb8, 0x24f5e3a5, 0xdfea4ee9, 0x88555f25, | ||
3885 | 0x7ccaef90, 0x02d7df91, 0xf2c3afbf, 0x25496b1d, 0xbd108ef9, 0x0c17ab4c, | ||
3886 | 0xe0f48479, 0xa5eadd9a, 0xbe5d3b77, 0x9bde8108, 0x638e72c3, 0x88ba52fa, | ||
3887 | 0x6c91cbeb, 0x6a0baf37, 0x580e4772, 0xf942ae28, 0x9a7c4d3f, 0x75e44237, | ||
3888 | 0x3fe50938, 0x4addc980, 0x82995e36, 0x2ae8cf72, 0xde2d5adf, 0x66e2d1ad, | ||
3889 | 0x66f51fbd, 0xeae9f105, 0x89fd61de, 0x4607b53f, 0x7a9fc4c8, 0xd4dbcf13, | ||
3890 | 0xd0ead6ff, 0xa38bc99a, 0x47ef62ee, 0x297af660, 0x45be2aff, 0x9355b29e, | ||
3891 | 0x961ef1cb, 0x5fb60171, 0x4076bbf4, 0xa6809fd3, 0x9c70ff57, 0xe2a21fd5, | ||
3892 | 0xffa211ac, 0x754fe265, 0xf32b55dc, 0xfe7bda63, 0x19b37a56, 0xd11fd612, | ||
3893 | 0xb26ff0ea, 0xf5cbe247, 0x55f9f506, 0x44e7ff5a, 0xa64ce7d4, 0xef28e7cf, | ||
3894 | 0x75e56e3c, 0x156456e7, 0xff107ffd, 0xccbbfccb, 0x3e9a77f0, 0xbc512b06, | ||
3895 | 0x8042e704, 0xbad0f9c1, 0x9fce1072, 0x469658d8, 0xfc9854f8, 0xa2ad3eec, | ||
3896 | 0x3be9bc2f, 0xec2f681b, 0x76fcfc81, 0x7a77d2c3, 0x5e538a20, 0x5c285b74, | ||
3897 | 0xb041b49b, 0x97be40f4, 0x41582d34, 0xb78fb46d, 0xb70f4e48, 0x0ee77a6c, | ||
3898 | 0xe39d17ec, 0x8f1c7d98, 0x1cac5391, 0x45fc6b0e, 0xd39b787b, 0x70ba30a5, | ||
3899 | 0xa1ed4dfd, 0xe12bdd06, 0x01ffffa5, 0xd5b93efd, 0xefd023ff, 0xe3781b15, | ||
3900 | 0x7a6ec8e2, 0x3fbfcc83, 0xf3e7f68f, 0xfa27df80, 0x923afa7e, 0xf397dd20, | ||
3901 | 0xf4979ba1, 0xfb8592ea, 0x807d4bcd, 0x0125c1d9, 0xf0bcec2f, 0xfee906fd, | ||
3902 | 0xe199791e, 0xf4d6a37b, 0x39f92e5a, 0xc77e57bc, 0xe699e2fc, 0xe4dd0395, | ||
3903 | 0x64e903ff, 0xd99f96af, 0x735ff5bc, 0x9510ccbf, 0x80ceb4d3, 0x01a03406, | ||
3904 | 0x0340680d, 0x0680d01a, 0x0d01a034, 0x1a034068, 0x340680d0, 0x680d01a0, | ||
3905 | 0xd01a0340, 0xa0340680, 0x40680d01, 0x80d01a03, 0x01a03406, 0x0340680d, | ||
3906 | 0x0680d01a, 0x0d01a034, 0x1a034068, 0x340680d0, 0x680d01a0, 0xd01a0340, | ||
3907 | 0xa0340680, 0x40680d01, 0x80d01a03, 0x01a03406, 0x0340680d, 0x055ff01a, | ||
3908 | 0x328d1fff, 0x800060f6, 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, | ||
3909 | 0x30001131, 0xee300408, 0xd80ea5ea, 0xabdef271, 0x964d2104, 0x5dbbcce4, | ||
3910 | 0x6db6db15, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, | ||
3911 | 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, | ||
3912 | 0xee017e3f, 0x0014ab55, 0x000014ab, 0x00088b1f, 0x00000000, 0xc5edff00, | ||
3913 | 0x30001131, 0xee300408, 0xd80ea5ea, 0xabdef271, 0x964d2104, 0x5dbbcce4, | ||
3914 | 0x6db6db15, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, | ||
3915 | 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, | ||
3916 | 0xee017e3f, 0x0014ab55, 0x000014ab, 0x00088b1f, 0x00000000, 0xc5edff00, | ||
3917 | 0x30001131, 0xee300408, 0xd80ea5ea, 0xabdef271, 0x964d2104, 0x5dbbcce4, | ||
3918 | 0x6db6db15, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, | ||
3919 | 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, | ||
3920 | 0xee017e3f, 0x0014ab55, 0x000014ab, 0x00088b1f, 0x00000000, 0xc5edff00, | ||
3921 | 0x30001131, 0xee300408, 0xd80ea5ea, 0xabdef271, 0x964d2104, 0x5dbbcce4, | ||
3922 | 0x6db6db15, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, | ||
3923 | 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, | ||
3924 | 0xee017e3f, 0x0014ab55, 0x000014ab, 0x00088b1f, 0x00000000, 0xc5edff00, | ||
3925 | 0x30001131, 0xee300408, 0xd80ea5ea, 0xabdef271, 0x964d2104, 0x5dbbcce4, | ||
3926 | 0x6db6db15, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, | ||
3927 | 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, | ||
3928 | 0xee017e3f, 0x0014ab55, 0x000014ab, 0xffffffff, 0xffffffff, 0xffffffff, | ||
3929 | 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x40000000, | ||
3930 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
3931 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
3932 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
3933 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
3934 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
3935 | 0x40000000, 0x00088b1f, 0x00000000, 0x62f3ff00, 0x51f86063, 0x408cc10f, | ||
3936 | 0x7f120cb6, 0x66476028, 0x48107d08, 0xf3e2061f, 0x2fe9a48c, 0xb9b04160, | ||
3937 | 0x40afec80, 0xa8597833, 0x88a1bee7, 0xcfd2738f, 0x81ae792e, 0x66322ff7, | ||
3938 | 0xe86067e6, 0x6ff047e4, 0xb3caa3f2, 0x3dd7d3f0, 0xb000c6b4, 0x00eeff4a, | ||
3939 | 0x0000eeff, 0x00088b1f, 0x00000000, 0x7dd5ff00, 0xc554780b, 0x3d9cf0d9, | ||
3940 | 0x3764dd97, 0x2485cd9b, 0x200d8410, 0x125c40a2, 0x126e20ee, 0xc3116088, | ||
3941 | 0x65e28145, 0xb201ae41, 0xdb3f6911, 0x5cbb7ffa, 0xc6d6a444, 0xa0b45b4b, | ||
3942 | 0x06a2828b, 0x82482459, 0xa5c8ba1b, 0x5835b5b4, 0x0da978aa, 0x24c4dc88, | ||
3943 | 0x97f4b004, 0x3bef3fca, 0xce7bbb33, 0xf4bc4c6e, 0x7d6f9ffb, 0x7339867c, | ||
3944 | 0xef3bccce, 0x6779de7d, 0x313b10a2, 0x0ae42775, 0x64246efc, 0x19084c99, | ||
3945 | 0xbbc32d14, 0x32413cbf, 0x46bcf909, 0x08f39a75, 0x86a1d929, 0xc5f5a46f, | ||
3946 | 0xd400a41b, 0x0893bb4d, 0xd3484819, 0xcaf7563a, 0xa08e8f0d, 0x4ca764ed, | ||
3947 | 0x8482d136, 0x4592266d, 0x610b09c8, 0xd60a673f, 0xeab126e7, 0xee7b0de2, | ||
3948 | 0xd7e7fe82, 0xfd12499a, 0xec8d44fe, 0x4d92fa86, 0xb4488052, 0xad21eebd, | ||
3949 | 0x5e7fed0b, 0x39260a40, 0x63d37d69, 0x9085339a, 0x6cbfbbe5, 0x5c057182, | ||
3950 | 0xe2167c67, 0xbfbe00d4, 0x23f63565, 0xadb03ca4, 0xa7ed0bb4, 0x99725abc, | ||
3951 | 0xebe538e8, 0x038df0a4, 0x9014b9e1, 0x370bbf69, 0x0fb3895b, 0xc10ae183, | ||
3952 | 0x4b1e7171, 0x6971d3d6, 0xd2a9447f, 0xe3a252ca, 0xf19cfc09, 0x4471c5ad, | ||
3953 | 0x744bf17d, 0xc55dfa1c, 0xa60b92ab, 0x9e226158, 0xa9bf1d20, 0xf3da692e, | ||
3954 | 0x32df9836, 0xec4a77ad, 0x0ebe663c, 0x6c0f28f3, 0x006d4ad0, 0x6e6d06d7, | ||
3955 | 0x0b7f68bf, 0x0f56ff37, 0xd99edad7, 0x6376989e, 0x5147c679, 0x2f5a3bda, | ||
3956 | 0xb41dc427, 0x6d01fc01, 0xf3e8ff62, 0x908d295a, 0x4cbfd04e, 0xff68969c, | ||
3957 | 0xb9f1f884, 0xc0615c4c, 0xb8a5093b, 0xead6e962, 0x496dd3d0, 0x0db6ff1a, | ||
3958 | 0xe9c97e78, 0x81cf98f0, 0x1cbe13e5, 0x73e57f2c, 0xf1bf9c22, 0x29f2c1f5, | ||
3959 | 0xff9f0b9f, 0xcb1437d6, 0x96373ef5, 0x62c6facf, 0x8657c1b9, 0x9bef3def, | ||
3960 | 0x9f26e586, 0xe8bf9f07, 0x4be58f9b, 0xfe7c4abe, 0x2c7eef8a, 0xf8fcf8b7, | ||
3961 | 0x356fab7c, 0x557cdb96, 0xf4e76e58, 0xe00be1da, 0x9b7d3b7b, 0x05f3acb1, | ||
3962 | 0xbe1bf9f1, 0x017f2c5a, 0xaa65a478, 0xa14cb1db, 0x4d1d4a74, 0x484d941c, | ||
3963 | 0x32d95946, 0xa633d695, 0xa7b67ab0, 0xf146996a, 0xd69b3d94, 0x2b731d29, | ||
3964 | 0x6999961b, 0xd652ee7b, 0x58efddde, 0xddeda16e, 0x9ef6b257, 0x93cb6555, | ||
3965 | 0x27cf7b68, 0x8135fb59, 0xb4c9e5aa, 0xac8d9afd, 0x61b06fbd, 0xf7b695b9, | ||
3966 | 0xd7ed61ad, 0x6c2b1d87, 0x3efd7eb4, 0x286c2f56, 0xeb42915b, 0x7d598785, | ||
3967 | 0x0ad56348, 0xc87efd3b, 0x88fdf671, 0x4ceca096, 0x55db1fc0, 0xd2843dd7, | ||
3968 | 0x52fed7ee, 0xd68c32b7, 0xc47dd735, 0xff66c845, 0x33a56ead, 0x865a87c5, | ||
3969 | 0xd3fcbbed, 0xc32b5d58, 0x33fcb7f6, 0x6a9dfdf1, 0xec7fb625, 0x9df6c72f, | ||
3970 | 0xb7b6255a, 0xf6c3eff8, 0xdb0ab53a, 0x601ecb4d, 0xdb0aad75, 0x883d9733, | ||
3971 | 0x52a1bfef, 0xd2138760, 0x6ea3d97b, 0x966f853f, 0x7d02a9e4, 0x9caa6cd2, | ||
3972 | 0x28b7404f, 0xaf901ce1, 0x0d322487, 0xc4a7e5e4, 0xa1e6fa89, 0xc83734ab, | ||
3973 | 0x8343f6e1, 0xc539079f, 0xe7d4265f, 0x0f26b0be, 0xfb0a79fb, 0x3d3f68d1, | ||
3974 | 0xf0a7efdb, 0x7ebaa19d, 0x2f99df0a, 0xf80e79fa, 0x63b939be, 0x677f6cfd, | ||
3975 | 0x779e1eb8, 0xaf3f45ca, 0x8ef63f60, 0xaff0abcd, 0xfcf0f523, 0xa7e89175, | ||
3976 | 0xde95e706, 0xbc767831, 0x1793f14f, 0xfbc767ed, 0xf6123f14, 0x64fd8f53, | ||
3977 | 0x419e0c75, 0xf5d50c1f, 0xf983e833, 0xd8039fa2, 0xf58e974f, 0xe183e3b3, | ||
3978 | 0x283e787a, 0x8dbcfd17, 0xd8eb74fd, 0x387d06bc, 0x87cf0f52, 0x473f448b, | ||
3979 | 0x1d1e9fb0, 0x51e767eb, 0x1e767e3d, 0x28e7e08d, 0x63bbd3f6, 0x4c721af3, | ||
3980 | 0xc7219f8f, 0x8339f822, 0x63aebf74, 0xa63cecfd, 0x63cecfc7, 0x479cfc11, | ||
3981 | 0x363bf278, 0xe89f21af, 0x93e433f1, 0x632e7e08, 0x831d053f, 0x1eb4eea7, | ||
3982 | 0x23a7753f, 0x982551f8, 0xc18ee0d7, 0x1e8cec33, 0x44cec33f, 0x009763f0, | ||
3983 | 0xeb1de19e, 0x1e8ceea7, 0x2267753f, 0x7846c9f8, 0x5e6c7546, 0xe3d33ec3, | ||
3984 | 0x1167d867, 0x9e1138fc, 0x08cdcae2, 0xf4fda10f, 0x379fbb6f, 0xcff5e9ce, | ||
3985 | 0xfe98e71b, 0x8fc47819, 0x21cd57fa, 0x6467002e, 0xa25f994b, 0xd6932575, | ||
3986 | 0x89ba509d, 0x055fda87, 0xf83f70ec, 0xd32fd1b8, 0xb4ea94f6, 0x58ce3582, | ||
3987 | 0x02ec5c7b, 0x4d03ec78, 0x18ef7b3a, 0xa7abac99, 0xd9d74e8f, 0x5df1cceb, | ||
3988 | 0x29acf574, 0x9cf5743d, 0x7dd3ae3b, 0x817665df, 0xd175deae, 0xdbbd5d70, | ||
3989 | 0xf7dd62d2, 0xd66e07ce, 0x3958f7b5, 0xf5ef5749, 0xf5750fc8, 0xd2ce4fde, | ||
3990 | 0x2bacfbd5, 0xdd77f5d7, 0x7aba25c6, 0xea9feabf, 0xcb35f9ea, 0x68577575, | ||
3991 | 0xb05eae8d, 0xff5d71ef, 0x5a7adf03, 0xf87c1f57, 0xe87d5d39, 0xbeeb2f47, | ||
3992 | 0x35fc7e1f, 0xd9e47d5d, 0xc7ff065d, 0x97d138e6, 0x77f065d7, 0x9a07e8ad, | ||
3993 | 0xcfe869bb, 0x60b37516, 0x6cddc7fd, 0x28f1ff58, 0x4a0e35cf, 0x07c39fd7, | ||
3994 | 0x58fdeed4, 0x48ef5cf3, 0x25297f60, 0x4a07244d, 0x8d0c898f, 0x52ad5f6f, | ||
3995 | 0x527ca3be, 0xef72fddc, 0x9af4b4a3, 0xd1a77a5a, 0xa2a6eff2, 0x3f17c0a5, | ||
3996 | 0x97e84c95, 0x09526559, 0x1335647c, 0x57d5cbe4, 0x1fde7e0f, 0xe70fdfc3, | ||
3997 | 0xfd14be31, 0xe656ac3e, 0xeffe1d80, 0x83f3bf65, 0x4f287e1d, 0x93ec3b43, | ||
3998 | 0xf7f6177e, 0xfde7dfa2, 0x49fc0738, 0xd4fd468b, 0x3a35f1d8, 0x7f1c3f7e, | ||
3999 | 0xa6bf8c25, 0xbd2df18d, 0x4fc6ea87, 0x375f31ea, 0xc746927e, 0xe8f21077, | ||
4000 | 0xf1f3dfb2, 0x50bafe29, 0x3dfa50bf, 0x71e96f8e, 0x5abf8e3f, 0xe375f323, | ||
4001 | 0x7fc64727, 0x69fde412, 0x82507f18, 0xae1ef7f9, 0x728f7f9f, 0x3635fcfd, | ||
4002 | 0xbd9667ff, 0xc64fc7cd, 0xbd2b3ff9, 0xe3dfe6cd, 0x66fe6ca7, 0xf8ec6fda, | ||
4003 | 0x37fe08f6, 0xb72ff8c2, 0x9ae5be31, 0xf7f9fa91, 0xbf9fa45c, 0xeaff8d99, | ||
4004 | 0xf8f8f7b2, 0xab7f1c36, 0x7f9b1ef4, 0x7c7007cf, 0xe5d2b9b3, 0xeee64da0, | ||
4005 | 0xd00195c9, 0x263dd413, 0x746020d9, 0x2820219c, 0xefd084e9, 0x903d4817, | ||
4006 | 0xa64e3f0e, 0xffdf477c, 0x1bf29922, 0x6fdcf7f8, 0x12558127, 0x1dd74c19, | ||
4007 | 0x5767a79c, 0x417ed4cf, 0xcb5d993f, 0xae8433d6, 0xf0a6ae77, 0xff9ed535, | ||
4008 | 0xef0a43e2, 0x50038dec, 0x274e514f, 0x3e1cddf0, 0xf0ccaf15, 0xb7594841, | ||
4009 | 0x12bf5489, 0xa4dbaca5, 0x06e4d8fe, 0x411e7fbf, 0x78f8e318, 0xa27a954e, | ||
4010 | 0xe6fe4631, 0x17d7d5ad, 0x0175f404, 0x09301177, 0xa4c5fd2d, 0xf71d254f, | ||
4011 | 0x10275d18, 0x447f97ea, 0x594270fd, 0xdc9513f6, 0xf2f1465d, 0x404f5d31, | ||
4012 | 0x27ae91bd, 0x4cae9da0, 0x14c72e91, 0xb63bf382, 0x7a001ada, 0x0193f17c, | ||
4013 | 0xbb87d81a, 0x1bf2a7ef, 0x727edf2b, 0x5fc28738, 0xd339e7c6, 0x076fa19f, | ||
4014 | 0x4c3c53bc, 0x0b2bf3e4, 0x974f1e2d, 0xd59ee4c4, 0x459954b9, 0xf24a6bdf, | ||
4015 | 0x54ffd0a8, 0xe9b356e2, 0x9d2e7778, 0x5f107aa8, 0xca135cee, 0x5135c939, | ||
4016 | 0x56e89f39, 0xf4c6358f, 0x8066a93f, 0x93227b4a, 0xdf9feac7, 0x37afa656, | ||
4017 | 0x44d56ea9, 0x5134d3e9, 0xdda81b22, 0xdf4d3a99, 0x2339c62e, 0xc5fce3a5, | ||
4018 | 0x6e746578, 0x9e61d39d, 0xeffa63f4, 0x3cd83a1f, 0x34bc3ae8, 0x3f73d617, | ||
4019 | 0x689b5c90, 0x57bc2a7d, 0xa83d7400, 0xb769f3c1, 0x90d6b9a4, 0x92897878, | ||
4020 | 0xe11cfd83, 0xca23bceb, 0xcd0c5fa6, 0x83ff878b, 0x29b756dd, 0x461e7e3f, | ||
4021 | 0xa093a7b8, 0xba76f60a, 0xc67cff47, 0x18fce37c, 0x74e09c5f, 0x407c063e, | ||
4022 | 0x07c093cb, 0x39c7cf14, 0x2bf5441f, 0xc01383e3, 0x4eb09907, 0xa7307c66, | ||
4023 | 0x6ffd312a, 0x479ff4e7, 0x29676afc, 0x9ca9f74a, 0xba73b7ee, 0xe7ab5bcf, | ||
4024 | 0x3cf9b88f, 0x1cc1e1b9, 0x3cf98267, 0xa62547b2, 0x657979f8, 0x2ff91f06, | ||
4025 | 0x8e89b029, 0xbea5677b, 0xfd0376fd, 0x777e9c3c, 0x7165e846, 0xbf3e5197, | ||
4026 | 0x011927eb, 0x7c7133d0, 0x31f5e9c1, 0xb5b4d7a7, 0x4cefed8f, 0xe46be1e2, | ||
4027 | 0xf6b13af4, 0xfb44d579, 0x112f9c6b, 0xf08c6ff0, 0x9bbbe11a, 0xdfa03438, | ||
4028 | 0x9febf7dd, 0xa627f4cf, 0x28b6b79f, 0xf3cc78e3, 0x1971c1c5, 0x68e463c7, | ||
4029 | 0xba89e6e1, 0x74c082fa, 0xd6f3fbdd, 0xcfb5d4ce, 0x6ba05aa9, 0xbdf567bf, | ||
4030 | 0xff4cfaba, 0xdfef744f, 0x5d32ff7d, 0x0f959dfb, 0xcc67daeb, 0x9f574c7f, | ||
4031 | 0xf74a79ee, 0x1b69d4fe, 0x95b7ed74, 0x9f6ba4bd, 0xae9b763c, 0xa75dd13e, | ||
4032 | 0xbdda5f7b, 0x9fc43ba0, 0xd9e79abc, 0xbd9b886c, 0x49cf266f, 0xe84c7af1, | ||
4033 | 0x273ee3bb, 0xebe13f3e, 0x9f29e583, 0xf19f9f0b, 0x1972c50d, 0x176a71e8, | ||
4034 | 0xf4ac754c, 0x3bb33e3e, 0x07217fe8, 0x6eaea89f, 0x7a8d3fa0, 0xc4e7a8cf, | ||
4035 | 0x46bd46fb, 0xa7e0b97f, 0x59cf15b4, 0xb0329124, 0xf312cd0b, 0x43f3c457, | ||
4036 | 0xb2123edc, 0x1a45cb1c, 0xaf45d393, 0x39062e75, 0x7b85a45a, 0xeedada57, | ||
4037 | 0x9c250497, 0x9eaa9ccf, 0xade7383a, 0xef806bed, 0x05abe439, 0xf3dd4281, | ||
4038 | 0xe8479b85, 0x47bb3bbe, 0x402af846, 0xff8187b6, 0x04deb65d, 0xb7bc31f6, | ||
4039 | 0x00fee4db, 0x1319fbaf, 0x09db5bc0, 0xdf59eaed, 0x0ae38cd8, 0xcb0cb9e0, | ||
4040 | 0x5869be53, 0xb079f09e, 0x8f9bee3c, 0x255f31e5, 0xfbbe8d96, 0xe7d8fcb1, | ||
4041 | 0xdf23f2c7, 0xf03f2c6a, 0xc4796155, 0x77cb16b7, 0x0f2c017d, 0xf96336fb, | ||
4042 | 0x65882f8e, 0xcb16af83, 0x4b1b9f26, 0xfc312f21, 0x0c73bdd2, 0x277d08bf, | ||
4043 | 0xce29e1f4, 0x5f80672f, 0x73c5f112, 0xa938be7a, 0x185f2256, 0x0e91a1f5, | ||
4044 | 0x6df77d46, 0xf4dd21f9, 0x9443f0fd, 0x7a06b9de, 0xde8f6cf7, 0x397d221f, | ||
4045 | 0x0e4dd3bd, 0xf7a70f06, 0x45780623, 0x041281a9, 0x7e6665bd, 0x595b711e, | ||
4046 | 0xabc453dc, 0x7b8b3249, 0x337578f2, 0xbc0377fd, 0x10fb04a7, 0xbf6b5fda, | ||
4047 | 0xe21bdbff, 0xcc47adcc, 0x3db5e484, 0xdafd233f, 0x9bf103c4, 0xc9ff0ebe, | ||
4048 | 0x14af0cc9, 0xda84b1aa, 0xbed73587, 0xeac59aee, 0x423b010a, 0xb8d8ae82, | ||
4049 | 0xc05fa46f, 0x78fb7665, 0x7f31374d, 0x6657bad3, 0x776f08f8, 0xf2894e4d, | ||
4050 | 0xd2dcd7ab, 0x95f833bb, 0xd8099a1f, 0xe9b01233, 0xf5a7e5f1, 0xb57c51c1, | ||
4051 | 0xf4f68f35, 0xfc2fffde, 0xda8fa7b4, 0xa48743d3, 0x735fc7af, 0x24f75d31, | ||
4052 | 0x008e2f58, 0x6df41c3e, 0x1ba1b0f8, 0xf81061f0, 0x5adff69d, 0xe92a4d73, | ||
4053 | 0x66e7ed17, 0x13af9393, 0xde4e9ebe, 0xd37e0854, 0x1334537e, 0xcbae9eb9, | ||
4054 | 0xf24dcf65, 0x5dcff020, 0x6f4a7e8d, 0x6bab6eff, 0x49d61385, 0x7612fe67, | ||
4055 | 0x75fa17c2, 0xe7c1eb73, 0x59aeb0ed, 0x1c726392, 0x3e9b6c2f, 0x0e79838b, | ||
4056 | 0x547fac5b, 0x56b7afab, 0xdc596349, 0xa53a99c4, 0x8769e83f, 0xd02f78e3, | ||
4057 | 0x8a58399b, 0x68e4967e, 0xf019e38e, 0x79c9805e, 0x81ea1a75, 0xbe0b3e33, | ||
4058 | 0xd1c37df7, 0x38513f56, 0xf427c86a, 0x2b89107b, 0xbf7edb3d, 0x2e56be4d, | ||
4059 | 0x228f1068, 0x580bf521, 0xffd1252f, 0x7e80f4af, 0x7e8bac15, 0x6fd941bd, | ||
4060 | 0x579e1ebe, 0xdfa3c6eb, 0x1b1ec539, 0xfcb6d77c, 0xe084e428, 0x3f374a5f, | ||
4061 | 0x2fb8a7f8, 0xfbd0e494, 0xbaba696d, 0x43b3b6b7, 0x3fc1c7e7, 0x2d1cd1c0, | ||
4062 | 0x8b47c029, 0x2b355b38, 0x8512d5b6, 0x322c066f, 0xf6259f81, 0xa34b62de, | ||
4063 | 0x968fa1e6, 0x7f4148ec, 0x7c63c978, 0x1a4fcd9f, 0x4359fbe0, 0x29970779, | ||
4064 | 0x51fd3154, 0xb44c470b, 0x89af0f7e, 0x3559aefd, 0xff5fd10b, 0xdd71f894, | ||
4065 | 0x1aae5a77, 0x796a7e0c, 0xa6e68370, 0x989cfb74, 0xffbe82c6, 0x2f63bc9c, | ||
4066 | 0x57b7918c, 0x7be70d64, 0xffbd6acf, 0xbab1d74a, 0xeac75d3a, 0xa4c973ea, | ||
4067 | 0x9a17d82c, 0x974aa4fb, 0xd5aeb8d4, 0x7656ffb5, 0x91e77ce0, 0x876055ca, | ||
4068 | 0xbc29a93f, 0x71e0047d, 0xb0c1fae7, 0x9b459c4e, 0x29fea973, 0x03487cdf, | ||
4069 | 0xe3a6f939, 0x0bef802f, 0xf315c7e2, 0xe407db8a, 0x59bc5878, 0xd8120772, | ||
4070 | 0xf76e5abd, 0x3bfa5e84, 0x1eb31fc0, 0x23e7cd3f, 0x3f9adfea, 0x65c32932, | ||
4071 | 0x4339e945, 0xc1921cf6, 0xa49f008e, 0x5be2f946, 0xd7139ff7, 0xd7bfdfff, | ||
4072 | 0x1d12bbfe, 0x4ffed37f, 0xdefc5e83, 0x0715effa, 0xf044c5ff, 0xb22c3a0b, | ||
4073 | 0x17c01c34, 0xbe096e1d, 0x14dcb853, 0x7c60714d, 0x725ab9aa, 0xc4fbe999, | ||
4074 | 0x2c8e9c4d, 0x3d601fa6, 0x6a5afcd9, 0xe1bd413e, 0x1f3a6e20, 0x552e7f2b, | ||
4075 | 0xd123d9ef, 0x3b4ae175, 0xfe51a771, 0x9953e954, 0x692ad1ca, 0xe5a24580, | ||
4076 | 0x7f739ae2, 0x9bf68379, 0x88099214, 0xa1853374, 0xdd97f701, 0xac776069, | ||
4077 | 0x03b411e4, 0x257ec7b0, 0xd1a70a23, 0x0578103e, 0x8d8397ec, 0x61b6463b, | ||
4078 | 0x9d75a6fc, 0x9955718c, 0x919bf75c, 0x0f782f54, 0xeda2f952, 0xb405f0ad, | ||
4079 | 0x5d7095af, 0x04b07adf, 0x24eaf3eb, 0x6beb4192, 0x60f9ec93, 0x26dcd2af, | ||
4080 | 0x63373c5d, 0x4e7e3eac, 0x5806eefc, 0xf3e6cfff, 0x1c00c405, 0x53bd790b, | ||
4081 | 0x7de1ba59, 0x5c4c5ffa, 0xee67b66c, 0x93f14278, 0x771f4d3d, 0x723f285f, | ||
4082 | 0xed3ae200, 0x06ed6dca, 0x9463900d, 0xf59b85db, 0x21b78175, 0x09e64a4a, | ||
4083 | 0x6236c9b0, 0xadb5bc03, 0x67c1dbc7, 0x8cdfef63, 0x7c71d81c, 0xce64f11a, | ||
4084 | 0xc935e3d1, 0xb5abc7a9, 0x066f018f, 0xf4b8a6bc, 0x3a66a2f8, 0xa9af0890, | ||
4085 | 0xfae87b43, 0x7af1bef9, 0x6fb3e017, 0x57f49f14, 0xa262c966, 0x56767007, | ||
4086 | 0x46ffc8c2, 0x85b5c979, 0x55f7f825, 0xf8658199, 0xf5052b95, 0x5f870e40, | ||
4087 | 0xb3becd9a, 0x60c8bc82, 0x2f285d55, 0x3b046910, 0x391f256e, 0xf2268e80, | ||
4088 | 0xb7d2b909, 0x37de3a6d, 0x59d1df71, 0xc075abf4, 0x1f23d7cf, 0xe9fc5d20, | ||
4089 | 0x0f22b024, 0x00e5d1e4, 0x59f416bb, 0xbae9b39c, 0x711f55f1, 0xcdfea6ce, | ||
4090 | 0x96073e6b, 0xf7b0168f, 0x0091fb9b, 0xe1831bac, 0x884e590b, 0xeba1cf67, | ||
4091 | 0x1fffaa34, 0x80265ad5, 0x9517fc3f, 0x55eecfad, 0xab772c35, 0x47ffae26, | ||
4092 | 0x79f201ff, 0x00ffa99a, 0xd0e6a5f1, 0x50d5cb26, 0xbf3195af, 0x75569bc0, | ||
4093 | 0x14df8c2d, 0xb35c1952, 0xf64f182d, 0xc768abd6, 0xc48f669b, 0x9f311a7c, | ||
4094 | 0x163c90a6, 0xa1cdd9e2, 0xc4f7ec4f, 0xdaa69dd8, 0xbb05ae27, 0xb12994f7, | ||
4095 | 0x628cfbff, 0xc87e6efa, 0xfa3d38ba, 0xf509d28c, 0xe83da3e7, 0xb6262a3c, | ||
4096 | 0x9becbf22, 0x77ce337b, 0x9a724847, 0xf2a5dc29, 0x0fe83f1d, 0x537f86fb, | ||
4097 | 0xee24de98, 0x58b333f1, 0x5f563ce8, 0xabd4888c, 0x7ec32afe, 0xc3c45d25, | ||
4098 | 0xcac0e2be, 0x8c87e8b9, 0x0292490e, 0xc108ebfa, 0x0fc8467e, 0x7f32c094, | ||
4099 | 0xe3a28350, 0x0921c1c7, 0x91b836f1, 0x90d37e60, 0x61f6fa23, 0xae218a8d, | ||
4100 | 0x9f819016, 0x3fd29c46, 0x6d7c13af, 0xd7c05927, 0x25965e4f, 0x5b9a4ff0, | ||
4101 | 0x1d396b88, 0x977679bf, 0xf9a78022, 0xd046ec02, 0x363cb2f2, 0x8ff7fad1, | ||
4102 | 0x9e87f30a, 0xc6fed8d2, 0x816d7353, 0x6fbe9465, 0xb8c72dce, 0xf13f17c4, | ||
4103 | 0xbfb44f74, 0x5287a315, 0xdc83684d, 0x75cfb0a9, 0x1295c4df, 0xd552031a, | ||
4104 | 0xfe252cb9, 0x82bfc17d, 0x771f059f, 0x09ec9b9e, 0xb2671824, 0xe294fcca, | ||
4105 | 0x8d247db9, 0x5bb4d7c2, 0x4da57422, 0x747b969a, 0xe9630ef1, 0x0173cb27, | ||
4106 | 0x79ed6f1e, 0x2594ec0d, 0xfa0fd894, 0x3ca3b14c, 0x2ff72d34, 0x1fb5bc83, | ||
4107 | 0x3bf46153, 0x27dfaebf, 0x48723e31, 0x2cefb271, 0x9e813355, 0xe42c732d, | ||
4108 | 0xd6379639, 0xf00a5279, 0x55b8c97b, 0xcba7de14, 0x9f37684c, 0xbf085d52, | ||
4109 | 0x7961317f, 0xa2ff7c71, 0x61b204eb, 0x5cfc8c4d, 0x95248a54, 0x0ea92bf6, | ||
4110 | 0xe3c33fec, 0xd77e0092, 0x8769ffbf, 0x4be690fd, 0x1763a466, 0xdf10f71e, | ||
4111 | 0xfad95575, 0xfeea8371, 0xd0f58152, 0x0b944cfc, 0x9ceec797, 0xf5f2ed4d, | ||
4112 | 0x09ef14b5, 0xffe146fc, 0x98e87ba5, 0x9b749e14, 0xb892f909, 0xd5074edd, | ||
4113 | 0x7e225e77, 0x8883947e, 0xa225845c, 0x51ea8e0c, 0x53852429, 0x681c3ea8, | ||
4114 | 0x5a6585b1, 0xf3a7cfa6, 0x6231fd86, 0x2835fd61, 0x40fb2367, 0x7ca1aeb8, | ||
4115 | 0x4d821839, 0xaef587f4, 0xafd0bfd8, 0x84af2f42, 0x67ed36b8, 0x604a63e5, | ||
4116 | 0x9d67ed05, 0x357498d2, 0xcedcf32d, 0xba412062, 0x5003f4e2, 0x2e27cd57, | ||
4117 | 0xf6b1210a, 0xf1169f5c, 0x0ed0a847, 0x78c64af8, 0xd38e9180, 0xf4f2f822, | ||
4118 | 0xf3fce952, 0x09bcb60f, 0x892b8b6e, 0x6fdae78d, 0xca593b41, 0x4fb0eaed, | ||
4119 | 0x17d0014d, 0xee237c24, 0x112d799b, 0x17d3a0fd, 0xc4686ec3, 0xef61ae7c, | ||
4120 | 0x54a87833, 0x41fde1b9, 0x7d723c11, 0xa136fdc2, 0x8284863f, 0x2eaeb085, | ||
4121 | 0xb5ee1508, 0x3e0bf1d1, 0xa71b7262, 0x15d20e3f, 0xaf6f8f5b, 0x307c8c37, | ||
4122 | 0x90e54c20, 0x1d1fa5d3, 0x23a0f0bf, 0x52f68752, 0x7019ea95, 0xc99eb916, | ||
4123 | 0x1b30389c, 0x7f38bdf7, 0xe42af119, 0x05e728d9, 0x9af6bbf7, 0x0c885c19, | ||
4124 | 0x8a4438e3, 0x09ece1c2, 0x392de87a, 0x1157f415, 0xeb8503c5, 0x696f2e73, | ||
4125 | 0x60e30217, 0x6e864ffe, 0x65df224a, 0x7e99b25d, 0xc62f631d, 0x20d99ec9, | ||
4126 | 0xd85ed477, 0x7b150f01, 0x8f4c682e, 0x11de9185, 0x0172a7be, 0x10b909df, | ||
4127 | 0x6fe46efc, 0xe82b0f21, 0x189ea657, 0x4760249f, 0xce082965, 0xeb61d52e, | ||
4128 | 0xe157801c, 0x1a7f1337, 0x3a9663c6, 0x78eb38d8, 0x24d2ca5e, 0xd7fa7677, | ||
4129 | 0x25ef5fe8, 0xc4c40913, 0x8b4abc39, 0x7bd17a06, 0x8c812349, 0x8d9f80ef, | ||
4130 | 0xad59f871, 0xcfc78a76, 0xebf3c86c, 0xfe02bff4, 0x87fe1180, 0x5ff8519c, | ||
4131 | 0x421456b7, 0xe70efe9d, 0xef9bd2c4, 0x15f90a13, 0xb6b43af2, 0x9cb52f72, | ||
4132 | 0x2719f271, 0x0c80a197, 0x4f978a78, 0xccf41932, 0x23f33088, 0x817a728c, | ||
4133 | 0xf6f9a3cf, 0xefc0de96, 0x0ea7b2f9, 0xf7def7e0, 0x2fe83745, 0xc63249df, | ||
4134 | 0x6bf32053, 0x2bd81765, 0xb3a190d2, 0xda76f107, 0xf5c4e8cf, 0x9f9f057a, | ||
4135 | 0xd4f94b54, 0x9e05fb0e, 0x0affd07d, 0x41ff5b07, 0xc7f41e40, 0x7bf3c545, | ||
4136 | 0x852b0b90, 0xa7e2192d, 0x1879c27d, 0x45c832a7, 0x3560725b, 0xce9079f0, | ||
4137 | 0x9f8cec17, 0xa5ab99da, 0x5879e1b6, 0x52f0634d, 0xa23f07e9, 0x06c260eb, | ||
4138 | 0x8fb820ab, 0xe59f35da, 0x602d74af, 0x729fd6f9, 0x50c27e7d, 0x3eca545e, | ||
4139 | 0x0aa97986, 0xbe0b9bf1, 0x2a00dc3d, 0xaa4e5fc4, 0x1f008fee, 0x9c6eb196, | ||
4140 | 0xb883ae47, 0x72276a24, 0xa2e4a095, 0x722fa470, 0x9fc6bda2, 0xbfb49fb0, | ||
4141 | 0x22cef1dc, 0xd52e77a0, 0xcaf71089, 0x91247f05, 0xc22aa85c, 0x3ef9adfd, | ||
4142 | 0x5f07e710, 0x407f7ce1, 0x18cdf3a3, 0xbcb1a2df, 0xd4ce2a85, 0xdbf0092e, | ||
4143 | 0x4e3b7294, 0xc4a2e9b6, 0x8634fcfc, 0x08bae367, 0x52f30608, 0x8d41fd78, | ||
4144 | 0xb8e94928, 0xbec3f16e, 0xc164dfb2, 0xb8958b75, 0xbae7a082, 0xbe1e2c68, | ||
4145 | 0x86ad724a, 0x16952ffa, 0x78f9e40b, 0xfefd6cad, 0x2e49c8e8, 0xbf62be85, | ||
4146 | 0xd61f35a1, 0x3bcf949e, 0xa6fdf469, 0x57bdad91, 0xba5a0ce2, 0xcb737e31, | ||
4147 | 0x27c12f30, 0xb56e8215, 0x496e8eaa, 0xa1888f10, 0xad148adb, 0x4dc5f80f, | ||
4148 | 0xd60bb252, 0x240b4d29, 0xe164a706, 0xff9053f3, 0x1e127122, 0xf2d42857, | ||
4149 | 0x6f423f10, 0x86acf9d3, 0xfb0dc052, 0xf92fd0fa, 0x89b0359d, 0x8f1bfabe, | ||
4150 | 0x81c433a5, 0xed8e67b3, 0xaf67710c, 0x491ba5bd, 0xf3a60710, 0xcbf3001b, | ||
4151 | 0x40d32b56, 0x79df65cf, 0x30f40edc, 0xd7f62dc2, 0x4bfb07f0, 0x586c656f, | ||
4152 | 0x7125fe83, 0xe7cf7ab3, 0x05094eb0, 0x60e39978, 0x2a49cff0, 0xb7d58acb, | ||
4153 | 0x132cfa4f, 0xef5a2515, 0xec4bc914, 0xffe7cba3, 0x89daefb5, 0xbd7be9a3, | ||
4154 | 0x59372635, 0x9fe3f5a4, 0xd6e671d1, 0x3f105d58, 0x8cf65478, 0x773fb803, | ||
4155 | 0x70975f3b, 0x01295d1d, 0x959f8b1c, 0xf079d3c8, 0x43fb611d, 0x1f943f1c, | ||
4156 | 0xd98ecf3a, 0x2ef3a037, 0xd3c506d3, 0xb52559b5, 0x7212e710, 0x2ca7c999, | ||
4157 | 0x4ba082f4, 0xea9bd026, 0xe5465205, 0x8dce2634, 0xdc6166af, 0xe8527f0a, | ||
4158 | 0xbf02fff7, 0x31437ed1, 0x1ba09dca, 0x48f4c3e9, 0x4c75c812, 0xfeb9aabc, | ||
4159 | 0x14fcabbd, 0x9fffbf8e, 0xb68429f3, 0x496943ff, 0xf53e3901, 0xdc535fc0, | ||
4160 | 0x00f60f90, 0x977acf5b, 0xeebce2a4, 0x8ff77ee2, 0xb46a9e38, 0xd79872b2, | ||
4161 | 0x637fbedd, 0x6fa2379c, 0x8efb67ef, 0x8ffaa80b, 0x4b6a2fdd, 0x1479c32f, | ||
4162 | 0xfd7793a2, 0x8562ecbe, 0x7e30eb9d, 0xeb6349bf, 0x1bd505e6, 0xc0275cb4, | ||
4163 | 0x806ff9e3, 0x5f5f14e7, 0xf161aa9c, 0xacdf011e, 0xf81a01ea, 0x9908ffdc, | ||
4164 | 0x1fed9849, 0xb95f4ca9, 0xb7c5126d, 0x08d1e387, 0x179e01f7, 0x3257e739, | ||
4165 | 0xe933c1fa, 0xb953f758, 0x601684f7, 0xff08c71c, 0x52bcba9c, 0xf3987fc8, | ||
4166 | 0x29eb84b0, 0xaa01ff78, 0x3ff73d3f, 0x68e80e74, 0x9f319f9c, 0x171f18c4, | ||
4167 | 0x43c8b37e, 0x983c4d9b, 0x27171297, 0xfb1cfd0a, 0x9e8bc637, 0x797af8d5, | ||
4168 | 0xfb021930, 0xbef96725, 0x621b9c3a, 0xcb04ebfb, 0x14925072, 0x1e968b9f, | ||
4169 | 0xb926052a, 0xc61b72a3, 0x33f8c5eb, 0xf833f8f8, 0xaae15438, 0xe633c7c0, | ||
4170 | 0xf36217ab, 0xdc68b6dc, 0xc7421e6f, 0x89e3a393, 0x39731671, 0x7a0be314, | ||
4171 | 0xe72abe0a, 0x7f515d74, 0xd3235bb2, 0x0c498703, 0x9ff88c7d, 0xca2b3bf7, | ||
4172 | 0xa1cf0447, 0xfd039c5f, 0x51736738, 0xec271769, 0xc28e545f, 0xcfe269fc, | ||
4173 | 0xe16af961, 0x1bb7581c, 0x36a4def1, 0xd8257376, 0xfee2689f, 0xb9717b5c, | ||
4174 | 0x03c89a1d, 0x94f2c2a8, 0x67e07552, 0x191b87c0, 0xb9de2c1f, 0xb79075e5, | ||
4175 | 0xb2bfadf2, 0x569dbc83, 0xbc60b2aa, 0xb41e9b45, 0x29c57ec3, 0xbd076fc5, | ||
4176 | 0xe4c03a78, 0x8aefc8ce, 0x305bec59, 0xe0f6157e, 0x9f3fcbcc, 0xc5f9fc00, | ||
4177 | 0x7a01d526, 0x1cd9bbde, 0x547c5336, 0xd0fc30d4, 0x7f5651fa, 0xade2f108, | ||
4178 | 0xfe5dc3d5, 0x9cb2afe2, 0xe7969f6c, 0x9d7185f3, 0xd3f1b15f, 0x2f0f9052, | ||
4179 | 0x1d7dc169, 0xfe3077e3, 0x97dc74a5, 0xc6a5a99b, 0x11be0bb7, 0x8d6f05eb, | ||
4180 | 0x3c469be0, 0x7f7c665f, 0x172fd73e, 0xfe72bf05, 0x0120f811, 0x9de457a6, | ||
4181 | 0xd28ff3eb, 0x7f8dd9fa, 0x62fd4bb2, 0xbfcb09f5, 0xf3de0d68, 0xdb672eec, | ||
4182 | 0xe71360fe, 0x0177e8c3, 0xcb59cefc, 0xac4230f3, 0xed86a45c, 0xb4591710, | ||
4183 | 0xecf5c541, 0xbfcf2da2, 0xbdd834f0, 0xabaecdf7, 0xb70bff69, 0x38777fec, | ||
4184 | 0xa6dc2fad, 0xd3678e66, 0x763149b0, 0x5a7c0bda, 0xf943a510, 0xb39afdf6, | ||
4185 | 0x40fe7b3f, 0x0b1e947a, 0x48d1edb7, 0x947c78ff, 0x8c68f704, 0x09740dff, | ||
4186 | 0x7d852d1e, 0xbfe7796e, 0xe9fba035, 0xbc8112dd, 0x6e7c38cc, 0xd2fb8fd8, | ||
4187 | 0x23a42780, 0x6e8453a7, 0x94bdf786, 0x39e7682e, 0xefed8c9d, 0x3fe40e69, | ||
4188 | 0x5dce0fe8, 0x757e7e51, 0xfccfc517, 0x982ecc0f, 0xef57fcff, 0x4e3cc3b3, | ||
4189 | 0xaf8c952a, 0x05983fd7, 0xeabe6476, 0xc96072cf, 0xe67fcf9e, 0xf36fc847, | ||
4190 | 0x8b28fd0e, 0x99d2fd30, 0x9dfcd1c5, 0xd6737e61, 0x9bf386dd, 0x77c83c4b, | ||
4191 | 0x65cbd7f3, 0xa8babf10, 0x12dbb190, 0xb94fc5c8, 0xce7c9c5c, 0x27f8fb8c, | ||
4192 | 0xb8531ec1, 0xccc8effc, 0xa2f721cf, 0x9f11fd7d, 0x58fcb50b, 0x18e3c8bf, | ||
4193 | 0x1e22cd13, 0x2c72b54c, 0xa87c6ebf, 0xe673e801, 0xc436772a, 0xf144bd01, | ||
4194 | 0x57487c73, 0xa1f2bf68, 0x3f5cd931, 0x7f189539, 0xc39e04b7, 0x3baa0dfb, | ||
4195 | 0x1df75f29, 0x1d1792b9, 0x9f1f297f, 0xfb0c9dc2, 0x12b327c6, 0x305f87c7, | ||
4196 | 0xd611624b, 0xa303f3a0, 0x7de4cdf2, 0xbe4cc3e3, 0x2607bc85, 0x0bf6858e, | ||
4197 | 0xc0fc9987, 0x53c7e077, 0xd8d9c2b8, 0x848a67be, 0xc3da80fa, 0x51bd7244, | ||
4198 | 0x6fad72e5, 0xe1427c17, 0x897fc056, 0xfb610bf0, 0x7e7927bc, 0xe927dcfb, | ||
4199 | 0xc1763177, 0xe3d9e30b, 0x3b7213fb, 0x6617f84f, 0x7593fcbd, 0x5bc6129d, | ||
4200 | 0x22c47e8c, 0xd3c2f035, 0x3e54af20, 0xda2edf41, 0xbcc196a2, 0xfbdeab3f, | ||
4201 | 0x9ca90fee, 0x7214167c, 0x469fd7aa, 0xdaff9d39, 0xa34fe47e, 0xdc167e9c, | ||
4202 | 0x4e50959f, 0x73c7edb7, 0xfa72f1b7, 0x053fab3f, 0xf01bd6fe, 0x5b61f427, | ||
4203 | 0xc3ea3478, 0x4fc410e1, 0xb7090fa0, 0x13fe46c3, 0xadf8277c, 0xddc595fc, | ||
4204 | 0xf844ef41, 0x845df052, 0xc5df052f, 0xf0ead1e5, 0x083f3717, 0x589f01a2, | ||
4205 | 0x75828ed6, 0xf6c5c586, 0xcb39ae13, 0x819693e2, 0x67d6fd6c, 0x43f582ad, | ||
4206 | 0xb020c726, 0xec4613fb, 0xa427ecfc, 0xbef9fe6d, 0x963e9dcb, 0x65075fa3, | ||
4207 | 0x895f042f, 0x1090e3a5, 0x16fbd383, 0x7d40f409, 0xf76396e0, 0x930b640b, | ||
4208 | 0xbd1f9df7, 0x2c780856, 0xca97ee6a, 0xae1babf8, 0xb5fc445b, 0x054cefd5, | ||
4209 | 0xea1ada7d, 0xad4f7989, 0x4494e507, 0xe25fa5e7, 0xfb857df4, 0x491bcd5b, | ||
4210 | 0xadf94c95, 0xdfa0b499, 0xc168dfe0, 0xbe38b67c, 0xe67f3330, 0xe803e2bb, | ||
4211 | 0x2978f80f, 0x5134b1a9, 0xf9f09a3c, 0x5ff3784e, 0x0baf1f68, 0xbf81306d, | ||
4212 | 0x9346dd7e, 0x24be4fce, 0x1480baf8, 0x784f5f00, 0x20652933, 0x2ecaf3ee, | ||
4213 | 0x0dee5738, 0x093cd39d, 0xf38c95f2, 0xdfc1fe87, 0xe0716fea, 0xc1a86fb8, | ||
4214 | 0xdbdcf07b, 0xeb0216e7, 0x6aad3a85, 0x3b382261, 0xeb383125, 0x7cba338e, | ||
4215 | 0x6a29785f, 0x618b85b6, 0x61237a7f, 0x3a38f671, 0xde0eb613, 0xaa7f704c, | ||
4216 | 0x7ab32435, 0xa347db35, 0x2462fca0, 0xf699777c, 0xd79f231a, 0x057b6ed4, | ||
4217 | 0x8455e7ce, 0xb6898724, 0x1a8d2857, 0x36b78bf0, 0x363d064d, 0xcbce29c0, | ||
4218 | 0x894ffa3b, 0x16febfe1, 0x77b9e705, 0x00331bf8, 0x6acfe72f, 0xddd5f604, | ||
4219 | 0x60ec5afb, 0x0a87ceef, 0x9adadf91, 0x191f76d7, 0xfee9eb05, 0x78a77f00, | ||
4220 | 0x4eabf63a, 0x9447d5d6, 0x5c00ba78, 0x4b8dcc13, 0xfef0095d, 0xf7d9858a, | ||
4221 | 0xdb3e4bef, 0xbf2c3b2b, 0x7afc8587, 0x7c41bf70, 0x378700ff, 0x13b37e46, | ||
4222 | 0x6592efc9, 0xf7986cce, 0xd99efa92, 0x7f25cf80, 0xe2253b50, 0x963e2dab, | ||
4223 | 0xee15b4df, 0xadf90017, 0x7d7bf2a1, 0x50d6fc8c, 0xff8bcdf9, 0xfbe5ae6e, | ||
4224 | 0x202ddf95, 0xfbe009bf, 0x90af9f09, 0x51d0fcdf, 0x1afcdf94, 0x4acef9fd, | ||
4225 | 0x2bf27b4b, 0xf2c29a75, 0x04d65c60, 0x00f01afa, 0x795bb2f9, 0x038c387e, | ||
4226 | 0x37c2fc72, 0x24bce394, 0x4a7fef06, 0x20ec978e, 0x4f128798, 0x4bc7266f, | ||
4227 | 0x4b1ca8ea, 0xc7267740, 0xcb09ea4b, 0x6fc83407, 0x65f9389f, 0xd98457df, | ||
4228 | 0xbcdadef7, 0xc741dcdf, 0x2eab702b, 0x20bf7d0b, 0x6283cf2a, 0xb685f9e5, | ||
4229 | 0xc760f9e4, 0x970779e4, 0x3da72a67, 0xeae8095c, 0x63f3e90a, 0xb27618de, | ||
4230 | 0xe5f03b7a, 0x275c659f, 0x0f79e21d, 0x7276197f, 0x3fc5f020, 0xff8a1e00, | ||
4231 | 0x9a6f9c3d, 0xbfec7e7c, 0xe853f874, 0xabec9547, 0x03ec35fa, 0x12a8de2e, | ||
4232 | 0x351587d0, 0x328fd147, 0x5f85bfae, 0x0b875c65, 0x7e5ed23d, 0x776e61cc, | ||
4233 | 0x088dca26, 0xc65b792f, 0xf38c3ffb, 0xc1c5ef17, 0x5deab079, 0xc042afb8, | ||
4234 | 0x407c5ed9, 0xb83da3cc, 0x15debcc4, 0x148032f2, 0xe286dc42, 0xffc5e511, | ||
4235 | 0xb5cf1947, 0xad5d1595, 0x23e51fbb, 0xaac2cf8e, 0x870812a2, 0x37e7e44f, | ||
4236 | 0xf7bdaee7, 0x18af9c00, 0x0059c474, 0xe188f4ee, 0xa7ac0f66, 0x416a4a5e, | ||
4237 | 0x49741679, 0xb974624d, 0xa379fbc4, 0xf031654b, 0x7256b79b, 0x86f1dd80, | ||
4238 | 0xc1f785ff, 0x8bea7dec, 0x05a3e052, 0x8cc392f5, 0x834e787c, 0xb5295e75, | ||
4239 | 0x854fc0bf, 0x7eb873a1, 0x245f505b, 0xea0bf7c3, 0xa3c0bc24, 0x9474fc3d, | ||
4240 | 0x0edc296e, 0x6df8016f, 0xb30b6700, 0xd13e1c6b, 0x3afc55ee, 0xbe9e4bf8, | ||
4241 | 0xc1972ab4, 0x571704ed, 0x02283bc0, 0xe7194cef, 0x057841d5, 0x3783dbde, | ||
4242 | 0xc74f4935, 0x679e47b7, 0xb4a110fb, 0xbe6bad0e, 0x97887ee9, 0x4cfae034, | ||
4243 | 0x90cc8bec, 0xac0b663d, 0xf3e97b6f, 0xc1690995, 0xa1efebbc, 0xf5d7ff7f, | ||
4244 | 0x0037d91f, 0xece41dff, 0xcbae2a4f, 0xb338a497, 0x1df1dce1, 0xb75d2af0, | ||
4245 | 0xfb336d34, 0xff313de1, 0xabb73e13, 0xc3710297, 0xf19e58b1, 0xf57ab995, | ||
4246 | 0x4f6fb18a, 0xbe43b79d, 0x821f7357, 0x294d2179, 0xda274e2c, 0x0b3249dd, | ||
4247 | 0x587e73fa, 0xf57c34a4, 0x1b49f821, 0x5c03061b, 0xbcf32e27, 0xb1e6cb92, | ||
4248 | 0xd3ddd689, 0xe7109db9, 0x3802ef28, 0x2fb2249d, 0xe59f377a, 0x927e705d, | ||
4249 | 0xad6667ae, 0xf8852b4b, 0xa0bcf1b2, 0x83403827, 0xde31a438, 0x11b88738, | ||
4250 | 0xd0f9718f, 0xbf1611e4, 0xeedff034, 0x273b0724, 0x706a54aa, 0x3ac4f65e, | ||
4251 | 0x8829f889, 0x8f88db0b, 0xf1e24c6f, 0x1fc20ec8, 0x46b1ce77, 0x11b978c2, | ||
4252 | 0x971b79ee, 0x6042eaad, 0xf15e6cbe, 0xb579b3f0, 0x78d20f35, 0x8bb58923, | ||
4253 | 0xbcec420b, 0x3223c576, 0xaf3c83b3, 0xe02bc044, 0x2a5dc233, 0xa7ff422f, | ||
4254 | 0xfa8cad79, 0x607f2ef7, 0xba479c15, 0xfb84a56b, 0x54f9c62e, 0x009cced4, | ||
4255 | 0xdf43c0fa, 0xf3693887, 0x69ed0447, 0x00296af3, 0xd73f8c78, 0x4bfb66e9, | ||
4256 | 0x427bbc7c, 0x7e7351f2, 0x1ea2f4db, 0x3665d20e, 0x849acba5, 0xd5c8a3fa, | ||
4257 | 0x168e462b, 0x7ab9c604, 0xe20bc6e9, 0xe6e17eba, 0xbfe7ba89, 0x74f1e249, | ||
4258 | 0x4f6fbf1e, 0x6265489e, 0x47e422bd, 0xaf9093c8, 0x817ce0dd, 0x0702519e, | ||
4259 | 0x4f00f372, 0x1a7ea18f, 0x4c5e7b27, 0x8f217962, 0x54afa74e, 0xe79e753c, | ||
4260 | 0x0cbc7085, 0x2399f465, 0x6de7c78f, 0x078a31e9, 0xb6c0fedd, 0xe27c7d24, | ||
4261 | 0xcc47cebb, 0x9881c843, 0x8c0e519f, 0x21e91bdf, 0xba46c0e2, 0x6721e918, | ||
4262 | 0x7e40fa9b, 0x5d939121, 0xb9cb77e0, 0xe8d7caa6, 0x5a7772b8, 0xcbf703f6, | ||
4263 | 0x65a4cf25, 0x7928c955, 0xa8572d16, 0x30ad2f4c, 0x1898b8b1, 0x970e5dff, | ||
4264 | 0xcb923328, 0x3ec1270e, 0x830ddbe3, 0x0c2f2cad, 0x5c7145f7, 0x9215a78a, | ||
4265 | 0xe83f809b, 0xfed04fdf, 0xbd926417, 0x712b7f80, 0xd6fdc50f, 0x9e3e7124, | ||
4266 | 0x5fd2e1e5, 0x582e942e, 0x35a70fc7, 0x83473fff, 0x8ab2ecbf, 0x4f5625fa, | ||
4267 | 0x153de135, 0xab25ffc4, 0xb93af367, 0xa2b9eacc, 0xfc29d69d, 0x7bfceeae, | ||
4268 | 0xef566ff2, 0xcdffda2b, 0xb45ebfde, 0x21dac57f, 0x7fb69481, 0xa357f0f5, | ||
4269 | 0xae7f30fd, 0xbbb548c7, 0x62bbf02f, 0xe529eb62, 0xdcf30d4d, 0x15fe3e44, | ||
4270 | 0x96ab97ce, 0x8562bf15, 0xb762a23c, 0x67c4f213, 0xdf3b73f0, 0x90f414b6, | ||
4271 | 0xf7bc26ad, 0x9ba04a01, 0xc0e2cc96, 0xc6a49e82, 0xcbce17dd, 0x2fbba091, | ||
4272 | 0x246635e4, 0xc192927b, 0x61ab7abf, 0xcd47c814, 0x060c1f3b, 0x0ee80bff, | ||
4273 | 0x05be14fd, 0xfa50da77, 0x436abced, 0x46705e6c, 0x193d9172, 0x6cdd1af2, | ||
4274 | 0x3a724adf, 0x14051dc8, 0xadf6b80e, 0xf4d68427, 0x8035b2fb, 0xfb0f6a3a, | ||
4275 | 0xc1659527, 0x986ba478, 0x9cb8fbc5, 0x2e9ecbe4, 0xb8b9bcf0, 0xe061d1f1, | ||
4276 | 0x7ed89997, 0xef48693b, 0xe5a13f90, 0x74798fdf, 0x47b5b9e9, 0x3e3ee166, | ||
4277 | 0xdc90cfdb, 0x6e838c6e, 0x24179c8d, 0x25603f98, 0x6fdc2ec9, 0x7f1c9177, | ||
4278 | 0x307fcf16, 0x1cccbe31, 0xccffb31c, 0x1fbf45e7, 0x870fe70d, 0x375e5958, | ||
4279 | 0x710ca79d, 0x89c401b8, 0x33e42165, 0xf55604f4, 0x09177d60, 0xed19f91e, | ||
4280 | 0x7624f1ff, 0x336585ef, 0x4c87e5d1, 0xd876664f, 0x21f9656f, 0x12706ac9, | ||
4281 | 0x73e4ede8, 0xbb7a01c4, 0xe0a6bd79, 0xf1c50ef9, 0x3c5fcc03, 0xef002260, | ||
4282 | 0x01c06a8b, 0xd72d7479, 0x48e7ce2a, 0x4e66bfb4, 0xe3efd17f, 0xc85af39a, | ||
4283 | 0xcad078cb, 0xb1162fea, 0xd396833c, 0x5af2005a, 0x952d73d3, 0x93b3f9b1, | ||
4284 | 0xf13f9992, 0x78f14a62, 0x3eb043a0, 0x43f8c099, 0xa2065376, 0xbaa579f4, | ||
4285 | 0x63f80920, 0xe288e02b, 0xb8ecdd21, 0x3f4bfa17, 0xc3cde14f, 0xafc46ee7, | ||
4286 | 0x4a901ce2, 0x66fc3bf1, 0x47ee139b, 0x7829317a, 0xcb41c833, 0x839e1316, | ||
4287 | 0x26b9aade, 0xab6b7d42, 0x257901d3, 0x9305e62f, 0x4c5b3e71, 0xc9ad9f38, | ||
4288 | 0xa12dd72d, 0xa3e9af70, 0x14f8058c, 0xe92c512b, 0xcec54f20, 0x99f3e97b, | ||
4289 | 0xacaf4cc9, 0x7a793134, 0xf589d93c, 0x7e3a25c7, 0x8457bc01, 0x4fce24f2, | ||
4290 | 0x75b0b734, 0x0d29a76b, 0xf275f032, 0x25de7144, 0x3c7f832c, 0xbda08cb2, | ||
4291 | 0x0353691c, 0xb9538c4e, 0xfd29336d, 0x07661147, 0x08b47d46, 0x0528c3f3, | ||
4292 | 0xfda08f0e, 0x04a9b5ed, 0x1e7845e6, 0x4f9c8de8, 0xb28d206e, 0x70dfb685, | ||
4293 | 0x74c2b889, 0xe92f1bbc, 0x2ddcbff3, 0x8d14d18e, 0xb62488a4, 0x78f863c7, | ||
4294 | 0x00adc4c5, 0xf45894ff, 0x7b018def, 0xe318e14c, 0x49339c30, 0x1bb476e6, | ||
4295 | 0x2e7b16e9, 0x8dede447, 0x853dfb91, 0xcd58c0fe, 0x66d87805, 0xfb07bf73, | ||
4296 | 0x9506fe7f, 0x46175a24, 0x6a3ed7d6, 0x61537a39, 0x798c94b9, 0x6d1f947b, | ||
4297 | 0xadd707c0, 0xfdc3f2ad, 0x62f5d787, 0x81df03fd, 0x7d66b95e, 0x87d80666, | ||
4298 | 0x511f4e02, 0x7e033e0a, 0x7e32a472, 0x951f5c72, 0x79c9f5c7, 0xbe429fc8, | ||
4299 | 0x9fa0cf80, 0x46606a5d, 0xe50738a2, 0x9fc0f5cf, 0xfd046cdb, 0xb6779fdb, | ||
4300 | 0x12b9034c, 0xfce31ce3, 0x2d572c6f, 0x8547b25b, 0x76645f79, 0x4b977466, | ||
4301 | 0x3c8c635a, 0xc1852bfe, 0x4d5675eb, 0x1bf1009e, 0x2dfb8a9b, 0x162e3c59, | ||
4302 | 0x639d1fcb, 0x59f043f8, 0x51e58d93, 0xa9297e08, 0xbbae2bfb, 0xe2122e4a, | ||
4303 | 0x3f1123c8, 0x28cbf04f, 0x61f3187f, 0xd7e61147, 0xe8a5f919, 0x7d015382, | ||
4304 | 0xb4bf1ed4, 0x089027c5, 0xc8d27605, 0xb992072f, 0xbf26d29f, 0x5e03b65c, | ||
4305 | 0x6497d696, 0xa4fc5d7f, 0x5b47f396, 0x4cacc3ed, 0x5f9f19ef, 0xa8f66148, | ||
4306 | 0x41faab4e, 0x5b85e83e, 0x7b902e4c, 0x70b90dca, 0x325d513f, 0x95288efb, | ||
4307 | 0x4dbea13d, 0x5b667a61, 0x667a8cc8, 0xc1e3cd9b, 0x161cd07d, 0xa78a241f, | ||
4308 | 0x5c9af211, 0x35ce2c5d, 0x0cfcfc31, 0x1aa0bfe7, 0xe212761e, 0x74607f0b, | ||
4309 | 0x014b7a1f, 0x9d25189c, 0x1fb93367, 0x00db4a78, 0x6c3dcbf7, 0x7c0d3a2d, | ||
4310 | 0x04b20c95, 0x35c74f79, 0x38ad77dc, 0xdbfea1ae, 0x2950fbb9, 0x9e0afdd8, | ||
4311 | 0xd76431e7, 0xd062d2a1, 0x37a65627, 0x29fd71cf, 0x4e60c3ea, 0xf70d0fa0, | ||
4312 | 0x4c230d15, 0x53ddc54f, 0x1f937c04, 0x77bb8f6d, 0x0635d1a8, 0xef771ac8, | ||
4313 | 0x98f711d0, 0x7bdc2714, 0x797bc1e3, 0xe1efeee2, 0x67bc60fc, 0xc7927fa6, | ||
4314 | 0xf83f0562, 0x36dd8695, 0xb3276be0, 0xb2ad41c7, 0xa92bcb2f, 0x23fc09ec, | ||
4315 | 0x147f0ce4, 0xf7bfc15f, 0x7cf62e79, 0xbe7c2dc3, 0xb614b88f, 0x61a8dd3f, | ||
4316 | 0x082fe81e, 0xedc82efb, 0x1e6b6f52, 0x5f4b0bd3, 0x5d7c019d, 0xf98ddf38, | ||
4317 | 0xc8a58fb6, 0x2497fcf8, 0x7409e96c, 0xaf182972, 0x92ceaa0a, 0x3df45293, | ||
4318 | 0x81f594a2, 0x4eaed4b8, 0xfe3085c9, 0xb5cf56c3, 0x5a513f00, 0x4377c20e, | ||
4319 | 0x82141786, 0x580db65e, 0x4a760199, 0x1ae14dc0, 0x8516c9bb, 0x6595c043, | ||
4320 | 0xb0f87c65, 0xd6b5e675, 0xd03bec4e, 0x4f47b53b, 0x417be058, 0x39fd60ff, | ||
4321 | 0x3e18f746, 0xf947ba00, 0xea1bba40, 0xdc050f02, 0xbff2dede, 0x25c60f87, | ||
4322 | 0x87e103e2, 0x76ecbf51, 0x1ff78fc0, 0x73b37b97, 0x6fcf2c1d, 0x24778c88, | ||
4323 | 0x9b25f246, 0xb05d8a72, 0xf9d1597f, 0x3e525887, 0xa067ff3a, 0xff766ee7, | ||
4324 | 0x04e7f0b0, 0x45cbe4df, 0x234bafd8, 0x2e83de78, 0xe21fb0d8, 0x823cc349, | ||
4325 | 0x63060eed, 0x744fdff3, 0x59282ea3, 0x72674d60, 0x1bb5efc9, 0xefd09610, | ||
4326 | 0xc715401c, 0x75d7e81d, 0xe2e8bd45, 0x242725f8, 0x03c5ce09, 0x05c95f2b, | ||
4327 | 0x019c33ff, 0x8f300fe3, 0xed3ec30f, 0xb951d66b, 0xeb029f30, 0x8fc09ec8, | ||
4328 | 0xfa59f7af, 0xaf693027, 0x7dbf9977, 0x4fea33a3, 0x97b8fd09, 0xbfc62b77, | ||
4329 | 0xcbf4cadf, 0xcfb66e8d, 0x163d7a0e, 0x801f610e, 0x1487008c, 0x62ba6a9e, | ||
4330 | 0x6a1dbd45, 0x11be78a4, 0xd8f4a0e0, 0xf01a9123, 0xee4c8a17, 0xfbf012cc, | ||
4331 | 0x8015853a, 0x5ffeb9b3, 0x340e20dd, 0x23fbf43e, 0x9178ef00, 0xe7d2eb1f, | ||
4332 | 0x6cfd1ac7, 0xf588ffe1, 0x148ff086, 0x47e1088a, 0x7874fb41, 0xe0e9f14e, | ||
4333 | 0x0c8de0f7, 0xfefe305b, 0x5af3ab78, 0x85779737, 0x98bc63ce, 0x572be5c7, | ||
4334 | 0x4cba5246, 0x5a3f3120, 0x0a4a05bf, 0x2483f8ff, 0x82f18c9c, 0xe7f80516, | ||
4335 | 0x8e449716, 0xadd9f0c5, 0xf875f543, 0xf68aca8d, 0x46fbded7, 0x2242323b, | ||
4336 | 0xff1f9b5f, 0x3e83cb4d, 0x47f62fb6, 0x18f7db1f, 0x2bf643de, 0xed0db0e0, | ||
4337 | 0x1c3bf6cc, 0xb5070f0c, 0x73ed76c4, 0x4dc3ef2e, 0xef10f98d, 0x4bebb3dd, | ||
4338 | 0xee6fa3b4, 0xf05df2fa, 0x569d871b, 0x8767c408, 0x8a981e9f, 0x39a1d271, | ||
4339 | 0xf442be78, 0xc6b4fdeb, 0xe473d84a, 0xdfff711f, 0x5b8f0a01, 0x582cf803, | ||
4340 | 0xf1f671be, 0x0bbfa027, 0xdbc615c7, 0xcd52fc7c, 0xebe20bd3, 0xc81efca5, | ||
4341 | 0xa7f31203, 0x7e01fb44, 0xd6bbdaef, 0x31105e48, 0x3497d2c7, 0xe820bfa0, | ||
4342 | 0xb1a9cb78, 0x78fc95a7, 0x98efc0ba, 0x39afbfe0, 0x295edccf, 0x714e97f6, | ||
4343 | 0xefbd91bc, 0x4ddb3ee3, 0xe02af735, 0x2394dfa7, 0xb8cc7713, 0xe2569ce3, | ||
4344 | 0xfc6b898e, 0x63f06ac3, 0xc4f4bef6, 0xbf8b8804, 0x2f91e325, 0x9fdb686f, | ||
4345 | 0x20dea1f2, 0x3377dc27, 0xd0a6f5e2, 0xfdf00abd, 0x97931b38, 0x7e1fc6f6, | ||
4346 | 0xeb8fe51d, 0xf984de81, 0x9425837f, 0xdf5d231f, 0x8cdbf5dc, 0xf8f17ec6, | ||
4347 | 0x02de8b6e, 0x6f0e82ef, 0x054e2d9c, 0x0747b47c, 0xa6ee9f23, 0x79d3f3f3, | ||
4348 | 0xfcfce985, 0xd37b4fd4, 0x3efac0e7, 0x05d60e5f, 0x9feb7a7f, 0x4f3f00cf, | ||
4349 | 0x0c98e5f0, 0xeac327c6, 0xb620c89e, 0xf88c9d28, 0x74636eea, 0xc0e9fc9b, | ||
4350 | 0x7e3e5414, 0x6ce700d2, 0x536c38ca, 0x57ef1389, 0xbdfcfc24, 0x954dbed1, | ||
4351 | 0xea0318ef, 0x8cdf68d2, 0x738a6d76, 0xd7c3de26, 0x6384bdde, 0x2052aadf, | ||
4352 | 0x5954b3dd, 0x80fbb0aa, 0xe02e9f99, 0x6ff3d231, 0x09b6eca4, 0x19f0db52, | ||
4353 | 0x67071de9, 0x3d353caf, 0x3fc2bc01, 0x4e10f717, 0x78f686f9, 0xd7cf4db8, | ||
4354 | 0x7e8d4fe7, 0x5b6ad41b, 0x8ba46472, 0x83e85db1, 0x00a01852, 0x23f83f4b, | ||
4355 | 0x48596ce3, 0x1a4bd2bf, 0xb579c371, 0x93e449ae, 0xc642bb18, 0xba7e4777, | ||
4356 | 0xb59ec1cf, 0x97154fc5, 0x1193c44c, 0xf6b52be5, 0x55f02b31, 0x8565529d, | ||
4357 | 0x6c1babfd, 0x52a45713, 0xb4fe8c3c, 0x5bee0a78, 0x84089a35, 0xce84c6c6, | ||
4358 | 0x813885ed, 0x1c5d5f38, 0x7c0253da, 0xc0694fb8, 0x05f35375, 0xf8c61bea, | ||
4359 | 0x15a1b599, 0x6ac3f056, 0x0b8c6533, 0xba23481c, 0x6dc7a073, 0x3daaefcc, | ||
4360 | 0x9dc13ade, 0x0a73bda0, 0xdc4c9f6b, 0x6768f999, 0x51be3053, 0xf384daba, | ||
4361 | 0xf6b92d1f, 0x321f8267, 0xd9afdd9d, 0x7f643f5c, 0xe9b78526, 0x1fd434ce, | ||
4362 | 0xba1f6a63, 0x110941d7, 0x3e2177fc, 0xb929996f, 0x95efa39e, 0x2f585d3a, | ||
4363 | 0xeb879d9d, 0x655f21b8, 0xed0f1e4c, 0xd75c54e3, 0x2917918c, 0x3cfa6f10, | ||
4364 | 0xf5802a47, 0x71a92ee1, 0xe4fc1999, 0xe21c6c89, 0x7ac067f0, 0x19f19df3, | ||
4365 | 0xcf20d603, 0x05d5fa88, 0x75ea186b, 0x3ba5b3eb, 0xbf81efce, 0x36f4b04f, | ||
4366 | 0x8e51cf09, 0x7f12e471, 0xae94ff0c, 0xfea4f4a6, 0x7650a4d7, 0xe4f1f031, | ||
4367 | 0xc40932b1, 0x656df1f0, 0x5d881256, 0xb1f3f20f, 0xde2af52d, 0xf8e42037, | ||
4368 | 0x53bfce66, 0xdee865a7, 0x0ede6fa7, 0x886267f6, 0xfcb841c7, 0xd9cb80fc, | ||
4369 | 0x3bfd7ccd, 0x1bab93dd, 0xbf308cb7, 0x65a4cfe6, 0x671d2a74, 0x960f4a76, | ||
4370 | 0x70d2d51f, 0xe5f07318, 0xcf4083ae, 0x618fa0fd, 0x5a2f2b3d, 0x2390fc89, | ||
4371 | 0xb77f00b9, 0xb7edf4b8, 0xe3d7d50e, 0xe8353fee, 0x74e0db81, 0x0faf1c94, | ||
4372 | 0x56dfdc84, 0xc710ab2f, 0xe288adb9, 0xbd61fd17, 0x5eaede7f, 0x107cecb8, | ||
4373 | 0x5bef86dc, 0xb2a4ec2f, 0xefca9436, 0xae1fa16e, 0x7e815722, 0x3f572318, | ||
4374 | 0x4cd2fc01, 0x01399eed, 0x21fb08bf, 0x54a5f3d6, 0xc83f815e, 0xab8c4cd9, | ||
4375 | 0xe544b98e, 0x9eba2336, 0xea0be88f, 0xf812b84f, 0x7ad81f39, 0x221df6ea, | ||
4376 | 0xd4fe83fa, 0x9fdddfc1, 0xb550a318, 0x75700052, 0xd442fe25, 0x2c571857, | ||
4377 | 0x10450385, 0x8739cbdf, 0x42af1b71, 0x5768a7d7, 0x8c7a679f, 0xd2ae0bfe, | ||
4378 | 0xf46ffc15, 0x789c4433, 0x7ff08a52, 0x89117cf4, 0x31514e17, 0xa1f8238e, | ||
4379 | 0xf208f014, 0x38c6453d, 0x21fc7b7e, 0xe29fffc6, 0xe3c2920b, 0xaf48bd7f, | ||
4380 | 0xe083f08e, 0x4617c103, 0x4347f1fb, 0xfb2da75c, 0xf5f29691, 0x1f7f63f6, | ||
4381 | 0x7b74f515, 0x6764887e, 0x7363d97a, 0xb5f37960, 0x0fc0d9b7, 0x83f5c499, | ||
4382 | 0xf89143b0, 0x17c65ad4, 0x29671bfb, 0x05e46fb0, 0xc51790bd, 0x0adf88bb, | ||
4383 | 0x4d58ac3e, 0x9e397e30, 0x7aa6a5eb, 0x8ef3cf16, 0x12900396, 0xec7a1252, | ||
4384 | 0xf9675609, 0xb79e822e, 0x5228be70, 0xf7f028f6, 0x49756e5f, 0xb913882e, | ||
4385 | 0x82703c79, 0x6078c25b, 0x7f823e9c, 0xc75bf6d0, 0xd758014a, 0xa093f519, | ||
4386 | 0x7fde64f7, 0x7df09f1c, 0xdc9f2357, 0xbee5c290, 0x9ffee93b, 0x03c60bf4, | ||
4387 | 0x4db53b5d, 0x7b7df157, 0xbe0d9d74, 0x5ed9c82d, 0xfe02bf96, 0xa6f5d035, | ||
4388 | 0x3bf60a4b, 0xe7ef4535, 0xf05b385c, 0xf20b5c4b, 0xaf798df7, 0x37b4f9c6, | ||
4389 | 0xc7e124fe, 0x8c5ebf73, 0xf2c2b37b, 0xa6768df9, 0xbfc2bb5d, 0x32abd233, | ||
4390 | 0x26bfb125, 0xde1c6bf4, 0x8b6dfeb9, 0x5fe9ed6e, 0x53feefa1, 0x2bf457fa, | ||
4391 | 0xcf1882ec, 0x5adb97a8, 0xbb3d09cf, 0xe309836a, 0xf5f03727, 0xae3c0df2, | ||
4392 | 0xc3f70cfb, 0xdede3c02, 0xf782d17c, 0xb6550653, 0x63dfe53f, 0xd6d038c3, | ||
4393 | 0xe97fccdd, 0xfbe2756d, 0xc6324a0f, 0x641c1e29, 0xd74c3d42, 0x3f308526, | ||
4394 | 0x3e9098a5, 0x85dacfb0, 0x2b56b3ed, 0xe3d432e1, 0x7e40852e, 0xf1959e54, | ||
4395 | 0xfa6f83c1, 0x0fff4067, 0x5a6deb1e, 0x70e37181, 0x4331f803, 0xa7dc140a, | ||
4396 | 0x313b334a, 0x6f54dcce, 0xe6aabcc6, 0x03daffba, 0xf9aa277f, 0xf2c17122, | ||
4397 | 0x39bd5f66, 0x7a044fb2, 0x96fc8c62, 0xcd11790c, 0x0ef3042d, 0x970b4e47, | ||
4398 | 0x06e97ac0, 0xd602b0d2, 0x7635c3e1, 0xa788dd8e, 0xc6de7ca3, 0xbec8847d, | ||
4399 | 0x1bcb3d41, 0x79e14929, 0x06fb7123, 0x6fb8250d, 0x15ae48a0, 0xd33ed124, | ||
4400 | 0x60df667f, 0xf29ce038, 0x7a0c5ff3, 0x7fb1b488, 0xfb6355b0, 0x54872d4c, | ||
4401 | 0x39327e02, 0x5e309995, 0x423eded3, 0xb764eedd, 0x82fb0ed3, 0xdbaf9fcc, | ||
4402 | 0xccedc5dd, 0xfcfdfb6f, 0x986296c6, 0xd36ad6c6, 0x47632b4a, 0xe246bb8c, | ||
4403 | 0x727c4671, 0xbfedc7bc, 0x61a35c84, 0x63c462dd, 0xe2194b71, 0x4fe29bf7, | ||
4404 | 0x13d6c5c8, 0xebe06ec9, 0xb8ba27ad, 0x3c63dc61, 0x3b32e70e, 0xbf7604fe, | ||
4405 | 0x326b78ee, 0x6e6ab3ee, 0x5a1bac27, 0x762e2cd2, 0xf3e3110f, 0x78dee760, | ||
4406 | 0x3c07fc6f, 0xb935b7ae, 0x337d8fe5, 0xd851f763, 0xc51349be, 0x0faa3eeb, | ||
4407 | 0x3cfd5f7f, 0xfe7e03e6, 0x13cc51f2, 0x4c86f85a, 0xadaf102c, 0x85e7e14e, | ||
4408 | 0x03f81a03, 0xee3235e5, 0x18b9534f, 0x5625393c, 0x7960acdf, 0x3dd95b34, | ||
4409 | 0x99afe59f, 0xf7e9e303, 0x927fafe5, 0x4df6f90f, 0xc00e5bcb, 0xbff01fdf, | ||
4410 | 0x33bfb12c, 0x87cc6fe7, 0x95cb9afb, 0x2eb271c4, 0x9d7fe676, 0x034eb3ad, | ||
4411 | 0xccda40ff, 0x79605efe, 0x8e6aaa70, 0xd9a5ef59, 0xd31ef155, 0xec492f0b, | ||
4412 | 0x5f0a097e, 0xe2bf7dec, 0x7d9c06ef, 0xd5f06249, 0xbbf801aa, 0xb79be583, | ||
4413 | 0xbe39c135, 0x5c6623f2, 0x9f3779bf, 0x4b33fbc3, 0xfcc16eb6, 0x4cad6f60, | ||
4414 | 0x09d619f6, 0x9b53f3ba, 0x45e430e5, 0xbfb0d455, 0x98eb4023, 0x4c115527, | ||
4415 | 0xbdb08e7c, 0xb70b3e73, 0x87eebfd6, 0x2feda83c, 0x9dbec1da, 0x0764d869, | ||
4416 | 0xbf7ed3bc, 0xdc62fcf6, 0xc3e0a979, 0xea5e7b5f, 0x5a72610c, 0x379c3762, | ||
4417 | 0x37c19cdb, 0x6383c223, 0x78a3faf3, 0x70b9fc64, 0xe067c5cb, 0xd7d9ef3c, | ||
4418 | 0xe0067b3e, 0xf9d5f45d, 0x0d7f6067, 0xbd60f512, 0x6ff97dea, 0x7c521e78, | ||
4419 | 0xdff72777, 0x117a5e9a, 0xbd3691cf, 0x6f41766f, 0xbb27f54d, 0xa6ca79c1, | ||
4420 | 0x82caff6d, 0xfad2deb8, 0x2e77e831, 0xcffd41dd, 0xa2bafb04, 0x83e8326c, | ||
4421 | 0x1ab1ceb6, 0x66b7b5e9, 0xf380376f, 0xf06f4a73, 0xdfe7237b, 0x2ecf2c82, | ||
4422 | 0x3aadee72, 0xb8e179f1, 0x93356e73, 0x2061bd6f, 0xd40baa94, 0xdde7bb46, | ||
4423 | 0x5e3a530e, 0x55fa01df, 0xeaf3cc3f, 0x73efd312, 0xd3a507f8, 0xf3faeccf, | ||
4424 | 0xe66b17e6, 0xb434fb3c, 0x79b464d5, 0x01dc2dde, 0xc8f389bc, 0x55eeed63, | ||
4425 | 0xd79b9076, 0x85f3c15e, 0x74f1b740, 0x2e5b4da2, 0xdc738376, 0xbb96d4a7, | ||
4426 | 0xda836f30, 0x940b8843, 0xf287bfd7, 0x10e3b4d3, 0x3f0969c6, 0x2244dc17, | ||
4427 | 0x538e763f, 0x98dcf3e2, 0x71c9cec2, 0x3a39c3fc, 0x39f4e3d0, 0xf8c72f3f, | ||
4428 | 0x6ba39c58, 0xbd5cfceb, 0xefbf07bd, 0x77bb13ba, 0x1a87e378, 0x4a20dfbb, | ||
4429 | 0x3468692f, 0x3a2dbd0f, 0x00383c09, 0xcf62430f, 0xa73e2683, 0xcc373918, | ||
4430 | 0x03f405e9, 0xde722fff, 0x6247d693, 0x248f7a5d, 0x1b4d07d0, 0x26d239d8, | ||
4431 | 0xf53df135, 0xad687ce2, 0x9e62ce81, 0x9087c96d, 0xffe0f6d3, 0xc979f8a6, | ||
4432 | 0x8bf1d4ee, 0xcbd9d3c0, 0x87f8f589, 0xddbbe976, 0x8c96e36b, 0x607cdaf7, | ||
4433 | 0xd3f704ef, 0x98f9e51e, 0xcc5acf2c, 0x96f82cf7, 0xbecf4f94, 0x17fde32c, | ||
4434 | 0x517b82ab, 0x85f51b8f, 0xc23597d8, 0xb78739fb, 0x89d996a2, 0x04a5afb3, | ||
4435 | 0xb39fb46c, 0x3f21d66f, 0xd51f5457, 0xc0ef8f20, 0x8b1aede6, 0x01f933d7, | ||
4436 | 0xc71b113b, 0x9eeafb3a, 0x24dbd47c, 0x97f27e71, 0x437a1f5c, 0x56f1c789, | ||
4437 | 0xb38dd39f, 0xfbc41fd0, 0xef1bdab1, 0x0a9ee28c, 0x50699dfd, 0x4cfa3f31, | ||
4438 | 0x8d41c590, 0xedcc7fe3, 0x203ee466, 0xcf412f6a, 0x5768fb88, 0x3cf30468, | ||
4439 | 0xe79626fd, 0x6a7efc69, 0x00d3c32a, 0xee04b387, 0x82d9750b, 0x52b8b9b8, | ||
4440 | 0xd4cdc32e, 0x6c7b9115, 0xf6f7f85c, 0xe4977922, 0x2f309b91, 0x925de452, | ||
4441 | 0x50bd5927, 0x613703d4, 0xfe10e51e, 0xdac03fbe, 0xeb4c2161, 0xecf97eb3, | ||
4442 | 0x2c7efe4d, 0x3320b26f, 0x9cffcfea, 0x829630fa, 0xd5a67ee8, 0xa049fc4c, | ||
4443 | 0x3ebdf82f, 0x22b27f22, 0x3575e449, 0x9ef7f3b2, 0xfa5f9d6c, 0x77a7bb47, | ||
4444 | 0x5b73ec2a, 0x552776c2, 0xc6eb4b29, 0x4e2a1da0, 0xfabe2075, 0x03911f6e, | ||
4445 | 0xc1ffc1fb, 0x76a707f1, 0xa57f1f8a, 0x6ab7faca, 0xe074dfb4, 0x4025be97, | ||
4446 | 0x09ddbee7, 0x831773e6, 0xa3bf4a13, 0x9e7c14cb, 0xfec1c944, 0x073b995e, | ||
4447 | 0xd22b1fe2, 0x2c63cc34, 0xdd00b0a6, 0x5e5c658c, 0x72a9aa68, 0xa5c72d1b, | ||
4448 | 0xcdc875b2, 0x1ebe4ea9, 0x277f6169, 0xffc2d1cc, 0xe7db184e, 0x9682e597, | ||
4449 | 0xe981d830, 0xecbfcc29, 0xdc31f2da, 0xb4eef1ff, 0x37582ebe, 0x7a4c0d4d, | ||
4450 | 0x21b7e610, 0xf00933d5, 0xeeb4befb, 0x9b5f946a, 0x34fc0527, 0xfcb1ddc9, | ||
4451 | 0x8871f8d0, 0xdbf4fc05, 0x61057187, 0xbc18f763, 0xe955943b, 0xa7c01e78, | ||
4452 | 0xae323f18, 0x03d8bf21, 0x13883d71, 0xf11efbf1, 0xce3a7afe, 0xcc26e3f6, | ||
4453 | 0xb64a6f8f, 0x59b47bf3, 0x00b608dc, 0x3fc7def0, 0xbef9972f, 0x5f775f96, | ||
4454 | 0xa7bb2d5c, 0xb89eee3e, 0x08129e83, 0x8bef1839, 0x3b37de33, 0x4f300494, | ||
4455 | 0xdc7f78d4, 0x307ebe08, 0x40f71bde, 0x5d0fb72a, 0xbddd1748, 0x5fd616db, | ||
4456 | 0xf03d5beb, 0x09dc1b9c, 0x6b3c5325, 0x4d0c994e, 0x0d73ca8f, 0x3e708fd5, | ||
4457 | 0x4e7e75f8, 0xc761ffb8, 0x2d7f003d, 0x79435fdc, 0x1dfc177b, 0x072a2d13, | ||
4458 | 0xbb930ffd, 0xb9a75ec1, 0xacd4ff99, 0xd3cb7bb2, 0xbf4058e8, 0xc98fb834, | ||
4459 | 0x89c4fa0e, 0x9bfe1b79, 0x3c7bee09, 0xa0499729, 0x92e9721f, 0x5c47ee1b, | ||
4460 | 0x3dc7cfc9, 0xf6e9326a, 0xca9d7e61, 0xf96fe3f4, 0xefb1633d, 0xb7a04a4d, | ||
4461 | 0xeb654d9f, 0x552cdb85, 0x9f198557, 0x9f740b3d, 0x70a8f26e, 0x599a9b4f, | ||
4462 | 0x331c42a9, 0xce4fca35, 0x13e2092b, 0xeecedfef, 0xab5f7f4b, 0x81ebf39a, | ||
4463 | 0xef66f3d1, 0xc7814600, 0x6fb8e92c, 0xbee38d3b, 0x4d4ce9d5, 0xd5a7818b, | ||
4464 | 0x99dbe426, 0xeadb720a, 0x91e589e9, 0x1f719a1f, 0xcfa688e9, 0x02f71783, | ||
4465 | 0xc480fb89, 0x7da2417d, 0x291586fe, 0xe91f1fe0, 0x74e77443, 0xd2ff5c42, | ||
4466 | 0xf9039ef5, 0xf3a3047f, 0xa67f73fb, 0xff15dfc2, 0x82f48fab, 0xc5f187bf, | ||
4467 | 0x4cdd73f4, 0x73cddf14, 0xd7f8b9ff, 0x79a3ddb4, 0xdcbc04de, 0x1578db9d, | ||
4468 | 0x531dd7c8, 0x4dfa41ce, 0xf9bf7cdc, 0x9e3f653c, 0x61250ecb, 0xef3bc23c, | ||
4469 | 0x4f180acb, 0xe6f687e8, 0x1d972f9b, 0x2a70bd06, 0x8bde09f0, 0xf626c646, | ||
4470 | 0x8dfe8d5f, 0xe71773e0, 0x0db231f3, 0x493356ed, 0x5cac7966, 0x73ee636e, | ||
4471 | 0xb37ee273, 0xe209fc9b, 0x98f62b3a, 0xd99fec08, 0xe1778941, 0x87754882, | ||
4472 | 0x8af6165d, 0xf5942db8, 0xda1fcd21, 0xb95ea54f, 0x17c42569, 0xc8682fe0, | ||
4473 | 0xfa80faf1, 0x56296e2b, 0x4f2bec0f, 0x79d607ac, 0x5a96c056, 0x58607a7b, | ||
4474 | 0xdb7e84d8, 0x5f07d537, 0xe281f419, 0x82be2270, 0x605033e0, 0xc43e1fff, | ||
4475 | 0x8000938b, 0x00008000, 0x00088b1f, 0x00000000, 0x59edff00, 0xe554707b, | ||
4476 | 0xef773f15, 0xc3cdddde, 0x210366e4, 0x804d8404, 0x85701020, 0x5c7c0188, | ||
4477 | 0x94422101, 0xd6da0300, 0x02101ba9, 0x16a52d79, 0x9b8cea9d, 0x8e233480, | ||
4478 | 0xd29dad13, 0x542cce96, 0x2ec4952a, 0x4dd0689a, 0xd15c04ba, 0x63e02711, | ||
4479 | 0xb46d63a0, 0xec083a2d, 0x98f8a71a, 0xe739ec76, 0x647dd7bb, 0xeffa7471, | ||
4480 | 0xe5f98617, 0x7cebdfbb, 0xe3cefce7, 0x648a12fb, 0x40a50307, 0x676a733f, | ||
4481 | 0xf1d31c02, 0xee016bb7, 0x0d1c442a, 0x00f250e0, 0x007f73e6, 0xd63c03c6, | ||
4482 | 0xe9b6dc06, 0xdb007b5a, 0x2ed8c9ae, 0x95d6c801, 0xfc76edf6, 0x06dbb8fd, | ||
4483 | 0xbab60173, 0xc00f77f0, 0xf9e9b1f0, 0xffbf8150, 0xbe956be7, 0x16bcea57, | ||
4484 | 0x373f4d7c, 0xb772b025, 0xecf7000d, 0xb5ddc372, 0x9d701e34, 0x913ac4a2, | ||
4485 | 0x46383668, 0x9dbac401, 0xef289d7b, 0xb1b0b870, 0xddc3db13, 0x5a64d759, | ||
4486 | 0x1e17c2cf, 0x40074ec2, 0xf3e36e8d, 0x91bdb05c, 0x35eb8157, 0x87973cf5, | ||
4487 | 0x33c685c7, 0xd752e6a7, 0x64df0e9b, 0x4e7dcf1d, 0x9aee5bd9, 0xc1ed1d84, | ||
4488 | 0x508fa459, 0x87df2ca4, 0x43b4ccf2, 0xe47b3ec0, 0xf8ddfefa, 0xcb400e71, | ||
4489 | 0xcce3376e, 0x987a9cf0, 0xe223df85, 0x8687b43c, 0x817ad35d, 0xb77b17db, | ||
4490 | 0xff3d69bb, 0x7c4afa5f, 0x470700b9, 0xc4219dc3, 0x2e98be67, 0x4ec1dbe6, | ||
4491 | 0x05e9e7e3, 0xd0402f2c, 0x39170ab6, 0x9c38e1a8, 0x1b0bf177, 0x9ff6b38f, | ||
4492 | 0xaab37bd9, 0x222a89a3, 0xfa80031d, 0x3d3b0ac8, 0xa7accf64, 0x676e1400, | ||
4493 | 0xfdc14105, 0x528297fa, 0x002bfa89, 0x5dfd82af, 0x01f7f1d9, 0xa73ef1db, | ||
4494 | 0x67f61f67, 0xc6e01de9, 0x421cbbf5, 0x8c00d3ff, 0xdf1372e7, 0xc2b2fdad, | ||
4495 | 0x65c806bf, 0xea411bbb, 0x0dc077b7, 0x9b7e89b9, 0xfdcb057e, 0xa7f05d43, | ||
4496 | 0xcb623b2b, 0x53e23945, 0x5cb1f600, 0xf7813909, 0x169ce4b5, 0x7fb4280c, | ||
4497 | 0xa303ecfc, 0x9f7d2e58, 0x7210e487, 0x67aa7842, 0x0dd7cd3f, 0xee96473e, | ||
4498 | 0x74f8d2f1, 0x20b3fcb9, 0x9e09f908, 0x55018fe2, 0xd13b3df8, 0xfb855d76, | ||
4499 | 0x42de0994, 0xe2fb7660, 0xc4da93eb, 0x7cc4aaf3, 0xfb6d7ebf, 0x1db9e40e, | ||
4500 | 0xa9a2afed, 0x70af1073, 0x7c3d39d3, 0x31bca43e, 0x83d0b67a, 0xe394f517, | ||
4501 | 0x8cdffd12, 0x52e6fe47, 0xf38c573b, 0x659cf53a, 0x400feca5, 0x8202d0fe, | ||
4502 | 0x912af7df, 0x00a937b3, 0xcdaf1fe7, 0x9d73c0af, 0xeb6c0db7, 0xd49f71c4, | ||
4503 | 0xd823ca85, 0xfdf3ceae, 0x5efdc75c, 0xaedd6f7c, 0x739fa899, 0x06b79a5d, | ||
4504 | 0xe050c1e7, 0x8fa87189, 0xcf346786, 0x007e4923, 0xc445e3e3, 0xfc7df4df, | ||
4505 | 0x189eda67, 0x58747e47, 0x1db0b8f1, 0x4813e2d3, 0x47f096ee, 0x7978830e, | ||
4506 | 0x078703f8, 0xf81715e7, 0x543f9276, 0x222eb6f5, 0x8e83cebd, 0x0ce23aed, | ||
4507 | 0xaf88f81b, 0x0f5c62a1, 0xbb7e1df7, 0x926b5f7c, 0x85753a1d, 0x7dc407e3, | ||
4508 | 0x0a916b13, 0xfaffd361, 0xf631721f, 0x24c1f91c, 0x1347bf5a, 0xb5e6b33c, | ||
4509 | 0xd238c0c2, 0x631c1b7b, 0x82c7beb4, 0xd9e26af6, 0x775d778c, 0x9fe3491b, | ||
4510 | 0x69f9fd36, 0x41710fda, 0xc90f6f81, 0x43e478db, 0xf39d1e47, 0x8009a19f, | ||
4511 | 0x4f764243, 0xf97b9ebe, 0xf34fe0f8, 0xee3dbf27, 0x8ffef1a0, 0x7415df91, | ||
4512 | 0x079f0f1e, 0x1f23beed, 0xddf078ed, 0xd875e9de, 0xfc2a53df, 0x1dab47b1, | ||
4513 | 0xdf5be347, 0x086b34b9, 0x123231f1, 0xd7d4bf8e, 0x86f49138, 0x4d985ffc, | ||
4514 | 0xf908767e, 0x69f849ef, 0x8a29f905, 0xaffc415e, 0x8e34f6a4, 0xc18e5dc3, | ||
4515 | 0x3d97ec65, 0x44bf2036, 0x203fb3fe, 0x40fdf5ff, 0x781fd1e3, 0xf3f654fe, | ||
4516 | 0x419b41ae, 0xf1c600ed, 0xb85edc29, 0x835dda9a, 0x73f6758b, 0x3679f21b, | ||
4517 | 0x80646bf9, 0x4c0109d7, 0x5029d321, 0xf648aa1b, 0xa3d63cdb, 0xdba7d4cd, | ||
4518 | 0x55d0dff4, 0x9e2f7c9e, 0x53554723, 0xb54f23fc, 0xb502f225, 0x3fdc2bb7, | ||
4519 | 0xed0df1e6, 0xc13fa24f, 0x740799a0, 0x2d383bc1, 0x5d4ff9e2, 0x7d6ffe22, | ||
4520 | 0x4e8afe65, 0x13d6e73c, 0x13f7f72a, 0xce31ca4f, 0x78193c9b, 0xe536e748, | ||
4521 | 0xe7da0f05, 0xfcc543d8, 0x1b6c5afd, 0x1ae74718, 0xba51165b, 0x38eeaaa9, | ||
4522 | 0x36bf384a, 0xbc4348b4, 0xa3c1cefe, 0x19f3709a, 0x81eebfc4, 0x29d8675b, | ||
4523 | 0x42719dee, 0xfdd88a16, 0x67fdfc55, 0xfadb0f50, 0xf219ff51, 0xf9871e06, | ||
4524 | 0x0e3b5007, 0xc7f6478a, 0xdc8e2b14, 0xbc7c4d5f, 0xda26add8, 0x120b4828, | ||
4525 | 0xf417da9b, 0x6c01ed6d, 0xc46057df, 0x71bf9789, 0x8d44e2fb, 0x8aafc9d8, | ||
4526 | 0xde7b2dc8, 0xe28f30fe, 0x98c3b77f, 0x2ee9fc41, 0x0ca14d83, 0xd74f7d3c, | ||
4527 | 0x4e954f98, 0xdfa992d8, 0xa0fc205d, 0x88bb003c, 0xaadd2d47, 0x5fbb441e, | ||
4528 | 0xc70d56e8, 0x431f00d5, 0x8a02ed60, 0xb0630137, 0x01bff518, 0xc8031fac, | ||
4529 | 0xa6894d1e, 0x68daf641, 0x6b1c3736, 0xd63ca1a8, 0x20e83ea4, 0xa4f8da3f, | ||
4530 | 0x55d0e1f6, 0xffc6ee66, 0x27686153, 0x53ff11c5, 0xed82378a, 0xfb527b4d, | ||
4531 | 0x7887c21b, 0xa953c35e, 0xb13a9bdf, 0xddb44aed, 0x3a8c5705, 0x997f033b, | ||
4532 | 0x42b09304, 0x5c711e20, 0xdc70ecd0, 0xd97dbc89, 0x6f4953ed, 0x3f426d07, | ||
4533 | 0x0fd94f18, 0x2cbf2b55, 0x7e287114, 0x2fec8201, 0xf3474207, 0x9df9ae50, | ||
4534 | 0x63da5ea5, 0xcff45dbe, 0xfce52def, 0xbaa0f602, 0x65500d12, 0xde9096f8, | ||
4535 | 0x176f2f51, 0x9937b9e3, 0xfc7411f1, 0xa6cded87, 0x1e91361e, 0x073635d0, | ||
4536 | 0x079ee553, 0x4fb4edc1, 0x3f3c01fd, 0x903c6bce, 0xd7e96fda, 0xb4d3ae6f, | ||
4537 | 0x2c7464fb, 0x75287362, 0xfd1e1f9c, 0xa17aa554, 0x73fbf537, 0x5cc09bc0, | ||
4538 | 0x60133f4b, 0xeb07e902, 0x97b1802b, 0x8ee4678f, 0x344f97a4, 0x329c5751, | ||
4539 | 0xd7fab1d7, 0x41697c9a, 0x344e28f1, 0xf120d505, 0xc8129365, 0xcfb79503, | ||
4540 | 0xd7b943ad, 0xe0f0bc5b, 0x3dc7d43f, 0x9bd67ea6, 0xe173e0bc, 0x4a3de6fc, | ||
4541 | 0xeff38230, 0xfe553479, 0x25baa10d, 0x79233ce3, 0xab53a9b3, 0x6e7e6073, | ||
4542 | 0xb40e2d80, 0x98de48f9, 0x70e800fa, 0xe74afe50, 0xb94f8b4f, 0x6e46dc8c, | ||
4543 | 0x5fffdcdd, 0xe22d46ee, 0xf8da7ca0, 0x201bc52b, 0xe27fbbf9, 0xe791b280, | ||
4544 | 0x60dbecb0, 0xd73cc4f1, 0x56cf3df7, 0x61d3becb, 0xbab7db3a, 0x37d93bf0, | ||
4545 | 0x6f463ebd, 0xc618ff63, 0x9150577c, 0xfcfa4fe0, 0xbd9d6625, 0x5e303774, | ||
4546 | 0xcf2cfde8, 0x8362f383, 0x68c079c3, 0x47bca6ab, 0xf149c9ed, 0xcec0ada6, | ||
4547 | 0xfe2ceefb, 0x500b63c7, 0x690f4b3f, 0xa0e0ac5e, 0x96ad4ae9, 0x95d373f2, | ||
4548 | 0x4e4d14af, 0xe6ed27ca, 0x3687a5f8, 0x9c5165b4, 0x25e293f8, 0x7f858bf7, | ||
4549 | 0x40ed4036, 0x829de2a7, 0xc383a3f3, 0x7b202e6f, 0xa5cce714, 0xb77dfcf5, | ||
4550 | 0x76c2e8cc, 0xaf1cdf74, 0x17ac49ea, 0x2df38b75, 0x7ce352bd, 0xe724be79, | ||
4551 | 0xbf68350f, 0xfb2f6306, 0x9e97f9f1, 0xc79f9077, 0xc62814ba, 0x47c5a28d, | ||
4552 | 0xbea00d9f, 0xd270bfcf, 0xa2f84541, 0xa18e93ee, 0x2e03a96f, 0x50885504, | ||
4553 | 0x3877b03c, 0xdb52bee8, 0x10c72ff3, 0x7d4f45d5, 0x34bd20e0, 0x471c2af4, | ||
4554 | 0x41a8f61a, 0xb47afe0f, 0xf10745ef, 0x8153a5a8, 0xfdc9a531, 0xe663f71a, | ||
4555 | 0xc23e7964, 0x092adffe, 0xf933ae7e, 0xe2d3f168, 0xce333aeb, 0xe54f6fac, | ||
4556 | 0x763046e3, 0x0dfce096, 0x4f1c759d, 0x8e647437, 0xaabc5633, 0x28ead88f, | ||
4557 | 0x4eefd7ee, 0x1bf9b71d, 0x941c061e, 0xd9e3d317, 0xd3878b51, 0x70f11a60, | ||
4558 | 0xa26eb238, 0xe97f791d, 0xa844c364, 0x37afa918, 0xe56d7ccc, 0xf5e9cbcb, | ||
4559 | 0x0e67ef62, 0xf1fe73ca, 0xfc17df1a, 0x48edffe3, 0xe209c9e6, 0x25b7e609, | ||
4560 | 0x3ed94fe1, 0x8b23e135, 0xc0dbbf69, 0xbdfa44d7, 0x53a39c2d, 0x24335bfd, | ||
4561 | 0xd85976fc, 0x242a0c19, 0xdbf38d9f, 0x41da106d, 0x3bf58ff6, 0x92f03fb9, | ||
4562 | 0x981075c2, 0xd4deac71, 0xdfa9bd77, 0x8d5fbc7a, 0x30f54d9b, 0xfae283ea, | ||
4563 | 0x6ea37b55, 0xbf316fec, 0x3476bd37, 0x0cbcf48f, 0x16599c44, 0xb2c67112, | ||
4564 | 0xd2279597, 0xd0331cfd, 0x8ddec98f, 0x823c2761, 0x719b97e3, 0xc6277966, | ||
4565 | 0xdfa46519, 0x30e6c6c7, 0x423d025f, 0xd8bcf4de, 0xfe3a9dd2, 0x2ba8814c, | ||
4566 | 0xf67acd87, 0xd57b34cb, 0x02a721c4, 0x51e65bd7, 0x359e41bd, 0x8ffda768, | ||
4567 | 0xe1fe42cf, 0x933dc7fa, 0x397b1ef8, 0xd669bd3b, 0x057b56e9, 0xc3ea8b12, | ||
4568 | 0x5b91de90, 0xf737e490, 0x3921d860, 0x01a9e61a, 0xbdd27fd2, 0xd2ecc565, | ||
4569 | 0xdd16f78c, 0x1d5fe38d, 0x6bd1febf, 0xc62def92, 0xe1e272de, 0x597f8a2f, | ||
4570 | 0x43e29b33, 0x172788a7, 0x7cdd70ab, 0xeb81c3aa, 0x33a77f5a, 0x3f0bf748, | ||
4571 | 0xadea88f2, 0xf213c4a5, 0x0b72b0cf, 0xfeeb04f1, 0x4afeb4f1, 0xe146192c, | ||
4572 | 0x8af657f9, 0xe2e5647a, 0xaf77994f, 0x46e7164d, 0x74c98dbd, 0xffeab00f, | ||
4573 | 0x9d442f96, 0xb16f7d69, 0xa03df10f, 0x6f30ac25, 0x9cbe07bb, 0xc6f28a50, | ||
4574 | 0x509f3efa, 0x16eb5887, 0x54f5b479, 0x797d5036, 0xa0ceaff1, 0x74bce513, | ||
4575 | 0x1f0fe5f8, 0x2ea5f6c0, 0xf2e63117, 0xc1d95c71, 0x0da2d37e, 0x721d7115, | ||
4576 | 0xebbceb18, 0x7c73bd68, 0xc81ee88f, 0xbc40dbba, 0x5137ceb8, 0xb5bb16ff, | ||
4577 | 0xa9d71b42, 0x9183b06d, 0x3ae499ea, 0xcac75eae, 0x8d864b14, 0x566bfe66, | ||
4578 | 0x7bc42373, 0x57346e2b, 0x883dc625, 0x6b88dffc, 0x533b38dc, 0x5cec08fc, | ||
4579 | 0x1b8c8ca0, 0x777b158d, 0xfd5321ba, 0x977ce113, 0xe3dcef5e, 0x24e6de46, | ||
4580 | 0x1e2a1b78, 0xde84b67a, 0xa13b4e71, 0xffce94b5, 0xafb204d5, 0x9ceb7e75, | ||
4581 | 0x9e7e4ce7, 0xc601fba7, 0x952ad69d, 0x279b65f5, 0x708baad0, 0x7626f31e, | ||
4582 | 0xf5483732, 0x17fe8cfe, 0x8d0788cb, 0xb25c7007, 0x7d1da1ff, 0x90438854, | ||
4583 | 0x421cdcf9, 0x3ce492a1, 0x74e2ffd8, 0x97d91be2, 0xa6fc9dde, 0xb2e5d37d, | ||
4584 | 0xfdc45150, 0xfb88a6d5, 0x287d8f6b, 0xfe4dee8f, 0x306d6ac3, 0xfcd67ec9, | ||
4585 | 0x80fe4d7b, 0xefd3dc5d, 0x7c4420a7, 0xd81e0b0a, 0xef2204fa, 0x1a778ad6, | ||
4586 | 0x334aca0d, 0x7e442ff4, 0x035e4b7c, 0xea6d0b92, 0x33cce2d7, 0xcb1b49ff, | ||
4587 | 0x5c393fe3, 0x03df9c94, 0x8a18eeb4, 0xc04dad7b, 0x28072471, 0x0b1c62ce, | ||
4588 | 0xf97b63e4, 0x97ae2ce9, 0x6abb65a2, 0xa9956e38, 0x5b6b7140, 0xc9a9e6ff, | ||
4589 | 0x05bfe1f9, 0xe91738aa, 0x95aa98a1, 0xa6fec527, 0x9560da1e, 0xbc17cf79, | ||
4590 | 0x7888140d, 0x27a3f782, 0x47ee19dd, 0x6ddeb5df, 0x3d8273ed, 0xfa974ec9, | ||
4591 | 0x0dfef9ea, 0x52a6f85f, 0xef9f019c, 0xfd6dc26a, 0xfbe953f5, 0x57cdfea5, | ||
4592 | 0xd2a4bbf3, 0x02bf9296, 0xd5315f24, 0x7914ef45, 0xefb9bfb0, 0xd460229d, | ||
4593 | 0x276a7e58, 0x6efdafe7, 0x8ec4e751, 0x84fbf164, 0x07826502, 0xdd653930, | ||
4594 | 0xb857eea6, 0x55ea688e, 0x583e648d, 0x22dc7af3, 0x1e261e0f, 0x1486b620, | ||
4595 | 0x487ced83, 0xf3ef5360, 0x16a34f2c, 0x76b63b62, 0x4bbfa26a, 0x3c97d620, | ||
4596 | 0x00ee002f, 0x39feafc9, 0x52754c3c, 0x87964f73, 0x3eb14bde, 0xc4b1f914, | ||
4597 | 0xfa8fdc19, 0x99c2f459, 0xcd5b8a22, 0xf50a682f, 0xbbea50c3, 0x679b736d, | ||
4598 | 0xbde88fc5, 0xe81575e0, 0xda55e1dd, 0xc4b0ed02, 0x4d54d181, 0x1d66efca, | ||
4599 | 0x5f9bb560, 0xc8d4abaa, 0xcb06dbef, 0xe6ce512b, 0x3b4abafe, 0x78b4f419, | ||
4600 | 0xb634ba0f, 0x3009eb91, 0x95b65d84, 0x27f0a634, 0xf7290300, 0xb14e506e, | ||
4601 | 0x8d61631e, 0x03a281df, 0xfde9ca67, 0x6fe4b9a8, 0x7347e4e5, 0x537bc50a, | ||
4602 | 0x554bbd33, 0x7de27c90, 0x4d7f9aca, 0xafb3f0a1, 0x0b7b7f4d, 0x7bcda3bc, | ||
4603 | 0x9e1b2ece, 0x4d1aadff, 0x05eb847f, 0x6edd9f51, 0xb7d5cdc6, 0xbc5f5c69, | ||
4604 | 0xc78d1e05, 0xcca18a1b, 0xfac8bce5, 0xa78cddb9, 0xe352aa2b, 0xf03dcadb, | ||
4605 | 0x91a11670, 0x635b4eb9, 0x0c0abfae, 0x7575775e, 0x6635b8ea, 0x36a6b69d, | ||
4606 | 0x56e7fbf5, 0x930c9cdc, 0xc2ea6e39, 0x66c75b9e, 0xb90c7e71, 0x0cdef93c, | ||
4607 | 0xb475e279, 0xf541c78f, 0x683c0b9a, 0x1c66e3a7, 0x01c92b6d, 0x177e28f7, | ||
4608 | 0xa3fd9209, 0x53bfbed9, 0x719f8ade, 0x34553bf2, 0x1565ce2d, 0x29cd3f0a, | ||
4609 | 0x514a7114, 0x9b276ca2, 0xa3ed9c72, 0xed9baf28, 0xe7ec5237, 0x533bc4d7, | ||
4610 | 0xfc937914, 0xacc27c8e, 0x788aa223, 0x7b974b47, 0x8778a17c, 0x34dfa11a, | ||
4611 | 0x5fd08ebd, 0x36a2de9a, 0x6ec5c751, 0x5ffef856, 0xc519f58e, 0x958bb5af, | ||
4612 | 0x14f141a0, 0x2bfdc0f5, 0x54c3d615, 0x62704f88, 0x8f981dff, 0x4d8beea8, | ||
4613 | 0xb6fd7513, 0xefe2f9b5, 0x9b780124, 0x64f168ec, 0x57e45d85, 0x286b0f8b, | ||
4614 | 0xdf12cebf, 0x6ede9f29, 0x7755d3e6, 0x850af35e, 0xadaf4b45, 0x2f9ca7e4, | ||
4615 | 0xb1463146, 0x475e20be, 0x53c7eafb, 0x917d23dc, 0xf32f479f, 0xadc2742e, | ||
4616 | 0xa72e7eb1, 0x2fd36abf, 0xa839476e, 0x7adefdae, 0xeba5e734, 0x9530bab3, | ||
4617 | 0x2b581887, 0xf2138fc8, 0xc7e6333b, 0x943ca6d5, 0x47e80363, 0xedfd4d6b, | ||
4618 | 0x2eadf7cd, 0x0477efc4, 0x7e4c3d57, 0xb3d94675, 0xce2410ff, 0x9d187a4d, | ||
4619 | 0x85addeb4, 0x090c3de2, 0x9b7ef192, 0x16f0179e, 0xd7b8e016, 0x54af718f, | ||
4620 | 0x241777bc, 0x933eebe9, 0xb161d7d7, 0x079c764a, 0x25de9501, 0xdc3b03ae, | ||
4621 | 0x443b6d45, 0x200b88ec, 0xfe81dfc2, 0x4fc45608, 0x9d73fcea, 0x9944723d, | ||
4622 | 0xeff8e3c5, 0x9061f343, 0x7108ddc7, 0x3b740346, 0x32f042e1, 0xcb22b956, | ||
4623 | 0x08af6ca9, 0x4baa5485, 0x82f64523, 0x5213a8b3, 0x2473a665, 0xb38763ce, | ||
4624 | 0xd2a2fd56, 0x0b6011df, 0x3cfd3dd9, 0x0c79d61d, 0x0d4a4bc1, 0x555ca177, | ||
4625 | 0x93695210, 0x1548601b, 0x39f32ff1, 0x4ddd6016, 0x01b8b77f, 0xfacd9fed, | ||
4626 | 0xebf8f208, 0xa66a3ce9, 0xaf2d0cf3, 0xeb1615e0, 0x29129f24, 0xf39d7db2, | ||
4627 | 0x2b11cfdd, 0x6f375e02, 0x03e2fc7d, 0xfbbf8995, 0x9eafc378, 0x2a3d3fa6, | ||
4628 | 0xd3f70186, 0x665c4ddf, 0x9fb11add, 0x788f86ff, 0xe17dfd3f, 0x5215dfba, | ||
4629 | 0x7ce8f23c, 0x8781f04e, 0xf60638f8, 0xb23f74e8, 0x7142b8d1, 0x128b8fdc, | ||
4630 | 0x5c103bbc, 0x2f21b1e5, 0xf2e518ee, 0x43cca5aa, 0xab8d675e, 0xcf7a4ae3, | ||
4631 | 0xe14e4d43, 0x91e4c1ba, 0x6aab7f25, 0x2af891fc, 0x8944a251, 0x944a2512, | ||
4632 | 0x44a25128, 0x4a251289, 0xa2512894, 0x25128944, 0x5128944a, 0x128944a2, | ||
4633 | 0x28944a25, 0x8944a251, 0x944a2512, 0x44a25128, 0x4a251289, 0xa2512894, | ||
4634 | 0x25128944, 0x5128944a, 0x128944a2, 0x28944a25, 0x8944a251, 0x944a2512, | ||
4635 | 0x44a25128, 0x4a251289, 0xa2512894, 0x25128944, 0x5128944a, 0x128944a2, | ||
4636 | 0x28944a25, 0xffe12251, 0x72255300, 0x008000ab, 0x00000000, 0x00088b1f, | ||
4637 | 0x00000000, 0xc5edff00, 0x30001131, 0xee300408, 0xd85aa12a, 0xaa66f6b1, | ||
4638 | 0x964d2113, 0x5dbbcce4, 0x6db6db15, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4639 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4640 | 0xdb6db6db, 0xb6db6db6, 0x3d017e3f, 0x009b1baa, 0x00009b1b, 0x00088b1f, | ||
4641 | 0x00000000, 0xc5edff00, 0x30001131, 0xee300408, 0xd85aa12a, 0xaa66f6b1, | ||
4642 | 0x964d2113, 0x5dbbcce4, 0x6db6db15, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4643 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4644 | 0xdb6db6db, 0xb6db6db6, 0x3d017e3f, 0x009b1baa, 0x00009b1b, 0x00088b1f, | ||
4645 | 0x00000000, 0xc5edff00, 0x30001131, 0xee300408, 0xd85aa12a, 0xaa66f6b1, | ||
4646 | 0x964d2113, 0x5dbbcce4, 0x6db6db15, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4647 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4648 | 0xdb6db6db, 0xb6db6db6, 0x3d017e3f, 0x009b1baa, 0x00009b1b, 0x00088b1f, | ||
4649 | 0x00000000, 0xc5edff00, 0x30001131, 0xee300408, 0xd85aa12a, 0xaa66f6b1, | ||
4650 | 0x964d2113, 0x5dbbcce4, 0x6db6db15, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4651 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4652 | 0xdb6db6db, 0xb6db6db6, 0x3d017e3f, 0x009b1baa, 0x00009b1b, 0x00088b1f, | ||
4653 | 0x00000000, 0xc5edff00, 0x30001131, 0xee300408, 0xd85aa12a, 0xaa66f6b1, | ||
4654 | 0x964d2113, 0x5dbbcce4, 0x6db6db15, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4655 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4656 | 0xdb6db6db, 0xb6db6db6, 0x3d017e3f, 0x009b1baa, 0x00009b1b, 0x00088b1f, | ||
4657 | 0x00000000, 0xc5edff00, 0x30001131, 0xee300408, 0xd85aa12a, 0xaa66f6b1, | ||
4658 | 0x964d2113, 0x5dbbcce4, 0x6db6db15, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4659 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
4660 | 0xdb6db6db, 0xb6db6db6, 0x3d017e3f, 0x009b1baa, 0x00009b1b, 0xffffffff, | ||
4661 | 0xffffffff, 0xffffffff, 0xffffffff, 0x00001000, 0x00002080, 0x00003100, | ||
4662 | 0x00004180, 0x00005200, 0x00006280, 0x00007300, 0x00008380, 0x00009400, | ||
4663 | 0x0000a480, 0x0000b500, 0x0000c580, 0x0000d600, 0x0000e680, 0x0000f700, | ||
4664 | 0x00010780, 0x00011800, 0x00012880, 0x00013900, 0x00014980, 0x00015a00, | ||
4665 | 0x00016a80, 0x00017b00, 0x00018b80, 0x00019c00, 0x0001ac80, 0x0001bd00, | ||
4666 | 0x0001cd80, 0x0001de00, 0x0001ee80, 0x0001ff00, 0x00000000, 0x00010001, | ||
4667 | 0x000e0004, 0xcccccccd, 0xffffffff, 0xffffffff, 0xcccc0201, 0xcccccccc, | ||
4668 | 0x00100000, 0x00000000, 0x00000000, 0xffffffff, 0x40000000, 0x40000000, | ||
4669 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
4670 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
4671 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
4672 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
4673 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
4674 | 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, | ||
4675 | 0x40000000, 0x40000000, 0x00088b1f, 0x00000000, 0x1113ff00, 0x51f86066, | ||
4676 | 0x423ec08f, 0xac9d0c0c, 0xc4b462a8, 0x1818990b, 0x12b102fe, 0x3c430333, | ||
4677 | 0x203aded0, 0x2388107d, 0x16181858, 0x2fd610b0, 0x022bd404, 0x2c4062c4, | ||
4678 | 0x19b7c401, 0x9cdfb348, 0x1f0f680b, 0xc8037f82, 0x3f4024be, 0x1c360fff, | ||
4679 | 0xfb5f40ad, 0x1819d502, 0x8aa06bfe, 0xf2a26831, 0x9bf13519, 0xcf2684c1, | ||
4680 | 0x2167c68c, 0x63247fa0, 0x0d75b600, 0x000400f1, 0x00000000, 0x00088b1f, | ||
4681 | 0x00000000, 0x7dd5ff00, 0xd554780b, 0x673ef0b5, 0xf3399cce, 0x00fde4cc, | ||
4682 | 0x108f0992, 0x2104e034, 0x0432b445, 0x3b69488c, 0xc514543c, 0xf791e109, | ||
4683 | 0xb14a3e44, 0x44033bd2, 0x350af808, 0x0380a050, 0xed168d02, 0x06823ca0, | ||
4684 | 0xfda2901c, 0x5a1bdedb, 0xcb6ab7bd, 0x880b851f, 0x52d11921, 0xf77ac5ea, | ||
4685 | 0xcc9f7b5a, 0xd0049339, 0x9fdffed6, 0xcfb3767e, 0xd6bdaf7e, 0xf7b5ebda, | ||
4686 | 0xa441c448, 0x84be421c, 0xfc8471bf, 0xa484205e, 0x83bf52c6, 0xa908a3a6, | ||
4687 | 0x2d0867d9, 0xc26425cf, 0x5c64633e, 0x136fcd0a, 0x179a2642, 0xbcb19b0f, | ||
4688 | 0xfbcb3373, 0xdd4f6d0d, 0x01c9cb4a, 0x1349d903, 0x49116f92, 0x1467211a, | ||
4689 | 0xd146fec2, 0xf321117c, 0xb35b2ccd, 0x426cc8ed, 0x98b797eb, 0x3fb69988, | ||
4690 | 0x81e0d7b3, 0x429dc2fc, 0xd439d088, 0x67255c1c, 0x8417fed1, 0x45d9b084, | ||
4691 | 0x47e93bf3, 0xd7b15e5a, 0x5dfa8210, 0xaf34b68e, 0x01f3908d, 0x9864b885, | ||
4692 | 0xed693bdf, 0x86548405, 0xd16494f6, 0x05bb957a, 0xa9c748b7, 0xc6442cdc, | ||
4693 | 0x42ef828d, 0xa8bb40c8, 0x5712b66a, 0x97c39b3e, 0x75c5c704, 0xc742dc2c, | ||
4694 | 0xa912fda5, 0x61daf651, 0xcbb2b5bc, 0xf9cf831e, 0x51c71380, 0xd3cf35f3, | ||
4695 | 0xdabb6871, 0x2c370497, 0xbe2456b1, 0xf3bf1d30, 0x73e679a0, 0x32df5836, | ||
4696 | 0x5daecf39, 0x587ee947, 0x9b686547, 0x7983625c, 0x17e7936d, 0x6aabfac4, | ||
4697 | 0x6bcfd64e, 0x9f74a0c3, 0x3d3e3ca6, 0x95c4201f, 0x1257cb17, 0x60db09e2, | ||
4698 | 0xea7921fe, 0x63f7d8f0, 0xb3f71124, 0x5c40d9aa, 0x427fac4a, 0x40ddf882, | ||
4699 | 0x2b8011dc, 0xb5bbb569, 0xa9d176fb, 0x8985b7df, 0xf31f6dbc, 0xc3ef9a79, | ||
4700 | 0x27a70e5a, 0x4d347e61, 0x499738f0, 0x1309fd74, 0x4ab85389, 0x3246b5fb, | ||
4701 | 0x7acbdc33, 0x186405ef, 0x888f884d, 0xe25adf38, 0x2ed21fbb, 0x4e9caeb1, | ||
4702 | 0x3245fe9e, 0xabbd74bc, 0xfbfed604, 0x57f585c4, 0xb03d900d, 0x2aef6baf, | ||
4703 | 0xcb90ce7a, 0xf90292d7, 0xd0d6bbf9, 0x7926932e, 0x0257c008, 0x614015b8, | ||
4704 | 0xcb40d07b, 0x4713bbed, 0xe16971ae, 0xc61f3c57, 0x75128c73, 0xcdbce3fb, | ||
4705 | 0x4d27cba2, 0xaf838a4c, 0x46e679cd, 0x34f3a79e, 0xd211d189, 0x67c64220, | ||
4706 | 0x8b6f882b, 0x9ba465b3, 0x79b3b7c5, 0x85b6ce2d, 0x38ff3482, 0xe685b834, | ||
4707 | 0xce4ddf65, 0x4741e05e, 0xa4064916, 0xe98c913e, 0x7000de59, 0x9c5078a4, | ||
4708 | 0x03ef2573, 0x68c5fa9a, 0x1f4d225e, 0x0107c616, 0x8e012b2e, 0x481ab534, | ||
4709 | 0x6adbac1d, 0x86a70822, 0x05cf4521, 0x9d5a7035, 0x1b94e14b, 0xb1b577eb, | ||
4710 | 0x09b8832e, 0x23bc1359, 0xf8526528, 0x1dcdd2e6, 0x23bdf30b, 0xdb4c1c12, | ||
4711 | 0x00ce2ee7, 0xa5322a78, 0x32f8ed03, 0xc700bf1d, 0xae38046f, 0x3f18fbe7, | ||
4712 | 0x463792be, 0x6079be37, 0xb37c6eb9, 0x38a7c74c, 0x5df829b9, 0x63853e3e, | ||
4713 | 0x233f2116, 0x95f1c5df, 0xfc704b81, 0xeb949906, 0x8f74b7c6, 0x7771821f, | ||
4714 | 0x437e31f5, 0xfafd58de, 0xd7ea5607, 0xbff5b32f, 0x8f9bbc10, 0xfff5c16f, | ||
4715 | 0xd6cddc82, 0x6c47f03f, 0xafda26fd, 0x37477c76, 0xf700c3fc, 0x5fc07dfd, | ||
4716 | 0x7e9b7a19, 0xf5aa83fd, 0xf1b137eb, 0xc83e0d5f, 0xf8e1b7c7, 0xd90791af, | ||
4717 | 0xc52d07fa, 0x3aa64df1, 0x991693b7, 0x21752c72, 0xfd176bc0, 0x074d3a5f, | ||
4718 | 0x45be71d3, 0x422482d3, 0x901ffb68, 0xc5870881, 0xa850df16, 0xf142c97f, | ||
4719 | 0x0be316cd, 0x0052b424, 0x38e5afba, 0xa977773d, 0x326d24fc, 0x4bf185b7, | ||
4720 | 0x10e9f942, 0x96cebf3a, 0x4fbd2f4f, 0x47773be7, 0x42e0dba1, 0x6ed0247a, | ||
4721 | 0xdf8a5f1e, 0x8841e0c0, 0x1daa7b37, 0x7b3793f8, 0xf22c70da, 0x40599f00, | ||
4722 | 0xf03d8e70, 0xf1a35e78, 0xbe86bb4c, 0xe7d06c16, 0xbcfa422b, 0x80f1ef3a, | ||
4723 | 0x160d3424, 0x3a3afc93, 0x8fca19ee, 0x1f93e508, 0xe9047e52, 0x08792359, | ||
4724 | 0x94d38dce, 0x4b59115f, 0x5f70cb57, 0xfe0c48ce, 0x91583667, 0x7dad2f1e, | ||
4725 | 0x60832658, 0x640a563e, 0xf24178cd, 0xff9d3e76, 0x089d7c3d, 0x57e022e7, | ||
4726 | 0xb4f73d6c, 0x47a14cd6, 0xb2779d2c, 0x31a75dae, 0xf5be0462, 0x963d0920, | ||
4727 | 0x7b2ffb41, 0x87d18f62, 0x4fd3c7fc, 0xfd26ba44, 0xf7d74a44, 0xd87e34ce, | ||
4728 | 0x733769ae, 0x3f635aef, 0xd3e7de9a, 0xae559f7f, 0x431a77cf, 0xe5ce1146, | ||
4729 | 0xa36c810a, 0xa7583ffd, 0xf9c7572f, 0x7db1248c, 0x43dde3e6, 0x049992d7, | ||
4730 | 0xfe91fa59, 0xeb64e7db, 0x497ae7a0, 0xca1f383f, 0x9a4ef704, 0x8dea107f, | ||
4731 | 0x4b7c7d84, 0xe7b3ef86, 0x90d7ba25, 0x5225f39e, 0x9273f606, 0x25271b9f, | ||
4732 | 0x08b753e3, 0x7edfe73d, 0x4711ead8, 0xfc475cf4, 0x4e221fbc, 0x968787dc, | ||
4733 | 0x0697bfe8, 0xf0c7d7e3, 0x3e32dfc0, 0x7be6b4f9, 0xe4aef84d, 0xa97c1ad3, | ||
4734 | 0xcbaa9e6a, 0xd3ee8457, 0xa1b05fd5, 0xaf3e5754, 0x5e5742b1, 0x2eb0f0d6, | ||
4735 | 0x447c1a5f, 0x25a1ff57, 0x0fe574cb, 0x95d6add6, 0xab5f2acf, 0xdbe7dfcb, | ||
4736 | 0xef7faba8, 0x72ba6dcc, 0x0e4570e1, 0xd97e37c8, 0xe1499397, 0x135de17e, | ||
4737 | 0xf0c42ed9, 0x73f3c558, 0xcf4c0c81, 0x2e985c07, 0xf4a57a03, 0xa9641e2f, | ||
4738 | 0x0e697b7f, 0xf78ab9d0, 0xd9758d67, 0xf8f12740, 0xf18f4f1d, 0x03780c78, | ||
4739 | 0xe75f50e7, 0xbc40b579, 0x025df740, 0xefd48f3b, 0x97fce67f, 0x6f48e590, | ||
4740 | 0xc7a332d5, 0x8b3397ea, 0xe5aa5e81, 0xad9d5e48, 0x58497eef, 0xb21075c0, | ||
4741 | 0x08a9fb1d, 0xedd0aa51, 0x3cdd20eb, 0x70188e3b, 0x3e105afc, 0xdef3816e, | ||
4742 | 0xf8c02a5b, 0xa7b23791, 0x78f9870f, 0x25be60e6, 0x4762f915, 0x69f25260, | ||
4743 | 0xc5e7e009, 0x26605cf4, 0x3e0267a6, 0xca074f4c, 0x5030fd31, 0x607b6987, | ||
4744 | 0x0327a609, 0x14ff4c41, 0xbdf4c068, 0x7fa62340, 0xf4c06c0c, 0x4c21033f, | ||
4745 | 0x4c1e033b, 0x14d4f1bb, 0x90f903cd, 0x20226fbc, 0x2e1492e2, 0x3372a97f, | ||
4746 | 0x5c85f961, 0x2e0bee6e, 0x27defbf1, 0xbc5048fc, 0x2c59beda, 0xa8e83f6c, | ||
4747 | 0xf3a50893, 0xbbf6c335, 0x44bcb0e7, 0xdd843f90, 0xbbb2f95a, 0xf483d85f, | ||
4748 | 0x9fc7ef6b, 0xf381dce1, 0x9e030def, 0x8af2247f, 0x0b5dba7b, 0xc047ba0f, | ||
4749 | 0x86b75e6f, 0xd5fe5276, 0x7c31705f, 0x2e5c06b9, 0x039cf5be, 0x0cc2e8f8, | ||
4750 | 0xe6fa79d1, 0x1357d7be, 0x34da75ce, 0xe8b7f1f3, 0x851b17f3, 0x741e4c49, | ||
4751 | 0x0e18cc25, 0x9e74e0f8, 0x96fb0c1e, 0xcfdaa981, 0x79d90cc2, 0x85ea193a, | ||
4752 | 0x77643d70, 0xd517e222, 0x3fdeb047, 0xf57d1e7b, 0x5ec79b13, 0x47b68a72, | ||
4753 | 0xdf507b19, 0x0bc4fbf5, 0xe41933e9, 0xbc6ad268, 0x85aae704, 0x40e5f7fe, | ||
4754 | 0xbcc257e8, 0x6c3fafda, 0x826e9a08, 0xe375bbef, 0x552e76d1, 0x7d7683d7, | ||
4755 | 0xce449fe3, 0x5941f8a8, 0x6fae09d2, 0x9d9b3556, 0xa89d7e7a, 0x325bfbcb, | ||
4756 | 0x0dfe3a9d, 0x4af4a0ff, 0x9c120a26, 0x2b1cd5bb, 0x835b24ba, 0x1bb7e740, | ||
4757 | 0x8bee86f0, 0x6af5605f, 0x47d97694, 0x67dc2d3f, 0xe17df3c7, 0x05efae5a, | ||
4758 | 0x9fb41b49, 0x70778633, 0xd34ace85, 0x449ce51f, 0x9e32f9a4, 0x39aef553, | ||
4759 | 0x7cf0ab7b, 0x94126fff, 0xc8ff3ce1, 0xe70458d0, 0x9b786553, 0x76fba1ec, | ||
4760 | 0x80938881, 0xbf205cef, 0x91acdc77, 0x3208afe3, 0x41acb7ae, 0x79516e7f, | ||
4761 | 0xf2a79747, 0x9f3f2e8e, 0x3d034b4c, 0x91937e6a, 0xff285e8a, 0x043bcae8, | ||
4762 | 0x80bbf627, 0xfe04add4, 0xcdef6a7e, 0x700adcf7, 0xc8a5b03c, 0x6873f347, | ||
4763 | 0xbf4a3f71, 0x6427cd95, 0x3aaf93a0, 0x1fb4057e, 0x755c73d9, 0x51f43d5d, | ||
4764 | 0x669a870e, 0x85ea13c1, 0xa6459b9f, 0x9f74a9d7, 0x72753a25, 0x7e5c5e5b, | ||
4765 | 0xf6fe5c64, 0xc6d7fcb8, 0x908a149f, 0xdefdb169, 0x44f2f82d, 0x478043e0, | ||
4766 | 0xf9bc3109, 0xf467fdda, 0x3fe47fe8, 0x44feffb5, 0xffb4ff87, 0xfda9ffdb, | ||
4767 | 0xff31ee0f, 0x5ff5bdc9, 0x149e8a6b, 0xdd7b1ce0, 0xe198e78c, 0x7a0839b0, | ||
4768 | 0x19ab7f82, 0xf637dcf5, 0xd01775fd, 0x26b3e75d, 0x8e7a6262, 0x93bff280, | ||
4769 | 0xdf767bf5, 0x0ffeb75f, 0x8d0b3f2d, 0xb60b7f69, 0xef80fad2, 0x64c8adbb, | ||
4770 | 0x184e5eba, 0x2f5d2841, 0xefd1fd78, 0x2e2f2a11, 0x91dee2b0, 0x0f4cbf05, | ||
4771 | 0x51fb00ad, 0x799fcb2a, 0x08284071, 0xed979e76, 0x1808c311, 0xa3ed40f7, | ||
4772 | 0xad2fee30, 0xa42d1e84, 0xd61375f3, 0xa305fceb, 0x2ee78a7f, 0x24415e9d, | ||
4773 | 0xe77e3757, 0xb5241c02, 0xe052f85c, 0xf0e22840, 0xd55ef4a1, 0x8f31e092, | ||
4774 | 0xfbeaf800, 0x2e8c60b9, 0x0eff2376, 0x5bc88966, 0x77205922, 0xcb53d7c7, | ||
4775 | 0x5540e2fd, 0xb6ec581e, 0xfd53eac5, 0x37cb3e79, 0xa0fd3166, 0x052feb0d, | ||
4776 | 0x958d49fa, 0xd597ecf7, 0xcec891ff, 0xac3f58db, 0x53d72d7d, 0x1572e9e3, | ||
4777 | 0xe6aacba7, 0xa6f6862f, 0x7f32f55f, 0xa65fbefc, 0xafdd0582, 0x10e6cbe0, | ||
4778 | 0x23b5616c, 0x6bef7a82, 0x6d511edc, 0x9e1ea089, 0x3905c7c5, 0x6944f20f, | ||
4779 | 0x8ced097f, 0xf404cc07, 0xedd79add, 0x9adfd81e, 0xf33d7ffd, 0x63bdfa33, | ||
4780 | 0xf80dd59f, 0x0ffaf350, 0x4c6bdf71, 0xdd02d991, 0x2a1ee8bf, 0x1dfad2ff, | ||
4781 | 0x4d9d7e7b, 0xc61d3f68, 0x55d27648, 0x613565ec, 0xcafc9c53, 0xe03e7de6, | ||
4782 | 0x98f2019e, 0x3b5447ca, 0x53fb7c5a, 0x45cff162, 0x4417970a, 0x7c88b34f, | ||
4783 | 0xa9df6f4b, 0x5d39525c, 0xfdabde7b, 0xbecc4a54, 0xc43f7ea4, 0x1ba87be1, | ||
4784 | 0x2e935fce, 0xf2e83d6d, 0x02ebcc10, 0xf3834b69, 0x13f9b6a8, 0x4aed4419, | ||
4785 | 0x2e813590, 0xbee032df, 0xa12b9b10, 0x4d4df937, 0x4cc605cf, 0x75de5097, | ||
4786 | 0xfedfea63, 0xc28b2381, 0x4f86fe7f, 0xe91ce1b2, 0x199e643a, 0x7f39fd42, | ||
4787 | 0xbf1834ba, 0xa0f5dca3, 0x51eb8ac1, 0xe3a4abc7, 0xf5b10bd5, 0x755c6b5f, | ||
4788 | 0xaefc753c, 0xcfac9f8d, 0x69f8e174, 0xb8fc7e30, 0x5c753b6a, 0xde7c572a, | ||
4789 | 0xd886978d, 0x414b96fe, 0x72c3ce19, 0x947ee122, 0x14797a93, 0xcd8841d2, | ||
4790 | 0x74ed4977, 0x97ca9f90, 0x4a5d3edc, 0xf900f366, 0x6901e60d, 0x5ef1c6d7, | ||
4791 | 0xfb7fa380, 0x3a520554, 0x305f5c0f, 0x221a16d3, 0x3ca0f9b0, 0x7d414c1f, | ||
4792 | 0x777be257, 0xe9fdf026, 0x17b87f4c, 0xb81d39fb, 0xf1c6f313, 0x1437c875, | ||
4793 | 0x85a988d2, 0x1ffd3184, 0x8f9c46f1, 0x90238a8d, 0x98f81aa7, 0x0e11c359, | ||
4794 | 0xb6245979, 0xe913f87e, 0xcdbf2b38, 0x572ddad7, 0x30e1c53d, 0x580679c5, | ||
4795 | 0xbe47d066, 0x08ae5da4, 0xa3f364cc, 0xbe5128f8, 0x517f84e5, 0xc79d3a78, | ||
4796 | 0x103826ff, 0x4a7ad9ef, 0x5d056848, 0x7c73248f, 0xbe184c99, 0x5e265c34, | ||
4797 | 0xdd3c1d8d, 0x090ef8c0, 0xe83e411e, 0x5fc1fde0, 0x9451e694, 0x245655a7, | ||
4798 | 0x7802df64, 0x089270e1, 0x91b7638c, 0xd8047588, 0x5af3a551, 0x1b79c1f9, | ||
4799 | 0xa8ecebcd, 0x3a78f2fa, 0xb14bed53, 0x7e70db71, 0xe2cfdfb4, 0xae2cfdfa, | ||
4800 | 0xd6aecfdf, 0xbf270aaf, 0x740bddb2, 0x87c058fc, 0xa78ea6fb, 0x7c28f1f0, | ||
4801 | 0x113f51f2, 0x429dee2d, 0xd616ae0c, 0x22633d15, 0xc0337fb8, 0xf4e14ce8, | ||
4802 | 0xe8e1c278, 0xb29050a3, 0xd7fe0081, 0xfd353b73, 0xed34daf3, 0x7a415388, | ||
4803 | 0x99c7cd5e, 0xa1fc6061, 0x9ecff39e, 0xee78cdf5, 0xee6fa8f7, 0xf7a5beab, | ||
4804 | 0xe6bef6fa, 0x3e75ed63, 0xd55f955f, 0xff5ffebe, 0xf869711e, 0x52829396, | ||
4805 | 0x30ccaf2f, 0x126b7ed0, 0x1dbdfccf, 0x0f5144bf, 0xf7ebfa51, 0x4af802cb, | ||
4806 | 0x5832c7f1, 0xa056ddff, 0xf05ee7df, 0xd74996c5, 0x63af9331, 0x14e97366, | ||
4807 | 0x86264738, 0x526496a6, 0x5abfbf3c, 0x17709b70, 0xbce8ffe9, 0xbaf3e3ee, | ||
4808 | 0x3a4051bf, 0x21917fb8, 0x6ec5eae4, 0x41fe0b35, 0x09d567cb, 0xd3d088a1, | ||
4809 | 0x1b4b057e, 0x3e760696, 0x3b4f6e36, 0xeaf1045c, 0x6cde3e21, 0x0c1a4a42, | ||
4810 | 0x845bed3d, 0xef2957e3, 0x35dede27, 0x2ed1b887, 0xffcf2f16, 0xe463e419, | ||
4811 | 0x91b921c7, 0x46c1afee, 0x31e416f1, 0xfe8dc583, 0x3037fe90, 0xdc2159fd, | ||
4812 | 0x2e5047ce, 0xa4040722, 0x573e8bfb, 0xec55d242, 0x33025b30, 0x62f0ced1, | ||
4813 | 0xd9a60360, 0xce043c8b, 0x412f6961, 0xa05b7f79, 0xdf0fbf1c, 0xd1942edb, | ||
4814 | 0x176ce4bc, 0x6774d3e6, 0x1f7e0960, 0x3fafaf58, 0x644baf7c, 0xd4225cf5, | ||
4815 | 0xc3e0367b, 0xea05cf7a, 0x7cf5bed0, 0x3ff301a0, 0xcd31040f, 0x95f3626b, | ||
4816 | 0x2fe82a96, 0x11a045fc, 0x18fed1eb, 0x41427aff, 0x2f7c3cfe, 0x79b797ab, | ||
4817 | 0x2dd6084c, 0x777e7939, 0x197fe639, 0x377f6108, 0xb5fde0ec, 0xb30b9412, | ||
4818 | 0xb3afdd17, 0xce96b863, 0x030fc9d1, 0xe5752beb, 0x3f063aea, 0x6f5750b1, | ||
4819 | 0x5890def8, 0xfdf30056, 0xe4bbee91, 0xffe0890c, 0x5cbcdfcb, 0x3b0dcfd7, | ||
4820 | 0x15eae8d6, 0xae89feec, 0x4ddec47c, 0x75bbbcba, 0xeeaf2ebb, 0xca65f54f, | ||
4821 | 0x5679e9d8, 0x4205f975, 0x2fdb3f28, 0xf4375e79, 0x075cb722, 0x76bca05e, | ||
4822 | 0x69f87c2d, 0x5c7083c0, 0x4840f545, 0xb3fcb833, 0x3493ec1a, 0x27d838ff, | ||
4823 | 0xecc82fd1, 0x3b734f54, 0x3e40dad5, 0xe0267f7e, 0xc0bafcc6, 0x0c6fcc18, | ||
4824 | 0xcffcc24c, 0xdfcc5e02, 0x09bf3123, 0xf00da9e0, 0xda3359f4, 0xe9671087, | ||
4825 | 0x525b5d7f, 0x923f2043, 0x32f1c68c, 0xa2e637e4, 0x3f709a5d, 0xb3a70543, | ||
4826 | 0x955687b3, 0x7122a6ac, 0x288beb55, 0x9939511f, 0x4e9adc80, 0xefd6bd79, | ||
4827 | 0x037f2d77, 0xfef58395, 0x0721b987, 0x258aadf0, 0x0a29c993, 0xcfcda3ef, | ||
4828 | 0xfae9da39, 0x432c762b, 0x3abcbb7d, 0x6d20bb28, 0xd3fd067e, 0x0dc4d5e5, | ||
4829 | 0xb6e547c7, 0x4b9eff6d, 0x99f55dc7, 0x0f80da40, 0x0107214b, 0x91b376bf, | ||
4830 | 0xde58ae72, 0x009cfcdc, 0xd93b34f3, 0xee9d98be, 0x0a79e208, 0xc5710f71, | ||
4831 | 0x519cdaf0, 0x7f6e7e87, 0xe825f47a, 0x3c87dcdf, 0x2ee92bfb, 0xe50d1a41, | ||
4832 | 0x8a30c46d, 0xf7d80cd1, 0x78582f1f, 0xe791ec04, 0x80b7201f, 0x6bf1e73f, | ||
4833 | 0xe74ecbcc, 0x4eeded05, 0x93bb0b06, 0xf36393fb, 0x1d96ff42, 0x9b1b95e6, | ||
4834 | 0xe5e89d97, 0x52bccd62, 0x772854a4, 0x4ece780a, 0xf04f1824, 0x79fa6df4, | ||
4835 | 0xb2f30d3d, 0x44af3df5, 0xebc02f3a, 0xc4af0e44, 0xfd42f09e, 0x5e0e3134, | ||
4836 | 0x6bc37d89, 0x912bcc28, 0xf4230578, 0xebc18333, 0x79fa2999, 0x780d733d, | ||
4837 | 0x4179d2a5, 0xaf0e54fb, 0xc2f09ed4, 0xbc1c6a7c, 0xd786fb52, 0xd2979858, | ||
4838 | 0x0df1d45f, 0x8e8b60cb, 0xefc0d82f, 0xfb5729a7, 0xd2ca8c73, 0xfddf4f7d, | ||
4839 | 0x005150b0, 0xdd40d3f2, 0x3789a4f7, 0x5329f2e8, 0x4ffaea46, 0x9756319b, | ||
4840 | 0x58a078cf, 0x3b9acf97, 0x7fbed759, 0x795d34f5, 0x191103fa, 0xcb9a8bf4, | ||
4841 | 0xd6f9e3db, 0x7c2f523d, 0x0728cbab, 0x35d7cec1, 0x4163c99c, 0xbd63ca81, | ||
4842 | 0x3e8baff0, 0x5b17db86, 0xff436f87, 0x39789fea, 0x1fb40bc7, 0xe0f03d83, | ||
4843 | 0x55f7f450, 0x13ddfa73, 0xf3be4668, 0x7c8c204a, 0x6fb71f68, 0x8738801d, | ||
4844 | 0x0381823c, 0xd378df68, 0x82788215, 0x19e6dfea, 0xfceb3ce0, 0xfc13329d, | ||
4845 | 0x8be69dae, 0xefc8230e, 0x3771d452, 0xa94107cd, 0x8905b881, 0x1f6dea4c, | ||
4846 | 0xb7f38dff, 0x9ecf07e5, 0x1d2f7e84, 0xb44cbb34, 0x56af09df, 0xf9a7643c, | ||
4847 | 0xdd98f7da, 0xfbfe2fa4, 0x63f7c92b, 0x97e62706, 0x93f97da9, 0x5f8e8411, | ||
4848 | 0x00d13bb8, 0x180aa7fc, 0x07f82a44, 0x1f41b3db, 0x05ec791a, 0xfd47fc1d, | ||
4849 | 0xfedd65f6, 0x230b1e14, 0x43f752df, 0x7ee84f3d, 0x8538c034, 0x56e3e07d, | ||
4850 | 0xe225db89, 0x067f74f9, 0xa7c0b3af, 0xbfe59569, 0x9697eca3, 0xda6cdfcf, | ||
4851 | 0xbf9ceb0e, 0xe071d961, 0x1cb767cb, 0x0bbefe38, 0xdbe3a1a7, 0xb9435f54, | ||
4852 | 0xe7f36bf0, 0x53dcf07f, 0xbd7e22f1, 0x119b9755, 0x70f9dd2e, 0xbdcef6ef, | ||
4853 | 0x7b53d312, 0x57b7d3c2, 0x18587f42, 0x2eaa8ee3, 0x7bdf84bf, 0xd42eb1ca, | ||
4854 | 0xd539172f, 0xfdc9b5f9, 0x601d0f80, 0x8545d97e, 0x2fc812e1, 0xbdd1317a, | ||
4855 | 0xf95faa02, 0x46834bf2, 0xda345ece, 0x2af0be93, 0xddea91f6, 0xc5ea1226, | ||
4856 | 0x4625d23e, 0x48d2996b, 0x578a50e5, 0x2768965d, 0xf5477fe4, 0x986349fa, | ||
4857 | 0x12e20abd, 0x62daa59a, 0xbf36ac69, 0xfaca58b0, 0x4d42faea, 0xdfc7c7eb, | ||
4858 | 0x817d3127, 0x427f07ea, 0xf5e814f8, 0xe84f5506, 0xae703d6b, 0x0cec3ea3, | ||
4859 | 0xbbaf5af7, 0x728d75dc, 0xd2e51ae5, 0x45ffca35, 0xcf29f7e3, 0x55ea66bf, | ||
4860 | 0xe058bf9e, 0xd03e074a, 0x76098f45, 0xe064468e, 0x2d0d555f, 0x1adf3f0c, | ||
4861 | 0x8ff9009d, 0x7d5abeb9, 0x72f8c439, 0x5cd79588, 0x788108a6, 0xd426e2ca, | ||
4862 | 0x49163f7e, 0xe17c6f79, 0x1fd32356, 0x20ff5a6b, 0x73cf80bb, 0x7ce1a93a, | ||
4863 | 0x4532e6a4, 0x695f4a28, 0x1bd61346, 0xfe233466, 0xef491915, 0xad8d9f72, | ||
4864 | 0x8027e54f, 0xce4fc093, 0x3cc5cc6e, 0xf5f227e5, 0x8e1a93f0, 0x9f955f67, | ||
4865 | 0x02f30adc, 0xf3da54bc, 0xf7905e30, 0xdaeebf13, 0xa9c20746, 0xfe80ce9b, | ||
4866 | 0xed7e066f, 0x02a63429, 0xf71809dd, 0x4262dd58, 0xa356e439, 0x5eebed8b, | ||
4867 | 0xbeac4fe6, 0x03f18bbc, 0x17d38d89, 0x538fc7be, 0xe3a2d8d5, 0x16f83d4b, | ||
4868 | 0xff8c578f, 0xf1919f7e, 0xe2848bef, 0xfc4f4147, 0xafa2f150, 0x5b2e6b7e, | ||
4869 | 0xdee8f374, 0x767deeef, 0xc6c73ee0, 0x953c7053, 0xa470aa1f, 0x38dbb9f0, | ||
4870 | 0x627c27ba, 0x38412970, 0x48fb7276, 0xc98d5f3c, 0xc55edc0f, 0x81e3d9f9, | ||
4871 | 0xb5adde3f, 0x38fb5af7, 0x387156c7, 0xd1040eac, 0xf51d242e, 0x5aaec138, | ||
4872 | 0x6f07766f, 0x49f0c437, 0xa164d8e6, 0x9d035e62, 0x849525a7, 0x16a6d196, | ||
4873 | 0xe7f02b98, 0x2af8825c, 0xfe1d24d9, 0xaf3429c8, 0x288db7e3, 0x13069b27, | ||
4874 | 0xe957f001, 0x615f2faf, 0x6b3af164, 0x4b3bb7f2, 0x927fbce9, 0xb820fbff, | ||
4875 | 0x6d601dd2, 0xebfda033, 0x63bfaea2, 0xca64dcd2, 0xfcf8132f, 0x72d1b79c, | ||
4876 | 0xc1e6f8cd, 0xade4014e, 0x76fa89a4, 0x0cb070f1, 0x8abfeba6, 0x1c524cdd, | ||
4877 | 0x20a197e8, 0xc2317662, 0x612230e5, 0x272ae8dc, 0xadcb47e3, 0x95d7a40e, | ||
4878 | 0x63ee2239, 0xadb7b713, 0xc81b3b07, 0xfc848a52, 0xeac894cb, 0xb44109cb, | ||
4879 | 0x4ec199a3, 0x8a7d806b, 0xda4ede60, 0xeb009f31, 0xb8f2041e, 0x4c9fd70b, | ||
4880 | 0x6f412b22, 0xbedf1aef, 0x164fbe18, 0xfe02cf7d, 0x3b6cca5c, 0xd53d8029, | ||
4881 | 0xf40a1beb, 0x2c10c1be, 0xcffad174, 0x5085a21a, 0xfd169b2f, 0x39a58931, | ||
4882 | 0xd3e4d710, 0xff987ff8, 0xf437963b, 0x912ce7cc, 0x5721fce2, 0x5fcb6a86, | ||
4883 | 0x012f3d10, 0x129ca79d, 0xba909e50, 0x09bd4de3, 0x2bf70f10, 0xb1878f23, | ||
4884 | 0x2fe93d31, 0x8f4cb9ad, 0xeac721ed, 0xf70537f9, 0x79ba63f4, 0x63f2e3b9, | ||
4885 | 0xd8d31fa6, 0x2797fdc3, 0x0ec1f8ea, 0x1d8d03a0, 0x11e4b07d, 0xa4355fc1, | ||
4886 | 0xcabf7e91, 0x6dd6bf7e, 0x601a0cbf, 0xf8f1f77e, 0xb3d5220b, 0x22f78f3c, | ||
4887 | 0xff744bb0, 0x6cd455df, 0x593bcb3d, 0xf9873fce, 0xc0f9baf3, 0xec045361, | ||
4888 | 0xce1eef7b, 0xdcfb062c, 0x51e8c66b, 0x3ff5c82b, 0xfdcdf260, 0x5a331cef, | ||
4889 | 0xedefba69, 0x4b9076ed, 0x9cfa724f, 0xd846a24d, 0x0f8f1f47, 0xaafaed53, | ||
4890 | 0x55ca8c5d, 0x0f9be046, 0x7f774244, 0x3c1ee697, 0x1c2efa16, 0x8adfb397, | ||
4891 | 0x9ad80afe, 0xb12cec2f, 0x16bb4d12, 0x679671f7, 0x45eb34ed, 0x57ad8e7c, | ||
4892 | 0xd668f5c1, 0x5b15fb8b, 0x50f082af, 0xfc19fbd7, 0x787ce69f, 0x14fbe8db, | ||
4893 | 0xdd7e33f0, 0x5b344ad5, 0xfbf8881a, 0x5a9bc057, 0x8d272f83, 0x00c2e3ae, | ||
4894 | 0x5854d0df, 0xf2325b4f, 0x6ff8bebf, 0xf466fc77, 0xcdb71606, 0xf386a7f1, | ||
4895 | 0x86fb15fb, 0xe11d8026, 0x220daffc, 0x21e7ddc8, 0xbf7e921e, 0x81343cd8, | ||
4896 | 0x73bec55c, 0x2e75db8e, 0xe8095d3a, 0x911d094f, 0xbec00b4b, 0x539e4471, | ||
4897 | 0x9a9eb3d0, 0x91ed0f2f, 0xb20ed14b, 0xa2388647, 0x1af71e1a, 0x993f7fdf, | ||
4898 | 0x6379c1d1, 0x20e804b8, 0x04e0a2fa, 0xeed55eff, 0x5ed1c73d, 0x247123b2, | ||
4899 | 0x710d2f8b, 0x08db473f, 0x908a9fd8, 0x146f1f41, 0x91057266, 0xb0cc46da, | ||
4900 | 0x8f52e16b, 0x63fd34ed, 0xed57dcfc, 0x31496cbf, 0xbb720539, 0xfa0f1cec, | ||
4901 | 0xc32b7043, 0x1e89b2cf, 0x33f69d83, 0x7f4041b6, 0xdba72de5, 0xaca98e31, | ||
4902 | 0xbf409129, 0x472c8f65, 0x9b6d533f, 0xf81da5ab, 0x0f704864, 0x794fe021, | ||
4903 | 0x14c7f0b8, 0xb28eeb1e, 0xc3fc807d, 0xb8f32fe8, 0x6fbb1a6c, 0xd0aeb187, | ||
4904 | 0xa0f0f409, 0x5cf203cd, 0xbbcf0ce9, 0x205957e0, 0xfe008e45, 0x7d2ceba8, | ||
4905 | 0x0e0635c0, 0xd9b0d285, 0x2442a983, 0xa56be50b, 0x4d205112, 0x86648997, | ||
4906 | 0xffcfeb7c, 0x6c289cc2, 0xa216e9bd, 0xfebfefb0, 0x8de1e01b, 0x8edeb2cd, | ||
4907 | 0x6fe7d619, 0x0be7d16a, 0xcdfcfa23, 0x4ff3e96f, 0xf74941c0, 0x0c2fb5f7, | ||
4908 | 0x37f088c4, 0x47fe0085, 0x8588990f, 0x97eaabae, 0x2703d466, 0x9cf0d954, | ||
4909 | 0x7305f8f8, 0xde47f208, 0xec08b57b, 0xb4bf954b, 0x6f01b8b3, 0xaf2825f8, | ||
4910 | 0x811fa97a, 0x0dff7273, 0x8cb7b544, 0xff64b900, 0x3ed80ddf, 0x9fed3cfa, | ||
4911 | 0xe0f8ffd6, 0x947a5fcf, 0xf9f8ffb6, 0x1210497e, 0xdf87d594, 0xef59aabb, | ||
4912 | 0x41ba1e1f, 0x2161ff3f, 0x664abe7d, 0x2f0bfafa, 0x187e2ac8, 0xdba5df18, | ||
4913 | 0x17f5c695, 0x907f9697, 0x6e20fd45, 0x8182e400, 0x4455efb1, 0xbf46afd3, | ||
4914 | 0xe1e9c89f, 0x019dc05c, 0xc88a63e7, 0x85cfeae2, 0x7a0348de, 0x1bc768fa, | ||
4915 | 0xe74f4069, 0x4fd04b03, 0x6767bd55, 0xd5e79c12, 0xf0e1bfcf, 0xaedf7a40, | ||
4916 | 0xdc82c6a7, 0x0c21bcf4, 0xd3dfa0f3, 0xf8477be0, 0xf4598e57, 0xc91db9fb, | ||
4917 | 0xd17def88, 0x30a8457b, 0x7c0e7b43, 0x8ee87c55, 0x383272a3, 0x9de3181c, | ||
4918 | 0x0fba5dfe, 0x780d9b55, 0x7c2aa65f, 0x038677f7, 0xa2366c1d, 0x8f7aabdd, | ||
4919 | 0xbe3ea091, 0x7bb456ed, 0x813eed55, 0x8dfec771, 0x5e5718a5, 0x61af1124, | ||
4920 | 0x664cba24, 0x75ae7a40, 0xb7ec039f, 0x926e7f55, 0xefc81725, 0x78a3fdfa, | ||
4921 | 0x548c7180, 0x069a28f2, 0xb2cf494e, 0xa9bff022, 0x57ae7bdf, 0x5f7e3edf, | ||
4922 | 0x78d5915e, 0xddaf9225, 0xc97af8df, 0x37688253, 0x5cb25ea9, 0x7d500f17, | ||
4923 | 0xfe0651ba, 0x4a0e3f1a, 0xfa739a90, 0x017f0835, 0xeb917f3a, 0x51ce5439, | ||
4924 | 0xc3cfa2e8, 0x3cb106bf, 0x80952b9c, 0x1bfeb047, 0x851744c8, 0x3234d547, | ||
4925 | 0x032cd209, 0xe42c7bc1, 0xefefe615, 0x7a0473a0, 0x237dd8e8, 0x84bab7da, | ||
4926 | 0xc33f5df6, 0xb7c8edfe, 0x07119c3a, 0xb6544dc4, 0xe2ee319a, 0xf2320be3, | ||
4927 | 0x37e1658d, 0xdc6f101c, 0x145992f1, 0xf1f5b0a9, 0x8362e49e, 0x37e7f003, | ||
4928 | 0x4e19aecc, 0x571d962e, 0x7b9a2fd1, 0x00f8b78f, 0xafcf49fe, 0x273d94ff, | ||
4929 | 0x7d678064, 0xe98b9e32, 0xbd8575c9, 0xedaafdc5, 0x42bae452, 0xb3d3c817, | ||
4930 | 0x5aefdc6d, 0x72f80b9f, 0x06e197d1, 0x6054a979, 0xf4480efd, 0xed7e849e, | ||
4931 | 0x924bd6cc, 0x076c32de, 0x70653a7c, 0xf852762f, 0x945e25cd, 0xf28ee60b, | ||
4932 | 0xa48740c9, 0x96fdc59e, 0x51222449, 0xf80cb039, 0xa3cc08ea, 0x59b65efc, | ||
4933 | 0xb9a2f8c0, 0xe775184f, 0x69e1c400, 0x1a4e57d7, 0x124adfb1, 0xb37cb4c6, | ||
4934 | 0xf802bcbe, 0xa5578534, 0x95e0fcc2, 0xf0718c3b, 0x5a3ea089, 0x930bfbbd, | ||
4935 | 0xfd751c76, 0xfaea217f, 0xd1e5973c, 0xfd45fd4c, 0xf70129be, 0xd8c8ffd9, | ||
4936 | 0xe65f380c, 0xf8e0f699, 0x985cfc55, 0x7e58ea4f, 0xa00c8922, 0xeba3cfe3, | ||
4937 | 0x9e607382, 0x918e8242, 0x92309f2c, 0xdf93c7ad, 0x0eb03d73, 0x36f277ed, | ||
4938 | 0x56aaafdb, 0xd61c3221, 0xf20de743, 0x5b47ac37, 0xb3af9aaf, 0xaefd377a, | ||
4939 | 0x7690ffb5, 0xf7bb5fac, 0x5fae930b, 0xe7a0cf6e, 0x7dd33110, 0x37cdd758, | ||
4940 | 0x71b4c343, 0xe1bdaa23, 0xbac78724, 0x0267e7bb, 0x720d3dbd, 0xd8071658, | ||
4941 | 0x8127aa18, 0x032c676f, 0xb7c742ac, 0xc79ddcdc, 0x2ce5a2f2, 0x76b4c83f, | ||
4942 | 0x54fe86c2, 0x32fa310f, 0x3329ae41, 0x68438f78, 0x37c54ece, 0x29c744d4, | ||
4943 | 0x12d93d93, 0x1e4f75f2, 0xb09659da, 0x6474fff5, 0x5ebab0dd, 0xbf7518e4, | ||
4944 | 0x08e10bd6, 0x641d43c6, 0xbd7c41f2, 0x4fc62671, 0x1fb68e12, 0xdd173e07, | ||
4945 | 0x5a11e547, 0xc1f0a36f, 0x6de3b071, 0x5645cbbc, 0xdd067cd0, 0x1b77e01f, | ||
4946 | 0x502f5205, 0x4bda8cb8, 0xa3d01be5, 0xd4378ef7, 0x4cdd70d8, 0x6dd6b06e, | ||
4947 | 0xfa47fb03, 0x0123f943, 0xb930ef5f, 0xdd741e70, 0xe5a34d0f, 0xb983cb19, | ||
4948 | 0x384bff60, 0x0ede6a1a, 0x8b70efe7, 0xa74bc61b, 0x6127b1b0, 0x7fe700da, | ||
4949 | 0x023c2906, 0xc5319574, 0x88ec1235, 0xffac1ceb, 0xd0f0d154, 0x46539054, | ||
4950 | 0x28d27cb2, 0xfb8ed9e2, 0x49c716b3, 0x30499137, 0xf20ef83f, 0xb3d6ed17, | ||
4951 | 0xc4349107, 0x5d4275f6, 0x3e9f8c21, 0x7064a588, 0x8bcbca06, 0x9eaa7cb8, | ||
4952 | 0xf7f59f6f, 0xea3f0024, 0x3f01f7e2, 0x201279b3, 0x1b1c8c8e, 0x9fed6a26, | ||
4953 | 0x0345fd6a, 0xdf50e93c, 0xc124597f, 0x287fe464, 0x5e67fa5f, 0xff857b42, | ||
4954 | 0x1a824cb2, 0x9cbfec3e, 0xd777cfa4, 0xb1f6c34b, 0x4a12167a, 0x839eadee, | ||
4955 | 0x11fd7484, 0x7f2d7f7d, 0xec24f5e5, 0x77698c8f, 0xe9d91c80, 0xdb3e476a, | ||
4956 | 0x46831215, 0x1174f7aa, 0x9dc1f182, 0x6d5df64e, 0x265339df, 0xa2679411, | ||
4957 | 0x40474fd8, 0xb2630881, 0xf413f5a9, 0x1eb7561f, 0x35ef8129, 0x7ce30da4, | ||
4958 | 0x1256c26b, 0xdbffc5ec, 0x970b0011, 0x3f29fce6, 0xfdd4ed8a, 0x9037b588, | ||
4959 | 0xb38fd690, 0x52222da2, 0xeab75a5a, 0xc00a2bd7, 0xd3947704, 0x2b37f04d, | ||
4960 | 0x72d1b73c, 0x23a3a883, 0xba6ea8eb, 0x275f3242, 0x061d181a, 0xe262bb7f, | ||
4961 | 0xaf3c9a6d, 0xf83edddf, 0x291309bb, 0x602a8ddd, 0xf55d9fed, 0x972c6fef, | ||
4962 | 0xae807c62, 0xd76bdb3f, 0xbcb895e4, 0x6b87e68d, 0xf2b8cef2, 0x8cf2b894, | ||
4963 | 0x567f7cb8, 0xc91ec3bf, 0x1ca9b836, 0x13f7eab7, 0x3a4fca24, 0xa9b32332, | ||
4964 | 0x309e4f04, 0x226133bc, 0x6a8f8dc4, 0x5a79c0f3, 0x59b82adb, 0x5f830fb8, | ||
4965 | 0xb9e19bad, 0x832eddcd, 0xaa3adf7f, 0x7688b8ed, 0x7209c12a, 0x27bc2da6, | ||
4966 | 0xe7687982, 0x330bb4d2, 0xfc3aa4fd, 0xb3ebb601, 0xe9117cff, 0x87fe4d7c, | ||
4967 | 0x765aef58, 0x8faf9274, 0x6e2bef83, 0x3be0b770, 0x92bd026a, 0x77bf9144, | ||
4968 | 0x992ff9ec, 0x7c633fdd, 0xf3d333ab, 0x43adf206, 0xb7cb5382, 0xa41f30fc, | ||
4969 | 0x0e5c65e7, 0x935c7062, 0xb886517f, 0xb787f78d, 0xa9c703be, 0xcb27d175, | ||
4970 | 0x73fb1e40, 0x20d1d9cd, 0x1f2d809f, 0x217af4f8, 0xd6f18664, 0x7861a18b, | ||
4971 | 0xc866adff, 0x7a05d111, 0xf016fb7c, 0x75574417, 0xda4ffc22, 0x284007db, | ||
4972 | 0x9755c5fb, 0x7db53e59, 0x5dc7ec0b, 0x009b7f0d, 0x0e4f1ef7, 0xd2201f68, | ||
4973 | 0x8355a5fc, 0x487e6227, 0xf7c816fb, 0x3f2c1c53, 0x81807dbc, 0x0921cfb6, | ||
4974 | 0x76ff6113, 0x8abf193a, 0x3967bfe7, 0xf7e755ff, 0x29cf7f4e, 0x66a90b80, | ||
4975 | 0x1c0b7dfc, 0xed9f94cf, 0x73b538ec, 0x9d9fdd17, 0x9fc8cc4b, 0x10bc6429, | ||
4976 | 0xe1ce938f, 0xf20ee78c, 0x8df50953, 0x926b384c, 0xcf68fb62, 0x7f21736e, | ||
4977 | 0x0f6ea1be, 0xb3e9d79c, 0xff3f900b, 0xac99ec87, 0xfdd2c6a4, 0xfad29a36, | ||
4978 | 0xe3271593, 0xed1106a7, 0xda8fe99e, 0xda78fe51, 0x0561d6cc, 0x1b534afe, | ||
4979 | 0x7c2b8fdf, 0x4c4c571d, 0xdf24b91f, 0xdacdfd81, 0x950cf946, 0x240966db, | ||
4980 | 0x309c80a8, 0x81394655, 0x3341a3aa, 0xdc5537cd, 0xddd27180, 0x335ad2fa, | ||
4981 | 0xd0a9bfce, 0x26760993, 0x9a693f55, 0xd44cc9ea, 0xdb4d65c8, 0x67cab958, | ||
4982 | 0x5e69729b, 0x12102e73, 0xad9779c6, 0xbb424dcf, 0xf3eec4bc, 0x743b5fac, | ||
4983 | 0x573c1afb, 0x9b3ae1a7, 0x68664312, 0x2fffc2a7, 0xf0c93dfd, 0xbef57efd, | ||
4984 | 0x7507df28, 0xd30ac9dc, 0xec0cca87, 0xf1527e3c, 0x44cb3ae1, 0x39a208cf, | ||
4985 | 0x4d03279f, 0xa448e068, 0xfdf0d1f6, 0x8c7843ff, 0xa3fdf586, 0xf1daf8f0, | ||
4986 | 0x84fc71c5, 0xa0bb8df2, 0x67259aff, 0xf30cdc79, 0x5df0a9bf, 0xe98c442f, | ||
4987 | 0x77b06f8c, 0xd077e804, 0x3e4c0abb, 0xe753b42f, 0x1ad1fb3d, 0xf5d4d794, | ||
4988 | 0x60787f58, 0x9d99dc12, 0xc5fe795d, 0xecfdb49d, 0xf775591f, 0xa4be5581, | ||
4989 | 0xae46bde2, 0x11eec618, 0x4fbb29ab, 0xe80a7208, 0x3aeaed77, 0xc4264f24, | ||
4990 | 0x18afaf8b, 0x609e8228, 0x828ff805, 0xb7432efb, 0x9c18132f, 0x9caa9e60, | ||
4991 | 0x08bb8843, 0x2953b3d6, 0xf97d86ae, 0xa05e2952, 0xf071b2a4, 0xa75e097c, | ||
4992 | 0x03d78dfd, 0x7aeae779, 0xfc72610d, 0xefa604a6, 0xd0f10249, 0x8dffcdf9, | ||
4993 | 0x811adb71, 0x13e21f03, 0xb0bb30b6, 0xc357972a, 0x79f74ee9, 0xe7e3973e, | ||
4994 | 0xc17e3973, 0x1deea306, 0x3e908a82, 0xbcd89a4f, 0x523eb9aa, 0x9fb0da45, | ||
4995 | 0xbd7d66aa, 0xd82faa6a, 0x83bf701d, 0x8690f1ca, 0xf9eae5f5, 0xc2f96fe1, | ||
4996 | 0xa0f77fa4, 0xa361f711, 0x09f1c999, 0x8fb93d23, 0xb5fc7f01, 0xffcde511, | ||
4997 | 0xc2a2fbe6, 0xf1624061, 0x8b5f00c3, 0x9ff84441, 0xec394916, 0x95c0676f, | ||
4998 | 0x93307831, 0x02f5a76f, 0x9aaf35bf, 0x361f01cb, 0xffcea22b, 0x64628f78, | ||
4999 | 0xcce5c37e, 0x4fbd1e9e, 0xc8133b46, 0xffbd5ac1, 0xe7d54539, 0x10ff72d7, | ||
5000 | 0x129a33d3, 0xa9bedc99, 0xe9077049, 0x2b4d277c, 0x5ff800af, 0xc021699c, | ||
5001 | 0x3d72e76a, 0x746a42f3, 0xfaadc031, 0x76bb4bbe, 0x7c37d011, 0x74be022f, | ||
5002 | 0xc7ecd18a, 0x967fd172, 0x0fb3fe00, 0x7cef8c43, 0xfdc0eb48, 0x9dab6098, | ||
5003 | 0x4f1355c5, 0xefda3ce6, 0x6ee9d5a9, 0xe3533b88, 0x641d4e49, 0x46f5cbfe, | ||
5004 | 0xf3dc096f, 0xfa63ee0d, 0x574687c3, 0xeb23dc36, 0xd011caf2, 0xd744cbbb, | ||
5005 | 0x7b2025d6, 0xaaf6b61d, 0x5a9ff85f, 0xfeae7180, 0x23dfa5ca, 0xfdd3d157, | ||
5006 | 0xbd3d7a2d, 0x61b34493, 0x07ca9b5d, 0xfc742386, 0x6e61d6ce, 0x40cad666, | ||
5007 | 0x93ad4be3, 0xd54d3dd5, 0x7187bc3a, 0xbdf088c8, 0xff91fede, 0xf0fc7ed1, | ||
5008 | 0x684bf06f, 0xef681fed, 0x7a43dbd0, 0xfabed9e6, 0x7e674d5f, 0xeff2b892, | ||
5009 | 0xb093becb, 0xf93fb50f, 0x0825c9eb, 0x37d228d7, 0x3e7a6469, 0xa144779d, | ||
5010 | 0xb46f4fed, 0xdda77f23, 0xf9fdbde1, 0xbe053654, 0xd194b393, 0xf486f55b, | ||
5011 | 0x4837606d, 0x57eac89c, 0x768a186f, 0xfedcb184, 0xea40df3b, 0x133ba015, | ||
5012 | 0xa1390069, 0x696ae4cc, 0x9c63c4d7, 0x5bd267b9, 0xbcb45f40, 0x0dabca1e, | ||
5013 | 0x82fcdeec, 0x8da2b6b6, 0xecc22f30, 0x02cde5c3, 0x78c53881, 0xdad115fb, | ||
5014 | 0x3560a889, 0x80cdbc36, 0x55d83f4a, 0x55df63f2, 0xbf79ee3a, 0x3d26efe5, | ||
5015 | 0xbf2a82dc, 0x7abd31f1, 0x9ff83a70, 0x901c7a54, 0x48cc95e8, 0xe074ae07, | ||
5016 | 0x3e0c67a7, 0xe02c97b4, 0xb82b1bf7, 0x478eaf9e, 0x3be30df9, 0x281fb70a, | ||
5017 | 0x2d70aecc, 0x47daa3fe, 0x0f403b54, 0xf294b3be, 0xf37d119d, 0x0aea421d, | ||
5018 | 0x80f84ed1, 0xd2740dcd, 0xfe70ff83, 0xba53eea6, 0xd8d0f8cc, 0xd10321a5, | ||
5019 | 0x6497b9c8, 0xcd3697cf, 0xa3ffe2b9, 0x826eb8a2, 0xb40c97bc, 0xbe365c81, | ||
5020 | 0xf70a91d2, 0xcebf98dc, 0xdb3c46da, 0x662df7e8, 0xfed02f2a, 0x90b871ee, | ||
5021 | 0x0cc8647f, 0x97928c0f, 0xa2f2d214, 0xfb9436e2, 0x09c4a9a3, 0xc6decefc, | ||
5022 | 0xa762dffa, 0x3b4246ed, 0xdbba77c6, 0xa2dea42b, 0x2afc5f69, 0xe9725fbb, | ||
5023 | 0xdfed1da0, 0x734b1297, 0xbe748f80, 0xa77e476a, 0xba53bbfa, 0x8958d5df, | ||
5024 | 0x1e1db9eb, 0xd5854a45, 0x3d03f715, 0xfb93088b, 0xd86277b1, 0xf46358b9, | ||
5025 | 0xe9ff00e5, 0x9644d778, 0xe08b7ed3, 0xbc54a231, 0xef0257b7, 0x2ebed536, | ||
5026 | 0xca486400, 0x8216772b, 0x5864d91d, 0xf7428f74, 0x34b0c4a7, 0x576d08fa, | ||
5027 | 0x04e6c033, 0x9cc4c293, 0x7de7fd3f, 0x5ed1ff34, 0xaba7de23, 0x266139d8, | ||
5028 | 0xa2fad1d8, 0xa2fbf8ff, 0x7975bf74, 0xbcbabfba, 0xbf9f45bf, 0x814f6cd7, | ||
5029 | 0x36942cfb, 0xd8cf70dd, 0xb73baa64, 0xf4d7ce8d, 0x354dc99a, 0xd9b37211, | ||
5030 | 0xe81980f7, 0x071e8c5d, 0x3a729978, 0xe17c8046, 0xc044fd6f, 0x559250f7, | ||
5031 | 0x072f80ff, 0x9992e7e8, 0xf3efb3c1, 0x9eec289b, 0x6967551d, 0xc36d94da, | ||
5032 | 0x597a68fd, 0x6f8c0908, 0x045d194f, 0xf7e130e7, 0x97183c4f, 0x265367e5, | ||
5033 | 0x4cfefc4d, 0x68437ed3, 0xded79c19, 0x5c27bc72, 0x856bcf4b, 0xb87177e6, | ||
5034 | 0x8b47d557, 0x53445ee0, 0x3061a4d2, 0xc90be92f, 0x0abbfb0b, 0x17c8d13a, | ||
5035 | 0x3fe2cdcb, 0x115a3f76, 0x2d89efe2, 0x7b873a07, 0xf8e9e39b, 0x0cf8bee3, | ||
5036 | 0xe8532ee3, 0xc9cfc030, 0xee376656, 0xfda21652, 0x43ae6fda, 0x44b8d5bf, | ||
5037 | 0x60b5d709, 0xa0242d80, 0x9f20991d, 0x3932260c, 0xcb41611a, 0xffb986cf, | ||
5038 | 0x0b4e0e3a, 0x9ab930b6, 0xbbe033ec, 0xc1400b31, 0xd5fbb902, 0x700f18a9, | ||
5039 | 0xc9a7f376, 0x5b6e01e3, 0xbb0270ef, 0xccbdf5a2, 0x8369e78f, 0xada4bbf7, | ||
5040 | 0xbd0172df, 0x6262db1f, 0x765448f3, 0xfb8f7ec1, 0x837280c2, 0xc81f1224, | ||
5041 | 0x67b24d0d, 0x6b91d018, 0x8012cef3, 0x59a9d9eb, 0x517fd622, 0x37184e20, | ||
5042 | 0x7c1a4971, 0x5e48205f, 0xfdfa3f46, 0xa26bf753, 0x05c99939, 0x7f782b86, | ||
5043 | 0x4db4d8fa, 0x3e3dcf18, 0xc6f7f367, 0x8d3b7f42, 0xd2846f78, 0x3e703dc7, | ||
5044 | 0xc0f5d0d4, 0xbcb66a7c, 0xb38cc693, 0x628a4484, 0xa3fcdbef, 0xaab26074, | ||
5045 | 0x07975c78, 0xf2c16c7c, 0x3bed3cba, 0x78f03d1e, 0x1b9ba533, 0x166078a9, | ||
5046 | 0xaf2097c8, 0x35ea4ff7, 0x1e5e293e, 0xc54af555, 0x6d3b3c4d, 0x08f3d768, | ||
5047 | 0x329d3f94, 0x4e47c84b, 0x27ac6599, 0xf3616dfd, 0x3f105cef, 0xd02dfbeb, | ||
5048 | 0x60f10e5f, 0xea2b853c, 0x0ee2a62c, 0x69cf0080, 0x9fc599b2, 0xf51f73d1, | ||
5049 | 0x44a9f5a0, 0xffd1aef7, 0x3a51fde5, 0xb2f0077e, 0xc72bddf3, 0xd9b5ae01, | ||
5050 | 0x8f40231d, 0x0cfe5ff0, 0x56b65eed, 0xb9b4f766, 0x0d9e64bd, 0x992a7be8, | ||
5051 | 0x83e3105b, 0xcfe3377e, 0xd1baebf1, 0x63f16462, 0xc7ec5129, 0xd7f4656a, | ||
5052 | 0x4df6f5c4, 0xf7a82c4b, 0x99094a6d, 0x955fd261, 0x573f54ce, 0x2a63b705, | ||
5053 | 0x7b415e3b, 0x4e09090e, 0x2e296bf0, 0xe55d2746, 0x3fcf11b3, 0x882831da, | ||
5054 | 0xd1e3bdf9, 0xf1db65af, 0x8040c35c, 0x83f30b53, 0x0eeddcd9, 0x3b47df58, | ||
5055 | 0x7d60394e, 0xb80c3be5, 0x27d0f2ee, 0x620af369, 0xf049bd74, 0xfaf3c15d, | ||
5056 | 0x46b59d0a, 0xc768fb4f, 0x6d7369a7, 0x730a4f4c, 0x706f417b, 0x2f1952f9, | ||
5057 | 0xc65c2858, 0x751d9839, 0xf7c453dc, 0x386de232, 0x4f6f6b5b, 0x6af3b0b5, | ||
5058 | 0x0dc9859c, 0x7ad0d6e3, 0x7c618788, 0x1ebe29cf, 0x57a32079, 0xf8fc6d3b, | ||
5059 | 0xb4441be7, 0x26ac56a3, 0xff3d6768, 0xf46c81fc, 0x903cee6b, 0x5f53473d, | ||
5060 | 0x6f8c3f8d, 0xf1616d9f, 0xa7f1a41f, 0xe20d251e, 0x7378d83d, 0x2007cabc, | ||
5061 | 0x3b86909f, 0x1e38fa3c, 0xbd4d130a, 0xa7c40dae, 0xefd58a0c, 0x01dcff2a, | ||
5062 | 0x5a736a71, 0xb413110d, 0xa70678f7, 0xebcbbc80, 0x2f77f7c7, 0x45a123c7, | ||
5063 | 0x5ac93d40, 0xfa3e4510, 0x1134f9b5, 0x4d3e5a6c, 0xe324f7f7, 0xf0e3d1d3, | ||
5064 | 0x19d813ee, 0x6b933ce1, 0xf5c8126d, 0x5e182b69, 0xa2207f45, 0xc435ddfc, | ||
5065 | 0xf9522f52, 0xb0cace45, 0xb14aff01, 0x01acb8b0, 0xbf58f959, 0x1a679efb, | ||
5066 | 0x4999e7bb, 0x8a7e30ea, 0x1f51db38, 0x38863fee, 0x580d0e41, 0x41911c98, | ||
5067 | 0x830c1bdc, 0x7a3c9820, 0xf10151ea, 0x8e7c03c4, 0xa9ea0a88, 0x3f185f14, | ||
5068 | 0xfa33e477, 0xf952f0e6, 0xa02ad0a8, 0x92db371c, 0x862bf5c8, 0xa3c2d757, | ||
5069 | 0x3c62ffd9, 0x778ea05a, 0x12e478bd, 0x5be1f5c8, 0x1fc2761f, 0x845fb828, | ||
5070 | 0xf0a771fb, 0x3628a67e, 0xb880af7c, 0xf1dd1d8d, 0xcd9fb464, 0xfd04de54, | ||
5071 | 0xf62bb541, 0x62ea515b, 0x76b6e07e, 0xdface790, 0x7c5cf052, 0x05cb6c5c, | ||
5072 | 0xcede3a79, 0x11367748, 0x533801ce, 0x1f94bd61, 0x5797fb30, 0x9d71fbc6, | ||
5073 | 0xe21b8f01, 0x44880607, 0xcfdf3e02, 0x35ef8b90, 0xdd380bf6, 0x59dc182b, | ||
5074 | 0xbb1e631c, 0xb12b5c0f, 0x075942fb, 0x1772c912, 0x5f4cc7c8, 0xcb8eface, | ||
5075 | 0x78b52e0d, 0x225346ff, 0x7ea987b3, 0x69ecbef7, 0x9f4f41a4, 0xcbad5daa, | ||
5076 | 0x537e174e, 0x0659ce0c, 0x85049f3e, 0x41ee4fdf, 0x35c00ae7, 0xff510c6d, | ||
5077 | 0x4b3e4036, 0x14fe37cd, 0xae957bcf, 0xbd9d7b55, 0x736b9bc0, 0x7abb9213, | ||
5078 | 0x8be031dd, 0xb8e7efd7, 0xfdd5e57f, 0x025dff1c, 0x9e7a0e7e, 0xb4c39776, | ||
5079 | 0xe6ab39e9, 0xae12203d, 0x21cac7b2, 0x11695ece, 0x2575fb78, 0xde5c4877, | ||
5080 | 0x3ee7f1c2, 0x3caaef06, 0xf1ba266d, 0xe293f3b4, 0x629087fa, 0xdfad4b9b, | ||
5081 | 0x5bfa1138, 0x83e79237, 0x5f83d41f, 0xbea369e7, 0x6f29043f, 0x029a990f, | ||
5082 | 0xc9f07fd6, 0x1a9fc741, 0xe1ef3b1c, 0xa97807fc, 0xf7aafee7, 0x44de34a6, | ||
5083 | 0x3f3ab2c7, 0xf50778c5, 0xf4a7f6fc, 0x24e22f7e, 0xff5fe3e7, 0x761e841d, | ||
5084 | 0x261693ca, 0xc90096df, 0xf9003d51, 0x17a97fb2, 0x9ca825e3, 0xb7cc21f1, | ||
5085 | 0x338eddf3, 0xe7796847, 0xf78fcfb4, 0x7d6e3c03, 0x31e83678, 0xfa03b7e0, | ||
5086 | 0x501b37f1, 0x055a55ce, 0x462d6f86, 0x7f1517a4, 0x7f1c9d2a, 0x7f788312, | ||
5087 | 0x3090e9b0, 0x5445ec1a, 0x9bbecd3f, 0xd5b165ee, 0x31c70173, 0x533fdfea, | ||
5088 | 0xeccad953, 0xe2fcfe56, 0xffd0798d, 0xf9c0810e, 0xc3ff26bf, 0xbfa8b9b4, | ||
5089 | 0x4f36907c, 0x65a2aed3, 0x691f8b1d, 0x470af636, 0xfa606ad9, 0x1e7dc1dc, | ||
5090 | 0x43e70be0, 0xca4b1618, 0x906ad0a5, 0x45cbcb57, 0x8546efd4, 0xbe43ef4a, | ||
5091 | 0x2026533d, 0x5c587787, 0xd3cd1e6c, 0xe42f1083, 0xbf81ffa7, 0x7e77936a, | ||
5092 | 0x3347ca29, 0xd5c41b15, 0xce2fcf9e, 0x5795fb44, 0x061c0276, 0x926537bc, | ||
5093 | 0x149ef80b, 0xadb4b8c6, 0x2091b6b5, 0x83efadd7, 0x63693ecf, 0x782f5cfb, | ||
5094 | 0x7e67df83, 0x5bb5a271, 0xf930b4e5, 0xe4cac32e, 0x867bf541, 0xb79dc995, | ||
5095 | 0x0026db05, 0xda961c3a, 0xfaf720ad, 0xd013e789, 0xe6d7894b, 0x0f7089da, | ||
5096 | 0x129ddea3, 0x4d3da170, 0xfc7f6949, 0x4dbf2826, 0x223b38c2, 0xe3033fb5, | ||
5097 | 0x894eae76, 0xfc850bdd, 0x6f680523, 0x1beacc7b, 0x14e3a562, 0xf3b27971, | ||
5098 | 0x10859de0, 0xe1ce38d7, 0xe824c9fa, 0xed0973e7, 0x8a9ee33a, 0xf8004db6, | ||
5099 | 0xd9903e7d, 0x08e895b9, 0x9376b9ed, 0x9e93ad95, 0x92ef286f, 0xfbf237c3, | ||
5100 | 0x1d9eb40a, 0x5a16f1ba, 0xb8de4153, 0xfd18f458, 0x24694c6c, 0x7d549f80, | ||
5101 | 0x9282bb40, 0x872025e2, 0x4a96084c, 0x271cb718, 0x71e04c87, 0xf4a4881d, | ||
5102 | 0xfbc7317b, 0xe1777421, 0x558a2dfd, 0xc7265ff5, 0xaeb792e4, 0xa3e090cc, | ||
5103 | 0x8a88af2a, 0x1399ed0f, 0xc6085a67, 0x1e8cafd3, 0x9e2ec117, 0x0a7af942, | ||
5104 | 0xf160cbde, 0xb32ff9a2, 0x466120fb, 0x3ffeddb7, 0xa8fd1da9, 0x7e56ad93, | ||
5105 | 0xfc33d7ae, 0xb7186d21, 0xb0900940, 0xd6cf68fd, 0xfd5057de, 0xf27f6a86, | ||
5106 | 0xad8f6672, 0x7c17f6e1, 0xdf9696f9, 0xb2ed556d, 0x467e75cb, 0xf0bedc75, | ||
5107 | 0xc6aac2ab, 0x804b4453, 0xd507a31e, 0x4a4f8a78, 0x8cfa2f00, 0x5778e0a7, | ||
5108 | 0x78f572db, 0xd195bf0a, 0x4f1d37c9, 0x913588f1, 0x11f44bc5, 0x471f114f, | ||
5109 | 0x911999d1, 0xda4b5ed0, 0x7d04eeb7, 0x7e84c5bc, 0x6f2d29db, 0xcbce11fe, | ||
5110 | 0x43090a29, 0x5cbc56dc, 0x5f4d35e1, 0x75def80e, 0xc056cce1, 0xef7775c3, | ||
5111 | 0xb03f3377, 0xd7885e5e, 0x7cabb60f, 0x1b73cb97, 0x1fa7d7ad, 0x29bef5a8, | ||
5112 | 0xcbe54eb9, 0x5187ae7e, 0xb9c072fa, 0x23d383b3, 0xd1c41250, 0xdd6dcbc5, | ||
5113 | 0x1c9c7ef2, 0xd19eff11, 0x9d6f69a4, 0x61a47bc1, 0xa87100b3, 0xde0919af, | ||
5114 | 0x63ee0dd3, 0x85b56dfa, 0xc3ea93f1, 0x2ca9fdec, 0xe3ed1793, 0xf22315e4, | ||
5115 | 0xf9e57f0d, 0xfd114497, 0xdc00af04, 0x27e5a653, 0x5faefd40, 0xd50e901b, | ||
5116 | 0x85b690f7, 0x2a74fc98, 0x94c88c5f, 0x79c1b7ce, 0xa13ce30c, 0x3d741bf7, | ||
5117 | 0x31f18fd9, 0x5ae837ee, 0x9706fccd, 0x6033e3cc, 0x330ecaf3, 0xb7197ffb, | ||
5118 | 0xf14aafff, 0xae8332fd, 0xc64ff16b, 0x1e75dda3, 0xd65a61f1, 0xc71bb7a0, | ||
5119 | 0xbfccbdec, 0x78af0554, 0xcc05fbb3, 0x8fb1a7df, 0xae523bc1, 0xce18a906, | ||
5120 | 0x5ce25ca5, 0x15d97c0e, 0x16fdd0a4, 0xbbf9eb4d, 0x802882c3, 0x4ead213c, | ||
5121 | 0xac7ec0b1, 0x012717aa, 0x45eb05bd, 0x5bb88f7c, 0xd7e7e00e, 0x29ffce25, | ||
5122 | 0x8e3042c8, 0x77f3d69a, 0x96fed57b, 0xa9023111, 0x9574b028, 0xdbd49a53, | ||
5123 | 0x57f6a8b9, 0xc653ac6f, 0x4034be83, 0x25ecbb44, 0xe01333d9, 0x8f29297a, | ||
5124 | 0xbd645c40, 0x1261aebd, 0xbf1c472b, 0xb17a8e64, 0x1312dbfc, 0x092b88d8, | ||
5125 | 0xfcdbd9f8, 0xdb878edc, 0x3838c6bc, 0xe3f3d9c6, 0x88cb3ee3, 0xa0e6686f, | ||
5126 | 0x6f92719e, 0x69733e73, 0xbfbf2e4d, 0xaeaee0c0, 0x067f597f, 0x4b007137, | ||
5127 | 0x9e280e07, 0x303ffb09, 0xa04d8651, 0xd223b329, 0x07fce095, 0xef053b7e, | ||
5128 | 0xb7cfc513, 0xc023841e, 0xbdecd5ab, 0xff3aaf8f, 0xddff79f8, 0xcce9c69a, | ||
5129 | 0x5f780193, 0x3df194e6, 0x17d96baf, 0x705cb972, 0xd6a1fe2d, 0x07f806fb, | ||
5130 | 0x1b578bd3, 0x13adbc78, 0x97bc08f9, 0x04a77f08, 0x9e08aef7, 0x79d5a1df, | ||
5131 | 0x06d5aeb0, 0xc27e1f7c, 0xef9e1b74, 0xfbd987b5, 0xdb4b3576, 0xad9ce1b3, | ||
5132 | 0xf7c76e2d, 0x0de1e36b, 0xfe5495b3, 0x49cdeb43, 0x1c6ef821, 0x79fbd069, | ||
5133 | 0x3cb3fa7a, 0xd3e03645, 0x37aec8c6, 0x654338e9, 0xd7c858df, 0x02ee8d2e, | ||
5134 | 0x91e3b579, 0x5e404af7, 0xd26f539b, 0x2792a7c5, 0xd2227ef4, 0x65768490, | ||
5135 | 0x5effa4d2, 0x5dae39be, 0x2351bf0f, 0xd97ae3e2, 0x7be80c37, 0xd3f9839c, | ||
5136 | 0xef88a549, 0x01db75fc, 0xe1ce1a9e, 0xeed3cee7, 0xee7d03ef, 0xef67ad2f, | ||
5137 | 0xf77aef59, 0x2fec02f7, 0xbe6ad7dd, 0x7df617bf, 0xb7f60f2b, 0xf2b7cf63, | ||
5138 | 0x1bd77f60, 0x3f403d1b, 0x0f9f153b, 0xefa73cfc, 0xa39ca2f0, 0x0b5c45c6, | ||
5139 | 0x275d172f, 0xe6fa2e5e, 0xe7aaf2f0, 0xcaa6c05a, 0x5ced5f49, 0x9ead3f83, | ||
5140 | 0x218af87d, 0x34bf4668, 0x3d98ffc3, 0xf077fcec, 0x0a2cb95c, 0xabe8f7e0, | ||
5141 | 0xae5c51bf, 0x104850cc, 0xc54513ec, 0xe8aed8ed, 0xdc809173, 0xf179caa4, | ||
5142 | 0x9f09f870, 0x4f36f3ff, 0x5f879c02, 0xce5aeed7, 0x4fa128eb, 0x43b9fc99, | ||
5143 | 0x6bbb3370, 0x1dd5c598, 0x9d82752a, 0xd9885cf5, 0xb1f76b5d, 0x422bea77, | ||
5144 | 0x5df0446f, 0x09c156f3, 0x8ec541fa, 0xeef01c0f, 0xae4e2690, 0x448ce819, | ||
5145 | 0x9deceff5, 0x40729d0b, 0xb79d1bbc, 0x6b78e415, 0x7a06544a, 0xf1172da8, | ||
5146 | 0x295ab3dd, 0xb5bcf18a, 0x241dc429, 0xf5ea5f20, 0x6c2e352d, 0xba465793, | ||
5147 | 0xdecad4d9, 0x7d934ca1, 0x0f11fdb9, 0x6dfbe3fb, 0xb7edfd2a, 0xf800fe79, | ||
5148 | 0x7ad3f31b, 0x8b576c5a, 0xc32ff91b, 0x617fe636, 0xccd97fe5, 0x6e3502e4, | ||
5149 | 0xce8ff544, 0xf3eef1e7, 0xf83bbc79, 0xf81a236d, 0x9b56df82, 0xd5b6fd57, | ||
5150 | 0x88322f10, 0xe5b56df9, 0x8d687edd, 0xae5b56df, 0xe889178d, 0x93234df8, | ||
5151 | 0x310b0d77, 0x25d2864e, 0x579163c6, 0x88ced505, 0x74a7e9f4, 0x0c6464b0, | ||
5152 | 0xf0fdd57f, 0x12b87f97, 0x3cfcf3e2, 0xf01ab2ee, 0x61c60477, 0x5fc04c46, | ||
5153 | 0x355f14c3, 0x4b6a2efc, 0x7d7374e4, 0x37e8c8f6, 0xedf1df4c, 0xe3c7573f, | ||
5154 | 0xb3aead74, 0x02ad5d7b, 0x75b8c3a3, 0xf189ebc5, 0xcf5569f6, 0x4bdf16bb, | ||
5155 | 0xdf1f5fb6, 0xabfdeb53, 0xfdb65ef9, 0xbef7c39f, 0x47fffb29, 0x3034c6ae, | ||
5156 | 0xe87b3e05, 0xd083df87, 0xad8312a4, 0x4c9477fb, 0xae3fe1d7, 0x437062d9, | ||
5157 | 0x21cd4ddc, 0xaaf21bbb, 0x7fde323f, 0x94f64958, 0xfde3c800, 0x5710d588, | ||
5158 | 0xfedae831, 0xb77b62c4, 0xfb573d5f, 0xb151785e, 0x61bf5f9e, 0xa7d934fb, | ||
5159 | 0x02e2d3c1, 0x82f7e02a, 0x24148ab7, 0xa9f638da, 0x7eb7e676, 0x9fefbf83, | ||
5160 | 0x88069321, 0x6eda7893, 0x14467bc5, 0xa62e306b, 0x6e9dead8, 0x9afc0d1f, | ||
5161 | 0x83d9efc1, 0x0b8812f7, 0xc618d67e, 0x1ac13efb, 0x5727de1b, 0xff6a23ed, | ||
5162 | 0xa97ea96f, 0xcd73e06b, 0xcd73e275, 0xf1cf8c37, 0xe3ab17ed, 0x61dfaf5d, | ||
5163 | 0x06918503, 0xb3f1e3df, 0xf17d76af, 0xef765581, 0x91d23b72, 0x5eb9ef07, | ||
5164 | 0x11e8ff2f, 0xf1b92987, 0x4dc41d5e, 0xfc559c42, 0x74f7a87e, 0x6b70b954, | ||
5165 | 0x97a1fb9f, 0xc57eb707, 0x3c96b8fd, 0x0de2a4f8, 0x8f4f7ac1, 0x3e81e4f7, | ||
5166 | 0xeccecabb, 0x0ccd9b2e, 0x0c0b372f, 0x13e07b1f, 0xe2a3efbf, 0xf5fb01d5, | ||
5167 | 0x7ad43bd9, 0x78fe6aff, 0x2d7c2ed4, 0x69fc077b, 0x886c90f1, 0x7d767be2, | ||
5168 | 0xfe9ec7f2, 0x5977162e, 0x517a86dc, 0xef8090f4, 0xf6f3ab33, 0xd63b31b7, | ||
5169 | 0xd45c39ef, 0x1cb8fbef, 0xfcf0e398, 0xf10a9ec1, 0x8f028a49, 0x59028c3b, | ||
5170 | 0x2f28e40e, 0x0da9378b, 0xda8fb8b3, 0x70e304a5, 0xb511fbd4, 0xc809532d, | ||
5171 | 0xbecd0b6d, 0x55fb433f, 0x8682d9ef, 0x4fa3b004, 0x75a72023, 0x37f2cbbe, | ||
5172 | 0x401f7d9b, 0x3b697fb9, 0xa69bfdda, 0xa138c79d, 0x5d3f2fa2, 0x3a5df609, | ||
5173 | 0xa40bb45f, 0xd3f7f498, 0xc7c60e1d, 0x50ead4d4, 0x7b41ebe1, 0xfb950778, | ||
5174 | 0xa7f2de40, 0x5f609c78, 0x56cded50, 0xe1da1b57, 0x6732f76b, 0xad81915f, | ||
5175 | 0x9fda3c87, 0x8ef6d1f9, 0xe415fc2f, 0x9042e6c3, 0xb7de8b57, 0xe3a8fda1, | ||
5176 | 0x138c2c91, 0xbbeacc78, 0x1f6af80c, 0xe40bba15, 0x0e3a1ccb, 0x7b1dadc8, | ||
5177 | 0x79842aee, 0xe0a17d77, 0xccecbaba, 0x24f5d0bf, 0xcaf88999, 0x665dd1ed, | ||
5178 | 0x9f022786, 0x666ad76f, 0xba1e0a9f, 0xdd03bf91, 0x38368f6d, 0xd1ecc746, | ||
5179 | 0xa5407cf1, 0x08fbeeff, 0x1ff414b3, 0xbd61fcab, 0xeaa39d91, 0xeece77f9, | ||
5180 | 0x3c16f1e2, 0x2a75aeae, 0x79e0d78b, 0xf8554f1b, 0xe3bb6f3e, 0x9cf3ac1c, | ||
5181 | 0xdec7fa5d, 0xe24cbec3, 0x2fd8e7fd, 0xe36939c4, 0xdfe0add5, 0x53897b01, | ||
5182 | 0x37b2bc46, 0xa1dfe610, 0xf9f20578, 0x09b6d16d, 0x839d7409, 0x01b7229b, | ||
5183 | 0x165f0fbc, 0x53a0bbd9, 0x92f78b7f, 0xde360413, 0x57da27a0, 0x8afb050f, | ||
5184 | 0xc36fedf3, 0x9d1abad6, 0x5b92e0c5, 0x870ef668, 0xd52241b8, 0xc578c3e5, | ||
5185 | 0x3c5918ef, 0xda2b21df, 0xabb29a09, 0xbb691273, 0x684cf7ce, 0x03e789af, | ||
5186 | 0xcb241a6a, 0x606f8e31, 0x0ed01fcb, 0xe82bdf6f, 0x93a6a6e0, 0xf7e6361c, | ||
5187 | 0x6095b609, 0x296dc9ac, 0x0e6e77ec, 0x7f041fbd, 0x5f1ab4bd, 0x46f52486, | ||
5188 | 0x7572088f, 0x7b411970, 0xa72690e4, 0xc395fb08, 0x0eba44e3, 0x1f08cfff, | ||
5189 | 0xddaa9f9e, 0x64a9843d, 0x7a095f6c, 0xfdacb495, 0xc7ec20f6, 0xb6b144de, | ||
5190 | 0xd68bfa00, 0x12b27c32, 0x5a739f38, 0x95bf2d06, 0x9c1a73e6, 0x7aea3fe8, | ||
5191 | 0x0de30ab5, 0x439d7483, 0xa167597a, 0xdce5c583, 0xa520e3c8, 0xfc115643, | ||
5192 | 0xb85ad2d2, 0x5341440d, 0xd29671ef, 0x129c43f6, 0xc38e7de2, 0xd4f00b37, | ||
5193 | 0x5902f9ca, 0x9c7f4162, 0x6d78625d, 0x8bdef25f, 0x55bfcf10, 0x1d4fef66, | ||
5194 | 0x34e37c3d, 0x96addfb4, 0xc6ab5ed0, 0x74e02e51, 0x47de13dc, 0xe0725e31, | ||
5195 | 0xbf303fa1, 0xfa0b1d0d, 0x3f0c8c97, 0xf829d5a4, 0xc87fe07e, 0xfd0b8c3e, | ||
5196 | 0x80c47d76, 0xe9e728fe, 0xaeb92667, 0xebc4b7ad, 0x891ccb29, 0x622e295f, | ||
5197 | 0x3d9be399, 0x3fdbe24f, 0x55f78eae, 0xd7a210f5, 0x63e87acf, 0x5c7572f1, | ||
5198 | 0x0ee4befb, 0xf542ee35, 0x504f1177, 0xcc526f17, 0xbe8a21c7, 0xef0b6abf, | ||
5199 | 0x50a3c78f, 0xf205c439, 0xd70ada4e, 0x8ebf8832, 0xdfa098fe, 0x09978d46, | ||
5200 | 0x9738b316, 0xbde0a8a0, 0x88d20cab, 0x48fd3271, 0x1ed01044, 0xd3b6e2c6, | ||
5201 | 0xb6865e21, 0x8818ef5b, 0xee216ffd, 0x41f20306, 0xa4abbe17, 0xfdd055c6, | ||
5202 | 0xd3243a41, 0xc13f1e64, 0x566b37f0, 0x70e2085a, 0x9f7edcfd, 0x7f1f2b35, | ||
5203 | 0x3f135567, 0x33feecc1, 0x7d4f882d, 0x10aa53de, 0xd6253df9, 0x1710d36f, | ||
5204 | 0x4d7ff3de, 0x693e6bb5, 0xe2e3ed67, 0xaa38542c, 0xfc2a1671, 0xf14c7bd4, | ||
5205 | 0x79314c70, 0x57bc02df, 0x7dd425e3, 0x0d8fdeee, 0x55d82ecc, 0x1cbbe221, | ||
5206 | 0x155d7f6a, 0xdc83679f, 0x626adc50, 0xefd712f8, 0xaefbeea6, 0x67c63321, | ||
5207 | 0x96bd7df3, 0xdfbeaa1c, 0x23bf9475, 0xd7bf8c75, 0xc21665de, 0x399f8006, | ||
5208 | 0xc9381b3a, 0xee4784f6, 0x5d817b84, 0xdc3668f6, 0x78dcdc2b, 0xa7cc24ff, | ||
5209 | 0xfe424f46, 0xc3ff84b5, 0x5ba243f2, 0x89e19ee1, 0x1e58b3a7, 0x908b2e70, | ||
5210 | 0x49848e33, 0xe07f82c1, 0xe3d73a5c, 0x022e1a77, 0xfb486b1c, 0xd3b436ca, | ||
5211 | 0x146973f0, 0xa26463e3, 0x44ecc429, 0x13ffdc2e, 0x631dec99, 0xbdc0fe5b, | ||
5212 | 0xdfde506d, 0x5a2df684, 0x627bf88e, 0xee5678c8, 0xfa4dfb62, 0x029c59db, | ||
5213 | 0x13d33dff, 0x1fd1e3b9, 0x4df8035e, 0x462b85e5, 0xc740989f, 0xe1b420bf, | ||
5214 | 0xee27593b, 0xe00161f8, 0x8ffd85eb, 0xe2b9060e, 0x77f7b94e, 0x72731ee1, | ||
5215 | 0x7ec8c239, 0xa34de5f7, 0xf9409acf, 0xb3ad1fc3, 0xff69124b, 0xcbc79333, | ||
5216 | 0xe0ef3089, 0x51eef8f3, 0xc4bfdf2a, 0x4bee4c19, 0x2015e89c, 0x3363f17e, | ||
5217 | 0x1f54b3a3, 0xe2063dfb, 0x3ddc219b, 0x12d7235c, 0xc4113bf6, 0x7b804ae7, | ||
5218 | 0x68eff108, 0x6b5e12dc, 0xf7f73900, 0x780ce881, 0xfefd5552, 0x38f7a107, | ||
5219 | 0xc604828b, 0x5c19a6c7, 0x141f01c3, 0x29cdf1b1, 0x2bc6c4b7, 0xfbf17048, | ||
5220 | 0x70a375c5, 0x51ba86dc, 0x28f4c7a0, 0xd072d1b7, 0xe5a09e93, 0x97297bc3, | ||
5221 | 0xd67afb78, 0x938ef35e, 0xa974e01b, 0x2fbc03f4, 0x04eb38b4, 0xc27647be, | ||
5222 | 0x0ef03c48, 0xfb93304e, 0x0739e8f5, 0x273c7dfb, 0x3b4fc591, 0x40704c37, | ||
5223 | 0xffdb107e, 0xfd0848bb, 0xb06653bc, 0x21df597b, 0xb4edf56d, 0xfa199dde, | ||
5224 | 0xcbb963df, 0x277fcfa5, 0xc29f9f5f, 0xebbe07e3, 0x1eff7fd6, 0x0f804a89, | ||
5225 | 0xffa31fdf, 0x441797dd, 0x0be0094f, 0x2f8c27e5, 0x2aee3c0a, 0xf9c20845, | ||
5226 | 0x2c81e37e, 0xc61a9ef5, 0xf5c0bdb3, 0x7fbf3f11, 0x91aa6701, 0x8586e3ae, | ||
5227 | 0x1bdc9dec, 0x93928833, 0xf92bfc04, 0xf07bbe08, 0xa729f711, 0xf4789bc0, | ||
5228 | 0xd713a97b, 0xf419e2af, 0x1f7c3b75, 0xe2e0cf9d, 0xd2538321, 0x418eefd8, | ||
5229 | 0x6b2309d9, 0x84b1fc1b, 0x7d684e7c, 0x3e2c6ff3, 0xf184bc62, 0xd7ab0277, | ||
5230 | 0x4ff86665, 0xfefc524f, 0xe21ede53, 0x27c89caa, 0x4abfdc2d, 0x8be85df0, | ||
5231 | 0x78d8d2a3, 0xfa8b0f1c, 0x5bc01629, 0x7cbb5df5, 0x1bf6e127, 0x7069a64a, | ||
5232 | 0xe794103e, 0xfd54bc54, 0x3c380348, 0x7f327e28, 0x1f872671, 0x06f7f091, | ||
5233 | 0xcfda8932, 0xadc61374, 0x04bafcf1, 0xde2a6f46, 0xb5ec7fae, 0x5f00a737, | ||
5234 | 0xc03f5c12, 0x3bb2ee7e, 0x74f9bd61, 0x804999ac, 0x78d829bf, 0xf449e707, | ||
5235 | 0x247927bb, 0x8c5d8798, 0xb09a1b18, 0xbf7f307c, 0x4fa4fa6c, 0xfe1a4866, | ||
5236 | 0x61adfb45, 0xfdf55afd, 0x459ba3c2, 0x68337e9a, 0x7e9a49bf, 0xf2c2689f, | ||
5237 | 0xbfe5fbbe, 0xe7e92147, 0xaf8fb6a7, 0xf3f5ea4f, 0x7c7dabec, 0x14f7f53d, | ||
5238 | 0x4df87326, 0xf329e356, 0x640f71f5, 0x7e615b8c, 0xc39c7d6c, 0x8edf1c9b, | ||
5239 | 0x306dff5b, 0x09250be8, 0x2844a70f, 0x1a524c3d, 0xf408dbeb, 0xd0fa461b, | ||
5240 | 0x802ff5d0, 0x7e652e2e, 0xb6fbbf80, 0xd989e078, 0x97a519d0, 0x7ba309dd, | ||
5241 | 0xe7c547ce, 0x3c5179ee, 0xf1543c06, 0xdd9e7e38, 0x30bdfc78, 0xa16d7206, | ||
5242 | 0xaaa407f2, 0x9d48423c, 0x0d70eb80, 0x2283ad88, 0x87528961, 0x22b37ff3, | ||
5243 | 0x33bdf388, 0xff8c19f1, 0x3be49319, 0x799af302, 0x3dec27d3, 0xa1d28c93, | ||
5244 | 0xf9d10720, 0xfd484d1e, 0x355f377f, 0xe1dc796e, 0xbd82373b, 0xe3ee9bb4, | ||
5245 | 0x5fed5ce8, 0xf234d395, 0x2af73b15, 0xf2be5545, 0x19642900, 0xe57cb832, | ||
5246 | 0xacd678c2, 0xf10dcb80, 0x8af91aaa, 0x44d547c9, 0xeece07bd, 0xa060fced, | ||
5247 | 0x987abe5e, 0xb76ebc60, 0x271a557c, 0xede3cd5f, 0xc42092a7, 0x93d936c5, | ||
5248 | 0x805e2c42, 0x162d39ce, 0x8db4dbff, 0xb74d8dc9, 0x82419cb8, 0x33d31672, | ||
5249 | 0xe87bf166, 0x6bde4cb9, 0x77c98fba, 0xbaea1ce3, 0x6b78fa2c, 0x133567ee, | ||
5250 | 0xb8b12f2a, 0x99abb40c, 0xa5d97d9d, 0xb53576f4, 0xf202ffde, 0x007f0832, | ||
5251 | 0x00007f08, 0x00088b1f, 0x00000000, 0x7de5ff00, 0xd5547c09, 0x73b9f8b9, | ||
5252 | 0x64cacb67, 0x109848df, 0x424e3b08, 0x875b3612, 0xe22948b0, 0x3cb888b0, | ||
5253 | 0x4240b21c, 0x3eb44196, 0xc33fedad, 0x0d220222, 0xc168d46d, 0x2a14180e, | ||
5254 | 0x0431a0d8, 0xa4587049, 0x141a87d0, 0x2f1f682d, 0x48145840, 0xad88a0c6, | ||
5255 | 0xbefbffcb, 0xef726e73, 0xf6b42264, 0xfa7fb6ff, 0xef7397b3, 0x6df3be59, | ||
5256 | 0x39ce5be7, 0xd78deec3, 0x1ec658b1, 0xacc630b4, 0x98eb458c, 0xb19436b3, | ||
5257 | 0x96eff0ef, 0x95e5e7ae, 0x6289e63a, 0xa31574ac, 0x47d7e5e7, 0x7a83cfa6, | ||
5258 | 0x4c8c7697, 0x66e783cf, 0x92d433b3, 0x50e158cd, 0x2fa18a7b, 0x7b46f963, | ||
5259 | 0x9b19933a, 0xbeb45e64, 0xcc9eba19, 0xd393f516, 0x5b09fb18, 0xcf074c74, | ||
5260 | 0x48ce9151, 0xc8673fac, 0x287a2967, 0x0379f8b3, 0xfd8c611c, 0xc28f675e, | ||
5261 | 0x19b98cf7, 0x718535c2, 0x4398a6b8, 0xf870f2bd, 0xa5c340f7, 0xfe8c8196, | ||
5262 | 0x1c7183be, 0x4b6f6726, 0x1155630c, 0x67971fb5, 0xa35cf631, 0xe2b6e6c9, | ||
5263 | 0xec1496d7, 0x11deb18f, 0x043086e7, 0x543ce185, 0x39e814f0, 0x4cb2d13c, | ||
5264 | 0x040bf4f0, 0xc65e630f, 0x68e0ba72, 0x94ae8437, 0xb1e0a97a, 0x00d17eb3, | ||
5265 | 0xc7be24a7, 0x06895ab1, 0x6a5383f3, 0x1257e3fc, 0x33d38fd4, 0x63265877, | ||
5266 | 0xea97981b, 0x1ce75efd, 0xb3c6e381, 0xb8e1894a, 0x112b6c2b, 0x96e0dd4f, | ||
5267 | 0xbf30c901, 0x1ec977d9, 0x0ae60c13, 0x7ace1f09, 0xd4fb3d61, 0xba7f1804, | ||
5268 | 0x2af67f18, 0xac0884c7, 0x78e25d37, 0x00ffc2f0, 0xfbe219fe, 0xa9b2c6f4, | ||
5269 | 0x3198e00c, 0x13ba70c1, 0xa66ff83e, 0x0181ba65, 0xc2a6b39c, 0x7bd7737b, | ||
5270 | 0x61d2209c, 0x2cffd28e, 0x6c39bb6d, 0x387267cd, 0x10191696, 0xd5ee735f, | ||
5271 | 0x09669f7e, 0x42173e8b, 0x077c076d, 0x60603af3, 0x79f68f34, 0xe609b3cc, | ||
5272 | 0x82cc56f1, 0x3347f7f5, 0x43b7e036, 0x7fe86533, 0xcd716c62, 0xf4bf283a, | ||
5273 | 0xbf2a60dc, 0x83cf7b15, 0xf3fbf147, 0xa09e54e9, 0x6e504683, 0xb3ce99ff, | ||
5274 | 0x9cd01529, 0x5494d773, 0x9040ff18, 0x467ef7e8, 0x9d83e3ef, 0x5ea1d355, | ||
5275 | 0x99bef0fc, 0x04d3e0cb, 0x0aede323, 0xde9ff7f9, 0x9ce54614, 0x191eacfb, | ||
5276 | 0x6c109cba, 0x30f7d375, 0xaa09b6c9, 0xd130c91e, 0x53e361f7, 0xccbef7f9, | ||
5277 | 0xe7df851e, 0x23fb5185, 0x0b5e2199, 0x47f2f78c, 0x01fbe883, 0x0eb9b3e9, | ||
5278 | 0x595b5120, 0x52e91ea8, 0xe336689e, 0xc940c873, 0x3df0083b, 0x5f8c5221, | ||
5279 | 0x353de7c6, 0xca226b73, 0xdf5c84cd, 0x6850c75c, 0x670e6897, 0xfe1f1137, | ||
5280 | 0x8879f90c, 0x34aadc6d, 0x5f16afe4, 0x150f9a8a, 0xf8574f3a, 0xcf96826f, | ||
5281 | 0xc51e7e40, 0xfa9f0af6, 0x87c2a7f3, 0xea0b3e1a, 0xb97f33e2, 0xd7009e57, | ||
5282 | 0xb18f924a, 0x97721f20, 0xe38e747c, 0xe3fe2727, 0xf8bf24f6, 0xdca2c527, | ||
5283 | 0xc2777f88, 0xd0f24b57, 0xb9e9b99b, 0xcb83e501, 0x8708b3cb, 0xc56cd751, | ||
5284 | 0xdb247df7, 0x33c20b60, 0x0c7666ca, 0x0a372eeb, 0x783ac97c, 0x2e1dd991, | ||
5285 | 0x3943d3fc, 0x45fe7589, 0xb8e0e747, 0xb3b43bfc, 0xb82ec8b3, 0xa4adfc60, | ||
5286 | 0x7870569f, 0xb88b4836, 0xd09763bc, 0x5768b94f, 0x41b7ccae, 0x0678df3b, | ||
5287 | 0x2ffa8778, 0xc4967ec4, 0xfe18dddb, 0x82b87995, 0x4f81ee41, 0x611d9966, | ||
5288 | 0x1dd39846, 0xb724f911, 0xebf73277, 0xb38f8011, 0xc2136706, 0xae643c77, | ||
5289 | 0xed7e1191, 0xf757a146, 0x74285f20, 0xc7f4e052, 0x7a0f794f, 0xfe1e7fcd, | ||
5290 | 0x57a2e978, 0x133e0273, 0x2b2a22d8, 0x79e1bdf3, 0xae5e0ff6, 0x69bdf983, | ||
5291 | 0x147c9df0, 0x6fcdebe4, 0xeb3736cc, 0x20cdf382, 0xbc3d12eb, 0xd992ff77, | ||
5292 | 0xb3e00736, 0x051f8168, 0xb32e772e, 0xcebeb19b, 0x8a9659ec, 0xe06af674, | ||
5293 | 0xcfe88fca, 0x7f174c58, 0x5eeb31c5, 0x2afb3154, 0x3d56b6ec, 0x57a487ad, | ||
5294 | 0xcf50c2d8, 0xab9f6866, 0x99c4e5e7, 0x50a59eb1, 0xdce8f76e, 0x3c6f1806, | ||
5295 | 0x347375e8, 0xefe74fbe, 0x38230b59, 0xc20b3147, 0x90011559, 0xbbaaf7c2, | ||
5296 | 0xd1c03dd2, 0xd95bfeac, 0x7ddf041d, 0x0fa4c1c5, 0xc16032aa, 0x83efc2cb, | ||
5297 | 0x896efbe9, 0xd62ee38f, 0xd355b8d1, 0xeaa8feb9, 0x53b8f16f, 0x54ceb271, | ||
5298 | 0x8daaf7e4, 0xd04884f6, 0x5b328923, 0xa47a0b54, 0xf0ca152a, 0xeec65d8c, | ||
5299 | 0xf4c47d43, 0xc3d3e1f6, 0x78fbf0ba, 0x11deb8d8, 0x84b71fc0, 0x96fe75f3, | ||
5300 | 0x2af9ccb5, 0x29b563d6, 0xd57587d3, 0x00008a8b, 0xd4305eb0, 0x596efe83, | ||
5301 | 0x6286f50d, 0xac2f507f, 0x83763d7b, 0x68a7c476, 0xac608c47, 0x9f11d858, | ||
5302 | 0x8299dd6e, 0x9b27c476, 0xa9e4a677, 0xd8945fea, 0xbfd71c1c, 0xbc656f7d, | ||
5303 | 0x66ec67ca, 0xa0926f18, 0xf98724fb, 0x50eb8494, 0xe77b44fc, 0x1a7c85fa, | ||
5304 | 0x0235bf61, 0xef9061f5, 0xb47ba445, 0xf90e77d1, 0x6261bd8a, 0xa3ae199b, | ||
5305 | 0x1a5d72be, 0xf7876faf, 0x1bc8efe5, 0xdb7e0357, 0xdbfe3862, 0xbe041976, | ||
5306 | 0x2dff9e5b, 0x0c34af94, 0x3c61ab60, 0x0231bc17, 0xd71cbbff, 0x853d702a, | ||
5307 | 0xbfce333f, 0x57112854, 0x55d98983, 0xfc1b60eb, 0xc5d99457, 0xd04ced2f, | ||
5308 | 0xe88421b7, 0x1b372e5b, 0x75caff91, 0x70875d92, 0x59ec1c2c, 0xa7e97526, | ||
5309 | 0xe8af4512, 0x132972d8, 0x262cede9, 0x9827bcbe, 0xfdf0966d, 0x80c5f4e9, | ||
5310 | 0x9af352af, 0xa18f5c66, 0xd70901de, 0xb407a41c, 0x53ed885f, 0xbcb3e3bb, | ||
5311 | 0xad54e00e, 0xb4dba5f7, 0xc6642f70, 0x0784efae, 0xd7cbc937, 0xc414e706, | ||
5312 | 0xb730596b, 0xcd4b2e43, 0xf03f0839, 0xf017b79d, 0x2649afa9, 0xc0c426be, | ||
5313 | 0xbe8a79f8, 0xdc7ce6a9, 0xb3c7d55e, 0x09e7be04, 0xca35e5ba, 0x0b3c135e, | ||
5314 | 0x5a7bbce3, 0x2d4addb0, 0xfbc74b1d, 0x3952ea0e, 0x1ea38e1e, 0x4dc152af, | ||
5315 | 0xa7054e7a, 0xa25cbddc, 0x7d45eef7, 0xc63f3fe0, 0xeba935be, 0x4ab689dd, | ||
5316 | 0xe709f236, 0xf495667b, 0x0797d066, 0x4ca15d05, 0xe62499f3, 0xf5f23466, | ||
5317 | 0x14ef9fdb, 0xd08eaefc, 0x8eba3971, 0xbe412dbc, 0xbcbeb98e, 0xb3fef529, | ||
5318 | 0xdff56de4, 0x06ec6f29, 0x8267c1d7, 0xf8083b98, 0xd8ca5ab3, 0xfab27a8b, | ||
5319 | 0x465b6636, 0x37ebb55f, 0x088673ac, 0xc035fd7c, 0x85987403, 0x9d7906ff, | ||
5320 | 0xad3f7d1d, 0xfc97607b, 0x9cd9f516, 0x776ec201, 0x2424bb70, 0x9b19f38b, | ||
5321 | 0x61fd3cc0, 0x1ca2610a, 0x23d9b932, 0x1eb91f03, 0x006765ce, 0xf8fb311f, | ||
5322 | 0x32f5f2fb, 0xe51375d9, 0xa865d8bf, 0x659431db, 0x5cc80582, 0xd53f4417, | ||
5323 | 0xa633f512, 0x24fee371, 0x6e4c4728, 0x7016464e, 0x6674bc3d, 0x9c0208eb, | ||
5324 | 0xd058b1e8, 0xdfe1f163, 0x67c5bd50, 0x7d827979, 0x57942f60, 0x799921d7, | ||
5325 | 0xa1c761a0, 0x2f2c7a99, 0x28b125d8, 0x104cf718, 0xd501a397, 0xc955663a, | ||
5326 | 0x304f20e3, 0x75f8aab3, 0x4d4896c8, 0xa26d5879, 0x0d4dfea6, 0x33df357d, | ||
5327 | 0xdf3583bc, 0xd4ca1c47, 0xc79bb394, 0x3c8fea68, 0x8f29ab9e, 0xa9a2996e, | ||
5328 | 0x0cc2f63f, 0xbe47f94d, 0x99f535bb, 0x103cdedb, 0xe82050f0, 0x8a0ff8af, | ||
5329 | 0x5ae5bafe, 0x2c3da69e, 0xe8095ec7, 0xb15fc85a, 0xc80b3582, 0x2d07193f, | ||
5330 | 0xc896fdd4, 0x8da20e6b, 0xf5a95856, 0x6b54164f, 0x1b0dc5cb, 0x5609408d, | ||
5331 | 0x2fbed1ec, 0x0f2da2d9, 0x43a79e88, 0x011b3abe, 0xf820c9fe, 0x428b1447, | ||
5332 | 0x2ec9eff9, 0x44efa7f1, 0x00758fe1, 0x7e8098df, 0x33dface9, 0x7d234737, | ||
5333 | 0xdf03cc0d, 0x7e05b03b, 0xf5c1be07, 0x03d0e3a3, 0x8523e43a, 0x3278fede, | ||
5334 | 0x1ee96bc5, 0x3dd2d564, 0xee96a064, 0xdd2d3661, 0xd2d28d7b, 0xa5aec23d, | ||
5335 | 0x2d64d47b, 0x5a1c63dd, 0xd1cdc7ba, 0xa9c13dd2, 0x91527ba5, 0x8bc9ee96, | ||
5336 | 0xf3ef74b4, 0xa9ae96b0, 0xbe5a85ee, 0xc503e3f0, 0xb95b4b4e, 0x8e9eafd8, | ||
5337 | 0xe0fcd4e9, 0x40ca9a28, 0xfcaff4cf, 0x7fffa6b9, 0x45a43f36, 0x92353f0a, | ||
5338 | 0x7e477e45, 0x645fbd86, 0x46ff7776, 0x7f6a6bd1, 0x65d39f42, 0xefa4f67f, | ||
5339 | 0xd3cbd9ba, 0x47a09c78, 0xdc9ad97b, 0xf5272f65, 0x982797cc, 0x4bd689bb, | ||
5340 | 0xf08746b6, 0x70e165dd, 0xa357c15c, 0xd59bbb19, 0x13dfb01a, 0xc0146750, | ||
5341 | 0x03e7027b, 0x9acbdfe3, 0xe65cfde9, 0x5993a7a3, 0x63ccf88c, 0x30167a36, | ||
5342 | 0xe8a73d07, 0x1e22b79c, 0x392dcd4a, 0xceaf6fa8, 0x42527a3b, 0x21448ea0, | ||
5343 | 0x2f23dfd0, 0x4ea75a6e, 0xd999cc57, 0xd6b18fda, 0xb44ce70a, 0x16e33ba7, | ||
5344 | 0x568d6676, 0xbc6f2de1, 0x7a8f5034, 0xa1b60e56, 0xa777943d, 0xde6cf644, | ||
5345 | 0x3739fc97, 0xfe43af92, 0x2b0f65cf, 0xfe14ab78, 0x1e43f707, 0xbb0ab48e, | ||
5346 | 0xc943399e, 0x7059b3be, 0xb8fe805d, 0x9182ff3d, 0x82582eec, 0x2e80d7f5, | ||
5347 | 0x4f4e24db, 0x4dda2ba4, 0x7cccf4c3, 0x9843ca0d, 0x27ccfc93, 0x7892a0f4, | ||
5348 | 0x1fb1833f, 0xa0dbda17, 0x75234a02, 0x8e394e34, 0x3cd4f007, 0xaa20cccb, | ||
5349 | 0xe98126ac, 0x9afb4207, 0xf12ca225, 0xbce1fe32, 0x454cdfc9, 0x4d2b6d78, | ||
5350 | 0x4858af64, 0x4ccd923e, 0xe3dc91c4, 0x493ef0dc, 0xed090d06, 0xbfc01bd6, | ||
5351 | 0x6b942488, 0x2198c3e6, 0xfaf99ce2, 0x934c157e, 0x51f8539d, 0x0a2f7c26, | ||
5352 | 0x1dbfdeb4, 0x9595edc9, 0x40efc715, 0xcdef297a, 0x84b3377a, 0xf7825ea2, | ||
5353 | 0xeb31b92a, 0xb0f11d99, 0x533dc2a2, 0xc8d9ff5d, 0xf1e7ea48, 0x4e2d8bde, | ||
5354 | 0xdf723ef8, 0x720428a2, 0xd9739067, 0x10a1658f, 0xe9458962, 0x069ad46f, | ||
5355 | 0x1ec3fb99, 0x919afd19, 0xd4e7f5c7, 0x2dd1a471, 0x0bd8f2da, 0x0f42b2da, | ||
5356 | 0xc177f376, 0x82650728, 0x00f14caf, 0x195eaa97, 0x67c0f63a, 0x0fdcf165, | ||
5357 | 0x84c1be63, 0x1b90a377, 0x0de49d53, 0xc130f902, 0x0a61925c, 0x9ccc0c2b, | ||
5358 | 0xedeb7480, 0x6e5da0b4, 0xd0ebd44c, 0x2ff2603f, 0xf800ce6c, 0x78a69e53, | ||
5359 | 0x7eb555fd, 0x17ea03f9, 0x48d86bb0, 0xdff11236, 0x41e02f09, 0x1a3a7802, | ||
5360 | 0x46ae36e2, 0xcdcc9c78, 0x613603cb, 0xb3fea7b9, 0x7a59becd, 0x0b6cc110, | ||
5361 | 0xbc3fc67f, 0x447e9674, 0xa3af7af7, 0x64e3075d, 0xd93db8eb, 0x8e5cde9d, | ||
5362 | 0x6bb3e93a, 0x01646c81, 0xb0d553e8, 0x7fd4e3ff, 0x25793e9c, 0x51e22ba9, | ||
5363 | 0x6fc092ee, 0xcd698787, 0xf8009612, 0xc75aac2e, 0x092e3f90, 0x8f325c38, | ||
5364 | 0x24d7b1c3, 0xb5e8a7aa, 0x10022c97, 0x875a1af3, 0x62f04407, 0x0eb72f7a, | ||
5365 | 0x6bd2f2e5, 0x2fae88bd, 0xf1474efe, 0xa3cc41b8, 0x610cf9c3, 0x8c3efa5e, | ||
5366 | 0x26f950b5, 0x67281514, 0xdbf12b30, 0xbb23e608, 0x2b5cf411, 0xd972b9ea, | ||
5367 | 0x2820bbf9, 0xbe764e5f, 0xe84e7a44, 0x4fc174fd, 0xaf7e8ae9, 0xddc7fbd6, | ||
5368 | 0xf8a48d3e, 0xad0b6f4a, 0x54ce4223, 0x3af82674, 0x7f91448e, 0xe768e209, | ||
5369 | 0x544db4e5, 0xc688303e, 0x587c1429, 0x8d88ec98, 0xc5ebd154, 0xf5336b8a, | ||
5370 | 0x7802f92a, 0x5bbf28ec, 0x4d66822a, 0xa397bd50, 0x32071e38, 0xa18fd5df, | ||
5371 | 0x2175f9ff, 0xe047b436, 0xf97ec68d, 0x4729c90f, 0x5b97bc01, 0x9a3af5ac, | ||
5372 | 0xf50ea567, 0x24efd962, 0x33c01cf6, 0x66b97180, 0x7035e2fd, 0x9848a96d, | ||
5373 | 0xf9f40135, 0x0fdc917b, 0x1c7cc971, 0xe28433b6, 0x8cc98531, 0x853f4385, | ||
5374 | 0x7c91a7af, 0x0bd0c40d, 0xcc32b1c2, 0x8c2f7683, 0xdd95151b, 0xf1ff1e1d, | ||
5375 | 0x35df43df, 0xb733f49b, 0x1ef543bf, 0xdd9973f4, 0x7bc7556e, 0x19bb0b56, | ||
5376 | 0xe39213fc, 0x3b9fd160, 0x7aff7197, 0x84fb8f30, 0x296ae6b2, 0x62f5e7ad, | ||
5377 | 0x9a651a20, 0x014c02f5, 0x36ce5718, 0x16ae5c93, 0x47acc472, 0xe18fe8ad, | ||
5378 | 0x3a184673, 0x8f0e9cfd, 0x1cfbb187, 0x24fd7a2a, 0x3f0baf8a, 0x6a78e289, | ||
5379 | 0x077b7337, 0x2a19f5e3, 0x31af387f, 0x251bec9f, 0xec2edfbe, 0x9503f6c9, | ||
5380 | 0x27e8c1b9, 0xbe388a57, 0x058a9fb0, 0xfa682d2b, 0x4ad78e4d, 0x3e91587d, | ||
5381 | 0xfe7de2f9, 0x535dad4a, 0xf649c5b8, 0x24ecf5cf, 0x09c514c0, 0x49a4edfd, | ||
5382 | 0xd96f4251, 0xefc60658, 0x3b49accf, 0x307a8c18, 0x1e305995, 0x9abf249f, | ||
5383 | 0xf11428b1, 0x871cace0, 0x4f543df2, 0x67afeb72, 0x1a87041e, 0xe245b9e9, | ||
5384 | 0xe7f774f4, 0xd92db4f1, 0xb2dcefdc, 0x7f5a63b7, 0x58cbe7e8, 0xdda52f8e, | ||
5385 | 0x6a06b197, 0x38e828f7, 0xd8cb5f7c, 0x6e7e40e4, 0xc977c091, 0x7a8b2096, | ||
5386 | 0x8dab2a7d, 0x0d5d94d0, 0x7af51609, 0x2c28f640, 0x4c146caa, 0x7e2ba721, | ||
5387 | 0x72d0d653, 0x768ac430, 0xca017381, 0xbfc1fb49, 0x3a250f86, 0xff5072f8, | ||
5388 | 0xf9c7183d, 0x02b6e113, 0x9f743b3c, 0xffd355cd, 0x80bd28d1, 0xffa7af9b, | ||
5389 | 0x2d765c30, 0x1e87975c, 0xe1c29d8b, 0xd5c239fa, 0x8b1d3de6, 0x8cb805f4, | ||
5390 | 0xe476b86a, 0x3f9ff8f2, 0xa1fc9e9e, 0x88f564f0, 0x87df35a7, 0xc0c61da7, | ||
5391 | 0x74126cf0, 0x6e80f97b, 0xfac027b2, 0xcfc849b4, 0x1aef0c3f, 0x6b6dfc3f, | ||
5392 | 0x15618d9e, 0xe1137780, 0x9635be2f, 0x7f021672, 0xe04e22b5, 0xc6fa12ce, | ||
5393 | 0xfd03ba06, 0x7a468fba, 0xead40f50, 0x2c54d459, 0x96d814e7, 0x46af3cc0, | ||
5394 | 0x5da0fb38, 0xfe21eae4, 0x7f8091f2, 0x7014a247, 0xef881ffe, 0xf5e48f7b, | ||
5395 | 0x89ff75c1, 0xf28626e3, 0x09ebe0af, 0x1339ad4b, 0xe6fa37fb, 0xf59cb0db, | ||
5396 | 0x1a1ad9b9, 0xef1d7fa0, 0xf27e57ff, 0x3caff4a1, 0xc81a8ddf, 0x01d247e3, | ||
5397 | 0xfb209419, 0x9ac7cdd5, 0x7f9cc3c7, 0x9d27a595, 0x79e30ffa, 0x79fe36b9, | ||
5398 | 0x762c7bd9, 0x778be71a, 0x4b97df51, 0x876fc367, 0xbdf24bb2, 0x97f31433, | ||
5399 | 0xd7cd2746, 0x6d8991f5, 0xbce7600c, 0x9942f821, 0x057f329f, 0x151fb0ee, | ||
5400 | 0xee0091f4, 0x5a2613b0, 0xf5103e0c, 0x97a07595, 0x5e71a3b0, 0xacdc0eb4, | ||
5401 | 0x6ca071e7, 0x57f7d13d, 0x1c50c6a3, 0x27c88768, 0x291b46fa, 0x870fe95e, | ||
5402 | 0xff8f9a21, 0x9bf7b5c4, 0x8d3f62fb, 0x33e78a06, 0x4cfc4b7d, 0xdbd717e0, | ||
5403 | 0x9427877a, 0x8ef266f8, 0x4763a450, 0x753c0b78, 0xa76a06d1, 0x7287bd43, | ||
5404 | 0x8c9e4d71, 0xc8fdae7a, 0xc55916e7, 0xccb472e7, 0xb9ac6be3, 0xbff42c79, | ||
5405 | 0x30599336, 0xd62a1cbe, 0xad23d0df, 0xe87f0845, 0x249b9fa8, 0x4af6fc55, | ||
5406 | 0xadda8994, 0x6d62fa35, 0x09ab9fd0, 0xf78a051c, 0xb1b118b7, 0x85970782, | ||
5407 | 0xeb3ca1e3, 0xe866e800, 0x4760d1a7, 0x2b68e578, 0x7700a7d7, 0x1e0fbc3d, | ||
5408 | 0x1f25b9f4, 0x78c167bf, 0x87dabb7d, 0x833d3859, 0x439e61b3, 0xb3de5f91, | ||
5409 | 0x97b3c014, 0xdf081cc4, 0x3f5cd183, 0xc455702b, 0xfc02fd71, 0xf114321e, | ||
5410 | 0x7ca3ac9a, 0x66fae3ea, 0x96e3dfc2, 0x8c25967e, 0x79c76ef0, 0x299b46f9, | ||
5411 | 0xed1d56ee, 0xf9c6898c, 0x1e1cd818, 0x8c766cf7, 0x32587c27, 0x07002356, | ||
5412 | 0xf0bd9106, 0xc38bc133, 0xb21cf358, 0x168cb20b, 0xf594475c, 0x8ede8bf9, | ||
5413 | 0xcd37685e, 0xd076e68d, 0xd742b7f9, 0xc0abbae0, 0x2c02b677, 0xb957633a, | ||
5414 | 0x8498e6d0, 0x9ccf9978, 0xe78e502b, 0x551e0157, 0xc0de7efc, 0x16bc2dfb, | ||
5415 | 0xaa51bccc, 0x36eea376, 0x6bc2bb62, 0x760bcce1, 0x5e20f9f7, 0x5f187cef, | ||
5416 | 0xf18ac6cf, 0x33fc156f, 0xea07fa33, 0x7c9f9b31, 0x8bf3f86d, 0x8d8f5c79, | ||
5417 | 0x4995bc45, 0x7bb4462d, 0xabf98ed7, 0xb3e9ed11, 0x4de61615, 0x4679beff, | ||
5418 | 0x9c6aaf31, 0xccd77ace, 0x3ca51f34, 0x5b24f917, 0xc250df3d, 0xf88ad9c3, | ||
5419 | 0x4931e0eb, 0xfeaec783, 0xd8f06afb, 0x1a74ffbd, 0xc0c56cff, 0xa43ff4eb, | ||
5420 | 0x1aadfe87, 0xedfabbf8, 0xedb6e347, 0x04297bcb, 0x779f7bf8, 0x31bb73e9, | ||
5421 | 0x64c7bb1e, 0x373ca131, 0x3f22e6d4, 0xbc0edd5e, 0xd0f4fc04, 0xff28af9e, | ||
5422 | 0xa326d0f8, 0x3768c70d, 0x02dae6f8, 0xcc7eefe8, 0xea8dd6e2, 0xa746167a, | ||
5423 | 0xdffd9d11, 0x0b1ef59b, 0x03cd95c6, 0x375c16f5, 0xb3d9accc, 0x4cd7f894, | ||
5424 | 0x3f8944fa, 0x8b4efd28, 0xccfa3592, 0x5fd9f425, 0x9047cef5, 0x5f3aedde, | ||
5425 | 0x89da1e7d, 0xb70f3f03, 0x41117f92, 0x3f12ba76, 0x892383d0, 0x3989ad76, | ||
5426 | 0xde4de618, 0xa3ba758e, 0x82dfbfa1, 0x411c62b8, 0xc4e3561e, 0x2293fb78, | ||
5427 | 0x5064ffee, 0xa54dbc73, 0xeb45d697, 0xb09d987f, 0xb35f8fd2, 0xcbd17c3f, | ||
5428 | 0xc47583d7, 0x2bf372af, 0xb58bbf08, 0xc55c7918, 0x5e67f64a, 0x94e3c1d6, | ||
5429 | 0xacfc520f, 0x05fbfe95, 0xbfd02392, 0xe11de252, 0x9ae2ace8, 0xd68c36bd, | ||
5430 | 0x5e10fceb, 0x28b7ffce, 0x8a819fca, 0x6ac43d26, 0x162f9e65, 0x310e9671, | ||
5431 | 0xdaf37687, 0xda1ff414, 0xa3ab1e45, 0x46e83f71, 0x4fecae78, 0xf37fcf74, | ||
5432 | 0x9f6869d1, 0x79e33e83, 0x5a30a6ab, 0x624df227, 0x9106279c, 0x9123b17f, | ||
5433 | 0x7ab57fdb, 0xcaa6786f, 0x77bc7c1e, 0x685f736e, 0x7f656977, 0x5dcbda1d, | ||
5434 | 0x0efbcdfa, 0x39dae7f6, 0x574df888, 0x39e9e83f, 0xd7489718, 0xdcebb0d9, | ||
5435 | 0x31eaaffa, 0x16b650de, 0xef1801ec, 0xa469e812, 0xc4feae93, 0x705f5c70, | ||
5436 | 0xcb3f5c6c, 0x9fc893ea, 0xd1f10fcc, 0x60b293fe, 0xea05ba5b, 0x4d8fd7e5, | ||
5437 | 0xf33fbe47, 0x5c14a0e4, 0x58c74e0f, 0xdc4f3053, 0x192024fe, 0x69ba79e6, | ||
5438 | 0x6abf7f00, 0x17d470e4, 0x9c436b61, 0xadfc009e, 0x95fcf7e8, 0x14767226, | ||
5439 | 0xcc48ef3a, 0x7c406b68, 0x7e93320c, 0xf6450507, 0xdf21fe53, 0x17786b0c, | ||
5440 | 0x473f159e, 0xa15ac7c1, 0x3ffe954f, 0x79517a16, 0xd299fac2, 0x31ef7082, | ||
5441 | 0x1ccffd11, 0xc38d7bd1, 0xf1b21ed1, 0xd08556f1, 0x0730f978, 0x29cbc80b, | ||
5442 | 0x8e9d8eb1, 0xbc470eb4, 0x2832ebe7, 0xe443ba0f, 0x7c5956e5, 0xe41eb8e1, | ||
5443 | 0x194ad9eb, 0xbe62afea, 0xf8d508f0, 0xd7b28df9, 0xfbddf448, 0x4d5ff90e, | ||
5444 | 0xabe90c61, 0xfc8c337b, 0xa69bd773, 0x018f684d, 0x6821ddfe, 0x91371e17, | ||
5445 | 0xc9afb2df, 0xfb617644, 0xd7f21089, 0x42c3f1fc, 0x3f48297d, 0x44499bd7, | ||
5446 | 0xdf64f6df, 0x0c8edcf3, 0x680f9862, 0x891cea3f, 0xd1694274, 0x9ec3e3c5, | ||
5447 | 0xd5cd7680, 0xda2f20a6, 0x60f4f035, 0x6acdd07c, 0x9efde9e2, 0x347e8610, | ||
5448 | 0xa8643d3c, 0xe0f17549, 0x1082a0b3, 0xfda99bed, 0x01ce2943, 0x4a1f1fa8, | ||
5449 | 0xb143fe83, 0xbbd52b7d, 0x9379d7da, 0x1221c785, 0xd48978c5, 0x5fb7326f, | ||
5450 | 0x8d39f499, 0xef89fd03, 0x65ddf4cd, 0x79a48e72, 0x36c61c7c, 0x61679806, | ||
5451 | 0xa0bcb6a5, 0xf62e5b5a, 0x5b25cb68, 0x745f65b4, 0x814fd114, 0x7f73e15b, | ||
5452 | 0x70c4a4bc, 0x87c142bb, 0xd2769f3f, 0x61f03af3, 0xcbf1013c, 0x571d391a, | ||
5453 | 0x929aba0f, 0x0f2de387, 0x9753e4d6, 0x3e279d34, 0x9fd8376c, 0x77c075c1, | ||
5454 | 0x9136c0d4, 0xd50360fe, 0xf8ffb6fe, 0xe7adf3dd, 0xbcf5be45, 0x26dadf26, | ||
5455 | 0x160c2ef4, 0x5084f18e, 0xe11c359b, 0xad4ba1d8, 0x3d5f22f5, 0xbe7c4419, | ||
5456 | 0x21cbf716, 0x401baddf, 0x054452f0, 0xf0b3cfc6, 0xfd08cff1, 0x54c5e677, | ||
5457 | 0x642d33ca, 0x4b4fa4b5, 0x44bef399, 0x5887e78c, 0x57ff9073, 0xcdfb02d9, | ||
5458 | 0x27baf8fe, 0x34e3d386, 0x7d8ac6b3, 0x6fcc564d, 0x80bfe114, 0x74fd4504, | ||
5459 | 0xdfbe20f6, 0xd175f48f, 0xd481137a, 0xd8ccf7c9, 0xf3ff9655, 0x0d0077cb, | ||
5460 | 0x3655fe11, 0x67ae3877, 0xde7c2c17, 0x91593f60, 0x9f3245be, 0x8875fa07, | ||
5461 | 0x2f120bc7, 0xd942fa2b, 0xdf00b12f, 0x989e7ccb, 0x518f2fa7, 0xc7ae38fc, | ||
5462 | 0xf75e925c, 0xd693e830, 0xf2386b08, 0xb4aaeb53, 0xb79825c8, 0x66c6b088, | ||
5463 | 0x3aecf0aa, 0xd026bcc0, 0x0946d65f, 0xf0ddbf63, 0xf39223b5, 0x085d6fa3, | ||
5464 | 0x8eaf2bad, 0xf6ab996b, 0x8635ff13, 0xc58f91db, 0x16a6ff70, 0x40ec826d, | ||
5465 | 0x5a74e078, 0xcab4e820, 0xf931fce6, 0x16f57e4b, 0xf412f754, 0xb95f7bf3, | ||
5466 | 0x2f295ffb, 0x0fc55eb5, 0x8a4edeb0, 0x385de3e5, 0x374b7464, 0xfb4a5f91, | ||
5467 | 0x82eb7c9a, 0x70bf6ec8, 0xae3a4a68, 0x82eb4543, 0x155f5122, 0x8b135e1d, | ||
5468 | 0x8db8c8f6, 0x3ae2c58f, 0x6269b055, 0x9fe2533a, 0x482a3e2a, 0x3da3a7b1, | ||
5469 | 0xb6567be4, 0xd5453f60, 0x4ab5c132, 0x167e695f, 0x36ab9fde, 0x24549d90, | ||
5470 | 0xdbd73ae0, 0x2f788e19, 0x11bd33d2, 0xef4e7ef0, 0xf03b270c, 0x2ffc9959, | ||
5471 | 0xbd40f9ff, 0x00ccfa63, 0xfa0b3278, 0x00b48be2, 0x47547bfc, 0x66082a74, | ||
5472 | 0x36e75724, 0xb9edfcf2, 0x587de764, 0x157f056e, 0xaaad77f7, 0x0eb70e2c, | ||
5473 | 0x73f78eed, 0xddf12766, 0x051f3102, 0x28e3feaf, 0xbc476d78, 0xe871fda2, | ||
5474 | 0x2768c9b9, 0x91929eb8, 0xc6ded933, 0x8e47e42b, 0x72789a6b, 0x075fbe2c, | ||
5475 | 0xd7158076, 0xdcefbec7, 0x4ad4eb83, 0x909da199, 0xcb1694d7, 0x57d76a86, | ||
5476 | 0xdef22fb4, 0xa3ae159e, 0x90d31df7, 0x6d5b4e9f, 0xfb2a99b1, 0xcfc11dee, | ||
5477 | 0x5fc974fe, 0xec70b7f7, 0x818d68af, 0xdff057e0, 0xfd93630e, 0x41e21953, | ||
5478 | 0xedef6f3e, 0x7a157ea3, 0x2116fd28, 0x81fe15be, 0x2c63577a, 0x7c795f82, | ||
5479 | 0x99d535b1, 0x0fc00b63, 0xe3037ff3, 0x61d57f62, 0xdcbfcc76, 0xbccab8e8, | ||
5480 | 0xc8aae93b, 0xafd399ad, 0x8a54f9f5, 0xea8eeadf, 0xe9e99369, 0x50535bca, | ||
5481 | 0xfd61f2de, 0x5f3a7f46, 0xfe449df2, 0xe315b285, 0x4aebf9d5, 0xf2f1c3ee, | ||
5482 | 0xf874984f, 0xadcf75bd, 0x3f2e09c3, 0x529e01fa, 0x7b75f102, 0xa6c52faa, | ||
5483 | 0xfbac1fc2, 0x7ccacf24, 0x1c137054, 0xe4307fe0, 0xa054f6ff, 0xbfee4a9b, | ||
5484 | 0xf50f7210, 0x63e2462d, 0x5fc470fb, 0x7e2d7ce7, 0xcdf8b5f3, 0x3e2318f7, | ||
5485 | 0xcd273666, 0x9323e0a7, 0xfc17df0e, 0x28e9a7fa, 0xc7abad9f, 0x235abcd3, | ||
5486 | 0x8e51c3ed, 0xffa0535a, 0x59e7dda1, 0xe7986bf0, 0x6799efd0, 0xabd11065, | ||
5487 | 0xfa4679c7, 0x33df679e, 0xed58c8cf, 0xadeacf3c, 0x5c5fa8e1, 0xfb8664bb, | ||
5488 | 0x8ec95cc3, 0xd97963b5, 0x768614b2, 0x05d0f589, 0xd5e912fa, 0xb8a068d6, | ||
5489 | 0x30ef22a1, 0x83f20dde, 0x35a1f88e, 0x28f4fad7, 0x0b656f5a, 0x575bd9c6, | ||
5490 | 0x51e7788f, 0x95aeb728, 0xb407682d, 0x81fc72e6, 0x0f50ebdc, 0xa638a6b4, | ||
5491 | 0xc18f7951, 0x39fa14b2, 0x0fb7f953, 0x0c0bf225, 0x73f34656, 0xbe3b45ac, | ||
5492 | 0xfd45e01d, 0xcd997805, 0xcd034aed, 0xa7cad57f, 0x7777e256, 0xfe964df5, | ||
5493 | 0xa7eb40d6, 0x6b45cf16, 0x321c8d64, 0x73c695bd, 0x8ac93afd, 0x0cf050f3, | ||
5494 | 0xc67d349a, 0x607c2eb0, 0x2eb0d679, 0xfd94b8bc, 0xeb3d626c, 0x9f885bd4, | ||
5495 | 0xc05d7cbe, 0xafa8ea7d, 0xa77d3f70, 0x57affb3c, 0xdfc67a7e, 0xd04db89e, | ||
5496 | 0x16ef5fd3, 0x7ca9cbab, 0x5cbaa15f, 0x4a37a7e2, 0xbac3befd, 0xfc502d3b, | ||
5497 | 0x78e77774, 0x02796f1c, 0xaf5c4a6f, 0xd68949fd, 0xd5bd3cd5, 0xabc17e88, | ||
5498 | 0x155c78e3, 0x8ff301fc, 0x683b0e49, 0xb67a793e, 0xef8994dc, 0x994f546d, | ||
5499 | 0xdcb7f427, 0x8ef46b04, 0xa077ae60, 0xaaa364de, 0x0557e8ac, 0xfe44479e, | ||
5500 | 0xc3fe7942, 0xad64f3fe, 0xb38aacff, 0x201b123f, 0xf7299ece, 0xc608ed7d, | ||
5501 | 0x64c976db, 0xf30eba37, 0x7d7d8575, 0xf06de9e5, 0x1a4f7cbe, 0xe6555bed, | ||
5502 | 0xf6c78fef, 0x7de12b86, 0x21db7de1, 0xcbc63063, 0x72a31af2, 0xf48a2fc9, | ||
5503 | 0xaffbc405, 0xfe94fcc4, 0xe12df4da, 0x2df6d5d3, 0xa19f096b, 0x86bc8fe2, | ||
5504 | 0x164fb42b, 0x5596e7f0, 0x534cfb7a, 0x79fa2e4c, 0xcc4a7ff9, 0x55f3c1d5, | ||
5505 | 0x06b5cf41, 0x506b0beb, 0xc899764e, 0x3c3b6f6f, 0xdbed8747, 0xe789170e, | ||
5506 | 0x9e7a7643, 0xe382933d, 0x7f38eb87, 0x14bde32b, 0x7ca5edcb, 0x7fe7a9dd, | ||
5507 | 0x8dfefa84, 0xaa65d4b8, 0x2ebe69f8, 0x6dc4fc93, 0x845cdf06, 0x95f1ec1b, | ||
5508 | 0xe943efb8, 0x2b58d5e7, 0xebb6d1c1, 0x0fa8f3fc, 0xce4dacce, 0xb6d23544, | ||
5509 | 0xcc70c06b, 0x189db7fb, 0x3fe78e91, 0xb04c9eda, 0x66d81ea1, 0xfc443eb0, | ||
5510 | 0x86cc2ab6, 0x87f4ae72, 0xac7e60e3, 0x1cc8d76d, 0x4edbb3f4, 0x4ca17870, | ||
5511 | 0x73d4377e, 0xa50efee3, 0xf59d70df, 0x8c8fb857, 0x7940c9fd, 0xa4dfc5b4, | ||
5512 | 0x1abfa1c5, 0x5f9c0c6e, 0xbb5dfb40, 0xc1296a7f, 0xf1e3ecad, 0x7d95efb7, | ||
5513 | 0xd17efe3d, 0xf80bd07c, 0x2b7fdfde, 0x702b9562, 0x1fbf917f, 0xdc7e40c7, | ||
5514 | 0xfa62beca, 0xbdf5a5ab, 0x2677cb64, 0x0fb13d4d, 0xbe031a88, 0x571e40f2, | ||
5515 | 0xc3c65c53, 0xe52b5fe3, 0x5f42f980, 0x3ec7cf2c, 0xdcedf213, 0x4f5d1516, | ||
5516 | 0x1e3e98eb, 0xc8da7af0, 0x7f99f1cc, 0xaf973fbf, 0xbacc57de, 0x73a777fb, | ||
5517 | 0x00b9953d, 0x32d5e9d7, 0xa1fd47ed, 0x7b7f9dfe, 0xf3e88480, 0x4effb099, | ||
5518 | 0x3e705cc3, 0x5ab3fb3d, 0x067c1578, 0xfe057d89, 0xfe22cdf5, 0x991bf03e, | ||
5519 | 0x9bee51d9, 0xcfe41e0c, 0x3f9f8d90, 0x67f20f7d, 0x6a92c1a3, 0xed017ca5, | ||
5520 | 0x64bb6573, 0xb75c7f4f, 0x2f84cf1a, 0xd76575c4, 0xd34e3a08, 0x92ecbfe9, | ||
5521 | 0xd6dfee29, 0xf3162570, 0xe50fd003, 0x4f4d5d3b, 0x7b7f90d9, 0x4e312382, | ||
5522 | 0xeffa61fe, 0xa1f8bf66, 0x6db67bc8, 0xfa8e973c, 0x6260f41d, 0xfa67ca1c, | ||
5523 | 0xff9e46d7, 0x7da1c96c, 0x273f1bbf, 0x73ddbcbb, 0x7349ec95, 0x940f6ca3, | ||
5524 | 0x671a1c57, 0x4df061fc, 0xf007c2d0, 0x1478450c, 0x3eadcb38, 0xbd737f3a, | ||
5525 | 0x5d84ffbc, 0x1cf14b85, 0xd1f9e608, 0x94682fbe, 0x582add69, 0x40ac7b2f, | ||
5526 | 0x7e030997, 0xed082fb1, 0x8a24a7d1, 0x6f924e0b, 0xd40e70fe, 0x4ca4f05f, | ||
5527 | 0x1f1bbde5, 0x7480d0fa, 0xbca06f5d, 0x99a682e1, 0xfc57da46, 0x122cc494, | ||
5528 | 0x37d9ab8d, 0x12972c50, 0x09f6dd5c, 0x680fedf8, 0x7d0b76cb, 0xe37ef7e0, | ||
5529 | 0xa2fb198a, 0x9267a9f1, 0x017efbb5, 0xcb103bfc, 0xdfe047cf, 0x126bfe96, | ||
5530 | 0x416d0e91, 0x5ca3358c, 0x5fc85bea, 0x3e7e5e61, 0xd9d76db3, 0xeb97a414, | ||
5531 | 0x5e292f8d, 0xb01c93d9, 0xf33fbe46, 0xfc8938ce, 0x5cdf81d2, 0x5008e699, | ||
5532 | 0x6fc8b67f, 0x13b8316f, 0xb7dd3ed1, 0xe38f2af1, 0xae71e2ec, 0xee67fb1e, | ||
5533 | 0xf26f1e20, 0x2c1c5106, 0x0532d6ab, 0x3cec01e5, 0x36b93fcc, 0x09b198ad, | ||
5534 | 0x0dbb41ca, 0xabab4456, 0x05c9287f, 0xaaa141ca, 0xb61e455f, 0xb2947c88, | ||
5535 | 0xd8b661bf, 0x6feca397, 0xf83bf650, 0x77eca1c3, 0x3bf62d98, 0x78eb1dbc, | ||
5536 | 0xc19e0e28, 0xd9385f3a, 0x5ffb7eb1, 0xe2cfda7a, 0x3fd1efbf, 0x4f9fee6e, | ||
5537 | 0xcbecad5b, 0x47146088, 0x8dfac237, 0xcd86c395, 0xabf51778, 0xfe4c98e1, | ||
5538 | 0xef23ded0, 0xf1f5aac5, 0x38737d0a, 0xd72f31c6, 0xd1fe4419, 0xc316f947, | ||
5539 | 0xa98dcf91, 0x862597a4, 0xca0bae76, 0xb375def8, 0x338eaede, 0xe7c71d3f, | ||
5540 | 0x9d2e22bb, 0xfb7ab7af, 0xb7afcc21, 0x688cf259, 0x148e1b8f, 0x367e464c, | ||
5541 | 0xf919e7c4, 0x54e6b9f8, 0x9e844ba4, 0xa3457ff8, 0x05b36e32, 0x7bf257fb, | ||
5542 | 0x2cc71161, 0x598577c8, 0xbf3fbeb3, 0x4a83f227, 0xdf33af7e, 0x7be33f17, | ||
5543 | 0xe33b7bf3, 0x8bf71d38, 0xff71bbe7, 0x3b7bf2cf, 0x5265fe91, 0x30f1a4cb, | ||
5544 | 0x8ef88ac4, 0x6ebdf9c0, 0xfcb1bcf3, 0x567147de, 0x9ceb7f9e, 0xbdf90f6f, | ||
5545 | 0x58dffd6e, 0xff7baf7e, 0xbaf7e43d, 0xf9837ff5, 0x797ecebd, 0x50f96f7e, | ||
5546 | 0x5b3fed1d, 0xe3c4dc7e, 0xffbe66e4, 0x65e424c3, 0x668277b9, 0x74f284ff, | ||
5547 | 0x184909b3, 0x275e5f27, 0xbcfe464f, 0xa0b3c96c, 0x78221a7c, 0xb064c83c, | ||
5548 | 0xd43f464f, 0x85191114, 0x711ff97c, 0xabaf3469, 0x3f888b11, 0xc87982af, | ||
5549 | 0x722d89cf, 0xef797960, 0xca649902, 0xd6177f2f, 0xd57cf324, 0x7758b368, | ||
5550 | 0x87e4b7df, 0xf3fbfe52, 0x3d1e5538, 0xed00fb2c, 0xce0d648b, 0x8fbf283e, | ||
5551 | 0x127f405b, 0x7c50b79f, 0x7f3928c6, 0x76217187, 0xbb639f82, 0x601ce41a, | ||
5552 | 0x3ea5c951, 0x2eec28de, 0x33ea126f, 0xa7a2ab37, 0xe10ae1ab, 0x2a478959, | ||
5553 | 0x47cc5ddf, 0xa5794778, 0x7a09b8c3, 0x706f7d2b, 0xb573a00e, 0xbb4e8e02, | ||
5554 | 0x6ea18fe0, 0x6a69a73c, 0x8ff286fa, 0x34df7aed, 0x36d4eb8c, 0xfc6a21ca, | ||
5555 | 0xb973c526, 0x9cfe4dc8, 0xd8e556f2, 0x57e617ae, 0x7ca0064b, 0xc37c9b96, | ||
5556 | 0x7b7dee11, 0xf51c36fe, 0x92a6d5ca, 0x0b7ef83e, 0xdc75a7d4, 0xe7572be8, | ||
5557 | 0xaaf3fd5d, 0xf381f1d1, 0x969a5bad, 0xdb1c2225, 0xf6005e30, 0x3fc3f955, | ||
5558 | 0x663a73a7, 0xea0dff66, 0x837a060f, 0x99868afc, 0x93b438f2, 0x01db003e, | ||
5559 | 0xf8bb59ca, 0xcc959bfa, 0x2d37983c, 0x0e60fa6f, 0xdb3cabd2, 0x32974168, | ||
5560 | 0x6de78338, 0x16cdb383, 0x45a6ff5c, 0xe2303e71, 0xed869b3a, 0xdd214627, | ||
5561 | 0x3031c41e, 0x7b73b9cf, 0xb7f01bbd, 0x854f0ff0, 0x27dfc033, 0xafda4afa, | ||
5562 | 0xb1f9ba51, 0x2f3c3b70, 0xc714dde8, 0x0723c4fc, 0x1794ffdc, 0xf6b7f8af, | ||
5563 | 0xfe754950, 0x3fdfd3e0, 0x6ef88d31, 0x7982c1b3, 0x1316d77f, 0xaf2b9f9d, | ||
5564 | 0x33f3a62b, 0xcbc53e50, 0xfe867f8f, 0xbb41ab95, 0xe97c2f4e, 0xad2b58a9, | ||
5565 | 0xb124ee0b, 0x941f11ee, 0x849d9cd7, 0xc1f857f8, 0x8f8e1dbf, 0xb55de5fb, | ||
5566 | 0xaf633cf2, 0x7b15dfee, 0x5dff5943, 0xfb884f75, 0x3fc85a01, 0x845faff0, | ||
5567 | 0xb19a3232, 0xfddaf199, 0x983e0ad1, 0xa3f48627, 0xf0c373bc, 0x54be5053, | ||
5568 | 0x92e16ff3, 0xbf8a4f0a, 0xff9b51d3, 0x3dac37bb, 0xb06defaf, 0x7574b02e, | ||
5569 | 0xb3b50f3b, 0x177e0836, 0xf06a5f7c, 0x955ca386, 0xdcd8346e, 0xfb74baf0, | ||
5570 | 0x973e2f0b, 0xc3667245, 0xfb64ac75, 0x818e1f5b, 0x430ec972, 0x8d3e54f4, | ||
5571 | 0xde754950, 0x61ff05cd, 0xc3a1405e, 0x32ded7c2, 0xf7f1875a, 0xa2ec88bf, | ||
5572 | 0xbd8ec947, 0xfc5e7446, 0x76be31f1, 0xbbf291af, 0x3da974fe, 0xef2b7245, | ||
5573 | 0xbbec86fc, 0x2c48f64f, 0x3e00352e, 0xee15be37, 0x3a227814, 0xd2753a0a, | ||
5574 | 0x92beafcd, 0xe4e8577f, 0xde3b3dff, 0xfd85f242, 0x3f023ca1, 0xc606f2bf, | ||
5575 | 0xd9323ffb, 0xaf45fe70, 0xf38e103c, 0xc45faf38, 0x63c37af9, 0xb71876b1, | ||
5576 | 0xb58ee0c8, 0x2fbf93d0, 0xc467fe7a, 0xfe8e0b6f, 0xcc7fdb8c, 0xfca3a09e, | ||
5577 | 0x7bf29ba5, 0xd0efeb85, 0x0da2ffe8, 0x85ffae3c, 0x11de4d9e, 0x0b8e2e40, | ||
5578 | 0x937e72bd, 0xe7d9f289, 0xf6860f31, 0xdf327bcb, 0xa7eec7b7, 0xdf629078, | ||
5579 | 0xe54d2780, 0xfe1e842f, 0x894ebc43, 0xfc359b7f, 0x3378f35a, 0x64d3e7d2, | ||
5580 | 0x25ea1c7b, 0x05bbd317, 0xa0efa43e, 0xc4e8f95f, 0x1e1f4e38, 0x6076a33f, | ||
5581 | 0xf7c78e8f, 0x40d9bf58, 0x3b5550f1, 0x8f966e71, 0x1f18a0ff, 0x7cc60ee0, | ||
5582 | 0x5658f9ca, 0xd44fc814, 0xe7c67427, 0x29e7359b, 0xcb9be4bb, 0x2e2acd7b, | ||
5583 | 0x7bbc8adf, 0xefc64fa6, 0xf2e31f9f, 0x3292ed83, 0x1c6f2e09, 0x4b3bdf7d, | ||
5584 | 0x27cfce1a, 0x75c9037b, 0xb5c8418d, 0x27c2bbf6, 0xee9eb700, 0x05f85021, | ||
5585 | 0xfc248ffb, 0xbad2d517, 0x1dd8d26d, 0xbc2f1c2e, 0xdc8a7f7b, 0xfff2102e, | ||
5586 | 0x7f38bc7e, 0xad9fe425, 0xf3a1b98f, 0xcf06a545, 0xbca1cf8b, 0xbef7e09e, | ||
5587 | 0x90376e94, 0xdb717e5d, 0x06ef0ffe, 0xab58b939, 0x7f56a9c8, 0xd169cbfa, | ||
5588 | 0x7f116fab, 0xc5e9cbfa, 0x0362b7da, 0xb78ee9ca, 0x2eee0ec8, 0xfab9ffa7, | ||
5589 | 0xdfdfc153, 0xe8a7f0fc, 0xe8f09ec3, 0xe3ab0faf, 0x21f501ad, 0x9f531dfc, | ||
5590 | 0xa5f0537b, 0x6fc29df0, 0xeb2e5f0b, 0x93a77a83, 0xebbe152f, 0xef854be4, | ||
5591 | 0xd73bedba, 0xfbffcfe0, 0xe00df85b, 0x60faec72, 0xb3d01252, 0xc9fb91b4, | ||
5592 | 0x9620eed0, 0x5a764f01, 0x41e558c6, 0x55db6f3c, 0x6b95f8f6, 0xfddbeafd, | ||
5593 | 0xfabf0eca, 0x22f2bf4e, 0x821efabf, 0x3f61b4ab, 0xbcc96fdf, 0xa586fa9a, | ||
5594 | 0xdd161dcc, 0xf31e0e75, 0xcfd02b58, 0xf4f3c6df, 0xb8f0258f, 0xb8c62fa9, | ||
5595 | 0x891ff682, 0xe13e2a7d, 0xb43bb467, 0x354e54fb, 0x5b7fa4ca, 0xf8f3813c, | ||
5596 | 0x3c9209e0, 0x3fb0f4b4, 0x4d3b895e, 0x1e534394, 0x2a3a3806, 0x60a0fc79, | ||
5597 | 0x94e19dc9, 0xbb4c69cf, 0x850ae31d, 0x2c31f987, 0x73143f65, 0xaa09f5db, | ||
5598 | 0x98170efd, 0x319be9fb, 0x4258d64f, 0x35828bf1, 0x0fcd7a5a, 0x0be2907d, | ||
5599 | 0xf7b4abf3, 0xad7c2900, 0xd68b0bc4, 0xc42fbf6b, 0x1ee8847b, 0x47da4a85, | ||
5600 | 0xfb46b0b4, 0x0e7c89dd, 0x41273c7c, 0x2c1909d8, 0xf9bde443, 0x57a11239, | ||
5601 | 0x6f43ca27, 0x21cbfca7, 0x1da5f299, 0xbde1328d, 0xfb449b63, 0x863b9869, | ||
5602 | 0xf99ca5e4, 0xf8299f48, 0x60f284b9, 0x5cdf59ec, 0x73dffd7a, 0xa52a851e, | ||
5603 | 0xff0f1ff5, 0xd52f3c2d, 0x8ddf489f, 0x4e7f9de5, 0xaf7598f9, 0x104f7e3f, | ||
5604 | 0xdf6a1fed, 0x35f74613, 0x9dbd37b5, 0x85e528f2, 0x07ba364c, 0x9497cf61, | ||
5605 | 0x6a5f6b7f, 0xd57d422a, 0xcafdcc9e, 0x0e5f4d65, 0x39657ae7, 0xc098df3f, | ||
5606 | 0x34744dcf, 0x94f28dfe, 0xca268d1d, 0x84f6b933, 0x7ae11f90, 0x9cfc8823, | ||
5607 | 0x292fa6f6, 0x9acffcbe, 0x3788b94f, 0x3cf187b7, 0xbfb8bb4f, 0xf47bb5c4, | ||
5608 | 0x2d87980b, 0x446bdbab, 0x9bfc65bf, 0xdf5d90df, 0x67b72afe, 0x1eded0da, | ||
5609 | 0x5bae7883, 0x7dc44e33, 0x4d0ecca8, 0x0db77b45, 0xb1912385, 0x9d5dcfa1, | ||
5610 | 0x081a1eea, 0x5e50df4f, 0xf3f146f5, 0xfc18ffd2, 0xb9dfb448, 0x63cc31b4, | ||
5611 | 0x5fde7096, 0xf518fc9d, 0xd79e1ec1, 0xb17be657, 0x1fd90976, 0xc1f79bd7, | ||
5612 | 0xfddfee04, 0xe4b799ef, 0x9f7991bd, 0xef4e6ffd, 0x98d43c62, 0xba2e5ddd, | ||
5613 | 0xcf1379f3, 0xb30f6d17, 0xc837bc11, 0xffc486ef, 0x157f7465, 0xfd7e1ee8, | ||
5614 | 0x6ffbf779, 0xe99eef3e, 0xa0ae787e, 0xf3e305bb, 0x21bf37ae, 0x3d5efef8, | ||
5615 | 0xe87fe137, 0xfd3b15fc, 0x6fd7c67d, 0x91c3a257, 0xee9efb88, 0x5f02bc38, | ||
5616 | 0x274e74b9, 0xcd12c3c5, 0x4d9fee74, 0x8e87e28d, 0x33618ef5, 0x57877586, | ||
5617 | 0x25fe1bf1, 0x31273ed1, 0x07feaba6, 0xa619efb3, 0x7d57779e, 0x58d1be3e, | ||
5618 | 0x379d3f7b, 0xfca50b29, 0xc18f6e2c, 0x36cc2f76, 0xf713fe71, 0x990f1c3c, | ||
5619 | 0xa606307b, 0x738347f2, 0xe739c23e, 0xc0ac9fce, 0xca2fb4b2, 0x35e718ba, | ||
5620 | 0xdc4725af, 0xc710b08b, 0xfb3b352f, 0x72f9aa60, 0x2f4073b2, 0x511c47b4, | ||
5621 | 0x1ccb9e3c, 0xe1011cc3, 0x37ce6b77, 0x994bf62a, 0xea3aa1b0, 0xbe517ad2, | ||
5622 | 0x645ed5e4, 0xb8e9b57f, 0xe026d87f, 0xb767e0bd, 0x1a8e7917, 0x5c58ff31, | ||
5623 | 0xcea8d473, 0x7389963f, 0x3fe3fea9, 0x23f3c891, 0x87f6be9f, 0x8bf748ab, | ||
5624 | 0xa3a7d45f, 0x5d2256bd, 0xdd5d79a2, 0x98ae747a, 0xff9c0adf, 0x14be1d43, | ||
5625 | 0xb4abcc23, 0xc791af76, 0xf4fcc523, 0x9beff4be, 0x79ae9b5f, 0xaabb9d12, | ||
5626 | 0x8e7ce897, 0xeeacaed2, 0x93b424e8, 0xe8226a8b, 0xa7dc473e, 0xca9dcfc2, | ||
5627 | 0x7860fb7e, 0x8eb2493f, 0x4bf7dbf8, 0xd21bf689, 0xe9dfb41f, 0xbee0f08e, | ||
5628 | 0xcaee936a, 0x676899b1, 0x8ce7e30f, 0x438307d6, 0xbbc77e0f, 0xc41b5f02, | ||
5629 | 0xbf780779, 0x07c7df12, 0x4ff1f6f3, 0xfedf68eb, 0x9409b90b, 0x7bdd543f, | ||
5630 | 0x72075291, 0x36b26494, 0x49b8c0b4, 0x0f28bd15, 0xb9d13dbc, 0x5f71f105, | ||
5631 | 0x18e52e94, 0x421ce1c1, 0x8e6f80e7, 0x753f21ba, 0xf818b306, 0x9e7e527e, | ||
5632 | 0x4f85867d, 0xb5d850a5, 0xee9d9933, 0x3983b8e1, 0x6d7bdea9, 0xd7da3b46, | ||
5633 | 0x336e61ef, 0xa3f7ee93, 0x0f3177f7, 0x5e61ef3d, 0xac2fffaa, 0x5f0aca85, | ||
5634 | 0x17de3f02, 0x3cf1f9cd, 0x8e8160a6, 0x47dc226f, 0x3f278643, 0xfe9ef80c, | ||
5635 | 0x94fe80cc, 0x76e2ad2f, 0x9ee0f5f0, 0x574bfc2e, 0xf210f3a2, 0x2fe4c77b, | ||
5636 | 0x7e82af9e, 0xf12f6674, 0x91ee7283, 0x7c11884d, 0xdb72fdf1, 0x0f99d1dc, | ||
5637 | 0xe2bf450d, 0x5bd24156, 0x509fdced, 0x2edc0dce, 0xd9ef01e4, 0x343a0489, | ||
5638 | 0xa7bdf95b, 0x3dbd2acc, 0xc793ca02, 0xe59fb4c9, 0x20d6e08f, 0x4331fc7f, | ||
5639 | 0xd9a5f716, 0xd134fda9, 0x3371d4ef, 0x7a82f797, 0xc96ebe93, 0x9327f3c2, | ||
5640 | 0x8afd6b7b, 0x5c6f449f, 0x29cf011e, 0x7fefb4fd, 0x88f59aca, 0xb543a9d7, | ||
5641 | 0x2cb4cdfe, 0x38bdbd6d, 0x2a962466, 0x4b845ee9, 0x193fc289, 0xfdab06cc, | ||
5642 | 0x1d3e6513, 0xd118af53, 0xe493ec17, 0x597482bc, 0xb9d9db7c, 0xcf4ede74, | ||
5643 | 0x4d111ede, 0xbcd1cff7, 0xe6f02b5a, 0x55cec646, 0xa179e998, 0x20ecc2c2, | ||
5644 | 0xc4569ff7, 0x8552f3d3, 0x55b7de95, 0xf8e7a40c, 0x90dfc724, 0x9f95053e, | ||
5645 | 0x670fd1e9, 0xee34e955, 0x9acf8203, 0x9d1d5e75, 0xd124d85f, 0x82079a7e, | ||
5646 | 0x8ef1739a, 0xa73607ac, 0x61739c52, 0x0c41ed43, 0x1d78141f, 0xf39c9093, | ||
5647 | 0x883a2d0f, 0xc06bb2cf, 0x158023e9, 0x24a61c12, 0xa763eb94, 0x7ac6df67, | ||
5648 | 0xe37b1be6, 0xd05183a9, 0x1b0af9ff, 0xc549f5c1, 0xac5e7a28, 0xb3dc13b0, | ||
5649 | 0xa4961c92, 0x67d2a46c, 0x6db73fc4, 0x824fa53b, 0x12ad13fa, 0xb63f2bad, | ||
5650 | 0xe4078f33, 0xd7c0daab, 0xb304ea85, 0xdc74e50d, 0x1e1b19b0, 0x9df7a864, | ||
5651 | 0x1dc70889, 0xe2278a53, 0xcd46d338, 0xeeb47ba3, 0x7bf19afc, 0x58dc2695, | ||
5652 | 0xe9f988dc, 0x247bcbdd, 0x3acbcbe2, 0xff18edeb, 0xa649ff75, 0xde0740fc, | ||
5653 | 0xe3fe80d3, 0xe32f7e71, 0xe2d3d7e2, 0x362f3f50, 0x5fd0e358, 0x79f62ddf, | ||
5654 | 0xe97a045c, 0xc5eceb55, 0x9cce7fed, 0x25bfd2a7, 0xfabaecaf, 0xf2fbf411, | ||
5655 | 0xea1b48c9, 0xe2918bbd, 0x28b6467e, 0x9b48f504, 0x19623bc8, 0xd65015ef, | ||
5656 | 0x5833d45d, 0xebcc18be, 0x9492bce7, 0xe382728b, 0x7a5d8d59, 0x6795fd28, | ||
5657 | 0xed6a3efa, 0x6d4b6f1a, 0x41cf47e1, 0xe747b2f9, 0x723ac036, 0x61b6d599, | ||
5658 | 0x135dd6dc, 0x066dfb4a, 0x87e0fa4a, 0x7c3d6f89, 0xd56488bf, 0xeb6c3c63, | ||
5659 | 0xd1121b2b, 0x392dd80e, 0xfa823ee6, 0xffaf037b, 0xe48fd3d2, 0x53e7c2ed, | ||
5660 | 0x823eaf65, 0xa08a4f78, 0x2b9ff376, 0x36fc8c1e, 0x5d5efd6c, 0xa9bfbc22, | ||
5661 | 0x7c52d4e6, 0xc2a240ce, 0x926d8cf7, 0x8cdd778c, 0x865d4ba8, 0x1fb898af, | ||
5662 | 0xfbc0b06e, 0xed9ff5d0, 0xf4107703, 0x08e2ed6b, 0x525757ca, 0x671bd7bb, | ||
5663 | 0xc10f7fbe, 0x7bc04ee1, 0x8cf3dd35, 0xb8f03edc, 0x5c9f2237, 0x51b40e76, | ||
5664 | 0x7ee1cd7e, 0xd973e916, 0xf5c36b19, 0x0ee75ea0, 0x4ff5831f, 0x76087bf2, | ||
5665 | 0xc70d1cd6, 0xeabd11fd, 0xed082c0c, 0xad1f0c95, 0x56c9654b, 0x259659bc, | ||
5666 | 0x64eb7f3f, 0xd7927946, 0xa53f5237, 0x99e61b66, 0x42bf5e8b, 0x13f61cf1, | ||
5667 | 0xfc8feb66, 0x4fcbc751, 0xfd13b04c, 0xc17e368a, 0x2a0ecdcb, 0x2a77643b, | ||
5668 | 0x0f945fdd, 0xfbf40c76, 0x5877588c, 0x47d270cb, 0x2ed672c4, 0x9f013f7c, | ||
5669 | 0x3abdf02d, 0xfb809dd5, 0x0af594c3, 0x219f99d6, 0x839ba37f, 0xef739bed, | ||
5670 | 0xf775a149, 0xa519d706, 0xfc8c679f, 0x46f5bd7e, 0xb66e1ebe, 0xf42778f0, | ||
5671 | 0x4fe514bf, 0x64931759, 0xae1d5869, 0x6c98cf73, 0x3e37accb, 0xfee2ddce, | ||
5672 | 0x2af813ae, 0x430d6c41, 0xf8ffba42, 0xe9ffc636, 0xfbf23dfe, 0x15675799, | ||
5673 | 0xf941ecf7, 0x4fc3a4e9, 0xe619bf2e, 0xe003f82d, 0x83013820, 0xf2a7f50c, | ||
5674 | 0xe38b2c3e, 0xb669d233, 0x2e2b7e61, 0x33dd116a, 0xd307f0a1, 0xdda0477b, | ||
5675 | 0x995bfab0, 0xffb94bce, 0x7f714a1a, 0x4ddf787f, 0x7af471e2, 0x639e07c0, | ||
5676 | 0x7bf07772, 0x5ac31a9f, 0xf403fe5e, 0x9bdc58df, 0x0dbbc6e2, 0xf756fefc, | ||
5677 | 0xdc5df174, 0x5778dd27, 0xa27dc92c, 0x7601eb89, 0xd38d304f, 0x7e6cf068, | ||
5678 | 0x8f4fbf1a, 0x85c7f6a7, 0xde671d9c, 0x955f707b, 0x7ba467db, 0x1822ab39, | ||
5679 | 0xb55367dd, 0xfdc50064, 0xe07dbfea, 0xbda186df, 0x639f84b2, 0xacf0caab, | ||
5680 | 0x55ff7dc4, 0x70e34cbf, 0x1724de48, 0x260e2fb6, 0xdd355d3d, 0x4071809e, | ||
5681 | 0xba10b4e7, 0xfba7ba57, 0x28323f5e, 0x09ec89e7, 0x0ae78f88, 0xfdf533fa, | ||
5682 | 0xca4e7f41, 0x57748c3d, 0x3a73d1f2, 0x8ecc22f3, 0x21de5bf7, 0x6e15770a, | ||
5683 | 0xbb7e420e, 0x14e828a3, 0x178f6bc6, 0xb8c30d2d, 0x7e4e1de3, 0x359b273f, | ||
5684 | 0x8f3eaed1, 0xfb24e7f9, 0x5657e461, 0xdeedd8a0, 0x1ed3c47c, 0xbdce999f, | ||
5685 | 0xa847f901, 0x7f8544ed, 0xbe77aafe, 0x8ddaed87, 0x92e35ee2, 0xb6cda6af, | ||
5686 | 0x6bf1faaa, 0xf27edfe7, 0x37bf330c, 0x7644cea9, 0x8ec27dc1, 0xb3bc9972, | ||
5687 | 0xad5a0ed1, 0xf607fe73, 0xe9f85aef, 0xa277b470, 0x17fbf067, 0x09be31db, | ||
5688 | 0x7a0a4f75, 0xff7c649d, 0x98517ba0, 0xb2f11bc8, 0x0f28d1f3, 0x9ec7a7bf, | ||
5689 | 0x07e58850, 0x1f70d886, 0x99e45390, 0x7c44b958, 0xf9c2d272, 0x146364e4, | ||
5690 | 0xe33e8fdf, 0x30e9d3da, 0xab8e938f, 0x7a848f6f, 0x79f81b27, 0xcc3cbf8e, | ||
5691 | 0x2f9619cf, 0x60d2913b, 0x7baf3eed, 0xd97bf297, 0x0bf85def, 0x93da6f3a, | ||
5692 | 0xaa5bddfc, 0xd21987dd, 0xce15fedb, 0xb5c67a33, 0x1287a849, 0x2d9f4a4b, | ||
5693 | 0xdbdabd44, 0x2fbe2df9, 0x2394b637, 0xff77ca3e, 0x7fda0a7b, 0xda5ebbed, | ||
5694 | 0xaf9e1071, 0xdeba9d19, 0xade97df8, 0x67618fa9, 0xd72f9ec2, 0xae403d03, | ||
5695 | 0x34edea9f, 0x717e06f6, 0x63a6f04d, 0xe6864bbb, 0xf6378849, 0x1bb31b8b, | ||
5696 | 0x5cdc6d3f, 0x115fa12f, 0x4f4e58dc, 0xe11c33d9, 0xc37928b8, 0xa71e1ef1, | ||
5697 | 0xc97e8fd8, 0x188f0de2, 0x72c7f78a, 0x1f3ff5fe, 0x8ac5a048, 0xaed0327d, | ||
5698 | 0xe71656a4, 0x27143c97, 0x025faff6, 0x0ddea9ef, 0xcbce57be, 0xac344495, | ||
5699 | 0x66f44b1d, 0xee166f5e, 0xf74feceb, 0xfd7e5d32, 0x5fb574a5, 0x0eecffe5, | ||
5700 | 0x9d3f9f2f, 0xa9bcc6e7, 0x7bf7df87, 0xe4068a09, 0x71266db3, 0x51f38f8e, | ||
5701 | 0xc104d6db, 0xda8f9c67, 0xa8f00eb6, 0x9cf3b6e5, 0x8736ada0, 0x6bdbedf6, | ||
5702 | 0x501ed073, 0x6b999fe4, 0x36677ee9, 0xda3876b0, 0xc23d8add, 0xf4e9b51c, | ||
5703 | 0x8e9b53de, 0x3c75ebf5, 0xbb8ca73f, 0x7e24e5f0, 0xeb9998df, 0x0f2f85c5, | ||
5704 | 0x94c6fba1, 0xcf37af7e, 0x4d46d501, 0x5b479079, 0xef9bd69e, 0xeffdf85b, | ||
5705 | 0xcbf1f73b, 0x93c61ec2, 0x40f79d85, 0xbd73de76, 0xf2f05255, 0xfa0e5260, | ||
5706 | 0xaaf28ca3, 0x0be07bbb, 0xbd21ae05, 0xf30b3fb9, 0xbbceb863, 0xbbfae23f, | ||
5707 | 0xf331c33e, 0x6fd72836, 0xb6fb2348, 0xe9f8e74d, 0x79e71c30, 0x3ebaafbe, | ||
5708 | 0x9cf947c2, 0xfdb967fa, 0x5de62e5b, 0x424ce11f, 0xc2a17a7d, 0xffee2f16, | ||
5709 | 0xe96c3b26, 0x98e11589, 0x61dfaff7, 0xd5f8c0c8, 0x63fb3527, 0xad3e2f91, | ||
5710 | 0x37ee9878, 0x75e3bc1c, 0x6e94a3ca, 0x1c7de07d, 0x8336d2f7, 0xd2acdd0d, | ||
5711 | 0x8b5c5ebb, 0x56e948f6, 0x5be716b9, 0xe53f75ba, 0xbed52fc7, 0x71fb8e15, | ||
5712 | 0x9144d42f, 0x53f08c1f, 0x1cf7fafe, 0x2ff8fe0f, 0xabc464f6, 0xc91591f7, | ||
5713 | 0x7f78b5ee, 0x5a2d90c9, 0x3c7d17bc, 0xedea10e9, 0x18cff50b, 0x1fbc56f5, | ||
5714 | 0xa6fdfb56, 0xeff96d06, 0xe4abaf3d, 0xd4e39091, 0xdcc85c74, 0xdda9f507, | ||
5715 | 0xb5645feb, 0x3f18edb3, 0x9727bce8, 0xdae8edcb, 0xbb379475, 0x6e6e78fe, | ||
5716 | 0xe9da853c, 0xa379ab9e, 0xe231b7f8, 0xe6b65efe, 0xdbc424e8, 0x5a2427bc, | ||
5717 | 0x36bde6ef, 0xcfea00e0, 0x9aee3b53, 0x93d9cf42, 0xe8f91f09, 0xd67ee085, | ||
5718 | 0x061bc946, 0x8e28cb65, 0x9e6ac2ef, 0xee5bca17, 0x8d69ee77, 0x2af8fedf, | ||
5719 | 0x0d05f7ed, 0xbcc2bf7b, 0x79f99176, 0x3f741f8a, 0xfba1e3c7, 0x605e177f, | ||
5720 | 0xac2dcfe4, 0x2814cef9, 0xcca851be, 0xda63fdc3, 0x264dc01f, 0xfff0fff0, | ||
5721 | 0x4daee346, 0xe1ea3d47, 0x651b5531, 0x731957c4, 0x2349643e, 0x021bc5bf, | ||
5722 | 0x8137cfe3, 0xeb4992dd, 0x4ae7cd21, 0x8f3a2f75, 0x5059ef0e, 0xda03de26, | ||
5723 | 0xe4eb839c, 0x1b30ba95, 0x9cd69fdf, 0x02d57683, 0x21f9d328, 0x0bce2956, | ||
5724 | 0xf1fee87b, 0xcd06d505, 0x1ec5e07d, 0x7255996d, 0xef14b0fb, 0xfa470ed3, | ||
5725 | 0x92bb50b7, 0xa57ada2d, 0x91e39f30, 0xfb51ffb8, 0x5b7cc5de, 0x2b7da45f, | ||
5726 | 0xefd498df, 0xb1547b15, 0x0e38958f, 0xe460b228, 0x7237bb97, 0x04b77a3d, | ||
5727 | 0x0c3b45f3, 0xafb234ed, 0x420e3b3c, 0x2878aab9, 0xdff54fd9, 0xca5bfdf2, | ||
5728 | 0x0caad4f9, 0x279e3a7b, 0x88375aab, 0xb25bbfe6, 0x7a863ea7, 0xd859ba60, | ||
5729 | 0xe1ee8c57, 0xa44e2aaf, 0x1c23fbf5, 0x2ced0132, 0xf729ef6e, 0xeea227f5, | ||
5730 | 0x18e371c2, 0xb53f8fbf, 0xb37a8bd6, 0x3fae29ea, 0x81563b14, 0x4f675f3b, | ||
5731 | 0xb36e75c1, 0xcdebe9d9, 0x23a56ff7, 0x09bff9dc, 0x4557bc22, 0xfce8c2f8, | ||
5732 | 0x0dd4517f, 0xc59ba7ad, 0xabcca0fa, 0x7dd07255, 0x293d4ae8, 0x9cdbeb99, | ||
5733 | 0xa28bfb5c, 0x0b39c51e, 0x6fab1d72, 0x3c147c01, 0x1fa2b3ad, 0xbb6789dd, | ||
5734 | 0x13ef1d3d, 0x94175d68, 0xcc9cf089, 0x47367ae0, 0xf6061bdc, 0x3c137dbb, | ||
5735 | 0x9a759383, 0x32706578, 0xc163a7b7, 0x5af1c27f, 0x5438f227, 0xfc839658, | ||
5736 | 0xe6a9c079, 0x19e53c1e, 0x302be02b, 0xa3f4fe3a, 0xd274f000, 0x7bc7027b, | ||
5737 | 0xad12fdeb, 0xa21f3047, 0x83afce5f, 0x2ad00e28, 0x4e8503d6, 0xb4d92fc0, | ||
5738 | 0x54bd09ce, 0x21f80ab5, 0x2da1ed15, 0x6afa835b, 0x0be286f8, 0x3ebe2eec, | ||
5739 | 0x7c704554, 0x4c393d56, 0x6f82e5d8, 0xbf120c9e, 0x6cedc0c7, 0xec51fd65, | ||
5740 | 0x3d3e6570, 0xef40e1d9, 0x7c2ac961, 0xe999d3f9, 0x7dead93d, 0x5e74fe94, | ||
5741 | 0xd2986e60, 0x0bc1550a, 0x5c067825, 0x6b7d91d2, 0xde0892ce, 0x2a7ad581, | ||
5742 | 0xb259d51f, 0x8da6ee51, 0x11f179dd, 0x7e7857d4, 0xebf47907, 0x39bbbeef, | ||
5743 | 0xa951f707, 0x7dc472fe, 0xeb0fc8ca, 0xef183799, 0xd894afd9, 0xa03acd69, | ||
5744 | 0x8fdfe32d, 0xb9fabb63, 0xf89efd5e, 0xdcfd9ff7, 0x69d8c159, 0xf85d8590, | ||
5745 | 0xebc347ec, 0x4665fbd5, 0xb93c7236, 0x5f4f308e, 0x597677d2, 0x0467ef8d, | ||
5746 | 0xcbfcee1f, 0x6e3023ab, 0x687dae31, 0xe9679e2f, 0xd3ef53a7, 0x5ed660ed, | ||
5747 | 0xa3b4efb8, 0xee17ad31, 0x2438eb4b, 0xf0033987, 0x038056f5, 0x572ff1e3, | ||
5748 | 0x5ed9e998, 0xf0652ac3, 0x8f99da2b, 0x6bba67f6, 0x5f902ccc, 0x73b934ba, | ||
5749 | 0x739319ff, 0x3ba5f7d4, 0xa4ec7d68, 0x9fa9a5d3, 0xc77787e8, 0x569dfe3f, | ||
5750 | 0x87f913d6, 0xebf715e3, 0x06b75e20, 0x740a4cb5, 0xe04aafde, 0xafbeda6d, | ||
5751 | 0xe0e33f68, 0x943a8dc6, 0x3a35c1f7, 0x26b93acd, 0xca43ec59, 0xd7089964, | ||
5752 | 0x61417db4, 0x438f4859, 0xe6082db2, 0xccfc6ae7, 0xd7e00ce8, 0xfb11e3f9, | ||
5753 | 0x8702fdc7, 0xa7842d93, 0xf25a86dd, 0x365f772b, 0xbb29fdd3, 0x8125958c, | ||
5754 | 0x23eccce0, 0xd8ebc405, 0x5f6833f3, 0x5e157fca, 0x7a87b5c7, 0x588e3173, | ||
5755 | 0xbb1c78c3, 0x7d71bf1b, 0xd185b1d4, 0x710ef739, 0x1b63a80e, 0xa01ebca3, | ||
5756 | 0x77dc49e2, 0x8b7df203, 0x80d63f7a, 0xe32f1d86, 0x28de5efa, 0x72e4fed1, | ||
5757 | 0xf7118b7d, 0x221aba5b, 0x65bfcc64, 0xae3dc558, 0x59b0cb7a, 0x9c38392a, | ||
5758 | 0x17e7e7ac, 0x07beecc6, 0xc972bdc7, 0xec87e748, 0xef747c07, 0x11c695c0, | ||
5759 | 0x3cefbebd, 0x6c156bce, 0x7b3bde0a, 0x5f119938, 0xd0c1f3f8, 0xf29ac16d, | ||
5760 | 0x8899d958, 0xd4cd34f2, 0x002da0f2, 0xc4528add, 0x7aa370fa, 0x89fff3cc, | ||
5761 | 0xe8a63b1e, 0x8eaca731, 0x74a46487, 0x817163d3, 0xc962d8f4, 0x5ef8871a, | ||
5762 | 0x871694dc, 0xd87c5cf4, 0x8f481310, 0xac38076d, 0x007f7720, 0x7b67c3f9, | ||
5763 | 0x9bb1e81d, 0x0eac7a54, 0xbf0058f4, 0x3ae52924, 0x5ff3cc7a, 0x51db6f23, | ||
5764 | 0xe798058f, 0x1fae14f0, 0xbc363d14, 0xb1e914f1, 0xcd3a75e1, 0x29feda39, | ||
5765 | 0x5263d3d7, 0x2c68accc, 0x01216c1b, 0x89f106f8, 0x27c47779, 0xd41c713e, | ||
5766 | 0x9629f967, 0xfd9f4bbf, 0xecfa7af8, 0x8abf08bf, 0x3afc5b3e, 0x3ba37f23, | ||
5767 | 0xdfe231df, 0xfd18bbc5, 0x26e2cfce, 0x3716cfae, 0xcf0fbe31, 0xec0d8f4f, | ||
5768 | 0xff18c7a6, 0x6f2f165d, 0x7d486aef, 0x2fe85ee6, 0x99b06ed3, 0x97667ea1, | ||
5769 | 0xeb56cb5e, 0x1e94fcb5, 0x1ba1daf4, 0x0baf6bd3, 0xaafa06bd, 0x7f51ea2f, | ||
5770 | 0x6a35b0be, 0xf763977f, 0x5edbf3e8, 0x5b78f943, 0x4701f3a6, 0x9dfebe45, | ||
5771 | 0x90b3e7d1, 0x1e11eaaf, 0x4235d390, 0xdc2adb5e, 0x03f8ffd4, 0xdb657e7c, | ||
5772 | 0xca0f5a24, 0x57bdb8eb, 0xf07b235e, 0x31a4e180, 0xff3ed15f, 0xe18926e2, | ||
5773 | 0xa6e9b2d1, 0xfef1a7ca, 0x8192f630, 0xd4e53889, 0x143f150c, 0xf8a12a8c, | ||
5774 | 0x999e8161, 0xc96ddf71, 0xb73fbe28, 0x7b959444, 0xf53b0ba2, 0xcdbedfa0, | ||
5775 | 0xf7e9fb86, 0x7bcffc34, 0xdcf7134e, 0xf2417b4d, 0xdd5ffde0, 0x712a7bcf, | ||
5776 | 0x97fbed38, 0xcba77cc5, 0xf61f842d, 0xde73e06e, 0xe5e3fb2f, 0x8d4bc090, | ||
5777 | 0x478bc5ac, 0xe517880a, 0x8782ad5c, 0x565bb7e2, 0xf8a75c60, 0x32fc8959, | ||
5778 | 0x782b79ff, 0x761f76ea, 0x909dff23, 0xdb62f7ee, 0xd25bbf35, 0x144477ed, | ||
5779 | 0x7fcdfb3c, 0x323fa2bb, 0x37bc08d8, 0xf482f81b, 0xfc4ffb87, 0xb8c7421e, | ||
5780 | 0x3d6a71fe, 0xc3c09afc, 0xe371ca88, 0x2e99add1, 0xd5f98afc, 0x804c1ff7, | ||
5781 | 0xb71f67f9, 0x6303fdd2, 0x9ee898c7, 0x3e41adbe, 0x9f0a6fd2, 0x3e70fa19, | ||
5782 | 0xecfd116b, 0x4b945c4e, 0x241a74fb, 0x2e13da0b, 0x37bf106f, 0x082df805, | ||
5783 | 0xf67fecaa, 0x478124ea, 0x689efd0b, 0x006f5883, 0x4e57e8ef, 0xc01fd652, | ||
5784 | 0x88cfca3b, 0xd7074e46, 0x2c874e16, 0xe567e3c6, 0xf30d92d5, 0xf70de5ea, | ||
5785 | 0x8a3e711b, 0x50bf85de, 0xfc545d35, 0x27f357a9, 0x7bad547d, 0x34fbe225, | ||
5786 | 0x1887e553, 0xfc06993f, 0x0cd891be, 0xfc3df7fe, 0x5f77eddb, 0x2f7bf3ae, | ||
5787 | 0xa78e1f72, 0xf44788ed, 0xdc7d12f3, 0xbac2f26e, 0xddf5d610, 0xf06b77a5, | ||
5788 | 0x6bb9fe38, 0x249abf9c, 0x3b01c62b, 0xefc354f1, 0xf056cf6d, 0x788afc84, | ||
5789 | 0x63279c6f, 0xf8837e79, 0xf9bf1fdd, 0xb5083ee2, 0x9d37171c, 0x906ffde2, | ||
5790 | 0xbcc02c6c, 0x7fdfe47b, 0x927b6f90, 0x2d1f435f, 0xe413beff, 0x2efb823b, | ||
5791 | 0x77e24ddc, 0x34231a19, 0x7dfec279, 0x35b01db8, 0xfd1cf808, 0x1b06c3e8, | ||
5792 | 0x2fe0a7de, 0x3d62b1ef, 0xaadf7b43, 0x420f97ca, 0xb12e3180, 0x28ceccc5, | ||
5793 | 0x76e5f470, 0x6edf5aa5, 0xb331620f, 0xbfee7ab2, 0x4f5ba09f, 0x1e528df6, | ||
5794 | 0x5ea1e386, 0x54f1806c, 0x7d7f2cf9, 0xd7e5f8af, 0x0fc6579b, 0xce32979c, | ||
5795 | 0xd87e7bdf, 0xfe799ac5, 0xd0245f02, 0x26dfe179, 0x9fa9bc63, 0x7bdf57a4, | ||
5796 | 0xfe6fdcae, 0x3b3fe84f, 0xfee7a625, 0xf685bc59, 0x4efb2937, 0x0e3cfd94, | ||
5797 | 0xf3fb130b, 0xae33fe6f, 0xfcec57e3, 0x8e9641fc, 0xae33707d, 0x3a06b90f, | ||
5798 | 0x88e57ac7, 0x573fe281, 0x2e7bf026, 0xbf7b7f6f, 0xedf2f51e, 0xff0114a8, | ||
5799 | 0xe44b67b7, 0xaec51d1f, 0x6d1da347, 0x80257da6, 0x1f9811bf, 0x1ca9a8c9, | ||
5800 | 0x333ee78f, 0xe19678b7, 0x17de36d3, 0x6dd20efd, 0x7bf74c9c, 0xc6a3db34, | ||
5801 | 0xc0fa3ae3, 0x71819659, 0xa9ef5877, 0x1621e67d, 0xd8c6f583, 0x18fdc863, | ||
5802 | 0xb1f9f75d, 0xe8c70099, 0x0acdb223, 0x0fefa6f5, 0xf77cc50d, 0xe63af5c0, | ||
5803 | 0x0c6be154, 0x73c32cf3, 0xed5ba33e, 0x22ee1133, 0x2e305fb0, 0x71b8d45f, | ||
5804 | 0x2e439e19, 0x7b512f5a, 0x2939db97, 0xbdb3e61c, 0x4349b3fa, 0x3d401f50, | ||
5805 | 0x9eb5c6ec, 0x48d573d7, 0xcf394c36, 0x24675c6f, 0xefc3517d, 0x91eed86f, | ||
5806 | 0xebf79998, 0xdbbf4331, 0x2cfb43d7, 0xd05b638a, 0x7cd5720e, 0x5cdffb46, | ||
5807 | 0xdfb52700, 0xccc5cfc6, 0x94567687, 0xa9fb9a97, 0x12f5e2bf, 0x457323c3, | ||
5808 | 0x543af8db, 0xc360c474, 0x9f7b75ef, 0x2a74f5a5, 0x8a90978c, 0x02778eeb, | ||
5809 | 0x884739c5, 0xffc77b7d, 0xed5df90f, 0xd58fd38c, 0x2feb92fc, 0x9fbf2989, | ||
5810 | 0x4f9f57ab, 0x97d3e8eb, 0x2db10bef, 0x3f414631, 0x498a8cef, 0x7d5f11d5, | ||
5811 | 0x71b4e746, 0xf013935f, 0x179c547d, 0x8cea3fdb, 0x409f7d51, 0x4f3f2b2f, | ||
5812 | 0x8e30d05b, 0x321551ce, 0x9aa39d07, 0x8fdb9a36, 0xc828feef, 0xde33fb83, | ||
5813 | 0xe37af835, 0xe23ffdfb, 0xb6dcd3bf, 0xb6dfeb9d, 0x1fda16e4, 0x307f1e7b, | ||
5814 | 0xb65c6009, 0x717d265e, 0xce819b7e, 0x7018c90d, 0xe76dfc44, 0xf5fec5f6, | ||
5815 | 0x5bf3dfbc, 0x7e361db8, 0x70931dc3, 0x59b05dbd, 0xf5c46739, 0xce3fe2b3, | ||
5816 | 0x62f388b7, 0xfc8d1b95, 0x5fefacde, 0xac3d1477, 0xbf911efc, 0xfceb2d9e, | ||
5817 | 0xc92f6cfd, 0xffad594f, 0x2ed0ccf9, 0xefe9043f, 0xb9f88afd, 0xa18188fc, | ||
5818 | 0xb99d221f, 0x4f8ff944, 0xef871d70, 0x3b251ba3, 0x3a2a3b9e, 0x1d90f26e, | ||
5819 | 0xdf7799ed, 0x393d71cf, 0x3afba261, 0x1cf055ce, 0xef9328f6, 0xf781bf2f, | ||
5820 | 0xe3351c9f, 0x97e03cce, 0x05ef8479, 0x3be1116c, 0x473f336b, 0x2ab47597, | ||
5821 | 0xe7ae3e76, 0x7fdc7813, 0x9cccb541, 0x89f0fd2a, 0x37799f64, 0x1ee8175f, | ||
5822 | 0x598e856b, 0xb8f9cac6, 0xe562de9e, 0xd9bad8fa, 0x2fcde740, 0x760cfd08, | ||
5823 | 0x5103dd3e, 0xac5d6bbc, 0xe2ff4551, 0xf8b175a6, 0xc42b2853, 0xe265b439, | ||
5824 | 0x91b17a9c, 0x47bc538f, 0x8d546cb2, 0xf4a3f4a3, 0xdbc5dc6b, 0x67f135a5, | ||
5825 | 0x2317fd4f, 0x2fcf347c, 0xfc27a88c, 0x7e36e9fb, 0x7a8cfd0f, 0xee155aff, | ||
5826 | 0xaef51817, 0x8c72974c, 0x2d35333a, 0x0f643ef0, 0xd31fcf8f, 0x747f7e69, | ||
5827 | 0x35825fd4, 0x6cba91f9, 0xdfa07790, 0x4edc0d6d, 0x653ecbab, 0xb2a2cb2c, | ||
5828 | 0x5cbbe505, 0x27cb85c4, 0x75f57df0, 0xa3974719, 0x92cd4fbc, 0xdb981f88, | ||
5829 | 0x29dfc469, 0x8accbb07, 0x5905a779, 0x6802fdbc, 0xf758728f, 0xd04b972c, | ||
5830 | 0x1fd4560f, 0x830017ff, 0x8000007b, 0x00008000, 0x00088b1f, 0x00000000, | ||
5831 | 0x7cedff00, 0x55537c7b, 0x393ef0b6, 0x526d3479, 0xa0fa5b42, 0xb4db4e50, | ||
5832 | 0x9494b14d, 0x27457897, 0x880b5a3c, 0x46107006, 0xf4228206, 0xbd185499, | ||
5833 | 0x35fde338, 0x9c414415, 0x0e7c570b, 0x42d2d37a, 0x1429a2c1, 0x20d5b16c, | ||
5834 | 0xb47441d2, 0x3bd15ef6, 0x0f8afea3, 0x52d25a04, 0x8ef4f987, 0x6b5adfa3, | ||
5835 | 0xa126d39f, 0xdf7ef515, 0x37f5375f, 0xef6758b3, 0xbdeb1fb3, 0xce275ef6, | ||
5836 | 0x620a3b5d, 0xd67318e3, 0x319e920a, 0x6abd54d6, 0xc614f273, 0x2c8ba68a, | ||
5837 | 0x67e7c242, 0xf01192b4, 0x2c7133e6, 0xd3e3b187, 0x1939db3f, 0x74339dda, | ||
5838 | 0x7ff41d26, 0xc637d357, 0xf3ec6064, 0x991cc64a, 0x5ea5b388, 0x698459c0, | ||
5839 | 0x8c09e2c2, 0x060e313d, 0xead8ca99, 0x0c0599e6, 0xeccddf9e, 0xf8bfb19b, | ||
5840 | 0x7981f436, 0x47a20d5d, 0x2e9c0027, 0xc60dba8e, 0xc680f77d, 0x7e3b280a, | ||
5841 | 0xfdda8e83, 0x153da007, 0x4faed8e0, 0xdcbfc004, 0xe86e61a5, 0xc89771b0, | ||
5842 | 0xb2fff418, 0xc5f7a05e, 0x90597ee7, 0x3adaf804, 0x2983aac1, 0xad9aef8f, | ||
5843 | 0x1efec24d, 0xd9bc61c0, 0xbc6869cf, 0x7f78fbb5, 0xc5e433f8, 0xf186b633, | ||
5844 | 0xe2a635bf, 0x632e599b, 0x65a7cce5, 0x69efd0e9, 0x115da7cd, 0xf87bedbc, | ||
5845 | 0x1827b15f, 0xc60fad2f, 0x4bb6d9cb, 0x6f403462, 0x750ef3f0, 0xef386dd7, | ||
5846 | 0xb4f41bfa, 0xb637d9ee, 0xeb8f5e9c, 0x5c30d06e, 0xef1bece7, 0xba02ef8f, | ||
5847 | 0x963351ae, 0x8e90693c, 0x0cc788e5, 0x559d8eb1, 0xb31fa4da, 0x1c75909e, | ||
5848 | 0x3b8c6719, 0x63fc0d7b, 0x3df49b12, 0xb8dcee90, 0x628d8c91, 0x740b5dcc, | ||
5849 | 0xb67e0049, 0xf00f360a, 0x4765b8a5, 0xf3d616bc, 0x02fdfe3d, 0xf11db6f0, | ||
5850 | 0xb6d73c22, 0xbd2fd408, 0xad62c38d, 0x60aff16d, 0x0aafc51f, 0xb0696aa6, | ||
5851 | 0xb9ce32bf, 0x7df10271, 0xbfef3373, 0xb5e015b1, 0xac5f8fc3, 0x0ac6bedd, | ||
5852 | 0x65dd4a70, 0x72b864ad, 0xb17e651c, 0x739c782d, 0x8e857cb2, 0x2c1a2f97, | ||
5853 | 0x10bba46a, 0xaf7e4569, 0xadbcb817, 0xdc799bbf, 0xacc94f20, 0x87406042, | ||
5854 | 0x9013e644, 0xbd29c0df, 0x86fce41d, 0xcb55903e, 0xf17edd20, 0x1d5b0475, | ||
5855 | 0x6c99c740, 0x3b3e1064, 0x7fa82922, 0xa83529be, 0xecc4a6fd, 0x52b9f6a0, | ||
5856 | 0xdf3e105e, 0xff505d72, 0x4199d605, 0xe7d3adf8, 0x685ff506, 0xdb84185b, | ||
5857 | 0xeb8d4998, 0xba5cad6f, 0x999073f8, 0x041d2b57, 0x70287a15, 0xd8c54e86, | ||
5858 | 0xee0bc13f, 0xa036ec9b, 0x19288ccf, 0x3e397367, 0xd8d1f002, 0x06ddb37e, | ||
5859 | 0x20919d74, 0xc7016ce3, 0x05f69593, 0xe538ffbc, 0xfb785bfd, 0x2dfb4a35, | ||
5860 | 0xd2a27dbc, 0xafc72b7e, 0xf1eed467, 0x03776adc, 0x8ed1ebfe, 0xb6f8096a, | ||
5861 | 0x138aebe4, 0xfde9a023, 0xa77745aa, 0x45583f02, 0x18d36306, 0x0034875b, | ||
5862 | 0xed182ed6, 0x351a4a78, 0x7ff4aed8, 0xe357b255, 0xd14bdef3, 0x63226cb9, | ||
5863 | 0x51dfc80d, 0xe6321f3f, 0x716779a3, 0x1159b2d2, 0x33ea1f06, 0x0cf4d08b, | ||
5864 | 0x631a51e8, 0x0db18d82, 0x906f4831, 0x0477a213, 0x89a55f41, 0x8995ebe0, | ||
5865 | 0x94a8df04, 0x63336ad8, 0x821695ed, 0xf4ad2b27, 0x74e554fc, 0xda576f82, | ||
5866 | 0x5953be08, 0xd2a3b048, 0xe290504e, 0x9f1872d8, 0xa23eb1ed, 0xd5b87a41, | ||
5867 | 0xfcc2cf23, 0x7e40cff8, 0xd4c64286, 0x1722acec, 0xcabf79d0, 0x65f48ad6, | ||
5868 | 0x6ce98c6c, 0x5ef3e0d4, 0x815243a1, 0x46a7bade, 0x0f40eb58, 0xf37a0f8c, | ||
5869 | 0x4617a04c, 0x11bac1a7, 0xe59c6168, 0xbb43524b, 0xbad69d71, 0x029fda11, | ||
5870 | 0xf587ab73, 0xda991ad4, 0x1cc9f602, 0x34f1100f, 0xf7aa8d0e, 0x7fec0552, | ||
5871 | 0x1ff5045f, 0x0236c603, 0x196825fa, 0x7de0f7c3, 0x1ffd8116, 0xdfd81163, | ||
5872 | 0x684024fc, 0x10e1adaf, 0x37f48224, 0x43cde741, 0xe2e09efb, 0xd555d8eb, | ||
5873 | 0xee304921, 0x5c7ca9ae, 0x29f13158, 0x8119cc5f, 0x499fb2f6, 0xb8394c23, | ||
5874 | 0x005abd1f, 0x83d5e881, 0x2bb009df, 0x45034f59, 0xdb24f402, 0x01d4c113, | ||
5875 | 0xbd4d757a, 0xe09f0829, 0x3fea0c4d, 0x6a0a59b1, 0x8259f3cf, 0xb49f27da, | ||
5876 | 0x3b53e106, 0xbff507a6, 0x105b43f6, 0x61575d7e, 0xcfebff50, 0xfef083d9, | ||
5877 | 0x618fd81c, 0x94defe78, 0x9ff50428, 0x703ade0b, 0x89aac67c, 0x232df33e, | ||
5878 | 0x1bf79e83, 0x1b869d38, 0x78358177, 0xb71f855c, 0x7f1e0f4e, 0xdc782da1, | ||
5879 | 0x3d87cb1f, 0x906a27a0, 0x13d07aff, 0x4f41fb84, 0x0de720d4, 0xbf8827a0, | ||
5880 | 0xd0827a08, 0xcf827a0b, 0x209e820f, 0x827a04de, 0x13d011f8, 0x4f419bc4, | ||
5881 | 0x3d051e10, 0xa357e7c1, 0xef3cbb57, 0x53de7949, 0xed8cbcf2, 0x8d5d3a20, | ||
5882 | 0xefcb6f2e, 0xdfbf23bf, 0x079bef81, 0x30bcb0e5, 0xc835f543, 0xf398ccf3, | ||
5883 | 0x87582eda, 0x01575d6d, 0x6f7d4dc6, 0x8246ac8a, 0xc9cf0e6e, 0x5aab8c4a, | ||
5884 | 0x9456d962, 0x5bdf7b5f, 0xa70fc42a, 0xfb42b69b, 0x78ffe696, 0x4dfddb07, | ||
5885 | 0xcdf184a2, 0x459fcdeb, 0x5f3d38e3, 0x2c753247, 0x3459f7be, 0xdf654bc6, | ||
5886 | 0x42b7c230, 0xb9c5fa3b, 0xe5f3228d, 0xb57bbaa0, 0x5663ded8, 0xe3168f70, | ||
5887 | 0xa3437b33, 0x5a52f916, 0x6fed48df, 0xedc1357a, 0xed41d5f5, 0xb00fec26, | ||
5888 | 0x4689ed54, 0x56685e7a, 0xff51f3c6, 0xc3f73332, 0x6f8fea17, 0x5bd61ebe, | ||
5889 | 0x562ab8de, 0x3697f584, 0xd77f17bc, 0xe2ffd00f, 0x1c721791, 0x0b797ef0, | ||
5890 | 0x1c18678c, 0x2345bcaf, 0x65fd7ce3, 0x1882c6e6, 0x621a1ba0, 0x87acfcb0, | ||
5891 | 0xc01b676d, 0xd736942e, 0x577c6195, 0xc343b96a, 0x5ebd3e80, 0x01d710b1, | ||
5892 | 0x71062a7f, 0x9189995b, 0x7ef1e87f, 0x8c177d15, 0xc4f79afb, 0x7a87e82d, | ||
5893 | 0xe3478f5b, 0xd04dbdbc, 0xabbf803f, 0xb11c7953, 0xfc4b553a, 0x1e3a69eb, | ||
5894 | 0x16fb412d, 0x774e71ef, 0xfff68fb5, 0x02f78cba, 0x8b377a24, 0x5afa2e3c, | ||
5895 | 0xc6507c45, 0x9a33a173, 0x4619ed8a, 0x97a757dc, 0xaa7f77cf, 0x579b9fc4, | ||
5896 | 0x9ff5c6ad, 0x55365c4a, 0xae05fb24, 0xf1def01a, 0xc2b6ebf3, 0x30bd4a52, | ||
5897 | 0xf7f210ee, 0xbb6e3ca8, 0x69bf471c, 0x1a3ed43e, 0x30aa7ee8, 0x807c8f36, | ||
5898 | 0xaa636fdc, 0x6815fa8a, 0xe80ae61d, 0x8c9069d7, 0x160fcf28, 0xbf911ba6, | ||
5899 | 0xe7c423af, 0x0eb5bb85, 0x7c4d2580, 0x47534ebe, 0x675dca34, 0xe31164d3, | ||
5900 | 0x7fbc6551, 0x901de791, 0xb9be01ef, 0x9e454f89, 0x338e036a, 0xfcfe3fc8, | ||
5901 | 0xbd1354fe, 0xdef3ca77, 0x7f603b92, 0x2b28969d, 0xcb5da5f2, 0xa5fd708a, | ||
5902 | 0xbe7160e8, 0xa46ae4d6, 0xfddf3283, 0x2d7a3f32, 0xbfabe22a, 0xbbf72359, | ||
5903 | 0xf5058ea3, 0xd57e70d3, 0xe4c7af06, 0x3bfbf339, 0x73d97fa0, 0xbef8c322, | ||
5904 | 0x8f11534c, 0x20fcc7fb, 0x9d32dd68, 0xf8be34cb, 0x2d7900f8, 0x1bd0196b, | ||
5905 | 0x8b79c903, 0xf11227a2, 0xa763e153, 0x4aebe445, 0x2c1879d4, 0x8eb1acb9, | ||
5906 | 0xced41ae4, 0x4d3907ad, 0xff20ea8e, 0xdccffc97, 0xfc0ad54f, 0xfb2559b9, | ||
5907 | 0xb5c7154d, 0x3e2fd100, 0x7853fb27, 0x1f00999f, 0x00146c0b, 0x4fa614d7, | ||
5908 | 0x917c4155, 0x21e6362c, 0xb6a9753f, 0xff9854a6, 0xc87ec97d, 0x6489f142, | ||
5909 | 0x553e43b4, 0x66e0d97e, 0x7efed023, 0xdbce24f4, 0x047904df, 0xd11e5bcc, | ||
5910 | 0x9073ef3c, 0x282b7ecf, 0x7fb7ac08, 0x5ce28697, 0x00833b10, 0xe99acd71, | ||
5911 | 0x94be5f5c, 0x8844d31c, 0x54abcb17, 0xc832afb4, 0x5f98f4bf, 0x62eef6c9, | ||
5912 | 0x28adea63, 0x452765a7, 0x2be60453, 0x9d7fd4de, 0x86837881, 0x57a72af2, | ||
5913 | 0xff30fab0, 0x255a326b, 0x9deacfc0, 0x9d379869, 0xe2d3eaad, 0x3e21677b, | ||
5914 | 0xcbcf9c7f, 0xa7cb4f50, 0xd4519f73, 0x193da3bc, 0x57e60960, 0xafc8cfe2, | ||
5915 | 0x3a99f242, 0x8c75c7fc, 0xf21539fd, 0xb26f8c1a, 0x37c63659, 0x048ce2f9, | ||
5916 | 0x7f995fd2, 0x1710276c, 0x13f5a612, 0xdfa809ac, 0x3cd2d45b, 0xab6f77dc, | ||
5917 | 0x71f484c6, 0xc62a1db5, 0x22ca7b75, 0xafd82aad, 0xa251c373, 0x815fef63, | ||
5918 | 0xf65710ce, 0x33ca3226, 0x67a7197b, 0x6797336f, 0x44f04697, 0x9e20fbe0, | ||
5919 | 0xe0845e34, 0x5ea682a9, 0xd9347f77, 0x510ac621, 0xcb2dd7fe, 0x68bc6150, | ||
5920 | 0x80337203, 0x57b91447, 0xf5c0a5fc, 0x977546fc, 0x7bde1238, 0xe7fdc343, | ||
5921 | 0x48d353df, 0x9968e7ee, 0x46f5f103, 0xc62bf92b, 0x887de8aa, 0x52fe28a7, | ||
5922 | 0x67c435fc, 0xc7254f14, 0x147e497a, 0x6d50bc3f, 0xab8e04d2, 0x821bdfbc, | ||
5923 | 0x0580f32b, 0xe0ede3e1, 0xf8c0def1, 0xa6fc7923, 0x1e740f8c, 0x6afe7481, | ||
5924 | 0x70fc958a, 0x91f042ca, 0xa41577a4, 0xf59e8a77, 0x01cd5c80, 0x3810cab9, | ||
5925 | 0x1d76cabf, 0x728073a3, 0x00e741d6, 0xde7cd105, 0xf11f9c02, 0xd2130e48, | ||
5926 | 0xedffda04, 0xdb5e9c69, 0xa7d8a864, 0xc4b66913, 0x698d8034, 0xa469318e, | ||
5927 | 0xb792261f, 0x408cb2f5, 0x35d0927c, 0xf75d7d84, 0xf06e7e27, 0xda3dc815, | ||
5928 | 0x08575f99, 0xfe203992, 0x6ed3fd29, 0x69c34b2d, 0x18161d6c, 0xbd7188af, | ||
5929 | 0xc5d9e451, 0x1b95b2bb, 0x303992f4, 0x7fc3b2fe, 0x72c567a0, 0x279e117b, | ||
5930 | 0xd8e0fe40, 0x27992f10, 0x8f627bc3, 0x4fd73c16, 0x73577396, 0x73d3ee30, | ||
5931 | 0x0519f379, 0xffc9c60f, 0xf5e72694, 0xc8a7fcb2, 0x10ed58f2, 0xabdf683c, | ||
5932 | 0xee1355bf, 0x90782e5e, 0x8784bf07, 0x45e4621b, 0x99a2bf62, 0xbf47f41e, | ||
5933 | 0x8ef29404, 0x2fa4719d, 0xb9fb08d4, 0x2fffde4d, 0x0263bed5, 0xc684e7ec, | ||
5934 | 0xc2f98a9b, 0x2b08f289, 0x418cbf8e, 0x64f60180, 0x7820eb39, 0xd879ca3a, | ||
5935 | 0xc7bb8347, 0x81ff3c62, 0xf8c56743, 0x8d537aa7, 0x2e66ed11, 0x3cc264db, | ||
5936 | 0xff514805, 0x9f1fe4fd, 0x0b8830cf, 0x5f0aff90, 0xcbecd31b, 0x073f00d2, | ||
5937 | 0x749c493c, 0xefa5fbe5, 0x3e468e1f, 0xd0e6ff76, 0xda19db92, 0x3bb23e9d, | ||
5938 | 0x1a551525, 0xa8c41c9c, 0x906d32c3, 0xe0bf0abf, 0x1f1052df, 0x90630f61, | ||
5939 | 0x42cf622e, 0x177ffbd2, 0xabb1fa19, 0xf3a151f1, 0xac7e642f, 0x21f6e16d, | ||
5940 | 0xdd0abf94, 0xa21e676f, 0x5daff81f, 0x23a617c4, 0xffca147b, 0x0407f1ab, | ||
5941 | 0xcd363971, 0xe431d38e, 0xdb8ab26b, 0x2035e4ab, 0x3beeb02f, 0x0bada398, | ||
5942 | 0x8fa892e0, 0x32e72434, 0x7ccb969f, 0x167980fa, 0xdfff5258, 0x9a44e9f1, | ||
5943 | 0xe91a7b63, 0xfd4869ad, 0x32c7d50c, 0xe2aefac9, 0x67a43c6f, 0x3579fac1, | ||
5944 | 0xf85664bd, 0x8e7f802f, 0x7fa4d10d, 0x625d7f0a, 0xd5f7e903, 0xad18f3cf, | ||
5945 | 0xf059bcab, 0x847f52f8, 0x10b00a5e, 0x884363e0, 0x1afc2a3e, 0xf6291ece, | ||
5946 | 0xfb96b4ec, 0xa27df763, 0x8ff2f307, 0x1309df05, 0xceeca7da, 0xd282640c, | ||
5947 | 0x8eaae3ff, 0x38c0f7b1, 0xf0e4cf1f, 0x0159c634, 0xad922db8, 0xa49e23b4, | ||
5948 | 0x3f7ee373, 0xa167b216, 0xf858fe7f, 0x9e385be7, 0x5f1095a0, 0x04cb3096, | ||
5949 | 0xef0d69f8, 0xc57dd8af, 0xecbc7fde, 0x4fd439da, 0xbee06f60, 0x47a25c60, | ||
5950 | 0xa782fddf, 0x256a4406, 0x5f5c6a98, 0x0aa7acea, 0x27f9e0d3, 0x43cf4dbf, | ||
5951 | 0x05d6d87e, 0x2e7e878f, 0x3ce22275, 0xebf1baef, 0x9caacd3e, 0xfc0679c1, | ||
5952 | 0xf44b9cd4, 0xfd53f15c, 0xb25a1965, 0x2833ab53, 0x69922fde, 0x1ec98b6d, | ||
5953 | 0x87f829f1, 0x08fa4f7e, 0x5fa0ce55, 0xc8793fe9, 0xefa008e0, 0x4c3bf079, | ||
5954 | 0x3f67801b, 0x97e81296, 0x3479ed8e, 0xa451f913, 0xb9e2e775, 0x3feab9e3, | ||
5955 | 0x2edfa0a4, 0x2670f3da, 0xb67b8dc5, 0x5ffc6264, 0xa668f354, 0x0728f08d, | ||
5956 | 0x4e6a1fe5, 0xd703ee87, 0x101adeed, 0xf26526a7, 0xc47979f8, 0x1f8c7cb1, | ||
5957 | 0xf1735de7, 0xcbf41321, 0x4260adf8, 0xeb35f831, 0xddfd0878, 0x77970b0a, | ||
5958 | 0xec8233b6, 0x43678c31, 0x2f65d7be, 0x3d7d45a8, 0xb34cf965, 0x74bfe31a, | ||
5959 | 0x056bd135, 0x804b6cf3, 0x6088f676, 0xfd8163aa, 0xff6356c7, 0x6d049b55, | ||
5960 | 0xb1fa1c62, 0x97987991, 0xd247d2e9, 0x247cee3a, 0xaf9f1daf, 0x9f3f8078, | ||
5961 | 0x7534f3a7, 0x694f38e2, 0x37a475ad, 0x278c34f6, 0xd2ebf595, 0xcadef4b5, | ||
5962 | 0xcbc5026d, 0x4f193cca, 0xee0757c6, 0xfdce9753, 0x8db29b32, 0x32adcfec, | ||
5963 | 0xe07e6e5f, 0x611237bd, 0x1d6349dc, 0x7f6874c6, 0x66b389e7, 0x139f3c1f, | ||
5964 | 0xf3073e73, 0xe3ad0c86, 0x77dc62d9, 0xfb8ace8d, 0x2c9b9298, 0xdfff6026, | ||
5965 | 0xe11c7ccc, 0x3d5607ca, 0xf2768c5b, 0x73ca08e9, 0x13adf594, 0x83e61524, | ||
5966 | 0xbf6fabc7, 0xee76e913, 0x778a0889, 0x256755d7, 0xdfc81fb0, 0xa5ff02f7, | ||
5967 | 0x41f6c64c, 0x05f08efe, 0xd825dfc8, 0x44ca81e2, 0x94aa5fc2, 0x5ca5b208, | ||
5968 | 0xb899d6be, 0xbc6e193d, 0x4b9790c9, 0x3ca64760, 0x7c41e302, 0xcd9c6f38, | ||
5969 | 0xcaf40e92, 0xb35e5f18, 0x0657de45, 0x4ee79fbc, 0x98748d9d, 0x769ee5b2, | ||
5970 | 0xd2e31d0c, 0x56f2fe79, 0xa82923e7, 0x381f6bc7, 0xb4317cf3, 0xe7b74aaf, | ||
5971 | 0xbb11fbe1, 0x7e3e512e, 0x15e1e5bc, 0x1aa2ef48, 0xbc9fdf1d, 0x644f73ef, | ||
5972 | 0xe78b3c26, 0x286a6f75, 0x3aed763f, 0x8016fcf3, 0x47bb6d77, 0x3fef281b, | ||
5973 | 0x7113bf76, 0xba7f533d, 0x97470d9e, 0x8f67ae9f, 0xd53e90a6, 0xfce59e80, | ||
5974 | 0x3d733d7c, 0xdcf44550, 0x15ff6e9c, 0x8d39dbca, 0xebf5053b, 0x240df65c, | ||
5975 | 0x8136eef7, 0x5fd8a1f8, 0xf2a5fde5, 0xde554bfe, 0xce02336d, 0xc6432f15, | ||
5976 | 0xd63ef486, 0xc62665f2, 0x979b97b5, 0x47dc088d, 0xfb023c28, 0x35864c86, | ||
5977 | 0xda7dbd03, 0x69a7db2b, 0xd856e91d, 0x8f1534df, 0xabdb4367, 0xbdb255d2, | ||
5978 | 0xcf0ffc85, 0xc5ff1433, 0x0f78b43a, 0xf82ad651, 0xaa3ef122, 0x6af3a6f9, | ||
5979 | 0xd81257ba, 0x7de741a7, 0xe01a7d8c, 0xe75b8777, 0xc713a0d5, 0xe3da0f51, | ||
5980 | 0x31543f6b, 0xbdbf805f, 0xf9922bae, 0xc81de602, 0x114f6023, 0x4b7f1fc0, | ||
5981 | 0xd87d9052, 0xe7042e9e, 0x36aef013, 0x15f21fa0, 0x2dfc65ef, 0x9f8835d9, | ||
5982 | 0xfb3e72d7, 0xc47c408f, 0x389849cf, 0xe71e906d, 0xd173ba5b, 0x70f42b2e, | ||
5983 | 0xb926ed1e, 0xf87e6b29, 0x99f44092, 0x7b9d5e7b, 0xdb1cfa75, 0x7c8b9dd3, | ||
5984 | 0x9ae9af3d, 0x5f947986, 0xfc8b95db, 0xedc2be71, 0x93a54ffe, 0x11f8bcf2, | ||
5985 | 0x05d800d8, 0x3ca260a7, 0xa1ec5f2f, 0x927fdcbc, 0x96cee5e7, 0xfb7764dd, | ||
5986 | 0x88b9f95b, 0x9051d54b, 0x1508e780, 0xeed1da67, 0xfcf227f5, 0x21b7c609, | ||
5987 | 0xcba466bd, 0x97dd53fe, 0xdfec10b2, 0xe1390189, 0xd439da79, 0xe38e2d73, | ||
5988 | 0xc17b432d, 0x1d58a372, 0xf501778c, 0xd8af9e1e, 0xe519ba90, 0xd4679cff, | ||
5989 | 0x6fa3b424, 0x49ddfee5, 0x45af68e7, 0x638a4499, 0x7f0069e0, 0x11e1f607, | ||
5990 | 0x1e282d99, 0x80b6628a, 0x74ad2e7e, 0xa7bfc52b, 0x74c7ba44, 0xc67ae78d, | ||
5991 | 0x2b3d728e, 0x9b4c74df, 0xa35e3018, 0x7894f76c, 0x7f6bde70, 0x345d7d27, | ||
5992 | 0xf023b991, 0x14f597bd, 0x2031b0e7, 0x7a2f80ff, 0xf283c139, 0xdca8f7e0, | ||
5993 | 0x178bc81a, 0x87fee64d, 0x7ef1d21d, 0xa454d289, 0x6af31f87, 0x4c794fa0, | ||
5994 | 0xc00c6647, 0x2b89df23, 0x4e4f98ed, 0x2be01c02, 0xf2cf9702, 0x23991d45, | ||
5995 | 0xd0495cf1, 0xa4bcf0ab, 0x77b786bc, 0x54bc78aa, 0xf7dfc69e, 0x7b57dc0f, | ||
5996 | 0xde821653, 0x9cbdb6f5, 0x5be02772, 0x9c35be0d, 0x7c4cbe0f, 0xb99eda0e, | ||
5997 | 0x46efe608, 0x5cf74d9f, 0x5ed08be5, 0xdc151b75, 0xf78c71c9, 0xb5cd9ee9, | ||
5998 | 0x5baae508, 0xbc15e0af, 0x5c64105d, 0xe5c15f79, 0x8c8547f7, 0xb4859237, | ||
5999 | 0x0a4ff487, 0x3dca35c1, 0x58ff3c9c, 0xb517fefe, 0x7bc22cf7, 0xcf3af9b7, | ||
6000 | 0x57f44ac9, 0xd218692f, 0xf0e07f55, 0x697fa459, 0xb33bf70b, 0x39ee1c0e, | ||
6001 | 0xd872f288, 0xb1e6f748, 0xe3e254e6, 0xdbbd96c6, 0x375ca126, 0xada073f2, | ||
6002 | 0xff3fef0d, 0xc3a7ea3b, 0x57183163, 0xe69eb759, 0xebca2f9d, 0x1e39eb66, | ||
6003 | 0xdfb3b725, 0xb2847c72, 0x3c71dfaf, 0x6b7fb796, 0xa75a17fe, 0xfb81f0ff, | ||
6004 | 0x9fa05e50, 0x17a5e29b, 0xa2605e40, 0x73d94392, 0x1bf59e30, 0xfce0563b, | ||
6005 | 0xab3afdce, 0x09e7c25b, 0x95be30b3, 0xa4dcfccc, 0x14f6fc78, 0x4754a7cc, | ||
6006 | 0x1df9edf7, 0xd7efbb9e, 0x2ba139d3, 0x12a5db86, 0x3dda7ab1, 0xf7bb3f24, | ||
6007 | 0xb5f701fc, 0xf6e74f4f, 0x1edcd1c5, 0xa0c9ef15, 0xfe579ef3, 0x940ad9f1, | ||
6008 | 0xd7717c83, 0xd7fe7c1e, 0xe90abd5a, 0x8db5a9d4, 0x4cfd01b8, 0xa9e286a7, | ||
6009 | 0x3e2f1962, 0x13d7cb1d, 0xf24055d5, 0x653db713, 0x4948c811, 0xe0b7fdec, | ||
6010 | 0xdb8be7ba, 0xce7f479f, 0x0ce8eaf6, 0xa03efceb, 0xbe77bc2b, 0x2da7434e, | ||
6011 | 0x35467dfe, 0xb0b76bca, 0x38b3c57d, 0xd7ef1d7e, 0xf44edfad, 0x3165d776, | ||
6012 | 0x31fa0f9c, 0x16ea9f3c, 0x3f3d0476, 0x1737b75f, 0xfb0bade3, 0xa5dc53e7, | ||
6013 | 0x97a293e8, 0x20bab525, 0x293fc7fd, 0xf963f31e, 0x8666e4cf, 0xc2e9fc80, | ||
6014 | 0xcffc6791, 0x85f5e806, 0x0b4f8d06, 0xb1d62a34, 0xa7af784d, 0xf24963e8, | ||
6015 | 0xbfb8854d, 0xe6755512, 0x278bc03a, 0xbd40ad77, 0x1167af3c, 0x2defd089, | ||
6016 | 0x2e0f3f15, 0x885aaa69, 0xf5b87b76, 0x7c799b14, 0x9f913979, 0xd66e5f97, | ||
6017 | 0xa9cf027b, 0x9547e143, 0x3d5b7a4c, 0x42baff88, 0x19473e47, 0xb7ad2def, | ||
6018 | 0x670ee30c, 0x9fc3f70c, 0x3306ff40, 0xee6661c4, 0x086e56a7, 0x1cdcbfee, | ||
6019 | 0xda9dcf43, 0xcbb44cae, 0xcccbf8ca, 0xd4cf6e26, 0x9fe8995d, 0x7923df43, | ||
6020 | 0x82f57b47, 0xa4aaf640, 0xf7433849, 0xf8d248c7, 0x44967a41, 0xee623db8, | ||
6021 | 0x9c487cd0, 0xc601f326, 0x77ac87fa, 0x9b7a0d25, 0x8d29c61e, 0x7f468aec, | ||
6022 | 0x8aec6655, 0xff6f73c6, 0xc8d59151, 0xc6538bec, 0x4f9c1b4f, 0xbd8b8fc9, | ||
6023 | 0xa87e9b1a, 0x183b60f9, 0x7fc5adef, 0x32622903, 0x3514deb8, 0xcc7cd147, | ||
6024 | 0xe50d35d4, 0xf05768b6, 0x534fb87b, 0x9bfa3e80, 0xc607c777, 0x75c7bfa1, | ||
6025 | 0x8677de53, 0x1ff7a6f4, 0x1ca0a69f, 0x26d8a894, 0x20bee73c, 0xc0617bf0, | ||
6026 | 0x82f85ee9, 0xf25e5e7c, 0xca244337, 0x65cb85cf, 0x01fec7a4, 0xd928fb3b, | ||
6027 | 0x6762bf07, 0x15c70d59, 0x7076cb3b, 0xeecec07c, 0x3762b8e2, 0x42a3fe95, | ||
6028 | 0x1d0a4fde, 0x9077a94f, 0xe6ed93c7, 0x6e7abaa2, 0x7f7e4537, 0x4c6b76c7, | ||
6029 | 0xfce27f3c, 0x19d32b5a, 0x95d3b412, 0x123577e4, 0x19c5b1fa, 0x76a579ca, | ||
6030 | 0xa0e27e90, 0x7499fa3e, 0xbbf509a0, 0x10f940c8, 0x070d15c4, 0x59791cf1, | ||
6031 | 0x07ef15bc, 0x9caee943, 0x7cc5c777, 0x7cf906b3, 0x8af1d6ab, 0x7269ef19, | ||
6032 | 0x82afc8ba, 0x74bf90b6, 0xb8a3aabe, 0xb7d357aa, 0x965fed07, 0xf61af1d6, | ||
6033 | 0x6c76d32b, 0xea4b029e, 0xe3b574d1, 0x943cd091, 0x5c43b257, 0xbb39fd5e, | ||
6034 | 0x39527ce9, 0xe6577f2f, 0x5ea70323, 0x7025f28d, 0x7cde3939, 0x57b46de8, | ||
6035 | 0xf2748efe, 0x03e45703, 0xa3478fcd, 0xe210f9dd, 0x5c407714, 0xbdaae1fc, | ||
6036 | 0x14b50f74, 0xde011fef, 0x7f7829b9, 0xa62edffd, 0x0b6d8838, 0xbcf28e78, | ||
6037 | 0xa50f1833, 0x2fb5ca0b, 0x24dc8f48, 0x9ba5dfc7, 0xeace9608, 0x061d2270, | ||
6038 | 0x8b8045f0, 0x21ebf801, 0x667f4878, 0x1e6266f7, 0x08d61dfa, 0xc6ca3d01, | ||
6039 | 0xbc534efa, 0xd0c3407a, 0xbf046c3f, 0x28e1f849, 0x1d532baa, 0xc718bf00, | ||
6040 | 0x9bfa22fd, 0xca0ee8d2, 0x7587fceb, 0x60f0df74, 0xb82997cb, 0x8ba6bf7f, | ||
6041 | 0x96d295f2, 0x9e31e397, 0x344b358d, 0x78dff83e, 0xdc3d8fba, 0xb6318f12, | ||
6042 | 0xe54cbcf2, 0x94eb94cd, 0x28fed172, 0x5f45cbcf, 0x54bfae26, 0xf6c5c8e8, | ||
6043 | 0xd453b458, 0x7111701f, 0x1328fb46, 0x2d60ddb8, 0x5089f922, 0x706745be, | ||
6044 | 0x25f60bbb, 0x8f11ee97, 0xb15978f2, 0x605f6427, 0x79f1d7bc, 0x261fb70e, | ||
6045 | 0x5e14fce5, 0x31bb462d, 0xa4d99d84, 0x41564dd8, 0x06644d79, 0x3ef2b75f, | ||
6046 | 0x30f3cb8d, 0xd2be776a, 0x83969b9d, 0x7bf249ef, 0x7d2cf601, 0x1da13ed0, | ||
6047 | 0xf23b2449, 0xf61e26a0, 0x60bcf255, 0x14af08dd, 0x802aaf2f, 0xfaad6cee, | ||
6048 | 0x2fca029e, 0x19ee9b99, 0x8575d742, 0x7f39997e, 0xd2f3e44b, 0xbcfc3d92, | ||
6049 | 0x9f8682f4, 0xf2bd832f, 0x3b5afda1, 0xf500aaa7, 0x72b8eeef, 0xdcb9e06d, | ||
6050 | 0xb35fc6d5, 0x5b5f1833, 0x30905551, 0x6c979e84, 0x8a3ed1d8, 0x1d17e10d, | ||
6051 | 0xd2f105d5, 0x7595cf95, 0xeb2bd05f, 0x1519a59c, 0x55a58f48, 0xae00a305, | ||
6052 | 0xf4b9f88d, 0xd0befbe0, 0xdfa1f3a2, 0xf9d2fa06, 0x575f8de9, 0x5c3f9d04, | ||
6053 | 0xe662bc6d, 0xe1c2f3a1, 0xcb0a1fd6, 0xcc69df04, 0x57e818a3, 0xe819e91d, | ||
6054 | 0x2f7cc04d, 0xb4fbfeca, 0x9e78a04a, 0x871aad15, 0xac7301f9, 0x6b7e871a, | ||
6055 | 0x0c0178b8, 0xdd1568e5, 0x8209ba49, 0x0eb0ae1e, 0xffa50f41, 0xbcfc191d, | ||
6056 | 0xaf5945e1, 0x7d2fcf46, 0x9fb420e6, 0x19456c96, 0x5c28a8c0, 0x8945e623, | ||
6057 | 0xda183c23, 0x7203be53, 0x036394ed, 0x5f7cab43, 0xbb522858, 0x586459ab, | ||
6058 | 0x8d12caa7, 0x57d80c9e, 0xf54edb21, 0x7798f37b, 0xa9791506, 0x3d7f7ebb, | ||
6059 | 0x4d7fcfb4, 0xd195bc9c, 0x37e50f7d, 0x330e9105, 0x5fb055c6, 0x4ef43f39, | ||
6060 | 0x7e701859, 0x37f647b7, 0xfc814433, 0x14525f40, 0x5dced39d, 0x503cbe5a, | ||
6061 | 0x10853b4e, 0x72fa79ba, 0xf5f1bf29, 0x6dd206e5, 0x15516bc9, 0xbcc80e74, | ||
6062 | 0xcc049653, 0xaf0672f3, 0x696af89f, 0xb8979d06, 0xd27bf32e, 0x27dbf17c, | ||
6063 | 0xd7588f31, 0x80af7906, 0x407ea7e3, 0x2f906675, 0x0dd09c62, 0xcc1ce9f9, | ||
6064 | 0x66cc1df5, 0x61387b43, 0xae7be514, 0x7ac30203, 0xae8b6733, 0x9d9bef06, | ||
6065 | 0x8c78ae9a, 0xbf34b673, 0xec3f45af, 0x569efc3a, 0x92abbcc2, 0x2637f5c9, | ||
6066 | 0x05d7d215, 0x5bbf40ec, 0x01f59cde, 0x93f2b5da, 0x5cb0d4fc, 0x3fdd1efd, | ||
6067 | 0xce14b9e2, 0x48d4da57, 0xcc658df7, 0xd65f7247, 0xf6ff9c10, 0x075d0e27, | ||
6068 | 0xa76cb2f4, 0xd3ee7c14, 0x225fcf3c, 0xb72f0ab2, 0xce9f148b, 0x73a04c4d, | ||
6069 | 0x38f7c1d8, 0xf7626d7d, 0xdb6e7843, 0x0558269b, 0xd237aa18, 0x26e309bd, | ||
6070 | 0xc73f2677, 0x85f57ded, 0x7ce86b29, 0xeb0533c4, 0x73e57ba4, 0xec8fb9fc, | ||
6071 | 0xeb018b50, 0xebcadb99, 0x59237a17, 0xbbe211d1, 0x23f20c63, 0x92ded52b, | ||
6072 | 0xb6967181, 0xf1eb9def, 0xaf8e59de, 0x57b1f743, 0x253e6fbe, 0xbacae9c7, | ||
6073 | 0xf32727e7, 0x21e618f3, 0xf3976a39, 0xda0a9b62, 0x4cd3ee03, 0x77528299, | ||
6074 | 0x046befc7, 0x9c3e8f7e, 0x17bd617e, 0xbd623bd6, 0x72fdc217, 0x7bd6245d, | ||
6075 | 0x5ca2fe21, 0x5ef58917, 0xbdeb1cf8, 0xeb926f10, 0x0bdeb122, 0x42f7ac71, | ||
6076 | 0x8bae5478, 0xa54b853c, 0xbfd2eef8, 0x3edb9e61, 0xfc721f10, 0x3e084c74, | ||
6077 | 0xe9ffb83a, 0x1f182118, 0x33ff502d, 0xcdfe9775, 0x1675839d, 0xf0dfd926, | ||
6078 | 0x9ce50b3a, 0xb670b3ab, 0xb1f20779, 0x3c24c275, 0x69266747, 0xb74bea04, | ||
6079 | 0x56ffe7cc, 0x1da02fdb, 0xe47d1160, 0x64c4e797, 0x78bb408f, 0xba62e4f2, | ||
6080 | 0xd38feb87, 0x93bc3e91, 0x7ec3e8ee, 0x9e6f98ae, 0xeb06cc3f, 0x265a66e6, | ||
6081 | 0xfc029a6f, 0xe4106998, 0x44fb7238, 0x059f72bb, 0xbadd99fc, 0xdb9a8a6a, | ||
6082 | 0x994e130b, 0xc6ad962f, 0xe925d771, 0xaa1e6327, 0x1dfc734b, 0x5fe855c7, | ||
6083 | 0x19ad7a30, 0x48d76fe7, 0xeabc601f, 0xf3cf13fe, 0xa501fa95, 0x33a927df, | ||
6084 | 0xdef099f5, 0x26fa4b5c, 0x2819ebcc, 0x4dbc8a1f, 0x3e501acb, 0x6128aa6c, | ||
6085 | 0x4933d923, 0x67d5fb8d, 0x92cefdf2, 0x4f80fdf8, 0x6063a92b, 0xcce45f7c, | ||
6086 | 0xdb77cc38, 0x949fbe65, 0xe64a7ef9, 0xcdd1d63b, 0x3a3af351, 0x87475884, | ||
6087 | 0x20ea10f0, 0xdd2fbfcc, 0x7149931e, 0xd20a5f72, 0x984ba95d, 0xedc67a87, | ||
6088 | 0xf5d20a4f, 0x27c72c90, 0x99d3fb64, 0xefe24f66, 0x54acf8f1, 0x96e81fae, | ||
6089 | 0x7d9473cf, 0xbe0def2a, 0xfb05e7cf, 0x6ffee12d, 0x5f645510, 0x5b38e543, | ||
6090 | 0x788efb96, 0xbd4abde3, 0x3739c608, 0x261fdc88, 0x41dffaab, 0x6f1c93bb, | ||
6091 | 0x90c23694, 0x78a3b3f9, 0x09bd36bf, 0xdb6f6c4d, 0xddce7437, 0x296190fb, | ||
6092 | 0x30314fbf, 0x3da11efc, 0xe04d4271, 0xe51fe979, 0x908fc079, 0x9a2cba5e, | ||
6093 | 0x3923f61f, 0x423f01c6, 0x144e66f9, 0x9bf923dd, 0xa4fca2bf, 0x09aa75b7, | ||
6094 | 0xe1dfd4e5, 0x715fa031, 0xc4ffe3fd, 0xb7f0bfa3, 0x6cf5417e, 0xa4bf6ffe, | ||
6095 | 0x722db73a, 0xcdebe1bd, 0x87589d72, 0xbde7c464, 0x60159f85, 0x1c32adbf, | ||
6096 | 0x3cfc23b4, 0x686f814f, 0x681de66c, 0x51509ecf, 0x8dd8a2fe, 0x98597d50, | ||
6097 | 0xf78e5239, 0x676831ec, 0xc4ec5f40, 0x597d01b7, 0xc1798316, 0x12917da0, | ||
6098 | 0x132ea87e, 0xcd598bed, 0xb4420bed, 0xb733662f, 0x7da3882f, 0x05f68841, | ||
6099 | 0x417da39f, 0xe20bed1c, 0x47105f68, 0xed1082fb, 0xebff3e0b, 0xd3a75e52, | ||
6100 | 0x3f29810b, 0x5c5035c7, 0x7f8ebebf, 0x8dbeb27f, 0xafaddbdf, 0xac0ea816, | ||
6101 | 0x94dfe607, 0x509d4439, 0xe4275c93, 0xa2f741dd, 0x15a2c3ae, 0xd6017859, | ||
6102 | 0x6dcf09bd, 0xd0277d35, 0x051ab82f, 0xcf84956b, 0xb63ad297, 0x60fd4eb4, | ||
6103 | 0xd3af3e39, 0x2fe85558, 0xa3c72f5a, 0xad692bdf, 0x2735ff23, 0xbfcb4da1, | ||
6104 | 0x9e181197, 0x71d12f1f, 0xe11728fd, 0x3fba24e9, 0xae5ffb26, 0xad73a0eb, | ||
6105 | 0x0a417ad2, 0x35c08efc, 0x7fc512fd, 0xf2b9fdca, 0x57b94bdd, 0xca0ead2f, | ||
6106 | 0x6ebc6c9f, 0x4aff718b, 0x9e406579, 0xc3277cab, 0x74d56fc4, 0xc08afe3f, | ||
6107 | 0xd7ab8562, 0x36b49573, 0xaffac66e, 0xb4767bd0, 0x16d75424, 0x44febf72, | ||
6108 | 0x95d75ca6, 0x6f30f2c7, 0xf5627c2e, 0x5f30c381, 0xe51d76ff, 0x774f609d, | ||
6109 | 0x409efea1, 0x9cba0439, 0xb9d3d368, 0xb23be7db, 0xde1f1046, 0xf6489914, | ||
6110 | 0xb7d90c72, 0xf2811a75, 0x3597b031, 0xc2ecdef8, 0xceaec8bb, 0xfc8abb06, | ||
6111 | 0x93eee454, 0xca2d7b54, 0x1209bae7, 0x1d7cb9f9, 0x93c697bb, 0x9200c5eb, | ||
6112 | 0x146fe5de, 0x57c02a3c, 0x2f7d2b31, 0x86c812b4, 0xc6af50f1, 0x75d608f0, | ||
6113 | 0xaebc64ad, 0x75a39143, 0x8eef943b, 0x577d10c6, 0xd95cf4c8, 0xb06fc7fa, | ||
6114 | 0x1d2ee36e, 0x56490f3f, 0xe4803af1, 0xe7bebcad, 0xf5e0e66e, 0x8b4d9872, | ||
6115 | 0xdabd2f94, 0x511dcf05, 0x79f85263, 0xe380948f, 0xa1a53aaf, 0x84fce33a, | ||
6116 | 0x8a0e9905, 0xfd50e64f, 0x43bbe086, 0x1f9afefc, 0xeb83878a, 0xec684e37, | ||
6117 | 0x3b573df4, 0x73d925ca, 0x9553c107, 0xbb150445, 0xf63fd4ad, 0x88dcbdb6, | ||
6118 | 0x0cbbe7f3, 0x62b7a456, 0x83a8ae07, 0xa950e48c, 0x100b1c83, 0xc0cc0aeb, | ||
6119 | 0xda0c5363, 0x44ec8967, 0xb273aab2, 0x1bfffb84, 0x3f200eff, 0xe30f2da1, | ||
6120 | 0xfc7974a6, 0x43fd92d3, 0x9a2d9fe4, 0xbc3df1b9, 0xf40eda4f, 0x080dc02c, | ||
6121 | 0x6d7b2f18, 0x6dbfc622, 0x1a46a982, 0x78ee8eca, 0x5c97eb08, 0x7184c166, | ||
6122 | 0xf6e44159, 0xbf1878fc, 0x8ad52d20, 0xccd5dc76, 0x403f2de3, 0x3debf7ce, | ||
6123 | 0x55dfc0a2, 0xce9c63c7, 0xea9596f9, 0x351ccee8, 0xacbe7cf8, 0x5fadbd4f, | ||
6124 | 0xabe3faf1, 0x38b563c7, 0xade99bbe, 0xc8f8f275, 0x8cd7f9f7, 0x914cb8a5, | ||
6125 | 0x8486fe9b, 0xef9b941a, 0x7cbbff65, 0xcc1a7bf9, 0x1cd33b03, 0xaff38dff, | ||
6126 | 0xa1e97d58, 0xd0e7da78, 0xd3a9507e, 0x4a83f50f, 0xabfff37c, 0xcaedff3e, | ||
6127 | 0x54ef820a, 0x51d8206e, 0x51f6a6e9, 0x735cfc59, 0xfc0ab8b8, 0x10d65c43, | ||
6128 | 0xbf4294f1, 0xe4aae221, 0xae3ca9ac, 0x89473cc2, 0xa388aeab, 0x0155df40, | ||
6129 | 0x75bb3efa, 0x608f9de4, 0x6b53b3dc, 0xeb0090c5, 0xc81bd7a8, 0x4d64643e, | ||
6130 | 0x529e2a1d, 0xf8a069e8, 0x27e99fab, 0x2cb3fce1, 0x1fbc6ae9, 0x0425989f, | ||
6131 | 0x3fa80be5, 0x1fd46fb8, 0xea3fa884, 0x39e7b880, 0x14f6a82d, 0x29b82f1e, | ||
6132 | 0xbf13d05e, 0x5d815737, 0x662efc01, 0x3d2bb20a, 0x31857621, 0x1d70affb, | ||
6133 | 0x9d795a6b, 0x3a5f5297, 0x93d7c00b, 0x5e33b086, 0x46c6676e, 0x3ce1f77a, | ||
6134 | 0x54919d63, 0xc3427caf, 0x16c4eee5, 0x9ab82f5e, 0x8ff7f9d9, 0x689bda57, | ||
6135 | 0xb15defa4, 0x01fc9f7d, 0xa8f5dffa, 0xcd9ee281, 0xfda66b49, 0xf8cdec4f, | ||
6136 | 0x7f0f4e2c, 0xe7de6fa5, 0x22731f20, 0x905cf7f9, 0xee2859bb, 0x7e924555, | ||
6137 | 0x8ed97e40, 0x6bac57df, 0x8ed0f211, 0x77d9d1cf, 0x6a9d3ae1, 0x27167ebe, | ||
6138 | 0x3baa27df, 0xbf42f78a, 0x2b64f8ce, 0x1263cfe6, 0xffac308f, 0xe61577ca, | ||
6139 | 0x64ecbda0, 0xbf7be9db, 0x5dc73a8d, 0x39c5e7c8, 0x7b9d0215, 0x5897faca, | ||
6140 | 0x95b35518, 0x153591f8, 0x2708bef9, 0xe6e473a3, 0x2e8f98c5, 0xf1c10a8a, | ||
6141 | 0x8dce8b1e, 0x6c78e55f, 0xd2827b48, 0x1cc9e32e, 0x2f356777, 0xd2e573c6, | ||
6142 | 0xf3e9bd7a, 0x91cffaa0, 0x39abb841, 0x6079f4c9, 0x03fe2a7d, 0x822daecf, | ||
6143 | 0x93dc059a, 0x078e0837, 0x85e53f70, 0x2e39f917, 0x5abf23eb, 0x7d112595, | ||
6144 | 0x7ccebd47, 0x737dff28, 0x902e748d, 0x87915b10, 0x472c09e7, 0x52fd8a9a, | ||
6145 | 0x17147d34, 0x96ab7ef6, 0x8be8b3bf, 0xef202dbe, 0x7f95be7f, 0xcfca117f, | ||
6146 | 0x7b970b3c, 0x0db0d997, 0x8c4ce6f9, 0x7ad82088, 0xa616e289, 0xdef19bb6, | ||
6147 | 0x3a0af214, 0x3f7d08b7, 0xb7efc2dd, 0x656b3753, 0x90ff813a, 0x8e337ae4, | ||
6148 | 0xc674d9bb, 0x948befaa, 0x266ccae9, 0x866d3ff8, 0xfcffc64a, 0x0113e638, | ||
6149 | 0x7fd86dfd, 0x6b5f9db0, 0xf77bef2b, 0x26f8fbbe, 0xca1f3cb3, 0xf1461ad7, | ||
6150 | 0xa0f7e873, 0x06625a9f, 0x2e5033ea, 0x53d38b9e, 0xf7583f9e, 0x6ba0ebcf, | ||
6151 | 0x7f3d72f5, 0xf83fbd68, 0x8ae7f43b, 0x725f7b9f, 0x52bf1d50, 0xf9d4aff7, | ||
6152 | 0xcd2f3127, 0xe027b4a7, 0xda88baed, 0x3847a1db, 0x2193f303, 0x659376e8, | ||
6153 | 0x91647fe6, 0x17d9b8de, 0xfee7c1ea, 0x810de8a8, 0xe486727c, 0x66593737, | ||
6154 | 0xfbca7bd1, 0xb1661be5, 0x26e3262f, 0xaccc38e5, 0x14e7ff22, 0xd9021bd9, | ||
6155 | 0xa28f5e11, 0xec1a77bc, 0x9ff7ce3c, 0x7e11f760, 0x0bfef608, 0xc19fe7a0, | ||
6156 | 0x08fc21de, 0xff3e1dec, 0xc21dec04, 0xf803f02e, 0x03f053fc, 0x61dc9708, | ||
6157 | 0xe57a829c, 0x5f62ae6a, 0x3b3dd704, 0xd3bfe302, 0x97968733, 0x9e2a598b, | ||
6158 | 0xdd0ea5bf, 0xe9e596ae, 0x6f9c8df4, 0x4f3377bd, 0xdfc92a4d, 0x86178c26, | ||
6159 | 0xd7b7eefb, 0x5afbedc8, 0x37bc1cf9, 0xb2e7e389, 0x473cfc34, 0xf7c69ec5, | ||
6160 | 0x3af066d7, 0x2b8ec539, 0x1fc82af9, 0x63acaf8d, 0x29d79c9c, 0x55663cfd, | ||
6161 | 0x0a48f7d0, 0xfde1639c, 0x5f313e48, 0x0d4c7947, 0x44a74f90, 0x172a19f2, | ||
6162 | 0x1d385a9f, 0x772e3acc, 0xa09768c9, 0x9e82727f, 0xe361c6e2, 0x51ef90b0, | ||
6163 | 0x394f90ae, 0x32c64b1e, 0xf3e1988f, 0xf7aca363, 0x7e3f3a3f, 0x943150d8, | ||
6164 | 0x3ff998fd, 0x3e80ffdd, 0x8affef06, 0x8e876b7d, 0xf7db873f, 0xca2bbd40, | ||
6165 | 0xc1f610cf, 0xb81f603a, 0xb164dcfc, 0x1d4cb78d, 0x05483bfe, 0xebe0cdae, | ||
6166 | 0x6a83e456, 0xc5ee3094, 0xee0fa57d, 0x91fd6067, 0xcb5bfb21, 0x94225ee8, | ||
6167 | 0x13df018f, 0x05fafb29, 0x1ba147ae, 0xa38a3e58, 0xa81994c7, 0xc590fbce, | ||
6168 | 0x4769efc4, 0x0762b97d, 0xf645feb4, 0xf1507f13, 0x6ec51a7a, 0xc4173c0f, | ||
6169 | 0x82730b95, 0x513339ec, 0xfd23ad9c, 0x7bbc41f2, 0x4f7830d0, 0xb7f7eca9, | ||
6170 | 0xcbf63eb2, 0x6fffb5f9, 0x8ff65f3c, 0x73dfa3ee, 0xefcd3ff0, 0x9bc460d1, | ||
6171 | 0x6eee0eb1, 0xcc253bf9, 0x9e5ad5af, 0xcf21ab37, 0x7d2f7bf6, 0xae01f782, | ||
6172 | 0xaa3c4467, 0x9733e262, 0xd3fc5097, 0x7e6131a6, 0xc7e9f1be, 0x9dbca24f, | ||
6173 | 0x7424126d, 0xd826fed9, 0x3ba7e636, 0xf43d1e8d, 0xe7e2682f, 0x45eb6b27, | ||
6174 | 0xfcff048f, 0x696efe42, 0xfa1a33f6, 0x234d699e, 0xfe3977af, 0x6bca7af4, | ||
6175 | 0xcf207acf, 0xc40b7186, 0xbcf1da07, 0xfe39e4be, 0xfb2512bb, 0x1efc5adc, | ||
6176 | 0xa05aa4af, 0x97c9537c, 0xaf75e4cb, 0x6c7909d9, 0x30483dd0, 0x14bccc5e, | ||
6177 | 0x06d4955f, 0x086b2f3f, 0xb5ef7fce, 0x94d77c0c, 0xf9c8ebc7, 0x3f62acbd, | ||
6178 | 0xdcab8caf, 0xfac1a7c4, 0xe3c6bfeb, 0x76d8be79, 0x0353e539, 0xf8ca17c7, | ||
6179 | 0xca2fc019, 0xfacaf6e7, 0x62e8fc95, 0x85e29b12, 0x2e313afd, 0x50efe495, | ||
6180 | 0xc8aedf81, 0x1f485bae, 0x8c268a8f, 0x8b34b6b3, 0x7967a46e, 0x7d377eab, | ||
6181 | 0xf4e78537, 0x3df3a446, 0xc26ff7e4, 0x273c267b, 0x83b67c84, 0xce83a6e4, | ||
6182 | 0x6fad99e5, 0xb697dd0d, 0x4fe84de8, 0x683f479d, 0xfd06efc7, 0x57860587, | ||
6183 | 0x7cefcaf8, 0xd78679ac, 0xcddfc199, 0x229afdf8, 0x5f006217, 0x436bef91, | ||
6184 | 0xc33e2af8, 0x8d35f3f3, 0xdedf2823, 0xf568b4f8, 0x39785ca1, 0x17be157f, | ||
6185 | 0x3ce8db88, 0x7c48f805, 0xdd4cfd9e, 0x07289193, 0x05fdf8fb, 0xfdf101c8, | ||
6186 | 0x77ce2eec, 0xc443db6d, 0x2cb57f77, 0xf7fc2d07, 0xf8ea4a49, 0x17e81079, | ||
6187 | 0xf1abc9f9, 0x5f7c6aff, 0x7c83db20, 0x3889c671, 0xe5ef778c, 0xe988adf3, | ||
6188 | 0x9a07bf2e, 0x20bb993e, 0x7975f515, 0x26c6eee1, 0x07891980, 0xce621999, | ||
6189 | 0x51db3a53, 0x5cb9e04b, 0x79d79e9b, 0xca045103, 0x4bfae433, 0x53dd4ce9, | ||
6190 | 0x5e47af68, 0xfe31f143, 0xf79c0445, 0x60cf3f00, 0xb23bd09e, 0xd8cbc0fb, | ||
6191 | 0x7e8e946f, 0x55bca58f, 0xa2e5d3e7, 0x9bf2e45f, 0x715bedaf, 0xafddc60f, | ||
6192 | 0x433ee8ea, 0x45dff1b0, 0xe3fd6d28, 0xc84f7887, 0x416df29a, 0xff209bbf, | ||
6193 | 0xfe2941ae, 0x37b602ae, 0xe8067a68, 0x3fa6ed80, 0x165d7bd1, 0x9e92875e, | ||
6194 | 0x71848370, 0xcc65c6ec, 0x943e9911, 0xe764679d, 0x8729ef95, 0x3986c38d, | ||
6195 | 0x2fe2506f, 0x12331ee6, 0x7df94cf5, 0xad0ec505, 0x3c5bbf95, 0x7529df71, | ||
6196 | 0x96afd22c, 0x714c8eff, 0x389fd82b, 0x7922df3a, 0x38aee73b, 0xbf9782a2, | ||
6197 | 0x468ab944, 0x0e68fab9, 0xc7db2ff6, 0x3c0683fb, 0xdf871919, 0x4f286b29, | ||
6198 | 0x7937d01b, 0xa3df867c, 0x05f3bb40, 0x0ea6c581, 0xab6a2f61, 0x421e8f37, | ||
6199 | 0x2e214a6e, 0xca8745c3, 0xb829b38f, 0x768377df, 0xf8f7c264, 0x9726567d, | ||
6200 | 0x662cf72f, 0x0d5ffdc1, 0x40d8f92a, 0x947e067e, 0x19e660ea, 0xc972df29, | ||
6201 | 0xd5ced2e7, 0x51273a26, 0xed538dfc, 0xf299b33d, 0x43972332, 0x63dfa335, | ||
6202 | 0xb68d54e9, 0xef380d6e, 0x4e979ce8, 0x6fc59fdf, 0xdc70faf4, 0xb58205be, | ||
6203 | 0x44e69a06, 0x5f2efcf1, 0x0bdb2f65, 0xb8a86fed, 0xf30e7ddf, 0x17fd1137, | ||
6204 | 0xff419397, 0x93cfcfc6, 0x7f3c8d0b, 0x9adca8f3, 0xa61df489, 0xdd94eb1b, | ||
6205 | 0x2bd52d76, 0x1d291ced, 0x677c0268, 0xefd90e71, 0x73f1df23, 0x5a65bef4, | ||
6206 | 0xf33bf3f2, 0xae51cbec, 0x4f1b2e77, 0xd208afed, 0xe33f7863, 0x7da48e2e, | ||
6207 | 0xcfc85cec, 0x4c2e771b, 0x5967f6a4, 0xdf1a955f, 0xd9fbe6ab, 0x3a04d8f9, | ||
6208 | 0x39d38dff, 0xbef1b372, 0xd8c7be58, 0xc24b6a99, 0x0527d37a, 0x71bbb2fb, | ||
6209 | 0x1a0609bc, 0xe24590ef, 0xc6cb12f7, 0xe907b63f, 0x8a9a4634, 0x7e0fdb76, | ||
6210 | 0x7ff00def, 0x4dd86c7f, 0xf71732f5, 0xc705b99f, 0xe4057d2f, 0x37f7c60f, | ||
6211 | 0xebbe8318, 0x66efbe57, 0xc5b4df6a, 0xb0bf40c6, 0xbcb5d791, 0xeaf6e464, | ||
6212 | 0x3373cea0, 0xe4725fbc, 0xebb45cb3, 0xdafb07fe, 0xdaee3193, 0x243af02f, | ||
6213 | 0xde2e5777, 0x87a89647, 0xce6faf8e, 0x4f4bf1e6, 0x8c52d44b, 0x63fa84e7, | ||
6214 | 0xe252df54, 0xe7435dbd, 0xd9bf7254, 0x866e3cd9, 0xed1f747e, 0xdfc827de, | ||
6215 | 0x05a6f8bb, 0x752b5bde, 0xb8fb3dcd, 0x6b34951c, 0x92e47be8, 0x51ff46fa, | ||
6216 | 0x59d43fc4, 0xf55d7c51, 0x783ee897, 0xe8074bf6, 0x3fef02de, 0x473a08de, | ||
6217 | 0x3b39dfe6, 0xaae63b65, 0x395ec917, 0x77f9ca9b, 0x19e2f55f, 0xd28fbdc2, | ||
6218 | 0xf15d34ef, 0x27731d5d, 0x5f4912ab, 0x29e6b193, 0xa5f4bdb4, 0x206e23b6, | ||
6219 | 0xbda1e961, 0x2ee7e8d1, 0x2345d474, 0x55dc61dd, 0x5e7c11da, 0x2b883dfc, | ||
6220 | 0x7d05b5c7, 0x6ef2e69f, 0x02ebc4b9, 0x845fc8bb, 0xff80bff6, 0x6f7f3f00, | ||
6221 | 0xd91dfcb6, 0xf25aecb5, 0x14b1f5ff, 0xa6fac157, 0x13b77e05, 0x0f4bffea, | ||
6222 | 0x0dde7e5c, 0xbb073ded, 0x96f5c79f, 0xd515f77d, 0xf557b123, 0xdae6b754, | ||
6223 | 0x73f93eff, 0xcd7fbde5, 0x7fa871e6, 0x583ddedf, 0x2fffea97, 0xf347159d, | ||
6224 | 0x22997db7, 0xe36839e1, 0xf10f7437, 0xfa7cb69b, 0x8737e6de, 0xd0fc2767, | ||
6225 | 0xb7281177, 0x75c0cc9e, 0x92bf8879, 0xac503bfc, 0xfc218655, 0x3c74de3a, | ||
6226 | 0x1179d705, 0xba754df8, 0x72f73f12, 0xbee9cb7a, 0x8007f101, 0x8786cebe, | ||
6227 | 0xb8ffa12f, 0x4d9cff1a, 0x61bd6f8b, 0x2b43d90a, 0xf58b95aa, 0xe87ffdd1, | ||
6228 | 0xfb7c037b, 0xc4e3e04f, 0x86bfc11f, 0x70ff342d, 0xff88bbfc, 0x081d3e00, | ||
6229 | 0xa6e5dfe1, 0xeb1dffbb, 0x6c535968, 0x8128f7d0, 0x08fdf374, 0x7c0915ba, | ||
6230 | 0xdb66dffc, 0xf4bed19a, 0x0f617c1c, 0xdf2309d6, 0x2eb0966e, 0x330a72ed, | ||
6231 | 0x7d30f7e2, 0x697f282b, 0xaed099d3, 0x407db495, 0xeb97e3fa, 0x80cfe029, | ||
6232 | 0x06cfce7e, 0x2fc83afe, 0x55d9b6c9, 0xa2e9f46b, 0xf4efe907, 0xa2942c2c, | ||
6233 | 0x7a19f9e9, 0x8c72e1ee, 0x2ddfc3f4, 0xdd8e7a73, 0x97c10c26, 0x9e34ecde, | ||
6234 | 0xd1467927, 0xff6bcbbe, 0x00c0e3c2, 0x91d3097e, 0x6e28674f, 0x0a4f8e1c, | ||
6235 | 0xeff24c1d, 0xadf00d88, 0x685feb96, 0x87f0177f, 0x7e653fee, 0xf7f0ff21, | ||
6236 | 0xceb85cd4, 0x20cf8e68, 0x0d80f85c, 0xd5fc0f61, 0xfce3ca3a, 0x83c9f721, | ||
6237 | 0xd79079fc, 0xa9ea855d, 0xf4e1cfbc, 0xabd3d143, 0xd2a7ffad, 0x52d92fe7, | ||
6238 | 0x7428bc90, 0x6876f9ea, 0xcf1c6e3b, 0x9f67fef5, 0x3504da3f, 0x7f3a0f8b, | ||
6239 | 0xf3c78c34, 0x4133a6c7, 0x7eca8fe7, 0xda73e47b, 0xf922fd9e, 0xeff2cdc7, | ||
6240 | 0x0bda84ac, 0xd0983be5, 0xd7938ef5, 0x7f7f94eb, 0xd1a0e7a1, 0x7a718063, | ||
6241 | 0x79216f5e, 0xd19c3676, 0x7b6a79e2, 0x9efa21fd, 0xf41fd14e, 0xf5809e13, | ||
6242 | 0x2c78bcf7, 0xce36ec97, 0x275f0433, 0x33cf978c, 0xc79e875b, 0x682970d5, | ||
6243 | 0x57b7529e, 0x57ab754b, 0xda82ef99, 0x778e3b76, 0x7eff83a1, 0xd0ef05e1, | ||
6244 | 0xf1a6a9e7, 0x615cf91a, 0x2fe0873b, 0xbcfe01ed, 0x1b4db053, 0xc30c2a3f, | ||
6245 | 0x30c30c30, 0x0c30c30c, 0xc30c30c3, 0x30c30c30, 0x0c30c30c, 0xc30c30c3, | ||
6246 | 0x30c30c30, 0x0c30c30c, 0xc30c30c3, 0x30c30c30, 0x0c30c30c, 0xc30c30c3, | ||
6247 | 0x30c30c30, 0x0c30c30c, 0xc30c30c3, 0x30c30c30, 0xc1b7ff0c, 0x8dca0bff, | ||
6248 | 0x8000e737, 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, 0x20000131, | ||
6249 | 0x22b0030c, 0xb0131302, 0x14e7ff1b, 0x93c9084d, 0x26ebaf39, 0x6db6db63, | ||
6250 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
6251 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xf6db6db6, 0x10192fc7, | ||
6252 | 0x8000dcb1, 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, 0x20000131, | ||
6253 | 0x22b0030c, 0xb0131302, 0x14e7ff1b, 0x93c9084d, 0x26ebaf39, 0x6db6db63, | ||
6254 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
6255 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xf6db6db6, 0x10192fc7, | ||
6256 | 0x8000dcb1, 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, 0x20000131, | ||
6257 | 0x22b0030c, 0xb0131302, 0x14e7ff1b, 0x93c9084d, 0x26ebaf39, 0x6db6db63, | ||
6258 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
6259 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xf6db6db6, 0x10192fc7, | ||
6260 | 0x8000dcb1, 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, 0x20000131, | ||
6261 | 0x22b0030c, 0xb0131302, 0x14e7ff1b, 0x93c9084d, 0x26ebaf39, 0x6db6db63, | ||
6262 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
6263 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xf6db6db6, 0x10192fc7, | ||
6264 | 0x8000dcb1, 0x00008000, 0x00088b1f, 0x00000000, 0xc5edff00, 0x20000131, | ||
6265 | 0x22b0030c, 0xb0131302, 0x14e7ff1b, 0x93c9084d, 0x26ebaf39, 0x6db6db63, | ||
6266 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, | ||
6267 | 0xdb6db6db, 0xb6db6db6, 0x6db6db6d, 0xdb6db6db, 0xf6db6db6, 0x10192fc7, | ||
6268 | 0x8000dcb1, 0x00008000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, | ||
6269 | 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, | ||
6270 | 0xffffffff, 0x00100000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff, | ||
6271 | 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, | ||
6272 | 0xffffffff, 0xffffffff, 0x00100000, 0x00000000, 0xfffffff3, 0x314fffff, | ||
6273 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, 0x0000cf3c, 0xcdcdcdcd, | ||
6274 | 0xfffffff1, 0x30efffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, | ||
6275 | 0x0001cf3c, 0xcdcdcdcd, 0xfffffff6, 0x305fffff, 0x0c30c30c, 0xc30c30c3, | ||
6276 | 0xcf3cf300, 0xf3cf3cf3, 0x0002cf3c, 0xcdcdcdcd, 0xfffff406, 0x1cbfffff, | ||
6277 | 0x0c30c305, 0xc30c30c3, 0xcf300014, 0xf3cf3cf3, 0x0004cf3c, 0xcdcdcdcd, | ||
6278 | 0xfffffff2, 0x304fffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, | ||
6279 | 0x0008cf3c, 0xcdcdcdcd, 0xfffffffa, 0x302fffff, 0x0c30c30c, 0xc30c30c3, | ||
6280 | 0xcf3cf300, 0xf3cf3cf3, 0x0010cf3c, 0xcdcdcdcd, 0xfffffff7, 0x31efffff, | ||
6281 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, 0x0020cf3c, 0xcdcdcdcd, | ||
6282 | 0xfffffff5, 0x302fffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, | ||
6283 | 0x0040cf3c, 0xcdcdcdcd, 0xfffffff3, 0x310fffff, 0x0c30c30c, 0xc30c30c3, | ||
6284 | 0xcf3cf300, 0xf3cf3cf3, 0x0000cf3c, 0xcdcdcdcd, 0xfffffff1, 0x310fffff, | ||
6285 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, 0x0001cf3c, 0xcdcdcdcd, | ||
6286 | 0xfffffff6, 0x305fffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, | ||
6287 | 0x0002cf3c, 0xcdcdcdcd, 0xfffff406, 0x1cbfffff, 0x0c30c305, 0xc30c30c3, | ||
6288 | 0xcf300014, 0xf3cf3cf3, 0x0004cf3c, 0xcdcdcdcd, 0xfffffff2, 0x304fffff, | ||
6289 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, 0x0008cf3c, 0xcdcdcdcd, | ||
6290 | 0xfffffffa, 0x302fffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, | ||
6291 | 0x0010cf3c, 0xcdcdcdcd, 0xfffffff7, 0x30efffff, 0x0c30c30c, 0xc30c30c3, | ||
6292 | 0xcf3cf300, 0xf3cf3cf3, 0x0020cf3c, 0xcdcdcdcd, 0xfffffff5, 0x304fffff, | ||
6293 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, 0x0040cf3c, 0xcdcdcdcd, | ||
6294 | 0xfffffff3, 0x31efffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, | ||
6295 | 0x0000cf3c, 0xcdcdcdcd, 0xfffffff1, 0x310fffff, 0x0c30c30c, 0xc30c30c3, | ||
6296 | 0xcf3cf300, 0xf3cf3cf3, 0x0001cf3c, 0xcdcdcdcd, 0xfffffff6, 0x305fffff, | ||
6297 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, 0x0002cf3c, 0xcdcdcdcd, | ||
6298 | 0xfffff406, 0x1cbfffff, 0x0c30c305, 0xc30c30c3, 0xcf300014, 0xf3cf3cf3, | ||
6299 | 0x0004cf3c, 0xcdcdcdcd, 0xfffffff2, 0x304fffff, 0x0c30c30c, 0xc30c30c3, | ||
6300 | 0xcf3cf300, 0xf3cf3cf3, 0x0008cf3c, 0xcdcdcdcd, 0xfffffffa, 0x302fffff, | ||
6301 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, 0x0010cf3c, 0xcdcdcdcd, | ||
6302 | 0xffffff97, 0x056fffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cc000, 0xf3cf3cf3, | ||
6303 | 0x0020cf3c, 0xcdcdcdcd, 0xfffffff5, 0x310fffff, 0x0c30c30c, 0xc30c30c3, | ||
6304 | 0xcf3cf300, 0xf3cf3cf3, 0x0040cf3c, 0xcdcdcdcd, 0xfffffff3, 0x320fffff, | ||
6305 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, 0x0000cf3c, 0xcdcdcdcd, | ||
6306 | 0xfffffff1, 0x310fffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, | ||
6307 | 0x0001cf3c, 0xcdcdcdcd, 0xfffffff6, 0x305fffff, 0x0c30c30c, 0xc30c30c3, | ||
6308 | 0xcf3cf300, 0xf3cf3cf3, 0x0002cf3c, 0xcdcdcdcd, 0xfffff406, 0x1cbfffff, | ||
6309 | 0x0c30c305, 0xc30c30c3, 0xcf300014, 0xf3cf3cf3, 0x0004cf3c, 0xcdcdcdcd, | ||
6310 | 0xfffffff2, 0x304fffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, | ||
6311 | 0x0008cf3c, 0xcdcdcdcd, 0xffffff8a, 0x042fffff, 0x0c30c30c, 0xc30c30c3, | ||
6312 | 0xcf3cc000, 0xf3cf3cf3, 0x0010cf3c, 0xcdcdcdcd, 0xffffff97, 0x05cfffff, | ||
6313 | 0x0c30c30c, 0xc30c30c3, 0xcf3cc000, 0xf3cf3cf3, 0x0020cf3c, 0xcdcdcdcd, | ||
6314 | 0xfffffff5, 0x310fffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf300, 0xf3cf3cf3, | ||
6315 | 0x0040cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, | ||
6316 | 0xcf3cf3cc, 0xf3cf3cf3, 0x0000cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, | ||
6317 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, 0x0001cf3c, 0xcdcdcdcd, | ||
6318 | 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, | ||
6319 | 0x0002cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, | ||
6320 | 0xcf3cf3cc, 0xf3cf3cf3, 0x0004cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, | ||
6321 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, 0x0008cf3c, 0xcdcdcdcd, | ||
6322 | 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, | ||
6323 | 0x0010cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, | ||
6324 | 0xcf3cf3cc, 0xf3cf3cf3, 0x0020cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, | ||
6325 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, 0x0040cf3c, 0xcdcdcdcd, | ||
6326 | 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, | ||
6327 | 0x0000cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, | ||
6328 | 0xcf3cf3cc, 0xf3cf3cf3, 0x0001cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, | ||
6329 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, 0x0002cf3c, 0xcdcdcdcd, | ||
6330 | 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, | ||
6331 | 0x0004cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, | ||
6332 | 0xcf3cf3cc, 0xf3cf3cf3, 0x0008cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, | ||
6333 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, 0x0010cf3c, 0xcdcdcdcd, | ||
6334 | 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, | ||
6335 | 0x0020cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, | ||
6336 | 0xcf3cf3cc, 0xf3cf3cf3, 0x0040cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, | ||
6337 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, 0x0000cf3c, 0xcdcdcdcd, | ||
6338 | 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, | ||
6339 | 0x0001cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, | ||
6340 | 0xcf3cf3cc, 0xf3cf3cf3, 0x0002cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, | ||
6341 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, 0x0004cf3c, 0xcdcdcdcd, | ||
6342 | 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, | ||
6343 | 0x0008cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, | ||
6344 | 0xcf3cf3cc, 0xf3cf3cf3, 0x0010cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, | ||
6345 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, 0x0020cf3c, 0xcdcdcdcd, | ||
6346 | 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, | ||
6347 | 0x0040cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, | ||
6348 | 0xcf3cf3cc, 0xf3cf3cf3, 0x0000cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, | ||
6349 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, 0x0001cf3c, 0xcdcdcdcd, | ||
6350 | 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, | ||
6351 | 0x0002cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, | ||
6352 | 0xcf3cf3cc, 0xf3cf3cf3, 0x0004cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, | ||
6353 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, 0x0008cf3c, 0xcdcdcdcd, | ||
6354 | 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, | ||
6355 | 0x0010cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, 0x0c30c30c, 0xc30c30c3, | ||
6356 | 0xcf3cf3cc, 0xf3cf3cf3, 0x0020cf3c, 0xcdcdcdcd, 0xffffffff, 0x30cfffff, | ||
6357 | 0x0c30c30c, 0xc30c30c3, 0xcf3cf3cc, 0xf3cf3cf3, 0x0040cf3c, 0xcdcdcdcd, | ||
6358 | 0x000a0000, 0x000700a0, 0x00028110, 0x000b8138, 0x000201f0, 0x00010210, | ||
6359 | 0x000f0220, 0x00010310, 0x00080000, 0x00080080, 0x00028100, 0x000b8128, | ||
6360 | 0x000201e0, 0x00010200, 0x00070210, 0x00020280, 0x000f0000, 0x000800f0, | ||
6361 | 0x00028170, 0x000b8198, 0x00020250, 0x00010270, 0x000b8280, 0x00080338, | ||
6362 | 0x00100000, 0x00080100, 0x00028180, 0x000b81a8, 0x00020260, 0x00018280, | ||
6363 | 0x000e8298, 0x00080380, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, | ||
6364 | 0x00002000, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0x00002000, | ||
6365 | 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0x00002000 | ||
6366 | }; | ||
6367 | |||
6368 | #endif /*__BNX2X_INIT_VALUES_H__*/ | ||
diff --git a/drivers/net/bnx2x_reg.h b/drivers/net/bnx2x_reg.h new file mode 100644 index 000000000000..86055297ab02 --- /dev/null +++ b/drivers/net/bnx2x_reg.h | |||
@@ -0,0 +1,4394 @@ | |||
1 | /* bnx2x_reg.h: Broadcom Everest network driver. | ||
2 | * | ||
3 | * Copyright (c) 2007 Broadcom Corporation | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation. | ||
8 | * | ||
9 | * The registers description starts with the regsister Access type followed | ||
10 | * by size in bits. For example [RW 32]. The access types are: | ||
11 | * R - Read only | ||
12 | * RC - Clear on read | ||
13 | * RW - Read/Write | ||
14 | * ST - Statistics register (clear on read) | ||
15 | * W - Write only | ||
16 | * WB - Wide bus register - the size is over 32 bits and it should be | ||
17 | * read/write in consecutive 32 bits accesses | ||
18 | * WR - Write Clear (write 1 to clear the bit) | ||
19 | * | ||
20 | */ | ||
21 | |||
22 | |||
23 | /* [R 19] Interrupt register #0 read */ | ||
24 | #define BRB1_REG_BRB1_INT_STS 0x6011c | ||
25 | /* [RW 4] Parity mask register #0 read/write */ | ||
26 | #define BRB1_REG_BRB1_PRTY_MASK 0x60138 | ||
27 | /* [RW 10] At address BRB1_IND_FREE_LIST_PRS_CRDT initialize free head. At | ||
28 | address BRB1_IND_FREE_LIST_PRS_CRDT+1 initialize free tail. At address | ||
29 | BRB1_IND_FREE_LIST_PRS_CRDT+2 initialize parser initial credit. */ | ||
30 | #define BRB1_REG_FREE_LIST_PRS_CRDT 0x60200 | ||
31 | /* [RW 23] LL RAM data. */ | ||
32 | #define BRB1_REG_LL_RAM 0x61000 | ||
33 | /* [R 24] The number of full blocks. */ | ||
34 | #define BRB1_REG_NUM_OF_FULL_BLOCKS 0x60090 | ||
35 | /* [ST 32] The number of cycles that the write_full signal towards MAC #0 | ||
36 | was asserted. */ | ||
37 | #define BRB1_REG_NUM_OF_FULL_CYCLES_0 0x600c8 | ||
38 | #define BRB1_REG_NUM_OF_FULL_CYCLES_1 0x600cc | ||
39 | #define BRB1_REG_NUM_OF_FULL_CYCLES_2 0x600d0 | ||
40 | #define BRB1_REG_NUM_OF_FULL_CYCLES_3 0x600d4 | ||
41 | #define BRB1_REG_NUM_OF_FULL_CYCLES_4 0x600d8 | ||
42 | /* [ST 32] The number of cycles that the pause signal towards MAC #0 was | ||
43 | asserted. */ | ||
44 | #define BRB1_REG_NUM_OF_PAUSE_CYCLES_0 0x600b8 | ||
45 | #define BRB1_REG_NUM_OF_PAUSE_CYCLES_1 0x600bc | ||
46 | #define BRB1_REG_NUM_OF_PAUSE_CYCLES_2 0x600c0 | ||
47 | #define BRB1_REG_NUM_OF_PAUSE_CYCLES_3 0x600c4 | ||
48 | /* [RW 10] Write client 0: De-assert pause threshold. */ | ||
49 | #define BRB1_REG_PAUSE_HIGH_THRESHOLD_0 0x60078 | ||
50 | #define BRB1_REG_PAUSE_HIGH_THRESHOLD_1 0x6007c | ||
51 | /* [RW 10] Write client 0: Assert pause threshold. */ | ||
52 | #define BRB1_REG_PAUSE_LOW_THRESHOLD_0 0x60068 | ||
53 | #define BRB1_REG_PAUSE_LOW_THRESHOLD_1 0x6006c | ||
54 | /* [RW 1] Reset the design by software. */ | ||
55 | #define BRB1_REG_SOFT_RESET 0x600dc | ||
56 | /* [R 5] Used to read the value of the XX protection CAM occupancy counter. */ | ||
57 | #define CCM_REG_CAM_OCCUP 0xd0188 | ||
58 | /* [RW 1] CM - CFC Interface enable. If 0 - the valid input is disregarded; | ||
59 | acknowledge output is deasserted; all other signals are treated as usual; | ||
60 | if 1 - normal activity. */ | ||
61 | #define CCM_REG_CCM_CFC_IFEN 0xd003c | ||
62 | /* [RW 1] CM - QM Interface enable. If 0 - the acknowledge input is | ||
63 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
64 | if 1 - normal activity. */ | ||
65 | #define CCM_REG_CCM_CQM_IFEN 0xd000c | ||
66 | /* [RW 1] If set the Q index; received from the QM is inserted to event ID. | ||
67 | Otherwise 0 is inserted. */ | ||
68 | #define CCM_REG_CCM_CQM_USE_Q 0xd00c0 | ||
69 | /* [RW 11] Interrupt mask register #0 read/write */ | ||
70 | #define CCM_REG_CCM_INT_MASK 0xd01e4 | ||
71 | /* [R 11] Interrupt register #0 read */ | ||
72 | #define CCM_REG_CCM_INT_STS 0xd01d8 | ||
73 | /* [RW 3] The size of AG context region 0 in REG-pairs. Designates the MS | ||
74 | REG-pair number (e.g. if region 0 is 6 REG-pairs; the value should be 5). | ||
75 | Is used to determine the number of the AG context REG-pairs written back; | ||
76 | when the input message Reg1WbFlg isn't set. */ | ||
77 | #define CCM_REG_CCM_REG0_SZ 0xd00c4 | ||
78 | /* [RW 1] CM - STORM 0 Interface enable. If 0 - the acknowledge input is | ||
79 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
80 | if 1 - normal activity. */ | ||
81 | #define CCM_REG_CCM_STORM0_IFEN 0xd0004 | ||
82 | /* [RW 1] CM - STORM 1 Interface enable. If 0 - the acknowledge input is | ||
83 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
84 | if 1 - normal activity. */ | ||
85 | #define CCM_REG_CCM_STORM1_IFEN 0xd0008 | ||
86 | /* [RW 1] CDU AG read Interface enable. If 0 - the request input is | ||
87 | disregarded; valid output is deasserted; all other signals are treated as | ||
88 | usual; if 1 - normal activity. */ | ||
89 | #define CCM_REG_CDU_AG_RD_IFEN 0xd0030 | ||
90 | /* [RW 1] CDU AG write Interface enable. If 0 - the request and valid input | ||
91 | are disregarded; all other signals are treated as usual; if 1 - normal | ||
92 | activity. */ | ||
93 | #define CCM_REG_CDU_AG_WR_IFEN 0xd002c | ||
94 | /* [RW 1] CDU STORM read Interface enable. If 0 - the request input is | ||
95 | disregarded; valid output is deasserted; all other signals are treated as | ||
96 | usual; if 1 - normal activity. */ | ||
97 | #define CCM_REG_CDU_SM_RD_IFEN 0xd0038 | ||
98 | /* [RW 1] CDU STORM write Interface enable. If 0 - the request and valid | ||
99 | input is disregarded; all other signals are treated as usual; if 1 - | ||
100 | normal activity. */ | ||
101 | #define CCM_REG_CDU_SM_WR_IFEN 0xd0034 | ||
102 | /* [RW 4] CFC output initial credit. Max credit available - 15.Write writes | ||
103 | the initial credit value; read returns the current value of the credit | ||
104 | counter. Must be initialized to 1 at start-up. */ | ||
105 | #define CCM_REG_CFC_INIT_CRD 0xd0204 | ||
106 | /* [RW 2] Auxillary counter flag Q number 1. */ | ||
107 | #define CCM_REG_CNT_AUX1_Q 0xd00c8 | ||
108 | /* [RW 2] Auxillary counter flag Q number 2. */ | ||
109 | #define CCM_REG_CNT_AUX2_Q 0xd00cc | ||
110 | /* [RW 28] The CM header value for QM request (primary). */ | ||
111 | #define CCM_REG_CQM_CCM_HDR_P 0xd008c | ||
112 | /* [RW 28] The CM header value for QM request (secondary). */ | ||
113 | #define CCM_REG_CQM_CCM_HDR_S 0xd0090 | ||
114 | /* [RW 1] QM - CM Interface enable. If 0 - the valid input is disregarded; | ||
115 | acknowledge output is deasserted; all other signals are treated as usual; | ||
116 | if 1 - normal activity. */ | ||
117 | #define CCM_REG_CQM_CCM_IFEN 0xd0014 | ||
118 | /* [RW 6] QM output initial credit. Max credit available - 32. Write writes | ||
119 | the initial credit value; read returns the current value of the credit | ||
120 | counter. Must be initialized to 32 at start-up. */ | ||
121 | #define CCM_REG_CQM_INIT_CRD 0xd020c | ||
122 | /* [RW 3] The weight of the QM (primary) input in the WRR mechanism. 0 | ||
123 | stands for weight 8 (the most prioritised); 1 stands for weight 1(least | ||
124 | prioritised); 2 stands for weight 2; tc. */ | ||
125 | #define CCM_REG_CQM_P_WEIGHT 0xd00b8 | ||
126 | /* [RW 1] Input SDM Interface enable. If 0 - the valid input is disregarded; | ||
127 | acknowledge output is deasserted; all other signals are treated as usual; | ||
128 | if 1 - normal activity. */ | ||
129 | #define CCM_REG_CSDM_IFEN 0xd0018 | ||
130 | /* [RC 1] Set when the message length mismatch (relative to last indication) | ||
131 | at the SDM interface is detected. */ | ||
132 | #define CCM_REG_CSDM_LENGTH_MIS 0xd0170 | ||
133 | /* [RW 28] The CM header for QM formatting in case of an error in the QM | ||
134 | inputs. */ | ||
135 | #define CCM_REG_ERR_CCM_HDR 0xd0094 | ||
136 | /* [RW 8] The Event ID in case the input message ErrorFlg is set. */ | ||
137 | #define CCM_REG_ERR_EVNT_ID 0xd0098 | ||
138 | /* [RW 8] FIC0 output initial credit. Max credit available - 255. Write | ||
139 | writes the initial credit value; read returns the current value of the | ||
140 | credit counter. Must be initialized to 64 at start-up. */ | ||
141 | #define CCM_REG_FIC0_INIT_CRD 0xd0210 | ||
142 | /* [RW 8] FIC1 output initial credit. Max credit available - 255.Write | ||
143 | writes the initial credit value; read returns the current value of the | ||
144 | credit counter. Must be initialized to 64 at start-up. */ | ||
145 | #define CCM_REG_FIC1_INIT_CRD 0xd0214 | ||
146 | /* [RW 1] Arbitration between Input Arbiter groups: 0 - fair Round-Robin; 1 | ||
147 | - strict priority defined by ~ccm_registers_gr_ag_pr.gr_ag_pr; | ||
148 | ~ccm_registers_gr_ld0_pr.gr_ld0_pr and | ||
149 | ~ccm_registers_gr_ld1_pr.gr_ld1_pr. Groups are according to channels and | ||
150 | outputs to STORM: aggregation; load FIC0; load FIC1 and store. */ | ||
151 | #define CCM_REG_GR_ARB_TYPE 0xd015c | ||
152 | /* [RW 2] Load (FIC0) channel group priority. The lowest priority is 0; the | ||
153 | highest priority is 3. It is supposed; that the Store channel priority is | ||
154 | the compliment to 4 of the rest priorities - Aggregation channel; Load | ||
155 | (FIC0) channel and Load (FIC1). */ | ||
156 | #define CCM_REG_GR_LD0_PR 0xd0164 | ||
157 | /* [RW 2] Load (FIC1) channel group priority. The lowest priority is 0; the | ||
158 | highest priority is 3. It is supposed; that the Store channel priority is | ||
159 | the compliment to 4 of the rest priorities - Aggregation channel; Load | ||
160 | (FIC0) channel and Load (FIC1). */ | ||
161 | #define CCM_REG_GR_LD1_PR 0xd0168 | ||
162 | /* [RW 2] General flags index. */ | ||
163 | #define CCM_REG_INV_DONE_Q 0xd0108 | ||
164 | /* [RW 4] The number of double REG-pairs(128 bits); loaded from the STORM | ||
165 | context and sent to STORM; for a specific connection type. The double | ||
166 | REG-pairs are used in order to align to STORM context row size of 128 | ||
167 | bits. The offset of these data in the STORM context is always 0. Index | ||
168 | _(0..15) stands for the connection type (one of 16). */ | ||
169 | #define CCM_REG_N_SM_CTX_LD_0 0xd004c | ||
170 | #define CCM_REG_N_SM_CTX_LD_1 0xd0050 | ||
171 | #define CCM_REG_N_SM_CTX_LD_10 0xd0074 | ||
172 | #define CCM_REG_N_SM_CTX_LD_11 0xd0078 | ||
173 | #define CCM_REG_N_SM_CTX_LD_12 0xd007c | ||
174 | #define CCM_REG_N_SM_CTX_LD_13 0xd0080 | ||
175 | #define CCM_REG_N_SM_CTX_LD_14 0xd0084 | ||
176 | #define CCM_REG_N_SM_CTX_LD_15 0xd0088 | ||
177 | #define CCM_REG_N_SM_CTX_LD_2 0xd0054 | ||
178 | #define CCM_REG_N_SM_CTX_LD_3 0xd0058 | ||
179 | #define CCM_REG_N_SM_CTX_LD_4 0xd005c | ||
180 | /* [RW 1] Input pbf Interface enable. If 0 - the valid input is disregarded; | ||
181 | acknowledge output is deasserted; all other signals are treated as usual; | ||
182 | if 1 - normal activity. */ | ||
183 | #define CCM_REG_PBF_IFEN 0xd0028 | ||
184 | /* [RC 1] Set when the message length mismatch (relative to last indication) | ||
185 | at the pbf interface is detected. */ | ||
186 | #define CCM_REG_PBF_LENGTH_MIS 0xd0180 | ||
187 | /* [RW 3] The weight of the input pbf in the WRR mechanism. 0 stands for | ||
188 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
189 | prioritised); 2 stands for weight 2; tc. */ | ||
190 | #define CCM_REG_PBF_WEIGHT 0xd00ac | ||
191 | /* [RW 6] The physical queue number of queue number 1 per port index. */ | ||
192 | #define CCM_REG_PHYS_QNUM1_0 0xd0134 | ||
193 | #define CCM_REG_PHYS_QNUM1_1 0xd0138 | ||
194 | /* [RW 6] The physical queue number of queue number 2 per port index. */ | ||
195 | #define CCM_REG_PHYS_QNUM2_0 0xd013c | ||
196 | #define CCM_REG_PHYS_QNUM2_1 0xd0140 | ||
197 | /* [RW 6] The physical queue number of queue number 3 per port index. */ | ||
198 | #define CCM_REG_PHYS_QNUM3_0 0xd0144 | ||
199 | /* [RW 6] The physical queue number of queue number 0 with QOS equal 0 port | ||
200 | index 0. */ | ||
201 | #define CCM_REG_QOS_PHYS_QNUM0_0 0xd0114 | ||
202 | #define CCM_REG_QOS_PHYS_QNUM0_1 0xd0118 | ||
203 | /* [RW 6] The physical queue number of queue number 0 with QOS equal 1 port | ||
204 | index 0. */ | ||
205 | #define CCM_REG_QOS_PHYS_QNUM1_0 0xd011c | ||
206 | #define CCM_REG_QOS_PHYS_QNUM1_1 0xd0120 | ||
207 | /* [RW 6] The physical queue number of queue number 0 with QOS equal 2 port | ||
208 | index 0. */ | ||
209 | #define CCM_REG_QOS_PHYS_QNUM2_0 0xd0124 | ||
210 | /* [RW 1] STORM - CM Interface enable. If 0 - the valid input is | ||
211 | disregarded; acknowledge output is deasserted; all other signals are | ||
212 | treated as usual; if 1 - normal activity. */ | ||
213 | #define CCM_REG_STORM_CCM_IFEN 0xd0010 | ||
214 | /* [RC 1] Set when the message length mismatch (relative to last indication) | ||
215 | at the STORM interface is detected. */ | ||
216 | #define CCM_REG_STORM_LENGTH_MIS 0xd016c | ||
217 | /* [RW 1] Input tsem Interface enable. If 0 - the valid input is | ||
218 | disregarded; acknowledge output is deasserted; all other signals are | ||
219 | treated as usual; if 1 - normal activity. */ | ||
220 | #define CCM_REG_TSEM_IFEN 0xd001c | ||
221 | /* [RC 1] Set when the message length mismatch (relative to last indication) | ||
222 | at the tsem interface is detected. */ | ||
223 | #define CCM_REG_TSEM_LENGTH_MIS 0xd0174 | ||
224 | /* [RW 3] The weight of the input tsem in the WRR mechanism. 0 stands for | ||
225 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
226 | prioritised); 2 stands for weight 2; tc. */ | ||
227 | #define CCM_REG_TSEM_WEIGHT 0xd00a0 | ||
228 | /* [RW 1] Input usem Interface enable. If 0 - the valid input is | ||
229 | disregarded; acknowledge output is deasserted; all other signals are | ||
230 | treated as usual; if 1 - normal activity. */ | ||
231 | #define CCM_REG_USEM_IFEN 0xd0024 | ||
232 | /* [RC 1] Set when message length mismatch (relative to last indication) at | ||
233 | the usem interface is detected. */ | ||
234 | #define CCM_REG_USEM_LENGTH_MIS 0xd017c | ||
235 | /* [RW 3] The weight of the input usem in the WRR mechanism. 0 stands for | ||
236 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
237 | prioritised); 2 stands for weight 2; tc. */ | ||
238 | #define CCM_REG_USEM_WEIGHT 0xd00a8 | ||
239 | /* [RW 1] Input xsem Interface enable. If 0 - the valid input is | ||
240 | disregarded; acknowledge output is deasserted; all other signals are | ||
241 | treated as usual; if 1 - normal activity. */ | ||
242 | #define CCM_REG_XSEM_IFEN 0xd0020 | ||
243 | /* [RC 1] Set when the message length mismatch (relative to last indication) | ||
244 | at the xsem interface is detected. */ | ||
245 | #define CCM_REG_XSEM_LENGTH_MIS 0xd0178 | ||
246 | /* [RW 3] The weight of the input xsem in the WRR mechanism. 0 stands for | ||
247 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
248 | prioritised); 2 stands for weight 2; tc. */ | ||
249 | #define CCM_REG_XSEM_WEIGHT 0xd00a4 | ||
250 | /* [RW 19] Indirect access to the descriptor table of the XX protection | ||
251 | mechanism. The fields are: [5:0] - message length; [12:6] - message | ||
252 | pointer; 18:13] - next pointer. */ | ||
253 | #define CCM_REG_XX_DESCR_TABLE 0xd0300 | ||
254 | /* [R 7] Used to read the value of XX protection Free counter. */ | ||
255 | #define CCM_REG_XX_FREE 0xd0184 | ||
256 | /* [RW 6] Initial value for the credit counter; responsible for fulfilling | ||
257 | of the Input Stage XX protection buffer by the XX protection pending | ||
258 | messages. Max credit available - 127. Write writes the initial credit | ||
259 | value; read returns the current value of the credit counter. Must be | ||
260 | initialized to maximum XX protected message size - 2 at start-up. */ | ||
261 | #define CCM_REG_XX_INIT_CRD 0xd0220 | ||
262 | /* [RW 7] The maximum number of pending messages; which may be stored in XX | ||
263 | protection. At read the ~ccm_registers_xx_free.xx_free counter is read. | ||
264 | At write comprises the start value of the ~ccm_registers_xx_free.xx_free | ||
265 | counter. */ | ||
266 | #define CCM_REG_XX_MSG_NUM 0xd0224 | ||
267 | /* [RW 8] The Event ID; sent to the STORM in case of XX overflow. */ | ||
268 | #define CCM_REG_XX_OVFL_EVNT_ID 0xd0044 | ||
269 | /* [RW 18] Indirect access to the XX table of the XX protection mechanism. | ||
270 | The fields are: [5:0] - tail pointer; 11:6] - Link List size; 17:12] - | ||
271 | header pointer. */ | ||
272 | #define CCM_REG_XX_TABLE 0xd0280 | ||
273 | #define CDU_REG_CDU_CHK_MASK0 0x101000 | ||
274 | #define CDU_REG_CDU_CHK_MASK1 0x101004 | ||
275 | #define CDU_REG_CDU_CONTROL0 0x101008 | ||
276 | #define CDU_REG_CDU_DEBUG 0x101010 | ||
277 | #define CDU_REG_CDU_GLOBAL_PARAMS 0x101020 | ||
278 | /* [RW 7] Interrupt mask register #0 read/write */ | ||
279 | #define CDU_REG_CDU_INT_MASK 0x10103c | ||
280 | /* [R 7] Interrupt register #0 read */ | ||
281 | #define CDU_REG_CDU_INT_STS 0x101030 | ||
282 | /* [RW 5] Parity mask register #0 read/write */ | ||
283 | #define CDU_REG_CDU_PRTY_MASK 0x10104c | ||
284 | /* [RC 32] logging of error data in case of a CDU load error: | ||
285 | {expected_cid[15:0]; xpected_type[2:0]; xpected_region[2:0]; ctive_error; | ||
286 | ype_error; ctual_active; ctual_compressed_context}; */ | ||
287 | #define CDU_REG_ERROR_DATA 0x101014 | ||
288 | /* [WB 216] L1TT ram access. each entry has the following format : | ||
289 | {mrege_regions[7:0]; ffset12[5:0]...offset0[5:0]; | ||
290 | ength12[5:0]...length0[5:0]; d12[3:0]...id0[3:0]} */ | ||
291 | #define CDU_REG_L1TT 0x101800 | ||
292 | /* [WB 24] MATT ram access. each entry has the following | ||
293 | format:{RegionLength[11:0]; egionOffset[11:0]} */ | ||
294 | #define CDU_REG_MATT 0x101100 | ||
295 | /* [R 1] indication the initializing the activity counter by the hardware | ||
296 | was done. */ | ||
297 | #define CFC_REG_AC_INIT_DONE 0x104078 | ||
298 | /* [RW 13] activity counter ram access */ | ||
299 | #define CFC_REG_ACTIVITY_COUNTER 0x104400 | ||
300 | #define CFC_REG_ACTIVITY_COUNTER_SIZE 256 | ||
301 | /* [R 1] indication the initializing the cams by the hardware was done. */ | ||
302 | #define CFC_REG_CAM_INIT_DONE 0x10407c | ||
303 | /* [RW 2] Interrupt mask register #0 read/write */ | ||
304 | #define CFC_REG_CFC_INT_MASK 0x104108 | ||
305 | /* [R 2] Interrupt register #0 read */ | ||
306 | #define CFC_REG_CFC_INT_STS 0x1040fc | ||
307 | /* [RC 2] Interrupt register #0 read clear */ | ||
308 | #define CFC_REG_CFC_INT_STS_CLR 0x104100 | ||
309 | /* [RW 4] Parity mask register #0 read/write */ | ||
310 | #define CFC_REG_CFC_PRTY_MASK 0x104118 | ||
311 | /* [RW 21] CID cam access (21:1 - Data; alid - 0) */ | ||
312 | #define CFC_REG_CID_CAM 0x104800 | ||
313 | #define CFC_REG_CONTROL0 0x104028 | ||
314 | #define CFC_REG_DEBUG0 0x104050 | ||
315 | /* [RW 14] indicates per error (in #cfc_registers_cfc_error_vector.cfc_error | ||
316 | vector) whether the cfc should be disabled upon it */ | ||
317 | #define CFC_REG_DISABLE_ON_ERROR 0x104044 | ||
318 | /* [RC 14] CFC error vector. when the CFC detects an internal error it will | ||
319 | set one of these bits. the bit description can be found in CFC | ||
320 | specifications */ | ||
321 | #define CFC_REG_ERROR_VECTOR 0x10403c | ||
322 | #define CFC_REG_INIT_REG 0x10404c | ||
323 | /* [RW 24] {weight_load_client7[2:0] to weight_load_client0[2:0]}. this | ||
324 | field allows changing the priorities of the weighted-round-robin arbiter | ||
325 | which selects which CFC load client should be served next */ | ||
326 | #define CFC_REG_LCREQ_WEIGHTS 0x104084 | ||
327 | /* [R 1] indication the initializing the link list by the hardware was done. */ | ||
328 | #define CFC_REG_LL_INIT_DONE 0x104074 | ||
329 | /* [R 9] Number of allocated LCIDs which are at empty state */ | ||
330 | #define CFC_REG_NUM_LCIDS_ALLOC 0x104020 | ||
331 | /* [R 9] Number of Arriving LCIDs in Link List Block */ | ||
332 | #define CFC_REG_NUM_LCIDS_ARRIVING 0x104004 | ||
333 | /* [R 9] Number of Inside LCIDs in Link List Block */ | ||
334 | #define CFC_REG_NUM_LCIDS_INSIDE 0x104008 | ||
335 | /* [R 9] Number of Leaving LCIDs in Link List Block */ | ||
336 | #define CFC_REG_NUM_LCIDS_LEAVING 0x104018 | ||
337 | /* [RW 8] The event id for aggregated interrupt 0 */ | ||
338 | #define CSDM_REG_AGG_INT_EVENT_0 0xc2038 | ||
339 | /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */ | ||
340 | #define CSDM_REG_CFC_RSP_START_ADDR 0xc2008 | ||
341 | /* [RW 16] The maximum value of the competion counter #0 */ | ||
342 | #define CSDM_REG_CMP_COUNTER_MAX0 0xc201c | ||
343 | /* [RW 16] The maximum value of the competion counter #1 */ | ||
344 | #define CSDM_REG_CMP_COUNTER_MAX1 0xc2020 | ||
345 | /* [RW 16] The maximum value of the competion counter #2 */ | ||
346 | #define CSDM_REG_CMP_COUNTER_MAX2 0xc2024 | ||
347 | /* [RW 16] The maximum value of the competion counter #3 */ | ||
348 | #define CSDM_REG_CMP_COUNTER_MAX3 0xc2028 | ||
349 | /* [RW 13] The start address in the internal RAM for the completion | ||
350 | counters. */ | ||
351 | #define CSDM_REG_CMP_COUNTER_START_ADDR 0xc200c | ||
352 | /* [RW 32] Interrupt mask register #0 read/write */ | ||
353 | #define CSDM_REG_CSDM_INT_MASK_0 0xc229c | ||
354 | #define CSDM_REG_CSDM_INT_MASK_1 0xc22ac | ||
355 | /* [RW 11] Parity mask register #0 read/write */ | ||
356 | #define CSDM_REG_CSDM_PRTY_MASK 0xc22bc | ||
357 | #define CSDM_REG_ENABLE_IN1 0xc2238 | ||
358 | #define CSDM_REG_ENABLE_IN2 0xc223c | ||
359 | #define CSDM_REG_ENABLE_OUT1 0xc2240 | ||
360 | #define CSDM_REG_ENABLE_OUT2 0xc2244 | ||
361 | /* [RW 4] The initial number of messages that can be sent to the pxp control | ||
362 | interface without receiving any ACK. */ | ||
363 | #define CSDM_REG_INIT_CREDIT_PXP_CTRL 0xc24bc | ||
364 | /* [ST 32] The number of ACK after placement messages received */ | ||
365 | #define CSDM_REG_NUM_OF_ACK_AFTER_PLACE 0xc227c | ||
366 | /* [ST 32] The number of packet end messages received from the parser */ | ||
367 | #define CSDM_REG_NUM_OF_PKT_END_MSG 0xc2274 | ||
368 | /* [ST 32] The number of requests received from the pxp async if */ | ||
369 | #define CSDM_REG_NUM_OF_PXP_ASYNC_REQ 0xc2278 | ||
370 | /* [ST 32] The number of commands received in queue 0 */ | ||
371 | #define CSDM_REG_NUM_OF_Q0_CMD 0xc2248 | ||
372 | /* [ST 32] The number of commands received in queue 10 */ | ||
373 | #define CSDM_REG_NUM_OF_Q10_CMD 0xc226c | ||
374 | /* [ST 32] The number of commands received in queue 11 */ | ||
375 | #define CSDM_REG_NUM_OF_Q11_CMD 0xc2270 | ||
376 | /* [ST 32] The number of commands received in queue 1 */ | ||
377 | #define CSDM_REG_NUM_OF_Q1_CMD 0xc224c | ||
378 | /* [ST 32] The number of commands received in queue 3 */ | ||
379 | #define CSDM_REG_NUM_OF_Q3_CMD 0xc2250 | ||
380 | /* [ST 32] The number of commands received in queue 4 */ | ||
381 | #define CSDM_REG_NUM_OF_Q4_CMD 0xc2254 | ||
382 | /* [ST 32] The number of commands received in queue 5 */ | ||
383 | #define CSDM_REG_NUM_OF_Q5_CMD 0xc2258 | ||
384 | /* [ST 32] The number of commands received in queue 6 */ | ||
385 | #define CSDM_REG_NUM_OF_Q6_CMD 0xc225c | ||
386 | /* [ST 32] The number of commands received in queue 7 */ | ||
387 | #define CSDM_REG_NUM_OF_Q7_CMD 0xc2260 | ||
388 | /* [ST 32] The number of commands received in queue 8 */ | ||
389 | #define CSDM_REG_NUM_OF_Q8_CMD 0xc2264 | ||
390 | /* [ST 32] The number of commands received in queue 9 */ | ||
391 | #define CSDM_REG_NUM_OF_Q9_CMD 0xc2268 | ||
392 | /* [RW 13] The start address in the internal RAM for queue counters */ | ||
393 | #define CSDM_REG_Q_COUNTER_START_ADDR 0xc2010 | ||
394 | /* [R 1] pxp_ctrl rd_data fifo empty in sdm_dma_rsp block */ | ||
395 | #define CSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY 0xc2548 | ||
396 | /* [R 1] parser fifo empty in sdm_sync block */ | ||
397 | #define CSDM_REG_SYNC_PARSER_EMPTY 0xc2550 | ||
398 | /* [R 1] parser serial fifo empty in sdm_sync block */ | ||
399 | #define CSDM_REG_SYNC_SYNC_EMPTY 0xc2558 | ||
400 | /* [RW 32] Tick for timer counter. Applicable only when | ||
401 | ~csdm_registers_timer_tick_enable.timer_tick_enable =1 */ | ||
402 | #define CSDM_REG_TIMER_TICK 0xc2000 | ||
403 | /* [RW 5] The number of time_slots in the arbitration cycle */ | ||
404 | #define CSEM_REG_ARB_CYCLE_SIZE 0x200034 | ||
405 | /* [RW 3] The source that is associated with arbitration element 0. Source | ||
406 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
407 | sleeping thread with priority 1; 4- sleeping thread with priority 2 */ | ||
408 | #define CSEM_REG_ARB_ELEMENT0 0x200020 | ||
409 | /* [RW 3] The source that is associated with arbitration element 1. Source | ||
410 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
411 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
412 | Could not be equal to register ~csem_registers_arb_element0.arb_element0 */ | ||
413 | #define CSEM_REG_ARB_ELEMENT1 0x200024 | ||
414 | /* [RW 3] The source that is associated with arbitration element 2. Source | ||
415 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
416 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
417 | Could not be equal to register ~csem_registers_arb_element0.arb_element0 | ||
418 | and ~csem_registers_arb_element1.arb_element1 */ | ||
419 | #define CSEM_REG_ARB_ELEMENT2 0x200028 | ||
420 | /* [RW 3] The source that is associated with arbitration element 3. Source | ||
421 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
422 | sleeping thread with priority 1; 4- sleeping thread with priority 2.Could | ||
423 | not be equal to register ~csem_registers_arb_element0.arb_element0 and | ||
424 | ~csem_registers_arb_element1.arb_element1 and | ||
425 | ~csem_registers_arb_element2.arb_element2 */ | ||
426 | #define CSEM_REG_ARB_ELEMENT3 0x20002c | ||
427 | /* [RW 3] The source that is associated with arbitration element 4. Source | ||
428 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
429 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
430 | Could not be equal to register ~csem_registers_arb_element0.arb_element0 | ||
431 | and ~csem_registers_arb_element1.arb_element1 and | ||
432 | ~csem_registers_arb_element2.arb_element2 and | ||
433 | ~csem_registers_arb_element3.arb_element3 */ | ||
434 | #define CSEM_REG_ARB_ELEMENT4 0x200030 | ||
435 | /* [RW 32] Interrupt mask register #0 read/write */ | ||
436 | #define CSEM_REG_CSEM_INT_MASK_0 0x200110 | ||
437 | #define CSEM_REG_CSEM_INT_MASK_1 0x200120 | ||
438 | /* [RW 32] Parity mask register #0 read/write */ | ||
439 | #define CSEM_REG_CSEM_PRTY_MASK_0 0x200130 | ||
440 | #define CSEM_REG_CSEM_PRTY_MASK_1 0x200140 | ||
441 | #define CSEM_REG_ENABLE_IN 0x2000a4 | ||
442 | #define CSEM_REG_ENABLE_OUT 0x2000a8 | ||
443 | /* [RW 32] This address space contains all registers and memories that are | ||
444 | placed in SEM_FAST block. The SEM_FAST registers are described in | ||
445 | appendix B. In order to access the SEM_FAST registers the base address | ||
446 | CSEM_REGISTERS_FAST_MEMORY (Offset: 0x220000) should be added to each | ||
447 | SEM_FAST register offset. */ | ||
448 | #define CSEM_REG_FAST_MEMORY 0x220000 | ||
449 | /* [RW 1] Disables input messages from FIC0 May be updated during run_time | ||
450 | by the microcode */ | ||
451 | #define CSEM_REG_FIC0_DISABLE 0x200224 | ||
452 | /* [RW 1] Disables input messages from FIC1 May be updated during run_time | ||
453 | by the microcode */ | ||
454 | #define CSEM_REG_FIC1_DISABLE 0x200234 | ||
455 | /* [RW 15] Interrupt table Read and write access to it is not possible in | ||
456 | the middle of the work */ | ||
457 | #define CSEM_REG_INT_TABLE 0x200400 | ||
458 | /* [ST 24] Statistics register. The number of messages that entered through | ||
459 | FIC0 */ | ||
460 | #define CSEM_REG_MSG_NUM_FIC0 0x200000 | ||
461 | /* [ST 24] Statistics register. The number of messages that entered through | ||
462 | FIC1 */ | ||
463 | #define CSEM_REG_MSG_NUM_FIC1 0x200004 | ||
464 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
465 | FOC0 */ | ||
466 | #define CSEM_REG_MSG_NUM_FOC0 0x200008 | ||
467 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
468 | FOC1 */ | ||
469 | #define CSEM_REG_MSG_NUM_FOC1 0x20000c | ||
470 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
471 | FOC2 */ | ||
472 | #define CSEM_REG_MSG_NUM_FOC2 0x200010 | ||
473 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
474 | FOC3 */ | ||
475 | #define CSEM_REG_MSG_NUM_FOC3 0x200014 | ||
476 | /* [RW 1] Disables input messages from the passive buffer May be updated | ||
477 | during run_time by the microcode */ | ||
478 | #define CSEM_REG_PAS_DISABLE 0x20024c | ||
479 | /* [WB 128] Debug only. Passive buffer memory */ | ||
480 | #define CSEM_REG_PASSIVE_BUFFER 0x202000 | ||
481 | /* [WB 46] pram memory. B45 is parity; b[44:0] - data. */ | ||
482 | #define CSEM_REG_PRAM 0x240000 | ||
483 | /* [R 16] Valid sleeping threads indication have bit per thread */ | ||
484 | #define CSEM_REG_SLEEP_THREADS_VALID 0x20026c | ||
485 | /* [R 1] EXT_STORE FIFO is empty in sem_slow_ls_ext */ | ||
486 | #define CSEM_REG_SLOW_EXT_STORE_EMPTY 0x2002a0 | ||
487 | /* [RW 16] List of free threads . There is a bit per thread. */ | ||
488 | #define CSEM_REG_THREADS_LIST 0x2002e4 | ||
489 | /* [RW 3] The arbitration scheme of time_slot 0 */ | ||
490 | #define CSEM_REG_TS_0_AS 0x200038 | ||
491 | /* [RW 3] The arbitration scheme of time_slot 10 */ | ||
492 | #define CSEM_REG_TS_10_AS 0x200060 | ||
493 | /* [RW 3] The arbitration scheme of time_slot 11 */ | ||
494 | #define CSEM_REG_TS_11_AS 0x200064 | ||
495 | /* [RW 3] The arbitration scheme of time_slot 12 */ | ||
496 | #define CSEM_REG_TS_12_AS 0x200068 | ||
497 | /* [RW 3] The arbitration scheme of time_slot 13 */ | ||
498 | #define CSEM_REG_TS_13_AS 0x20006c | ||
499 | /* [RW 3] The arbitration scheme of time_slot 14 */ | ||
500 | #define CSEM_REG_TS_14_AS 0x200070 | ||
501 | /* [RW 3] The arbitration scheme of time_slot 15 */ | ||
502 | #define CSEM_REG_TS_15_AS 0x200074 | ||
503 | /* [RW 3] The arbitration scheme of time_slot 16 */ | ||
504 | #define CSEM_REG_TS_16_AS 0x200078 | ||
505 | /* [RW 3] The arbitration scheme of time_slot 17 */ | ||
506 | #define CSEM_REG_TS_17_AS 0x20007c | ||
507 | /* [RW 3] The arbitration scheme of time_slot 18 */ | ||
508 | #define CSEM_REG_TS_18_AS 0x200080 | ||
509 | /* [RW 3] The arbitration scheme of time_slot 1 */ | ||
510 | #define CSEM_REG_TS_1_AS 0x20003c | ||
511 | /* [RW 3] The arbitration scheme of time_slot 2 */ | ||
512 | #define CSEM_REG_TS_2_AS 0x200040 | ||
513 | /* [RW 3] The arbitration scheme of time_slot 3 */ | ||
514 | #define CSEM_REG_TS_3_AS 0x200044 | ||
515 | /* [RW 3] The arbitration scheme of time_slot 4 */ | ||
516 | #define CSEM_REG_TS_4_AS 0x200048 | ||
517 | /* [RW 3] The arbitration scheme of time_slot 5 */ | ||
518 | #define CSEM_REG_TS_5_AS 0x20004c | ||
519 | /* [RW 3] The arbitration scheme of time_slot 6 */ | ||
520 | #define CSEM_REG_TS_6_AS 0x200050 | ||
521 | /* [RW 3] The arbitration scheme of time_slot 7 */ | ||
522 | #define CSEM_REG_TS_7_AS 0x200054 | ||
523 | /* [RW 3] The arbitration scheme of time_slot 8 */ | ||
524 | #define CSEM_REG_TS_8_AS 0x200058 | ||
525 | /* [RW 3] The arbitration scheme of time_slot 9 */ | ||
526 | #define CSEM_REG_TS_9_AS 0x20005c | ||
527 | /* [RW 1] Parity mask register #0 read/write */ | ||
528 | #define DBG_REG_DBG_PRTY_MASK 0xc0a8 | ||
529 | /* [RW 2] debug only: These bits indicate the credit for PCI request type 4 | ||
530 | interface; MUST be configured AFTER pci_ext_buffer_strt_addr_lsb/msb are | ||
531 | configured */ | ||
532 | #define DBG_REG_PCI_REQ_CREDIT 0xc120 | ||
533 | /* [RW 32] Commands memory. The address to command X; row Y is to calculated | ||
534 | as 14*X+Y. */ | ||
535 | #define DMAE_REG_CMD_MEM 0x102400 | ||
536 | /* [RW 1] If 0 - the CRC-16c initial value is all zeroes; if 1 - the CRC-16c | ||
537 | initial value is all ones. */ | ||
538 | #define DMAE_REG_CRC16C_INIT 0x10201c | ||
539 | /* [RW 1] If 0 - the CRC-16 T10 initial value is all zeroes; if 1 - the | ||
540 | CRC-16 T10 initial value is all ones. */ | ||
541 | #define DMAE_REG_CRC16T10_INIT 0x102020 | ||
542 | /* [RW 2] Interrupt mask register #0 read/write */ | ||
543 | #define DMAE_REG_DMAE_INT_MASK 0x102054 | ||
544 | /* [RW 4] Parity mask register #0 read/write */ | ||
545 | #define DMAE_REG_DMAE_PRTY_MASK 0x102064 | ||
546 | /* [RW 1] Command 0 go. */ | ||
547 | #define DMAE_REG_GO_C0 0x102080 | ||
548 | /* [RW 1] Command 1 go. */ | ||
549 | #define DMAE_REG_GO_C1 0x102084 | ||
550 | /* [RW 1] Command 10 go. */ | ||
551 | #define DMAE_REG_GO_C10 0x102088 | ||
552 | #define DMAE_REG_GO_C10_SIZE 1 | ||
553 | /* [RW 1] Command 11 go. */ | ||
554 | #define DMAE_REG_GO_C11 0x10208c | ||
555 | #define DMAE_REG_GO_C11_SIZE 1 | ||
556 | /* [RW 1] Command 12 go. */ | ||
557 | #define DMAE_REG_GO_C12 0x102090 | ||
558 | #define DMAE_REG_GO_C12_SIZE 1 | ||
559 | /* [RW 1] Command 13 go. */ | ||
560 | #define DMAE_REG_GO_C13 0x102094 | ||
561 | #define DMAE_REG_GO_C13_SIZE 1 | ||
562 | /* [RW 1] Command 14 go. */ | ||
563 | #define DMAE_REG_GO_C14 0x102098 | ||
564 | #define DMAE_REG_GO_C14_SIZE 1 | ||
565 | /* [RW 1] Command 15 go. */ | ||
566 | #define DMAE_REG_GO_C15 0x10209c | ||
567 | #define DMAE_REG_GO_C15_SIZE 1 | ||
568 | /* [RW 1] Command 10 go. */ | ||
569 | #define DMAE_REG_GO_C10 0x102088 | ||
570 | /* [RW 1] Command 11 go. */ | ||
571 | #define DMAE_REG_GO_C11 0x10208c | ||
572 | /* [RW 1] Command 12 go. */ | ||
573 | #define DMAE_REG_GO_C12 0x102090 | ||
574 | /* [RW 1] Command 13 go. */ | ||
575 | #define DMAE_REG_GO_C13 0x102094 | ||
576 | /* [RW 1] Command 14 go. */ | ||
577 | #define DMAE_REG_GO_C14 0x102098 | ||
578 | /* [RW 1] Command 15 go. */ | ||
579 | #define DMAE_REG_GO_C15 0x10209c | ||
580 | /* [RW 1] Command 2 go. */ | ||
581 | #define DMAE_REG_GO_C2 0x1020a0 | ||
582 | /* [RW 1] Command 3 go. */ | ||
583 | #define DMAE_REG_GO_C3 0x1020a4 | ||
584 | /* [RW 1] Command 4 go. */ | ||
585 | #define DMAE_REG_GO_C4 0x1020a8 | ||
586 | /* [RW 1] Command 5 go. */ | ||
587 | #define DMAE_REG_GO_C5 0x1020ac | ||
588 | /* [RW 1] Command 6 go. */ | ||
589 | #define DMAE_REG_GO_C6 0x1020b0 | ||
590 | /* [RW 1] Command 7 go. */ | ||
591 | #define DMAE_REG_GO_C7 0x1020b4 | ||
592 | /* [RW 1] Command 8 go. */ | ||
593 | #define DMAE_REG_GO_C8 0x1020b8 | ||
594 | /* [RW 1] Command 9 go. */ | ||
595 | #define DMAE_REG_GO_C9 0x1020bc | ||
596 | /* [RW 1] DMAE GRC Interface (Target; aster) enable. If 0 - the acknowledge | ||
597 | input is disregarded; valid is deasserted; all other signals are treated | ||
598 | as usual; if 1 - normal activity. */ | ||
599 | #define DMAE_REG_GRC_IFEN 0x102008 | ||
600 | /* [RW 1] DMAE PCI Interface (Request; ead; rite) enable. If 0 - the | ||
601 | acknowledge input is disregarded; valid is deasserted; full is asserted; | ||
602 | all other signals are treated as usual; if 1 - normal activity. */ | ||
603 | #define DMAE_REG_PCI_IFEN 0x102004 | ||
604 | /* [RW 4] DMAE- PCI Request Interface initial credit. Write writes the | ||
605 | initial value to the credit counter; related to the address. Read returns | ||
606 | the current value of the counter. */ | ||
607 | #define DMAE_REG_PXP_REQ_INIT_CRD 0x1020c0 | ||
608 | /* [RW 8] Aggregation command. */ | ||
609 | #define DORQ_REG_AGG_CMD0 0x170060 | ||
610 | /* [RW 8] Aggregation command. */ | ||
611 | #define DORQ_REG_AGG_CMD1 0x170064 | ||
612 | /* [RW 8] Aggregation command. */ | ||
613 | #define DORQ_REG_AGG_CMD2 0x170068 | ||
614 | /* [RW 8] Aggregation command. */ | ||
615 | #define DORQ_REG_AGG_CMD3 0x17006c | ||
616 | /* [RW 28] UCM Header. */ | ||
617 | #define DORQ_REG_CMHEAD_RX 0x170050 | ||
618 | /* [RW 5] Interrupt mask register #0 read/write */ | ||
619 | #define DORQ_REG_DORQ_INT_MASK 0x170180 | ||
620 | /* [R 5] Interrupt register #0 read */ | ||
621 | #define DORQ_REG_DORQ_INT_STS 0x170174 | ||
622 | /* [RC 5] Interrupt register #0 read clear */ | ||
623 | #define DORQ_REG_DORQ_INT_STS_CLR 0x170178 | ||
624 | /* [RW 2] Parity mask register #0 read/write */ | ||
625 | #define DORQ_REG_DORQ_PRTY_MASK 0x170190 | ||
626 | /* [RW 8] The address to write the DPM CID to STORM. */ | ||
627 | #define DORQ_REG_DPM_CID_ADDR 0x170044 | ||
628 | /* [RW 5] The DPM mode CID extraction offset. */ | ||
629 | #define DORQ_REG_DPM_CID_OFST 0x170030 | ||
630 | /* [RW 12] The threshold of the DQ FIFO to send the almost full interrupt. */ | ||
631 | #define DORQ_REG_DQ_FIFO_AFULL_TH 0x17007c | ||
632 | /* [RW 12] The threshold of the DQ FIFO to send the full interrupt. */ | ||
633 | #define DORQ_REG_DQ_FIFO_FULL_TH 0x170078 | ||
634 | /* [R 13] Current value of the DQ FIFO fill level according to following | ||
635 | pointer. The range is 0 - 256 FIFO rows; where each row stands for the | ||
636 | doorbell. */ | ||
637 | #define DORQ_REG_DQ_FILL_LVLF 0x1700a4 | ||
638 | /* [R 1] DQ FIFO full status. Is set; when FIFO filling level is more or | ||
639 | equal to full threshold; reset on full clear. */ | ||
640 | #define DORQ_REG_DQ_FULL_ST 0x1700c0 | ||
641 | /* [RW 28] The value sent to CM header in the case of CFC load error. */ | ||
642 | #define DORQ_REG_ERR_CMHEAD 0x170058 | ||
643 | #define DORQ_REG_IF_EN 0x170004 | ||
644 | #define DORQ_REG_MODE_ACT 0x170008 | ||
645 | /* [RW 5] The normal mode CID extraction offset. */ | ||
646 | #define DORQ_REG_NORM_CID_OFST 0x17002c | ||
647 | /* [RW 28] TCM Header when only TCP context is loaded. */ | ||
648 | #define DORQ_REG_NORM_CMHEAD_TX 0x17004c | ||
649 | /* [RW 3] The number of simultaneous outstanding requests to Context Fetch | ||
650 | Interface. */ | ||
651 | #define DORQ_REG_OUTST_REQ 0x17003c | ||
652 | #define DORQ_REG_REGN 0x170038 | ||
653 | /* [R 4] Current value of response A counter credit. Initial credit is | ||
654 | configured through write to ~dorq_registers_rsp_init_crd.rsp_init_crd | ||
655 | register. */ | ||
656 | #define DORQ_REG_RSPA_CRD_CNT 0x1700ac | ||
657 | /* [R 4] Current value of response B counter credit. Initial credit is | ||
658 | configured through write to ~dorq_registers_rsp_init_crd.rsp_init_crd | ||
659 | register. */ | ||
660 | #define DORQ_REG_RSPB_CRD_CNT 0x1700b0 | ||
661 | /* [RW 4] The initial credit at the Doorbell Response Interface. The write | ||
662 | writes the same initial credit to the rspa_crd_cnt and rspb_crd_cnt. The | ||
663 | read reads this written value. */ | ||
664 | #define DORQ_REG_RSP_INIT_CRD 0x170048 | ||
665 | /* [RW 4] Initial activity counter value on the load request; when the | ||
666 | shortcut is done. */ | ||
667 | #define DORQ_REG_SHRT_ACT_CNT 0x170070 | ||
668 | /* [RW 28] TCM Header when both ULP and TCP context is loaded. */ | ||
669 | #define DORQ_REG_SHRT_CMHEAD 0x170054 | ||
670 | #define HC_CONFIG_0_REG_ATTN_BIT_EN_0 (0x1<<4) | ||
671 | #define HC_CONFIG_0_REG_INT_LINE_EN_0 (0x1<<3) | ||
672 | #define HC_CONFIG_0_REG_MSI_MSIX_INT_EN_0 (0x1<<2) | ||
673 | #define HC_CONFIG_0_REG_SINGLE_ISR_EN_0 (0x1<<1) | ||
674 | #define HC_REG_AGG_INT_0 0x108050 | ||
675 | #define HC_REG_AGG_INT_1 0x108054 | ||
676 | /* [RW 16] attention bit and attention acknowledge bits status for port 0 | ||
677 | and 1 according to the following address map: addr 0 - attn_bit_0; addr 1 | ||
678 | - attn_ack_bit_0; addr 2 - attn_bit_1; addr 3 - attn_ack_bit_1; */ | ||
679 | #define HC_REG_ATTN_BIT 0x108120 | ||
680 | /* [RW 16] attn bits status index for attn bit msg; addr 0 - function 0; | ||
681 | addr 1 - functin 1 */ | ||
682 | #define HC_REG_ATTN_IDX 0x108100 | ||
683 | /* [RW 32] port 0 lower 32 bits address field for attn messag. */ | ||
684 | #define HC_REG_ATTN_MSG0_ADDR_L 0x108018 | ||
685 | /* [RW 32] port 1 lower 32 bits address field for attn messag. */ | ||
686 | #define HC_REG_ATTN_MSG1_ADDR_L 0x108020 | ||
687 | /* [RW 8] status block number for attn bit msg - function 0; */ | ||
688 | #define HC_REG_ATTN_NUM_P0 0x108038 | ||
689 | /* [RW 8] status block number for attn bit msg - function 1 */ | ||
690 | #define HC_REG_ATTN_NUM_P1 0x10803c | ||
691 | #define HC_REG_CONFIG_0 0x108000 | ||
692 | #define HC_REG_CONFIG_1 0x108004 | ||
693 | /* [RW 3] Parity mask register #0 read/write */ | ||
694 | #define HC_REG_HC_PRTY_MASK 0x1080a0 | ||
695 | /* [RW 17] status block interrupt mask; one in each bit means unmask; zerow | ||
696 | in each bit means mask; bit 0 - default SB; bit 1 - SB_0; bit 2 - SB_1... | ||
697 | bit 16- SB_15; addr 0 - port 0; addr 1 - port 1 */ | ||
698 | #define HC_REG_INT_MASK 0x108108 | ||
699 | /* [RW 16] port 0 attn bit condition monitoring; each bit that is set will | ||
700 | lock a change fron 0 to 1 in the corresponding attention signals that | ||
701 | comes from the AEU */ | ||
702 | #define HC_REG_LEADING_EDGE_0 0x108040 | ||
703 | #define HC_REG_LEADING_EDGE_1 0x108048 | ||
704 | /* [RW 16] all producer and consumer of port 0 according to the following | ||
705 | addresses; U_prod: 0-15; C_prod: 16-31; U_cons: 32-47; C_cons:48-63; | ||
706 | Defoult_prod: U/C/X/T/Attn-64/65/66/67/68; Defoult_cons: | ||
707 | U/C/X/T/Attn-69/70/71/72/73 */ | ||
708 | #define HC_REG_P0_PROD_CONS 0x108200 | ||
709 | /* [RW 16] all producer and consumer of port 1according to the following | ||
710 | addresses; U_prod: 0-15; C_prod: 16-31; U_cons: 32-47; C_cons:48-63; | ||
711 | Defoult_prod: U/C/X/T/Attn-64/65/66/67/68; Defoult_cons: | ||
712 | U/C/X/T/Attn-69/70/71/72/73 */ | ||
713 | #define HC_REG_P1_PROD_CONS 0x108400 | ||
714 | /* [W 1] This register is write only and has 4 addresses as follow: 0 = | ||
715 | clear all PBA bits port 0; 1 = clear all pending interrupts request | ||
716 | port0; 2 = clear all PBA bits port 1; 3 = clear all pending interrupts | ||
717 | request port1; here is no meaning for the data in this register */ | ||
718 | #define HC_REG_PBA_COMMAND 0x108140 | ||
719 | #define HC_REG_PCI_CONFIG_0 0x108010 | ||
720 | #define HC_REG_PCI_CONFIG_1 0x108014 | ||
721 | /* [RW 24] all counters acording to the following address: LSB: 0=read; 1= | ||
722 | read_clear; 0-71 = HW counters (the inside order is the same as the | ||
723 | interrupt table in the spec); 72-219 = SW counters 1 (stops after first | ||
724 | consumer upd) the inside order is: 72-103 - U_non_default_p0; 104-135 | ||
725 | C_non_defaul_p0; 36-145 U/C/X/T/Attn_default_p0; 146-177 | ||
726 | U_non_default_p1; 178-209 C_non_defaul_p1; 10-219 U/C/X/T/Attn_default_p1 | ||
727 | ; 220-367 = SW counters 2 (stops when prod=cons) the inside order is: | ||
728 | 220-251 - U_non_default_p0; 252-283 C_non_defaul_p0; 84-293 | ||
729 | U/C/X/T/Attn_default_p0; 294-325 U_non_default_p1; 326-357 | ||
730 | C_non_defaul_p1; 58-367 U/C/X/T/Attn_default_p1 ; 368-515 = mailbox | ||
731 | counters; (the inside order of the mailbox counter is 368-431 U and C | ||
732 | non_default_p0; 432-441 U/C/X/T/Attn_default_p0; 442-505 U and C | ||
733 | non_default_p1; 506-515 U/C/X/T/Attn_default_p1) */ | ||
734 | #define HC_REG_STATISTIC_COUNTERS 0x109000 | ||
735 | /* [RW 16] port 0 attn bit condition monitoring; each bit that is set will | ||
736 | lock a change fron 1 to 0 in the corresponding attention signals that | ||
737 | comes from the AEU */ | ||
738 | #define HC_REG_TRAILING_EDGE_0 0x108044 | ||
739 | #define HC_REG_TRAILING_EDGE_1 0x10804c | ||
740 | #define HC_REG_UC_RAM_ADDR_0 0x108028 | ||
741 | #define HC_REG_UC_RAM_ADDR_1 0x108030 | ||
742 | /* [RW 16] ustorm address for coalesc now message */ | ||
743 | #define HC_REG_USTORM_ADDR_FOR_COALESCE 0x108068 | ||
744 | #define HC_REG_VQID_0 0x108008 | ||
745 | #define HC_REG_VQID_1 0x10800c | ||
746 | #define MCP_REG_MCPR_NVM_ACCESS_ENABLE 0x86424 | ||
747 | #define MCP_REG_MCPR_NVM_ADDR 0x8640c | ||
748 | #define MCP_REG_MCPR_NVM_CFG4 0x8642c | ||
749 | #define MCP_REG_MCPR_NVM_COMMAND 0x86400 | ||
750 | #define MCP_REG_MCPR_NVM_READ 0x86410 | ||
751 | #define MCP_REG_MCPR_NVM_SW_ARB 0x86420 | ||
752 | #define MCP_REG_MCPR_NVM_WRITE 0x86408 | ||
753 | #define MCP_REG_MCPR_NVM_WRITE1 0x86428 | ||
754 | #define MCP_REG_MCPR_SCRATCH 0xa0000 | ||
755 | /* [R 32] read first 32 bit after inversion of function 0. mapped as | ||
756 | follows: [0] NIG attention for function0; [1] NIG attention for | ||
757 | function1; [2] GPIO1 mcp; [3] GPIO2 mcp; [4] GPIO3 mcp; [5] GPIO4 mcp; | ||
758 | [6] GPIO1 function 1; [7] GPIO2 function 1; [8] GPIO3 function 1; [9] | ||
759 | GPIO4 function 1; [10] PCIE glue/PXP VPD event function0; [11] PCIE | ||
760 | glue/PXP VPD event function1; [12] PCIE glue/PXP Expansion ROM event0; | ||
761 | [13] PCIE glue/PXP Expansion ROM event1; [14] SPIO4; [15] SPIO5; [16] | ||
762 | MSI/X indication for mcp; [17] MSI/X indication for function 1; [18] BRB | ||
763 | Parity error; [19] BRB Hw interrupt; [20] PRS Parity error; [21] PRS Hw | ||
764 | interrupt; [22] SRC Parity error; [23] SRC Hw interrupt; [24] TSDM Parity | ||
765 | error; [25] TSDM Hw interrupt; [26] TCM Parity error; [27] TCM Hw | ||
766 | interrupt; [28] TSEMI Parity error; [29] TSEMI Hw interrupt; [30] PBF | ||
767 | Parity error; [31] PBF Hw interrupt; */ | ||
768 | #define MISC_REG_AEU_AFTER_INVERT_1_FUNC_0 0xa42c | ||
769 | #define MISC_REG_AEU_AFTER_INVERT_1_FUNC_1 0xa430 | ||
770 | /* [R 32] read first 32 bit after inversion of mcp. mapped as follows: [0] | ||
771 | NIG attention for function0; [1] NIG attention for function1; [2] GPIO1 | ||
772 | mcp; [3] GPIO2 mcp; [4] GPIO3 mcp; [5] GPIO4 mcp; [6] GPIO1 function 1; | ||
773 | [7] GPIO2 function 1; [8] GPIO3 function 1; [9] GPIO4 function 1; [10] | ||
774 | PCIE glue/PXP VPD event function0; [11] PCIE glue/PXP VPD event | ||
775 | function1; [12] PCIE glue/PXP Expansion ROM event0; [13] PCIE glue/PXP | ||
776 | Expansion ROM event1; [14] SPIO4; [15] SPIO5; [16] MSI/X indication for | ||
777 | mcp; [17] MSI/X indication for function 1; [18] BRB Parity error; [19] | ||
778 | BRB Hw interrupt; [20] PRS Parity error; [21] PRS Hw interrupt; [22] SRC | ||
779 | Parity error; [23] SRC Hw interrupt; [24] TSDM Parity error; [25] TSDM Hw | ||
780 | interrupt; [26] TCM Parity error; [27] TCM Hw interrupt; [28] TSEMI | ||
781 | Parity error; [29] TSEMI Hw interrupt; [30] PBF Parity error; [31] PBF Hw | ||
782 | interrupt; */ | ||
783 | #define MISC_REG_AEU_AFTER_INVERT_1_MCP 0xa434 | ||
784 | /* [R 32] read second 32 bit after inversion of function 0. mapped as | ||
785 | follows: [0] PBClient Parity error; [1] PBClient Hw interrupt; [2] QM | ||
786 | Parity error; [3] QM Hw interrupt; [4] Timers Parity error; [5] Timers Hw | ||
787 | interrupt; [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] XCM Parity | ||
788 | error; [9] XCM Hw interrupt; [10] XSEMI Parity error; [11] XSEMI Hw | ||
789 | interrupt; [12] DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14] | ||
790 | NIG Parity error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error; | ||
791 | [17] Vaux PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw | ||
792 | interrupt; [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM | ||
793 | Parity error; [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI | ||
794 | Hw interrupt; [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM | ||
795 | Parity error; [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw | ||
796 | interrupt; */ | ||
797 | #define MISC_REG_AEU_AFTER_INVERT_2_FUNC_0 0xa438 | ||
798 | #define MISC_REG_AEU_AFTER_INVERT_2_FUNC_1 0xa43c | ||
799 | /* [R 32] read second 32 bit after inversion of mcp. mapped as follows: [0] | ||
800 | PBClient Parity error; [1] PBClient Hw interrupt; [2] QM Parity error; | ||
801 | [3] QM Hw interrupt; [4] Timers Parity error; [5] Timers Hw interrupt; | ||
802 | [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] XCM Parity error; [9] | ||
803 | XCM Hw interrupt; [10] XSEMI Parity error; [11] XSEMI Hw interrupt; [12] | ||
804 | DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14] NIG Parity | ||
805 | error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error; [17] Vaux | ||
806 | PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw interrupt; | ||
807 | [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM Parity error; | ||
808 | [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI Hw interrupt; | ||
809 | [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM Parity error; | ||
810 | [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw interrupt; */ | ||
811 | #define MISC_REG_AEU_AFTER_INVERT_2_MCP 0xa440 | ||
812 | /* [R 32] read third 32 bit after inversion of function 0. mapped as | ||
813 | follows: [0] CSEMI Parity error; [1] CSEMI Hw interrupt; [2] PXP Parity | ||
814 | error; [3] PXP Hw interrupt; [4] PXPpciClockClient Parity error; [5] | ||
815 | PXPpciClockClient Hw interrupt; [6] CFC Parity error; [7] CFC Hw | ||
816 | interrupt; [8] CDU Parity error; [9] CDU Hw interrupt; [10] DMAE Parity | ||
817 | error; [11] DMAE Hw interrupt; [12] IGU (HC) Parity error; [13] IGU (HC) | ||
818 | Hw interrupt; [14] MISC Parity error; [15] MISC Hw interrupt; [16] | ||
819 | pxp_misc_mps_attn; [17] Flash event; [18] SMB event; [19] MCP attn0; [20] | ||
820 | MCP attn1; [21] SW timers attn_1 func0; [22] SW timers attn_2 func0; [23] | ||
821 | SW timers attn_3 func0; [24] SW timers attn_4 func0; [25] PERST; [26] SW | ||
822 | timers attn_1 func1; [27] SW timers attn_2 func1; [28] SW timers attn_3 | ||
823 | func1; [29] SW timers attn_4 func1; [30] General attn0; [31] General | ||
824 | attn1; */ | ||
825 | #define MISC_REG_AEU_AFTER_INVERT_3_FUNC_0 0xa444 | ||
826 | #define MISC_REG_AEU_AFTER_INVERT_3_FUNC_1 0xa448 | ||
827 | /* [R 32] read third 32 bit after inversion of mcp. mapped as follows: [0] | ||
828 | CSEMI Parity error; [1] CSEMI Hw interrupt; [2] PXP Parity error; [3] PXP | ||
829 | Hw interrupt; [4] PXPpciClockClient Parity error; [5] PXPpciClockClient | ||
830 | Hw interrupt; [6] CFC Parity error; [7] CFC Hw interrupt; [8] CDU Parity | ||
831 | error; [9] CDU Hw interrupt; [10] DMAE Parity error; [11] DMAE Hw | ||
832 | interrupt; [12] IGU (HC) Parity error; [13] IGU (HC) Hw interrupt; [14] | ||
833 | MISC Parity error; [15] MISC Hw interrupt; [16] pxp_misc_mps_attn; [17] | ||
834 | Flash event; [18] SMB event; [19] MCP attn0; [20] MCP attn1; [21] SW | ||
835 | timers attn_1 func0; [22] SW timers attn_2 func0; [23] SW timers attn_3 | ||
836 | func0; [24] SW timers attn_4 func0; [25] PERST; [26] SW timers attn_1 | ||
837 | func1; [27] SW timers attn_2 func1; [28] SW timers attn_3 func1; [29] SW | ||
838 | timers attn_4 func1; [30] General attn0; [31] General attn1; */ | ||
839 | #define MISC_REG_AEU_AFTER_INVERT_3_MCP 0xa44c | ||
840 | /* [R 32] read fourth 32 bit after inversion of function 0. mapped as | ||
841 | follows: [0] General attn2; [1] General attn3; [2] General attn4; [3] | ||
842 | General attn5; [4] General attn6; [5] General attn7; [6] General attn8; | ||
843 | [7] General attn9; [8] General attn10; [9] General attn11; [10] General | ||
844 | attn12; [11] General attn13; [12] General attn14; [13] General attn15; | ||
845 | [14] General attn16; [15] General attn17; [16] General attn18; [17] | ||
846 | General attn19; [18] General attn20; [19] General attn21; [20] Main power | ||
847 | interrupt; [21] RBCR Latched attn; [22] RBCT Latched attn; [23] RBCN | ||
848 | Latched attn; [24] RBCU Latched attn; [25] RBCP Latched attn; [26] GRC | ||
849 | Latched timeout attention; [27] GRC Latched reserved access attention; | ||
850 | [28] MCP Latched rom_parity; [29] MCP Latched ump_rx_parity; [30] MCP | ||
851 | Latched ump_tx_parity; [31] MCP Latched scpad_parity; */ | ||
852 | #define MISC_REG_AEU_AFTER_INVERT_4_FUNC_0 0xa450 | ||
853 | #define MISC_REG_AEU_AFTER_INVERT_4_FUNC_1 0xa454 | ||
854 | /* [R 32] read fourth 32 bit after inversion of mcp. mapped as follows: [0] | ||
855 | General attn2; [1] General attn3; [2] General attn4; [3] General attn5; | ||
856 | [4] General attn6; [5] General attn7; [6] General attn8; [7] General | ||
857 | attn9; [8] General attn10; [9] General attn11; [10] General attn12; [11] | ||
858 | General attn13; [12] General attn14; [13] General attn15; [14] General | ||
859 | attn16; [15] General attn17; [16] General attn18; [17] General attn19; | ||
860 | [18] General attn20; [19] General attn21; [20] Main power interrupt; [21] | ||
861 | RBCR Latched attn; [22] RBCT Latched attn; [23] RBCN Latched attn; [24] | ||
862 | RBCU Latched attn; [25] RBCP Latched attn; [26] GRC Latched timeout | ||
863 | attention; [27] GRC Latched reserved access attention; [28] MCP Latched | ||
864 | rom_parity; [29] MCP Latched ump_rx_parity; [30] MCP Latched | ||
865 | ump_tx_parity; [31] MCP Latched scpad_parity; */ | ||
866 | #define MISC_REG_AEU_AFTER_INVERT_4_MCP 0xa458 | ||
867 | /* [W 11] write to this register results with the clear of the latched | ||
868 | signals; one in d0 clears RBCR latch; one in d1 clears RBCT latch; one in | ||
869 | d2 clears RBCN latch; one in d3 clears RBCU latch; one in d4 clears RBCP | ||
870 | latch; one in d5 clears GRC Latched timeout attention; one in d6 clears | ||
871 | GRC Latched reserved access attention; one in d7 clears Latched | ||
872 | rom_parity; one in d8 clears Latched ump_rx_parity; one in d9 clears | ||
873 | Latched ump_tx_parity; one in d10 clears Latched scpad_parity; read from | ||
874 | this register return zero */ | ||
875 | #define MISC_REG_AEU_CLR_LATCH_SIGNAL 0xa45c | ||
876 | /* [RW 32] first 32b for enabling the output for function 0 output0. mapped | ||
877 | as follows: [0] NIG attention for function0; [1] NIG attention for | ||
878 | function1; [2] GPIO1 function 0; [3] GPIO2 function 0; [4] GPIO3 function | ||
879 | 0; [5] GPIO4 function 0; [6] GPIO1 function 1; [7] GPIO2 function 1; [8] | ||
880 | GPIO3 function 1; [9] GPIO4 function 1; [10] PCIE glue/PXP VPD event | ||
881 | function0; [11] PCIE glue/PXP VPD event function1; [12] PCIE glue/PXP | ||
882 | Expansion ROM event0; [13] PCIE glue/PXP Expansion ROM event1; [14] | ||
883 | SPIO4; [15] SPIO5; [16] MSI/X indication for function 0; [17] MSI/X | ||
884 | indication for function 1; [18] BRB Parity error; [19] BRB Hw interrupt; | ||
885 | [20] PRS Parity error; [21] PRS Hw interrupt; [22] SRC Parity error; [23] | ||
886 | SRC Hw interrupt; [24] TSDM Parity error; [25] TSDM Hw interrupt; [26] | ||
887 | TCM Parity error; [27] TCM Hw interrupt; [28] TSEMI Parity error; [29] | ||
888 | TSEMI Hw interrupt; [30] PBF Parity error; [31] PBF Hw interrupt; */ | ||
889 | #define MISC_REG_AEU_ENABLE1_FUNC_0_OUT_0 0xa06c | ||
890 | #define MISC_REG_AEU_ENABLE1_FUNC_0_OUT_1 0xa07c | ||
891 | #define MISC_REG_AEU_ENABLE1_FUNC_0_OUT_3 0xa09c | ||
892 | /* [RW 32] first 32b for enabling the output for function 1 output0. mapped | ||
893 | as follows: [0] NIG attention for function0; [1] NIG attention for | ||
894 | function1; [2] GPIO1 function 1; [3] GPIO2 function 1; [4] GPIO3 function | ||
895 | 1; [5] GPIO4 function 1; [6] GPIO1 function 1; [7] GPIO2 function 1; [8] | ||
896 | GPIO3 function 1; [9] GPIO4 function 1; [10] PCIE glue/PXP VPD event | ||
897 | function0; [11] PCIE glue/PXP VPD event function1; [12] PCIE glue/PXP | ||
898 | Expansion ROM event0; [13] PCIE glue/PXP Expansion ROM event1; [14] | ||
899 | SPIO4; [15] SPIO5; [16] MSI/X indication for function 1; [17] MSI/X | ||
900 | indication for function 1; [18] BRB Parity error; [19] BRB Hw interrupt; | ||
901 | [20] PRS Parity error; [21] PRS Hw interrupt; [22] SRC Parity error; [23] | ||
902 | SRC Hw interrupt; [24] TSDM Parity error; [25] TSDM Hw interrupt; [26] | ||
903 | TCM Parity error; [27] TCM Hw interrupt; [28] TSEMI Parity error; [29] | ||
904 | TSEMI Hw interrupt; [30] PBF Parity error; [31] PBF Hw interrupt; */ | ||
905 | #define MISC_REG_AEU_ENABLE1_FUNC_1_OUT_0 0xa10c | ||
906 | #define MISC_REG_AEU_ENABLE1_FUNC_1_OUT_1 0xa11c | ||
907 | #define MISC_REG_AEU_ENABLE1_FUNC_1_OUT_3 0xa13c | ||
908 | /* [RW 32] first 32b for enabling the output for close the gate nig 0. | ||
909 | mapped as follows: [0] NIG attention for function0; [1] NIG attention for | ||
910 | function1; [2] GPIO1 function 0; [3] GPIO2 function 0; [4] GPIO3 function | ||
911 | 0; [5] GPIO4 function 0; [6] GPIO1 function 1; [7] GPIO2 function 1; [8] | ||
912 | GPIO3 function 1; [9] GPIO4 function 1; [10] PCIE glue/PXP VPD event | ||
913 | function0; [11] PCIE glue/PXP VPD event function1; [12] PCIE glue/PXP | ||
914 | Expansion ROM event0; [13] PCIE glue/PXP Expansion ROM event1; [14] | ||
915 | SPIO4; [15] SPIO5; [16] MSI/X indication for function 0; [17] MSI/X | ||
916 | indication for function 1; [18] BRB Parity error; [19] BRB Hw interrupt; | ||
917 | [20] PRS Parity error; [21] PRS Hw interrupt; [22] SRC Parity error; [23] | ||
918 | SRC Hw interrupt; [24] TSDM Parity error; [25] TSDM Hw interrupt; [26] | ||
919 | TCM Parity error; [27] TCM Hw interrupt; [28] TSEMI Parity error; [29] | ||
920 | TSEMI Hw interrupt; [30] PBF Parity error; [31] PBF Hw interrupt; */ | ||
921 | #define MISC_REG_AEU_ENABLE1_NIG_0 0xa0ec | ||
922 | #define MISC_REG_AEU_ENABLE1_NIG_1 0xa18c | ||
923 | /* [RW 32] first 32b for enabling the output for close the gate pxp 0. | ||
924 | mapped as follows: [0] NIG attention for function0; [1] NIG attention for | ||
925 | function1; [2] GPIO1 function 0; [3] GPIO2 function 0; [4] GPIO3 function | ||
926 | 0; [5] GPIO4 function 0; [6] GPIO1 function 1; [7] GPIO2 function 1; [8] | ||
927 | GPIO3 function 1; [9] GPIO4 function 1; [10] PCIE glue/PXP VPD event | ||
928 | function0; [11] PCIE glue/PXP VPD event function1; [12] PCIE glue/PXP | ||
929 | Expansion ROM event0; [13] PCIE glue/PXP Expansion ROM event1; [14] | ||
930 | SPIO4; [15] SPIO5; [16] MSI/X indication for function 0; [17] MSI/X | ||
931 | indication for function 1; [18] BRB Parity error; [19] BRB Hw interrupt; | ||
932 | [20] PRS Parity error; [21] PRS Hw interrupt; [22] SRC Parity error; [23] | ||
933 | SRC Hw interrupt; [24] TSDM Parity error; [25] TSDM Hw interrupt; [26] | ||
934 | TCM Parity error; [27] TCM Hw interrupt; [28] TSEMI Parity error; [29] | ||
935 | TSEMI Hw interrupt; [30] PBF Parity error; [31] PBF Hw interrupt; */ | ||
936 | #define MISC_REG_AEU_ENABLE1_PXP_0 0xa0fc | ||
937 | #define MISC_REG_AEU_ENABLE1_PXP_1 0xa19c | ||
938 | /* [RW 32] second 32b for enabling the output for function 0 output0. mapped | ||
939 | as follows: [0] PBClient Parity error; [1] PBClient Hw interrupt; [2] QM | ||
940 | Parity error; [3] QM Hw interrupt; [4] Timers Parity error; [5] Timers Hw | ||
941 | interrupt; [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] XCM Parity | ||
942 | error; [9] XCM Hw interrupt; [10] XSEMI Parity error; [11] XSEMI Hw | ||
943 | interrupt; [12] DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14] | ||
944 | NIG Parity error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error; | ||
945 | [17] Vaux PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw | ||
946 | interrupt; [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM | ||
947 | Parity error; [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI | ||
948 | Hw interrupt; [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM | ||
949 | Parity error; [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw | ||
950 | interrupt; */ | ||
951 | #define MISC_REG_AEU_ENABLE2_FUNC_0_OUT_0 0xa070 | ||
952 | #define MISC_REG_AEU_ENABLE2_FUNC_0_OUT_1 0xa080 | ||
953 | /* [RW 32] second 32b for enabling the output for function 1 output0. mapped | ||
954 | as follows: [0] PBClient Parity error; [1] PBClient Hw interrupt; [2] QM | ||
955 | Parity error; [3] QM Hw interrupt; [4] Timers Parity error; [5] Timers Hw | ||
956 | interrupt; [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] XCM Parity | ||
957 | error; [9] XCM Hw interrupt; [10] XSEMI Parity error; [11] XSEMI Hw | ||
958 | interrupt; [12] DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14] | ||
959 | NIG Parity error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error; | ||
960 | [17] Vaux PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw | ||
961 | interrupt; [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM | ||
962 | Parity error; [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI | ||
963 | Hw interrupt; [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM | ||
964 | Parity error; [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw | ||
965 | interrupt; */ | ||
966 | #define MISC_REG_AEU_ENABLE2_FUNC_1_OUT_0 0xa110 | ||
967 | #define MISC_REG_AEU_ENABLE2_FUNC_1_OUT_1 0xa120 | ||
968 | /* [RW 32] second 32b for enabling the output for close the gate nig 0. | ||
969 | mapped as follows: [0] PBClient Parity error; [1] PBClient Hw interrupt; | ||
970 | [2] QM Parity error; [3] QM Hw interrupt; [4] Timers Parity error; [5] | ||
971 | Timers Hw interrupt; [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] | ||
972 | XCM Parity error; [9] XCM Hw interrupt; [10] XSEMI Parity error; [11] | ||
973 | XSEMI Hw interrupt; [12] DoorbellQ Parity error; [13] DoorbellQ Hw | ||
974 | interrupt; [14] NIG Parity error; [15] NIG Hw interrupt; [16] Vaux PCI | ||
975 | core Parity error; [17] Vaux PCI core Hw interrupt; [18] Debug Parity | ||
976 | error; [19] Debug Hw interrupt; [20] USDM Parity error; [21] USDM Hw | ||
977 | interrupt; [22] UCM Parity error; [23] UCM Hw interrupt; [24] USEMI | ||
978 | Parity error; [25] USEMI Hw interrupt; [26] UPB Parity error; [27] UPB Hw | ||
979 | interrupt; [28] CSDM Parity error; [29] CSDM Hw interrupt; [30] CCM | ||
980 | Parity error; [31] CCM Hw interrupt; */ | ||
981 | #define MISC_REG_AEU_ENABLE2_NIG_0 0xa0f0 | ||
982 | #define MISC_REG_AEU_ENABLE2_NIG_1 0xa190 | ||
983 | /* [RW 32] second 32b for enabling the output for close the gate pxp 0. | ||
984 | mapped as follows: [0] PBClient Parity error; [1] PBClient Hw interrupt; | ||
985 | [2] QM Parity error; [3] QM Hw interrupt; [4] Timers Parity error; [5] | ||
986 | Timers Hw interrupt; [6] XSDM Parity error; [7] XSDM Hw interrupt; [8] | ||
987 | XCM Parity error; [9] XCM Hw interrupt; [10] XSEMI Parity error; [11] | ||
988 | XSEMI Hw interrupt; [12] DoorbellQ Parity error; [13] DoorbellQ Hw | ||
989 | interrupt; [14] NIG Parity error; [15] NIG Hw interrupt; [16] Vaux PCI | ||
990 | core Parity error; [17] Vaux PCI core Hw interrupt; [18] Debug Parity | ||
991 | error; [19] Debug Hw interrupt; [20] USDM Parity error; [21] USDM Hw | ||
992 | interrupt; [22] UCM Parity error; [23] UCM Hw interrupt; [24] USEMI | ||
993 | Parity error; [25] USEMI Hw interrupt; [26] UPB Parity error; [27] UPB Hw | ||
994 | interrupt; [28] CSDM Parity error; [29] CSDM Hw interrupt; [30] CCM | ||
995 | Parity error; [31] CCM Hw interrupt; */ | ||
996 | #define MISC_REG_AEU_ENABLE2_PXP_0 0xa100 | ||
997 | #define MISC_REG_AEU_ENABLE2_PXP_1 0xa1a0 | ||
998 | /* [RW 32] third 32b for enabling the output for function 0 output0. mapped | ||
999 | as follows: [0] CSEMI Parity error; [1] CSEMI Hw interrupt; [2] PXP | ||
1000 | Parity error; [3] PXP Hw interrupt; [4] PXPpciClockClient Parity error; | ||
1001 | [5] PXPpciClockClient Hw interrupt; [6] CFC Parity error; [7] CFC Hw | ||
1002 | interrupt; [8] CDU Parity error; [9] CDU Hw interrupt; [10] DMAE Parity | ||
1003 | error; [11] DMAE Hw interrupt; [12] IGU (HC) Parity error; [13] IGU (HC) | ||
1004 | Hw interrupt; [14] MISC Parity error; [15] MISC Hw interrupt; [16] | ||
1005 | pxp_misc_mps_attn; [17] Flash event; [18] SMB event; [19] MCP attn0; [20] | ||
1006 | MCP attn1; [21] SW timers attn_1 func0; [22] SW timers attn_2 func0; [23] | ||
1007 | SW timers attn_3 func0; [24] SW timers attn_4 func0; [25] PERST; [26] SW | ||
1008 | timers attn_1 func1; [27] SW timers attn_2 func1; [28] SW timers attn_3 | ||
1009 | func1; [29] SW timers attn_4 func1; [30] General attn0; [31] General | ||
1010 | attn1; */ | ||
1011 | #define MISC_REG_AEU_ENABLE3_FUNC_0_OUT_0 0xa074 | ||
1012 | #define MISC_REG_AEU_ENABLE3_FUNC_0_OUT_1 0xa084 | ||
1013 | /* [RW 32] third 32b for enabling the output for function 1 output0. mapped | ||
1014 | as follows: [0] CSEMI Parity error; [1] CSEMI Hw interrupt; [2] PXP | ||
1015 | Parity error; [3] PXP Hw interrupt; [4] PXPpciClockClient Parity error; | ||
1016 | [5] PXPpciClockClient Hw interrupt; [6] CFC Parity error; [7] CFC Hw | ||
1017 | interrupt; [8] CDU Parity error; [9] CDU Hw interrupt; [10] DMAE Parity | ||
1018 | error; [11] DMAE Hw interrupt; [12] IGU (HC) Parity error; [13] IGU (HC) | ||
1019 | Hw interrupt; [14] MISC Parity error; [15] MISC Hw interrupt; [16] | ||
1020 | pxp_misc_mps_attn; [17] Flash event; [18] SMB event; [19] MCP attn0; [20] | ||
1021 | MCP attn1; [21] SW timers attn_1 func0; [22] SW timers attn_2 func0; [23] | ||
1022 | SW timers attn_3 func0; [24] SW timers attn_4 func0; [25] PERST; [26] SW | ||
1023 | timers attn_1 func1; [27] SW timers attn_2 func1; [28] SW timers attn_3 | ||
1024 | func1; [29] SW timers attn_4 func1; [30] General attn0; [31] General | ||
1025 | attn1; */ | ||
1026 | #define MISC_REG_AEU_ENABLE3_FUNC_1_OUT_0 0xa114 | ||
1027 | #define MISC_REG_AEU_ENABLE3_FUNC_1_OUT_1 0xa124 | ||
1028 | /* [RW 32] third 32b for enabling the output for close the gate nig 0. | ||
1029 | mapped as follows: [0] CSEMI Parity error; [1] CSEMI Hw interrupt; [2] | ||
1030 | PXP Parity error; [3] PXP Hw interrupt; [4] PXPpciClockClient Parity | ||
1031 | error; [5] PXPpciClockClient Hw interrupt; [6] CFC Parity error; [7] CFC | ||
1032 | Hw interrupt; [8] CDU Parity error; [9] CDU Hw interrupt; [10] DMAE | ||
1033 | Parity error; [11] DMAE Hw interrupt; [12] IGU (HC) Parity error; [13] | ||
1034 | IGU (HC) Hw interrupt; [14] MISC Parity error; [15] MISC Hw interrupt; | ||
1035 | [16] pxp_misc_mps_attn; [17] Flash event; [18] SMB event; [19] MCP attn0; | ||
1036 | [20] MCP attn1; [21] SW timers attn_1 func0; [22] SW timers attn_2 func0; | ||
1037 | [23] SW timers attn_3 func0; [24] SW timers attn_4 func0; [25] PERST; | ||
1038 | [26] SW timers attn_1 func1; [27] SW timers attn_2 func1; [28] SW timers | ||
1039 | attn_3 func1; [29] SW timers attn_4 func1; [30] General attn0; [31] | ||
1040 | General attn1; */ | ||
1041 | #define MISC_REG_AEU_ENABLE3_NIG_0 0xa0f4 | ||
1042 | #define MISC_REG_AEU_ENABLE3_NIG_1 0xa194 | ||
1043 | /* [RW 32] third 32b for enabling the output for close the gate pxp 0. | ||
1044 | mapped as follows: [0] CSEMI Parity error; [1] CSEMI Hw interrupt; [2] | ||
1045 | PXP Parity error; [3] PXP Hw interrupt; [4] PXPpciClockClient Parity | ||
1046 | error; [5] PXPpciClockClient Hw interrupt; [6] CFC Parity error; [7] CFC | ||
1047 | Hw interrupt; [8] CDU Parity error; [9] CDU Hw interrupt; [10] DMAE | ||
1048 | Parity error; [11] DMAE Hw interrupt; [12] IGU (HC) Parity error; [13] | ||
1049 | IGU (HC) Hw interrupt; [14] MISC Parity error; [15] MISC Hw interrupt; | ||
1050 | [16] pxp_misc_mps_attn; [17] Flash event; [18] SMB event; [19] MCP attn0; | ||
1051 | [20] MCP attn1; [21] SW timers attn_1 func0; [22] SW timers attn_2 func0; | ||
1052 | [23] SW timers attn_3 func0; [24] SW timers attn_4 func0; [25] PERST; | ||
1053 | [26] SW timers attn_1 func1; [27] SW timers attn_2 func1; [28] SW timers | ||
1054 | attn_3 func1; [29] SW timers attn_4 func1; [30] General attn0; [31] | ||
1055 | General attn1; */ | ||
1056 | #define MISC_REG_AEU_ENABLE3_PXP_0 0xa104 | ||
1057 | #define MISC_REG_AEU_ENABLE3_PXP_1 0xa1a4 | ||
1058 | /* [RW 32] fourth 32b for enabling the output for function 0 output0.mapped | ||
1059 | as follows: [0] General attn2; [1] General attn3; [2] General attn4; [3] | ||
1060 | General attn5; [4] General attn6; [5] General attn7; [6] General attn8; | ||
1061 | [7] General attn9; [8] General attn10; [9] General attn11; [10] General | ||
1062 | attn12; [11] General attn13; [12] General attn14; [13] General attn15; | ||
1063 | [14] General attn16; [15] General attn17; [16] General attn18; [17] | ||
1064 | General attn19; [18] General attn20; [19] General attn21; [20] Main power | ||
1065 | interrupt; [21] RBCR Latched attn; [22] RBCT Latched attn; [23] RBCN | ||
1066 | Latched attn; [24] RBCU Latched attn; [25] RBCP Latched attn; [26] GRC | ||
1067 | Latched timeout attention; [27] GRC Latched reserved access attention; | ||
1068 | [28] MCP Latched rom_parity; [29] MCP Latched ump_rx_parity; [30] MCP | ||
1069 | Latched ump_tx_parity; [31] MCP Latched scpad_parity; */ | ||
1070 | #define MISC_REG_AEU_ENABLE4_FUNC_0_OUT_0 0xa078 | ||
1071 | #define MISC_REG_AEU_ENABLE4_FUNC_0_OUT_2 0xa098 | ||
1072 | /* [RW 32] fourth 32b for enabling the output for function 1 output0.mapped | ||
1073 | as follows: [0] General attn2; [1] General attn3; [2] General attn4; [3] | ||
1074 | General attn5; [4] General attn6; [5] General attn7; [6] General attn8; | ||
1075 | [7] General attn9; [8] General attn10; [9] General attn11; [10] General | ||
1076 | attn12; [11] General attn13; [12] General attn14; [13] General attn15; | ||
1077 | [14] General attn16; [15] General attn17; [16] General attn18; [17] | ||
1078 | General attn19; [18] General attn20; [19] General attn21; [20] Main power | ||
1079 | interrupt; [21] RBCR Latched attn; [22] RBCT Latched attn; [23] RBCN | ||
1080 | Latched attn; [24] RBCU Latched attn; [25] RBCP Latched attn; [26] GRC | ||
1081 | Latched timeout attention; [27] GRC Latched reserved access attention; | ||
1082 | [28] MCP Latched rom_parity; [29] MCP Latched ump_rx_parity; [30] MCP | ||
1083 | Latched ump_tx_parity; [31] MCP Latched scpad_parity; */ | ||
1084 | #define MISC_REG_AEU_ENABLE4_FUNC_1_OUT_0 0xa118 | ||
1085 | #define MISC_REG_AEU_ENABLE4_FUNC_1_OUT_2 0xa138 | ||
1086 | /* [RW 32] fourth 32b for enabling the output for close the gate nig | ||
1087 | 0.mapped as follows: [0] General attn2; [1] General attn3; [2] General | ||
1088 | attn4; [3] General attn5; [4] General attn6; [5] General attn7; [6] | ||
1089 | General attn8; [7] General attn9; [8] General attn10; [9] General attn11; | ||
1090 | [10] General attn12; [11] General attn13; [12] General attn14; [13] | ||
1091 | General attn15; [14] General attn16; [15] General attn17; [16] General | ||
1092 | attn18; [17] General attn19; [18] General attn20; [19] General attn21; | ||
1093 | [20] Main power interrupt; [21] RBCR Latched attn; [22] RBCT Latched | ||
1094 | attn; [23] RBCN Latched attn; [24] RBCU Latched attn; [25] RBCP Latched | ||
1095 | attn; [26] GRC Latched timeout attention; [27] GRC Latched reserved | ||
1096 | access attention; [28] MCP Latched rom_parity; [29] MCP Latched | ||
1097 | ump_rx_parity; [30] MCP Latched ump_tx_parity; [31] MCP Latched | ||
1098 | scpad_parity; */ | ||
1099 | #define MISC_REG_AEU_ENABLE4_NIG_0 0xa0f8 | ||
1100 | #define MISC_REG_AEU_ENABLE4_NIG_1 0xa198 | ||
1101 | /* [RW 32] fourth 32b for enabling the output for close the gate pxp | ||
1102 | 0.mapped as follows: [0] General attn2; [1] General attn3; [2] General | ||
1103 | attn4; [3] General attn5; [4] General attn6; [5] General attn7; [6] | ||
1104 | General attn8; [7] General attn9; [8] General attn10; [9] General attn11; | ||
1105 | [10] General attn12; [11] General attn13; [12] General attn14; [13] | ||
1106 | General attn15; [14] General attn16; [15] General attn17; [16] General | ||
1107 | attn18; [17] General attn19; [18] General attn20; [19] General attn21; | ||
1108 | [20] Main power interrupt; [21] RBCR Latched attn; [22] RBCT Latched | ||
1109 | attn; [23] RBCN Latched attn; [24] RBCU Latched attn; [25] RBCP Latched | ||
1110 | attn; [26] GRC Latched timeout attention; [27] GRC Latched reserved | ||
1111 | access attention; [28] MCP Latched rom_parity; [29] MCP Latched | ||
1112 | ump_rx_parity; [30] MCP Latched ump_tx_parity; [31] MCP Latched | ||
1113 | scpad_parity; */ | ||
1114 | #define MISC_REG_AEU_ENABLE4_PXP_0 0xa108 | ||
1115 | #define MISC_REG_AEU_ENABLE4_PXP_1 0xa1a8 | ||
1116 | /* [RW 1] set/clr general attention 0; this will set/clr bit 94 in the aeu | ||
1117 | 128 bit vector */ | ||
1118 | #define MISC_REG_AEU_GENERAL_ATTN_0 0xa000 | ||
1119 | #define MISC_REG_AEU_GENERAL_ATTN_1 0xa004 | ||
1120 | #define MISC_REG_AEU_GENERAL_ATTN_10 0xa028 | ||
1121 | #define MISC_REG_AEU_GENERAL_ATTN_11 0xa02c | ||
1122 | #define MISC_REG_AEU_GENERAL_ATTN_12 0xa030 | ||
1123 | #define MISC_REG_AEU_GENERAL_ATTN_13 0xa034 | ||
1124 | #define MISC_REG_AEU_GENERAL_ATTN_14 0xa038 | ||
1125 | #define MISC_REG_AEU_GENERAL_ATTN_15 0xa03c | ||
1126 | #define MISC_REG_AEU_GENERAL_ATTN_16 0xa040 | ||
1127 | #define MISC_REG_AEU_GENERAL_ATTN_17 0xa044 | ||
1128 | #define MISC_REG_AEU_GENERAL_ATTN_18 0xa048 | ||
1129 | #define MISC_REG_AEU_GENERAL_ATTN_19 0xa04c | ||
1130 | #define MISC_REG_AEU_GENERAL_ATTN_11 0xa02c | ||
1131 | #define MISC_REG_AEU_GENERAL_ATTN_2 0xa008 | ||
1132 | #define MISC_REG_AEU_GENERAL_ATTN_20 0xa050 | ||
1133 | #define MISC_REG_AEU_GENERAL_ATTN_21 0xa054 | ||
1134 | #define MISC_REG_AEU_GENERAL_ATTN_3 0xa00c | ||
1135 | #define MISC_REG_AEU_GENERAL_ATTN_4 0xa010 | ||
1136 | #define MISC_REG_AEU_GENERAL_ATTN_5 0xa014 | ||
1137 | #define MISC_REG_AEU_GENERAL_ATTN_6 0xa018 | ||
1138 | /* [RW 32] first 32b for inverting the input for function 0; for each bit: | ||
1139 | 0= do not invert; 1= invert; mapped as follows: [0] NIG attention for | ||
1140 | function0; [1] NIG attention for function1; [2] GPIO1 mcp; [3] GPIO2 mcp; | ||
1141 | [4] GPIO3 mcp; [5] GPIO4 mcp; [6] GPIO1 function 1; [7] GPIO2 function 1; | ||
1142 | [8] GPIO3 function 1; [9] GPIO4 function 1; [10] PCIE glue/PXP VPD event | ||
1143 | function0; [11] PCIE glue/PXP VPD event function1; [12] PCIE glue/PXP | ||
1144 | Expansion ROM event0; [13] PCIE glue/PXP Expansion ROM event1; [14] | ||
1145 | SPIO4; [15] SPIO5; [16] MSI/X indication for mcp; [17] MSI/X indication | ||
1146 | for function 1; [18] BRB Parity error; [19] BRB Hw interrupt; [20] PRS | ||
1147 | Parity error; [21] PRS Hw interrupt; [22] SRC Parity error; [23] SRC Hw | ||
1148 | interrupt; [24] TSDM Parity error; [25] TSDM Hw interrupt; [26] TCM | ||
1149 | Parity error; [27] TCM Hw interrupt; [28] TSEMI Parity error; [29] TSEMI | ||
1150 | Hw interrupt; [30] PBF Parity error; [31] PBF Hw interrupt; */ | ||
1151 | #define MISC_REG_AEU_INVERTER_1_FUNC_0 0xa22c | ||
1152 | #define MISC_REG_AEU_INVERTER_1_FUNC_1 0xa23c | ||
1153 | /* [RW 32] second 32b for inverting the input for function 0; for each bit: | ||
1154 | 0= do not invert; 1= invert. mapped as follows: [0] PBClient Parity | ||
1155 | error; [1] PBClient Hw interrupt; [2] QM Parity error; [3] QM Hw | ||
1156 | interrupt; [4] Timers Parity error; [5] Timers Hw interrupt; [6] XSDM | ||
1157 | Parity error; [7] XSDM Hw interrupt; [8] XCM Parity error; [9] XCM Hw | ||
1158 | interrupt; [10] XSEMI Parity error; [11] XSEMI Hw interrupt; [12] | ||
1159 | DoorbellQ Parity error; [13] DoorbellQ Hw interrupt; [14] NIG Parity | ||
1160 | error; [15] NIG Hw interrupt; [16] Vaux PCI core Parity error; [17] Vaux | ||
1161 | PCI core Hw interrupt; [18] Debug Parity error; [19] Debug Hw interrupt; | ||
1162 | [20] USDM Parity error; [21] USDM Hw interrupt; [22] UCM Parity error; | ||
1163 | [23] UCM Hw interrupt; [24] USEMI Parity error; [25] USEMI Hw interrupt; | ||
1164 | [26] UPB Parity error; [27] UPB Hw interrupt; [28] CSDM Parity error; | ||
1165 | [29] CSDM Hw interrupt; [30] CCM Parity error; [31] CCM Hw interrupt; */ | ||
1166 | #define MISC_REG_AEU_INVERTER_2_FUNC_0 0xa230 | ||
1167 | #define MISC_REG_AEU_INVERTER_2_FUNC_1 0xa240 | ||
1168 | /* [RW 10] [7:0] = mask 8 attention output signals toward IGU function0; | ||
1169 | [9:8] = mask close the gates signals of function 0 toward PXP [8] and NIG | ||
1170 | [9]. Zero = mask; one = unmask */ | ||
1171 | #define MISC_REG_AEU_MASK_ATTN_FUNC_0 0xa060 | ||
1172 | #define MISC_REG_AEU_MASK_ATTN_FUNC_1 0xa064 | ||
1173 | /* [R 4] This field indicates the type of the device. '0' - 2 Ports; '1' - 1 | ||
1174 | Port. */ | ||
1175 | #define MISC_REG_BOND_ID 0xa400 | ||
1176 | /* [R 8] These bits indicate the metal revision of the chip. This value | ||
1177 | starts at 0x00 for each all-layer tape-out and increments by one for each | ||
1178 | tape-out. */ | ||
1179 | #define MISC_REG_CHIP_METAL 0xa404 | ||
1180 | /* [R 16] These bits indicate the part number for the chip. */ | ||
1181 | #define MISC_REG_CHIP_NUM 0xa408 | ||
1182 | /* [R 4] These bits indicate the base revision of the chip. This value | ||
1183 | starts at 0x0 for the A0 tape-out and increments by one for each | ||
1184 | all-layer tape-out. */ | ||
1185 | #define MISC_REG_CHIP_REV 0xa40c | ||
1186 | /* [RW 1] Setting this bit enables a timer in the GRC block to timeout any | ||
1187 | access that does not finish within | ||
1188 | ~misc_registers_grc_timout_val.grc_timeout_val cycles. When this bit is | ||
1189 | cleared; this timeout is disabled. If this timeout occurs; the GRC shall | ||
1190 | assert it attention output. */ | ||
1191 | #define MISC_REG_GRC_TIMEOUT_EN 0xa280 | ||
1192 | /* [RW 28] 28 LSB of LCPLL first register; reset val = 521. inside order of | ||
1193 | the bits is: [2:0] OAC reset value 001) CML output buffer bias control; | ||
1194 | 111 for +40%; 011 for +20%; 001 for 0%; 000 for -20%. [5:3] Icp_ctrl | ||
1195 | (reset value 001) Charge pump current control; 111 for 720u; 011 for | ||
1196 | 600u; 001 for 480u and 000 for 360u. [7:6] Bias_ctrl (reset value 00) | ||
1197 | Global bias control; When bit 7 is high bias current will be 10 0gh; When | ||
1198 | bit 6 is high bias will be 100w; Valid values are 00; 10; 01. [10:8] | ||
1199 | Pll_observe (reset value 010) Bits to control observability. bit 10 is | ||
1200 | for test bias; bit 9 is for test CK; bit 8 is test Vc. [12:11] Vth_ctrl | ||
1201 | (reset value 00) Comparator threshold control. 00 for 0.6V; 01 for 0.54V | ||
1202 | and 10 for 0.66V. [13] pllSeqStart (reset value 0) Enables VCO tuning | ||
1203 | sequencer: 1= sequencer disabled; 0= sequencer enabled (inverted | ||
1204 | internally). [14] reserved (reset value 0) Reset for VCO sequencer is | ||
1205 | connected to RESET input directly. [15] capRetry_en (reset value 0) | ||
1206 | enable retry on cap search failure (inverted). [16] freqMonitor_e (reset | ||
1207 | value 0) bit to continuously monitor vco freq (inverted). [17] | ||
1208 | freqDetRestart_en (reset value 0) bit to enable restart when not freq | ||
1209 | locked (inverted). [18] freqDetRetry_en (reset value 0) bit to enable | ||
1210 | retry on freq det failure(inverted). [19] pllForceFdone_en (reset value | ||
1211 | 0) bit to enable pllForceFdone & pllForceFpass into pllSeq. [20] | ||
1212 | pllForceFdone (reset value 0) bit to force freqDone. [21] pllForceFpass | ||
1213 | (reset value 0) bit to force freqPass. [22] pllForceDone_en (reset value | ||
1214 | 0) bit to enable pllForceCapDone. [23] pllForceCapDone (reset value 0) | ||
1215 | bit to force capDone. [24] pllForceCapPass_en (reset value 0) bit to | ||
1216 | enable pllForceCapPass. [25] pllForceCapPass (reset value 0) bit to force | ||
1217 | capPass. [26] capRestart (reset value 0) bit to force cap sequencer to | ||
1218 | restart. [27] capSelectM_en (reset value 0) bit to enable cap select | ||
1219 | register bits. */ | ||
1220 | #define MISC_REG_LCPLL_CTRL_1 0xa2a4 | ||
1221 | #define MISC_REG_LCPLL_CTRL_REG_2 0xa2a8 | ||
1222 | /* [RW 4] Interrupt mask register #0 read/write */ | ||
1223 | #define MISC_REG_MISC_INT_MASK 0xa388 | ||
1224 | /* [RW 1] Parity mask register #0 read/write */ | ||
1225 | #define MISC_REG_MISC_PRTY_MASK 0xa398 | ||
1226 | /* [RW 32] 32 LSB of storm PLL first register; reset val = 0x 071d2911. | ||
1227 | inside order of the bits is: [0] P1 divider[0] (reset value 1); [1] P1 | ||
1228 | divider[1] (reset value 0); [2] P1 divider[2] (reset value 0); [3] P1 | ||
1229 | divider[3] (reset value 0); [4] P2 divider[0] (reset value 1); [5] P2 | ||
1230 | divider[1] (reset value 0); [6] P2 divider[2] (reset value 0); [7] P2 | ||
1231 | divider[3] (reset value 0); [8] ph_det_dis (reset value 1); [9] | ||
1232 | freq_det_dis (reset value 0); [10] Icpx[0] (reset value 0); [11] Icpx[1] | ||
1233 | (reset value 1); [12] Icpx[2] (reset value 0); [13] Icpx[3] (reset value | ||
1234 | 1); [14] Icpx[4] (reset value 0); [15] Icpx[5] (reset value 0); [16] | ||
1235 | Rx[0] (reset value 1); [17] Rx[1] (reset value 0); [18] vc_en (reset | ||
1236 | value 1); [19] vco_rng[0] (reset value 1); [20] vco_rng[1] (reset value | ||
1237 | 1); [21] Kvco_xf[0] (reset value 0); [22] Kvco_xf[1] (reset value 0); | ||
1238 | [23] Kvco_xf[2] (reset value 0); [24] Kvco_xs[0] (reset value 1); [25] | ||
1239 | Kvco_xs[1] (reset value 1); [26] Kvco_xs[2] (reset value 1); [27] | ||
1240 | testd_en (reset value 0); [28] testd_sel[0] (reset value 0); [29] | ||
1241 | testd_sel[1] (reset value 0); [30] testd_sel[2] (reset value 0); [31] | ||
1242 | testa_en (reset value 0); */ | ||
1243 | #define MISC_REG_PLL_STORM_CTRL_1 0xa294 | ||
1244 | #define MISC_REG_PLL_STORM_CTRL_2 0xa298 | ||
1245 | #define MISC_REG_PLL_STORM_CTRL_3 0xa29c | ||
1246 | #define MISC_REG_PLL_STORM_CTRL_4 0xa2a0 | ||
1247 | /* [RW 32] reset reg#1; rite/read one = the specific block is out of reset; | ||
1248 | write/read zero = the specific block is in reset; addr 0-wr- the write | ||
1249 | value will be written to the register; addr 1-set - one will be written | ||
1250 | to all the bits that have the value of one in the data written (bits that | ||
1251 | have the value of zero will not be change) ; addr 2-clear - zero will be | ||
1252 | written to all the bits that have the value of one in the data written | ||
1253 | (bits that have the value of zero will not be change); addr 3-ignore; | ||
1254 | read ignore from all addr except addr 00; inside order of the bits is: | ||
1255 | [0] rst_brb1; [1] rst_prs; [2] rst_src; [3] rst_tsdm; [4] rst_tsem; [5] | ||
1256 | rst_tcm; [6] rst_rbcr; [7] rst_nig; [8] rst_usdm; [9] rst_ucm; [10] | ||
1257 | rst_usem; [11] rst_upb; [12] rst_ccm; [13] rst_csem; [14] rst_csdm; [15] | ||
1258 | rst_rbcu; [16] rst_pbf; [17] rst_qm; [18] rst_tm; [19] rst_dorq; [20] | ||
1259 | rst_xcm; [21] rst_xsdm; [22] rst_xsem; [23] rst_rbct; [24] rst_cdu; [25] | ||
1260 | rst_cfc; [26] rst_pxp; [27] rst_pxpv; [28] rst_rbcp; [29] rst_hc; [30] | ||
1261 | rst_dmae; [31] rst_semi_rtc; */ | ||
1262 | #define MISC_REG_RESET_REG_1 0xa580 | ||
1263 | #define MISC_REG_RESET_REG_2 0xa590 | ||
1264 | /* [RW 20] 20 bit GRC address where the scratch-pad of the MCP that is | ||
1265 | shared with the driver resides */ | ||
1266 | #define MISC_REG_SHARED_MEM_ADDR 0xa2b4 | ||
1267 | #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_EMAC0_MISC_MI_INT (0x1<<0) | ||
1268 | #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_SERDES0_LINK_STATUS (0x1<<9) | ||
1269 | #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_XGXS0_LINK10G (0x1<<15) | ||
1270 | #define NIG_MASK_INTERRUPT_PORT0_REG_MASK_XGXS0_LINK_STATUS (0xf<<18) | ||
1271 | /* [RW 1] Input enable for RX_BMAC0 IF */ | ||
1272 | #define NIG_REG_BMAC0_IN_EN 0x100ac | ||
1273 | /* [RW 1] output enable for TX_BMAC0 IF */ | ||
1274 | #define NIG_REG_BMAC0_OUT_EN 0x100e0 | ||
1275 | /* [RW 1] output enable for TX BMAC pause port 0 IF */ | ||
1276 | #define NIG_REG_BMAC0_PAUSE_OUT_EN 0x10110 | ||
1277 | /* [RW 1] output enable for RX_BMAC0_REGS IF */ | ||
1278 | #define NIG_REG_BMAC0_REGS_OUT_EN 0x100e8 | ||
1279 | /* [RW 1] output enable for RX BRB1 port0 IF */ | ||
1280 | #define NIG_REG_BRB0_OUT_EN 0x100f8 | ||
1281 | /* [RW 1] Input enable for TX BRB1 pause port 0 IF */ | ||
1282 | #define NIG_REG_BRB0_PAUSE_IN_EN 0x100c4 | ||
1283 | /* [RW 1] output enable for RX BRB1 port1 IF */ | ||
1284 | #define NIG_REG_BRB1_OUT_EN 0x100fc | ||
1285 | /* [RW 1] Input enable for TX BRB1 pause port 1 IF */ | ||
1286 | #define NIG_REG_BRB1_PAUSE_IN_EN 0x100c8 | ||
1287 | /* [RW 1] output enable for RX BRB1 LP IF */ | ||
1288 | #define NIG_REG_BRB_LB_OUT_EN 0x10100 | ||
1289 | /* [WB_W 72] Debug packet to LP from RBC; Data spelling:[63:0] data; 64] | ||
1290 | error; [67:65]eop_bvalid; [68]eop; [69]sop; [70]port_id; 71]flush */ | ||
1291 | #define NIG_REG_DEBUG_PACKET_LB 0x10800 | ||
1292 | /* [RW 1] Input enable for TX Debug packet */ | ||
1293 | #define NIG_REG_EGRESS_DEBUG_IN_EN 0x100dc | ||
1294 | /* [RW 1] If 1 - egress drain mode for port0 is active. In this mode all | ||
1295 | packets from PBFare not forwarded to the MAC and just deleted from FIFO. | ||
1296 | First packet may be deleted from the middle. And last packet will be | ||
1297 | always deleted till the end. */ | ||
1298 | #define NIG_REG_EGRESS_DRAIN0_MODE 0x10060 | ||
1299 | /* [RW 1] Output enable to EMAC0 */ | ||
1300 | #define NIG_REG_EGRESS_EMAC0_OUT_EN 0x10120 | ||
1301 | /* [RW 1] MAC configuration for packets of port0. If 1 - all packet outputs | ||
1302 | to emac for port0; other way to bmac for port0 */ | ||
1303 | #define NIG_REG_EGRESS_EMAC0_PORT 0x10058 | ||
1304 | /* [RW 1] Input enable for TX PBF user packet port0 IF */ | ||
1305 | #define NIG_REG_EGRESS_PBF0_IN_EN 0x100cc | ||
1306 | /* [RW 1] Input enable for TX PBF user packet port1 IF */ | ||
1307 | #define NIG_REG_EGRESS_PBF1_IN_EN 0x100d0 | ||
1308 | /* [RW 1] Input enable for RX_EMAC0 IF */ | ||
1309 | #define NIG_REG_EMAC0_IN_EN 0x100a4 | ||
1310 | /* [RW 1] output enable for TX EMAC pause port 0 IF */ | ||
1311 | #define NIG_REG_EMAC0_PAUSE_OUT_EN 0x10118 | ||
1312 | /* [R 1] status from emac0. This bit is set when MDINT from either the | ||
1313 | EXT_MDINT pin or from the Copper PHY is driven low. This condition must | ||
1314 | be cleared in the attached PHY device that is driving the MINT pin. */ | ||
1315 | #define NIG_REG_EMAC0_STATUS_MISC_MI_INT 0x10494 | ||
1316 | /* [WB 48] This address space contains BMAC0 registers. The BMAC registers | ||
1317 | are described in appendix A. In order to access the BMAC0 registers; the | ||
1318 | base address; NIG_REGISTERS_INGRESS_BMAC0_MEM; Offset: 0x10c00; should be | ||
1319 | added to each BMAC register offset */ | ||
1320 | #define NIG_REG_INGRESS_BMAC0_MEM 0x10c00 | ||
1321 | /* [WB 48] This address space contains BMAC1 registers. The BMAC registers | ||
1322 | are described in appendix A. In order to access the BMAC0 registers; the | ||
1323 | base address; NIG_REGISTERS_INGRESS_BMAC1_MEM; Offset: 0x11000; should be | ||
1324 | added to each BMAC register offset */ | ||
1325 | #define NIG_REG_INGRESS_BMAC1_MEM 0x11000 | ||
1326 | /* [R 1] FIFO empty in EOP descriptor FIFO of LP in NIG_RX_EOP */ | ||
1327 | #define NIG_REG_INGRESS_EOP_LB_EMPTY 0x104e0 | ||
1328 | /* [RW 17] Debug only. RX_EOP_DSCR_lb_FIFO in NIG_RX_EOP. Data | ||
1329 | packet_length[13:0]; mac_error[14]; trunc_error[15]; parity[16] */ | ||
1330 | #define NIG_REG_INGRESS_EOP_LB_FIFO 0x104e4 | ||
1331 | /* [RW 1] led 10g for port 0 */ | ||
1332 | #define NIG_REG_LED_10G_P0 0x10320 | ||
1333 | /* [RW 1] Port0: This bit is set to enable the use of the | ||
1334 | ~nig_registers_led_control_blink_rate_p0.led_control_blink_rate_p0 field | ||
1335 | defined below. If this bit is cleared; then the blink rate will be about | ||
1336 | 8Hz. */ | ||
1337 | #define NIG_REG_LED_CONTROL_BLINK_RATE_ENA_P0 0x10318 | ||
1338 | /* [RW 12] Port0: Specifies the period of each blink cycle (on + off) for | ||
1339 | Traffic LED in milliseconds. Must be a non-zero value. This 12-bit field | ||
1340 | is reset to 0x080; giving a default blink period of approximately 8Hz. */ | ||
1341 | #define NIG_REG_LED_CONTROL_BLINK_RATE_P0 0x10310 | ||
1342 | /* [RW 1] Port0: If set along with the | ||
1343 | nig_registers_led_control_override_traffic_p0.led_control_override_traffic_p0 | ||
1344 | bit and ~nig_registers_led_control_traffic_p0.led_control_traffic_p0 LED | ||
1345 | bit; the Traffic LED will blink with the blink rate specified in | ||
1346 | ~nig_registers_led_control_blink_rate_p0.led_control_blink_rate_p0 and | ||
1347 | ~nig_registers_led_control_blink_rate_ena_p0.led_control_blink_rate_ena_p0 | ||
1348 | fields. */ | ||
1349 | #define NIG_REG_LED_CONTROL_BLINK_TRAFFIC_P0 0x10308 | ||
1350 | /* [RW 1] Port0: If set overrides hardware control of the Traffic LED. The | ||
1351 | Traffic LED will then be controlled via bit ~nig_registers_ | ||
1352 | led_control_traffic_p0.led_control_traffic_p0 and bit | ||
1353 | ~nig_registers_led_control_blink_traffic_p0.led_control_blink_traffic_p0 */ | ||
1354 | #define NIG_REG_LED_CONTROL_OVERRIDE_TRAFFIC_P0 0x102f8 | ||
1355 | /* [RW 1] Port0: If set along with the led_control_override_trafic_p0 bit; | ||
1356 | turns on the Traffic LED. If the led_control_blink_traffic_p0 bit is also | ||
1357 | set; the LED will blink with blink rate specified in | ||
1358 | ~nig_registers_led_control_blink_rate_p0.led_control_blink_rate_p0 and | ||
1359 | ~nig_regsters_led_control_blink_rate_ena_p0.led_control_blink_rate_ena_p0 | ||
1360 | fields. */ | ||
1361 | #define NIG_REG_LED_CONTROL_TRAFFIC_P0 0x10300 | ||
1362 | /* [RW 4] led mode for port0: 0 MAC; 1-3 PHY1; 4 MAC2; 5-7 PHY4; 8-MAC3; | ||
1363 | 9-11PHY7; 12 MAC4; 13-15 PHY10; */ | ||
1364 | #define NIG_REG_LED_MODE_P0 0x102f0 | ||
1365 | #define NIG_REG_LLH0_BRB1_DRV_MASK 0x10244 | ||
1366 | /* [RW 1] send to BRB1 if no match on any of RMP rules. */ | ||
1367 | #define NIG_REG_LLH0_BRB1_NOT_MCP 0x1025c | ||
1368 | /* [RW 32] cm header for llh0 */ | ||
1369 | #define NIG_REG_LLH0_CM_HEADER 0x1007c | ||
1370 | #define NIG_REG_LLH0_ERROR_MASK 0x1008c | ||
1371 | /* [RW 8] event id for llh0 */ | ||
1372 | #define NIG_REG_LLH0_EVENT_ID 0x10084 | ||
1373 | /* [RW 8] init credit counter for port0 in LLH */ | ||
1374 | #define NIG_REG_LLH0_XCM_INIT_CREDIT 0x10554 | ||
1375 | #define NIG_REG_LLH0_XCM_MASK 0x10130 | ||
1376 | /* [RW 1] send to BRB1 if no match on any of RMP rules. */ | ||
1377 | #define NIG_REG_LLH1_BRB1_NOT_MCP 0x102dc | ||
1378 | /* [RW 32] cm header for llh1 */ | ||
1379 | #define NIG_REG_LLH1_CM_HEADER 0x10080 | ||
1380 | #define NIG_REG_LLH1_ERROR_MASK 0x10090 | ||
1381 | /* [RW 8] event id for llh1 */ | ||
1382 | #define NIG_REG_LLH1_EVENT_ID 0x10088 | ||
1383 | /* [RW 8] init credit counter for port1 in LLH */ | ||
1384 | #define NIG_REG_LLH1_XCM_INIT_CREDIT 0x10564 | ||
1385 | #define NIG_REG_LLH1_XCM_MASK 0x10134 | ||
1386 | #define NIG_REG_MASK_INTERRUPT_PORT0 0x10330 | ||
1387 | #define NIG_REG_MASK_INTERRUPT_PORT1 0x10334 | ||
1388 | /* [RW 1] Output signal from NIG to EMAC0. When set enables the EMAC0 block. */ | ||
1389 | #define NIG_REG_NIG_EMAC0_EN 0x1003c | ||
1390 | /* [RW 1] Output signal from NIG to TX_EMAC0. When set indicates to the | ||
1391 | EMAC0 to strip the CRC from the ingress packets. */ | ||
1392 | #define NIG_REG_NIG_INGRESS_EMAC0_NO_CRC 0x10044 | ||
1393 | /* [RW 1] Input enable for RX PBF LP IF */ | ||
1394 | #define NIG_REG_PBF_LB_IN_EN 0x100b4 | ||
1395 | /* [RW 1] output enable for RX parser descriptor IF */ | ||
1396 | #define NIG_REG_PRS_EOP_OUT_EN 0x10104 | ||
1397 | /* [RW 1] Input enable for RX parser request IF */ | ||
1398 | #define NIG_REG_PRS_REQ_IN_EN 0x100b8 | ||
1399 | /* [RW 5] control to serdes - CL22 PHY_ADD and CL45 PRTAD */ | ||
1400 | #define NIG_REG_SERDES0_CTRL_PHY_ADDR 0x10374 | ||
1401 | /* [R 1] status from serdes0 that inputs to interrupt logic of link status */ | ||
1402 | #define NIG_REG_SERDES0_STATUS_LINK_STATUS 0x10578 | ||
1403 | /* [R 32] Rx statistics : In user packets discarded due to BRB backpressure | ||
1404 | for port0 */ | ||
1405 | #define NIG_REG_STAT0_BRB_DISCARD 0x105f0 | ||
1406 | /* [R 32] Rx statistics : In user packets discarded due to BRB backpressure | ||
1407 | for port1 */ | ||
1408 | #define NIG_REG_STAT1_BRB_DISCARD 0x10628 | ||
1409 | /* [WB_R 64] Rx statistics : User octets received for LP */ | ||
1410 | #define NIG_REG_STAT2_BRB_OCTET 0x107e0 | ||
1411 | #define NIG_REG_STATUS_INTERRUPT_PORT0 0x10328 | ||
1412 | #define NIG_REG_STATUS_INTERRUPT_PORT1 0x1032c | ||
1413 | /* [RW 1] output enable for RX_XCM0 IF */ | ||
1414 | #define NIG_REG_XCM0_OUT_EN 0x100f0 | ||
1415 | /* [RW 1] output enable for RX_XCM1 IF */ | ||
1416 | #define NIG_REG_XCM1_OUT_EN 0x100f4 | ||
1417 | /* [RW 5] control to xgxs - CL45 DEVAD */ | ||
1418 | #define NIG_REG_XGXS0_CTRL_MD_DEVAD 0x1033c | ||
1419 | /* [RW 5] control to xgxs - CL22 PHY_ADD and CL45 PRTAD */ | ||
1420 | #define NIG_REG_XGXS0_CTRL_PHY_ADDR 0x10340 | ||
1421 | /* [R 1] status from xgxs0 that inputs to interrupt logic of link10g. */ | ||
1422 | #define NIG_REG_XGXS0_STATUS_LINK10G 0x10680 | ||
1423 | /* [R 4] status from xgxs0 that inputs to interrupt logic of link status */ | ||
1424 | #define NIG_REG_XGXS0_STATUS_LINK_STATUS 0x10684 | ||
1425 | /* [RW 2] selection for XGXS lane of port 0 in NIG_MUX block */ | ||
1426 | #define NIG_REG_XGXS_LANE_SEL_P0 0x102e8 | ||
1427 | /* [RW 1] selection for port0 for NIG_MUX block : 0 = SerDes; 1 = XGXS */ | ||
1428 | #define NIG_REG_XGXS_SERDES0_MODE_SEL 0x102e0 | ||
1429 | #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_SERDES0_LINK_STATUS (0x1<<9) | ||
1430 | #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK10G (0x1<<15) | ||
1431 | #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS (0xf<<18) | ||
1432 | #define NIG_STATUS_INTERRUPT_PORT0_REG_STATUS_XGXS0_LINK_STATUS_SIZE 18 | ||
1433 | /* [RW 1] Disable processing further tasks from port 0 (after ending the | ||
1434 | current task in process). */ | ||
1435 | #define PBF_REG_DISABLE_NEW_TASK_PROC_P0 0x14005c | ||
1436 | /* [RW 1] Disable processing further tasks from port 1 (after ending the | ||
1437 | current task in process). */ | ||
1438 | #define PBF_REG_DISABLE_NEW_TASK_PROC_P1 0x140060 | ||
1439 | /* [RW 1] Disable processing further tasks from port 4 (after ending the | ||
1440 | current task in process). */ | ||
1441 | #define PBF_REG_DISABLE_NEW_TASK_PROC_P4 0x14006c | ||
1442 | #define PBF_REG_IF_ENABLE_REG 0x140044 | ||
1443 | /* [RW 1] Init bit. When set the initial credits are copied to the credit | ||
1444 | registers (except the port credits). Should be set and then reset after | ||
1445 | the configuration of the block has ended. */ | ||
1446 | #define PBF_REG_INIT 0x140000 | ||
1447 | /* [RW 1] Init bit for port 0. When set the initial credit of port 0 is | ||
1448 | copied to the credit register. Should be set and then reset after the | ||
1449 | configuration of the port has ended. */ | ||
1450 | #define PBF_REG_INIT_P0 0x140004 | ||
1451 | /* [RW 1] Init bit for port 1. When set the initial credit of port 1 is | ||
1452 | copied to the credit register. Should be set and then reset after the | ||
1453 | configuration of the port has ended. */ | ||
1454 | #define PBF_REG_INIT_P1 0x140008 | ||
1455 | /* [RW 1] Init bit for port 4. When set the initial credit of port 4 is | ||
1456 | copied to the credit register. Should be set and then reset after the | ||
1457 | configuration of the port has ended. */ | ||
1458 | #define PBF_REG_INIT_P4 0x14000c | ||
1459 | /* [RW 1] Enable for mac interface 0. */ | ||
1460 | #define PBF_REG_MAC_IF0_ENABLE 0x140030 | ||
1461 | /* [RW 1] Enable for mac interface 1. */ | ||
1462 | #define PBF_REG_MAC_IF1_ENABLE 0x140034 | ||
1463 | /* [RW 1] Enable for the loopback interface. */ | ||
1464 | #define PBF_REG_MAC_LB_ENABLE 0x140040 | ||
1465 | /* [RW 10] Port 0 threshold used by arbiter in 16 byte lines used when pause | ||
1466 | not suppoterd. */ | ||
1467 | #define PBF_REG_P0_ARB_THRSH 0x1400e4 | ||
1468 | /* [R 11] Current credit for port 0 in the tx port buffers in 16 byte lines. */ | ||
1469 | #define PBF_REG_P0_CREDIT 0x140200 | ||
1470 | /* [RW 11] Initial credit for port 0 in the tx port buffers in 16 byte | ||
1471 | lines. */ | ||
1472 | #define PBF_REG_P0_INIT_CRD 0x1400d0 | ||
1473 | /* [RW 1] Indication that pause is enabled for port 0. */ | ||
1474 | #define PBF_REG_P0_PAUSE_ENABLE 0x140014 | ||
1475 | /* [R 8] Number of tasks in port 0 task queue. */ | ||
1476 | #define PBF_REG_P0_TASK_CNT 0x140204 | ||
1477 | /* [R 11] Current credit for port 1 in the tx port buffers in 16 byte lines. */ | ||
1478 | #define PBF_REG_P1_CREDIT 0x140208 | ||
1479 | /* [RW 11] Initial credit for port 1 in the tx port buffers in 16 byte | ||
1480 | lines. */ | ||
1481 | #define PBF_REG_P1_INIT_CRD 0x1400d4 | ||
1482 | /* [R 8] Number of tasks in port 1 task queue. */ | ||
1483 | #define PBF_REG_P1_TASK_CNT 0x14020c | ||
1484 | /* [R 11] Current credit for port 4 in the tx port buffers in 16 byte lines. */ | ||
1485 | #define PBF_REG_P4_CREDIT 0x140210 | ||
1486 | /* [RW 11] Initial credit for port 4 in the tx port buffers in 16 byte | ||
1487 | lines. */ | ||
1488 | #define PBF_REG_P4_INIT_CRD 0x1400e0 | ||
1489 | /* [R 8] Number of tasks in port 4 task queue. */ | ||
1490 | #define PBF_REG_P4_TASK_CNT 0x140214 | ||
1491 | /* [RW 5] Interrupt mask register #0 read/write */ | ||
1492 | #define PBF_REG_PBF_INT_MASK 0x1401d4 | ||
1493 | /* [R 5] Interrupt register #0 read */ | ||
1494 | #define PBF_REG_PBF_INT_STS 0x1401c8 | ||
1495 | #define PB_REG_CONTROL 0 | ||
1496 | /* [RW 2] Interrupt mask register #0 read/write */ | ||
1497 | #define PB_REG_PB_INT_MASK 0x28 | ||
1498 | /* [R 2] Interrupt register #0 read */ | ||
1499 | #define PB_REG_PB_INT_STS 0x1c | ||
1500 | /* [RW 4] Parity mask register #0 read/write */ | ||
1501 | #define PB_REG_PB_PRTY_MASK 0x38 | ||
1502 | #define PRS_REG_A_PRSU_20 0x40134 | ||
1503 | /* [R 8] debug only: CFC load request current credit. Transaction based. */ | ||
1504 | #define PRS_REG_CFC_LD_CURRENT_CREDIT 0x40164 | ||
1505 | /* [R 8] debug only: CFC search request current credit. Transaction based. */ | ||
1506 | #define PRS_REG_CFC_SEARCH_CURRENT_CREDIT 0x40168 | ||
1507 | /* [RW 6] The initial credit for the search message to the CFC interface. | ||
1508 | Credit is transaction based. */ | ||
1509 | #define PRS_REG_CFC_SEARCH_INITIAL_CREDIT 0x4011c | ||
1510 | /* [RW 24] CID for port 0 if no match */ | ||
1511 | #define PRS_REG_CID_PORT_0 0x400fc | ||
1512 | #define PRS_REG_CID_PORT_1 0x40100 | ||
1513 | /* [RW 32] The CM header for flush message where 'load existed' bit in CFC | ||
1514 | load response is reset and packet type is 0. Used in packet start message | ||
1515 | to TCM. */ | ||
1516 | #define PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_0 0x400dc | ||
1517 | #define PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_1 0x400e0 | ||
1518 | #define PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_2 0x400e4 | ||
1519 | #define PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_3 0x400e8 | ||
1520 | #define PRS_REG_CM_HDR_FLUSH_LOAD_TYPE_4 0x400ec | ||
1521 | /* [RW 32] The CM header for flush message where 'load existed' bit in CFC | ||
1522 | load response is set and packet type is 0. Used in packet start message | ||
1523 | to TCM. */ | ||
1524 | #define PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_0 0x400bc | ||
1525 | #define PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_1 0x400c0 | ||
1526 | #define PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_2 0x400c4 | ||
1527 | #define PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_3 0x400c8 | ||
1528 | #define PRS_REG_CM_HDR_FLUSH_NO_LOAD_TYPE_4 0x400cc | ||
1529 | /* [RW 32] The CM header for a match and packet type 1 for loopback port. | ||
1530 | Used in packet start message to TCM. */ | ||
1531 | #define PRS_REG_CM_HDR_LOOPBACK_TYPE_1 0x4009c | ||
1532 | #define PRS_REG_CM_HDR_LOOPBACK_TYPE_2 0x400a0 | ||
1533 | #define PRS_REG_CM_HDR_LOOPBACK_TYPE_3 0x400a4 | ||
1534 | #define PRS_REG_CM_HDR_LOOPBACK_TYPE_4 0x400a8 | ||
1535 | /* [RW 32] The CM header for a match and packet type 0. Used in packet start | ||
1536 | message to TCM. */ | ||
1537 | #define PRS_REG_CM_HDR_TYPE_0 0x40078 | ||
1538 | #define PRS_REG_CM_HDR_TYPE_1 0x4007c | ||
1539 | #define PRS_REG_CM_HDR_TYPE_2 0x40080 | ||
1540 | #define PRS_REG_CM_HDR_TYPE_3 0x40084 | ||
1541 | #define PRS_REG_CM_HDR_TYPE_4 0x40088 | ||
1542 | /* [RW 32] The CM header in case there was not a match on the connection */ | ||
1543 | #define PRS_REG_CM_NO_MATCH_HDR 0x400b8 | ||
1544 | /* [RW 8] The 8-bit event ID for a match and packet type 1. Used in packet | ||
1545 | start message to TCM. */ | ||
1546 | #define PRS_REG_EVENT_ID_1 0x40054 | ||
1547 | #define PRS_REG_EVENT_ID_2 0x40058 | ||
1548 | #define PRS_REG_EVENT_ID_3 0x4005c | ||
1549 | /* [RW 8] Context region for flush packet with packet type 0. Used in CFC | ||
1550 | load request message. */ | ||
1551 | #define PRS_REG_FLUSH_REGIONS_TYPE_0 0x40004 | ||
1552 | #define PRS_REG_FLUSH_REGIONS_TYPE_1 0x40008 | ||
1553 | #define PRS_REG_FLUSH_REGIONS_TYPE_2 0x4000c | ||
1554 | #define PRS_REG_FLUSH_REGIONS_TYPE_3 0x40010 | ||
1555 | #define PRS_REG_FLUSH_REGIONS_TYPE_4 0x40014 | ||
1556 | #define PRS_REG_FLUSH_REGIONS_TYPE_5 0x40018 | ||
1557 | #define PRS_REG_FLUSH_REGIONS_TYPE_6 0x4001c | ||
1558 | #define PRS_REG_FLUSH_REGIONS_TYPE_7 0x40020 | ||
1559 | /* [RW 4] The increment value to send in the CFC load request message */ | ||
1560 | #define PRS_REG_INC_VALUE 0x40048 | ||
1561 | /* [RW 1] If set indicates not to send messages to CFC on received packets */ | ||
1562 | #define PRS_REG_NIC_MODE 0x40138 | ||
1563 | /* [RW 8] The 8-bit event ID for cases where there is no match on the | ||
1564 | connection. Used in packet start message to TCM. */ | ||
1565 | #define PRS_REG_NO_MATCH_EVENT_ID 0x40070 | ||
1566 | /* [ST 24] The number of input CFC flush packets */ | ||
1567 | #define PRS_REG_NUM_OF_CFC_FLUSH_MESSAGES 0x40128 | ||
1568 | /* [ST 32] The number of cycles the Parser halted its operation since it | ||
1569 | could not allocate the next serial number */ | ||
1570 | #define PRS_REG_NUM_OF_DEAD_CYCLES 0x40130 | ||
1571 | /* [ST 24] The number of input packets */ | ||
1572 | #define PRS_REG_NUM_OF_PACKETS 0x40124 | ||
1573 | /* [ST 24] The number of input transparent flush packets */ | ||
1574 | #define PRS_REG_NUM_OF_TRANSPARENT_FLUSH_MESSAGES 0x4012c | ||
1575 | /* [RW 8] Context region for received Ethernet packet with a match and | ||
1576 | packet type 0. Used in CFC load request message */ | ||
1577 | #define PRS_REG_PACKET_REGIONS_TYPE_0 0x40028 | ||
1578 | #define PRS_REG_PACKET_REGIONS_TYPE_1 0x4002c | ||
1579 | #define PRS_REG_PACKET_REGIONS_TYPE_2 0x40030 | ||
1580 | #define PRS_REG_PACKET_REGIONS_TYPE_3 0x40034 | ||
1581 | #define PRS_REG_PACKET_REGIONS_TYPE_4 0x40038 | ||
1582 | #define PRS_REG_PACKET_REGIONS_TYPE_5 0x4003c | ||
1583 | #define PRS_REG_PACKET_REGIONS_TYPE_6 0x40040 | ||
1584 | #define PRS_REG_PACKET_REGIONS_TYPE_7 0x40044 | ||
1585 | /* [R 2] debug only: Number of pending requests for CAC on port 0. */ | ||
1586 | #define PRS_REG_PENDING_BRB_CAC0_RQ 0x40174 | ||
1587 | /* [R 2] debug only: Number of pending requests for header parsing. */ | ||
1588 | #define PRS_REG_PENDING_BRB_PRS_RQ 0x40170 | ||
1589 | /* [R 1] Interrupt register #0 read */ | ||
1590 | #define PRS_REG_PRS_INT_STS 0x40188 | ||
1591 | /* [RW 8] Parity mask register #0 read/write */ | ||
1592 | #define PRS_REG_PRS_PRTY_MASK 0x401a4 | ||
1593 | /* [RW 8] Context region for pure acknowledge packets. Used in CFC load | ||
1594 | request message */ | ||
1595 | #define PRS_REG_PURE_REGIONS 0x40024 | ||
1596 | /* [R 32] debug only: Serial number status lsb 32 bits. '1' indicates this | ||
1597 | serail number was released by SDM but cannot be used because a previous | ||
1598 | serial number was not released. */ | ||
1599 | #define PRS_REG_SERIAL_NUM_STATUS_LSB 0x40154 | ||
1600 | /* [R 32] debug only: Serial number status msb 32 bits. '1' indicates this | ||
1601 | serail number was released by SDM but cannot be used because a previous | ||
1602 | serial number was not released. */ | ||
1603 | #define PRS_REG_SERIAL_NUM_STATUS_MSB 0x40158 | ||
1604 | /* [R 4] debug only: SRC current credit. Transaction based. */ | ||
1605 | #define PRS_REG_SRC_CURRENT_CREDIT 0x4016c | ||
1606 | /* [R 8] debug only: TCM current credit. Cycle based. */ | ||
1607 | #define PRS_REG_TCM_CURRENT_CREDIT 0x40160 | ||
1608 | /* [R 8] debug only: TSDM current credit. Transaction based. */ | ||
1609 | #define PRS_REG_TSDM_CURRENT_CREDIT 0x4015c | ||
1610 | /* [R 6] Debug only: Number of used entries in the data FIFO */ | ||
1611 | #define PXP2_REG_HST_DATA_FIFO_STATUS 0x12047c | ||
1612 | /* [R 7] Debug only: Number of used entries in the header FIFO */ | ||
1613 | #define PXP2_REG_HST_HEADER_FIFO_STATUS 0x120478 | ||
1614 | #define PXP2_REG_PGL_CONTROL0 0x120490 | ||
1615 | #define PXP2_REG_PGL_CONTROL1 0x120514 | ||
1616 | /* [RW 32] Inbound interrupt table for CSDM: bits[31:16]-mask; | ||
1617 | its[15:0]-address */ | ||
1618 | #define PXP2_REG_PGL_INT_CSDM_0 0x1204f4 | ||
1619 | #define PXP2_REG_PGL_INT_CSDM_1 0x1204f8 | ||
1620 | #define PXP2_REG_PGL_INT_CSDM_2 0x1204fc | ||
1621 | #define PXP2_REG_PGL_INT_CSDM_3 0x120500 | ||
1622 | #define PXP2_REG_PGL_INT_CSDM_4 0x120504 | ||
1623 | #define PXP2_REG_PGL_INT_CSDM_5 0x120508 | ||
1624 | #define PXP2_REG_PGL_INT_CSDM_6 0x12050c | ||
1625 | #define PXP2_REG_PGL_INT_CSDM_7 0x120510 | ||
1626 | /* [RW 32] Inbound interrupt table for TSDM: bits[31:16]-mask; | ||
1627 | its[15:0]-address */ | ||
1628 | #define PXP2_REG_PGL_INT_TSDM_0 0x120494 | ||
1629 | #define PXP2_REG_PGL_INT_TSDM_1 0x120498 | ||
1630 | #define PXP2_REG_PGL_INT_TSDM_2 0x12049c | ||
1631 | #define PXP2_REG_PGL_INT_TSDM_3 0x1204a0 | ||
1632 | #define PXP2_REG_PGL_INT_TSDM_4 0x1204a4 | ||
1633 | #define PXP2_REG_PGL_INT_TSDM_5 0x1204a8 | ||
1634 | #define PXP2_REG_PGL_INT_TSDM_6 0x1204ac | ||
1635 | #define PXP2_REG_PGL_INT_TSDM_7 0x1204b0 | ||
1636 | /* [RW 32] Inbound interrupt table for USDM: bits[31:16]-mask; | ||
1637 | its[15:0]-address */ | ||
1638 | #define PXP2_REG_PGL_INT_USDM_0 0x1204b4 | ||
1639 | #define PXP2_REG_PGL_INT_USDM_1 0x1204b8 | ||
1640 | #define PXP2_REG_PGL_INT_USDM_2 0x1204bc | ||
1641 | #define PXP2_REG_PGL_INT_USDM_3 0x1204c0 | ||
1642 | #define PXP2_REG_PGL_INT_USDM_4 0x1204c4 | ||
1643 | #define PXP2_REG_PGL_INT_USDM_5 0x1204c8 | ||
1644 | #define PXP2_REG_PGL_INT_USDM_6 0x1204cc | ||
1645 | #define PXP2_REG_PGL_INT_USDM_7 0x1204d0 | ||
1646 | /* [RW 32] Inbound interrupt table for XSDM: bits[31:16]-mask; | ||
1647 | its[15:0]-address */ | ||
1648 | #define PXP2_REG_PGL_INT_XSDM_0 0x1204d4 | ||
1649 | #define PXP2_REG_PGL_INT_XSDM_1 0x1204d8 | ||
1650 | #define PXP2_REG_PGL_INT_XSDM_2 0x1204dc | ||
1651 | #define PXP2_REG_PGL_INT_XSDM_3 0x1204e0 | ||
1652 | #define PXP2_REG_PGL_INT_XSDM_4 0x1204e4 | ||
1653 | #define PXP2_REG_PGL_INT_XSDM_5 0x1204e8 | ||
1654 | #define PXP2_REG_PGL_INT_XSDM_6 0x1204ec | ||
1655 | #define PXP2_REG_PGL_INT_XSDM_7 0x1204f0 | ||
1656 | /* [R 1] this bit indicates that a read request was blocked because of | ||
1657 | bus_master_en was deasserted */ | ||
1658 | #define PXP2_REG_PGL_READ_BLOCKED 0x120568 | ||
1659 | /* [R 6] debug only */ | ||
1660 | #define PXP2_REG_PGL_TXR_CDTS 0x120528 | ||
1661 | /* [R 18] debug only */ | ||
1662 | #define PXP2_REG_PGL_TXW_CDTS 0x12052c | ||
1663 | /* [R 1] this bit indicates that a write request was blocked because of | ||
1664 | bus_master_en was deasserted */ | ||
1665 | #define PXP2_REG_PGL_WRITE_BLOCKED 0x120564 | ||
1666 | #define PXP2_REG_PSWRQ_BW_ADD1 0x1201c0 | ||
1667 | #define PXP2_REG_PSWRQ_BW_ADD10 0x1201e4 | ||
1668 | #define PXP2_REG_PSWRQ_BW_ADD11 0x1201e8 | ||
1669 | #define PXP2_REG_PSWRQ_BW_ADD10 0x1201e4 | ||
1670 | #define PXP2_REG_PSWRQ_BW_ADD11 0x1201e8 | ||
1671 | #define PXP2_REG_PSWRQ_BW_ADD2 0x1201c4 | ||
1672 | #define PXP2_REG_PSWRQ_BW_ADD28 0x120228 | ||
1673 | #define PXP2_REG_PSWRQ_BW_ADD28 0x120228 | ||
1674 | #define PXP2_REG_PSWRQ_BW_ADD3 0x1201c8 | ||
1675 | #define PXP2_REG_PSWRQ_BW_ADD6 0x1201d4 | ||
1676 | #define PXP2_REG_PSWRQ_BW_ADD7 0x1201d8 | ||
1677 | #define PXP2_REG_PSWRQ_BW_ADD8 0x1201dc | ||
1678 | #define PXP2_REG_PSWRQ_BW_ADD9 0x1201e0 | ||
1679 | #define PXP2_REG_PSWRQ_BW_CREDIT 0x12032c | ||
1680 | #define PXP2_REG_PSWRQ_BW_L1 0x1202b0 | ||
1681 | #define PXP2_REG_PSWRQ_BW_L10 0x1202d4 | ||
1682 | #define PXP2_REG_PSWRQ_BW_L11 0x1202d8 | ||
1683 | #define PXP2_REG_PSWRQ_BW_L10 0x1202d4 | ||
1684 | #define PXP2_REG_PSWRQ_BW_L11 0x1202d8 | ||
1685 | #define PXP2_REG_PSWRQ_BW_L2 0x1202b4 | ||
1686 | #define PXP2_REG_PSWRQ_BW_L28 0x120318 | ||
1687 | #define PXP2_REG_PSWRQ_BW_L28 0x120318 | ||
1688 | #define PXP2_REG_PSWRQ_BW_L3 0x1202b8 | ||
1689 | #define PXP2_REG_PSWRQ_BW_L6 0x1202c4 | ||
1690 | #define PXP2_REG_PSWRQ_BW_L7 0x1202c8 | ||
1691 | #define PXP2_REG_PSWRQ_BW_L8 0x1202cc | ||
1692 | #define PXP2_REG_PSWRQ_BW_L9 0x1202d0 | ||
1693 | #define PXP2_REG_PSWRQ_BW_RD 0x120324 | ||
1694 | #define PXP2_REG_PSWRQ_BW_UB1 0x120238 | ||
1695 | #define PXP2_REG_PSWRQ_BW_UB10 0x12025c | ||
1696 | #define PXP2_REG_PSWRQ_BW_UB11 0x120260 | ||
1697 | #define PXP2_REG_PSWRQ_BW_UB10 0x12025c | ||
1698 | #define PXP2_REG_PSWRQ_BW_UB11 0x120260 | ||
1699 | #define PXP2_REG_PSWRQ_BW_UB2 0x12023c | ||
1700 | #define PXP2_REG_PSWRQ_BW_UB28 0x1202a0 | ||
1701 | #define PXP2_REG_PSWRQ_BW_UB28 0x1202a0 | ||
1702 | #define PXP2_REG_PSWRQ_BW_UB3 0x120240 | ||
1703 | #define PXP2_REG_PSWRQ_BW_UB6 0x12024c | ||
1704 | #define PXP2_REG_PSWRQ_BW_UB7 0x120250 | ||
1705 | #define PXP2_REG_PSWRQ_BW_UB8 0x120254 | ||
1706 | #define PXP2_REG_PSWRQ_BW_UB9 0x120258 | ||
1707 | #define PXP2_REG_PSWRQ_BW_WR 0x120328 | ||
1708 | #define PXP2_REG_PSWRQ_CDU0_L2P 0x120000 | ||
1709 | #define PXP2_REG_PSWRQ_QM0_L2P 0x120038 | ||
1710 | #define PXP2_REG_PSWRQ_SRC0_L2P 0x120054 | ||
1711 | #define PXP2_REG_PSWRQ_TM0_L2P 0x12001c | ||
1712 | /* [RW 25] Interrupt mask register #0 read/write */ | ||
1713 | #define PXP2_REG_PXP2_INT_MASK 0x120578 | ||
1714 | /* [R 25] Interrupt register #0 read */ | ||
1715 | #define PXP2_REG_PXP2_INT_STS 0x12056c | ||
1716 | /* [RC 25] Interrupt register #0 read clear */ | ||
1717 | #define PXP2_REG_PXP2_INT_STS_CLR 0x120570 | ||
1718 | /* [RW 32] Parity mask register #0 read/write */ | ||
1719 | #define PXP2_REG_PXP2_PRTY_MASK_0 0x120588 | ||
1720 | #define PXP2_REG_PXP2_PRTY_MASK_1 0x120598 | ||
1721 | /* [R 1] Debug only: The 'almost full' indication from each fifo (gives | ||
1722 | indication about backpressure) */ | ||
1723 | #define PXP2_REG_RD_ALMOST_FULL_0 0x120424 | ||
1724 | /* [R 8] Debug only: The blocks counter - number of unused block ids */ | ||
1725 | #define PXP2_REG_RD_BLK_CNT 0x120418 | ||
1726 | /* [RW 8] Debug only: Total number of available blocks in Tetris Buffer. | ||
1727 | Must be bigger than 6. Normally should not be changed. */ | ||
1728 | #define PXP2_REG_RD_BLK_NUM_CFG 0x12040c | ||
1729 | /* [RW 2] CDU byte swapping mode configuration for master read requests */ | ||
1730 | #define PXP2_REG_RD_CDURD_SWAP_MODE 0x120404 | ||
1731 | /* [RW 1] When '1'; inputs to the PSWRD block are ignored */ | ||
1732 | #define PXP2_REG_RD_DISABLE_INPUTS 0x120374 | ||
1733 | /* [R 1] PSWRD internal memories initialization is done */ | ||
1734 | #define PXP2_REG_RD_INIT_DONE 0x120370 | ||
1735 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be | ||
1736 | allocated for vq10 */ | ||
1737 | #define PXP2_REG_RD_MAX_BLKS_VQ10 0x1203a0 | ||
1738 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be | ||
1739 | allocated for vq11 */ | ||
1740 | #define PXP2_REG_RD_MAX_BLKS_VQ11 0x1203a4 | ||
1741 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be | ||
1742 | allocated for vq17 */ | ||
1743 | #define PXP2_REG_RD_MAX_BLKS_VQ17 0x1203bc | ||
1744 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be | ||
1745 | allocated for vq18 */ | ||
1746 | #define PXP2_REG_RD_MAX_BLKS_VQ18 0x1203c0 | ||
1747 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be | ||
1748 | allocated for vq19 */ | ||
1749 | #define PXP2_REG_RD_MAX_BLKS_VQ19 0x1203c4 | ||
1750 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be | ||
1751 | allocated for vq22 */ | ||
1752 | #define PXP2_REG_RD_MAX_BLKS_VQ22 0x1203d0 | ||
1753 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be | ||
1754 | allocated for vq6 */ | ||
1755 | #define PXP2_REG_RD_MAX_BLKS_VQ6 0x120390 | ||
1756 | /* [RW 8] The maximum number of blocks in Tetris Buffer that can be | ||
1757 | allocated for vq9 */ | ||
1758 | #define PXP2_REG_RD_MAX_BLKS_VQ9 0x12039c | ||
1759 | /* [RW 2] PBF byte swapping mode configuration for master read requests */ | ||
1760 | #define PXP2_REG_RD_PBF_SWAP_MODE 0x1203f4 | ||
1761 | /* [R 1] Debug only: Indication if delivery ports are idle */ | ||
1762 | #define PXP2_REG_RD_PORT_IS_IDLE_0 0x12041c | ||
1763 | #define PXP2_REG_RD_PORT_IS_IDLE_1 0x120420 | ||
1764 | /* [RW 2] QM byte swapping mode configuration for master read requests */ | ||
1765 | #define PXP2_REG_RD_QM_SWAP_MODE 0x1203f8 | ||
1766 | /* [R 7] Debug only: The SR counter - number of unused sub request ids */ | ||
1767 | #define PXP2_REG_RD_SR_CNT 0x120414 | ||
1768 | /* [RW 2] SRC byte swapping mode configuration for master read requests */ | ||
1769 | #define PXP2_REG_RD_SRC_SWAP_MODE 0x120400 | ||
1770 | /* [RW 7] Debug only: Total number of available PCI read sub-requests. Must | ||
1771 | be bigger than 1. Normally should not be changed. */ | ||
1772 | #define PXP2_REG_RD_SR_NUM_CFG 0x120408 | ||
1773 | /* [RW 1] Signals the PSWRD block to start initializing internal memories */ | ||
1774 | #define PXP2_REG_RD_START_INIT 0x12036c | ||
1775 | /* [RW 2] TM byte swapping mode configuration for master read requests */ | ||
1776 | #define PXP2_REG_RD_TM_SWAP_MODE 0x1203fc | ||
1777 | /* [RW 10] Bandwidth addition to VQ0 write requests */ | ||
1778 | #define PXP2_REG_RQ_BW_RD_ADD0 0x1201bc | ||
1779 | /* [RW 10] Bandwidth addition to VQ12 read requests */ | ||
1780 | #define PXP2_REG_RQ_BW_RD_ADD12 0x1201ec | ||
1781 | /* [RW 10] Bandwidth addition to VQ13 read requests */ | ||
1782 | #define PXP2_REG_RQ_BW_RD_ADD13 0x1201f0 | ||
1783 | /* [RW 10] Bandwidth addition to VQ14 read requests */ | ||
1784 | #define PXP2_REG_RQ_BW_RD_ADD14 0x1201f4 | ||
1785 | /* [RW 10] Bandwidth addition to VQ15 read requests */ | ||
1786 | #define PXP2_REG_RQ_BW_RD_ADD15 0x1201f8 | ||
1787 | /* [RW 10] Bandwidth addition to VQ16 read requests */ | ||
1788 | #define PXP2_REG_RQ_BW_RD_ADD16 0x1201fc | ||
1789 | /* [RW 10] Bandwidth addition to VQ17 read requests */ | ||
1790 | #define PXP2_REG_RQ_BW_RD_ADD17 0x120200 | ||
1791 | /* [RW 10] Bandwidth addition to VQ18 read requests */ | ||
1792 | #define PXP2_REG_RQ_BW_RD_ADD18 0x120204 | ||
1793 | /* [RW 10] Bandwidth addition to VQ19 read requests */ | ||
1794 | #define PXP2_REG_RQ_BW_RD_ADD19 0x120208 | ||
1795 | /* [RW 10] Bandwidth addition to VQ20 read requests */ | ||
1796 | #define PXP2_REG_RQ_BW_RD_ADD20 0x12020c | ||
1797 | /* [RW 10] Bandwidth addition to VQ22 read requests */ | ||
1798 | #define PXP2_REG_RQ_BW_RD_ADD22 0x120210 | ||
1799 | /* [RW 10] Bandwidth addition to VQ23 read requests */ | ||
1800 | #define PXP2_REG_RQ_BW_RD_ADD23 0x120214 | ||
1801 | /* [RW 10] Bandwidth addition to VQ24 read requests */ | ||
1802 | #define PXP2_REG_RQ_BW_RD_ADD24 0x120218 | ||
1803 | /* [RW 10] Bandwidth addition to VQ25 read requests */ | ||
1804 | #define PXP2_REG_RQ_BW_RD_ADD25 0x12021c | ||
1805 | /* [RW 10] Bandwidth addition to VQ26 read requests */ | ||
1806 | #define PXP2_REG_RQ_BW_RD_ADD26 0x120220 | ||
1807 | /* [RW 10] Bandwidth addition to VQ27 read requests */ | ||
1808 | #define PXP2_REG_RQ_BW_RD_ADD27 0x120224 | ||
1809 | /* [RW 10] Bandwidth addition to VQ4 read requests */ | ||
1810 | #define PXP2_REG_RQ_BW_RD_ADD4 0x1201cc | ||
1811 | /* [RW 10] Bandwidth addition to VQ5 read requests */ | ||
1812 | #define PXP2_REG_RQ_BW_RD_ADD5 0x1201d0 | ||
1813 | /* [RW 10] Bandwidth Typical L for VQ0 Read requests */ | ||
1814 | #define PXP2_REG_RQ_BW_RD_L0 0x1202ac | ||
1815 | /* [RW 10] Bandwidth Typical L for VQ12 Read requests */ | ||
1816 | #define PXP2_REG_RQ_BW_RD_L12 0x1202dc | ||
1817 | /* [RW 10] Bandwidth Typical L for VQ13 Read requests */ | ||
1818 | #define PXP2_REG_RQ_BW_RD_L13 0x1202e0 | ||
1819 | /* [RW 10] Bandwidth Typical L for VQ14 Read requests */ | ||
1820 | #define PXP2_REG_RQ_BW_RD_L14 0x1202e4 | ||
1821 | /* [RW 10] Bandwidth Typical L for VQ15 Read requests */ | ||
1822 | #define PXP2_REG_RQ_BW_RD_L15 0x1202e8 | ||
1823 | /* [RW 10] Bandwidth Typical L for VQ16 Read requests */ | ||
1824 | #define PXP2_REG_RQ_BW_RD_L16 0x1202ec | ||
1825 | /* [RW 10] Bandwidth Typical L for VQ17 Read requests */ | ||
1826 | #define PXP2_REG_RQ_BW_RD_L17 0x1202f0 | ||
1827 | /* [RW 10] Bandwidth Typical L for VQ18 Read requests */ | ||
1828 | #define PXP2_REG_RQ_BW_RD_L18 0x1202f4 | ||
1829 | /* [RW 10] Bandwidth Typical L for VQ19 Read requests */ | ||
1830 | #define PXP2_REG_RQ_BW_RD_L19 0x1202f8 | ||
1831 | /* [RW 10] Bandwidth Typical L for VQ20 Read requests */ | ||
1832 | #define PXP2_REG_RQ_BW_RD_L20 0x1202fc | ||
1833 | /* [RW 10] Bandwidth Typical L for VQ22 Read requests */ | ||
1834 | #define PXP2_REG_RQ_BW_RD_L22 0x120300 | ||
1835 | /* [RW 10] Bandwidth Typical L for VQ23 Read requests */ | ||
1836 | #define PXP2_REG_RQ_BW_RD_L23 0x120304 | ||
1837 | /* [RW 10] Bandwidth Typical L for VQ24 Read requests */ | ||
1838 | #define PXP2_REG_RQ_BW_RD_L24 0x120308 | ||
1839 | /* [RW 10] Bandwidth Typical L for VQ25 Read requests */ | ||
1840 | #define PXP2_REG_RQ_BW_RD_L25 0x12030c | ||
1841 | /* [RW 10] Bandwidth Typical L for VQ26 Read requests */ | ||
1842 | #define PXP2_REG_RQ_BW_RD_L26 0x120310 | ||
1843 | /* [RW 10] Bandwidth Typical L for VQ27 Read requests */ | ||
1844 | #define PXP2_REG_RQ_BW_RD_L27 0x120314 | ||
1845 | /* [RW 10] Bandwidth Typical L for VQ4 Read requests */ | ||
1846 | #define PXP2_REG_RQ_BW_RD_L4 0x1202bc | ||
1847 | /* [RW 10] Bandwidth Typical L for VQ5 Read- currently not used */ | ||
1848 | #define PXP2_REG_RQ_BW_RD_L5 0x1202c0 | ||
1849 | /* [RW 7] Bandwidth upper bound for VQ0 read requests */ | ||
1850 | #define PXP2_REG_RQ_BW_RD_UBOUND0 0x120234 | ||
1851 | /* [RW 7] Bandwidth upper bound for VQ12 read requests */ | ||
1852 | #define PXP2_REG_RQ_BW_RD_UBOUND12 0x120264 | ||
1853 | /* [RW 7] Bandwidth upper bound for VQ13 read requests */ | ||
1854 | #define PXP2_REG_RQ_BW_RD_UBOUND13 0x120268 | ||
1855 | /* [RW 7] Bandwidth upper bound for VQ14 read requests */ | ||
1856 | #define PXP2_REG_RQ_BW_RD_UBOUND14 0x12026c | ||
1857 | /* [RW 7] Bandwidth upper bound for VQ15 read requests */ | ||
1858 | #define PXP2_REG_RQ_BW_RD_UBOUND15 0x120270 | ||
1859 | /* [RW 7] Bandwidth upper bound for VQ16 read requests */ | ||
1860 | #define PXP2_REG_RQ_BW_RD_UBOUND16 0x120274 | ||
1861 | /* [RW 7] Bandwidth upper bound for VQ17 read requests */ | ||
1862 | #define PXP2_REG_RQ_BW_RD_UBOUND17 0x120278 | ||
1863 | /* [RW 7] Bandwidth upper bound for VQ18 read requests */ | ||
1864 | #define PXP2_REG_RQ_BW_RD_UBOUND18 0x12027c | ||
1865 | /* [RW 7] Bandwidth upper bound for VQ19 read requests */ | ||
1866 | #define PXP2_REG_RQ_BW_RD_UBOUND19 0x120280 | ||
1867 | /* [RW 7] Bandwidth upper bound for VQ20 read requests */ | ||
1868 | #define PXP2_REG_RQ_BW_RD_UBOUND20 0x120284 | ||
1869 | /* [RW 7] Bandwidth upper bound for VQ22 read requests */ | ||
1870 | #define PXP2_REG_RQ_BW_RD_UBOUND22 0x120288 | ||
1871 | /* [RW 7] Bandwidth upper bound for VQ23 read requests */ | ||
1872 | #define PXP2_REG_RQ_BW_RD_UBOUND23 0x12028c | ||
1873 | /* [RW 7] Bandwidth upper bound for VQ24 read requests */ | ||
1874 | #define PXP2_REG_RQ_BW_RD_UBOUND24 0x120290 | ||
1875 | /* [RW 7] Bandwidth upper bound for VQ25 read requests */ | ||
1876 | #define PXP2_REG_RQ_BW_RD_UBOUND25 0x120294 | ||
1877 | /* [RW 7] Bandwidth upper bound for VQ26 read requests */ | ||
1878 | #define PXP2_REG_RQ_BW_RD_UBOUND26 0x120298 | ||
1879 | /* [RW 7] Bandwidth upper bound for VQ27 read requests */ | ||
1880 | #define PXP2_REG_RQ_BW_RD_UBOUND27 0x12029c | ||
1881 | /* [RW 7] Bandwidth upper bound for VQ4 read requests */ | ||
1882 | #define PXP2_REG_RQ_BW_RD_UBOUND4 0x120244 | ||
1883 | /* [RW 7] Bandwidth upper bound for VQ5 read requests */ | ||
1884 | #define PXP2_REG_RQ_BW_RD_UBOUND5 0x120248 | ||
1885 | /* [RW 10] Bandwidth addition to VQ29 write requests */ | ||
1886 | #define PXP2_REG_RQ_BW_WR_ADD29 0x12022c | ||
1887 | /* [RW 10] Bandwidth addition to VQ30 write requests */ | ||
1888 | #define PXP2_REG_RQ_BW_WR_ADD30 0x120230 | ||
1889 | /* [RW 10] Bandwidth Typical L for VQ29 Write requests */ | ||
1890 | #define PXP2_REG_RQ_BW_WR_L29 0x12031c | ||
1891 | /* [RW 10] Bandwidth Typical L for VQ30 Write requests */ | ||
1892 | #define PXP2_REG_RQ_BW_WR_L30 0x120320 | ||
1893 | /* [RW 7] Bandwidth upper bound for VQ29 */ | ||
1894 | #define PXP2_REG_RQ_BW_WR_UBOUND29 0x1202a4 | ||
1895 | /* [RW 7] Bandwidth upper bound for VQ30 */ | ||
1896 | #define PXP2_REG_RQ_BW_WR_UBOUND30 0x1202a8 | ||
1897 | /* [RW 2] Endian mode for cdu */ | ||
1898 | #define PXP2_REG_RQ_CDU_ENDIAN_M 0x1201a0 | ||
1899 | /* [RW 3] page size in L2P table for CDU module; -4k; -8k; -16k; -32k; -64k; | ||
1900 | -128k */ | ||
1901 | #define PXP2_REG_RQ_CDU_P_SIZE 0x120018 | ||
1902 | /* [R 1] 1' indicates that the requester has finished its internal | ||
1903 | configuration */ | ||
1904 | #define PXP2_REG_RQ_CFG_DONE 0x1201b4 | ||
1905 | /* [RW 2] Endian mode for debug */ | ||
1906 | #define PXP2_REG_RQ_DBG_ENDIAN_M 0x1201a4 | ||
1907 | /* [RW 1] When '1'; requests will enter input buffers but wont get out | ||
1908 | towards the glue */ | ||
1909 | #define PXP2_REG_RQ_DISABLE_INPUTS 0x120330 | ||
1910 | /* [RW 2] Endian mode for hc */ | ||
1911 | #define PXP2_REG_RQ_HC_ENDIAN_M 0x1201a8 | ||
1912 | /* [WB 53] Onchip address table */ | ||
1913 | #define PXP2_REG_RQ_ONCHIP_AT 0x122000 | ||
1914 | /* [RW 2] Endian mode for qm */ | ||
1915 | #define PXP2_REG_RQ_QM_ENDIAN_M 0x120194 | ||
1916 | /* [RW 3] page size in L2P table for QM module; -4k; -8k; -16k; -32k; -64k; | ||
1917 | -128k */ | ||
1918 | #define PXP2_REG_RQ_QM_P_SIZE 0x120050 | ||
1919 | /* [RW 1] 1' indicates that the RBC has finished configurating the PSWRQ */ | ||
1920 | #define PXP2_REG_RQ_RBC_DONE 0x1201b0 | ||
1921 | /* [RW 3] Max burst size filed for read requests port 0; 000 - 128B; | ||
1922 | 001:256B; 010: 512B; 11:1K:100:2K; 01:4K */ | ||
1923 | #define PXP2_REG_RQ_RD_MBS0 0x120160 | ||
1924 | /* [RW 2] Endian mode for src */ | ||
1925 | #define PXP2_REG_RQ_SRC_ENDIAN_M 0x12019c | ||
1926 | /* [RW 3] page size in L2P table for SRC module; -4k; -8k; -16k; -32k; -64k; | ||
1927 | -128k */ | ||
1928 | #define PXP2_REG_RQ_SRC_P_SIZE 0x12006c | ||
1929 | /* [RW 2] Endian mode for tm */ | ||
1930 | #define PXP2_REG_RQ_TM_ENDIAN_M 0x120198 | ||
1931 | /* [RW 3] page size in L2P table for TM module; -4k; -8k; -16k; -32k; -64k; | ||
1932 | -128k */ | ||
1933 | #define PXP2_REG_RQ_TM_P_SIZE 0x120034 | ||
1934 | /* [R 5] Number of entries in the ufifo; his fifo has l2p completions */ | ||
1935 | #define PXP2_REG_RQ_UFIFO_NUM_OF_ENTRY 0x12080c | ||
1936 | /* [R 8] Number of entries occupied by vq 0 in pswrq memory */ | ||
1937 | #define PXP2_REG_RQ_VQ0_ENTRY_CNT 0x120810 | ||
1938 | /* [R 8] Number of entries occupied by vq 10 in pswrq memory */ | ||
1939 | #define PXP2_REG_RQ_VQ10_ENTRY_CNT 0x120818 | ||
1940 | /* [R 8] Number of entries occupied by vq 11 in pswrq memory */ | ||
1941 | #define PXP2_REG_RQ_VQ11_ENTRY_CNT 0x120820 | ||
1942 | /* [R 8] Number of entries occupied by vq 12 in pswrq memory */ | ||
1943 | #define PXP2_REG_RQ_VQ12_ENTRY_CNT 0x120828 | ||
1944 | /* [R 8] Number of entries occupied by vq 13 in pswrq memory */ | ||
1945 | #define PXP2_REG_RQ_VQ13_ENTRY_CNT 0x120830 | ||
1946 | /* [R 8] Number of entries occupied by vq 14 in pswrq memory */ | ||
1947 | #define PXP2_REG_RQ_VQ14_ENTRY_CNT 0x120838 | ||
1948 | /* [R 8] Number of entries occupied by vq 15 in pswrq memory */ | ||
1949 | #define PXP2_REG_RQ_VQ15_ENTRY_CNT 0x120840 | ||
1950 | /* [R 8] Number of entries occupied by vq 16 in pswrq memory */ | ||
1951 | #define PXP2_REG_RQ_VQ16_ENTRY_CNT 0x120848 | ||
1952 | /* [R 8] Number of entries occupied by vq 17 in pswrq memory */ | ||
1953 | #define PXP2_REG_RQ_VQ17_ENTRY_CNT 0x120850 | ||
1954 | /* [R 8] Number of entries occupied by vq 18 in pswrq memory */ | ||
1955 | #define PXP2_REG_RQ_VQ18_ENTRY_CNT 0x120858 | ||
1956 | /* [R 8] Number of entries occupied by vq 19 in pswrq memory */ | ||
1957 | #define PXP2_REG_RQ_VQ19_ENTRY_CNT 0x120860 | ||
1958 | /* [R 8] Number of entries occupied by vq 1 in pswrq memory */ | ||
1959 | #define PXP2_REG_RQ_VQ1_ENTRY_CNT 0x120868 | ||
1960 | /* [R 8] Number of entries occupied by vq 20 in pswrq memory */ | ||
1961 | #define PXP2_REG_RQ_VQ20_ENTRY_CNT 0x120870 | ||
1962 | /* [R 8] Number of entries occupied by vq 21 in pswrq memory */ | ||
1963 | #define PXP2_REG_RQ_VQ21_ENTRY_CNT 0x120878 | ||
1964 | /* [R 8] Number of entries occupied by vq 22 in pswrq memory */ | ||
1965 | #define PXP2_REG_RQ_VQ22_ENTRY_CNT 0x120880 | ||
1966 | /* [R 8] Number of entries occupied by vq 23 in pswrq memory */ | ||
1967 | #define PXP2_REG_RQ_VQ23_ENTRY_CNT 0x120888 | ||
1968 | /* [R 8] Number of entries occupied by vq 24 in pswrq memory */ | ||
1969 | #define PXP2_REG_RQ_VQ24_ENTRY_CNT 0x120890 | ||
1970 | /* [R 8] Number of entries occupied by vq 25 in pswrq memory */ | ||
1971 | #define PXP2_REG_RQ_VQ25_ENTRY_CNT 0x120898 | ||
1972 | /* [R 8] Number of entries occupied by vq 26 in pswrq memory */ | ||
1973 | #define PXP2_REG_RQ_VQ26_ENTRY_CNT 0x1208a0 | ||
1974 | /* [R 8] Number of entries occupied by vq 27 in pswrq memory */ | ||
1975 | #define PXP2_REG_RQ_VQ27_ENTRY_CNT 0x1208a8 | ||
1976 | /* [R 8] Number of entries occupied by vq 28 in pswrq memory */ | ||
1977 | #define PXP2_REG_RQ_VQ28_ENTRY_CNT 0x1208b0 | ||
1978 | /* [R 8] Number of entries occupied by vq 29 in pswrq memory */ | ||
1979 | #define PXP2_REG_RQ_VQ29_ENTRY_CNT 0x1208b8 | ||
1980 | /* [R 8] Number of entries occupied by vq 2 in pswrq memory */ | ||
1981 | #define PXP2_REG_RQ_VQ2_ENTRY_CNT 0x1208c0 | ||
1982 | /* [R 8] Number of entries occupied by vq 30 in pswrq memory */ | ||
1983 | #define PXP2_REG_RQ_VQ30_ENTRY_CNT 0x1208c8 | ||
1984 | /* [R 8] Number of entries occupied by vq 31 in pswrq memory */ | ||
1985 | #define PXP2_REG_RQ_VQ31_ENTRY_CNT 0x1208d0 | ||
1986 | /* [R 8] Number of entries occupied by vq 3 in pswrq memory */ | ||
1987 | #define PXP2_REG_RQ_VQ3_ENTRY_CNT 0x1208d8 | ||
1988 | /* [R 8] Number of entries occupied by vq 4 in pswrq memory */ | ||
1989 | #define PXP2_REG_RQ_VQ4_ENTRY_CNT 0x1208e0 | ||
1990 | /* [R 8] Number of entries occupied by vq 5 in pswrq memory */ | ||
1991 | #define PXP2_REG_RQ_VQ5_ENTRY_CNT 0x1208e8 | ||
1992 | /* [R 8] Number of entries occupied by vq 6 in pswrq memory */ | ||
1993 | #define PXP2_REG_RQ_VQ6_ENTRY_CNT 0x1208f0 | ||
1994 | /* [R 8] Number of entries occupied by vq 7 in pswrq memory */ | ||
1995 | #define PXP2_REG_RQ_VQ7_ENTRY_CNT 0x1208f8 | ||
1996 | /* [R 8] Number of entries occupied by vq 8 in pswrq memory */ | ||
1997 | #define PXP2_REG_RQ_VQ8_ENTRY_CNT 0x120900 | ||
1998 | /* [R 8] Number of entries occupied by vq 9 in pswrq memory */ | ||
1999 | #define PXP2_REG_RQ_VQ9_ENTRY_CNT 0x120908 | ||
2000 | /* [RW 3] Max burst size filed for write requests port 0; 000 - 128B; | ||
2001 | 001:256B; 010: 512B; */ | ||
2002 | #define PXP2_REG_RQ_WR_MBS0 0x12015c | ||
2003 | /* [RW 10] if Number of entries in dmae fifo will be higer than this | ||
2004 | threshold then has_payload indication will be asserted; the default value | ||
2005 | should be equal to > write MBS size! */ | ||
2006 | #define PXP2_REG_WR_DMAE_TH 0x120368 | ||
2007 | /* [R 1] debug only: Indication if PSWHST arbiter is idle */ | ||
2008 | #define PXP_REG_HST_ARB_IS_IDLE 0x103004 | ||
2009 | /* [R 8] debug only: A bit mask for all PSWHST arbiter clients. '1' means | ||
2010 | this client is waiting for the arbiter. */ | ||
2011 | #define PXP_REG_HST_CLIENTS_WAITING_TO_ARB 0x103008 | ||
2012 | /* [WB 160] Used for initialization of the inbound interrupts memory */ | ||
2013 | #define PXP_REG_HST_INBOUND_INT 0x103800 | ||
2014 | /* [RW 32] Interrupt mask register #0 read/write */ | ||
2015 | #define PXP_REG_PXP_INT_MASK_0 0x103074 | ||
2016 | #define PXP_REG_PXP_INT_MASK_1 0x103084 | ||
2017 | /* [R 32] Interrupt register #0 read */ | ||
2018 | #define PXP_REG_PXP_INT_STS_0 0x103068 | ||
2019 | #define PXP_REG_PXP_INT_STS_1 0x103078 | ||
2020 | /* [RC 32] Interrupt register #0 read clear */ | ||
2021 | #define PXP_REG_PXP_INT_STS_CLR_0 0x10306c | ||
2022 | /* [RW 26] Parity mask register #0 read/write */ | ||
2023 | #define PXP_REG_PXP_PRTY_MASK 0x103094 | ||
2024 | /* [RW 4] The activity counter initial increment value sent in the load | ||
2025 | request */ | ||
2026 | #define QM_REG_ACTCTRINITVAL_0 0x168040 | ||
2027 | #define QM_REG_ACTCTRINITVAL_1 0x168044 | ||
2028 | #define QM_REG_ACTCTRINITVAL_2 0x168048 | ||
2029 | #define QM_REG_ACTCTRINITVAL_3 0x16804c | ||
2030 | /* [RW 32] The base logical address (in bytes) of each physical queue. The | ||
2031 | index I represents the physical queue number. The 12 lsbs are ignore and | ||
2032 | considered zero so practically there are only 20 bits in this register. */ | ||
2033 | #define QM_REG_BASEADDR 0x168900 | ||
2034 | /* [RW 16] The byte credit cost for each task. This value is for both ports */ | ||
2035 | #define QM_REG_BYTECRDCOST 0x168234 | ||
2036 | /* [RW 16] The initial byte credit value for both ports. */ | ||
2037 | #define QM_REG_BYTECRDINITVAL 0x168238 | ||
2038 | /* [RW 32] A bit per physical queue. If the bit is cleared then the physical | ||
2039 | queue uses port 0 else it uses port 1. */ | ||
2040 | #define QM_REG_BYTECRDPORT_LSB 0x168228 | ||
2041 | /* [RW 32] A bit per physical queue. If the bit is cleared then the physical | ||
2042 | queue uses port 0 else it uses port 1. */ | ||
2043 | #define QM_REG_BYTECRDPORT_MSB 0x168224 | ||
2044 | /* [RW 16] The byte credit value that if above the QM is considered almost | ||
2045 | full */ | ||
2046 | #define QM_REG_BYTECREDITAFULLTHR 0x168094 | ||
2047 | /* [RW 4] The initial credit for interface */ | ||
2048 | #define QM_REG_CMINITCRD_0 0x1680cc | ||
2049 | #define QM_REG_CMINITCRD_1 0x1680d0 | ||
2050 | #define QM_REG_CMINITCRD_2 0x1680d4 | ||
2051 | #define QM_REG_CMINITCRD_3 0x1680d8 | ||
2052 | #define QM_REG_CMINITCRD_4 0x1680dc | ||
2053 | #define QM_REG_CMINITCRD_5 0x1680e0 | ||
2054 | #define QM_REG_CMINITCRD_6 0x1680e4 | ||
2055 | #define QM_REG_CMINITCRD_7 0x1680e8 | ||
2056 | /* [RW 8] A mask bit per CM interface. If this bit is 0 then this interface | ||
2057 | is masked */ | ||
2058 | #define QM_REG_CMINTEN 0x1680ec | ||
2059 | /* [RW 12] A bit vector which indicates which one of the queues are tied to | ||
2060 | interface 0 */ | ||
2061 | #define QM_REG_CMINTVOQMASK_0 0x1681f4 | ||
2062 | #define QM_REG_CMINTVOQMASK_1 0x1681f8 | ||
2063 | #define QM_REG_CMINTVOQMASK_2 0x1681fc | ||
2064 | #define QM_REG_CMINTVOQMASK_3 0x168200 | ||
2065 | #define QM_REG_CMINTVOQMASK_4 0x168204 | ||
2066 | #define QM_REG_CMINTVOQMASK_5 0x168208 | ||
2067 | #define QM_REG_CMINTVOQMASK_6 0x16820c | ||
2068 | #define QM_REG_CMINTVOQMASK_7 0x168210 | ||
2069 | /* [RW 20] The number of connections divided by 16 which dictates the size | ||
2070 | of each queue per port 0 */ | ||
2071 | #define QM_REG_CONNNUM_0 0x168020 | ||
2072 | /* [R 6] Keep the fill level of the fifo from write client 4 */ | ||
2073 | #define QM_REG_CQM_WRC_FIFOLVL 0x168018 | ||
2074 | /* [RW 8] The context regions sent in the CFC load request */ | ||
2075 | #define QM_REG_CTXREG_0 0x168030 | ||
2076 | #define QM_REG_CTXREG_1 0x168034 | ||
2077 | #define QM_REG_CTXREG_2 0x168038 | ||
2078 | #define QM_REG_CTXREG_3 0x16803c | ||
2079 | /* [RW 12] The VOQ mask used to select the VOQs which needs to be full for | ||
2080 | bypass enable */ | ||
2081 | #define QM_REG_ENBYPVOQMASK 0x16823c | ||
2082 | /* [RW 32] A bit mask per each physical queue. If a bit is set then the | ||
2083 | physical queue uses the byte credit */ | ||
2084 | #define QM_REG_ENBYTECRD_LSB 0x168220 | ||
2085 | /* [RW 32] A bit mask per each physical queue. If a bit is set then the | ||
2086 | physical queue uses the byte credit */ | ||
2087 | #define QM_REG_ENBYTECRD_MSB 0x16821c | ||
2088 | /* [RW 4] If cleared then the secondary interface will not be served by the | ||
2089 | RR arbiter */ | ||
2090 | #define QM_REG_ENSEC 0x1680f0 | ||
2091 | /* [RW 32] A bit vector per each physical queue which selects which function | ||
2092 | number to use on PCI access for that queue. */ | ||
2093 | #define QM_REG_FUNCNUMSEL_LSB 0x168230 | ||
2094 | /* [RW 32] A bit vector per each physical queue which selects which function | ||
2095 | number to use on PCI access for that queue. */ | ||
2096 | #define QM_REG_FUNCNUMSEL_MSB 0x16822c | ||
2097 | /* [RW 32] A mask register to mask the Almost empty signals which will not | ||
2098 | be use for the almost empty indication to the HW block */ | ||
2099 | #define QM_REG_HWAEMPTYMASK_LSB 0x168218 | ||
2100 | /* [RW 32] A mask register to mask the Almost empty signals which will not | ||
2101 | be use for the almost empty indication to the HW block */ | ||
2102 | #define QM_REG_HWAEMPTYMASK_MSB 0x168214 | ||
2103 | /* [RW 4] The number of outstanding request to CFC */ | ||
2104 | #define QM_REG_OUTLDREQ 0x168804 | ||
2105 | /* [RC 1] A flag to indicate that overflow error occurred in one of the | ||
2106 | queues. */ | ||
2107 | #define QM_REG_OVFERROR 0x16805c | ||
2108 | /* [RC 6] the Q were the qverflow occurs */ | ||
2109 | #define QM_REG_OVFQNUM 0x168058 | ||
2110 | /* [R 32] Pause state for physical queues 31-0 */ | ||
2111 | #define QM_REG_PAUSESTATE0 0x168410 | ||
2112 | /* [R 32] Pause state for physical queues 64-32 */ | ||
2113 | #define QM_REG_PAUSESTATE1 0x168414 | ||
2114 | /* [RW 2] The PCI attributes field used in the PCI request. */ | ||
2115 | #define QM_REG_PCIREQAT 0x168054 | ||
2116 | /* [R 16] The byte credit of port 0 */ | ||
2117 | #define QM_REG_PORT0BYTECRD 0x168300 | ||
2118 | /* [R 16] The byte credit of port 1 */ | ||
2119 | #define QM_REG_PORT1BYTECRD 0x168304 | ||
2120 | /* [WB 54] Pointer Table Memory; The mapping is as follow: ptrtbl[53:30] | ||
2121 | read pointer; ptrtbl[29:6] write pointer; ptrtbl[5:4] read bank0; | ||
2122 | ptrtbl[3:2] read bank 1; ptrtbl[1:0] write bank; */ | ||
2123 | #define QM_REG_PTRTBL 0x168a00 | ||
2124 | /* [RW 2] Interrupt mask register #0 read/write */ | ||
2125 | #define QM_REG_QM_INT_MASK 0x168444 | ||
2126 | /* [R 2] Interrupt register #0 read */ | ||
2127 | #define QM_REG_QM_INT_STS 0x168438 | ||
2128 | /* [RW 9] Parity mask register #0 read/write */ | ||
2129 | #define QM_REG_QM_PRTY_MASK 0x168454 | ||
2130 | /* [R 32] Current queues in pipeline: Queues from 32 to 63 */ | ||
2131 | #define QM_REG_QSTATUS_HIGH 0x16802c | ||
2132 | /* [R 32] Current queues in pipeline: Queues from 0 to 31 */ | ||
2133 | #define QM_REG_QSTATUS_LOW 0x168028 | ||
2134 | /* [R 24] The number of tasks queued for each queue */ | ||
2135 | #define QM_REG_QTASKCTR_0 0x168308 | ||
2136 | /* [RW 4] Queue tied to VOQ */ | ||
2137 | #define QM_REG_QVOQIDX_0 0x1680f4 | ||
2138 | #define QM_REG_QVOQIDX_10 0x16811c | ||
2139 | #define QM_REG_QVOQIDX_11 0x168120 | ||
2140 | #define QM_REG_QVOQIDX_12 0x168124 | ||
2141 | #define QM_REG_QVOQIDX_13 0x168128 | ||
2142 | #define QM_REG_QVOQIDX_14 0x16812c | ||
2143 | #define QM_REG_QVOQIDX_15 0x168130 | ||
2144 | #define QM_REG_QVOQIDX_16 0x168134 | ||
2145 | #define QM_REG_QVOQIDX_17 0x168138 | ||
2146 | #define QM_REG_QVOQIDX_21 0x168148 | ||
2147 | #define QM_REG_QVOQIDX_25 0x168158 | ||
2148 | #define QM_REG_QVOQIDX_29 0x168168 | ||
2149 | #define QM_REG_QVOQIDX_32 0x168174 | ||
2150 | #define QM_REG_QVOQIDX_33 0x168178 | ||
2151 | #define QM_REG_QVOQIDX_34 0x16817c | ||
2152 | #define QM_REG_QVOQIDX_35 0x168180 | ||
2153 | #define QM_REG_QVOQIDX_36 0x168184 | ||
2154 | #define QM_REG_QVOQIDX_37 0x168188 | ||
2155 | #define QM_REG_QVOQIDX_38 0x16818c | ||
2156 | #define QM_REG_QVOQIDX_39 0x168190 | ||
2157 | #define QM_REG_QVOQIDX_40 0x168194 | ||
2158 | #define QM_REG_QVOQIDX_41 0x168198 | ||
2159 | #define QM_REG_QVOQIDX_42 0x16819c | ||
2160 | #define QM_REG_QVOQIDX_43 0x1681a0 | ||
2161 | #define QM_REG_QVOQIDX_44 0x1681a4 | ||
2162 | #define QM_REG_QVOQIDX_45 0x1681a8 | ||
2163 | #define QM_REG_QVOQIDX_46 0x1681ac | ||
2164 | #define QM_REG_QVOQIDX_47 0x1681b0 | ||
2165 | #define QM_REG_QVOQIDX_48 0x1681b4 | ||
2166 | #define QM_REG_QVOQIDX_49 0x1681b8 | ||
2167 | #define QM_REG_QVOQIDX_5 0x168108 | ||
2168 | #define QM_REG_QVOQIDX_50 0x1681bc | ||
2169 | #define QM_REG_QVOQIDX_51 0x1681c0 | ||
2170 | #define QM_REG_QVOQIDX_52 0x1681c4 | ||
2171 | #define QM_REG_QVOQIDX_53 0x1681c8 | ||
2172 | #define QM_REG_QVOQIDX_54 0x1681cc | ||
2173 | #define QM_REG_QVOQIDX_55 0x1681d0 | ||
2174 | #define QM_REG_QVOQIDX_56 0x1681d4 | ||
2175 | #define QM_REG_QVOQIDX_57 0x1681d8 | ||
2176 | #define QM_REG_QVOQIDX_58 0x1681dc | ||
2177 | #define QM_REG_QVOQIDX_59 0x1681e0 | ||
2178 | #define QM_REG_QVOQIDX_50 0x1681bc | ||
2179 | #define QM_REG_QVOQIDX_51 0x1681c0 | ||
2180 | #define QM_REG_QVOQIDX_52 0x1681c4 | ||
2181 | #define QM_REG_QVOQIDX_53 0x1681c8 | ||
2182 | #define QM_REG_QVOQIDX_54 0x1681cc | ||
2183 | #define QM_REG_QVOQIDX_55 0x1681d0 | ||
2184 | #define QM_REG_QVOQIDX_56 0x1681d4 | ||
2185 | #define QM_REG_QVOQIDX_57 0x1681d8 | ||
2186 | #define QM_REG_QVOQIDX_58 0x1681dc | ||
2187 | #define QM_REG_QVOQIDX_59 0x1681e0 | ||
2188 | #define QM_REG_QVOQIDX_6 0x16810c | ||
2189 | #define QM_REG_QVOQIDX_60 0x1681e4 | ||
2190 | #define QM_REG_QVOQIDX_61 0x1681e8 | ||
2191 | #define QM_REG_QVOQIDX_62 0x1681ec | ||
2192 | #define QM_REG_QVOQIDX_63 0x1681f0 | ||
2193 | #define QM_REG_QVOQIDX_60 0x1681e4 | ||
2194 | #define QM_REG_QVOQIDX_61 0x1681e8 | ||
2195 | #define QM_REG_QVOQIDX_62 0x1681ec | ||
2196 | #define QM_REG_QVOQIDX_63 0x1681f0 | ||
2197 | #define QM_REG_QVOQIDX_7 0x168110 | ||
2198 | #define QM_REG_QVOQIDX_8 0x168114 | ||
2199 | #define QM_REG_QVOQIDX_9 0x168118 | ||
2200 | /* [R 24] Remaining pause timeout for port 0 */ | ||
2201 | #define QM_REG_REMAINPAUSETM0 0x168418 | ||
2202 | /* [R 24] Remaining pause timeout for port 1 */ | ||
2203 | #define QM_REG_REMAINPAUSETM1 0x16841c | ||
2204 | /* [RW 1] Initialization bit command */ | ||
2205 | #define QM_REG_SOFT_RESET 0x168428 | ||
2206 | /* [RW 8] The credit cost per every task in the QM. A value per each VOQ */ | ||
2207 | #define QM_REG_TASKCRDCOST_0 0x16809c | ||
2208 | #define QM_REG_TASKCRDCOST_1 0x1680a0 | ||
2209 | #define QM_REG_TASKCRDCOST_10 0x1680c4 | ||
2210 | #define QM_REG_TASKCRDCOST_11 0x1680c8 | ||
2211 | #define QM_REG_TASKCRDCOST_2 0x1680a4 | ||
2212 | #define QM_REG_TASKCRDCOST_4 0x1680ac | ||
2213 | #define QM_REG_TASKCRDCOST_5 0x1680b0 | ||
2214 | /* [R 6] Keep the fill level of the fifo from write client 3 */ | ||
2215 | #define QM_REG_TQM_WRC_FIFOLVL 0x168010 | ||
2216 | /* [R 6] Keep the fill level of the fifo from write client 2 */ | ||
2217 | #define QM_REG_UQM_WRC_FIFOLVL 0x168008 | ||
2218 | /* [RC 32] Credit update error register */ | ||
2219 | #define QM_REG_VOQCRDERRREG 0x168408 | ||
2220 | /* [R 16] The credit value for each VOQ */ | ||
2221 | #define QM_REG_VOQCREDIT_0 0x1682d0 | ||
2222 | #define QM_REG_VOQCREDIT_1 0x1682d4 | ||
2223 | #define QM_REG_VOQCREDIT_10 0x1682f8 | ||
2224 | #define QM_REG_VOQCREDIT_11 0x1682fc | ||
2225 | #define QM_REG_VOQCREDIT_4 0x1682e0 | ||
2226 | /* [RW 16] The credit value that if above the QM is considered almost full */ | ||
2227 | #define QM_REG_VOQCREDITAFULLTHR 0x168090 | ||
2228 | /* [RW 16] The init and maximum credit for each VoQ */ | ||
2229 | #define QM_REG_VOQINITCREDIT_0 0x168060 | ||
2230 | #define QM_REG_VOQINITCREDIT_1 0x168064 | ||
2231 | #define QM_REG_VOQINITCREDIT_10 0x168088 | ||
2232 | #define QM_REG_VOQINITCREDIT_11 0x16808c | ||
2233 | #define QM_REG_VOQINITCREDIT_2 0x168068 | ||
2234 | #define QM_REG_VOQINITCREDIT_4 0x168070 | ||
2235 | #define QM_REG_VOQINITCREDIT_5 0x168074 | ||
2236 | /* [RW 1] The port of which VOQ belongs */ | ||
2237 | #define QM_REG_VOQPORT_1 0x1682a4 | ||
2238 | #define QM_REG_VOQPORT_10 0x1682c8 | ||
2239 | #define QM_REG_VOQPORT_11 0x1682cc | ||
2240 | #define QM_REG_VOQPORT_2 0x1682a8 | ||
2241 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2242 | #define QM_REG_VOQQMASK_0_LSB 0x168240 | ||
2243 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2244 | #define QM_REG_VOQQMASK_0_MSB 0x168244 | ||
2245 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2246 | #define QM_REG_VOQQMASK_1_MSB 0x16824c | ||
2247 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2248 | #define QM_REG_VOQQMASK_2_LSB 0x168250 | ||
2249 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2250 | #define QM_REG_VOQQMASK_2_MSB 0x168254 | ||
2251 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2252 | #define QM_REG_VOQQMASK_3_LSB 0x168258 | ||
2253 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2254 | #define QM_REG_VOQQMASK_4_LSB 0x168260 | ||
2255 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2256 | #define QM_REG_VOQQMASK_4_MSB 0x168264 | ||
2257 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2258 | #define QM_REG_VOQQMASK_5_LSB 0x168268 | ||
2259 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2260 | #define QM_REG_VOQQMASK_5_MSB 0x16826c | ||
2261 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2262 | #define QM_REG_VOQQMASK_6_LSB 0x168270 | ||
2263 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2264 | #define QM_REG_VOQQMASK_6_MSB 0x168274 | ||
2265 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2266 | #define QM_REG_VOQQMASK_7_LSB 0x168278 | ||
2267 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2268 | #define QM_REG_VOQQMASK_7_MSB 0x16827c | ||
2269 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2270 | #define QM_REG_VOQQMASK_8_LSB 0x168280 | ||
2271 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2272 | #define QM_REG_VOQQMASK_8_MSB 0x168284 | ||
2273 | /* [RW 32] The physical queue number associated with each VOQ */ | ||
2274 | #define QM_REG_VOQQMASK_9_LSB 0x168288 | ||
2275 | /* [RW 32] Wrr weights */ | ||
2276 | #define QM_REG_WRRWEIGHTS_0 0x16880c | ||
2277 | #define QM_REG_WRRWEIGHTS_1 0x168810 | ||
2278 | #define QM_REG_WRRWEIGHTS_10 0x168814 | ||
2279 | #define QM_REG_WRRWEIGHTS_10_SIZE 1 | ||
2280 | /* [RW 32] Wrr weights */ | ||
2281 | #define QM_REG_WRRWEIGHTS_11 0x168818 | ||
2282 | #define QM_REG_WRRWEIGHTS_11_SIZE 1 | ||
2283 | /* [RW 32] Wrr weights */ | ||
2284 | #define QM_REG_WRRWEIGHTS_12 0x16881c | ||
2285 | #define QM_REG_WRRWEIGHTS_12_SIZE 1 | ||
2286 | /* [RW 32] Wrr weights */ | ||
2287 | #define QM_REG_WRRWEIGHTS_13 0x168820 | ||
2288 | #define QM_REG_WRRWEIGHTS_13_SIZE 1 | ||
2289 | /* [RW 32] Wrr weights */ | ||
2290 | #define QM_REG_WRRWEIGHTS_14 0x168824 | ||
2291 | #define QM_REG_WRRWEIGHTS_14_SIZE 1 | ||
2292 | /* [RW 32] Wrr weights */ | ||
2293 | #define QM_REG_WRRWEIGHTS_15 0x168828 | ||
2294 | #define QM_REG_WRRWEIGHTS_15_SIZE 1 | ||
2295 | /* [RW 32] Wrr weights */ | ||
2296 | #define QM_REG_WRRWEIGHTS_10 0x168814 | ||
2297 | #define QM_REG_WRRWEIGHTS_11 0x168818 | ||
2298 | #define QM_REG_WRRWEIGHTS_12 0x16881c | ||
2299 | #define QM_REG_WRRWEIGHTS_13 0x168820 | ||
2300 | #define QM_REG_WRRWEIGHTS_14 0x168824 | ||
2301 | #define QM_REG_WRRWEIGHTS_15 0x168828 | ||
2302 | #define QM_REG_WRRWEIGHTS_2 0x16882c | ||
2303 | #define QM_REG_WRRWEIGHTS_3 0x168830 | ||
2304 | #define QM_REG_WRRWEIGHTS_4 0x168834 | ||
2305 | #define QM_REG_WRRWEIGHTS_5 0x168838 | ||
2306 | #define QM_REG_WRRWEIGHTS_6 0x16883c | ||
2307 | #define QM_REG_WRRWEIGHTS_7 0x168840 | ||
2308 | #define QM_REG_WRRWEIGHTS_8 0x168844 | ||
2309 | #define QM_REG_WRRWEIGHTS_9 0x168848 | ||
2310 | /* [R 6] Keep the fill level of the fifo from write client 1 */ | ||
2311 | #define QM_REG_XQM_WRC_FIFOLVL 0x168000 | ||
2312 | #define DORQ_DORQ_INT_STS_REG_ADDRESS_ERROR (0x1<<0) | ||
2313 | #define DORQ_DORQ_INT_STS_REG_ADDRESS_ERROR_SIZE 0 | ||
2314 | #define DORQ_DORQ_INT_STS_CLR_REG_ADDRESS_ERROR (0x1<<0) | ||
2315 | #define DORQ_DORQ_INT_STS_CLR_REG_ADDRESS_ERROR_SIZE 0 | ||
2316 | #define DORQ_DORQ_INT_STS_WR_REG_ADDRESS_ERROR (0x1<<0) | ||
2317 | #define DORQ_DORQ_INT_STS_WR_REG_ADDRESS_ERROR_SIZE 0 | ||
2318 | #define DORQ_DORQ_INT_MASK_REG_ADDRESS_ERROR (0x1<<0) | ||
2319 | #define DORQ_DORQ_INT_MASK_REG_ADDRESS_ERROR_SIZE 0 | ||
2320 | #define NIG_NIG_INT_STS_0_REG_ADDRESS_ERROR (0x1<<0) | ||
2321 | #define NIG_NIG_INT_STS_0_REG_ADDRESS_ERROR_SIZE 0 | ||
2322 | #define NIG_NIG_INT_STS_CLR_0_REG_ADDRESS_ERROR (0x1<<0) | ||
2323 | #define NIG_NIG_INT_STS_CLR_0_REG_ADDRESS_ERROR_SIZE 0 | ||
2324 | #define NIG_NIG_INT_STS_WR_0_REG_ADDRESS_ERROR (0x1<<0) | ||
2325 | #define NIG_NIG_INT_STS_WR_0_REG_ADDRESS_ERROR_SIZE 0 | ||
2326 | #define NIG_NIG_INT_MASK_0_REG_ADDRESS_ERROR (0x1<<0) | ||
2327 | #define NIG_NIG_INT_MASK_0_REG_ADDRESS_ERROR_SIZE 0 | ||
2328 | #define TCM_TCM_INT_STS_REG_ADDRESS_ERROR (0x1<<0) | ||
2329 | #define TCM_TCM_INT_STS_REG_ADDRESS_ERROR_SIZE 0 | ||
2330 | #define TCM_TCM_INT_STS_CLR_REG_ADDRESS_ERROR (0x1<<0) | ||
2331 | #define TCM_TCM_INT_STS_CLR_REG_ADDRESS_ERROR_SIZE 0 | ||
2332 | #define TCM_TCM_INT_STS_WR_REG_ADDRESS_ERROR (0x1<<0) | ||
2333 | #define TCM_TCM_INT_STS_WR_REG_ADDRESS_ERROR_SIZE 0 | ||
2334 | #define TCM_TCM_INT_MASK_REG_ADDRESS_ERROR (0x1<<0) | ||
2335 | #define TCM_TCM_INT_MASK_REG_ADDRESS_ERROR_SIZE 0 | ||
2336 | #define CFC_DEBUG1_REG_WRITE_AC (0x1<<4) | ||
2337 | #define CFC_DEBUG1_REG_WRITE_AC_SIZE 4 | ||
2338 | /* [R 1] debug only: This bit indicates wheter indicates that external | ||
2339 | buffer was wrapped (oldest data was thrown); Relevant only when | ||
2340 | ~dbg_registers_debug_target=2 (PCI) & ~dbg_registers_full_mode=1 (wrap); */ | ||
2341 | #define DBG_REG_WRAP_ON_EXT_BUFFER 0xc124 | ||
2342 | #define DBG_REG_WRAP_ON_EXT_BUFFER_SIZE 1 | ||
2343 | /* [R 1] debug only: This bit indicates wheter the internal buffer was | ||
2344 | wrapped (oldest data was thrown) Relevant only when | ||
2345 | ~dbg_registers_debug_target=0 (internal buffer) */ | ||
2346 | #define DBG_REG_WRAP_ON_INT_BUFFER 0xc128 | ||
2347 | #define DBG_REG_WRAP_ON_INT_BUFFER_SIZE 1 | ||
2348 | /* [RW 32] Wrr weights */ | ||
2349 | #define QM_REG_WRRWEIGHTS_0 0x16880c | ||
2350 | #define QM_REG_WRRWEIGHTS_0_SIZE 1 | ||
2351 | /* [RW 32] Wrr weights */ | ||
2352 | #define QM_REG_WRRWEIGHTS_1 0x168810 | ||
2353 | #define QM_REG_WRRWEIGHTS_1_SIZE 1 | ||
2354 | /* [RW 32] Wrr weights */ | ||
2355 | #define QM_REG_WRRWEIGHTS_10 0x168814 | ||
2356 | #define QM_REG_WRRWEIGHTS_10_SIZE 1 | ||
2357 | /* [RW 32] Wrr weights */ | ||
2358 | #define QM_REG_WRRWEIGHTS_11 0x168818 | ||
2359 | #define QM_REG_WRRWEIGHTS_11_SIZE 1 | ||
2360 | /* [RW 32] Wrr weights */ | ||
2361 | #define QM_REG_WRRWEIGHTS_12 0x16881c | ||
2362 | #define QM_REG_WRRWEIGHTS_12_SIZE 1 | ||
2363 | /* [RW 32] Wrr weights */ | ||
2364 | #define QM_REG_WRRWEIGHTS_13 0x168820 | ||
2365 | #define QM_REG_WRRWEIGHTS_13_SIZE 1 | ||
2366 | /* [RW 32] Wrr weights */ | ||
2367 | #define QM_REG_WRRWEIGHTS_14 0x168824 | ||
2368 | #define QM_REG_WRRWEIGHTS_14_SIZE 1 | ||
2369 | /* [RW 32] Wrr weights */ | ||
2370 | #define QM_REG_WRRWEIGHTS_15 0x168828 | ||
2371 | #define QM_REG_WRRWEIGHTS_15_SIZE 1 | ||
2372 | /* [RW 32] Wrr weights */ | ||
2373 | #define QM_REG_WRRWEIGHTS_2 0x16882c | ||
2374 | #define QM_REG_WRRWEIGHTS_2_SIZE 1 | ||
2375 | /* [RW 32] Wrr weights */ | ||
2376 | #define QM_REG_WRRWEIGHTS_3 0x168830 | ||
2377 | #define QM_REG_WRRWEIGHTS_3_SIZE 1 | ||
2378 | /* [RW 32] Wrr weights */ | ||
2379 | #define QM_REG_WRRWEIGHTS_4 0x168834 | ||
2380 | #define QM_REG_WRRWEIGHTS_4_SIZE 1 | ||
2381 | /* [RW 32] Wrr weights */ | ||
2382 | #define QM_REG_WRRWEIGHTS_5 0x168838 | ||
2383 | #define QM_REG_WRRWEIGHTS_5_SIZE 1 | ||
2384 | /* [RW 32] Wrr weights */ | ||
2385 | #define QM_REG_WRRWEIGHTS_6 0x16883c | ||
2386 | #define QM_REG_WRRWEIGHTS_6_SIZE 1 | ||
2387 | /* [RW 32] Wrr weights */ | ||
2388 | #define QM_REG_WRRWEIGHTS_7 0x168840 | ||
2389 | #define QM_REG_WRRWEIGHTS_7_SIZE 1 | ||
2390 | /* [RW 32] Wrr weights */ | ||
2391 | #define QM_REG_WRRWEIGHTS_8 0x168844 | ||
2392 | #define QM_REG_WRRWEIGHTS_8_SIZE 1 | ||
2393 | /* [RW 32] Wrr weights */ | ||
2394 | #define QM_REG_WRRWEIGHTS_9 0x168848 | ||
2395 | #define QM_REG_WRRWEIGHTS_9_SIZE 1 | ||
2396 | /* [RW 22] Number of free element in the free list of T2 entries - port 0. */ | ||
2397 | #define SRC_REG_COUNTFREE0 0x40500 | ||
2398 | /* [WB 64] First free element in the free list of T2 entries - port 0. */ | ||
2399 | #define SRC_REG_FIRSTFREE0 0x40510 | ||
2400 | #define SRC_REG_KEYRSS0_0 0x40408 | ||
2401 | #define SRC_REG_KEYRSS1_9 0x40454 | ||
2402 | /* [WB 64] Last free element in the free list of T2 entries - port 0. */ | ||
2403 | #define SRC_REG_LASTFREE0 0x40530 | ||
2404 | /* [RW 5] The number of hash bits used for the search (h); Values can be 8 | ||
2405 | to 24. */ | ||
2406 | #define SRC_REG_NUMBER_HASH_BITS0 0x40400 | ||
2407 | /* [RW 1] Reset internal state machines. */ | ||
2408 | #define SRC_REG_SOFT_RST 0x4049c | ||
2409 | /* [R 1] Interrupt register #0 read */ | ||
2410 | #define SRC_REG_SRC_INT_STS 0x404ac | ||
2411 | /* [RW 3] Parity mask register #0 read/write */ | ||
2412 | #define SRC_REG_SRC_PRTY_MASK 0x404c8 | ||
2413 | /* [R 4] Used to read the value of the XX protection CAM occupancy counter. */ | ||
2414 | #define TCM_REG_CAM_OCCUP 0x5017c | ||
2415 | /* [RW 1] CDU AG read Interface enable. If 0 - the request input is | ||
2416 | disregarded; valid output is deasserted; all other signals are treated as | ||
2417 | usual; if 1 - normal activity. */ | ||
2418 | #define TCM_REG_CDU_AG_RD_IFEN 0x50034 | ||
2419 | /* [RW 1] CDU AG write Interface enable. If 0 - the request and valid input | ||
2420 | are disregarded; all other signals are treated as usual; if 1 - normal | ||
2421 | activity. */ | ||
2422 | #define TCM_REG_CDU_AG_WR_IFEN 0x50030 | ||
2423 | /* [RW 1] CDU STORM read Interface enable. If 0 - the request input is | ||
2424 | disregarded; valid output is deasserted; all other signals are treated as | ||
2425 | usual; if 1 - normal activity. */ | ||
2426 | #define TCM_REG_CDU_SM_RD_IFEN 0x5003c | ||
2427 | /* [RW 1] CDU STORM write Interface enable. If 0 - the request and valid | ||
2428 | input is disregarded; all other signals are treated as usual; if 1 - | ||
2429 | normal activity. */ | ||
2430 | #define TCM_REG_CDU_SM_WR_IFEN 0x50038 | ||
2431 | /* [RW 4] CFC output initial credit. Max credit available - 15.Write writes | ||
2432 | the initial credit value; read returns the current value of the credit | ||
2433 | counter. Must be initialized to 1 at start-up. */ | ||
2434 | #define TCM_REG_CFC_INIT_CRD 0x50204 | ||
2435 | /* [RW 3] The weight of the CP input in the WRR mechanism. 0 stands for | ||
2436 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
2437 | prioritised); 2 stands for weight 2; tc. */ | ||
2438 | #define TCM_REG_CP_WEIGHT 0x500c0 | ||
2439 | /* [RW 1] Input csem Interface enable. If 0 - the valid input is | ||
2440 | disregarded; acknowledge output is deasserted; all other signals are | ||
2441 | treated as usual; if 1 - normal activity. */ | ||
2442 | #define TCM_REG_CSEM_IFEN 0x5002c | ||
2443 | /* [RC 1] Message length mismatch (relative to last indication) at the In#9 | ||
2444 | interface. */ | ||
2445 | #define TCM_REG_CSEM_LENGTH_MIS 0x50174 | ||
2446 | /* [RW 8] The Event ID in case of ErrorFlg is set in the input message. */ | ||
2447 | #define TCM_REG_ERR_EVNT_ID 0x500a0 | ||
2448 | /* [RW 28] The CM erroneous header for QM and Timers formatting. */ | ||
2449 | #define TCM_REG_ERR_TCM_HDR 0x5009c | ||
2450 | /* [RW 8] The Event ID for Timers expiration. */ | ||
2451 | #define TCM_REG_EXPR_EVNT_ID 0x500a4 | ||
2452 | /* [RW 8] FIC0 output initial credit. Max credit available - 255.Write | ||
2453 | writes the initial credit value; read returns the current value of the | ||
2454 | credit counter. Must be initialized to 64 at start-up. */ | ||
2455 | #define TCM_REG_FIC0_INIT_CRD 0x5020c | ||
2456 | /* [RW 8] FIC1 output initial credit. Max credit available - 255.Write | ||
2457 | writes the initial credit value; read returns the current value of the | ||
2458 | credit counter. Must be initialized to 64 at start-up. */ | ||
2459 | #define TCM_REG_FIC1_INIT_CRD 0x50210 | ||
2460 | /* [RW 1] Arbitration between Input Arbiter groups: 0 - fair Round-Robin; 1 | ||
2461 | - strict priority defined by ~tcm_registers_gr_ag_pr.gr_ag_pr; | ||
2462 | ~tcm_registers_gr_ld0_pr.gr_ld0_pr and | ||
2463 | ~tcm_registers_gr_ld1_pr.gr_ld1_pr. */ | ||
2464 | #define TCM_REG_GR_ARB_TYPE 0x50114 | ||
2465 | /* [RW 2] Load (FIC0) channel group priority. The lowest priority is 0; the | ||
2466 | highest priority is 3. It is supposed that the Store channel is the | ||
2467 | compliment of the other 3 groups. */ | ||
2468 | #define TCM_REG_GR_LD0_PR 0x5011c | ||
2469 | /* [RW 2] Load (FIC1) channel group priority. The lowest priority is 0; the | ||
2470 | highest priority is 3. It is supposed that the Store channel is the | ||
2471 | compliment of the other 3 groups. */ | ||
2472 | #define TCM_REG_GR_LD1_PR 0x50120 | ||
2473 | /* [RW 4] The number of double REG-pairs; loaded from the STORM context and | ||
2474 | sent to STORM; for a specific connection type. The double REG-pairs are | ||
2475 | used to align to STORM context row size of 128 bits. The offset of these | ||
2476 | data in the STORM context is always 0. Index _i stands for the connection | ||
2477 | type (one of 16). */ | ||
2478 | #define TCM_REG_N_SM_CTX_LD_0 0x50050 | ||
2479 | #define TCM_REG_N_SM_CTX_LD_1 0x50054 | ||
2480 | #define TCM_REG_N_SM_CTX_LD_10 0x50078 | ||
2481 | #define TCM_REG_N_SM_CTX_LD_11 0x5007c | ||
2482 | #define TCM_REG_N_SM_CTX_LD_12 0x50080 | ||
2483 | #define TCM_REG_N_SM_CTX_LD_13 0x50084 | ||
2484 | #define TCM_REG_N_SM_CTX_LD_14 0x50088 | ||
2485 | #define TCM_REG_N_SM_CTX_LD_15 0x5008c | ||
2486 | #define TCM_REG_N_SM_CTX_LD_2 0x50058 | ||
2487 | #define TCM_REG_N_SM_CTX_LD_3 0x5005c | ||
2488 | #define TCM_REG_N_SM_CTX_LD_4 0x50060 | ||
2489 | /* [RW 1] Input pbf Interface enable. If 0 - the valid input is disregarded; | ||
2490 | acknowledge output is deasserted; all other signals are treated as usual; | ||
2491 | if 1 - normal activity. */ | ||
2492 | #define TCM_REG_PBF_IFEN 0x50024 | ||
2493 | /* [RC 1] Message length mismatch (relative to last indication) at the In#7 | ||
2494 | interface. */ | ||
2495 | #define TCM_REG_PBF_LENGTH_MIS 0x5016c | ||
2496 | /* [RW 3] The weight of the input pbf in the WRR mechanism. 0 stands for | ||
2497 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
2498 | prioritised); 2 stands for weight 2; tc. */ | ||
2499 | #define TCM_REG_PBF_WEIGHT 0x500b4 | ||
2500 | /* [RW 6] The physical queue number 0 per port index. */ | ||
2501 | #define TCM_REG_PHYS_QNUM0_0 0x500e0 | ||
2502 | #define TCM_REG_PHYS_QNUM0_1 0x500e4 | ||
2503 | /* [RW 6] The physical queue number 1 per port index. */ | ||
2504 | #define TCM_REG_PHYS_QNUM1_0 0x500e8 | ||
2505 | /* [RW 1] Input prs Interface enable. If 0 - the valid input is disregarded; | ||
2506 | acknowledge output is deasserted; all other signals are treated as usual; | ||
2507 | if 1 - normal activity. */ | ||
2508 | #define TCM_REG_PRS_IFEN 0x50020 | ||
2509 | /* [RC 1] Message length mismatch (relative to last indication) at the In#6 | ||
2510 | interface. */ | ||
2511 | #define TCM_REG_PRS_LENGTH_MIS 0x50168 | ||
2512 | /* [RW 3] The weight of the input prs in the WRR mechanism. 0 stands for | ||
2513 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
2514 | prioritised); 2 stands for weight 2; tc. */ | ||
2515 | #define TCM_REG_PRS_WEIGHT 0x500b0 | ||
2516 | /* [RW 8] The Event ID for Timers formatting in case of stop done. */ | ||
2517 | #define TCM_REG_STOP_EVNT_ID 0x500a8 | ||
2518 | /* [RC 1] Message length mismatch (relative to last indication) at the STORM | ||
2519 | interface. */ | ||
2520 | #define TCM_REG_STORM_LENGTH_MIS 0x50160 | ||
2521 | /* [RW 1] STORM - CM Interface enable. If 0 - the valid input is | ||
2522 | disregarded; acknowledge output is deasserted; all other signals are | ||
2523 | treated as usual; if 1 - normal activity. */ | ||
2524 | #define TCM_REG_STORM_TCM_IFEN 0x50010 | ||
2525 | /* [RW 1] CM - CFC Interface enable. If 0 - the valid input is disregarded; | ||
2526 | acknowledge output is deasserted; all other signals are treated as usual; | ||
2527 | if 1 - normal activity. */ | ||
2528 | #define TCM_REG_TCM_CFC_IFEN 0x50040 | ||
2529 | /* [RW 11] Interrupt mask register #0 read/write */ | ||
2530 | #define TCM_REG_TCM_INT_MASK 0x501dc | ||
2531 | /* [R 11] Interrupt register #0 read */ | ||
2532 | #define TCM_REG_TCM_INT_STS 0x501d0 | ||
2533 | /* [RW 3] The size of AG context region 0 in REG-pairs. Designates the MS | ||
2534 | REG-pair number (e.g. if region 0 is 6 REG-pairs; the value should be 5). | ||
2535 | Is used to determine the number of the AG context REG-pairs written back; | ||
2536 | when the input message Reg1WbFlg isn't set. */ | ||
2537 | #define TCM_REG_TCM_REG0_SZ 0x500d8 | ||
2538 | /* [RW 1] CM - STORM 0 Interface enable. If 0 - the acknowledge input is | ||
2539 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
2540 | if 1 - normal activity. */ | ||
2541 | #define TCM_REG_TCM_STORM0_IFEN 0x50004 | ||
2542 | /* [RW 1] CM - STORM 1 Interface enable. If 0 - the acknowledge input is | ||
2543 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
2544 | if 1 - normal activity. */ | ||
2545 | #define TCM_REG_TCM_STORM1_IFEN 0x50008 | ||
2546 | /* [RW 1] CM - QM Interface enable. If 0 - the acknowledge input is | ||
2547 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
2548 | if 1 - normal activity. */ | ||
2549 | #define TCM_REG_TCM_TQM_IFEN 0x5000c | ||
2550 | /* [RW 1] If set the Q index; received from the QM is inserted to event ID. */ | ||
2551 | #define TCM_REG_TCM_TQM_USE_Q 0x500d4 | ||
2552 | /* [RW 28] The CM header for Timers expiration command. */ | ||
2553 | #define TCM_REG_TM_TCM_HDR 0x50098 | ||
2554 | /* [RW 1] Timers - CM Interface enable. If 0 - the valid input is | ||
2555 | disregarded; acknowledge output is deasserted; all other signals are | ||
2556 | treated as usual; if 1 - normal activity. */ | ||
2557 | #define TCM_REG_TM_TCM_IFEN 0x5001c | ||
2558 | /* [RW 6] QM output initial credit. Max credit available - 32.Write writes | ||
2559 | the initial credit value; read returns the current value of the credit | ||
2560 | counter. Must be initialized to 32 at start-up. */ | ||
2561 | #define TCM_REG_TQM_INIT_CRD 0x5021c | ||
2562 | /* [RW 28] The CM header value for QM request (primary). */ | ||
2563 | #define TCM_REG_TQM_TCM_HDR_P 0x50090 | ||
2564 | /* [RW 28] The CM header value for QM request (secondary). */ | ||
2565 | #define TCM_REG_TQM_TCM_HDR_S 0x50094 | ||
2566 | /* [RW 1] QM - CM Interface enable. If 0 - the valid input is disregarded; | ||
2567 | acknowledge output is deasserted; all other signals are treated as usual; | ||
2568 | if 1 - normal activity. */ | ||
2569 | #define TCM_REG_TQM_TCM_IFEN 0x50014 | ||
2570 | /* [RW 1] Input SDM Interface enable. If 0 - the valid input is disregarded; | ||
2571 | acknowledge output is deasserted; all other signals are treated as usual; | ||
2572 | if 1 - normal activity. */ | ||
2573 | #define TCM_REG_TSDM_IFEN 0x50018 | ||
2574 | /* [RC 1] Message length mismatch (relative to last indication) at the SDM | ||
2575 | interface. */ | ||
2576 | #define TCM_REG_TSDM_LENGTH_MIS 0x50164 | ||
2577 | /* [RW 3] The weight of the SDM input in the WRR mechanism. 0 stands for | ||
2578 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
2579 | prioritised); 2 stands for weight 2; tc. */ | ||
2580 | #define TCM_REG_TSDM_WEIGHT 0x500c4 | ||
2581 | /* [RW 1] Input usem Interface enable. If 0 - the valid input is | ||
2582 | disregarded; acknowledge output is deasserted; all other signals are | ||
2583 | treated as usual; if 1 - normal activity. */ | ||
2584 | #define TCM_REG_USEM_IFEN 0x50028 | ||
2585 | /* [RC 1] Message length mismatch (relative to last indication) at the In#8 | ||
2586 | interface. */ | ||
2587 | #define TCM_REG_USEM_LENGTH_MIS 0x50170 | ||
2588 | /* [RW 21] Indirect access to the descriptor table of the XX protection | ||
2589 | mechanism. The fields are: [5:0] - length of the message; 15:6] - message | ||
2590 | pointer; 20:16] - next pointer. */ | ||
2591 | #define TCM_REG_XX_DESCR_TABLE 0x50280 | ||
2592 | /* [R 6] Use to read the value of XX protection Free counter. */ | ||
2593 | #define TCM_REG_XX_FREE 0x50178 | ||
2594 | /* [RW 6] Initial value for the credit counter; responsible for fulfilling | ||
2595 | of the Input Stage XX protection buffer by the XX protection pending | ||
2596 | messages. Max credit available - 127.Write writes the initial credit | ||
2597 | value; read returns the current value of the credit counter. Must be | ||
2598 | initialized to 19 at start-up. */ | ||
2599 | #define TCM_REG_XX_INIT_CRD 0x50220 | ||
2600 | /* [RW 6] Maximum link list size (messages locked) per connection in the XX | ||
2601 | protection. */ | ||
2602 | #define TCM_REG_XX_MAX_LL_SZ 0x50044 | ||
2603 | /* [RW 6] The maximum number of pending messages; which may be stored in XX | ||
2604 | protection. ~tcm_registers_xx_free.xx_free is read on read. */ | ||
2605 | #define TCM_REG_XX_MSG_NUM 0x50224 | ||
2606 | /* [RW 8] The Event ID; sent to the STORM in case of XX overflow. */ | ||
2607 | #define TCM_REG_XX_OVFL_EVNT_ID 0x50048 | ||
2608 | /* [RW 16] Indirect access to the XX table of the XX protection mechanism. | ||
2609 | The fields are:[4:0] - tail pointer; [10:5] - Link List size; 15:11] - | ||
2610 | header pointer. */ | ||
2611 | #define TCM_REG_XX_TABLE 0x50240 | ||
2612 | /* [RW 4] Load value for for cfc ac credit cnt. */ | ||
2613 | #define TM_REG_CFC_AC_CRDCNT_VAL 0x164208 | ||
2614 | /* [RW 4] Load value for cfc cld credit cnt. */ | ||
2615 | #define TM_REG_CFC_CLD_CRDCNT_VAL 0x164210 | ||
2616 | /* [RW 8] Client0 context region. */ | ||
2617 | #define TM_REG_CL0_CONT_REGION 0x164030 | ||
2618 | /* [RW 8] Client1 context region. */ | ||
2619 | #define TM_REG_CL1_CONT_REGION 0x164034 | ||
2620 | /* [RW 8] Client2 context region. */ | ||
2621 | #define TM_REG_CL2_CONT_REGION 0x164038 | ||
2622 | /* [RW 2] Client in High priority client number. */ | ||
2623 | #define TM_REG_CLIN_PRIOR0_CLIENT 0x164024 | ||
2624 | /* [RW 4] Load value for clout0 cred cnt. */ | ||
2625 | #define TM_REG_CLOUT_CRDCNT0_VAL 0x164220 | ||
2626 | /* [RW 4] Load value for clout1 cred cnt. */ | ||
2627 | #define TM_REG_CLOUT_CRDCNT1_VAL 0x164228 | ||
2628 | /* [RW 4] Load value for clout2 cred cnt. */ | ||
2629 | #define TM_REG_CLOUT_CRDCNT2_VAL 0x164230 | ||
2630 | /* [RW 1] Enable client0 input. */ | ||
2631 | #define TM_REG_EN_CL0_INPUT 0x164008 | ||
2632 | /* [RW 1] Enable client1 input. */ | ||
2633 | #define TM_REG_EN_CL1_INPUT 0x16400c | ||
2634 | /* [RW 1] Enable client2 input. */ | ||
2635 | #define TM_REG_EN_CL2_INPUT 0x164010 | ||
2636 | /* [RW 1] Enable real time counter. */ | ||
2637 | #define TM_REG_EN_REAL_TIME_CNT 0x1640d8 | ||
2638 | /* [RW 1] Enable for Timers state machines. */ | ||
2639 | #define TM_REG_EN_TIMERS 0x164000 | ||
2640 | /* [RW 4] Load value for expiration credit cnt. CFC max number of | ||
2641 | outstanding load requests for timers (expiration) context loading. */ | ||
2642 | #define TM_REG_EXP_CRDCNT_VAL 0x164238 | ||
2643 | /* [RW 18] Linear0 Max active cid. */ | ||
2644 | #define TM_REG_LIN0_MAX_ACTIVE_CID 0x164048 | ||
2645 | /* [WB 64] Linear0 phy address. */ | ||
2646 | #define TM_REG_LIN0_PHY_ADDR 0x164270 | ||
2647 | /* [RW 24] Linear0 array scan timeout. */ | ||
2648 | #define TM_REG_LIN0_SCAN_TIME 0x16403c | ||
2649 | /* [WB 64] Linear1 phy address. */ | ||
2650 | #define TM_REG_LIN1_PHY_ADDR 0x164280 | ||
2651 | /* [RW 6] Linear timer set_clear fifo threshold. */ | ||
2652 | #define TM_REG_LIN_SETCLR_FIFO_ALFULL_THR 0x164070 | ||
2653 | /* [RW 2] Load value for pci arbiter credit cnt. */ | ||
2654 | #define TM_REG_PCIARB_CRDCNT_VAL 0x164260 | ||
2655 | /* [RW 1] Timer software reset - active high. */ | ||
2656 | #define TM_REG_TIMER_SOFT_RST 0x164004 | ||
2657 | /* [RW 20] The amount of hardware cycles for each timer tick. */ | ||
2658 | #define TM_REG_TIMER_TICK_SIZE 0x16401c | ||
2659 | /* [RW 8] Timers Context region. */ | ||
2660 | #define TM_REG_TM_CONTEXT_REGION 0x164044 | ||
2661 | /* [RW 1] Interrupt mask register #0 read/write */ | ||
2662 | #define TM_REG_TM_INT_MASK 0x1640fc | ||
2663 | /* [R 1] Interrupt register #0 read */ | ||
2664 | #define TM_REG_TM_INT_STS 0x1640f0 | ||
2665 | /* [RW 8] The event id for aggregated interrupt 0 */ | ||
2666 | #define TSDM_REG_AGG_INT_EVENT_0 0x42038 | ||
2667 | /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */ | ||
2668 | #define TSDM_REG_CFC_RSP_START_ADDR 0x42008 | ||
2669 | /* [RW 16] The maximum value of the competion counter #0 */ | ||
2670 | #define TSDM_REG_CMP_COUNTER_MAX0 0x4201c | ||
2671 | /* [RW 16] The maximum value of the competion counter #1 */ | ||
2672 | #define TSDM_REG_CMP_COUNTER_MAX1 0x42020 | ||
2673 | /* [RW 16] The maximum value of the competion counter #2 */ | ||
2674 | #define TSDM_REG_CMP_COUNTER_MAX2 0x42024 | ||
2675 | /* [RW 16] The maximum value of the competion counter #3 */ | ||
2676 | #define TSDM_REG_CMP_COUNTER_MAX3 0x42028 | ||
2677 | /* [RW 13] The start address in the internal RAM for the completion | ||
2678 | counters. */ | ||
2679 | #define TSDM_REG_CMP_COUNTER_START_ADDR 0x4200c | ||
2680 | #define TSDM_REG_ENABLE_IN1 0x42238 | ||
2681 | #define TSDM_REG_ENABLE_IN2 0x4223c | ||
2682 | #define TSDM_REG_ENABLE_OUT1 0x42240 | ||
2683 | #define TSDM_REG_ENABLE_OUT2 0x42244 | ||
2684 | /* [RW 4] The initial number of messages that can be sent to the pxp control | ||
2685 | interface without receiving any ACK. */ | ||
2686 | #define TSDM_REG_INIT_CREDIT_PXP_CTRL 0x424bc | ||
2687 | /* [ST 32] The number of ACK after placement messages received */ | ||
2688 | #define TSDM_REG_NUM_OF_ACK_AFTER_PLACE 0x4227c | ||
2689 | /* [ST 32] The number of packet end messages received from the parser */ | ||
2690 | #define TSDM_REG_NUM_OF_PKT_END_MSG 0x42274 | ||
2691 | /* [ST 32] The number of requests received from the pxp async if */ | ||
2692 | #define TSDM_REG_NUM_OF_PXP_ASYNC_REQ 0x42278 | ||
2693 | /* [ST 32] The number of commands received in queue 0 */ | ||
2694 | #define TSDM_REG_NUM_OF_Q0_CMD 0x42248 | ||
2695 | /* [ST 32] The number of commands received in queue 10 */ | ||
2696 | #define TSDM_REG_NUM_OF_Q10_CMD 0x4226c | ||
2697 | /* [ST 32] The number of commands received in queue 11 */ | ||
2698 | #define TSDM_REG_NUM_OF_Q11_CMD 0x42270 | ||
2699 | /* [ST 32] The number of commands received in queue 1 */ | ||
2700 | #define TSDM_REG_NUM_OF_Q1_CMD 0x4224c | ||
2701 | /* [ST 32] The number of commands received in queue 3 */ | ||
2702 | #define TSDM_REG_NUM_OF_Q3_CMD 0x42250 | ||
2703 | /* [ST 32] The number of commands received in queue 4 */ | ||
2704 | #define TSDM_REG_NUM_OF_Q4_CMD 0x42254 | ||
2705 | /* [ST 32] The number of commands received in queue 5 */ | ||
2706 | #define TSDM_REG_NUM_OF_Q5_CMD 0x42258 | ||
2707 | /* [ST 32] The number of commands received in queue 6 */ | ||
2708 | #define TSDM_REG_NUM_OF_Q6_CMD 0x4225c | ||
2709 | /* [ST 32] The number of commands received in queue 7 */ | ||
2710 | #define TSDM_REG_NUM_OF_Q7_CMD 0x42260 | ||
2711 | /* [ST 32] The number of commands received in queue 8 */ | ||
2712 | #define TSDM_REG_NUM_OF_Q8_CMD 0x42264 | ||
2713 | /* [ST 32] The number of commands received in queue 9 */ | ||
2714 | #define TSDM_REG_NUM_OF_Q9_CMD 0x42268 | ||
2715 | /* [RW 13] The start address in the internal RAM for the packet end message */ | ||
2716 | #define TSDM_REG_PCK_END_MSG_START_ADDR 0x42014 | ||
2717 | /* [RW 13] The start address in the internal RAM for queue counters */ | ||
2718 | #define TSDM_REG_Q_COUNTER_START_ADDR 0x42010 | ||
2719 | /* [R 1] pxp_ctrl rd_data fifo empty in sdm_dma_rsp block */ | ||
2720 | #define TSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY 0x42548 | ||
2721 | /* [R 1] parser fifo empty in sdm_sync block */ | ||
2722 | #define TSDM_REG_SYNC_PARSER_EMPTY 0x42550 | ||
2723 | /* [R 1] parser serial fifo empty in sdm_sync block */ | ||
2724 | #define TSDM_REG_SYNC_SYNC_EMPTY 0x42558 | ||
2725 | /* [RW 32] Tick for timer counter. Applicable only when | ||
2726 | ~tsdm_registers_timer_tick_enable.timer_tick_enable =1 */ | ||
2727 | #define TSDM_REG_TIMER_TICK 0x42000 | ||
2728 | /* [RW 32] Interrupt mask register #0 read/write */ | ||
2729 | #define TSDM_REG_TSDM_INT_MASK_0 0x4229c | ||
2730 | #define TSDM_REG_TSDM_INT_MASK_1 0x422ac | ||
2731 | /* [RW 11] Parity mask register #0 read/write */ | ||
2732 | #define TSDM_REG_TSDM_PRTY_MASK 0x422bc | ||
2733 | /* [RW 5] The number of time_slots in the arbitration cycle */ | ||
2734 | #define TSEM_REG_ARB_CYCLE_SIZE 0x180034 | ||
2735 | /* [RW 3] The source that is associated with arbitration element 0. Source | ||
2736 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
2737 | sleeping thread with priority 1; 4- sleeping thread with priority 2 */ | ||
2738 | #define TSEM_REG_ARB_ELEMENT0 0x180020 | ||
2739 | /* [RW 3] The source that is associated with arbitration element 1. Source | ||
2740 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
2741 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
2742 | Could not be equal to register ~tsem_registers_arb_element0.arb_element0 */ | ||
2743 | #define TSEM_REG_ARB_ELEMENT1 0x180024 | ||
2744 | /* [RW 3] The source that is associated with arbitration element 2. Source | ||
2745 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
2746 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
2747 | Could not be equal to register ~tsem_registers_arb_element0.arb_element0 | ||
2748 | and ~tsem_registers_arb_element1.arb_element1 */ | ||
2749 | #define TSEM_REG_ARB_ELEMENT2 0x180028 | ||
2750 | /* [RW 3] The source that is associated with arbitration element 3. Source | ||
2751 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
2752 | sleeping thread with priority 1; 4- sleeping thread with priority 2.Could | ||
2753 | not be equal to register ~tsem_registers_arb_element0.arb_element0 and | ||
2754 | ~tsem_registers_arb_element1.arb_element1 and | ||
2755 | ~tsem_registers_arb_element2.arb_element2 */ | ||
2756 | #define TSEM_REG_ARB_ELEMENT3 0x18002c | ||
2757 | /* [RW 3] The source that is associated with arbitration element 4. Source | ||
2758 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
2759 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
2760 | Could not be equal to register ~tsem_registers_arb_element0.arb_element0 | ||
2761 | and ~tsem_registers_arb_element1.arb_element1 and | ||
2762 | ~tsem_registers_arb_element2.arb_element2 and | ||
2763 | ~tsem_registers_arb_element3.arb_element3 */ | ||
2764 | #define TSEM_REG_ARB_ELEMENT4 0x180030 | ||
2765 | #define TSEM_REG_ENABLE_IN 0x1800a4 | ||
2766 | #define TSEM_REG_ENABLE_OUT 0x1800a8 | ||
2767 | /* [RW 32] This address space contains all registers and memories that are | ||
2768 | placed in SEM_FAST block. The SEM_FAST registers are described in | ||
2769 | appendix B. In order to access the SEM_FAST registers the base address | ||
2770 | TSEM_REGISTERS_FAST_MEMORY (Offset: 0x1a0000) should be added to each | ||
2771 | SEM_FAST register offset. */ | ||
2772 | #define TSEM_REG_FAST_MEMORY 0x1a0000 | ||
2773 | /* [RW 1] Disables input messages from FIC0 May be updated during run_time | ||
2774 | by the microcode */ | ||
2775 | #define TSEM_REG_FIC0_DISABLE 0x180224 | ||
2776 | /* [RW 1] Disables input messages from FIC1 May be updated during run_time | ||
2777 | by the microcode */ | ||
2778 | #define TSEM_REG_FIC1_DISABLE 0x180234 | ||
2779 | /* [RW 15] Interrupt table Read and write access to it is not possible in | ||
2780 | the middle of the work */ | ||
2781 | #define TSEM_REG_INT_TABLE 0x180400 | ||
2782 | /* [ST 24] Statistics register. The number of messages that entered through | ||
2783 | FIC0 */ | ||
2784 | #define TSEM_REG_MSG_NUM_FIC0 0x180000 | ||
2785 | /* [ST 24] Statistics register. The number of messages that entered through | ||
2786 | FIC1 */ | ||
2787 | #define TSEM_REG_MSG_NUM_FIC1 0x180004 | ||
2788 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
2789 | FOC0 */ | ||
2790 | #define TSEM_REG_MSG_NUM_FOC0 0x180008 | ||
2791 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
2792 | FOC1 */ | ||
2793 | #define TSEM_REG_MSG_NUM_FOC1 0x18000c | ||
2794 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
2795 | FOC2 */ | ||
2796 | #define TSEM_REG_MSG_NUM_FOC2 0x180010 | ||
2797 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
2798 | FOC3 */ | ||
2799 | #define TSEM_REG_MSG_NUM_FOC3 0x180014 | ||
2800 | /* [RW 1] Disables input messages from the passive buffer May be updated | ||
2801 | during run_time by the microcode */ | ||
2802 | #define TSEM_REG_PAS_DISABLE 0x18024c | ||
2803 | /* [WB 128] Debug only. Passive buffer memory */ | ||
2804 | #define TSEM_REG_PASSIVE_BUFFER 0x181000 | ||
2805 | /* [WB 46] pram memory. B45 is parity; b[44:0] - data. */ | ||
2806 | #define TSEM_REG_PRAM 0x1c0000 | ||
2807 | /* [R 8] Valid sleeping threads indication have bit per thread */ | ||
2808 | #define TSEM_REG_SLEEP_THREADS_VALID 0x18026c | ||
2809 | /* [R 1] EXT_STORE FIFO is empty in sem_slow_ls_ext */ | ||
2810 | #define TSEM_REG_SLOW_EXT_STORE_EMPTY 0x1802a0 | ||
2811 | /* [RW 8] List of free threads . There is a bit per thread. */ | ||
2812 | #define TSEM_REG_THREADS_LIST 0x1802e4 | ||
2813 | /* [RW 3] The arbitration scheme of time_slot 0 */ | ||
2814 | #define TSEM_REG_TS_0_AS 0x180038 | ||
2815 | /* [RW 3] The arbitration scheme of time_slot 10 */ | ||
2816 | #define TSEM_REG_TS_10_AS 0x180060 | ||
2817 | /* [RW 3] The arbitration scheme of time_slot 11 */ | ||
2818 | #define TSEM_REG_TS_11_AS 0x180064 | ||
2819 | /* [RW 3] The arbitration scheme of time_slot 12 */ | ||
2820 | #define TSEM_REG_TS_12_AS 0x180068 | ||
2821 | /* [RW 3] The arbitration scheme of time_slot 13 */ | ||
2822 | #define TSEM_REG_TS_13_AS 0x18006c | ||
2823 | /* [RW 3] The arbitration scheme of time_slot 14 */ | ||
2824 | #define TSEM_REG_TS_14_AS 0x180070 | ||
2825 | /* [RW 3] The arbitration scheme of time_slot 15 */ | ||
2826 | #define TSEM_REG_TS_15_AS 0x180074 | ||
2827 | /* [RW 3] The arbitration scheme of time_slot 16 */ | ||
2828 | #define TSEM_REG_TS_16_AS 0x180078 | ||
2829 | /* [RW 3] The arbitration scheme of time_slot 17 */ | ||
2830 | #define TSEM_REG_TS_17_AS 0x18007c | ||
2831 | /* [RW 3] The arbitration scheme of time_slot 18 */ | ||
2832 | #define TSEM_REG_TS_18_AS 0x180080 | ||
2833 | /* [RW 3] The arbitration scheme of time_slot 1 */ | ||
2834 | #define TSEM_REG_TS_1_AS 0x18003c | ||
2835 | /* [RW 3] The arbitration scheme of time_slot 2 */ | ||
2836 | #define TSEM_REG_TS_2_AS 0x180040 | ||
2837 | /* [RW 3] The arbitration scheme of time_slot 3 */ | ||
2838 | #define TSEM_REG_TS_3_AS 0x180044 | ||
2839 | /* [RW 3] The arbitration scheme of time_slot 4 */ | ||
2840 | #define TSEM_REG_TS_4_AS 0x180048 | ||
2841 | /* [RW 3] The arbitration scheme of time_slot 5 */ | ||
2842 | #define TSEM_REG_TS_5_AS 0x18004c | ||
2843 | /* [RW 3] The arbitration scheme of time_slot 6 */ | ||
2844 | #define TSEM_REG_TS_6_AS 0x180050 | ||
2845 | /* [RW 3] The arbitration scheme of time_slot 7 */ | ||
2846 | #define TSEM_REG_TS_7_AS 0x180054 | ||
2847 | /* [RW 3] The arbitration scheme of time_slot 8 */ | ||
2848 | #define TSEM_REG_TS_8_AS 0x180058 | ||
2849 | /* [RW 3] The arbitration scheme of time_slot 9 */ | ||
2850 | #define TSEM_REG_TS_9_AS 0x18005c | ||
2851 | /* [RW 32] Interrupt mask register #0 read/write */ | ||
2852 | #define TSEM_REG_TSEM_INT_MASK_0 0x180100 | ||
2853 | #define TSEM_REG_TSEM_INT_MASK_1 0x180110 | ||
2854 | /* [RW 32] Parity mask register #0 read/write */ | ||
2855 | #define TSEM_REG_TSEM_PRTY_MASK_0 0x180120 | ||
2856 | #define TSEM_REG_TSEM_PRTY_MASK_1 0x180130 | ||
2857 | /* [R 5] Used to read the XX protection CAM occupancy counter. */ | ||
2858 | #define UCM_REG_CAM_OCCUP 0xe0170 | ||
2859 | /* [RW 1] CDU AG read Interface enable. If 0 - the request input is | ||
2860 | disregarded; valid output is deasserted; all other signals are treated as | ||
2861 | usual; if 1 - normal activity. */ | ||
2862 | #define UCM_REG_CDU_AG_RD_IFEN 0xe0038 | ||
2863 | /* [RW 1] CDU AG write Interface enable. If 0 - the request and valid input | ||
2864 | are disregarded; all other signals are treated as usual; if 1 - normal | ||
2865 | activity. */ | ||
2866 | #define UCM_REG_CDU_AG_WR_IFEN 0xe0034 | ||
2867 | /* [RW 1] CDU STORM read Interface enable. If 0 - the request input is | ||
2868 | disregarded; valid output is deasserted; all other signals are treated as | ||
2869 | usual; if 1 - normal activity. */ | ||
2870 | #define UCM_REG_CDU_SM_RD_IFEN 0xe0040 | ||
2871 | /* [RW 1] CDU STORM write Interface enable. If 0 - the request and valid | ||
2872 | input is disregarded; all other signals are treated as usual; if 1 - | ||
2873 | normal activity. */ | ||
2874 | #define UCM_REG_CDU_SM_WR_IFEN 0xe003c | ||
2875 | /* [RW 4] CFC output initial credit. Max credit available - 15.Write writes | ||
2876 | the initial credit value; read returns the current value of the credit | ||
2877 | counter. Must be initialized to 1 at start-up. */ | ||
2878 | #define UCM_REG_CFC_INIT_CRD 0xe0204 | ||
2879 | /* [RW 3] The weight of the CP input in the WRR mechanism. 0 stands for | ||
2880 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
2881 | prioritised); 2 stands for weight 2; tc. */ | ||
2882 | #define UCM_REG_CP_WEIGHT 0xe00c4 | ||
2883 | /* [RW 1] Input csem Interface enable. If 0 - the valid input is | ||
2884 | disregarded; acknowledge output is deasserted; all other signals are | ||
2885 | treated as usual; if 1 - normal activity. */ | ||
2886 | #define UCM_REG_CSEM_IFEN 0xe0028 | ||
2887 | /* [RC 1] Set when the message length mismatch (relative to last indication) | ||
2888 | at the csem interface is detected. */ | ||
2889 | #define UCM_REG_CSEM_LENGTH_MIS 0xe0160 | ||
2890 | /* [RW 3] The weight of the input csem in the WRR mechanism. 0 stands for | ||
2891 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
2892 | prioritised); 2 stands for weight 2; tc. */ | ||
2893 | #define UCM_REG_CSEM_WEIGHT 0xe00b8 | ||
2894 | /* [RW 1] Input dorq Interface enable. If 0 - the valid input is | ||
2895 | disregarded; acknowledge output is deasserted; all other signals are | ||
2896 | treated as usual; if 1 - normal activity. */ | ||
2897 | #define UCM_REG_DORQ_IFEN 0xe0030 | ||
2898 | /* [RC 1] Set when the message length mismatch (relative to last indication) | ||
2899 | at the dorq interface is detected. */ | ||
2900 | #define UCM_REG_DORQ_LENGTH_MIS 0xe0168 | ||
2901 | /* [RW 8] The Event ID in case ErrorFlg input message bit is set. */ | ||
2902 | #define UCM_REG_ERR_EVNT_ID 0xe00a4 | ||
2903 | /* [RW 28] The CM erroneous header for QM and Timers formatting. */ | ||
2904 | #define UCM_REG_ERR_UCM_HDR 0xe00a0 | ||
2905 | /* [RW 8] The Event ID for Timers expiration. */ | ||
2906 | #define UCM_REG_EXPR_EVNT_ID 0xe00a8 | ||
2907 | /* [RW 8] FIC0 output initial credit. Max credit available - 255.Write | ||
2908 | writes the initial credit value; read returns the current value of the | ||
2909 | credit counter. Must be initialized to 64 at start-up. */ | ||
2910 | #define UCM_REG_FIC0_INIT_CRD 0xe020c | ||
2911 | /* [RW 8] FIC1 output initial credit. Max credit available - 255.Write | ||
2912 | writes the initial credit value; read returns the current value of the | ||
2913 | credit counter. Must be initialized to 64 at start-up. */ | ||
2914 | #define UCM_REG_FIC1_INIT_CRD 0xe0210 | ||
2915 | /* [RW 1] Arbitration between Input Arbiter groups: 0 - fair Round-Robin; 1 | ||
2916 | - strict priority defined by ~ucm_registers_gr_ag_pr.gr_ag_pr; | ||
2917 | ~ucm_registers_gr_ld0_pr.gr_ld0_pr and | ||
2918 | ~ucm_registers_gr_ld1_pr.gr_ld1_pr. */ | ||
2919 | #define UCM_REG_GR_ARB_TYPE 0xe0144 | ||
2920 | /* [RW 2] Load (FIC0) channel group priority. The lowest priority is 0; the | ||
2921 | highest priority is 3. It is supposed that the Store channel group is | ||
2922 | compliment to the others. */ | ||
2923 | #define UCM_REG_GR_LD0_PR 0xe014c | ||
2924 | /* [RW 2] Load (FIC1) channel group priority. The lowest priority is 0; the | ||
2925 | highest priority is 3. It is supposed that the Store channel group is | ||
2926 | compliment to the others. */ | ||
2927 | #define UCM_REG_GR_LD1_PR 0xe0150 | ||
2928 | /* [RW 2] The queue index for invalidate counter flag decision. */ | ||
2929 | #define UCM_REG_INV_CFLG_Q 0xe00e4 | ||
2930 | /* [RW 5] The number of double REG-pairs; loaded from the STORM context and | ||
2931 | sent to STORM; for a specific connection type. the double REG-pairs are | ||
2932 | used in order to align to STORM context row size of 128 bits. The offset | ||
2933 | of these data in the STORM context is always 0. Index _i stands for the | ||
2934 | connection type (one of 16). */ | ||
2935 | #define UCM_REG_N_SM_CTX_LD_0 0xe0054 | ||
2936 | #define UCM_REG_N_SM_CTX_LD_1 0xe0058 | ||
2937 | #define UCM_REG_N_SM_CTX_LD_10 0xe007c | ||
2938 | #define UCM_REG_N_SM_CTX_LD_11 0xe0080 | ||
2939 | #define UCM_REG_N_SM_CTX_LD_12 0xe0084 | ||
2940 | #define UCM_REG_N_SM_CTX_LD_13 0xe0088 | ||
2941 | #define UCM_REG_N_SM_CTX_LD_14 0xe008c | ||
2942 | #define UCM_REG_N_SM_CTX_LD_15 0xe0090 | ||
2943 | #define UCM_REG_N_SM_CTX_LD_2 0xe005c | ||
2944 | #define UCM_REG_N_SM_CTX_LD_3 0xe0060 | ||
2945 | #define UCM_REG_N_SM_CTX_LD_4 0xe0064 | ||
2946 | /* [RW 6] The physical queue number 0 per port index (CID[23]) */ | ||
2947 | #define UCM_REG_PHYS_QNUM0_0 0xe0110 | ||
2948 | #define UCM_REG_PHYS_QNUM0_1 0xe0114 | ||
2949 | /* [RW 6] The physical queue number 1 per port index (CID[23]) */ | ||
2950 | #define UCM_REG_PHYS_QNUM1_0 0xe0118 | ||
2951 | #define UCM_REG_PHYS_QNUM1_1 0xe011c | ||
2952 | /* [RW 8] The Event ID for Timers formatting in case of stop done. */ | ||
2953 | #define UCM_REG_STOP_EVNT_ID 0xe00ac | ||
2954 | /* [RC 1] Set when the message length mismatch (relative to last indication) | ||
2955 | at the STORM interface is detected. */ | ||
2956 | #define UCM_REG_STORM_LENGTH_MIS 0xe0154 | ||
2957 | /* [RW 1] STORM - CM Interface enable. If 0 - the valid input is | ||
2958 | disregarded; acknowledge output is deasserted; all other signals are | ||
2959 | treated as usual; if 1 - normal activity. */ | ||
2960 | #define UCM_REG_STORM_UCM_IFEN 0xe0010 | ||
2961 | /* [RW 4] Timers output initial credit. Max credit available - 15.Write | ||
2962 | writes the initial credit value; read returns the current value of the | ||
2963 | credit counter. Must be initialized to 4 at start-up. */ | ||
2964 | #define UCM_REG_TM_INIT_CRD 0xe021c | ||
2965 | /* [RW 28] The CM header for Timers expiration command. */ | ||
2966 | #define UCM_REG_TM_UCM_HDR 0xe009c | ||
2967 | /* [RW 1] Timers - CM Interface enable. If 0 - the valid input is | ||
2968 | disregarded; acknowledge output is deasserted; all other signals are | ||
2969 | treated as usual; if 1 - normal activity. */ | ||
2970 | #define UCM_REG_TM_UCM_IFEN 0xe001c | ||
2971 | /* [RW 1] Input tsem Interface enable. If 0 - the valid input is | ||
2972 | disregarded; acknowledge output is deasserted; all other signals are | ||
2973 | treated as usual; if 1 - normal activity. */ | ||
2974 | #define UCM_REG_TSEM_IFEN 0xe0024 | ||
2975 | /* [RC 1] Set when the message length mismatch (relative to last indication) | ||
2976 | at the tsem interface is detected. */ | ||
2977 | #define UCM_REG_TSEM_LENGTH_MIS 0xe015c | ||
2978 | /* [RW 3] The weight of the input tsem in the WRR mechanism. 0 stands for | ||
2979 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
2980 | prioritised); 2 stands for weight 2; tc. */ | ||
2981 | #define UCM_REG_TSEM_WEIGHT 0xe00b4 | ||
2982 | /* [RW 1] CM - CFC Interface enable. If 0 - the valid input is disregarded; | ||
2983 | acknowledge output is deasserted; all other signals are treated as usual; | ||
2984 | if 1 - normal activity. */ | ||
2985 | #define UCM_REG_UCM_CFC_IFEN 0xe0044 | ||
2986 | /* [RW 11] Interrupt mask register #0 read/write */ | ||
2987 | #define UCM_REG_UCM_INT_MASK 0xe01d4 | ||
2988 | /* [R 11] Interrupt register #0 read */ | ||
2989 | #define UCM_REG_UCM_INT_STS 0xe01c8 | ||
2990 | /* [RW 2] The size of AG context region 0 in REG-pairs. Designates the MS | ||
2991 | REG-pair number (e.g. if region 0 is 6 REG-pairs; the value should be 5). | ||
2992 | Is used to determine the number of the AG context REG-pairs written back; | ||
2993 | when the Reg1WbFlg isn't set. */ | ||
2994 | #define UCM_REG_UCM_REG0_SZ 0xe00dc | ||
2995 | /* [RW 1] CM - STORM 0 Interface enable. If 0 - the acknowledge input is | ||
2996 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
2997 | if 1 - normal activity. */ | ||
2998 | #define UCM_REG_UCM_STORM0_IFEN 0xe0004 | ||
2999 | /* [RW 1] CM - STORM 1 Interface enable. If 0 - the acknowledge input is | ||
3000 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
3001 | if 1 - normal activity. */ | ||
3002 | #define UCM_REG_UCM_STORM1_IFEN 0xe0008 | ||
3003 | /* [RW 1] CM - Timers Interface enable. If 0 - the valid input is | ||
3004 | disregarded; acknowledge output is deasserted; all other signals are | ||
3005 | treated as usual; if 1 - normal activity. */ | ||
3006 | #define UCM_REG_UCM_TM_IFEN 0xe0020 | ||
3007 | /* [RW 1] CM - QM Interface enable. If 0 - the acknowledge input is | ||
3008 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
3009 | if 1 - normal activity. */ | ||
3010 | #define UCM_REG_UCM_UQM_IFEN 0xe000c | ||
3011 | /* [RW 1] If set the Q index; received from the QM is inserted to event ID. */ | ||
3012 | #define UCM_REG_UCM_UQM_USE_Q 0xe00d8 | ||
3013 | /* [RW 6] QM output initial credit. Max credit available - 32.Write writes | ||
3014 | the initial credit value; read returns the current value of the credit | ||
3015 | counter. Must be initialized to 32 at start-up. */ | ||
3016 | #define UCM_REG_UQM_INIT_CRD 0xe0220 | ||
3017 | /* [RW 3] The weight of the QM (primary) input in the WRR mechanism. 0 | ||
3018 | stands for weight 8 (the most prioritised); 1 stands for weight 1(least | ||
3019 | prioritised); 2 stands for weight 2; tc. */ | ||
3020 | #define UCM_REG_UQM_P_WEIGHT 0xe00cc | ||
3021 | /* [RW 28] The CM header value for QM request (primary). */ | ||
3022 | #define UCM_REG_UQM_UCM_HDR_P 0xe0094 | ||
3023 | /* [RW 28] The CM header value for QM request (secondary). */ | ||
3024 | #define UCM_REG_UQM_UCM_HDR_S 0xe0098 | ||
3025 | /* [RW 1] QM - CM Interface enable. If 0 - the valid input is disregarded; | ||
3026 | acknowledge output is deasserted; all other signals are treated as usual; | ||
3027 | if 1 - normal activity. */ | ||
3028 | #define UCM_REG_UQM_UCM_IFEN 0xe0014 | ||
3029 | /* [RW 1] Input SDM Interface enable. If 0 - the valid input is disregarded; | ||
3030 | acknowledge output is deasserted; all other signals are treated as usual; | ||
3031 | if 1 - normal activity. */ | ||
3032 | #define UCM_REG_USDM_IFEN 0xe0018 | ||
3033 | /* [RC 1] Set when the message length mismatch (relative to last indication) | ||
3034 | at the SDM interface is detected. */ | ||
3035 | #define UCM_REG_USDM_LENGTH_MIS 0xe0158 | ||
3036 | /* [RW 1] Input xsem Interface enable. If 0 - the valid input is | ||
3037 | disregarded; acknowledge output is deasserted; all other signals are | ||
3038 | treated as usual; if 1 - normal activity. */ | ||
3039 | #define UCM_REG_XSEM_IFEN 0xe002c | ||
3040 | /* [RC 1] Set when the message length mismatch (relative to last indication) | ||
3041 | at the xsem interface isdetected. */ | ||
3042 | #define UCM_REG_XSEM_LENGTH_MIS 0xe0164 | ||
3043 | /* [RW 20] Indirect access to the descriptor table of the XX protection | ||
3044 | mechanism. The fields are:[5:0] - message length; 14:6] - message | ||
3045 | pointer; 19:15] - next pointer. */ | ||
3046 | #define UCM_REG_XX_DESCR_TABLE 0xe0280 | ||
3047 | /* [R 6] Use to read the XX protection Free counter. */ | ||
3048 | #define UCM_REG_XX_FREE 0xe016c | ||
3049 | /* [RW 6] Initial value for the credit counter; responsible for fulfilling | ||
3050 | of the Input Stage XX protection buffer by the XX protection pending | ||
3051 | messages. Write writes the initial credit value; read returns the current | ||
3052 | value of the credit counter. Must be initialized to 12 at start-up. */ | ||
3053 | #define UCM_REG_XX_INIT_CRD 0xe0224 | ||
3054 | /* [RW 6] The maximum number of pending messages; which may be stored in XX | ||
3055 | protection. ~ucm_registers_xx_free.xx_free read on read. */ | ||
3056 | #define UCM_REG_XX_MSG_NUM 0xe0228 | ||
3057 | /* [RW 8] The Event ID; sent to the STORM in case of XX overflow. */ | ||
3058 | #define UCM_REG_XX_OVFL_EVNT_ID 0xe004c | ||
3059 | /* [RW 16] Indirect access to the XX table of the XX protection mechanism. | ||
3060 | The fields are: [4:0] - tail pointer; 10:5] - Link List size; 15:11] - | ||
3061 | header pointer. */ | ||
3062 | #define UCM_REG_XX_TABLE 0xe0300 | ||
3063 | /* [RW 8] The event id for aggregated interrupt 0 */ | ||
3064 | #define USDM_REG_AGG_INT_EVENT_0 0xc4038 | ||
3065 | #define USDM_REG_AGG_INT_EVENT_1 0xc403c | ||
3066 | #define USDM_REG_AGG_INT_EVENT_10 0xc4060 | ||
3067 | #define USDM_REG_AGG_INT_EVENT_11 0xc4064 | ||
3068 | #define USDM_REG_AGG_INT_EVENT_12 0xc4068 | ||
3069 | #define USDM_REG_AGG_INT_EVENT_13 0xc406c | ||
3070 | #define USDM_REG_AGG_INT_EVENT_14 0xc4070 | ||
3071 | #define USDM_REG_AGG_INT_EVENT_15 0xc4074 | ||
3072 | #define USDM_REG_AGG_INT_EVENT_16 0xc4078 | ||
3073 | #define USDM_REG_AGG_INT_EVENT_17 0xc407c | ||
3074 | #define USDM_REG_AGG_INT_EVENT_18 0xc4080 | ||
3075 | #define USDM_REG_AGG_INT_EVENT_19 0xc4084 | ||
3076 | /* [RW 1] For each aggregated interrupt index whether the mode is normal (0) | ||
3077 | or auto-mask-mode (1) */ | ||
3078 | #define USDM_REG_AGG_INT_MODE_0 0xc41b8 | ||
3079 | #define USDM_REG_AGG_INT_MODE_1 0xc41bc | ||
3080 | #define USDM_REG_AGG_INT_MODE_10 0xc41e0 | ||
3081 | #define USDM_REG_AGG_INT_MODE_11 0xc41e4 | ||
3082 | #define USDM_REG_AGG_INT_MODE_12 0xc41e8 | ||
3083 | #define USDM_REG_AGG_INT_MODE_13 0xc41ec | ||
3084 | #define USDM_REG_AGG_INT_MODE_14 0xc41f0 | ||
3085 | #define USDM_REG_AGG_INT_MODE_15 0xc41f4 | ||
3086 | #define USDM_REG_AGG_INT_MODE_16 0xc41f8 | ||
3087 | #define USDM_REG_AGG_INT_MODE_17 0xc41fc | ||
3088 | #define USDM_REG_AGG_INT_MODE_18 0xc4200 | ||
3089 | #define USDM_REG_AGG_INT_MODE_19 0xc4204 | ||
3090 | /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */ | ||
3091 | #define USDM_REG_CFC_RSP_START_ADDR 0xc4008 | ||
3092 | /* [RW 16] The maximum value of the competion counter #0 */ | ||
3093 | #define USDM_REG_CMP_COUNTER_MAX0 0xc401c | ||
3094 | /* [RW 16] The maximum value of the competion counter #1 */ | ||
3095 | #define USDM_REG_CMP_COUNTER_MAX1 0xc4020 | ||
3096 | /* [RW 16] The maximum value of the competion counter #2 */ | ||
3097 | #define USDM_REG_CMP_COUNTER_MAX2 0xc4024 | ||
3098 | /* [RW 16] The maximum value of the competion counter #3 */ | ||
3099 | #define USDM_REG_CMP_COUNTER_MAX3 0xc4028 | ||
3100 | /* [RW 13] The start address in the internal RAM for the completion | ||
3101 | counters. */ | ||
3102 | #define USDM_REG_CMP_COUNTER_START_ADDR 0xc400c | ||
3103 | #define USDM_REG_ENABLE_IN1 0xc4238 | ||
3104 | #define USDM_REG_ENABLE_IN2 0xc423c | ||
3105 | #define USDM_REG_ENABLE_OUT1 0xc4240 | ||
3106 | #define USDM_REG_ENABLE_OUT2 0xc4244 | ||
3107 | /* [RW 4] The initial number of messages that can be sent to the pxp control | ||
3108 | interface without receiving any ACK. */ | ||
3109 | #define USDM_REG_INIT_CREDIT_PXP_CTRL 0xc44c0 | ||
3110 | /* [ST 32] The number of ACK after placement messages received */ | ||
3111 | #define USDM_REG_NUM_OF_ACK_AFTER_PLACE 0xc4280 | ||
3112 | /* [ST 32] The number of packet end messages received from the parser */ | ||
3113 | #define USDM_REG_NUM_OF_PKT_END_MSG 0xc4278 | ||
3114 | /* [ST 32] The number of requests received from the pxp async if */ | ||
3115 | #define USDM_REG_NUM_OF_PXP_ASYNC_REQ 0xc427c | ||
3116 | /* [ST 32] The number of commands received in queue 0 */ | ||
3117 | #define USDM_REG_NUM_OF_Q0_CMD 0xc4248 | ||
3118 | /* [ST 32] The number of commands received in queue 10 */ | ||
3119 | #define USDM_REG_NUM_OF_Q10_CMD 0xc4270 | ||
3120 | /* [ST 32] The number of commands received in queue 11 */ | ||
3121 | #define USDM_REG_NUM_OF_Q11_CMD 0xc4274 | ||
3122 | /* [ST 32] The number of commands received in queue 1 */ | ||
3123 | #define USDM_REG_NUM_OF_Q1_CMD 0xc424c | ||
3124 | /* [ST 32] The number of commands received in queue 2 */ | ||
3125 | #define USDM_REG_NUM_OF_Q2_CMD 0xc4250 | ||
3126 | /* [ST 32] The number of commands received in queue 3 */ | ||
3127 | #define USDM_REG_NUM_OF_Q3_CMD 0xc4254 | ||
3128 | /* [ST 32] The number of commands received in queue 4 */ | ||
3129 | #define USDM_REG_NUM_OF_Q4_CMD 0xc4258 | ||
3130 | /* [ST 32] The number of commands received in queue 5 */ | ||
3131 | #define USDM_REG_NUM_OF_Q5_CMD 0xc425c | ||
3132 | /* [ST 32] The number of commands received in queue 6 */ | ||
3133 | #define USDM_REG_NUM_OF_Q6_CMD 0xc4260 | ||
3134 | /* [ST 32] The number of commands received in queue 7 */ | ||
3135 | #define USDM_REG_NUM_OF_Q7_CMD 0xc4264 | ||
3136 | /* [ST 32] The number of commands received in queue 8 */ | ||
3137 | #define USDM_REG_NUM_OF_Q8_CMD 0xc4268 | ||
3138 | /* [ST 32] The number of commands received in queue 9 */ | ||
3139 | #define USDM_REG_NUM_OF_Q9_CMD 0xc426c | ||
3140 | /* [RW 13] The start address in the internal RAM for the packet end message */ | ||
3141 | #define USDM_REG_PCK_END_MSG_START_ADDR 0xc4014 | ||
3142 | /* [RW 13] The start address in the internal RAM for queue counters */ | ||
3143 | #define USDM_REG_Q_COUNTER_START_ADDR 0xc4010 | ||
3144 | /* [R 1] pxp_ctrl rd_data fifo empty in sdm_dma_rsp block */ | ||
3145 | #define USDM_REG_RSP_PXP_CTRL_RDATA_EMPTY 0xc4550 | ||
3146 | /* [R 1] parser fifo empty in sdm_sync block */ | ||
3147 | #define USDM_REG_SYNC_PARSER_EMPTY 0xc4558 | ||
3148 | /* [R 1] parser serial fifo empty in sdm_sync block */ | ||
3149 | #define USDM_REG_SYNC_SYNC_EMPTY 0xc4560 | ||
3150 | /* [RW 32] Tick for timer counter. Applicable only when | ||
3151 | ~usdm_registers_timer_tick_enable.timer_tick_enable =1 */ | ||
3152 | #define USDM_REG_TIMER_TICK 0xc4000 | ||
3153 | /* [RW 32] Interrupt mask register #0 read/write */ | ||
3154 | #define USDM_REG_USDM_INT_MASK_0 0xc42a0 | ||
3155 | #define USDM_REG_USDM_INT_MASK_1 0xc42b0 | ||
3156 | /* [RW 11] Parity mask register #0 read/write */ | ||
3157 | #define USDM_REG_USDM_PRTY_MASK 0xc42c0 | ||
3158 | /* [RW 5] The number of time_slots in the arbitration cycle */ | ||
3159 | #define USEM_REG_ARB_CYCLE_SIZE 0x300034 | ||
3160 | /* [RW 3] The source that is associated with arbitration element 0. Source | ||
3161 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
3162 | sleeping thread with priority 1; 4- sleeping thread with priority 2 */ | ||
3163 | #define USEM_REG_ARB_ELEMENT0 0x300020 | ||
3164 | /* [RW 3] The source that is associated with arbitration element 1. Source | ||
3165 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
3166 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
3167 | Could not be equal to register ~usem_registers_arb_element0.arb_element0 */ | ||
3168 | #define USEM_REG_ARB_ELEMENT1 0x300024 | ||
3169 | /* [RW 3] The source that is associated with arbitration element 2. Source | ||
3170 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
3171 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
3172 | Could not be equal to register ~usem_registers_arb_element0.arb_element0 | ||
3173 | and ~usem_registers_arb_element1.arb_element1 */ | ||
3174 | #define USEM_REG_ARB_ELEMENT2 0x300028 | ||
3175 | /* [RW 3] The source that is associated with arbitration element 3. Source | ||
3176 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
3177 | sleeping thread with priority 1; 4- sleeping thread with priority 2.Could | ||
3178 | not be equal to register ~usem_registers_arb_element0.arb_element0 and | ||
3179 | ~usem_registers_arb_element1.arb_element1 and | ||
3180 | ~usem_registers_arb_element2.arb_element2 */ | ||
3181 | #define USEM_REG_ARB_ELEMENT3 0x30002c | ||
3182 | /* [RW 3] The source that is associated with arbitration element 4. Source | ||
3183 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
3184 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
3185 | Could not be equal to register ~usem_registers_arb_element0.arb_element0 | ||
3186 | and ~usem_registers_arb_element1.arb_element1 and | ||
3187 | ~usem_registers_arb_element2.arb_element2 and | ||
3188 | ~usem_registers_arb_element3.arb_element3 */ | ||
3189 | #define USEM_REG_ARB_ELEMENT4 0x300030 | ||
3190 | #define USEM_REG_ENABLE_IN 0x3000a4 | ||
3191 | #define USEM_REG_ENABLE_OUT 0x3000a8 | ||
3192 | /* [RW 32] This address space contains all registers and memories that are | ||
3193 | placed in SEM_FAST block. The SEM_FAST registers are described in | ||
3194 | appendix B. In order to access the SEM_FAST registers... the base address | ||
3195 | USEM_REGISTERS_FAST_MEMORY (Offset: 0x320000) should be added to each | ||
3196 | SEM_FAST register offset. */ | ||
3197 | #define USEM_REG_FAST_MEMORY 0x320000 | ||
3198 | /* [RW 1] Disables input messages from FIC0 May be updated during run_time | ||
3199 | by the microcode */ | ||
3200 | #define USEM_REG_FIC0_DISABLE 0x300224 | ||
3201 | /* [RW 1] Disables input messages from FIC1 May be updated during run_time | ||
3202 | by the microcode */ | ||
3203 | #define USEM_REG_FIC1_DISABLE 0x300234 | ||
3204 | /* [RW 15] Interrupt table Read and write access to it is not possible in | ||
3205 | the middle of the work */ | ||
3206 | #define USEM_REG_INT_TABLE 0x300400 | ||
3207 | /* [ST 24] Statistics register. The number of messages that entered through | ||
3208 | FIC0 */ | ||
3209 | #define USEM_REG_MSG_NUM_FIC0 0x300000 | ||
3210 | /* [ST 24] Statistics register. The number of messages that entered through | ||
3211 | FIC1 */ | ||
3212 | #define USEM_REG_MSG_NUM_FIC1 0x300004 | ||
3213 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
3214 | FOC0 */ | ||
3215 | #define USEM_REG_MSG_NUM_FOC0 0x300008 | ||
3216 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
3217 | FOC1 */ | ||
3218 | #define USEM_REG_MSG_NUM_FOC1 0x30000c | ||
3219 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
3220 | FOC2 */ | ||
3221 | #define USEM_REG_MSG_NUM_FOC2 0x300010 | ||
3222 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
3223 | FOC3 */ | ||
3224 | #define USEM_REG_MSG_NUM_FOC3 0x300014 | ||
3225 | /* [RW 1] Disables input messages from the passive buffer May be updated | ||
3226 | during run_time by the microcode */ | ||
3227 | #define USEM_REG_PAS_DISABLE 0x30024c | ||
3228 | /* [WB 128] Debug only. Passive buffer memory */ | ||
3229 | #define USEM_REG_PASSIVE_BUFFER 0x302000 | ||
3230 | /* [WB 46] pram memory. B45 is parity; b[44:0] - data. */ | ||
3231 | #define USEM_REG_PRAM 0x340000 | ||
3232 | /* [R 16] Valid sleeping threads indication have bit per thread */ | ||
3233 | #define USEM_REG_SLEEP_THREADS_VALID 0x30026c | ||
3234 | /* [R 1] EXT_STORE FIFO is empty in sem_slow_ls_ext */ | ||
3235 | #define USEM_REG_SLOW_EXT_STORE_EMPTY 0x3002a0 | ||
3236 | /* [RW 16] List of free threads . There is a bit per thread. */ | ||
3237 | #define USEM_REG_THREADS_LIST 0x3002e4 | ||
3238 | /* [RW 3] The arbitration scheme of time_slot 0 */ | ||
3239 | #define USEM_REG_TS_0_AS 0x300038 | ||
3240 | /* [RW 3] The arbitration scheme of time_slot 10 */ | ||
3241 | #define USEM_REG_TS_10_AS 0x300060 | ||
3242 | /* [RW 3] The arbitration scheme of time_slot 11 */ | ||
3243 | #define USEM_REG_TS_11_AS 0x300064 | ||
3244 | /* [RW 3] The arbitration scheme of time_slot 12 */ | ||
3245 | #define USEM_REG_TS_12_AS 0x300068 | ||
3246 | /* [RW 3] The arbitration scheme of time_slot 13 */ | ||
3247 | #define USEM_REG_TS_13_AS 0x30006c | ||
3248 | /* [RW 3] The arbitration scheme of time_slot 14 */ | ||
3249 | #define USEM_REG_TS_14_AS 0x300070 | ||
3250 | /* [RW 3] The arbitration scheme of time_slot 15 */ | ||
3251 | #define USEM_REG_TS_15_AS 0x300074 | ||
3252 | /* [RW 3] The arbitration scheme of time_slot 16 */ | ||
3253 | #define USEM_REG_TS_16_AS 0x300078 | ||
3254 | /* [RW 3] The arbitration scheme of time_slot 17 */ | ||
3255 | #define USEM_REG_TS_17_AS 0x30007c | ||
3256 | /* [RW 3] The arbitration scheme of time_slot 18 */ | ||
3257 | #define USEM_REG_TS_18_AS 0x300080 | ||
3258 | /* [RW 3] The arbitration scheme of time_slot 1 */ | ||
3259 | #define USEM_REG_TS_1_AS 0x30003c | ||
3260 | /* [RW 3] The arbitration scheme of time_slot 2 */ | ||
3261 | #define USEM_REG_TS_2_AS 0x300040 | ||
3262 | /* [RW 3] The arbitration scheme of time_slot 3 */ | ||
3263 | #define USEM_REG_TS_3_AS 0x300044 | ||
3264 | /* [RW 3] The arbitration scheme of time_slot 4 */ | ||
3265 | #define USEM_REG_TS_4_AS 0x300048 | ||
3266 | /* [RW 3] The arbitration scheme of time_slot 5 */ | ||
3267 | #define USEM_REG_TS_5_AS 0x30004c | ||
3268 | /* [RW 3] The arbitration scheme of time_slot 6 */ | ||
3269 | #define USEM_REG_TS_6_AS 0x300050 | ||
3270 | /* [RW 3] The arbitration scheme of time_slot 7 */ | ||
3271 | #define USEM_REG_TS_7_AS 0x300054 | ||
3272 | /* [RW 3] The arbitration scheme of time_slot 8 */ | ||
3273 | #define USEM_REG_TS_8_AS 0x300058 | ||
3274 | /* [RW 3] The arbitration scheme of time_slot 9 */ | ||
3275 | #define USEM_REG_TS_9_AS 0x30005c | ||
3276 | /* [RW 32] Interrupt mask register #0 read/write */ | ||
3277 | #define USEM_REG_USEM_INT_MASK_0 0x300110 | ||
3278 | #define USEM_REG_USEM_INT_MASK_1 0x300120 | ||
3279 | /* [RW 32] Parity mask register #0 read/write */ | ||
3280 | #define USEM_REG_USEM_PRTY_MASK_0 0x300130 | ||
3281 | #define USEM_REG_USEM_PRTY_MASK_1 0x300140 | ||
3282 | /* [RW 2] The queue index for registration on Aux1 counter flag. */ | ||
3283 | #define XCM_REG_AUX1_Q 0x20134 | ||
3284 | /* [RW 2] Per each decision rule the queue index to register to. */ | ||
3285 | #define XCM_REG_AUX_CNT_FLG_Q_19 0x201b0 | ||
3286 | /* [R 5] Used to read the XX protection CAM occupancy counter. */ | ||
3287 | #define XCM_REG_CAM_OCCUP 0x20244 | ||
3288 | /* [RW 1] CDU AG read Interface enable. If 0 - the request input is | ||
3289 | disregarded; valid output is deasserted; all other signals are treated as | ||
3290 | usual; if 1 - normal activity. */ | ||
3291 | #define XCM_REG_CDU_AG_RD_IFEN 0x20044 | ||
3292 | /* [RW 1] CDU AG write Interface enable. If 0 - the request and valid input | ||
3293 | are disregarded; all other signals are treated as usual; if 1 - normal | ||
3294 | activity. */ | ||
3295 | #define XCM_REG_CDU_AG_WR_IFEN 0x20040 | ||
3296 | /* [RW 1] CDU STORM read Interface enable. If 0 - the request input is | ||
3297 | disregarded; valid output is deasserted; all other signals are treated as | ||
3298 | usual; if 1 - normal activity. */ | ||
3299 | #define XCM_REG_CDU_SM_RD_IFEN 0x2004c | ||
3300 | /* [RW 1] CDU STORM write Interface enable. If 0 - the request and valid | ||
3301 | input is disregarded; all other signals are treated as usual; if 1 - | ||
3302 | normal activity. */ | ||
3303 | #define XCM_REG_CDU_SM_WR_IFEN 0x20048 | ||
3304 | /* [RW 4] CFC output initial credit. Max credit available - 15.Write writes | ||
3305 | the initial credit value; read returns the current value of the credit | ||
3306 | counter. Must be initialized to 1 at start-up. */ | ||
3307 | #define XCM_REG_CFC_INIT_CRD 0x20404 | ||
3308 | /* [RW 3] The weight of the CP input in the WRR mechanism. 0 stands for | ||
3309 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
3310 | prioritised); 2 stands for weight 2; tc. */ | ||
3311 | #define XCM_REG_CP_WEIGHT 0x200dc | ||
3312 | /* [RW 1] Input csem Interface enable. If 0 - the valid input is | ||
3313 | disregarded; acknowledge output is deasserted; all other signals are | ||
3314 | treated as usual; if 1 - normal activity. */ | ||
3315 | #define XCM_REG_CSEM_IFEN 0x20028 | ||
3316 | /* [RC 1] Set at message length mismatch (relative to last indication) at | ||
3317 | the csem interface. */ | ||
3318 | #define XCM_REG_CSEM_LENGTH_MIS 0x20228 | ||
3319 | /* [RW 3] The weight of the input csem in the WRR mechanism. 0 stands for | ||
3320 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
3321 | prioritised); 2 stands for weight 2; tc. */ | ||
3322 | #define XCM_REG_CSEM_WEIGHT 0x200c4 | ||
3323 | /* [RW 1] Input dorq Interface enable. If 0 - the valid input is | ||
3324 | disregarded; acknowledge output is deasserted; all other signals are | ||
3325 | treated as usual; if 1 - normal activity. */ | ||
3326 | #define XCM_REG_DORQ_IFEN 0x20030 | ||
3327 | /* [RC 1] Set at message length mismatch (relative to last indication) at | ||
3328 | the dorq interface. */ | ||
3329 | #define XCM_REG_DORQ_LENGTH_MIS 0x20230 | ||
3330 | /* [RW 8] The Event ID in case the ErrorFlg input message bit is set. */ | ||
3331 | #define XCM_REG_ERR_EVNT_ID 0x200b0 | ||
3332 | /* [RW 28] The CM erroneous header for QM and Timers formatting. */ | ||
3333 | #define XCM_REG_ERR_XCM_HDR 0x200ac | ||
3334 | /* [RW 8] The Event ID for Timers expiration. */ | ||
3335 | #define XCM_REG_EXPR_EVNT_ID 0x200b4 | ||
3336 | /* [RW 8] FIC0 output initial credit. Max credit available - 255.Write | ||
3337 | writes the initial credit value; read returns the current value of the | ||
3338 | credit counter. Must be initialized to 64 at start-up. */ | ||
3339 | #define XCM_REG_FIC0_INIT_CRD 0x2040c | ||
3340 | /* [RW 8] FIC1 output initial credit. Max credit available - 255.Write | ||
3341 | writes the initial credit value; read returns the current value of the | ||
3342 | credit counter. Must be initialized to 64 at start-up. */ | ||
3343 | #define XCM_REG_FIC1_INIT_CRD 0x20410 | ||
3344 | /* [RW 8] The maximum delayed ACK counter value.Must be at least 2. Per port | ||
3345 | value. */ | ||
3346 | #define XCM_REG_GLB_DEL_ACK_MAX_CNT_0 0x20118 | ||
3347 | #define XCM_REG_GLB_DEL_ACK_MAX_CNT_1 0x2011c | ||
3348 | /* [RW 28] The delayed ACK timeout in ticks. Per port value. */ | ||
3349 | #define XCM_REG_GLB_DEL_ACK_TMR_VAL_0 0x20108 | ||
3350 | #define XCM_REG_GLB_DEL_ACK_TMR_VAL_1 0x2010c | ||
3351 | /* [RW 1] Arbitratiojn between Input Arbiter groups: 0 - fair Round-Robin; 1 | ||
3352 | - strict priority defined by ~xcm_registers_gr_ag_pr.gr_ag_pr; | ||
3353 | ~xcm_registers_gr_ld0_pr.gr_ld0_pr and | ||
3354 | ~xcm_registers_gr_ld1_pr.gr_ld1_pr. */ | ||
3355 | #define XCM_REG_GR_ARB_TYPE 0x2020c | ||
3356 | /* [RW 2] Load (FIC0) channel group priority. The lowest priority is 0; the | ||
3357 | highest priority is 3. It is supposed that the Channel group is the | ||
3358 | compliment of the other 3 groups. */ | ||
3359 | #define XCM_REG_GR_LD0_PR 0x20214 | ||
3360 | /* [RW 2] Load (FIC1) channel group priority. The lowest priority is 0; the | ||
3361 | highest priority is 3. It is supposed that the Channel group is the | ||
3362 | compliment of the other 3 groups. */ | ||
3363 | #define XCM_REG_GR_LD1_PR 0x20218 | ||
3364 | /* [RW 1] Input nig0 Interface enable. If 0 - the valid input is | ||
3365 | disregarded; acknowledge output is deasserted; all other signals are | ||
3366 | treated as usual; if 1 - normal activity. */ | ||
3367 | #define XCM_REG_NIG0_IFEN 0x20038 | ||
3368 | /* [RC 1] Set at message length mismatch (relative to last indication) at | ||
3369 | the nig0 interface. */ | ||
3370 | #define XCM_REG_NIG0_LENGTH_MIS 0x20238 | ||
3371 | /* [RW 1] Input nig1 Interface enable. If 0 - the valid input is | ||
3372 | disregarded; acknowledge output is deasserted; all other signals are | ||
3373 | treated as usual; if 1 - normal activity. */ | ||
3374 | #define XCM_REG_NIG1_IFEN 0x2003c | ||
3375 | /* [RC 1] Set at message length mismatch (relative to last indication) at | ||
3376 | the nig1 interface. */ | ||
3377 | #define XCM_REG_NIG1_LENGTH_MIS 0x2023c | ||
3378 | /* [RW 3] The weight of the input nig1 in the WRR mechanism. 0 stands for | ||
3379 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
3380 | prioritised); 2 stands for weight 2; tc. */ | ||
3381 | #define XCM_REG_NIG1_WEIGHT 0x200d8 | ||
3382 | /* [RW 5] The number of double REG-pairs; loaded from the STORM context and | ||
3383 | sent to STORM; for a specific connection type. The double REG-pairs are | ||
3384 | used in order to align to STORM context row size of 128 bits. The offset | ||
3385 | of these data in the STORM context is always 0. Index _i stands for the | ||
3386 | connection type (one of 16). */ | ||
3387 | #define XCM_REG_N_SM_CTX_LD_0 0x20060 | ||
3388 | #define XCM_REG_N_SM_CTX_LD_1 0x20064 | ||
3389 | #define XCM_REG_N_SM_CTX_LD_10 0x20088 | ||
3390 | #define XCM_REG_N_SM_CTX_LD_11 0x2008c | ||
3391 | #define XCM_REG_N_SM_CTX_LD_12 0x20090 | ||
3392 | #define XCM_REG_N_SM_CTX_LD_13 0x20094 | ||
3393 | #define XCM_REG_N_SM_CTX_LD_14 0x20098 | ||
3394 | #define XCM_REG_N_SM_CTX_LD_15 0x2009c | ||
3395 | #define XCM_REG_N_SM_CTX_LD_2 0x20068 | ||
3396 | #define XCM_REG_N_SM_CTX_LD_3 0x2006c | ||
3397 | #define XCM_REG_N_SM_CTX_LD_4 0x20070 | ||
3398 | /* [RW 1] Input pbf Interface enable. If 0 - the valid input is disregarded; | ||
3399 | acknowledge output is deasserted; all other signals are treated as usual; | ||
3400 | if 1 - normal activity. */ | ||
3401 | #define XCM_REG_PBF_IFEN 0x20034 | ||
3402 | /* [RC 1] Set at message length mismatch (relative to last indication) at | ||
3403 | the pbf interface. */ | ||
3404 | #define XCM_REG_PBF_LENGTH_MIS 0x20234 | ||
3405 | /* [RW 3] The weight of the input pbf in the WRR mechanism. 0 stands for | ||
3406 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
3407 | prioritised); 2 stands for weight 2; tc. */ | ||
3408 | #define XCM_REG_PBF_WEIGHT 0x200d0 | ||
3409 | /* [RW 8] The Event ID for Timers formatting in case of stop done. */ | ||
3410 | #define XCM_REG_STOP_EVNT_ID 0x200b8 | ||
3411 | /* [RC 1] Set at message length mismatch (relative to last indication) at | ||
3412 | the STORM interface. */ | ||
3413 | #define XCM_REG_STORM_LENGTH_MIS 0x2021c | ||
3414 | /* [RW 3] The weight of the STORM input in the WRR mechanism. 0 stands for | ||
3415 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
3416 | prioritised); 2 stands for weight 2; tc. */ | ||
3417 | #define XCM_REG_STORM_WEIGHT 0x200bc | ||
3418 | /* [RW 1] STORM - CM Interface enable. If 0 - the valid input is | ||
3419 | disregarded; acknowledge output is deasserted; all other signals are | ||
3420 | treated as usual; if 1 - normal activity. */ | ||
3421 | #define XCM_REG_STORM_XCM_IFEN 0x20010 | ||
3422 | /* [RW 4] Timers output initial credit. Max credit available - 15.Write | ||
3423 | writes the initial credit value; read returns the current value of the | ||
3424 | credit counter. Must be initialized to 4 at start-up. */ | ||
3425 | #define XCM_REG_TM_INIT_CRD 0x2041c | ||
3426 | /* [RW 28] The CM header for Timers expiration command. */ | ||
3427 | #define XCM_REG_TM_XCM_HDR 0x200a8 | ||
3428 | /* [RW 1] Timers - CM Interface enable. If 0 - the valid input is | ||
3429 | disregarded; acknowledge output is deasserted; all other signals are | ||
3430 | treated as usual; if 1 - normal activity. */ | ||
3431 | #define XCM_REG_TM_XCM_IFEN 0x2001c | ||
3432 | /* [RW 1] Input tsem Interface enable. If 0 - the valid input is | ||
3433 | disregarded; acknowledge output is deasserted; all other signals are | ||
3434 | treated as usual; if 1 - normal activity. */ | ||
3435 | #define XCM_REG_TSEM_IFEN 0x20024 | ||
3436 | /* [RC 1] Set at message length mismatch (relative to last indication) at | ||
3437 | the tsem interface. */ | ||
3438 | #define XCM_REG_TSEM_LENGTH_MIS 0x20224 | ||
3439 | /* [RW 3] The weight of the input tsem in the WRR mechanism. 0 stands for | ||
3440 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
3441 | prioritised); 2 stands for weight 2; tc. */ | ||
3442 | #define XCM_REG_TSEM_WEIGHT 0x200c0 | ||
3443 | /* [RW 2] The queue index for registration on UNA greater NXT decision rule. */ | ||
3444 | #define XCM_REG_UNA_GT_NXT_Q 0x20120 | ||
3445 | /* [RW 1] Input usem Interface enable. If 0 - the valid input is | ||
3446 | disregarded; acknowledge output is deasserted; all other signals are | ||
3447 | treated as usual; if 1 - normal activity. */ | ||
3448 | #define XCM_REG_USEM_IFEN 0x2002c | ||
3449 | /* [RC 1] Message length mismatch (relative to last indication) at the usem | ||
3450 | interface. */ | ||
3451 | #define XCM_REG_USEM_LENGTH_MIS 0x2022c | ||
3452 | /* [RW 3] The weight of the input usem in the WRR mechanism. 0 stands for | ||
3453 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
3454 | prioritised); 2 stands for weight 2; tc. */ | ||
3455 | #define XCM_REG_USEM_WEIGHT 0x200c8 | ||
3456 | /* [RW 2] DA counter command; used in case of window update doorbell.The | ||
3457 | first index stands for the value DaEnable of that connection. The second | ||
3458 | index stands for port number. */ | ||
3459 | #define XCM_REG_WU_DA_CNT_CMD00 0x201d4 | ||
3460 | /* [RW 2] DA counter command; used in case of window update doorbell.The | ||
3461 | first index stands for the value DaEnable of that connection. The second | ||
3462 | index stands for port number. */ | ||
3463 | #define XCM_REG_WU_DA_CNT_CMD01 0x201d8 | ||
3464 | /* [RW 2] DA counter command; used in case of window update doorbell.The | ||
3465 | first index stands for the value DaEnable of that connection. The second | ||
3466 | index stands for port number. */ | ||
3467 | #define XCM_REG_WU_DA_CNT_CMD10 0x201dc | ||
3468 | /* [RW 2] DA counter command; used in case of window update doorbell.The | ||
3469 | first index stands for the value DaEnable of that connection. The second | ||
3470 | index stands for port number. */ | ||
3471 | #define XCM_REG_WU_DA_CNT_CMD11 0x201e0 | ||
3472 | /* [RW 8] DA counter update value used in case of window update doorbell.The | ||
3473 | first index stands for the value DaEnable of that connection. The second | ||
3474 | index stands for port number. */ | ||
3475 | #define XCM_REG_WU_DA_CNT_UPD_VAL00 0x201e4 | ||
3476 | /* [RW 8] DA counter update value; used in case of window update | ||
3477 | doorbell.The first index stands for the value DaEnable of that | ||
3478 | connection. The second index stands for port number. */ | ||
3479 | #define XCM_REG_WU_DA_CNT_UPD_VAL01 0x201e8 | ||
3480 | /* [RW 8] DA counter update value; used in case of window update | ||
3481 | doorbell.The first index stands for the value DaEnable of that | ||
3482 | connection. The second index stands for port number. */ | ||
3483 | #define XCM_REG_WU_DA_CNT_UPD_VAL10 0x201ec | ||
3484 | /* [RW 8] DA counter update value; used in case of window update | ||
3485 | doorbell.The first index stands for the value DaEnable of that | ||
3486 | connection. The second index stands for port number. */ | ||
3487 | #define XCM_REG_WU_DA_CNT_UPD_VAL11 0x201f0 | ||
3488 | /* [RW 1] DA timer command; used in case of window update doorbell.The first | ||
3489 | index stands for the value DaEnable of that connection. The second index | ||
3490 | stands for port number. */ | ||
3491 | #define XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD00 0x201c4 | ||
3492 | /* [RW 1] DA timer command; used in case of window update doorbell.The first | ||
3493 | index stands for the value DaEnable of that connection. The second index | ||
3494 | stands for port number. */ | ||
3495 | #define XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD01 0x201c8 | ||
3496 | /* [RW 1] DA timer command; used in case of window update doorbell.The first | ||
3497 | index stands for the value DaEnable of that connection. The second index | ||
3498 | stands for port number. */ | ||
3499 | #define XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD10 0x201cc | ||
3500 | /* [RW 1] DA timer command; used in case of window update doorbell.The first | ||
3501 | index stands for the value DaEnable of that connection. The second index | ||
3502 | stands for port number. */ | ||
3503 | #define XCM_REG_WU_DA_SET_TMR_CNT_FLG_CMD11 0x201d0 | ||
3504 | /* [RW 1] CM - CFC Interface enable. If 0 - the valid input is disregarded; | ||
3505 | acknowledge output is deasserted; all other signals are treated as usual; | ||
3506 | if 1 - normal activity. */ | ||
3507 | #define XCM_REG_XCM_CFC_IFEN 0x20050 | ||
3508 | /* [RW 14] Interrupt mask register #0 read/write */ | ||
3509 | #define XCM_REG_XCM_INT_MASK 0x202b4 | ||
3510 | /* [R 14] Interrupt register #0 read */ | ||
3511 | #define XCM_REG_XCM_INT_STS 0x202a8 | ||
3512 | /* [RW 4] The size of AG context region 0 in REG-pairs. Designates the MS | ||
3513 | REG-pair number (e.g. if region 0 is 6 REG-pairs; the value should be 5). | ||
3514 | Is used to determine the number of the AG context REG-pairs written back; | ||
3515 | when the Reg1WbFlg isn't set. */ | ||
3516 | #define XCM_REG_XCM_REG0_SZ 0x200f4 | ||
3517 | /* [RW 1] CM - STORM 0 Interface enable. If 0 - the acknowledge input is | ||
3518 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
3519 | if 1 - normal activity. */ | ||
3520 | #define XCM_REG_XCM_STORM0_IFEN 0x20004 | ||
3521 | /* [RW 1] CM - STORM 1 Interface enable. If 0 - the acknowledge input is | ||
3522 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
3523 | if 1 - normal activity. */ | ||
3524 | #define XCM_REG_XCM_STORM1_IFEN 0x20008 | ||
3525 | /* [RW 1] CM - Timers Interface enable. If 0 - the valid input is | ||
3526 | disregarded; acknowledge output is deasserted; all other signals are | ||
3527 | treated as usual; if 1 - normal activity. */ | ||
3528 | #define XCM_REG_XCM_TM_IFEN 0x20020 | ||
3529 | /* [RW 1] CM - QM Interface enable. If 0 - the acknowledge input is | ||
3530 | disregarded; valid is deasserted; all other signals are treated as usual; | ||
3531 | if 1 - normal activity. */ | ||
3532 | #define XCM_REG_XCM_XQM_IFEN 0x2000c | ||
3533 | /* [RW 1] If set the Q index; received from the QM is inserted to event ID. */ | ||
3534 | #define XCM_REG_XCM_XQM_USE_Q 0x200f0 | ||
3535 | /* [RW 4] The value by which CFC updates the activity counter at QM bypass. */ | ||
3536 | #define XCM_REG_XQM_BYP_ACT_UPD 0x200fc | ||
3537 | /* [RW 6] QM output initial credit. Max credit available - 32.Write writes | ||
3538 | the initial credit value; read returns the current value of the credit | ||
3539 | counter. Must be initialized to 32 at start-up. */ | ||
3540 | #define XCM_REG_XQM_INIT_CRD 0x20420 | ||
3541 | /* [RW 3] The weight of the QM (primary) input in the WRR mechanism. 0 | ||
3542 | stands for weight 8 (the most prioritised); 1 stands for weight 1(least | ||
3543 | prioritised); 2 stands for weight 2; tc. */ | ||
3544 | #define XCM_REG_XQM_P_WEIGHT 0x200e4 | ||
3545 | /* [RW 28] The CM header value for QM request (primary). */ | ||
3546 | #define XCM_REG_XQM_XCM_HDR_P 0x200a0 | ||
3547 | /* [RW 28] The CM header value for QM request (secondary). */ | ||
3548 | #define XCM_REG_XQM_XCM_HDR_S 0x200a4 | ||
3549 | /* [RW 1] QM - CM Interface enable. If 0 - the valid input is disregarded; | ||
3550 | acknowledge output is deasserted; all other signals are treated as usual; | ||
3551 | if 1 - normal activity. */ | ||
3552 | #define XCM_REG_XQM_XCM_IFEN 0x20014 | ||
3553 | /* [RW 1] Input SDM Interface enable. If 0 - the valid input is disregarded; | ||
3554 | acknowledge output is deasserted; all other signals are treated as usual; | ||
3555 | if 1 - normal activity. */ | ||
3556 | #define XCM_REG_XSDM_IFEN 0x20018 | ||
3557 | /* [RC 1] Set at message length mismatch (relative to last indication) at | ||
3558 | the SDM interface. */ | ||
3559 | #define XCM_REG_XSDM_LENGTH_MIS 0x20220 | ||
3560 | /* [RW 3] The weight of the SDM input in the WRR mechanism. 0 stands for | ||
3561 | weight 8 (the most prioritised); 1 stands for weight 1(least | ||
3562 | prioritised); 2 stands for weight 2; tc. */ | ||
3563 | #define XCM_REG_XSDM_WEIGHT 0x200e0 | ||
3564 | /* [RW 17] Indirect access to the descriptor table of the XX protection | ||
3565 | mechanism. The fields are: [5:0] - message length; 11:6] - message | ||
3566 | pointer; 16:12] - next pointer. */ | ||
3567 | #define XCM_REG_XX_DESCR_TABLE 0x20480 | ||
3568 | /* [R 6] Used to read the XX protection Free counter. */ | ||
3569 | #define XCM_REG_XX_FREE 0x20240 | ||
3570 | /* [RW 6] Initial value for the credit counter; responsible for fulfilling | ||
3571 | of the Input Stage XX protection buffer by the XX protection pending | ||
3572 | messages. Max credit available - 3.Write writes the initial credit value; | ||
3573 | read returns the current value of the credit counter. Must be initialized | ||
3574 | to 2 at start-up. */ | ||
3575 | #define XCM_REG_XX_INIT_CRD 0x20424 | ||
3576 | /* [RW 6] The maximum number of pending messages; which may be stored in XX | ||
3577 | protection. ~xcm_registers_xx_free.xx_free read on read. */ | ||
3578 | #define XCM_REG_XX_MSG_NUM 0x20428 | ||
3579 | /* [RW 8] The Event ID; sent to the STORM in case of XX overflow. */ | ||
3580 | #define XCM_REG_XX_OVFL_EVNT_ID 0x20058 | ||
3581 | /* [RW 15] Indirect access to the XX table of the XX protection mechanism. | ||
3582 | The fields are:[4:0] - tail pointer; 9:5] - Link List size; 14:10] - | ||
3583 | header pointer. */ | ||
3584 | #define XCM_REG_XX_TABLE 0x20500 | ||
3585 | /* [RW 8] The event id for aggregated interrupt 0 */ | ||
3586 | #define XSDM_REG_AGG_INT_EVENT_0 0x166038 | ||
3587 | #define XSDM_REG_AGG_INT_EVENT_1 0x16603c | ||
3588 | #define XSDM_REG_AGG_INT_EVENT_10 0x166060 | ||
3589 | #define XSDM_REG_AGG_INT_EVENT_11 0x166064 | ||
3590 | #define XSDM_REG_AGG_INT_EVENT_12 0x166068 | ||
3591 | #define XSDM_REG_AGG_INT_EVENT_13 0x16606c | ||
3592 | #define XSDM_REG_AGG_INT_EVENT_14 0x166070 | ||
3593 | #define XSDM_REG_AGG_INT_EVENT_15 0x166074 | ||
3594 | #define XSDM_REG_AGG_INT_EVENT_16 0x166078 | ||
3595 | #define XSDM_REG_AGG_INT_EVENT_17 0x16607c | ||
3596 | #define XSDM_REG_AGG_INT_EVENT_18 0x166080 | ||
3597 | #define XSDM_REG_AGG_INT_EVENT_19 0x166084 | ||
3598 | #define XSDM_REG_AGG_INT_EVENT_2 0x166040 | ||
3599 | #define XSDM_REG_AGG_INT_EVENT_20 0x166088 | ||
3600 | #define XSDM_REG_AGG_INT_EVENT_21 0x16608c | ||
3601 | #define XSDM_REG_AGG_INT_EVENT_22 0x166090 | ||
3602 | #define XSDM_REG_AGG_INT_EVENT_23 0x166094 | ||
3603 | #define XSDM_REG_AGG_INT_EVENT_24 0x166098 | ||
3604 | #define XSDM_REG_AGG_INT_EVENT_25 0x16609c | ||
3605 | #define XSDM_REG_AGG_INT_EVENT_26 0x1660a0 | ||
3606 | #define XSDM_REG_AGG_INT_EVENT_27 0x1660a4 | ||
3607 | #define XSDM_REG_AGG_INT_EVENT_28 0x1660a8 | ||
3608 | #define XSDM_REG_AGG_INT_EVENT_29 0x1660ac | ||
3609 | /* [RW 1] For each aggregated interrupt index whether the mode is normal (0) | ||
3610 | or auto-mask-mode (1) */ | ||
3611 | #define XSDM_REG_AGG_INT_MODE_0 0x1661b8 | ||
3612 | #define XSDM_REG_AGG_INT_MODE_1 0x1661bc | ||
3613 | #define XSDM_REG_AGG_INT_MODE_10 0x1661e0 | ||
3614 | #define XSDM_REG_AGG_INT_MODE_11 0x1661e4 | ||
3615 | #define XSDM_REG_AGG_INT_MODE_12 0x1661e8 | ||
3616 | #define XSDM_REG_AGG_INT_MODE_13 0x1661ec | ||
3617 | #define XSDM_REG_AGG_INT_MODE_14 0x1661f0 | ||
3618 | #define XSDM_REG_AGG_INT_MODE_15 0x1661f4 | ||
3619 | #define XSDM_REG_AGG_INT_MODE_16 0x1661f8 | ||
3620 | #define XSDM_REG_AGG_INT_MODE_17 0x1661fc | ||
3621 | #define XSDM_REG_AGG_INT_MODE_18 0x166200 | ||
3622 | #define XSDM_REG_AGG_INT_MODE_19 0x166204 | ||
3623 | /* [RW 13] The start address in the internal RAM for the cfc_rsp lcid */ | ||
3624 | #define XSDM_REG_CFC_RSP_START_ADDR 0x166008 | ||
3625 | /* [RW 16] The maximum value of the competion counter #0 */ | ||
3626 | #define XSDM_REG_CMP_COUNTER_MAX0 0x16601c | ||
3627 | /* [RW 16] The maximum value of the competion counter #1 */ | ||
3628 | #define XSDM_REG_CMP_COUNTER_MAX1 0x166020 | ||
3629 | /* [RW 16] The maximum value of the competion counter #2 */ | ||
3630 | #define XSDM_REG_CMP_COUNTER_MAX2 0x166024 | ||
3631 | /* [RW 16] The maximum value of the competion counter #3 */ | ||
3632 | #define XSDM_REG_CMP_COUNTER_MAX3 0x166028 | ||
3633 | /* [RW 13] The start address in the internal RAM for the completion | ||
3634 | counters. */ | ||
3635 | #define XSDM_REG_CMP_COUNTER_START_ADDR 0x16600c | ||
3636 | #define XSDM_REG_ENABLE_IN1 0x166238 | ||
3637 | #define XSDM_REG_ENABLE_IN2 0x16623c | ||
3638 | #define XSDM_REG_ENABLE_OUT1 0x166240 | ||
3639 | #define XSDM_REG_ENABLE_OUT2 0x166244 | ||
3640 | /* [RW 4] The initial number of messages that can be sent to the pxp control | ||
3641 | interface without receiving any ACK. */ | ||
3642 | #define XSDM_REG_INIT_CREDIT_PXP_CTRL 0x1664bc | ||
3643 | /* [ST 32] The number of ACK after placement messages received */ | ||
3644 | #define XSDM_REG_NUM_OF_ACK_AFTER_PLACE 0x16627c | ||
3645 | /* [ST 32] The number of packet end messages received from the parser */ | ||
3646 | #define XSDM_REG_NUM_OF_PKT_END_MSG 0x166274 | ||
3647 | /* [ST 32] The number of requests received from the pxp async if */ | ||
3648 | #define XSDM_REG_NUM_OF_PXP_ASYNC_REQ 0x166278 | ||
3649 | /* [ST 32] The number of commands received in queue 0 */ | ||
3650 | #define XSDM_REG_NUM_OF_Q0_CMD 0x166248 | ||
3651 | /* [ST 32] The number of commands received in queue 10 */ | ||
3652 | #define XSDM_REG_NUM_OF_Q10_CMD 0x16626c | ||
3653 | /* [ST 32] The number of commands received in queue 11 */ | ||
3654 | #define XSDM_REG_NUM_OF_Q11_CMD 0x166270 | ||
3655 | /* [ST 32] The number of commands received in queue 1 */ | ||
3656 | #define XSDM_REG_NUM_OF_Q1_CMD 0x16624c | ||
3657 | /* [ST 32] The number of commands received in queue 3 */ | ||
3658 | #define XSDM_REG_NUM_OF_Q3_CMD 0x166250 | ||
3659 | /* [ST 32] The number of commands received in queue 4 */ | ||
3660 | #define XSDM_REG_NUM_OF_Q4_CMD 0x166254 | ||
3661 | /* [ST 32] The number of commands received in queue 5 */ | ||
3662 | #define XSDM_REG_NUM_OF_Q5_CMD 0x166258 | ||
3663 | /* [ST 32] The number of commands received in queue 6 */ | ||
3664 | #define XSDM_REG_NUM_OF_Q6_CMD 0x16625c | ||
3665 | /* [ST 32] The number of commands received in queue 7 */ | ||
3666 | #define XSDM_REG_NUM_OF_Q7_CMD 0x166260 | ||
3667 | /* [ST 32] The number of commands received in queue 8 */ | ||
3668 | #define XSDM_REG_NUM_OF_Q8_CMD 0x166264 | ||
3669 | /* [ST 32] The number of commands received in queue 9 */ | ||
3670 | #define XSDM_REG_NUM_OF_Q9_CMD 0x166268 | ||
3671 | /* [RW 13] The start address in the internal RAM for queue counters */ | ||
3672 | #define XSDM_REG_Q_COUNTER_START_ADDR 0x166010 | ||
3673 | /* [R 1] pxp_ctrl rd_data fifo empty in sdm_dma_rsp block */ | ||
3674 | #define XSDM_REG_RSP_PXP_CTRL_RDATA_EMPTY 0x166548 | ||
3675 | /* [R 1] parser fifo empty in sdm_sync block */ | ||
3676 | #define XSDM_REG_SYNC_PARSER_EMPTY 0x166550 | ||
3677 | /* [R 1] parser serial fifo empty in sdm_sync block */ | ||
3678 | #define XSDM_REG_SYNC_SYNC_EMPTY 0x166558 | ||
3679 | /* [RW 32] Tick for timer counter. Applicable only when | ||
3680 | ~xsdm_registers_timer_tick_enable.timer_tick_enable =1 */ | ||
3681 | #define XSDM_REG_TIMER_TICK 0x166000 | ||
3682 | /* [RW 32] Interrupt mask register #0 read/write */ | ||
3683 | #define XSDM_REG_XSDM_INT_MASK_0 0x16629c | ||
3684 | #define XSDM_REG_XSDM_INT_MASK_1 0x1662ac | ||
3685 | /* [RW 11] Parity mask register #0 read/write */ | ||
3686 | #define XSDM_REG_XSDM_PRTY_MASK 0x1662bc | ||
3687 | /* [RW 5] The number of time_slots in the arbitration cycle */ | ||
3688 | #define XSEM_REG_ARB_CYCLE_SIZE 0x280034 | ||
3689 | /* [RW 3] The source that is associated with arbitration element 0. Source | ||
3690 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
3691 | sleeping thread with priority 1; 4- sleeping thread with priority 2 */ | ||
3692 | #define XSEM_REG_ARB_ELEMENT0 0x280020 | ||
3693 | /* [RW 3] The source that is associated with arbitration element 1. Source | ||
3694 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
3695 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
3696 | Could not be equal to register ~xsem_registers_arb_element0.arb_element0 */ | ||
3697 | #define XSEM_REG_ARB_ELEMENT1 0x280024 | ||
3698 | /* [RW 3] The source that is associated with arbitration element 2. Source | ||
3699 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
3700 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
3701 | Could not be equal to register ~xsem_registers_arb_element0.arb_element0 | ||
3702 | and ~xsem_registers_arb_element1.arb_element1 */ | ||
3703 | #define XSEM_REG_ARB_ELEMENT2 0x280028 | ||
3704 | /* [RW 3] The source that is associated with arbitration element 3. Source | ||
3705 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
3706 | sleeping thread with priority 1; 4- sleeping thread with priority 2.Could | ||
3707 | not be equal to register ~xsem_registers_arb_element0.arb_element0 and | ||
3708 | ~xsem_registers_arb_element1.arb_element1 and | ||
3709 | ~xsem_registers_arb_element2.arb_element2 */ | ||
3710 | #define XSEM_REG_ARB_ELEMENT3 0x28002c | ||
3711 | /* [RW 3] The source that is associated with arbitration element 4. Source | ||
3712 | decoding is: 0- foc0; 1-fic1; 2-sleeping thread with priority 0; 3- | ||
3713 | sleeping thread with priority 1; 4- sleeping thread with priority 2. | ||
3714 | Could not be equal to register ~xsem_registers_arb_element0.arb_element0 | ||
3715 | and ~xsem_registers_arb_element1.arb_element1 and | ||
3716 | ~xsem_registers_arb_element2.arb_element2 and | ||
3717 | ~xsem_registers_arb_element3.arb_element3 */ | ||
3718 | #define XSEM_REG_ARB_ELEMENT4 0x280030 | ||
3719 | #define XSEM_REG_ENABLE_IN 0x2800a4 | ||
3720 | #define XSEM_REG_ENABLE_OUT 0x2800a8 | ||
3721 | /* [RW 32] This address space contains all registers and memories that are | ||
3722 | placed in SEM_FAST block. The SEM_FAST registers are described in | ||
3723 | appendix B. In order to access the SEM_FAST registers the base address | ||
3724 | XSEM_REGISTERS_FAST_MEMORY (Offset: 0x2a0000) should be added to each | ||
3725 | SEM_FAST register offset. */ | ||
3726 | #define XSEM_REG_FAST_MEMORY 0x2a0000 | ||
3727 | /* [RW 1] Disables input messages from FIC0 May be updated during run_time | ||
3728 | by the microcode */ | ||
3729 | #define XSEM_REG_FIC0_DISABLE 0x280224 | ||
3730 | /* [RW 1] Disables input messages from FIC1 May be updated during run_time | ||
3731 | by the microcode */ | ||
3732 | #define XSEM_REG_FIC1_DISABLE 0x280234 | ||
3733 | /* [RW 15] Interrupt table Read and write access to it is not possible in | ||
3734 | the middle of the work */ | ||
3735 | #define XSEM_REG_INT_TABLE 0x280400 | ||
3736 | /* [ST 24] Statistics register. The number of messages that entered through | ||
3737 | FIC0 */ | ||
3738 | #define XSEM_REG_MSG_NUM_FIC0 0x280000 | ||
3739 | /* [ST 24] Statistics register. The number of messages that entered through | ||
3740 | FIC1 */ | ||
3741 | #define XSEM_REG_MSG_NUM_FIC1 0x280004 | ||
3742 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
3743 | FOC0 */ | ||
3744 | #define XSEM_REG_MSG_NUM_FOC0 0x280008 | ||
3745 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
3746 | FOC1 */ | ||
3747 | #define XSEM_REG_MSG_NUM_FOC1 0x28000c | ||
3748 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
3749 | FOC2 */ | ||
3750 | #define XSEM_REG_MSG_NUM_FOC2 0x280010 | ||
3751 | /* [ST 24] Statistics register. The number of messages that were sent to | ||
3752 | FOC3 */ | ||
3753 | #define XSEM_REG_MSG_NUM_FOC3 0x280014 | ||
3754 | /* [RW 1] Disables input messages from the passive buffer May be updated | ||
3755 | during run_time by the microcode */ | ||
3756 | #define XSEM_REG_PAS_DISABLE 0x28024c | ||
3757 | /* [WB 128] Debug only. Passive buffer memory */ | ||
3758 | #define XSEM_REG_PASSIVE_BUFFER 0x282000 | ||
3759 | /* [WB 46] pram memory. B45 is parity; b[44:0] - data. */ | ||
3760 | #define XSEM_REG_PRAM 0x2c0000 | ||
3761 | /* [R 16] Valid sleeping threads indication have bit per thread */ | ||
3762 | #define XSEM_REG_SLEEP_THREADS_VALID 0x28026c | ||
3763 | /* [R 1] EXT_STORE FIFO is empty in sem_slow_ls_ext */ | ||
3764 | #define XSEM_REG_SLOW_EXT_STORE_EMPTY 0x2802a0 | ||
3765 | /* [RW 16] List of free threads . There is a bit per thread. */ | ||
3766 | #define XSEM_REG_THREADS_LIST 0x2802e4 | ||
3767 | /* [RW 3] The arbitration scheme of time_slot 0 */ | ||
3768 | #define XSEM_REG_TS_0_AS 0x280038 | ||
3769 | /* [RW 3] The arbitration scheme of time_slot 10 */ | ||
3770 | #define XSEM_REG_TS_10_AS 0x280060 | ||
3771 | /* [RW 3] The arbitration scheme of time_slot 11 */ | ||
3772 | #define XSEM_REG_TS_11_AS 0x280064 | ||
3773 | /* [RW 3] The arbitration scheme of time_slot 12 */ | ||
3774 | #define XSEM_REG_TS_12_AS 0x280068 | ||
3775 | /* [RW 3] The arbitration scheme of time_slot 13 */ | ||
3776 | #define XSEM_REG_TS_13_AS 0x28006c | ||
3777 | /* [RW 3] The arbitration scheme of time_slot 14 */ | ||
3778 | #define XSEM_REG_TS_14_AS 0x280070 | ||
3779 | /* [RW 3] The arbitration scheme of time_slot 15 */ | ||
3780 | #define XSEM_REG_TS_15_AS 0x280074 | ||
3781 | /* [RW 3] The arbitration scheme of time_slot 16 */ | ||
3782 | #define XSEM_REG_TS_16_AS 0x280078 | ||
3783 | /* [RW 3] The arbitration scheme of time_slot 17 */ | ||
3784 | #define XSEM_REG_TS_17_AS 0x28007c | ||
3785 | /* [RW 3] The arbitration scheme of time_slot 18 */ | ||
3786 | #define XSEM_REG_TS_18_AS 0x280080 | ||
3787 | /* [RW 3] The arbitration scheme of time_slot 1 */ | ||
3788 | #define XSEM_REG_TS_1_AS 0x28003c | ||
3789 | /* [RW 3] The arbitration scheme of time_slot 2 */ | ||
3790 | #define XSEM_REG_TS_2_AS 0x280040 | ||
3791 | /* [RW 3] The arbitration scheme of time_slot 3 */ | ||
3792 | #define XSEM_REG_TS_3_AS 0x280044 | ||
3793 | /* [RW 3] The arbitration scheme of time_slot 4 */ | ||
3794 | #define XSEM_REG_TS_4_AS 0x280048 | ||
3795 | /* [RW 3] The arbitration scheme of time_slot 5 */ | ||
3796 | #define XSEM_REG_TS_5_AS 0x28004c | ||
3797 | /* [RW 3] The arbitration scheme of time_slot 6 */ | ||
3798 | #define XSEM_REG_TS_6_AS 0x280050 | ||
3799 | /* [RW 3] The arbitration scheme of time_slot 7 */ | ||
3800 | #define XSEM_REG_TS_7_AS 0x280054 | ||
3801 | /* [RW 3] The arbitration scheme of time_slot 8 */ | ||
3802 | #define XSEM_REG_TS_8_AS 0x280058 | ||
3803 | /* [RW 3] The arbitration scheme of time_slot 9 */ | ||
3804 | #define XSEM_REG_TS_9_AS 0x28005c | ||
3805 | /* [RW 32] Interrupt mask register #0 read/write */ | ||
3806 | #define XSEM_REG_XSEM_INT_MASK_0 0x280110 | ||
3807 | #define XSEM_REG_XSEM_INT_MASK_1 0x280120 | ||
3808 | /* [RW 32] Parity mask register #0 read/write */ | ||
3809 | #define XSEM_REG_XSEM_PRTY_MASK_0 0x280130 | ||
3810 | #define XSEM_REG_XSEM_PRTY_MASK_1 0x280140 | ||
3811 | #define MCPR_NVM_ACCESS_ENABLE_EN (1L<<0) | ||
3812 | #define MCPR_NVM_ACCESS_ENABLE_WR_EN (1L<<1) | ||
3813 | #define MCPR_NVM_ADDR_NVM_ADDR_VALUE (0xffffffL<<0) | ||
3814 | #define MCPR_NVM_CFG4_FLASH_SIZE (0x7L<<0) | ||
3815 | #define MCPR_NVM_COMMAND_DOIT (1L<<4) | ||
3816 | #define MCPR_NVM_COMMAND_DONE (1L<<3) | ||
3817 | #define MCPR_NVM_COMMAND_FIRST (1L<<7) | ||
3818 | #define MCPR_NVM_COMMAND_LAST (1L<<8) | ||
3819 | #define MCPR_NVM_COMMAND_WR (1L<<5) | ||
3820 | #define MCPR_NVM_COMMAND_WREN (1L<<16) | ||
3821 | #define MCPR_NVM_COMMAND_WREN_BITSHIFT 16 | ||
3822 | #define MCPR_NVM_COMMAND_WRDI (1L<<17) | ||
3823 | #define MCPR_NVM_COMMAND_WRDI_BITSHIFT 17 | ||
3824 | #define MCPR_NVM_SW_ARB_ARB_ARB1 (1L<<9) | ||
3825 | #define MCPR_NVM_SW_ARB_ARB_REQ_CLR1 (1L<<5) | ||
3826 | #define MCPR_NVM_SW_ARB_ARB_REQ_SET1 (1L<<1) | ||
3827 | #define BIGMAC_REGISTER_BMAC_CONTROL (0x00<<3) | ||
3828 | #define BIGMAC_REGISTER_BMAC_XGXS_CONTROL (0x01<<3) | ||
3829 | #define BIGMAC_REGISTER_CNT_MAX_SIZE (0x05<<3) | ||
3830 | #define BIGMAC_REGISTER_RX_CONTROL (0x21<<3) | ||
3831 | #define BIGMAC_REGISTER_RX_LLFC_MSG_FLDS (0x46<<3) | ||
3832 | #define BIGMAC_REGISTER_RX_MAX_SIZE (0x23<<3) | ||
3833 | #define BIGMAC_REGISTER_RX_STAT_GR64 (0x26<<3) | ||
3834 | #define BIGMAC_REGISTER_RX_STAT_GRIPJ (0x42<<3) | ||
3835 | #define BIGMAC_REGISTER_TX_CONTROL (0x07<<3) | ||
3836 | #define BIGMAC_REGISTER_TX_MAX_SIZE (0x09<<3) | ||
3837 | #define BIGMAC_REGISTER_TX_PAUSE_THRESHOLD (0x0A<<3) | ||
3838 | #define BIGMAC_REGISTER_TX_SOURCE_ADDR (0x08<<3) | ||
3839 | #define BIGMAC_REGISTER_TX_STAT_GTBYT (0x20<<3) | ||
3840 | #define BIGMAC_REGISTER_TX_STAT_GTPKT (0x0C<<3) | ||
3841 | #define EMAC_MDIO_COMM_COMMAND_ADDRESS (0L<<26) | ||
3842 | #define EMAC_MDIO_COMM_COMMAND_READ_22 (2L<<26) | ||
3843 | #define EMAC_MDIO_COMM_COMMAND_READ_45 (3L<<26) | ||
3844 | #define EMAC_MDIO_COMM_COMMAND_WRITE_22 (1L<<26) | ||
3845 | #define EMAC_MDIO_COMM_COMMAND_WRITE_45 (1L<<26) | ||
3846 | #define EMAC_MDIO_COMM_DATA (0xffffL<<0) | ||
3847 | #define EMAC_MDIO_COMM_START_BUSY (1L<<29) | ||
3848 | #define EMAC_MDIO_MODE_AUTO_POLL (1L<<4) | ||
3849 | #define EMAC_MDIO_MODE_CLAUSE_45 (1L<<31) | ||
3850 | #define EMAC_MODE_25G_MODE (1L<<5) | ||
3851 | #define EMAC_MODE_ACPI_RCVD (1L<<20) | ||
3852 | #define EMAC_MODE_HALF_DUPLEX (1L<<1) | ||
3853 | #define EMAC_MODE_MPKT (1L<<18) | ||
3854 | #define EMAC_MODE_MPKT_RCVD (1L<<19) | ||
3855 | #define EMAC_MODE_PORT_GMII (2L<<2) | ||
3856 | #define EMAC_MODE_PORT_MII (1L<<2) | ||
3857 | #define EMAC_MODE_PORT_MII_10M (3L<<2) | ||
3858 | #define EMAC_MODE_RESET (1L<<0) | ||
3859 | #define EMAC_REG_EMAC_MAC_MATCH 0x10 | ||
3860 | #define EMAC_REG_EMAC_MDIO_COMM 0xac | ||
3861 | #define EMAC_REG_EMAC_MDIO_MODE 0xb4 | ||
3862 | #define EMAC_REG_EMAC_MODE 0x0 | ||
3863 | #define EMAC_REG_EMAC_RX_MODE 0xc8 | ||
3864 | #define EMAC_REG_EMAC_RX_MTU_SIZE 0x9c | ||
3865 | #define EMAC_REG_EMAC_RX_STAT_AC 0x180 | ||
3866 | #define EMAC_REG_EMAC_RX_STAT_AC_28 0x1f4 | ||
3867 | #define EMAC_REG_EMAC_RX_STAT_AC_COUNT 23 | ||
3868 | #define EMAC_REG_EMAC_TX_MODE 0xbc | ||
3869 | #define EMAC_REG_EMAC_TX_STAT_AC 0x280 | ||
3870 | #define EMAC_REG_EMAC_TX_STAT_AC_COUNT 22 | ||
3871 | #define EMAC_RX_MODE_FLOW_EN (1L<<2) | ||
3872 | #define EMAC_RX_MODE_KEEP_VLAN_TAG (1L<<10) | ||
3873 | #define EMAC_RX_MODE_PROMISCUOUS (1L<<8) | ||
3874 | #define EMAC_RX_MTU_SIZE_JUMBO_ENA (1L<<31) | ||
3875 | #define EMAC_TX_MODE_EXT_PAUSE_EN (1L<<3) | ||
3876 | #define EMAC_TX_MODE_RESET (1L<<0) | ||
3877 | #define MISC_REGISTERS_RESET_REG_1_CLEAR 0x588 | ||
3878 | #define MISC_REGISTERS_RESET_REG_1_SET 0x584 | ||
3879 | #define MISC_REGISTERS_RESET_REG_2_CLEAR 0x598 | ||
3880 | #define MISC_REGISTERS_RESET_REG_2_RST_BMAC0 (0x1<<0) | ||
3881 | #define MISC_REGISTERS_RESET_REG_2_RST_EMAC0_HARD_CORE (0x1<<14) | ||
3882 | #define MISC_REGISTERS_RESET_REG_2_SET 0x594 | ||
3883 | #define MISC_REGISTERS_RESET_REG_3_CLEAR 0x5a8 | ||
3884 | #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_IDDQ (0x1<<1) | ||
3885 | #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_PWRDWN (0x1<<2) | ||
3886 | #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_PWRDWN_SD (0x1<<3) | ||
3887 | #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_SERDES0_RSTB_HW (0x1<<0) | ||
3888 | #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_IDDQ (0x1<<5) | ||
3889 | #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_PWRDWN (0x1<<6) | ||
3890 | #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_PWRDWN_SD (0x1<<7) | ||
3891 | #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_RSTB_HW (0x1<<4) | ||
3892 | #define MISC_REGISTERS_RESET_REG_3_MISC_NIG_MUX_XGXS0_TXD_FIFO_RSTB (0x1<<8) | ||
3893 | #define MISC_REGISTERS_RESET_REG_3_SET 0x5a4 | ||
3894 | #define AEU_INPUTS_ATTN_BITS_BRB_PARITY_ERROR (1<<18) | ||
3895 | #define AEU_INPUTS_ATTN_BITS_CCM_HW_INTERRUPT (1<<31) | ||
3896 | #define AEU_INPUTS_ATTN_BITS_CDU_HW_INTERRUPT (1<<9) | ||
3897 | #define AEU_INPUTS_ATTN_BITS_CDU_PARITY_ERROR (1<<8) | ||
3898 | #define AEU_INPUTS_ATTN_BITS_CFC_HW_INTERRUPT (1<<7) | ||
3899 | #define AEU_INPUTS_ATTN_BITS_CFC_PARITY_ERROR (1<<6) | ||
3900 | #define AEU_INPUTS_ATTN_BITS_CSDM_HW_INTERRUPT (1<<29) | ||
3901 | #define AEU_INPUTS_ATTN_BITS_CSDM_PARITY_ERROR (1<<28) | ||
3902 | #define AEU_INPUTS_ATTN_BITS_CSEMI_HW_INTERRUPT (1<<1) | ||
3903 | #define AEU_INPUTS_ATTN_BITS_CSEMI_PARITY_ERROR (1<<0) | ||
3904 | #define AEU_INPUTS_ATTN_BITS_DEBUG_PARITY_ERROR (1<<18) | ||
3905 | #define AEU_INPUTS_ATTN_BITS_DMAE_HW_INTERRUPT (1<<11) | ||
3906 | #define AEU_INPUTS_ATTN_BITS_DOORBELLQ_HW_INTERRUPT (1<<13) | ||
3907 | #define AEU_INPUTS_ATTN_BITS_DOORBELLQ_PARITY_ERROR (1<<12) | ||
3908 | #define AEU_INPUTS_ATTN_BITS_IGU_PARITY_ERROR (1<<12) | ||
3909 | #define AEU_INPUTS_ATTN_BITS_MISC_HW_INTERRUPT (1<<15) | ||
3910 | #define AEU_INPUTS_ATTN_BITS_MISC_PARITY_ERROR (1<<14) | ||
3911 | #define AEU_INPUTS_ATTN_BITS_PARSER_PARITY_ERROR (1<<20) | ||
3912 | #define AEU_INPUTS_ATTN_BITS_PBCLIENT_PARITY_ERROR (1<<0) | ||
3913 | #define AEU_INPUTS_ATTN_BITS_PBF_HW_INTERRUPT (1<<31) | ||
3914 | #define AEU_INPUTS_ATTN_BITS_PXP_HW_INTERRUPT (1<<3) | ||
3915 | #define AEU_INPUTS_ATTN_BITS_PXP_PARITY_ERROR (1<<2) | ||
3916 | #define AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_HW_INTERRUPT (1<<5) | ||
3917 | #define AEU_INPUTS_ATTN_BITS_PXPPCICLOCKCLIENT_PARITY_ERROR (1<<4) | ||
3918 | #define AEU_INPUTS_ATTN_BITS_QM_HW_INTERRUPT (1<<3) | ||
3919 | #define AEU_INPUTS_ATTN_BITS_QM_PARITY_ERROR (1<<2) | ||
3920 | #define AEU_INPUTS_ATTN_BITS_SEARCHER_PARITY_ERROR (1<<22) | ||
3921 | #define AEU_INPUTS_ATTN_BITS_TCM_HW_INTERRUPT (1<<27) | ||
3922 | #define AEU_INPUTS_ATTN_BITS_TIMERS_HW_INTERRUPT (1<<5) | ||
3923 | #define AEU_INPUTS_ATTN_BITS_TSDM_HW_INTERRUPT (1<<25) | ||
3924 | #define AEU_INPUTS_ATTN_BITS_TSDM_PARITY_ERROR (1<<24) | ||
3925 | #define AEU_INPUTS_ATTN_BITS_TSEMI_HW_INTERRUPT (1<<29) | ||
3926 | #define AEU_INPUTS_ATTN_BITS_TSEMI_PARITY_ERROR (1<<28) | ||
3927 | #define AEU_INPUTS_ATTN_BITS_UCM_HW_INTERRUPT (1<<23) | ||
3928 | #define AEU_INPUTS_ATTN_BITS_UPB_HW_INTERRUPT (1<<27) | ||
3929 | #define AEU_INPUTS_ATTN_BITS_UPB_PARITY_ERROR (1<<26) | ||
3930 | #define AEU_INPUTS_ATTN_BITS_USDM_HW_INTERRUPT (1<<21) | ||
3931 | #define AEU_INPUTS_ATTN_BITS_USDM_PARITY_ERROR (1<<20) | ||
3932 | #define AEU_INPUTS_ATTN_BITS_USEMI_HW_INTERRUPT (1<<25) | ||
3933 | #define AEU_INPUTS_ATTN_BITS_USEMI_PARITY_ERROR (1<<24) | ||
3934 | #define AEU_INPUTS_ATTN_BITS_VAUX_PCI_CORE_PARITY_ERROR (1<<16) | ||
3935 | #define AEU_INPUTS_ATTN_BITS_XCM_HW_INTERRUPT (1<<9) | ||
3936 | #define AEU_INPUTS_ATTN_BITS_XSDM_HW_INTERRUPT (1<<7) | ||
3937 | #define AEU_INPUTS_ATTN_BITS_XSDM_PARITY_ERROR (1<<6) | ||
3938 | #define AEU_INPUTS_ATTN_BITS_XSEMI_HW_INTERRUPT (1<<11) | ||
3939 | #define AEU_INPUTS_ATTN_BITS_XSEMI_PARITY_ERROR (1<<10) | ||
3940 | #define RESERVED_GENERAL_ATTENTION_BIT_0 0 | ||
3941 | |||
3942 | #define EVEREST_GEN_ATTN_IN_USE_MASK 0x3e0 | ||
3943 | #define EVEREST_LATCHED_ATTN_IN_USE_MASK 0xffe00000 | ||
3944 | |||
3945 | #define RESERVED_GENERAL_ATTENTION_BIT_6 6 | ||
3946 | #define RESERVED_GENERAL_ATTENTION_BIT_7 7 | ||
3947 | #define RESERVED_GENERAL_ATTENTION_BIT_8 8 | ||
3948 | #define RESERVED_GENERAL_ATTENTION_BIT_9 9 | ||
3949 | #define RESERVED_GENERAL_ATTENTION_BIT_10 10 | ||
3950 | #define RESERVED_GENERAL_ATTENTION_BIT_11 11 | ||
3951 | #define RESERVED_GENERAL_ATTENTION_BIT_12 12 | ||
3952 | #define RESERVED_GENERAL_ATTENTION_BIT_13 13 | ||
3953 | #define RESERVED_GENERAL_ATTENTION_BIT_14 14 | ||
3954 | #define RESERVED_GENERAL_ATTENTION_BIT_15 15 | ||
3955 | #define RESERVED_GENERAL_ATTENTION_BIT_16 16 | ||
3956 | #define RESERVED_GENERAL_ATTENTION_BIT_17 17 | ||
3957 | #define RESERVED_GENERAL_ATTENTION_BIT_18 18 | ||
3958 | #define RESERVED_GENERAL_ATTENTION_BIT_19 19 | ||
3959 | #define RESERVED_GENERAL_ATTENTION_BIT_20 20 | ||
3960 | #define RESERVED_GENERAL_ATTENTION_BIT_21 21 | ||
3961 | |||
3962 | /* storm asserts attention bits */ | ||
3963 | #define TSTORM_FATAL_ASSERT_ATTENTION_BIT RESERVED_GENERAL_ATTENTION_BIT_7 | ||
3964 | #define USTORM_FATAL_ASSERT_ATTENTION_BIT RESERVED_GENERAL_ATTENTION_BIT_8 | ||
3965 | #define CSTORM_FATAL_ASSERT_ATTENTION_BIT RESERVED_GENERAL_ATTENTION_BIT_9 | ||
3966 | #define XSTORM_FATAL_ASSERT_ATTENTION_BIT RESERVED_GENERAL_ATTENTION_BIT_10 | ||
3967 | |||
3968 | /* mcp error attention bit */ | ||
3969 | #define MCP_FATAL_ASSERT_ATTENTION_BIT RESERVED_GENERAL_ATTENTION_BIT_11 | ||
3970 | |||
3971 | #define LATCHED_ATTN_RBCR 23 | ||
3972 | #define LATCHED_ATTN_RBCT 24 | ||
3973 | #define LATCHED_ATTN_RBCN 25 | ||
3974 | #define LATCHED_ATTN_RBCU 26 | ||
3975 | #define LATCHED_ATTN_RBCP 27 | ||
3976 | #define LATCHED_ATTN_TIMEOUT_GRC 28 | ||
3977 | #define LATCHED_ATTN_RSVD_GRC 29 | ||
3978 | #define LATCHED_ATTN_ROM_PARITY_MCP 30 | ||
3979 | #define LATCHED_ATTN_UM_RX_PARITY_MCP 31 | ||
3980 | #define LATCHED_ATTN_UM_TX_PARITY_MCP 32 | ||
3981 | #define LATCHED_ATTN_SCPAD_PARITY_MCP 33 | ||
3982 | |||
3983 | #define GENERAL_ATTEN_WORD(atten_name) ((94 + atten_name) / 32) | ||
3984 | #define GENERAL_ATTEN_OFFSET(atten_name) (1 << ((94 + atten_name) % 32)) | ||
3985 | /* | ||
3986 | * This file defines GRC base address for every block. | ||
3987 | * This file is included by chipsim, asm microcode and cpp microcode. | ||
3988 | * These values are used in Design.xml on regBase attribute | ||
3989 | * Use the base with the generated offsets of specific registers. | ||
3990 | */ | ||
3991 | |||
3992 | #define GRCBASE_PXPCS 0x000000 | ||
3993 | #define GRCBASE_PCICONFIG 0x002000 | ||
3994 | #define GRCBASE_PCIREG 0x002400 | ||
3995 | #define GRCBASE_EMAC0 0x008000 | ||
3996 | #define GRCBASE_EMAC1 0x008400 | ||
3997 | #define GRCBASE_DBU 0x008800 | ||
3998 | #define GRCBASE_MISC 0x00A000 | ||
3999 | #define GRCBASE_DBG 0x00C000 | ||
4000 | #define GRCBASE_NIG 0x010000 | ||
4001 | #define GRCBASE_XCM 0x020000 | ||
4002 | #define GRCBASE_PRS 0x040000 | ||
4003 | #define GRCBASE_SRCH 0x040400 | ||
4004 | #define GRCBASE_TSDM 0x042000 | ||
4005 | #define GRCBASE_TCM 0x050000 | ||
4006 | #define GRCBASE_BRB1 0x060000 | ||
4007 | #define GRCBASE_MCP 0x080000 | ||
4008 | #define GRCBASE_UPB 0x0C1000 | ||
4009 | #define GRCBASE_CSDM 0x0C2000 | ||
4010 | #define GRCBASE_USDM 0x0C4000 | ||
4011 | #define GRCBASE_CCM 0x0D0000 | ||
4012 | #define GRCBASE_UCM 0x0E0000 | ||
4013 | #define GRCBASE_CDU 0x101000 | ||
4014 | #define GRCBASE_DMAE 0x102000 | ||
4015 | #define GRCBASE_PXP 0x103000 | ||
4016 | #define GRCBASE_CFC 0x104000 | ||
4017 | #define GRCBASE_HC 0x108000 | ||
4018 | #define GRCBASE_PXP2 0x120000 | ||
4019 | #define GRCBASE_PBF 0x140000 | ||
4020 | #define GRCBASE_XPB 0x161000 | ||
4021 | #define GRCBASE_TIMERS 0x164000 | ||
4022 | #define GRCBASE_XSDM 0x166000 | ||
4023 | #define GRCBASE_QM 0x168000 | ||
4024 | #define GRCBASE_DQ 0x170000 | ||
4025 | #define GRCBASE_TSEM 0x180000 | ||
4026 | #define GRCBASE_CSEM 0x200000 | ||
4027 | #define GRCBASE_XSEM 0x280000 | ||
4028 | #define GRCBASE_USEM 0x300000 | ||
4029 | #define GRCBASE_MISC_AEU GRCBASE_MISC | ||
4030 | |||
4031 | |||
4032 | /*the offset of the configuration space in the pci core register*/ | ||
4033 | #define PCICFG_OFFSET 0x2000 | ||
4034 | #define PCICFG_VENDOR_ID_OFFSET 0x00 | ||
4035 | #define PCICFG_DEVICE_ID_OFFSET 0x02 | ||
4036 | #define PCICFG_SUBSYSTEM_VENDOR_ID_OFFSET 0x2c | ||
4037 | #define PCICFG_SUBSYSTEM_ID_OFFSET 0x2e | ||
4038 | #define PCICFG_INT_LINE 0x3c | ||
4039 | #define PCICFG_INT_PIN 0x3d | ||
4040 | #define PCICFG_CACHE_LINE_SIZE 0x0c | ||
4041 | #define PCICFG_LATENCY_TIMER 0x0d | ||
4042 | #define PCICFG_REVESION_ID 0x08 | ||
4043 | #define PCICFG_BAR_1_LOW 0x10 | ||
4044 | #define PCICFG_BAR_1_HIGH 0x14 | ||
4045 | #define PCICFG_BAR_2_LOW 0x18 | ||
4046 | #define PCICFG_BAR_2_HIGH 0x1c | ||
4047 | #define PCICFG_GRC_ADDRESS 0x78 | ||
4048 | #define PCICFG_GRC_DATA 0x80 | ||
4049 | #define PCICFG_DEVICE_CONTROL 0xb4 | ||
4050 | #define PCICFG_LINK_CONTROL 0xbc | ||
4051 | |||
4052 | #define BAR_USTRORM_INTMEM 0x400000 | ||
4053 | #define BAR_CSTRORM_INTMEM 0x410000 | ||
4054 | #define BAR_XSTRORM_INTMEM 0x420000 | ||
4055 | #define BAR_TSTRORM_INTMEM 0x430000 | ||
4056 | |||
4057 | #define BAR_IGU_INTMEM 0x440000 | ||
4058 | |||
4059 | #define BAR_DOORBELL_OFFSET 0x800000 | ||
4060 | |||
4061 | #define BAR_ME_REGISTER 0x450000 | ||
4062 | |||
4063 | |||
4064 | #define GRC_CONFIG_2_SIZE_REG 0x408 /* config_2 offset */ | ||
4065 | #define PCI_CONFIG_2_BAR1_SIZE (0xfL<<0) | ||
4066 | #define PCI_CONFIG_2_BAR1_SIZE_DISABLED (0L<<0) | ||
4067 | #define PCI_CONFIG_2_BAR1_SIZE_64K (1L<<0) | ||
4068 | #define PCI_CONFIG_2_BAR1_SIZE_128K (2L<<0) | ||
4069 | #define PCI_CONFIG_2_BAR1_SIZE_256K (3L<<0) | ||
4070 | #define PCI_CONFIG_2_BAR1_SIZE_512K (4L<<0) | ||
4071 | #define PCI_CONFIG_2_BAR1_SIZE_1M (5L<<0) | ||
4072 | #define PCI_CONFIG_2_BAR1_SIZE_2M (6L<<0) | ||
4073 | #define PCI_CONFIG_2_BAR1_SIZE_4M (7L<<0) | ||
4074 | #define PCI_CONFIG_2_BAR1_SIZE_8M (8L<<0) | ||
4075 | #define PCI_CONFIG_2_BAR1_SIZE_16M (9L<<0) | ||
4076 | #define PCI_CONFIG_2_BAR1_SIZE_32M (10L<<0) | ||
4077 | #define PCI_CONFIG_2_BAR1_SIZE_64M (11L<<0) | ||
4078 | #define PCI_CONFIG_2_BAR1_SIZE_128M (12L<<0) | ||
4079 | #define PCI_CONFIG_2_BAR1_SIZE_256M (13L<<0) | ||
4080 | #define PCI_CONFIG_2_BAR1_SIZE_512M (14L<<0) | ||
4081 | #define PCI_CONFIG_2_BAR1_SIZE_1G (15L<<0) | ||
4082 | #define PCI_CONFIG_2_BAR1_64ENA (1L<<4) | ||
4083 | #define PCI_CONFIG_2_EXP_ROM_RETRY (1L<<5) | ||
4084 | #define PCI_CONFIG_2_CFG_CYCLE_RETRY (1L<<6) | ||
4085 | #define PCI_CONFIG_2_FIRST_CFG_DONE (1L<<7) | ||
4086 | #define PCI_CONFIG_2_EXP_ROM_SIZE (0xffL<<8) | ||
4087 | #define PCI_CONFIG_2_EXP_ROM_SIZE_DISABLED (0L<<8) | ||
4088 | #define PCI_CONFIG_2_EXP_ROM_SIZE_2K (1L<<8) | ||
4089 | #define PCI_CONFIG_2_EXP_ROM_SIZE_4K (2L<<8) | ||
4090 | #define PCI_CONFIG_2_EXP_ROM_SIZE_8K (3L<<8) | ||
4091 | #define PCI_CONFIG_2_EXP_ROM_SIZE_16K (4L<<8) | ||
4092 | #define PCI_CONFIG_2_EXP_ROM_SIZE_32K (5L<<8) | ||
4093 | #define PCI_CONFIG_2_EXP_ROM_SIZE_64K (6L<<8) | ||
4094 | #define PCI_CONFIG_2_EXP_ROM_SIZE_128K (7L<<8) | ||
4095 | #define PCI_CONFIG_2_EXP_ROM_SIZE_256K (8L<<8) | ||
4096 | #define PCI_CONFIG_2_EXP_ROM_SIZE_512K (9L<<8) | ||
4097 | #define PCI_CONFIG_2_EXP_ROM_SIZE_1M (10L<<8) | ||
4098 | #define PCI_CONFIG_2_EXP_ROM_SIZE_2M (11L<<8) | ||
4099 | #define PCI_CONFIG_2_EXP_ROM_SIZE_4M (12L<<8) | ||
4100 | #define PCI_CONFIG_2_EXP_ROM_SIZE_8M (13L<<8) | ||
4101 | #define PCI_CONFIG_2_EXP_ROM_SIZE_16M (14L<<8) | ||
4102 | #define PCI_CONFIG_2_EXP_ROM_SIZE_32M (15L<<8) | ||
4103 | #define PCI_CONFIG_2_BAR_PREFETCH (1L<<16) | ||
4104 | #define PCI_CONFIG_2_RESERVED0 (0x7fffL<<17) | ||
4105 | |||
4106 | /* config_3 offset */ | ||
4107 | #define GRC_CONFIG_3_SIZE_REG (0x40c) | ||
4108 | #define PCI_CONFIG_3_STICKY_BYTE (0xffL<<0) | ||
4109 | #define PCI_CONFIG_3_FORCE_PME (1L<<24) | ||
4110 | #define PCI_CONFIG_3_PME_STATUS (1L<<25) | ||
4111 | #define PCI_CONFIG_3_PME_ENABLE (1L<<26) | ||
4112 | #define PCI_CONFIG_3_PM_STATE (0x3L<<27) | ||
4113 | #define PCI_CONFIG_3_VAUX_PRESET (1L<<30) | ||
4114 | #define PCI_CONFIG_3_PCI_POWER (1L<<31) | ||
4115 | |||
4116 | /* config_2 offset */ | ||
4117 | #define GRC_CONFIG_2_SIZE_REG 0x408 | ||
4118 | |||
4119 | #define GRC_BAR2_CONFIG 0x4e0 | ||
4120 | #define PCI_CONFIG_2_BAR2_SIZE (0xfL<<0) | ||
4121 | #define PCI_CONFIG_2_BAR2_SIZE_DISABLED (0L<<0) | ||
4122 | #define PCI_CONFIG_2_BAR2_SIZE_64K (1L<<0) | ||
4123 | #define PCI_CONFIG_2_BAR2_SIZE_128K (2L<<0) | ||
4124 | #define PCI_CONFIG_2_BAR2_SIZE_256K (3L<<0) | ||
4125 | #define PCI_CONFIG_2_BAR2_SIZE_512K (4L<<0) | ||
4126 | #define PCI_CONFIG_2_BAR2_SIZE_1M (5L<<0) | ||
4127 | #define PCI_CONFIG_2_BAR2_SIZE_2M (6L<<0) | ||
4128 | #define PCI_CONFIG_2_BAR2_SIZE_4M (7L<<0) | ||
4129 | #define PCI_CONFIG_2_BAR2_SIZE_8M (8L<<0) | ||
4130 | #define PCI_CONFIG_2_BAR2_SIZE_16M (9L<<0) | ||
4131 | #define PCI_CONFIG_2_BAR2_SIZE_32M (10L<<0) | ||
4132 | #define PCI_CONFIG_2_BAR2_SIZE_64M (11L<<0) | ||
4133 | #define PCI_CONFIG_2_BAR2_SIZE_128M (12L<<0) | ||
4134 | #define PCI_CONFIG_2_BAR2_SIZE_256M (13L<<0) | ||
4135 | #define PCI_CONFIG_2_BAR2_SIZE_512M (14L<<0) | ||
4136 | #define PCI_CONFIG_2_BAR2_SIZE_1G (15L<<0) | ||
4137 | #define PCI_CONFIG_2_BAR2_64ENA (1L<<4) | ||
4138 | |||
4139 | #define PCI_PM_DATA_A (0x410) | ||
4140 | #define PCI_PM_DATA_B (0x414) | ||
4141 | #define PCI_ID_VAL1 (0x434) | ||
4142 | #define PCI_ID_VAL2 (0x438) | ||
4143 | |||
4144 | #define MDIO_REG_BANK_CL73_IEEEB0 0x0 | ||
4145 | #define MDIO_CL73_IEEEB0_CL73_AN_CONTROL 0x0 | ||
4146 | #define MDIO_CL73_IEEEB0_CL73_AN_CONTROL_RESTART_AN 0x0200 | ||
4147 | #define MDIO_CL73_IEEEB0_CL73_AN_CONTROL_AN_EN 0x1000 | ||
4148 | #define MDIO_CL73_IEEEB0_CL73_AN_CONTROL_MAIN_RST 0x8000 | ||
4149 | |||
4150 | #define MDIO_REG_BANK_CL73_IEEEB1 0x10 | ||
4151 | #define MDIO_CL73_IEEEB1_AN_ADV2 0x01 | ||
4152 | #define MDIO_CL73_IEEEB1_AN_ADV2_ADVR_1000M 0x0000 | ||
4153 | #define MDIO_CL73_IEEEB1_AN_ADV2_ADVR_1000M_KX 0x0020 | ||
4154 | #define MDIO_CL73_IEEEB1_AN_ADV2_ADVR_10G_KX4 0x0040 | ||
4155 | #define MDIO_CL73_IEEEB1_AN_ADV2_ADVR_10G_KR 0x0080 | ||
4156 | |||
4157 | #define MDIO_REG_BANK_RX0 0x80b0 | ||
4158 | #define MDIO_RX0_RX_EQ_BOOST 0x1c | ||
4159 | #define MDIO_RX0_RX_EQ_BOOST_EQUALIZER_CTRL_MASK 0x7 | ||
4160 | #define MDIO_RX0_RX_EQ_BOOST_OFFSET_CTRL 0x10 | ||
4161 | |||
4162 | #define MDIO_REG_BANK_RX1 0x80c0 | ||
4163 | #define MDIO_RX1_RX_EQ_BOOST 0x1c | ||
4164 | #define MDIO_RX1_RX_EQ_BOOST_EQUALIZER_CTRL_MASK 0x7 | ||
4165 | #define MDIO_RX1_RX_EQ_BOOST_OFFSET_CTRL 0x10 | ||
4166 | |||
4167 | #define MDIO_REG_BANK_RX2 0x80d0 | ||
4168 | #define MDIO_RX2_RX_EQ_BOOST 0x1c | ||
4169 | #define MDIO_RX2_RX_EQ_BOOST_EQUALIZER_CTRL_MASK 0x7 | ||
4170 | #define MDIO_RX2_RX_EQ_BOOST_OFFSET_CTRL 0x10 | ||
4171 | |||
4172 | #define MDIO_REG_BANK_RX3 0x80e0 | ||
4173 | #define MDIO_RX3_RX_EQ_BOOST 0x1c | ||
4174 | #define MDIO_RX3_RX_EQ_BOOST_EQUALIZER_CTRL_MASK 0x7 | ||
4175 | #define MDIO_RX3_RX_EQ_BOOST_OFFSET_CTRL 0x10 | ||
4176 | |||
4177 | #define MDIO_REG_BANK_RX_ALL 0x80f0 | ||
4178 | #define MDIO_RX_ALL_RX_EQ_BOOST 0x1c | ||
4179 | #define MDIO_RX_ALL_RX_EQ_BOOST_EQUALIZER_CTRL_MASK 0x7 | ||
4180 | #define MDIO_RX_ALL_RX_EQ_BOOST_OFFSET_CTRL 0x10 | ||
4181 | |||
4182 | #define MDIO_REG_BANK_TX0 0x8060 | ||
4183 | #define MDIO_TX0_TX_DRIVER 0x17 | ||
4184 | #define MDIO_TX0_TX_DRIVER_PREEMPHASIS_MASK 0xf000 | ||
4185 | #define MDIO_TX0_TX_DRIVER_PREEMPHASIS_SHIFT 12 | ||
4186 | #define MDIO_TX0_TX_DRIVER_IDRIVER_MASK 0x0f00 | ||
4187 | #define MDIO_TX0_TX_DRIVER_IDRIVER_SHIFT 8 | ||
4188 | #define MDIO_TX0_TX_DRIVER_IPREDRIVER_MASK 0x00f0 | ||
4189 | #define MDIO_TX0_TX_DRIVER_IPREDRIVER_SHIFT 4 | ||
4190 | #define MDIO_TX0_TX_DRIVER_IFULLSPD_MASK 0x000e | ||
4191 | #define MDIO_TX0_TX_DRIVER_IFULLSPD_SHIFT 1 | ||
4192 | #define MDIO_TX0_TX_DRIVER_ICBUF1T 1 | ||
4193 | |||
4194 | #define MDIO_REG_BANK_XGXS_BLOCK0 0x8000 | ||
4195 | #define MDIO_BLOCK0_XGXS_CONTROL 0x10 | ||
4196 | |||
4197 | #define MDIO_REG_BANK_XGXS_BLOCK1 0x8010 | ||
4198 | #define MDIO_BLOCK1_LANE_CTRL0 0x15 | ||
4199 | #define MDIO_BLOCK1_LANE_CTRL1 0x16 | ||
4200 | #define MDIO_BLOCK1_LANE_CTRL2 0x17 | ||
4201 | #define MDIO_BLOCK1_LANE_PRBS 0x19 | ||
4202 | |||
4203 | #define MDIO_REG_BANK_XGXS_BLOCK2 0x8100 | ||
4204 | #define MDIO_XGXS_BLOCK2_RX_LN_SWAP 0x10 | ||
4205 | #define MDIO_XGXS_BLOCK2_RX_LN_SWAP_ENABLE 0x8000 | ||
4206 | #define MDIO_XGXS_BLOCK2_RX_LN_SWAP_FORCE_ENABLE 0x4000 | ||
4207 | #define MDIO_XGXS_BLOCK2_TX_LN_SWAP 0x11 | ||
4208 | #define MDIO_XGXS_BLOCK2_TX_LN_SWAP_ENABLE 0x8000 | ||
4209 | #define MDIO_XGXS_BLOCK2_TEST_MODE_LANE 0x15 | ||
4210 | |||
4211 | #define MDIO_REG_BANK_GP_STATUS 0x8120 | ||
4212 | #define MDIO_GP_STATUS_TOP_AN_STATUS1 0x1B | ||
4213 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_CL73_AUTONEG_COMPLETE 0x0001 | ||
4214 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_CL37_AUTONEG_COMPLETE 0x0002 | ||
4215 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_LINK_STATUS 0x0004 | ||
4216 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_DUPLEX_STATUS 0x0008 | ||
4217 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_CL73_MR_LP_NP_AN_ABLE 0x0010 | ||
4218 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_CL73_LP_NP_BAM_ABLE 0x0020 | ||
4219 | |||
4220 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_PAUSE_RSOLUTION_TXSIDE 0x0040 | ||
4221 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_PAUSE_RSOLUTION_RXSIDE 0x0080 | ||
4222 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_MASK 0x3f00 | ||
4223 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10M 0x0000 | ||
4224 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_100M 0x0100 | ||
4225 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_1G 0x0200 | ||
4226 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_2_5G 0x0300 | ||
4227 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_5G 0x0400 | ||
4228 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_6G 0x0500 | ||
4229 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_HIG 0x0600 | ||
4230 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_CX4 0x0700 | ||
4231 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_12G_HIG 0x0800 | ||
4232 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_12_5G 0x0900 | ||
4233 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_13G 0x0A00 | ||
4234 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_15G 0x0B00 | ||
4235 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_16G 0x0C00 | ||
4236 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_1G_KX 0x0D00 | ||
4237 | #define MDIO_GP_STATUS_TOP_AN_STATUS1_ACTUAL_SPEED_10G_KX4 0x0E00 | ||
4238 | |||
4239 | |||
4240 | #define MDIO_REG_BANK_10G_PARALLEL_DETECT 0x8130 | ||
4241 | #define MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_CONTROL 0x11 | ||
4242 | #define MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_CONTROL_PARDET10G_EN 0x1 | ||
4243 | #define MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_LINK 0x13 | ||
4244 | #define MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_LINK_CNT (0xb71<<1) | ||
4245 | |||
4246 | #define MDIO_REG_BANK_SERDES_DIGITAL 0x8300 | ||
4247 | #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1 0x10 | ||
4248 | #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_FIBER_MODE 0x0001 | ||
4249 | #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_TBI_IF 0x0002 | ||
4250 | #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_SIGNAL_DETECT_EN 0x0004 | ||
4251 | #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_INVERT_SIGNAL_DETECT 0x0008 | ||
4252 | #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_AUTODET 0x0010 | ||
4253 | #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL1_MSTR_MODE 0x0020 | ||
4254 | #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL2 0x11 | ||
4255 | #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL2_PRL_DT_EN 0x0001 | ||
4256 | #define MDIO_SERDES_DIGITAL_A_1000X_CONTROL2_AN_FST_TMR 0x0040 | ||
4257 | #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1 0x14 | ||
4258 | #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_DUPLEX 0x0004 | ||
4259 | #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_MASK 0x0018 | ||
4260 | #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_SHIFT 3 | ||
4261 | #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_2_5G 0x0018 | ||
4262 | #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_1G 0x0010 | ||
4263 | #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_100M 0x0008 | ||
4264 | #define MDIO_SERDES_DIGITAL_A_1000X_STATUS1_SPEED_10M 0x0000 | ||
4265 | #define MDIO_SERDES_DIGITAL_MISC1 0x18 | ||
4266 | #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_MASK 0xE000 | ||
4267 | #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_25M 0x0000 | ||
4268 | #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_100M 0x2000 | ||
4269 | #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_125M 0x4000 | ||
4270 | #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_156_25M 0x6000 | ||
4271 | #define MDIO_SERDES_DIGITAL_MISC1_REFCLK_SEL_187_5M 0x8000 | ||
4272 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_SEL 0x0010 | ||
4273 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_MASK 0x000f | ||
4274 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_2_5G 0x0000 | ||
4275 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_5G 0x0001 | ||
4276 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_6G 0x0002 | ||
4277 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_10G_HIG 0x0003 | ||
4278 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_10G_CX4 0x0004 | ||
4279 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_12G 0x0005 | ||
4280 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_12_5G 0x0006 | ||
4281 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_13G 0x0007 | ||
4282 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_15G 0x0008 | ||
4283 | #define MDIO_SERDES_DIGITAL_MISC1_FORCE_SPEED_16G 0x0009 | ||
4284 | |||
4285 | #define MDIO_REG_BANK_OVER_1G 0x8320 | ||
4286 | #define MDIO_OVER_1G_DIGCTL_3_4 0x14 | ||
4287 | #define MDIO_OVER_1G_DIGCTL_3_4_MP_ID_MASK 0xffe0 | ||
4288 | #define MDIO_OVER_1G_DIGCTL_3_4_MP_ID_SHIFT 5 | ||
4289 | #define MDIO_OVER_1G_UP1 0x19 | ||
4290 | #define MDIO_OVER_1G_UP1_2_5G 0x0001 | ||
4291 | #define MDIO_OVER_1G_UP1_5G 0x0002 | ||
4292 | #define MDIO_OVER_1G_UP1_6G 0x0004 | ||
4293 | #define MDIO_OVER_1G_UP1_10G 0x0010 | ||
4294 | #define MDIO_OVER_1G_UP1_10GH 0x0008 | ||
4295 | #define MDIO_OVER_1G_UP1_12G 0x0020 | ||
4296 | #define MDIO_OVER_1G_UP1_12_5G 0x0040 | ||
4297 | #define MDIO_OVER_1G_UP1_13G 0x0080 | ||
4298 | #define MDIO_OVER_1G_UP1_15G 0x0100 | ||
4299 | #define MDIO_OVER_1G_UP1_16G 0x0200 | ||
4300 | #define MDIO_OVER_1G_UP2 0x1A | ||
4301 | #define MDIO_OVER_1G_UP2_IPREDRIVER_MASK 0x0007 | ||
4302 | #define MDIO_OVER_1G_UP2_IDRIVER_MASK 0x0038 | ||
4303 | #define MDIO_OVER_1G_UP2_PREEMPHASIS_MASK 0x03C0 | ||
4304 | #define MDIO_OVER_1G_UP3 0x1B | ||
4305 | #define MDIO_OVER_1G_UP3_HIGIG2 0x0001 | ||
4306 | #define MDIO_OVER_1G_LP_UP1 0x1C | ||
4307 | #define MDIO_OVER_1G_LP_UP2 0x1D | ||
4308 | #define MDIO_OVER_1G_LP_UP2_MR_ADV_OVER_1G_MASK 0x03ff | ||
4309 | #define MDIO_OVER_1G_LP_UP2_PREEMPHASIS_MASK 0x0780 | ||
4310 | #define MDIO_OVER_1G_LP_UP2_PREEMPHASIS_SHIFT 7 | ||
4311 | #define MDIO_OVER_1G_LP_UP3 0x1E | ||
4312 | |||
4313 | #define MDIO_REG_BANK_BAM_NEXT_PAGE 0x8350 | ||
4314 | #define MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL 0x10 | ||
4315 | #define MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL_BAM_MODE 0x0001 | ||
4316 | #define MDIO_BAM_NEXT_PAGE_MP5_NEXT_PAGE_CTRL_TETON_AN 0x0002 | ||
4317 | |||
4318 | #define MDIO_REG_BANK_CL73_USERB0 0x8370 | ||
4319 | #define MDIO_CL73_USERB0_CL73_BAM_CTRL1 0x12 | ||
4320 | #define MDIO_CL73_USERB0_CL73_BAM_CTRL1_BAM_EN 0x8000 | ||
4321 | #define MDIO_CL73_USERB0_CL73_BAM_CTRL1_BAM_STATION_MNGR_EN 0x4000 | ||
4322 | #define MDIO_CL73_USERB0_CL73_BAM_CTRL1_BAM_NP_AFTER_BP_EN 0x2000 | ||
4323 | #define MDIO_CL73_USERB0_CL73_BAM_CTRL3 0x14 | ||
4324 | #define MDIO_CL73_USERB0_CL73_BAM_CTRL3_USE_CL73_HCD_MR 0x0001 | ||
4325 | |||
4326 | #define MDIO_REG_BANK_AER_BLOCK 0xFFD0 | ||
4327 | #define MDIO_AER_BLOCK_AER_REG 0x1E | ||
4328 | |||
4329 | #define MDIO_REG_BANK_COMBO_IEEE0 0xFFE0 | ||
4330 | #define MDIO_COMBO_IEEE0_MII_CONTROL 0x10 | ||
4331 | #define MDIO_COMBO_IEEO_MII_CONTROL_MAN_SGMII_SP_MASK 0x2040 | ||
4332 | #define MDIO_COMBO_IEEO_MII_CONTROL_MAN_SGMII_SP_10 0x0000 | ||
4333 | #define MDIO_COMBO_IEEO_MII_CONTROL_MAN_SGMII_SP_100 0x2000 | ||
4334 | #define MDIO_COMBO_IEEO_MII_CONTROL_MAN_SGMII_SP_1000 0x0040 | ||
4335 | #define MDIO_COMBO_IEEO_MII_CONTROL_FULL_DUPLEX 0x0100 | ||
4336 | #define MDIO_COMBO_IEEO_MII_CONTROL_RESTART_AN 0x0200 | ||
4337 | #define MDIO_COMBO_IEEO_MII_CONTROL_AN_EN 0x1000 | ||
4338 | #define MDIO_COMBO_IEEO_MII_CONTROL_LOOPBACK 0x4000 | ||
4339 | #define MDIO_COMBO_IEEO_MII_CONTROL_RESET 0x8000 | ||
4340 | #define MDIO_COMBO_IEEE0_MII_STATUS 0x11 | ||
4341 | #define MDIO_COMBO_IEEE0_MII_STATUS_LINK_PASS 0x0004 | ||
4342 | #define MDIO_COMBO_IEEE0_MII_STATUS_AUTONEG_COMPLETE 0x0020 | ||
4343 | #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV 0x14 | ||
4344 | #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_FULL_DUPLEX 0x0020 | ||
4345 | #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_HALF_DUPLEX 0x0040 | ||
4346 | #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_MASK 0x0180 | ||
4347 | #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_NONE 0x0000 | ||
4348 | #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_SYMMETRIC 0x0080 | ||
4349 | #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_ASYMMETRIC 0x0100 | ||
4350 | #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_PAUSE_BOTH 0x0180 | ||
4351 | #define MDIO_COMBO_IEEE0_AUTO_NEG_ADV_NEXT_PAGE 0x8000 | ||
4352 | #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1 0x15 | ||
4353 | #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_NEXT_PAGE 0x8000 | ||
4354 | #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_ACK 0x4000 | ||
4355 | #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_PAUSE_MASK 0x0180 | ||
4356 | #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_PAUSE_NONE\ | ||
4357 | 0x0000 | ||
4358 | #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_PAUSE_BOTH\ | ||
4359 | 0x0180 | ||
4360 | #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_HALF_DUP_CAP 0x0040 | ||
4361 | #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_FULL_DUP_CAP 0x0020 | ||
4362 | #define MDIO_COMBO_IEEE0_AUTO_NEG_LINK_PARTNER_ABILITY1_SGMII_MODE 0x0001 | ||
4363 | |||
4364 | |||
4365 | #define EXT_PHY_OPT_PMA_PMD_DEVAD 0x1 | ||
4366 | #define EXT_PHY_OPT_WIS_DEVAD 0x2 | ||
4367 | #define EXT_PHY_OPT_PCS_DEVAD 0x3 | ||
4368 | #define EXT_PHY_OPT_PHY_XS_DEVAD 0x4 | ||
4369 | #define EXT_PHY_OPT_CNTL 0x0 | ||
4370 | #define EXT_PHY_OPT_PMD_RX_SD 0xa | ||
4371 | #define EXT_PHY_OPT_PMD_MISC_CNTL 0xca0a | ||
4372 | #define EXT_PHY_OPT_PHY_IDENTIFIER 0xc800 | ||
4373 | #define EXT_PHY_OPT_PMD_DIGITAL_CNT 0xc808 | ||
4374 | #define EXT_PHY_OPT_PMD_DIGITAL_SATUS 0xc809 | ||
4375 | #define EXT_PHY_OPT_CMU_PLL_BYPASS 0xca09 | ||
4376 | #define EXT_PHY_OPT_LASI_CNTL 0x9002 | ||
4377 | #define EXT_PHY_OPT_RX_ALARM 0x9003 | ||
4378 | #define EXT_PHY_OPT_LASI_STATUS 0x9005 | ||
4379 | #define EXT_PHY_OPT_PCS_STATUS 0x0020 | ||
4380 | #define EXT_PHY_OPT_XGXS_LANE_STATUS 0x0018 | ||
4381 | |||
4382 | #define EXT_PHY_KR_PMA_PMD_DEVAD 0x1 | ||
4383 | #define EXT_PHY_KR_PCS_DEVAD 0x3 | ||
4384 | #define EXT_PHY_KR_AUTO_NEG_DEVAD 0x7 | ||
4385 | #define EXT_PHY_KR_CTRL 0x0000 | ||
4386 | #define EXT_PHY_KR_CTRL2 0x0007 | ||
4387 | #define EXT_PHY_KR_PCS_STATUS 0x0020 | ||
4388 | #define EXT_PHY_KR_PMD_CTRL 0x0096 | ||
4389 | #define EXT_PHY_KR_LASI_CNTL 0x9002 | ||
4390 | #define EXT_PHY_KR_LASI_STATUS 0x9005 | ||
4391 | #define EXT_PHY_KR_MISC_CTRL1 0xca85 | ||
4392 | #define EXT_PHY_KR_GEN_CTRL 0xca10 | ||
4393 | #define EXT_PHY_KR_ROM_CODE 0xca19 | ||
4394 | |||
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 1fbd0256e86b..f162d9c1226c 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -1943,6 +1943,7 @@ | |||
1943 | #define PCI_DEVICE_ID_NX2_5706 0x164a | 1943 | #define PCI_DEVICE_ID_NX2_5706 0x164a |
1944 | #define PCI_DEVICE_ID_NX2_5708 0x164c | 1944 | #define PCI_DEVICE_ID_NX2_5708 0x164c |
1945 | #define PCI_DEVICE_ID_TIGON3_5702FE 0x164d | 1945 | #define PCI_DEVICE_ID_TIGON3_5702FE 0x164d |
1946 | #define PCI_DEVICE_ID_NX2_57710 0x164e | ||
1946 | #define PCI_DEVICE_ID_TIGON3_5705 0x1653 | 1947 | #define PCI_DEVICE_ID_TIGON3_5705 0x1653 |
1947 | #define PCI_DEVICE_ID_TIGON3_5705_2 0x1654 | 1948 | #define PCI_DEVICE_ID_TIGON3_5705_2 0x1654 |
1948 | #define PCI_DEVICE_ID_TIGON3_5720 0x1658 | 1949 | #define PCI_DEVICE_ID_TIGON3_5720 0x1658 |