summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/dev/bce
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-10-09 22:42:09 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-10-10 09:06:58 +0200
commitbceabc95c1c85d793200446fa85f1ddc6313ea29 (patch)
tree973c8bd8deca9fd69913f2895cc91e0e6114d46c /freebsd/sys/dev/bce
parentAdd FreeBSD sources as a submodule (diff)
downloadrtems-libbsd-bceabc95c1c85d793200446fa85f1ddc6313ea29.tar.bz2
Move files to match FreeBSD layout
Diffstat (limited to 'freebsd/sys/dev/bce')
-rw-r--r--freebsd/sys/dev/bce/if_bce.c10847
-rw-r--r--freebsd/sys/dev/bce/if_bcefw.h14594
-rw-r--r--freebsd/sys/dev/bce/if_bcereg.h6796
3 files changed, 32237 insertions, 0 deletions
diff --git a/freebsd/sys/dev/bce/if_bce.c b/freebsd/sys/dev/bce/if_bce.c
new file mode 100644
index 00000000..646e6cbf
--- /dev/null
+++ b/freebsd/sys/dev/bce/if_bce.c
@@ -0,0 +1,10847 @@
+#include <freebsd/machine/rtems-bsd-config.h>
+
+/*-
+ * Copyright (c) 2006-2010 Broadcom Corporation
+ * David Christensen <davidch@broadcom.com>. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Broadcom Corporation nor the name of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written consent.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <freebsd/sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+/*
+ * The following controllers are supported by this driver:
+ * BCM5706C A2, A3
+ * BCM5706S A2, A3
+ * BCM5708C B1, B2
+ * BCM5708S B1, B2
+ * BCM5709C A1, C0
+ * BCM5709S A1, C0
+ * BCM5716C C0
+ * BCM5716S C0
+ *
+ * The following controllers are not supported by this driver:
+ * BCM5706C A0, A1 (pre-production)
+ * BCM5706S A0, A1 (pre-production)
+ * BCM5708C A0, B0 (pre-production)
+ * BCM5708S A0, B0 (pre-production)
+ * BCM5709C A0 B0, B1, B2 (pre-production)
+ * BCM5709S A0, B0, B1, B2 (pre-production)
+ */
+
+#include <freebsd/local/opt_bce.h>
+
+#include <freebsd/dev/bce/if_bcereg.h>
+#include <freebsd/dev/bce/if_bcefw.h>
+
+/****************************************************************************/
+/* BCE Debug Options */
+/****************************************************************************/
+#ifdef BCE_DEBUG
+ u32 bce_debug = BCE_WARN;
+
+ /* 0 = Never */
+ /* 1 = 1 in 2,147,483,648 */
+ /* 256 = 1 in 8,388,608 */
+ /* 2048 = 1 in 1,048,576 */
+ /* 65536 = 1 in 32,768 */
+ /* 1048576 = 1 in 2,048 */
+ /* 268435456 = 1 in 8 */
+ /* 536870912 = 1 in 4 */
+ /* 1073741824 = 1 in 2 */
+
+ /* Controls how often the l2_fhdr frame error check will fail. */
+ int l2fhdr_error_sim_control = 0;
+
+ /* Controls how often the unexpected attention check will fail. */
+ int unexpected_attention_sim_control = 0;
+
+ /* Controls how often to simulate an mbuf allocation failure. */
+ int mbuf_alloc_failed_sim_control = 0;
+
+ /* Controls how often to simulate a DMA mapping failure. */
+ int dma_map_addr_failed_sim_control = 0;
+
+ /* Controls how often to simulate a bootcode failure. */
+ int bootcode_running_failure_sim_control = 0;
+#endif
+
+/****************************************************************************/
+/* BCE Build Time Options */
+/****************************************************************************/
+/* #define BCE_NVRAM_WRITE_SUPPORT 1 */
+
+
+/****************************************************************************/
+/* PCI Device ID Table */
+/* */
+/* Used by bce_probe() to identify the devices supported by this driver. */
+/****************************************************************************/
+#define BCE_DEVDESC_MAX 64
+
+static struct bce_type bce_devs[] = {
+ /* BCM5706C Controllers and OEM boards. */
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5706, HP_VENDORID, 0x3101,
+ "HP NC370T Multifunction Gigabit Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5706, HP_VENDORID, 0x3106,
+ "HP NC370i Multifunction Gigabit Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5706, HP_VENDORID, 0x3070,
+ "HP NC380T PCIe DP Multifunc Gig Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5706, HP_VENDORID, 0x1709,
+ "HP NC371i Multifunction Gigabit Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5706, PCI_ANY_ID, PCI_ANY_ID,
+ "Broadcom NetXtreme II BCM5706 1000Base-T" },
+
+ /* BCM5706S controllers and OEM boards. */
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5706S, HP_VENDORID, 0x3102,
+ "HP NC370F Multifunction Gigabit Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5706S, PCI_ANY_ID, PCI_ANY_ID,
+ "Broadcom NetXtreme II BCM5706 1000Base-SX" },
+
+ /* BCM5708C controllers and OEM boards. */
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5708, HP_VENDORID, 0x7037,
+ "HP NC373T PCIe Multifunction Gig Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5708, HP_VENDORID, 0x7038,
+ "HP NC373i Multifunction Gigabit Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5708, HP_VENDORID, 0x7045,
+ "HP NC374m PCIe Multifunction Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5708, PCI_ANY_ID, PCI_ANY_ID,
+ "Broadcom NetXtreme II BCM5708 1000Base-T" },
+
+ /* BCM5708S controllers and OEM boards. */
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5708S, HP_VENDORID, 0x1706,
+ "HP NC373m Multifunction Gigabit Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5708S, HP_VENDORID, 0x703b,
+ "HP NC373i Multifunction Gigabit Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5708S, HP_VENDORID, 0x703d,
+ "HP NC373F PCIe Multifunc Giga Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5708S, PCI_ANY_ID, PCI_ANY_ID,
+ "Broadcom NetXtreme II BCM5708 1000Base-SX" },
+
+ /* BCM5709C controllers and OEM boards. */
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5709, HP_VENDORID, 0x7055,
+ "HP NC382i DP Multifunction Gigabit Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5709, HP_VENDORID, 0x7059,
+ "HP NC382T PCIe DP Multifunction Gigabit Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5709, PCI_ANY_ID, PCI_ANY_ID,
+ "Broadcom NetXtreme II BCM5709 1000Base-T" },
+
+ /* BCM5709S controllers and OEM boards. */
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5709S, HP_VENDORID, 0x171d,
+ "HP NC382m DP 1GbE Multifunction BL-c Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5709S, HP_VENDORID, 0x7056,
+ "HP NC382i DP Multifunction Gigabit Server Adapter" },
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5709S, PCI_ANY_ID, PCI_ANY_ID,
+ "Broadcom NetXtreme II BCM5709 1000Base-SX" },
+
+ /* BCM5716 controllers and OEM boards. */
+ { BRCM_VENDORID, BRCM_DEVICEID_BCM5716, PCI_ANY_ID, PCI_ANY_ID,
+ "Broadcom NetXtreme II BCM5716 1000Base-T" },
+
+ { 0, 0, 0, 0, NULL }
+};
+
+
+/****************************************************************************/
+/* Supported Flash NVRAM device data. */
+/****************************************************************************/
+static struct flash_spec flash_table[] =
+{
+#define BUFFERED_FLAGS (BCE_NV_BUFFERED | BCE_NV_TRANSLATE)
+#define NONBUFFERED_FLAGS (BCE_NV_WREN)
+
+ /* Slow EEPROM */
+ {0x00000000, 0x40830380, 0x009f0081, 0xa184a053, 0xaf000400,
+ BUFFERED_FLAGS, SEEPROM_PAGE_BITS, SEEPROM_PAGE_SIZE,
+ SEEPROM_BYTE_ADDR_MASK, SEEPROM_TOTAL_SIZE,
+ "EEPROM - slow"},
+ /* Expansion entry 0001 */
+ {0x08000002, 0x4b808201, 0x00050081, 0x03840253, 0xaf020406,
+ NONBUFFERED_FLAGS, SAIFUN_FLASH_PAGE_BITS, SAIFUN_FLASH_PAGE_SIZE,
+ SAIFUN_FLASH_BYTE_ADDR_MASK, 0,
+ "Entry 0001"},
+ /* Saifun SA25F010 (non-buffered flash) */
+ /* strap, cfg1, & write1 need updates */
+ {0x04000001, 0x47808201, 0x00050081, 0x03840253, 0xaf020406,
+ NONBUFFERED_FLAGS, SAIFUN_FLASH_PAGE_BITS, SAIFUN_FLASH_PAGE_SIZE,
+ SAIFUN_FLASH_BYTE_ADDR_MASK, SAIFUN_FLASH_BASE_TOTAL_SIZE*2,
+ "Non-buffered flash (128kB)"},
+ /* Saifun SA25F020 (non-buffered flash) */
+ /* strap, cfg1, & write1 need updates */
+ {0x0c000003, 0x4f808201, 0x00050081, 0x03840253, 0xaf020406,
+ NONBUFFERED_FLAGS, SAIFUN_FLASH_PAGE_BITS, SAIFUN_FLASH_PAGE_SIZE,
+ SAIFUN_FLASH_BYTE_ADDR_MASK, SAIFUN_FLASH_BASE_TOTAL_SIZE*4,
+ "Non-buffered flash (256kB)"},
+ /* Expansion entry 0100 */
+ {0x11000000, 0x53808201, 0x00050081, 0x03840253, 0xaf020406,
+ NONBUFFERED_FLAGS, SAIFUN_FLASH_PAGE_BITS, SAIFUN_FLASH_PAGE_SIZE,
+ SAIFUN_FLASH_BYTE_ADDR_MASK, 0,
+ "Entry 0100"},
+ /* Entry 0101: ST M45PE10 (non-buffered flash, TetonII B0) */
+ {0x19000002, 0x5b808201, 0x000500db, 0x03840253, 0xaf020406,
+ NONBUFFERED_FLAGS, ST_MICRO_FLASH_PAGE_BITS, ST_MICRO_FLASH_PAGE_SIZE,
+ ST_MICRO_FLASH_BYTE_ADDR_MASK, ST_MICRO_FLASH_BASE_TOTAL_SIZE*2,
+ "Entry 0101: ST M45PE10 (128kB non-bufferred)"},
+ /* Entry 0110: ST M45PE20 (non-buffered flash)*/
+ {0x15000001, 0x57808201, 0x000500db, 0x03840253, 0xaf020406,
+ NONBUFFERED_FLAGS, ST_MICRO_FLASH_PAGE_BITS, ST_MICRO_FLASH_PAGE_SIZE,
+ ST_MICRO_FLASH_BYTE_ADDR_MASK, ST_MICRO_FLASH_BASE_TOTAL_SIZE*4,
+ "Entry 0110: ST M45PE20 (256kB non-bufferred)"},
+ /* Saifun SA25F005 (non-buffered flash) */
+ /* strap, cfg1, & write1 need updates */
+ {0x1d000003, 0x5f808201, 0x00050081, 0x03840253, 0xaf020406,
+ NONBUFFERED_FLAGS, SAIFUN_FLASH_PAGE_BITS, SAIFUN_FLASH_PAGE_SIZE,
+ SAIFUN_FLASH_BYTE_ADDR_MASK, SAIFUN_FLASH_BASE_TOTAL_SIZE,
+ "Non-buffered flash (64kB)"},
+ /* Fast EEPROM */
+ {0x22000000, 0x62808380, 0x009f0081, 0xa184a053, 0xaf000400,
+ BUFFERED_FLAGS, SEEPROM_PAGE_BITS, SEEPROM_PAGE_SIZE,
+ SEEPROM_BYTE_ADDR_MASK, SEEPROM_TOTAL_SIZE,
+ "EEPROM - fast"},
+ /* Expansion entry 1001 */
+ {0x2a000002, 0x6b808201, 0x00050081, 0x03840253, 0xaf020406,
+ NONBUFFERED_FLAGS, SAIFUN_FLASH_PAGE_BITS, SAIFUN_FLASH_PAGE_SIZE,
+ SAIFUN_FLASH_BYTE_ADDR_MASK, 0,
+ "Entry 1001"},
+ /* Expansion entry 1010 */
+ {0x26000001, 0x67808201, 0x00050081, 0x03840253, 0xaf020406,
+ NONBUFFERED_FLAGS, SAIFUN_FLASH_PAGE_BITS, SAIFUN_FLASH_PAGE_SIZE,
+ SAIFUN_FLASH_BYTE_ADDR_MASK, 0,
+ "Entry 1010"},
+ /* ATMEL AT45DB011B (buffered flash) */
+ {0x2e000003, 0x6e808273, 0x00570081, 0x68848353, 0xaf000400,
+ BUFFERED_FLAGS, BUFFERED_FLASH_PAGE_BITS, BUFFERED_FLASH_PAGE_SIZE,
+ BUFFERED_FLASH_BYTE_ADDR_MASK, BUFFERED_FLASH_TOTAL_SIZE,
+ "Buffered flash (128kB)"},
+ /* Expansion entry 1100 */
+ {0x33000000, 0x73808201, 0x00050081, 0x03840253, 0xaf020406,
+ NONBUFFERED_FLAGS, SAIFUN_FLASH_PAGE_BITS, SAIFUN_FLASH_PAGE_SIZE,
+ SAIFUN_FLASH_BYTE_ADDR_MASK, 0,
+ "Entry 1100"},
+ /* Expansion entry 1101 */
+ {0x3b000002, 0x7b808201, 0x00050081, 0x03840253, 0xaf020406,
+ NONBUFFERED_FLAGS, SAIFUN_FLASH_PAGE_BITS, SAIFUN_FLASH_PAGE_SIZE,
+ SAIFUN_FLASH_BYTE_ADDR_MASK, 0,
+ "Entry 1101"},
+ /* Ateml Expansion entry 1110 */
+ {0x37000001, 0x76808273, 0x00570081, 0x68848353, 0xaf000400,
+ BUFFERED_FLAGS, BUFFERED_FLASH_PAGE_BITS, BUFFERED_FLASH_PAGE_SIZE,
+ BUFFERED_FLASH_BYTE_ADDR_MASK, 0,
+ "Entry 1110 (Atmel)"},
+ /* ATMEL AT45DB021B (buffered flash) */
+ {0x3f000003, 0x7e808273, 0x00570081, 0x68848353, 0xaf000400,
+ BUFFERED_FLAGS, BUFFERED_FLASH_PAGE_BITS, BUFFERED_FLASH_PAGE_SIZE,
+ BUFFERED_FLASH_BYTE_ADDR_MASK, BUFFERED_FLASH_TOTAL_SIZE*2,
+ "Buffered flash (256kB)"},
+};
+
+/*
+ * The BCM5709 controllers transparently handle the
+ * differences between Atmel 264 byte pages and all
+ * flash devices which use 256 byte pages, so no
+ * logical-to-physical mapping is required in the
+ * driver.
+ */
+static struct flash_spec flash_5709 = {
+ .flags = BCE_NV_BUFFERED,
+ .page_bits = BCM5709_FLASH_PAGE_BITS,
+ .page_size = BCM5709_FLASH_PAGE_SIZE,
+ .addr_mask = BCM5709_FLASH_BYTE_ADDR_MASK,
+ .total_size = BUFFERED_FLASH_TOTAL_SIZE * 2,
+ .name = "5709/5716 buffered flash (256kB)",
+};
+
+
+/****************************************************************************/
+/* FreeBSD device entry points. */
+/****************************************************************************/
+static int bce_probe (device_t);
+static int bce_attach (device_t);
+static int bce_detach (device_t);
+static int bce_shutdown (device_t);
+
+
+/****************************************************************************/
+/* BCE Debug Data Structure Dump Routines */
+/****************************************************************************/
+#ifdef BCE_DEBUG
+static u32 bce_reg_rd (struct bce_softc *, u32);
+static void bce_reg_wr (struct bce_softc *, u32, u32);
+static void bce_reg_wr16 (struct bce_softc *, u32, u16);
+static u32 bce_ctx_rd (struct bce_softc *, u32, u32);
+static void bce_dump_enet (struct bce_softc *, struct mbuf *);
+static void bce_dump_mbuf (struct bce_softc *, struct mbuf *);
+static void bce_dump_tx_mbuf_chain (struct bce_softc *, u16, int);
+static void bce_dump_rx_mbuf_chain (struct bce_softc *, u16, int);
+#ifdef BCE_JUMBO_HDRSPLIT
+static void bce_dump_pg_mbuf_chain (struct bce_softc *, u16, int);
+#endif
+static void bce_dump_txbd (struct bce_softc *,
+ int, struct tx_bd *);
+static void bce_dump_rxbd (struct bce_softc *,
+ int, struct rx_bd *);
+#ifdef BCE_JUMBO_HDRSPLIT
+static void bce_dump_pgbd (struct bce_softc *,
+ int, struct rx_bd *);
+#endif
+static void bce_dump_l2fhdr (struct bce_softc *,
+ int, struct l2_fhdr *);
+static void bce_dump_ctx (struct bce_softc *, u16);
+static void bce_dump_ftqs (struct bce_softc *);
+static void bce_dump_tx_chain (struct bce_softc *, u16, int);
+static void bce_dump_rx_bd_chain (struct bce_softc *, u16, int);
+#ifdef BCE_JUMBO_HDRSPLIT
+static void bce_dump_pg_chain (struct bce_softc *, u16, int);
+#endif
+static void bce_dump_status_block (struct bce_softc *);
+static void bce_dump_stats_block (struct bce_softc *);
+static void bce_dump_driver_state (struct bce_softc *);
+static void bce_dump_hw_state (struct bce_softc *);
+static void bce_dump_mq_regs (struct bce_softc *);
+static void bce_dump_bc_state (struct bce_softc *);
+static void bce_dump_txp_state (struct bce_softc *, int);
+static void bce_dump_rxp_state (struct bce_softc *, int);
+static void bce_dump_tpat_state (struct bce_softc *, int);
+static void bce_dump_cp_state (struct bce_softc *, int);
+static void bce_dump_com_state (struct bce_softc *, int);
+static void bce_dump_rv2p_state (struct bce_softc *);
+static void bce_breakpoint (struct bce_softc *);
+#endif
+
+
+/****************************************************************************/
+/* BCE Register/Memory Access Routines */
+/****************************************************************************/
+static u32 bce_reg_rd_ind (struct bce_softc *, u32);
+static void bce_reg_wr_ind (struct bce_softc *, u32, u32);
+static void bce_shmem_wr (struct bce_softc *, u32, u32);
+static u32 bce_shmem_rd (struct bce_softc *, u32);
+static void bce_ctx_wr (struct bce_softc *, u32, u32, u32);
+static int bce_miibus_read_reg (device_t, int, int);
+static int bce_miibus_write_reg (device_t, int, int, int);
+static void bce_miibus_statchg (device_t);
+
+
+/****************************************************************************/
+/* BCE NVRAM Access Routines */
+/****************************************************************************/
+static int bce_acquire_nvram_lock (struct bce_softc *);
+static int bce_release_nvram_lock (struct bce_softc *);
+static void bce_enable_nvram_access (struct bce_softc *);
+static void bce_disable_nvram_access (struct bce_softc *);
+static int bce_nvram_read_dword (struct bce_softc *, u32, u8 *, u32);
+static int bce_init_nvram (struct bce_softc *);
+static int bce_nvram_read (struct bce_softc *, u32, u8 *, int);
+static int bce_nvram_test (struct bce_softc *);
+#ifdef BCE_NVRAM_WRITE_SUPPORT
+static int bce_enable_nvram_write (struct bce_softc *);
+static void bce_disable_nvram_write (struct bce_softc *);
+static int bce_nvram_erase_page (struct bce_softc *, u32);
+static int bce_nvram_write_dword (struct bce_softc *, u32, u8 *, u32);
+static int bce_nvram_write (struct bce_softc *, u32, u8 *, int);
+#endif
+
+/****************************************************************************/
+/* */
+/****************************************************************************/
+static void bce_get_media (struct bce_softc *);
+static void bce_init_media (struct bce_softc *);
+static void bce_dma_map_addr (void *,
+ bus_dma_segment_t *, int, int);
+static int bce_dma_alloc (device_t);
+static void bce_dma_free (struct bce_softc *);
+static void bce_release_resources (struct bce_softc *);
+
+/****************************************************************************/
+/* BCE Firmware Synchronization and Load */
+/****************************************************************************/
+static int bce_fw_sync (struct bce_softc *, u32);
+static void bce_load_rv2p_fw (struct bce_softc *, u32 *, u32, u32);
+static void bce_load_cpu_fw (struct bce_softc *,
+ struct cpu_reg *, struct fw_info *);
+static void bce_start_cpu (struct bce_softc *, struct cpu_reg *);
+static void bce_halt_cpu (struct bce_softc *, struct cpu_reg *);
+static void bce_start_rxp_cpu (struct bce_softc *);
+static void bce_init_rxp_cpu (struct bce_softc *);
+static void bce_init_txp_cpu (struct bce_softc *);
+static void bce_init_tpat_cpu (struct bce_softc *);
+static void bce_init_cp_cpu (struct bce_softc *);
+static void bce_init_com_cpu (struct bce_softc *);
+static void bce_init_cpus (struct bce_softc *);
+
+static void bce_print_adapter_info (struct bce_softc *);
+static void bce_probe_pci_caps (device_t, struct bce_softc *);
+static void bce_stop (struct bce_softc *);
+static int bce_reset (struct bce_softc *, u32);
+static int bce_chipinit (struct bce_softc *);
+static int bce_blockinit (struct bce_softc *);
+
+static int bce_init_tx_chain (struct bce_softc *);
+static void bce_free_tx_chain (struct bce_softc *);
+
+static int bce_get_rx_buf (struct bce_softc *,
+ struct mbuf *, u16 *, u16 *, u32 *);
+static int bce_init_rx_chain (struct bce_softc *);
+static void bce_fill_rx_chain (struct bce_softc *);
+static void bce_free_rx_chain (struct bce_softc *);
+
+#ifdef BCE_JUMBO_HDRSPLIT
+static int bce_get_pg_buf (struct bce_softc *,
+ struct mbuf *, u16 *, u16 *);
+static int bce_init_pg_chain (struct bce_softc *);
+static void bce_fill_pg_chain (struct bce_softc *);
+static void bce_free_pg_chain (struct bce_softc *);
+#endif
+
+static struct mbuf *bce_tso_setup (struct bce_softc *,
+ struct mbuf **, u16 *);
+static int bce_tx_encap (struct bce_softc *, struct mbuf **);
+static void bce_start_locked (struct ifnet *);
+static void bce_start (struct ifnet *);
+static int bce_ioctl (struct ifnet *, u_long, caddr_t);
+static void bce_watchdog (struct bce_softc *);
+static int bce_ifmedia_upd (struct ifnet *);
+static int bce_ifmedia_upd_locked (struct ifnet *);
+static void bce_ifmedia_sts (struct ifnet *, struct ifmediareq *);
+static void bce_init_locked (struct bce_softc *);
+static void bce_init (void *);
+static void bce_mgmt_init_locked (struct bce_softc *sc);
+
+static int bce_init_ctx (struct bce_softc *);
+static void bce_get_mac_addr (struct bce_softc *);
+static void bce_set_mac_addr (struct bce_softc *);
+static void bce_phy_intr (struct bce_softc *);
+static inline u16 bce_get_hw_rx_cons (struct bce_softc *);
+static void bce_rx_intr (struct bce_softc *);
+static void bce_tx_intr (struct bce_softc *);
+static void bce_disable_intr (struct bce_softc *);
+static void bce_enable_intr (struct bce_softc *, int);
+
+static void bce_intr (void *);
+static void bce_set_rx_mode (struct bce_softc *);
+static void bce_stats_update (struct bce_softc *);
+static void bce_tick (void *);
+static void bce_pulse (void *);
+static void bce_add_sysctls (struct bce_softc *);
+
+
+/****************************************************************************/
+/* FreeBSD device dispatch table. */
+/****************************************************************************/
+static device_method_t bce_methods[] = {
+ /* Device interface (device_if.h) */
+ DEVMETHOD(device_probe, bce_probe),
+ DEVMETHOD(device_attach, bce_attach),
+ DEVMETHOD(device_detach, bce_detach),
+ DEVMETHOD(device_shutdown, bce_shutdown),
+/* Supported by device interface but not used here. */
+/* DEVMETHOD(device_identify, bce_identify), */
+/* DEVMETHOD(device_suspend, bce_suspend), */
+/* DEVMETHOD(device_resume, bce_resume), */
+/* DEVMETHOD(device_quiesce, bce_quiesce), */
+
+ /* Bus interface (bus_if.h) */
+ DEVMETHOD(bus_print_child, bus_generic_print_child),
+ DEVMETHOD(bus_driver_added, bus_generic_driver_added),
+
+ /* MII interface (miibus_if.h) */
+ DEVMETHOD(miibus_readreg, bce_miibus_read_reg),
+ DEVMETHOD(miibus_writereg, bce_miibus_write_reg),
+ DEVMETHOD(miibus_statchg, bce_miibus_statchg),
+/* Supported by MII interface but not used here. */
+/* DEVMETHOD(miibus_linkchg, bce_miibus_linkchg), */
+/* DEVMETHOD(miibus_mediainit, bce_miibus_mediainit), */
+
+ { 0, 0 }
+};
+
+static driver_t bce_driver = {
+ "bce",
+ bce_methods,
+ sizeof(struct bce_softc)
+};
+
+static devclass_t bce_devclass;
+
+MODULE_DEPEND(bce, pci, 1, 1, 1);
+MODULE_DEPEND(bce, ether, 1, 1, 1);
+MODULE_DEPEND(bce, miibus, 1, 1, 1);
+
+DRIVER_MODULE(bce, pci, bce_driver, bce_devclass, 0, 0);
+DRIVER_MODULE(miibus, bce, miibus_driver, miibus_devclass, 0, 0);
+
+
+/****************************************************************************/
+/* Tunable device values */
+/****************************************************************************/
+SYSCTL_NODE(_hw, OID_AUTO, bce, CTLFLAG_RD, 0, "bce driver parameters");
+
+/* Allowable values are TRUE or FALSE */
+static int bce_tso_enable = TRUE;
+TUNABLE_INT("hw.bce.tso_enable", &bce_tso_enable);
+SYSCTL_UINT(_hw_bce, OID_AUTO, tso_enable, CTLFLAG_RDTUN, &bce_tso_enable, 0,
+"TSO Enable/Disable");
+
+/* Allowable values are 0 (IRQ), 1 (MSI/IRQ), and 2 (MSI-X/MSI/IRQ) */
+/* ToDo: Add MSI-X support. */
+static int bce_msi_enable = 1;
+TUNABLE_INT("hw.bce.msi_enable", &bce_msi_enable);
+SYSCTL_UINT(_hw_bce, OID_AUTO, msi_enable, CTLFLAG_RDTUN, &bce_msi_enable, 0,
+"MSI-X|MSI|INTx selector");
+
+/* ToDo: Add tunable to enable/disable strict MTU handling. */
+/* Currently allows "loose" RX MTU checking (i.e. sets the */
+/* H/W RX MTU to the size of the largest receive buffer, or */
+/* 2048 bytes). This will cause a UNH failure but is more */
+/* desireable from a functional perspective. */
+
+
+/****************************************************************************/
+/* Device probe function. */
+/* */
+/* Compares the device to the driver's list of supported devices and */
+/* reports back to the OS whether this is the right driver for the device. */
+/* */
+/* Returns: */
+/* BUS_PROBE_DEFAULT on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_probe(device_t dev)
+{
+ struct bce_type *t;
+ struct bce_softc *sc;
+ char *descbuf;
+ u16 vid = 0, did = 0, svid = 0, sdid = 0;
+
+ t = bce_devs;
+
+ sc = device_get_softc(dev);
+ bzero(sc, sizeof(struct bce_softc));
+ sc->bce_unit = device_get_unit(dev);
+ sc->bce_dev = dev;
+
+ /* Get the data for the device to be probed. */
+ vid = pci_get_vendor(dev);
+ did = pci_get_device(dev);
+ svid = pci_get_subvendor(dev);
+ sdid = pci_get_subdevice(dev);
+
+ DBPRINT(sc, BCE_EXTREME_LOAD,
+ "%s(); VID = 0x%04X, DID = 0x%04X, SVID = 0x%04X, "
+ "SDID = 0x%04X\n", __FUNCTION__, vid, did, svid, sdid);
+
+ /* Look through the list of known devices for a match. */
+ while(t->bce_name != NULL) {
+
+ if ((vid == t->bce_vid) && (did == t->bce_did) &&
+ ((svid == t->bce_svid) || (t->bce_svid == PCI_ANY_ID)) &&
+ ((sdid == t->bce_sdid) || (t->bce_sdid == PCI_ANY_ID))) {
+
+ descbuf = malloc(BCE_DEVDESC_MAX, M_TEMP, M_NOWAIT);
+
+ if (descbuf == NULL)
+ return(ENOMEM);
+
+ /* Print out the device identity. */
+ snprintf(descbuf, BCE_DEVDESC_MAX, "%s (%c%d)",
+ t->bce_name, (((pci_read_config(dev,
+ PCIR_REVID, 4) & 0xf0) >> 4) + 'A'),
+ (pci_read_config(dev, PCIR_REVID, 4) & 0xf));
+
+ device_set_desc_copy(dev, descbuf);
+ free(descbuf, M_TEMP);
+ return(BUS_PROBE_DEFAULT);
+ }
+ t++;
+ }
+
+ return(ENXIO);
+}
+
+
+/****************************************************************************/
+/* PCI Capabilities Probe Function. */
+/* */
+/* Walks the PCI capabiites list for the device to find what features are */
+/* supported. */
+/* */
+/* Returns: */
+/* None. */
+/****************************************************************************/
+static void
+bce_print_adapter_info(struct bce_softc *sc)
+{
+ int i = 0;
+
+ DBENTER(BCE_VERBOSE_LOAD);
+
+ if (bootverbose) {
+ BCE_PRINTF("ASIC (0x%08X); ", sc->bce_chipid);
+ printf("Rev (%c%d); ", ((BCE_CHIP_ID(sc) & 0xf000) >>
+ 12) + 'A', ((BCE_CHIP_ID(sc) & 0x0ff0) >> 4));
+
+
+ /* Bus info. */
+ if (sc->bce_flags & BCE_PCIE_FLAG) {
+ printf("Bus (PCIe x%d, ", sc->link_width);
+ switch (sc->link_speed) {
+ case 1: printf("2.5Gbps); "); break;
+ case 2: printf("5Gbps); "); break;
+ default: printf("Unknown link speed); ");
+ }
+ } else {
+ printf("Bus (PCI%s, %s, %dMHz); ",
+ ((sc->bce_flags & BCE_PCIX_FLAG) ? "-X" : ""),
+ ((sc->bce_flags & BCE_PCI_32BIT_FLAG) ?
+ "32-bit" : "64-bit"), sc->bus_speed_mhz);
+ }
+
+ /* Firmware version and device features. */
+ printf("B/C (%s); Flags (", sc->bce_bc_ver);
+
+ #ifdef BCE_JUMBO_HDRSPLIT
+ printf("SPLT");
+ i++;
+ #endif
+
+ if (sc->bce_flags & BCE_USING_MSI_FLAG) {
+ if (i > 0) printf("|");
+ printf("MSI"); i++;
+ }
+
+ if (sc->bce_flags & BCE_USING_MSIX_FLAG) {
+ if (i > 0) printf("|");
+ printf("MSI-X"); i++;
+ }
+
+ if (sc->bce_phy_flags & BCE_PHY_2_5G_CAPABLE_FLAG) {
+ if (i > 0) printf("|");
+ printf("2.5G"); i++;
+ }
+
+ if (sc->bce_flags & BCE_MFW_ENABLE_FLAG) {
+ if (i > 0) printf("|");
+ printf("MFW); MFW (%s)\n", sc->bce_mfw_ver);
+ } else {
+ printf(")\n");
+ }
+ }
+
+ DBEXIT(BCE_VERBOSE_LOAD);
+}
+
+
+/****************************************************************************/
+/* PCI Capabilities Probe Function. */
+/* */
+/* Walks the PCI capabiites list for the device to find what features are */
+/* supported. */
+/* */
+/* Returns: */
+/* None. */
+/****************************************************************************/
+static void
+bce_probe_pci_caps(device_t dev, struct bce_softc *sc)
+{
+ u32 reg;
+
+ DBENTER(BCE_VERBOSE_LOAD);
+
+ /* Check if PCI-X capability is enabled. */
+ if (pci_find_extcap(dev, PCIY_PCIX, &reg) == 0) {
+ if (reg != 0)
+ sc->bce_cap_flags |= BCE_PCIX_CAPABLE_FLAG;
+ }
+
+ /* Check if PCIe capability is enabled. */
+ if (pci_find_extcap(dev, PCIY_EXPRESS, &reg) == 0) {
+ if (reg != 0) {
+ u16 link_status = pci_read_config(dev, reg + 0x12, 2);
+ DBPRINT(sc, BCE_INFO_LOAD, "PCIe link_status = "
+ "0x%08X\n", link_status);
+ sc->link_speed = link_status & 0xf;
+ sc->link_width = (link_status >> 4) & 0x3f;
+ sc->bce_cap_flags |= BCE_PCIE_CAPABLE_FLAG;
+ sc->bce_flags |= BCE_PCIE_FLAG;
+ }
+ }
+
+ /* Check if MSI capability is enabled. */
+ if (pci_find_extcap(dev, PCIY_MSI, &reg) == 0) {
+ if (reg != 0)
+ sc->bce_cap_flags |= BCE_MSI_CAPABLE_FLAG;
+ }
+
+ /* Check if MSI-X capability is enabled. */
+ if (pci_find_extcap(dev, PCIY_MSIX, &reg) == 0) {
+ if (reg != 0)
+ sc->bce_cap_flags |= BCE_MSIX_CAPABLE_FLAG;
+ }
+
+ DBEXIT(BCE_VERBOSE_LOAD);
+}
+
+
+/****************************************************************************/
+/* Device attach function. */
+/* */
+/* Allocates device resources, performs secondary chip identification, */
+/* resets and initializes the hardware, and initializes driver instance */
+/* variables. */
+/* */
+/* Returns: */
+/* 0 on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_attach(device_t dev)
+{
+ struct bce_softc *sc;
+ struct ifnet *ifp;
+ u32 val;
+ int error, rid, rc = 0;
+
+ sc = device_get_softc(dev);
+ sc->bce_dev = dev;
+
+ DBENTER(BCE_VERBOSE_LOAD | BCE_VERBOSE_RESET);
+
+ sc->bce_unit = device_get_unit(dev);
+
+ /* Set initial device and PHY flags */
+ sc->bce_flags = 0;
+ sc->bce_phy_flags = 0;
+
+ pci_enable_busmaster(dev);
+
+ /* Allocate PCI memory resources. */
+ rid = PCIR_BAR(0);
+ sc->bce_res_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
+ &rid, RF_ACTIVE);
+
+ if (sc->bce_res_mem == NULL) {
+ BCE_PRINTF("%s(%d): PCI memory allocation failed\n",
+ __FILE__, __LINE__);
+ rc = ENXIO;
+ goto bce_attach_fail;
+ }
+
+ /* Get various resource handles. */
+ sc->bce_btag = rman_get_bustag(sc->bce_res_mem);
+ sc->bce_bhandle = rman_get_bushandle(sc->bce_res_mem);
+ sc->bce_vhandle = (vm_offset_t) rman_get_virtual(sc->bce_res_mem);
+
+ bce_probe_pci_caps(dev, sc);
+
+ rid = 1;
+#if 0
+ /* Try allocating MSI-X interrupts. */
+ if ((sc->bce_cap_flags & BCE_MSIX_CAPABLE_FLAG) &&
+ (bce_msi_enable >= 2) &&
+ ((sc->bce_res_irq = bus_alloc_resource_any(dev, SYS_RES_MEMORY,
+ &rid, RF_ACTIVE)) != NULL)) {
+
+ msi_needed = sc->bce_msi_count = 1;
+
+ if (((error = pci_alloc_msix(dev, &sc->bce_msi_count)) != 0) ||
+ (sc->bce_msi_count != msi_needed)) {
+ BCE_PRINTF("%s(%d): MSI-X allocation failed! Requested = %d,"
+ "Received = %d, error = %d\n", __FILE__, __LINE__,
+ msi_needed, sc->bce_msi_count, error);
+ sc->bce_msi_count = 0;
+ pci_release_msi(dev);
+ bus_release_resource(dev, SYS_RES_MEMORY, rid,
+ sc->bce_res_irq);
+ sc->bce_res_irq = NULL;
+ } else {
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): Using MSI-X interrupt.\n",
+ __FUNCTION__);
+ sc->bce_flags |= BCE_USING_MSIX_FLAG;
+ sc->bce_intr = bce_intr;
+ }
+ }
+#endif
+
+ /* Try allocating a MSI interrupt. */
+ if ((sc->bce_cap_flags & BCE_MSI_CAPABLE_FLAG) &&
+ (bce_msi_enable >= 1) && (sc->bce_msi_count == 0)) {
+ sc->bce_msi_count = 1;
+ if ((error = pci_alloc_msi(dev, &sc->bce_msi_count)) != 0) {
+ BCE_PRINTF("%s(%d): MSI allocation failed! "
+ "error = %d\n", __FILE__, __LINE__, error);
+ sc->bce_msi_count = 0;
+ pci_release_msi(dev);
+ } else {
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): Using MSI "
+ "interrupt.\n", __FUNCTION__);
+ sc->bce_flags |= BCE_USING_MSI_FLAG;
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716))
+ sc->bce_flags |= BCE_ONE_SHOT_MSI_FLAG;
+ sc->bce_irq_rid = 1;
+ sc->bce_intr = bce_intr;
+ }
+ }
+
+ /* Try allocating a legacy interrupt. */
+ if (sc->bce_msi_count == 0) {
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): Using INTx interrupt.\n",
+ __FUNCTION__);
+ rid = 0;
+ sc->bce_intr = bce_intr;
+ }
+
+ sc->bce_res_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ,
+ &rid, RF_SHAREABLE | RF_ACTIVE);
+
+ sc->bce_irq_rid = rid;
+
+ /* Report any IRQ allocation errors. */
+ if (sc->bce_res_irq == NULL) {
+ BCE_PRINTF("%s(%d): PCI map interrupt failed!\n",
+ __FILE__, __LINE__);
+ rc = ENXIO;
+ goto bce_attach_fail;
+ }
+
+ /* Initialize mutex for the current device instance. */
+ BCE_LOCK_INIT(sc, device_get_nameunit(dev));
+
+ /*
+ * Configure byte swap and enable indirect register access.
+ * Rely on CPU to do target byte swapping on big endian systems.
+ * Access to registers outside of PCI configurtion space are not
+ * valid until this is done.
+ */
+ pci_write_config(dev, BCE_PCICFG_MISC_CONFIG,
+ BCE_PCICFG_MISC_CONFIG_REG_WINDOW_ENA |
+ BCE_PCICFG_MISC_CONFIG_TARGET_MB_WORD_SWAP, 4);
+
+ /* Save ASIC revsion info. */
+ sc->bce_chipid = REG_RD(sc, BCE_MISC_ID);
+
+ /* Weed out any non-production controller revisions. */
+ switch(BCE_CHIP_ID(sc)) {
+ case BCE_CHIP_ID_5706_A0:
+ case BCE_CHIP_ID_5706_A1:
+ case BCE_CHIP_ID_5708_A0:
+ case BCE_CHIP_ID_5708_B0:
+ case BCE_CHIP_ID_5709_A0:
+ case BCE_CHIP_ID_5709_B0:
+ case BCE_CHIP_ID_5709_B1:
+ case BCE_CHIP_ID_5709_B2:
+ BCE_PRINTF("%s(%d): Unsupported controller "
+ "revision (%c%d)!\n", __FILE__, __LINE__,
+ (((pci_read_config(dev, PCIR_REVID, 4) &
+ 0xf0) >> 4) + 'A'), (pci_read_config(dev,
+ PCIR_REVID, 4) & 0xf));
+ rc = ENODEV;
+ goto bce_attach_fail;
+ }
+
+ /*
+ * The embedded PCIe to PCI-X bridge (EPB)
+ * in the 5708 cannot address memory above
+ * 40 bits (E7_5708CB1_23043 & E6_5708SB1_23043).
+ */
+ if (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5708)
+ sc->max_bus_addr = BCE_BUS_SPACE_MAXADDR;
+ else
+ sc->max_bus_addr = BUS_SPACE_MAXADDR;
+
+ /*
+ * Find the base address for shared memory access.
+ * Newer versions of bootcode use a signature and offset
+ * while older versions use a fixed address.
+ */
+ val = REG_RD_IND(sc, BCE_SHM_HDR_SIGNATURE);
+ if ((val & BCE_SHM_HDR_SIGNATURE_SIG_MASK) == BCE_SHM_HDR_SIGNATURE_SIG)
+ /* Multi-port devices use different offsets in shared memory. */
+ sc->bce_shmem_base = REG_RD_IND(sc, BCE_SHM_HDR_ADDR_0 +
+ (pci_get_function(sc->bce_dev) << 2));
+ else
+ sc->bce_shmem_base = HOST_VIEW_SHMEM_BASE;
+
+ DBPRINT(sc, BCE_VERBOSE_FIRMWARE, "%s(): bce_shmem_base = 0x%08X\n",
+ __FUNCTION__, sc->bce_shmem_base);
+
+ /* Fetch the bootcode revision. */
+ val = bce_shmem_rd(sc, BCE_DEV_INFO_BC_REV);
+ for (int i = 0, j = 0; i < 3; i++) {
+ u8 num;
+
+ num = (u8) (val >> (24 - (i * 8)));
+ for (int k = 100, skip0 = 1; k >= 1; num %= k, k /= 10) {
+ if (num >= k || !skip0 || k == 1) {
+ sc->bce_bc_ver[j++] = (num / k) + '0';
+ skip0 = 0;
+ }
+ }
+
+ if (i != 2)
+ sc->bce_bc_ver[j++] = '.';
+ }
+
+ /* Check if any management firwmare is enabled. */
+ val = bce_shmem_rd(sc, BCE_PORT_FEATURE);
+ if (val & BCE_PORT_FEATURE_ASF_ENABLED) {
+ sc->bce_flags |= BCE_MFW_ENABLE_FLAG;
+
+ /* Allow time for firmware to enter the running state. */
+ for (int i = 0; i < 30; i++) {
+ val = bce_shmem_rd(sc, BCE_BC_STATE_CONDITION);
+ if (val & BCE_CONDITION_MFW_RUN_MASK)
+ break;
+ DELAY(10000);
+ }
+
+ /* Check if management firmware is running. */
+ val = bce_shmem_rd(sc, BCE_BC_STATE_CONDITION);
+ val &= BCE_CONDITION_MFW_RUN_MASK;
+ if ((val != BCE_CONDITION_MFW_RUN_UNKNOWN) &&
+ (val != BCE_CONDITION_MFW_RUN_NONE)) {
+ u32 addr = bce_shmem_rd(sc, BCE_MFW_VER_PTR);
+ int i = 0;
+
+ /* Read the management firmware version string. */
+ for (int j = 0; j < 3; j++) {
+ val = bce_reg_rd_ind(sc, addr + j * 4);
+ val = bswap32(val);
+ memcpy(&sc->bce_mfw_ver[i], &val, 4);
+ i += 4;
+ }
+ } else {
+ /* May cause firmware synchronization timeouts. */
+ BCE_PRINTF("%s(%d): Management firmware enabled "
+ "but not running!\n", __FILE__, __LINE__);
+ strcpy(sc->bce_mfw_ver, "NOT RUNNING!");
+
+ /* ToDo: Any action the driver should take? */
+ }
+ }
+
+ /* Get PCI bus information (speed and type). */
+ val = REG_RD(sc, BCE_PCICFG_MISC_STATUS);
+ if (val & BCE_PCICFG_MISC_STATUS_PCIX_DET) {
+ u32 clkreg;
+
+ sc->bce_flags |= BCE_PCIX_FLAG;
+
+ clkreg = REG_RD(sc, BCE_PCICFG_PCI_CLOCK_CONTROL_BITS);
+
+ clkreg &= BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET;
+ switch (clkreg) {
+ case BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_133MHZ:
+ sc->bus_speed_mhz = 133;
+ break;
+
+ case BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_95MHZ:
+ sc->bus_speed_mhz = 100;
+ break;
+
+ case BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_66MHZ:
+ case BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_80MHZ:
+ sc->bus_speed_mhz = 66;
+ break;
+
+ case BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_48MHZ:
+ case BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_55MHZ:
+ sc->bus_speed_mhz = 50;
+ break;
+
+ case BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_LOW:
+ case BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_32MHZ:
+ case BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_38MHZ:
+ sc->bus_speed_mhz = 33;
+ break;
+ }
+ } else {
+ if (val & BCE_PCICFG_MISC_STATUS_M66EN)
+ sc->bus_speed_mhz = 66;
+ else
+ sc->bus_speed_mhz = 33;
+ }
+
+ if (val & BCE_PCICFG_MISC_STATUS_32BIT_DET)
+ sc->bce_flags |= BCE_PCI_32BIT_FLAG;
+
+ /* Reset controller and announce to bootcode that driver is present. */
+ if (bce_reset(sc, BCE_DRV_MSG_CODE_RESET)) {
+ BCE_PRINTF("%s(%d): Controller reset failed!\n",
+ __FILE__, __LINE__);
+ rc = ENXIO;
+ goto bce_attach_fail;
+ }
+
+ /* Initialize the controller. */
+ if (bce_chipinit(sc)) {
+ BCE_PRINTF("%s(%d): Controller initialization failed!\n",
+ __FILE__, __LINE__);
+ rc = ENXIO;
+ goto bce_attach_fail;
+ }
+
+ /* Perform NVRAM test. */
+ if (bce_nvram_test(sc)) {
+ BCE_PRINTF("%s(%d): NVRAM test failed!\n",
+ __FILE__, __LINE__);
+ rc = ENXIO;
+ goto bce_attach_fail;
+ }
+
+ /* Fetch the permanent Ethernet MAC address. */
+ bce_get_mac_addr(sc);
+
+ /*
+ * Trip points control how many BDs
+ * should be ready before generating an
+ * interrupt while ticks control how long
+ * a BD can sit in the chain before
+ * generating an interrupt. Set the default
+ * values for the RX and TX chains.
+ */
+
+#ifdef BCE_DEBUG
+ /* Force more frequent interrupts. */
+ sc->bce_tx_quick_cons_trip_int = 1;
+ sc->bce_tx_quick_cons_trip = 1;
+ sc->bce_tx_ticks_int = 0;
+ sc->bce_tx_ticks = 0;
+
+ sc->bce_rx_quick_cons_trip_int = 1;
+ sc->bce_rx_quick_cons_trip = 1;
+ sc->bce_rx_ticks_int = 0;
+ sc->bce_rx_ticks = 0;
+#else
+ /* Improve throughput at the expense of increased latency. */
+ sc->bce_tx_quick_cons_trip_int = 20;
+ sc->bce_tx_quick_cons_trip = 20;
+ sc->bce_tx_ticks_int = 80;
+ sc->bce_tx_ticks = 80;
+
+ sc->bce_rx_quick_cons_trip_int = 6;
+ sc->bce_rx_quick_cons_trip = 6;
+ sc->bce_rx_ticks_int = 18;
+ sc->bce_rx_ticks = 18;
+#endif
+
+ /* Not used for L2. */
+ sc->bce_comp_prod_trip_int = 0;
+ sc->bce_comp_prod_trip = 0;
+ sc->bce_com_ticks_int = 0;
+ sc->bce_com_ticks = 0;
+ sc->bce_cmd_ticks_int = 0;
+ sc->bce_cmd_ticks = 0;
+
+ /* Update statistics once every second. */
+ sc->bce_stats_ticks = 1000000 & 0xffff00;
+
+ /* Find the media type for the adapter. */
+ bce_get_media(sc);
+
+ /* Store data needed by PHY driver for backplane applications */
+ sc->bce_shared_hw_cfg = bce_shmem_rd(sc, BCE_SHARED_HW_CFG_CONFIG);
+ sc->bce_port_hw_cfg = bce_shmem_rd(sc, BCE_PORT_HW_CFG_CONFIG);
+
+ /* Allocate DMA memory resources. */
+ if (bce_dma_alloc(dev)) {
+ BCE_PRINTF("%s(%d): DMA resource allocation failed!\n",
+ __FILE__, __LINE__);
+ rc = ENXIO;
+ goto bce_attach_fail;
+ }
+
+ /* Allocate an ifnet structure. */
+ ifp = sc->bce_ifp = if_alloc(IFT_ETHER);
+ if (ifp == NULL) {
+ BCE_PRINTF("%s(%d): Interface allocation failed!\n",
+ __FILE__, __LINE__);
+ rc = ENXIO;
+ goto bce_attach_fail;
+ }
+
+ /* Initialize the ifnet interface. */
+ ifp->if_softc = sc;
+ if_initname(ifp, device_get_name(dev), device_get_unit(dev));
+ ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
+ ifp->if_ioctl = bce_ioctl;
+ ifp->if_start = bce_start;
+ ifp->if_init = bce_init;
+ ifp->if_mtu = ETHERMTU;
+
+ if (bce_tso_enable) {
+ ifp->if_hwassist = BCE_IF_HWASSIST | CSUM_TSO;
+ ifp->if_capabilities = BCE_IF_CAPABILITIES | IFCAP_TSO4 |
+ IFCAP_VLAN_HWTSO;
+ } else {
+ ifp->if_hwassist = BCE_IF_HWASSIST;
+ ifp->if_capabilities = BCE_IF_CAPABILITIES;
+ }
+
+ ifp->if_capenable = ifp->if_capabilities;
+
+ /*
+ * Assume standard mbuf sizes for buffer allocation.
+ * This may change later if the MTU size is set to
+ * something other than 1500.
+ */
+#ifdef BCE_JUMBO_HDRSPLIT
+ sc->rx_bd_mbuf_alloc_size = MHLEN;
+ /* Make sure offset is 16 byte aligned for hardware. */
+ sc->rx_bd_mbuf_align_pad =
+ roundup2((MSIZE - MHLEN), 16) - (MSIZE - MHLEN);
+ sc->rx_bd_mbuf_data_len = sc->rx_bd_mbuf_alloc_size -
+ sc->rx_bd_mbuf_align_pad;
+ sc->pg_bd_mbuf_alloc_size = MCLBYTES;
+#else
+ sc->rx_bd_mbuf_alloc_size = MCLBYTES;
+ sc->rx_bd_mbuf_align_pad =
+ roundup2(MCLBYTES, 16) - MCLBYTES;
+ sc->rx_bd_mbuf_data_len = sc->rx_bd_mbuf_alloc_size -
+ sc->rx_bd_mbuf_align_pad;
+#endif
+
+ ifp->if_snd.ifq_drv_maxlen = USABLE_TX_BD;
+ IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen);
+ IFQ_SET_READY(&ifp->if_snd);
+
+ if (sc->bce_phy_flags & BCE_PHY_2_5G_CAPABLE_FLAG)
+ ifp->if_baudrate = IF_Mbps(2500ULL);
+ else
+ ifp->if_baudrate = IF_Mbps(1000);
+
+ /* Handle any special PHY initialization for SerDes PHYs. */
+ bce_init_media(sc);
+
+ /* MII child bus by attaching the PHY. */
+ rc = mii_attach(dev, &sc->bce_miibus, ifp, bce_ifmedia_upd,
+ bce_ifmedia_sts, BMSR_DEFCAPMASK, sc->bce_phy_addr,
+ MII_OFFSET_ANY, MIIF_DOPAUSE | MIIF_FORCEPAUSE);
+ if (rc != 0) {
+ BCE_PRINTF("%s(%d): attaching PHYs failed\n", __FILE__,
+ __LINE__);
+ goto bce_attach_fail;
+ }
+
+ /* Attach to the Ethernet interface list. */
+ ether_ifattach(ifp, sc->eaddr);
+
+#if __FreeBSD_version < 500000
+ callout_init(&sc->bce_tick_callout);
+ callout_init(&sc->bce_pulse_callout);
+#else
+ callout_init_mtx(&sc->bce_tick_callout, &sc->bce_mtx, 0);
+ callout_init_mtx(&sc->bce_pulse_callout, &sc->bce_mtx, 0);
+#endif
+
+ /* Hookup IRQ last. */
+ rc = bus_setup_intr(dev, sc->bce_res_irq, INTR_TYPE_NET | INTR_MPSAFE,
+ NULL, bce_intr, sc, &sc->bce_intrhand);
+
+ if (rc) {
+ BCE_PRINTF("%s(%d): Failed to setup IRQ!\n",
+ __FILE__, __LINE__);
+ bce_detach(dev);
+ goto bce_attach_exit;
+ }
+
+ /*
+ * At this point we've acquired all the resources
+ * we need to run so there's no turning back, we're
+ * cleared for launch.
+ */
+
+ /* Print some important debugging info. */
+ DBRUNMSG(BCE_INFO, bce_dump_driver_state(sc));
+
+ /* Add the supported sysctls to the kernel. */
+ bce_add_sysctls(sc);
+
+ BCE_LOCK(sc);
+
+ /*
+ * The chip reset earlier notified the bootcode that
+ * a driver is present. We now need to start our pulse
+ * routine so that the bootcode is reminded that we're
+ * still running.
+ */
+ bce_pulse(sc);
+
+ bce_mgmt_init_locked(sc);
+ BCE_UNLOCK(sc);
+
+ /* Finally, print some useful adapter info */
+ bce_print_adapter_info(sc);
+ DBPRINT(sc, BCE_FATAL, "%s(): sc = %p\n",
+ __FUNCTION__, sc);
+
+ goto bce_attach_exit;
+
+bce_attach_fail:
+ bce_release_resources(sc);
+
+bce_attach_exit:
+
+ DBEXIT(BCE_VERBOSE_LOAD | BCE_VERBOSE_RESET);
+
+ return(rc);
+}
+
+
+/****************************************************************************/
+/* Device detach function. */
+/* */
+/* Stops the controller, resets the controller, and releases resources. */
+/* */
+/* Returns: */
+/* 0 on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_detach(device_t dev)
+{
+ struct bce_softc *sc = device_get_softc(dev);
+ struct ifnet *ifp;
+ u32 msg;
+
+ DBENTER(BCE_VERBOSE_UNLOAD | BCE_VERBOSE_RESET);
+
+ ifp = sc->bce_ifp;
+
+ /* Stop and reset the controller. */
+ BCE_LOCK(sc);
+
+ /* Stop the pulse so the bootcode can go to driver absent state. */
+ callout_stop(&sc->bce_pulse_callout);
+
+ bce_stop(sc);
+ if (sc->bce_flags & BCE_NO_WOL_FLAG)
+ msg = BCE_DRV_MSG_CODE_UNLOAD_LNK_DN;
+ else
+ msg = BCE_DRV_MSG_CODE_UNLOAD;
+ bce_reset(sc, msg);
+
+ BCE_UNLOCK(sc);
+
+ ether_ifdetach(ifp);
+
+ /* If we have a child device on the MII bus remove it too. */
+ bus_generic_detach(dev);
+ device_delete_child(dev, sc->bce_miibus);
+
+ /* Release all remaining resources. */
+ bce_release_resources(sc);
+
+ DBEXIT(BCE_VERBOSE_UNLOAD | BCE_VERBOSE_RESET);
+
+ return(0);
+}
+
+
+/****************************************************************************/
+/* Device shutdown function. */
+/* */
+/* Stops and resets the controller. */
+/* */
+/* Returns: */
+/* 0 on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_shutdown(device_t dev)
+{
+ struct bce_softc *sc = device_get_softc(dev);
+ u32 msg;
+
+ DBENTER(BCE_VERBOSE);
+
+ BCE_LOCK(sc);
+ bce_stop(sc);
+ if (sc->bce_flags & BCE_NO_WOL_FLAG)
+ msg = BCE_DRV_MSG_CODE_UNLOAD_LNK_DN;
+ else
+ msg = BCE_DRV_MSG_CODE_UNLOAD;
+ bce_reset(sc, msg);
+ BCE_UNLOCK(sc);
+
+ DBEXIT(BCE_VERBOSE);
+
+ return (0);
+}
+
+
+#ifdef BCE_DEBUG
+/****************************************************************************/
+/* Register read. */
+/* */
+/* Returns: */
+/* The value of the register. */
+/****************************************************************************/
+static u32
+bce_reg_rd(struct bce_softc *sc, u32 offset)
+{
+ u32 val = bus_space_read_4(sc->bce_btag, sc->bce_bhandle, offset);
+ DBPRINT(sc, BCE_INSANE_REG, "%s(); offset = 0x%08X, val = 0x%08X\n",
+ __FUNCTION__, offset, val);
+ return val;
+}
+
+
+/****************************************************************************/
+/* Register write (16 bit). */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_reg_wr16(struct bce_softc *sc, u32 offset, u16 val)
+{
+ DBPRINT(sc, BCE_INSANE_REG, "%s(); offset = 0x%08X, val = 0x%04X\n",
+ __FUNCTION__, offset, val);
+ bus_space_write_2(sc->bce_btag, sc->bce_bhandle, offset, val);
+}
+
+
+/****************************************************************************/
+/* Register write. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_reg_wr(struct bce_softc *sc, u32 offset, u32 val)
+{
+ DBPRINT(sc, BCE_INSANE_REG, "%s(); offset = 0x%08X, val = 0x%08X\n",
+ __FUNCTION__, offset, val);
+ bus_space_write_4(sc->bce_btag, sc->bce_bhandle, offset, val);
+}
+#endif
+
+/****************************************************************************/
+/* Indirect register read. */
+/* */
+/* Reads NetXtreme II registers using an index/data register pair in PCI */
+/* configuration space. Using this mechanism avoids issues with posted */
+/* reads but is much slower than memory-mapped I/O. */
+/* */
+/* Returns: */
+/* The value of the register. */
+/****************************************************************************/
+static u32
+bce_reg_rd_ind(struct bce_softc *sc, u32 offset)
+{
+ device_t dev;
+ dev = sc->bce_dev;
+
+ pci_write_config(dev, BCE_PCICFG_REG_WINDOW_ADDRESS, offset, 4);
+#ifdef BCE_DEBUG
+ {
+ u32 val;
+ val = pci_read_config(dev, BCE_PCICFG_REG_WINDOW, 4);
+ DBPRINT(sc, BCE_INSANE_REG, "%s(); offset = 0x%08X, val = 0x%08X\n",
+ __FUNCTION__, offset, val);
+ return val;
+ }
+#else
+ return pci_read_config(dev, BCE_PCICFG_REG_WINDOW, 4);
+#endif
+}
+
+
+/****************************************************************************/
+/* Indirect register write. */
+/* */
+/* Writes NetXtreme II registers using an index/data register pair in PCI */
+/* configuration space. Using this mechanism avoids issues with posted */
+/* writes but is muchh slower than memory-mapped I/O. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_reg_wr_ind(struct bce_softc *sc, u32 offset, u32 val)
+{
+ device_t dev;
+ dev = sc->bce_dev;
+
+ DBPRINT(sc, BCE_INSANE_REG, "%s(); offset = 0x%08X, val = 0x%08X\n",
+ __FUNCTION__, offset, val);
+
+ pci_write_config(dev, BCE_PCICFG_REG_WINDOW_ADDRESS, offset, 4);
+ pci_write_config(dev, BCE_PCICFG_REG_WINDOW, val, 4);
+}
+
+
+/****************************************************************************/
+/* Shared memory write. */
+/* */
+/* Writes NetXtreme II shared memory region. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_shmem_wr(struct bce_softc *sc, u32 offset, u32 val)
+{
+ DBPRINT(sc, BCE_VERBOSE_FIRMWARE, "%s(): Writing 0x%08X to "
+ "0x%08X\n", __FUNCTION__, val, offset);
+
+ bce_reg_wr_ind(sc, sc->bce_shmem_base + offset, val);
+}
+
+
+/****************************************************************************/
+/* Shared memory read. */
+/* */
+/* Reads NetXtreme II shared memory region. */
+/* */
+/* Returns: */
+/* The 32 bit value read. */
+/****************************************************************************/
+static u32
+bce_shmem_rd(struct bce_softc *sc, u32 offset)
+{
+ u32 val = bce_reg_rd_ind(sc, sc->bce_shmem_base + offset);
+
+ DBPRINT(sc, BCE_VERBOSE_FIRMWARE, "%s(): Reading 0x%08X from "
+ "0x%08X\n", __FUNCTION__, val, offset);
+
+ return val;
+}
+
+
+#ifdef BCE_DEBUG
+/****************************************************************************/
+/* Context memory read. */
+/* */
+/* The NetXtreme II controller uses context memory to track connection */
+/* information for L2 and higher network protocols. */
+/* */
+/* Returns: */
+/* The requested 32 bit value of context memory. */
+/****************************************************************************/
+static u32
+bce_ctx_rd(struct bce_softc *sc, u32 cid_addr, u32 ctx_offset)
+{
+ u32 idx, offset, retry_cnt = 5, val;
+
+ DBRUNIF((cid_addr > MAX_CID_ADDR || ctx_offset & 0x3 ||
+ cid_addr & CTX_MASK), BCE_PRINTF("%s(): Invalid CID "
+ "address: 0x%08X.\n", __FUNCTION__, cid_addr));
+
+ offset = ctx_offset + cid_addr;
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+
+ REG_WR(sc, BCE_CTX_CTX_CTRL, (offset | BCE_CTX_CTX_CTRL_READ_REQ));
+
+ for (idx = 0; idx < retry_cnt; idx++) {
+ val = REG_RD(sc, BCE_CTX_CTX_CTRL);
+ if ((val & BCE_CTX_CTX_CTRL_READ_REQ) == 0)
+ break;
+ DELAY(5);
+ }
+
+ if (val & BCE_CTX_CTX_CTRL_READ_REQ)
+ BCE_PRINTF("%s(%d); Unable to read CTX memory: "
+ "cid_addr = 0x%08X, offset = 0x%08X!\n",
+ __FILE__, __LINE__, cid_addr, ctx_offset);
+
+ val = REG_RD(sc, BCE_CTX_CTX_DATA);
+ } else {
+ REG_WR(sc, BCE_CTX_DATA_ADR, offset);
+ val = REG_RD(sc, BCE_CTX_DATA);
+ }
+
+ DBPRINT(sc, BCE_EXTREME_CTX, "%s(); cid_addr = 0x%08X, offset = 0x%08X, "
+ "val = 0x%08X\n", __FUNCTION__, cid_addr, ctx_offset, val);
+
+ return(val);
+}
+#endif
+
+
+/****************************************************************************/
+/* Context memory write. */
+/* */
+/* The NetXtreme II controller uses context memory to track connection */
+/* information for L2 and higher network protocols. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_ctx_wr(struct bce_softc *sc, u32 cid_addr, u32 ctx_offset, u32 ctx_val)
+{
+ u32 idx, offset = ctx_offset + cid_addr;
+ u32 val, retry_cnt = 5;
+
+ DBPRINT(sc, BCE_EXTREME_CTX, "%s(); cid_addr = 0x%08X, offset = 0x%08X, "
+ "val = 0x%08X\n", __FUNCTION__, cid_addr, ctx_offset, ctx_val);
+
+ DBRUNIF((cid_addr > MAX_CID_ADDR || ctx_offset & 0x3 || cid_addr & CTX_MASK),
+ BCE_PRINTF("%s(): Invalid CID address: 0x%08X.\n",
+ __FUNCTION__, cid_addr));
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+
+ REG_WR(sc, BCE_CTX_CTX_DATA, ctx_val);
+ REG_WR(sc, BCE_CTX_CTX_CTRL, (offset | BCE_CTX_CTX_CTRL_WRITE_REQ));
+
+ for (idx = 0; idx < retry_cnt; idx++) {
+ val = REG_RD(sc, BCE_CTX_CTX_CTRL);
+ if ((val & BCE_CTX_CTX_CTRL_WRITE_REQ) == 0)
+ break;
+ DELAY(5);
+ }
+
+ if (val & BCE_CTX_CTX_CTRL_WRITE_REQ)
+ BCE_PRINTF("%s(%d); Unable to write CTX memory: "
+ "cid_addr = 0x%08X, offset = 0x%08X!\n",
+ __FILE__, __LINE__, cid_addr, ctx_offset);
+
+ } else {
+ REG_WR(sc, BCE_CTX_DATA_ADR, offset);
+ REG_WR(sc, BCE_CTX_DATA, ctx_val);
+ }
+}
+
+
+/****************************************************************************/
+/* PHY register read. */
+/* */
+/* Implements register reads on the MII bus. */
+/* */
+/* Returns: */
+/* The value of the register. */
+/****************************************************************************/
+static int
+bce_miibus_read_reg(device_t dev, int phy, int reg)
+{
+ struct bce_softc *sc;
+ u32 val;
+ int i;
+
+ sc = device_get_softc(dev);
+
+ /* Make sure we are accessing the correct PHY address. */
+ if (phy != sc->bce_phy_addr) {
+ DBPRINT(sc, BCE_INSANE_PHY, "Invalid PHY address %d "
+ "for PHY read!\n", phy);
+ return(0);
+ }
+
+ /*
+ * The 5709S PHY is an IEEE Clause 45 PHY
+ * with special mappings to work with IEEE
+ * Clause 22 register accesses.
+ */
+ if ((sc->bce_phy_flags & BCE_PHY_IEEE_CLAUSE_45_FLAG) != 0) {
+ if (reg >= MII_BMCR && reg <= MII_ANLPRNP)
+ reg += 0x10;
+ }
+
+ if (sc->bce_phy_flags & BCE_PHY_INT_MODE_AUTO_POLLING_FLAG) {
+ val = REG_RD(sc, BCE_EMAC_MDIO_MODE);
+ val &= ~BCE_EMAC_MDIO_MODE_AUTO_POLL;
+
+ REG_WR(sc, BCE_EMAC_MDIO_MODE, val);
+ REG_RD(sc, BCE_EMAC_MDIO_MODE);
+
+ DELAY(40);
+ }
+
+
+ val = BCE_MIPHY(phy) | BCE_MIREG(reg) |
+ BCE_EMAC_MDIO_COMM_COMMAND_READ | BCE_EMAC_MDIO_COMM_DISEXT |
+ BCE_EMAC_MDIO_COMM_START_BUSY;
+ REG_WR(sc, BCE_EMAC_MDIO_COMM, val);
+
+ for (i = 0; i < BCE_PHY_TIMEOUT; i++) {
+ DELAY(10);
+
+ val = REG_RD(sc, BCE_EMAC_MDIO_COMM);
+ if (!(val & BCE_EMAC_MDIO_COMM_START_BUSY)) {
+ DELAY(5);
+
+ val = REG_RD(sc, BCE_EMAC_MDIO_COMM);
+ val &= BCE_EMAC_MDIO_COMM_DATA;
+
+ break;
+ }
+ }
+
+ if (val & BCE_EMAC_MDIO_COMM_START_BUSY) {
+ BCE_PRINTF("%s(%d): Error: PHY read timeout! phy = %d, "
+ "reg = 0x%04X\n", __FILE__, __LINE__, phy, reg);
+ val = 0x0;
+ } else {
+ val = REG_RD(sc, BCE_EMAC_MDIO_COMM);
+ }
+
+
+ if (sc->bce_phy_flags & BCE_PHY_INT_MODE_AUTO_POLLING_FLAG) {
+ val = REG_RD(sc, BCE_EMAC_MDIO_MODE);
+ val |= BCE_EMAC_MDIO_MODE_AUTO_POLL;
+
+ REG_WR(sc, BCE_EMAC_MDIO_MODE, val);
+ REG_RD(sc, BCE_EMAC_MDIO_MODE);
+
+ DELAY(40);
+ }
+
+ DB_PRINT_PHY_REG(reg, val);
+ return (val & 0xffff);
+
+}
+
+
+/****************************************************************************/
+/* PHY register write. */
+/* */
+/* Implements register writes on the MII bus. */
+/* */
+/* Returns: */
+/* The value of the register. */
+/****************************************************************************/
+static int
+bce_miibus_write_reg(device_t dev, int phy, int reg, int val)
+{
+ struct bce_softc *sc;
+ u32 val1;
+ int i;
+
+ sc = device_get_softc(dev);
+
+ /* Make sure we are accessing the correct PHY address. */
+ if (phy != sc->bce_phy_addr) {
+ DBPRINT(sc, BCE_INSANE_PHY, "Invalid PHY address %d "
+ "for PHY write!\n", phy);
+ return(0);
+ }
+
+ DB_PRINT_PHY_REG(reg, val);
+
+ /*
+ * The 5709S PHY is an IEEE Clause 45 PHY
+ * with special mappings to work with IEEE
+ * Clause 22 register accesses.
+ */
+ if ((sc->bce_phy_flags & BCE_PHY_IEEE_CLAUSE_45_FLAG) != 0) {
+ if (reg >= MII_BMCR && reg <= MII_ANLPRNP)
+ reg += 0x10;
+ }
+
+ if (sc->bce_phy_flags & BCE_PHY_INT_MODE_AUTO_POLLING_FLAG) {
+ val1 = REG_RD(sc, BCE_EMAC_MDIO_MODE);
+ val1 &= ~BCE_EMAC_MDIO_MODE_AUTO_POLL;
+
+ REG_WR(sc, BCE_EMAC_MDIO_MODE, val1);
+ REG_RD(sc, BCE_EMAC_MDIO_MODE);
+
+ DELAY(40);
+ }
+
+ val1 = BCE_MIPHY(phy) | BCE_MIREG(reg) | val |
+ BCE_EMAC_MDIO_COMM_COMMAND_WRITE |
+ BCE_EMAC_MDIO_COMM_START_BUSY | BCE_EMAC_MDIO_COMM_DISEXT;
+ REG_WR(sc, BCE_EMAC_MDIO_COMM, val1);
+
+ for (i = 0; i < BCE_PHY_TIMEOUT; i++) {
+ DELAY(10);
+
+ val1 = REG_RD(sc, BCE_EMAC_MDIO_COMM);
+ if (!(val1 & BCE_EMAC_MDIO_COMM_START_BUSY)) {
+ DELAY(5);
+ break;
+ }
+ }
+
+ if (val1 & BCE_EMAC_MDIO_COMM_START_BUSY)
+ BCE_PRINTF("%s(%d): PHY write timeout!\n",
+ __FILE__, __LINE__);
+
+ if (sc->bce_phy_flags & BCE_PHY_INT_MODE_AUTO_POLLING_FLAG) {
+ val1 = REG_RD(sc, BCE_EMAC_MDIO_MODE);
+ val1 |= BCE_EMAC_MDIO_MODE_AUTO_POLL;
+
+ REG_WR(sc, BCE_EMAC_MDIO_MODE, val1);
+ REG_RD(sc, BCE_EMAC_MDIO_MODE);
+
+ DELAY(40);
+ }
+
+ return 0;
+}
+
+
+/****************************************************************************/
+/* MII bus status change. */
+/* */
+/* Called by the MII bus driver when the PHY establishes link to set the */
+/* MAC interface registers. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_miibus_statchg(device_t dev)
+{
+ struct bce_softc *sc;
+ struct mii_data *mii;
+ int val;
+
+ sc = device_get_softc(dev);
+
+ DBENTER(BCE_VERBOSE_PHY);
+
+ mii = device_get_softc(sc->bce_miibus);
+
+ val = REG_RD(sc, BCE_EMAC_MODE);
+ val &= ~(BCE_EMAC_MODE_PORT | BCE_EMAC_MODE_HALF_DUPLEX |
+ BCE_EMAC_MODE_MAC_LOOP | BCE_EMAC_MODE_FORCE_LINK |
+ BCE_EMAC_MODE_25G);
+
+ /* Set MII or GMII interface based on the PHY speed. */
+ switch (IFM_SUBTYPE(mii->mii_media_active)) {
+ case IFM_10_T:
+ if (BCE_CHIP_NUM(sc) != BCE_CHIP_NUM_5706) {
+ DBPRINT(sc, BCE_INFO_PHY,
+ "Enabling 10Mb interface.\n");
+ val |= BCE_EMAC_MODE_PORT_MII_10;
+ break;
+ }
+ /* fall-through */
+ case IFM_100_TX:
+ DBPRINT(sc, BCE_INFO_PHY, "Enabling MII interface.\n");
+ val |= BCE_EMAC_MODE_PORT_MII;
+ break;
+ case IFM_2500_SX:
+ DBPRINT(sc, BCE_INFO_PHY, "Enabling 2.5G MAC mode.\n");
+ val |= BCE_EMAC_MODE_25G;
+ /* fall-through */
+ case IFM_1000_T:
+ case IFM_1000_SX:
+ DBPRINT(sc, BCE_INFO_PHY, "Enabling GMII interface.\n");
+ val |= BCE_EMAC_MODE_PORT_GMII;
+ break;
+ default:
+ DBPRINT(sc, BCE_INFO_PHY, "Unknown link speed, enabling "
+ "default GMII interface.\n");
+ val |= BCE_EMAC_MODE_PORT_GMII;
+ }
+
+ /* Set half or full duplex based on PHY settings. */
+ if ((mii->mii_media_active & IFM_GMASK) == IFM_HDX) {
+ DBPRINT(sc, BCE_INFO_PHY,
+ "Setting Half-Duplex interface.\n");
+ val |= BCE_EMAC_MODE_HALF_DUPLEX;
+ } else
+ DBPRINT(sc, BCE_INFO_PHY,
+ "Setting Full-Duplex interface.\n");
+
+ REG_WR(sc, BCE_EMAC_MODE, val);
+
+ if ((mii->mii_media_active & IFM_ETH_RXPAUSE) != 0) {
+ DBPRINT(sc, BCE_INFO_PHY,
+ "%s(): Enabling RX flow control.\n", __FUNCTION__);
+ BCE_SETBIT(sc, BCE_EMAC_RX_MODE, BCE_EMAC_RX_MODE_FLOW_EN);
+ } else {
+ DBPRINT(sc, BCE_INFO_PHY,
+ "%s(): Disabling RX flow control.\n", __FUNCTION__);
+ BCE_CLRBIT(sc, BCE_EMAC_RX_MODE, BCE_EMAC_RX_MODE_FLOW_EN);
+ }
+
+ if ((mii->mii_media_active & IFM_ETH_TXPAUSE) != 0) {
+ DBPRINT(sc, BCE_INFO_PHY,
+ "%s(): Enabling TX flow control.\n", __FUNCTION__);
+ BCE_SETBIT(sc, BCE_EMAC_TX_MODE, BCE_EMAC_TX_MODE_FLOW_EN);
+ sc->bce_flags |= BCE_USING_TX_FLOW_CONTROL;
+ } else {
+ DBPRINT(sc, BCE_INFO_PHY,
+ "%s(): Disabling TX flow control.\n", __FUNCTION__);
+ BCE_CLRBIT(sc, BCE_EMAC_TX_MODE, BCE_EMAC_TX_MODE_FLOW_EN);
+ sc->bce_flags &= ~BCE_USING_TX_FLOW_CONTROL;
+ }
+
+ /* ToDo: Update watermarks in bce_init_rx_context(). */
+
+ DBEXIT(BCE_VERBOSE_PHY);
+}
+
+
+/****************************************************************************/
+/* Acquire NVRAM lock. */
+/* */
+/* Before the NVRAM can be accessed the caller must acquire an NVRAM lock. */
+/* Locks 0 and 2 are reserved, lock 1 is used by firmware and lock 2 is */
+/* for use by the driver. */
+/* */
+/* Returns: */
+/* 0 on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_acquire_nvram_lock(struct bce_softc *sc)
+{
+ u32 val;
+ int j, rc = 0;
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+
+ /* Request access to the flash interface. */
+ REG_WR(sc, BCE_NVM_SW_ARB, BCE_NVM_SW_ARB_ARB_REQ_SET2);
+ for (j = 0; j < NVRAM_TIMEOUT_COUNT; j++) {
+ val = REG_RD(sc, BCE_NVM_SW_ARB);
+ if (val & BCE_NVM_SW_ARB_ARB_ARB2)
+ break;
+
+ DELAY(5);
+ }
+
+ if (j >= NVRAM_TIMEOUT_COUNT) {
+ DBPRINT(sc, BCE_WARN, "Timeout acquiring NVRAM lock!\n");
+ rc = EBUSY;
+ }
+
+ DBEXIT(BCE_VERBOSE_NVRAM);
+ return (rc);
+}
+
+
+/****************************************************************************/
+/* Release NVRAM lock. */
+/* */
+/* When the caller is finished accessing NVRAM the lock must be released. */
+/* Locks 0 and 2 are reserved, lock 1 is used by firmware and lock 2 is */
+/* for use by the driver. */
+/* */
+/* Returns: */
+/* 0 on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_release_nvram_lock(struct bce_softc *sc)
+{
+ u32 val;
+ int j, rc = 0;
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+
+ /*
+ * Relinquish nvram interface.
+ */
+ REG_WR(sc, BCE_NVM_SW_ARB, BCE_NVM_SW_ARB_ARB_REQ_CLR2);
+
+ for (j = 0; j < NVRAM_TIMEOUT_COUNT; j++) {
+ val = REG_RD(sc, BCE_NVM_SW_ARB);
+ if (!(val & BCE_NVM_SW_ARB_ARB_ARB2))
+ break;
+
+ DELAY(5);
+ }
+
+ if (j >= NVRAM_TIMEOUT_COUNT) {
+ DBPRINT(sc, BCE_WARN, "Timeout releasing NVRAM lock!\n");
+ rc = EBUSY;
+ }
+
+ DBEXIT(BCE_VERBOSE_NVRAM);
+ return (rc);
+}
+
+
+#ifdef BCE_NVRAM_WRITE_SUPPORT
+/****************************************************************************/
+/* Enable NVRAM write access. */
+/* */
+/* Before writing to NVRAM the caller must enable NVRAM writes. */
+/* */
+/* Returns: */
+/* 0 on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_enable_nvram_write(struct bce_softc *sc)
+{
+ u32 val;
+ int rc = 0;
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+
+ val = REG_RD(sc, BCE_MISC_CFG);
+ REG_WR(sc, BCE_MISC_CFG, val | BCE_MISC_CFG_NVM_WR_EN_PCI);
+
+ if (!(sc->bce_flash_info->flags & BCE_NV_BUFFERED)) {
+ int j;
+
+ REG_WR(sc, BCE_NVM_COMMAND, BCE_NVM_COMMAND_DONE);
+ REG_WR(sc, BCE_NVM_COMMAND, BCE_NVM_COMMAND_WREN | BCE_NVM_COMMAND_DOIT);
+
+ for (j = 0; j < NVRAM_TIMEOUT_COUNT; j++) {
+ DELAY(5);
+
+ val = REG_RD(sc, BCE_NVM_COMMAND);
+ if (val & BCE_NVM_COMMAND_DONE)
+ break;
+ }
+
+ if (j >= NVRAM_TIMEOUT_COUNT) {
+ DBPRINT(sc, BCE_WARN, "Timeout writing NVRAM!\n");
+ rc = EBUSY;
+ }
+ }
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+ return (rc);
+}
+
+
+/****************************************************************************/
+/* Disable NVRAM write access. */
+/* */
+/* When the caller is finished writing to NVRAM write access must be */
+/* disabled. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_disable_nvram_write(struct bce_softc *sc)
+{
+ u32 val;
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+
+ val = REG_RD(sc, BCE_MISC_CFG);
+ REG_WR(sc, BCE_MISC_CFG, val & ~BCE_MISC_CFG_NVM_WR_EN);
+
+ DBEXIT(BCE_VERBOSE_NVRAM);
+
+}
+#endif
+
+
+/****************************************************************************/
+/* Enable NVRAM access. */
+/* */
+/* Before accessing NVRAM for read or write operations the caller must */
+/* enabled NVRAM access. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_enable_nvram_access(struct bce_softc *sc)
+{
+ u32 val;
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+
+ val = REG_RD(sc, BCE_NVM_ACCESS_ENABLE);
+ /* Enable both bits, even on read. */
+ REG_WR(sc, BCE_NVM_ACCESS_ENABLE, val |
+ BCE_NVM_ACCESS_ENABLE_EN | BCE_NVM_ACCESS_ENABLE_WR_EN);
+
+ DBEXIT(BCE_VERBOSE_NVRAM);
+}
+
+
+/****************************************************************************/
+/* Disable NVRAM access. */
+/* */
+/* When the caller is finished accessing NVRAM access must be disabled. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_disable_nvram_access(struct bce_softc *sc)
+{
+ u32 val;
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+
+ val = REG_RD(sc, BCE_NVM_ACCESS_ENABLE);
+
+ /* Disable both bits, even after read. */
+ REG_WR(sc, BCE_NVM_ACCESS_ENABLE, val &
+ ~(BCE_NVM_ACCESS_ENABLE_EN | BCE_NVM_ACCESS_ENABLE_WR_EN));
+
+ DBEXIT(BCE_VERBOSE_NVRAM);
+}
+
+
+#ifdef BCE_NVRAM_WRITE_SUPPORT
+/****************************************************************************/
+/* Erase NVRAM page before writing. */
+/* */
+/* Non-buffered flash parts require that a page be erased before it is */
+/* written. */
+/* */
+/* Returns: */
+/* 0 on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_nvram_erase_page(struct bce_softc *sc, u32 offset)
+{
+ u32 cmd;
+ int j, rc = 0;
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+
+ /* Buffered flash doesn't require an erase. */
+ if (sc->bce_flash_info->flags & BCE_NV_BUFFERED)
+ goto bce_nvram_erase_page_exit;
+
+ /* Build an erase command. */
+ cmd = BCE_NVM_COMMAND_ERASE | BCE_NVM_COMMAND_WR |
+ BCE_NVM_COMMAND_DOIT;
+
+ /*
+ * Clear the DONE bit separately, set the NVRAM adress to erase,
+ * and issue the erase command.
+ */
+ REG_WR(sc, BCE_NVM_COMMAND, BCE_NVM_COMMAND_DONE);
+ REG_WR(sc, BCE_NVM_ADDR, offset & BCE_NVM_ADDR_NVM_ADDR_VALUE);
+ REG_WR(sc, BCE_NVM_COMMAND, cmd);
+
+ /* Wait for completion. */
+ for (j = 0; j < NVRAM_TIMEOUT_COUNT; j++) {
+ u32 val;
+
+ DELAY(5);
+
+ val = REG_RD(sc, BCE_NVM_COMMAND);
+ if (val & BCE_NVM_COMMAND_DONE)
+ break;
+ }
+
+ if (j >= NVRAM_TIMEOUT_COUNT) {
+ DBPRINT(sc, BCE_WARN, "Timeout erasing NVRAM.\n");
+ rc = EBUSY;
+ }
+
+bce_nvram_erase_page_exit:
+ DBEXIT(BCE_VERBOSE_NVRAM);
+ return (rc);
+}
+#endif /* BCE_NVRAM_WRITE_SUPPORT */
+
+
+/****************************************************************************/
+/* Read a dword (32 bits) from NVRAM. */
+/* */
+/* Read a 32 bit word from NVRAM. The caller is assumed to have already */
+/* obtained the NVRAM lock and enabled the controller for NVRAM access. */
+/* */
+/* Returns: */
+/* 0 on success and the 32 bit value read, positive value on failure. */
+/****************************************************************************/
+static int
+bce_nvram_read_dword(struct bce_softc *sc,
+ u32 offset, u8 *ret_val, u32 cmd_flags)
+{
+ u32 cmd;
+ int i, rc = 0;
+
+ DBENTER(BCE_EXTREME_NVRAM);
+
+ /* Build the command word. */
+ cmd = BCE_NVM_COMMAND_DOIT | cmd_flags;
+
+ /* Calculate the offset for buffered flash if translation is used. */
+ if (sc->bce_flash_info->flags & BCE_NV_TRANSLATE) {
+ offset = ((offset / sc->bce_flash_info->page_size) <<
+ sc->bce_flash_info->page_bits) +
+ (offset % sc->bce_flash_info->page_size);
+ }
+
+ /*
+ * Clear the DONE bit separately, set the address to read,
+ * and issue the read.
+ */
+ REG_WR(sc, BCE_NVM_COMMAND, BCE_NVM_COMMAND_DONE);
+ REG_WR(sc, BCE_NVM_ADDR, offset & BCE_NVM_ADDR_NVM_ADDR_VALUE);
+ REG_WR(sc, BCE_NVM_COMMAND, cmd);
+
+ /* Wait for completion. */
+ for (i = 0; i < NVRAM_TIMEOUT_COUNT; i++) {
+ u32 val;
+
+ DELAY(5);
+
+ val = REG_RD(sc, BCE_NVM_COMMAND);
+ if (val & BCE_NVM_COMMAND_DONE) {
+ val = REG_RD(sc, BCE_NVM_READ);
+
+ val = bce_be32toh(val);
+ memcpy(ret_val, &val, 4);
+ break;
+ }
+ }
+
+ /* Check for errors. */
+ if (i >= NVRAM_TIMEOUT_COUNT) {
+ BCE_PRINTF("%s(%d): Timeout error reading NVRAM at "
+ "offset 0x%08X!\n", __FILE__, __LINE__, offset);
+ rc = EBUSY;
+ }
+
+ DBEXIT(BCE_EXTREME_NVRAM);
+ return(rc);
+}
+
+
+#ifdef BCE_NVRAM_WRITE_SUPPORT
+/****************************************************************************/
+/* Write a dword (32 bits) to NVRAM. */
+/* */
+/* Write a 32 bit word to NVRAM. The caller is assumed to have already */
+/* obtained the NVRAM lock, enabled the controller for NVRAM access, and */
+/* enabled NVRAM write access. */
+/* */
+/* Returns: */
+/* 0 on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_nvram_write_dword(struct bce_softc *sc, u32 offset, u8 *val,
+ u32 cmd_flags)
+{
+ u32 cmd, val32;
+ int j, rc = 0;
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+
+ /* Build the command word. */
+ cmd = BCE_NVM_COMMAND_DOIT | BCE_NVM_COMMAND_WR | cmd_flags;
+
+ /* Calculate the offset for buffered flash if translation is used. */
+ if (sc->bce_flash_info->flags & BCE_NV_TRANSLATE) {
+ offset = ((offset / sc->bce_flash_info->page_size) <<
+ sc->bce_flash_info->page_bits) +
+ (offset % sc->bce_flash_info->page_size);
+ }
+
+ /*
+ * Clear the DONE bit separately, convert NVRAM data to big-endian,
+ * set the NVRAM address to write, and issue the write command
+ */
+ REG_WR(sc, BCE_NVM_COMMAND, BCE_NVM_COMMAND_DONE);
+ memcpy(&val32, val, 4);
+ val32 = htobe32(val32);
+ REG_WR(sc, BCE_NVM_WRITE, val32);
+ REG_WR(sc, BCE_NVM_ADDR, offset & BCE_NVM_ADDR_NVM_ADDR_VALUE);
+ REG_WR(sc, BCE_NVM_COMMAND, cmd);
+
+ /* Wait for completion. */
+ for (j = 0; j < NVRAM_TIMEOUT_COUNT; j++) {
+ DELAY(5);
+
+ if (REG_RD(sc, BCE_NVM_COMMAND) & BCE_NVM_COMMAND_DONE)
+ break;
+ }
+ if (j >= NVRAM_TIMEOUT_COUNT) {
+ BCE_PRINTF("%s(%d): Timeout error writing NVRAM at "
+ "offset 0x%08X\n", __FILE__, __LINE__, offset);
+ rc = EBUSY;
+ }
+
+ DBEXIT(BCE_VERBOSE_NVRAM);
+ return (rc);
+}
+#endif /* BCE_NVRAM_WRITE_SUPPORT */
+
+
+/****************************************************************************/
+/* Initialize NVRAM access. */
+/* */
+/* Identify the NVRAM device in use and prepare the NVRAM interface to */
+/* access that device. */
+/* */
+/* Returns: */
+/* 0 on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_init_nvram(struct bce_softc *sc)
+{
+ u32 val;
+ int j, entry_count, rc = 0;
+ struct flash_spec *flash;
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ sc->bce_flash_info = &flash_5709;
+ goto bce_init_nvram_get_flash_size;
+ }
+
+ /* Determine the selected interface. */
+ val = REG_RD(sc, BCE_NVM_CFG1);
+
+ entry_count = sizeof(flash_table) / sizeof(struct flash_spec);
+
+ /*
+ * Flash reconfiguration is required to support additional
+ * NVRAM devices not directly supported in hardware.
+ * Check if the flash interface was reconfigured
+ * by the bootcode.
+ */
+
+ if (val & 0x40000000) {
+ /* Flash interface reconfigured by bootcode. */
+
+ DBPRINT(sc,BCE_INFO_LOAD,
+ "bce_init_nvram(): Flash WAS reconfigured.\n");
+
+ for (j = 0, flash = &flash_table[0]; j < entry_count;
+ j++, flash++) {
+ if ((val & FLASH_BACKUP_STRAP_MASK) ==
+ (flash->config1 & FLASH_BACKUP_STRAP_MASK)) {
+ sc->bce_flash_info = flash;
+ break;
+ }
+ }
+ } else {
+ /* Flash interface not yet reconfigured. */
+ u32 mask;
+
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): Flash was NOT reconfigured.\n",
+ __FUNCTION__);
+
+ if (val & (1 << 23))
+ mask = FLASH_BACKUP_STRAP_MASK;
+ else
+ mask = FLASH_STRAP_MASK;
+
+ /* Look for the matching NVRAM device configuration data. */
+ for (j = 0, flash = &flash_table[0]; j < entry_count; j++, flash++) {
+
+ /* Check if the device matches any of the known devices. */
+ if ((val & mask) == (flash->strapping & mask)) {
+ /* Found a device match. */
+ sc->bce_flash_info = flash;
+
+ /* Request access to the flash interface. */
+ if ((rc = bce_acquire_nvram_lock(sc)) != 0)
+ return rc;
+
+ /* Reconfigure the flash interface. */
+ bce_enable_nvram_access(sc);
+ REG_WR(sc, BCE_NVM_CFG1, flash->config1);
+ REG_WR(sc, BCE_NVM_CFG2, flash->config2);
+ REG_WR(sc, BCE_NVM_CFG3, flash->config3);
+ REG_WR(sc, BCE_NVM_WRITE1, flash->write1);
+ bce_disable_nvram_access(sc);
+ bce_release_nvram_lock(sc);
+
+ break;
+ }
+ }
+ }
+
+ /* Check if a matching device was found. */
+ if (j == entry_count) {
+ sc->bce_flash_info = NULL;
+ BCE_PRINTF("%s(%d): Unknown Flash NVRAM found!\n",
+ __FILE__, __LINE__);
+ DBEXIT(BCE_VERBOSE_NVRAM);
+ return (ENODEV);
+ }
+
+bce_init_nvram_get_flash_size:
+ /* Write the flash config data to the shared memory interface. */
+ val = bce_shmem_rd(sc, BCE_SHARED_HW_CFG_CONFIG2);
+ val &= BCE_SHARED_HW_CFG2_NVM_SIZE_MASK;
+ if (val)
+ sc->bce_flash_size = val;
+ else
+ sc->bce_flash_size = sc->bce_flash_info->total_size;
+
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): Found %s, size = 0x%08X\n",
+ __FUNCTION__, sc->bce_flash_info->name,
+ sc->bce_flash_info->total_size);
+
+ DBEXIT(BCE_VERBOSE_NVRAM);
+ return rc;
+}
+
+
+/****************************************************************************/
+/* Read an arbitrary range of data from NVRAM. */
+/* */
+/* Prepares the NVRAM interface for access and reads the requested data */
+/* into the supplied buffer. */
+/* */
+/* Returns: */
+/* 0 on success and the data read, positive value on failure. */
+/****************************************************************************/
+static int
+bce_nvram_read(struct bce_softc *sc, u32 offset, u8 *ret_buf,
+ int buf_size)
+{
+ int rc = 0;
+ u32 cmd_flags, offset32, len32, extra;
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+
+ if (buf_size == 0)
+ goto bce_nvram_read_exit;
+
+ /* Request access to the flash interface. */
+ if ((rc = bce_acquire_nvram_lock(sc)) != 0)
+ goto bce_nvram_read_exit;
+
+ /* Enable access to flash interface */
+ bce_enable_nvram_access(sc);
+
+ len32 = buf_size;
+ offset32 = offset;
+ extra = 0;
+
+ cmd_flags = 0;
+
+ if (offset32 & 3) {
+ u8 buf[4];
+ u32 pre_len;
+
+ offset32 &= ~3;
+ pre_len = 4 - (offset & 3);
+
+ if (pre_len >= len32) {
+ pre_len = len32;
+ cmd_flags = BCE_NVM_COMMAND_FIRST | BCE_NVM_COMMAND_LAST;
+ }
+ else {
+ cmd_flags = BCE_NVM_COMMAND_FIRST;
+ }
+
+ rc = bce_nvram_read_dword(sc, offset32, buf, cmd_flags);
+
+ if (rc)
+ return rc;
+
+ memcpy(ret_buf, buf + (offset & 3), pre_len);
+
+ offset32 += 4;
+ ret_buf += pre_len;
+ len32 -= pre_len;
+ }
+
+ if (len32 & 3) {
+ extra = 4 - (len32 & 3);
+ len32 = (len32 + 4) & ~3;
+ }
+
+ if (len32 == 4) {
+ u8 buf[4];
+
+ if (cmd_flags)
+ cmd_flags = BCE_NVM_COMMAND_LAST;
+ else
+ cmd_flags = BCE_NVM_COMMAND_FIRST |
+ BCE_NVM_COMMAND_LAST;
+
+ rc = bce_nvram_read_dword(sc, offset32, buf, cmd_flags);
+
+ memcpy(ret_buf, buf, 4 - extra);
+ }
+ else if (len32 > 0) {
+ u8 buf[4];
+
+ /* Read the first word. */
+ if (cmd_flags)
+ cmd_flags = 0;
+ else
+ cmd_flags = BCE_NVM_COMMAND_FIRST;
+
+ rc = bce_nvram_read_dword(sc, offset32, ret_buf, cmd_flags);
+
+ /* Advance to the next dword. */
+ offset32 += 4;
+ ret_buf += 4;
+ len32 -= 4;
+
+ while (len32 > 4 && rc == 0) {
+ rc = bce_nvram_read_dword(sc, offset32, ret_buf, 0);
+
+ /* Advance to the next dword. */
+ offset32 += 4;
+ ret_buf += 4;
+ len32 -= 4;
+ }
+
+ if (rc)
+ goto bce_nvram_read_locked_exit;
+
+ cmd_flags = BCE_NVM_COMMAND_LAST;
+ rc = bce_nvram_read_dword(sc, offset32, buf, cmd_flags);
+
+ memcpy(ret_buf, buf, 4 - extra);
+ }
+
+bce_nvram_read_locked_exit:
+ /* Disable access to flash interface and release the lock. */
+ bce_disable_nvram_access(sc);
+ bce_release_nvram_lock(sc);
+
+bce_nvram_read_exit:
+ DBEXIT(BCE_VERBOSE_NVRAM);
+ return rc;
+}
+
+
+#ifdef BCE_NVRAM_WRITE_SUPPORT
+/****************************************************************************/
+/* Write an arbitrary range of data from NVRAM. */
+/* */
+/* Prepares the NVRAM interface for write access and writes the requested */
+/* data from the supplied buffer. The caller is responsible for */
+/* calculating any appropriate CRCs. */
+/* */
+/* Returns: */
+/* 0 on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_nvram_write(struct bce_softc *sc, u32 offset, u8 *data_buf,
+ int buf_size)
+{
+ u32 written, offset32, len32;
+ u8 *buf, start[4], end[4];
+ int rc = 0;
+ int align_start, align_end;
+
+ DBENTER(BCE_VERBOSE_NVRAM);
+
+ buf = data_buf;
+ offset32 = offset;
+ len32 = buf_size;
+ align_start = align_end = 0;
+
+ if ((align_start = (offset32 & 3))) {
+ offset32 &= ~3;
+ len32 += align_start;
+ if ((rc = bce_nvram_read(sc, offset32, start, 4)))
+ goto bce_nvram_write_exit;
+ }
+
+ if (len32 & 3) {
+ if ((len32 > 4) || !align_start) {
+ align_end = 4 - (len32 & 3);
+ len32 += align_end;
+ if ((rc = bce_nvram_read(sc, offset32 + len32 - 4,
+ end, 4))) {
+ goto bce_nvram_write_exit;
+ }
+ }
+ }
+
+ if (align_start || align_end) {
+ buf = malloc(len32, M_DEVBUF, M_NOWAIT);
+ if (buf == 0) {
+ rc = ENOMEM;
+ goto bce_nvram_write_exit;
+ }
+
+ if (align_start) {
+ memcpy(buf, start, 4);
+ }
+
+ if (align_end) {
+ memcpy(buf + len32 - 4, end, 4);
+ }
+ memcpy(buf + align_start, data_buf, buf_size);
+ }
+
+ written = 0;
+ while ((written < len32) && (rc == 0)) {
+ u32 page_start, page_end, data_start, data_end;
+ u32 addr, cmd_flags;
+ int i;
+ u8 flash_buffer[264];
+
+ /* Find the page_start addr */
+ page_start = offset32 + written;
+ page_start -= (page_start % sc->bce_flash_info->page_size);
+ /* Find the page_end addr */
+ page_end = page_start + sc->bce_flash_info->page_size;
+ /* Find the data_start addr */
+ data_start = (written == 0) ? offset32 : page_start;
+ /* Find the data_end addr */
+ data_end = (page_end > offset32 + len32) ?
+ (offset32 + len32) : page_end;
+
+ /* Request access to the flash interface. */
+ if ((rc = bce_acquire_nvram_lock(sc)) != 0)
+ goto bce_nvram_write_exit;
+
+ /* Enable access to flash interface */
+ bce_enable_nvram_access(sc);
+
+ cmd_flags = BCE_NVM_COMMAND_FIRST;
+ if (!(sc->bce_flash_info->flags & BCE_NV_BUFFERED)) {
+ int j;
+
+ /* Read the whole page into the buffer
+ * (non-buffer flash only) */
+ for (j = 0; j < sc->bce_flash_info->page_size; j += 4) {
+ if (j == (sc->bce_flash_info->page_size - 4)) {
+ cmd_flags |= BCE_NVM_COMMAND_LAST;
+ }
+ rc = bce_nvram_read_dword(sc,
+ page_start + j,
+ &flash_buffer[j],
+ cmd_flags);
+
+ if (rc)
+ goto bce_nvram_write_locked_exit;
+
+ cmd_flags = 0;
+ }
+ }
+
+ /* Enable writes to flash interface (unlock write-protect) */
+ if ((rc = bce_enable_nvram_write(sc)) != 0)
+ goto bce_nvram_write_locked_exit;
+
+ /* Erase the page */
+ if ((rc = bce_nvram_erase_page(sc, page_start)) != 0)
+ goto bce_nvram_write_locked_exit;
+
+ /* Re-enable the write again for the actual write */
+ bce_enable_nvram_write(sc);
+
+ /* Loop to write back the buffer data from page_start to
+ * data_start */
+ i = 0;
+ if (!(sc->bce_flash_info->flags & BCE_NV_BUFFERED)) {
+ for (addr = page_start; addr < data_start;
+ addr += 4, i += 4) {
+
+ rc = bce_nvram_write_dword(sc, addr,
+ &flash_buffer[i], cmd_flags);
+
+ if (rc != 0)
+ goto bce_nvram_write_locked_exit;
+
+ cmd_flags = 0;
+ }
+ }
+
+ /* Loop to write the new data from data_start to data_end */
+ for (addr = data_start; addr < data_end; addr += 4, i++) {
+ if ((addr == page_end - 4) ||
+ ((sc->bce_flash_info->flags & BCE_NV_BUFFERED) &&
+ (addr == data_end - 4))) {
+
+ cmd_flags |= BCE_NVM_COMMAND_LAST;
+ }
+ rc = bce_nvram_write_dword(sc, addr, buf,
+ cmd_flags);
+
+ if (rc != 0)
+ goto bce_nvram_write_locked_exit;
+
+ cmd_flags = 0;
+ buf += 4;
+ }
+
+ /* Loop to write back the buffer data from data_end
+ * to page_end */
+ if (!(sc->bce_flash_info->flags & BCE_NV_BUFFERED)) {
+ for (addr = data_end; addr < page_end;
+ addr += 4, i += 4) {
+
+ if (addr == page_end-4) {
+ cmd_flags = BCE_NVM_COMMAND_LAST;
+ }
+ rc = bce_nvram_write_dword(sc, addr,
+ &flash_buffer[i], cmd_flags);
+
+ if (rc != 0)
+ goto bce_nvram_write_locked_exit;
+
+ cmd_flags = 0;
+ }
+ }
+
+ /* Disable writes to flash interface (lock write-protect) */
+ bce_disable_nvram_write(sc);
+
+ /* Disable access to flash interface */
+ bce_disable_nvram_access(sc);
+ bce_release_nvram_lock(sc);
+
+ /* Increment written */
+ written += data_end - data_start;
+ }
+
+ goto bce_nvram_write_exit;
+
+bce_nvram_write_locked_exit:
+ bce_disable_nvram_write(sc);
+ bce_disable_nvram_access(sc);
+ bce_release_nvram_lock(sc);
+
+bce_nvram_write_exit:
+ if (align_start || align_end)
+ free(buf, M_DEVBUF);
+
+ DBEXIT(BCE_VERBOSE_NVRAM);
+ return (rc);
+}
+#endif /* BCE_NVRAM_WRITE_SUPPORT */
+
+
+/****************************************************************************/
+/* Verifies that NVRAM is accessible and contains valid data. */
+/* */
+/* Reads the configuration data from NVRAM and verifies that the CRC is */
+/* correct. */
+/* */
+/* Returns: */
+/* 0 on success, positive value on failure. */
+/****************************************************************************/
+static int
+bce_nvram_test(struct bce_softc *sc)
+{
+ u32 buf[BCE_NVRAM_SIZE / 4];
+ u8 *data = (u8 *) buf;
+ int rc = 0;
+ u32 magic, csum;
+
+ DBENTER(BCE_VERBOSE_NVRAM | BCE_VERBOSE_LOAD | BCE_VERBOSE_RESET);
+
+ /*
+ * Check that the device NVRAM is valid by reading
+ * the magic value at offset 0.
+ */
+ if ((rc = bce_nvram_read(sc, 0, data, 4)) != 0) {
+ BCE_PRINTF("%s(%d): Unable to read NVRAM!\n",
+ __FILE__, __LINE__);
+ goto bce_nvram_test_exit;
+ }
+
+ /*
+ * Verify that offset 0 of the NVRAM contains
+ * a valid magic number.
+ */
+ magic = bce_be32toh(buf[0]);
+ if (magic != BCE_NVRAM_MAGIC) {
+ rc = ENODEV;
+ BCE_PRINTF("%s(%d): Invalid NVRAM magic value! "
+ "Expected: 0x%08X, Found: 0x%08X\n",
+ __FILE__, __LINE__, BCE_NVRAM_MAGIC, magic);
+ goto bce_nvram_test_exit;
+ }
+
+ /*
+ * Verify that the device NVRAM includes valid
+ * configuration data.
+ */
+ if ((rc = bce_nvram_read(sc, 0x100, data, BCE_NVRAM_SIZE)) != 0) {
+ BCE_PRINTF("%s(%d): Unable to read manufacturing "
+ "Information from NVRAM!\n", __FILE__, __LINE__);
+ goto bce_nvram_test_exit;
+ }
+
+ csum = ether_crc32_le(data, 0x100);
+ if (csum != BCE_CRC32_RESIDUAL) {
+ rc = ENODEV;
+ BCE_PRINTF("%s(%d): Invalid manufacturing information "
+ "NVRAM CRC! Expected: 0x%08X, Found: 0x%08X\n",
+ __FILE__, __LINE__, BCE_CRC32_RESIDUAL, csum);
+ goto bce_nvram_test_exit;
+ }
+
+ csum = ether_crc32_le(data + 0x100, 0x100);
+ if (csum != BCE_CRC32_RESIDUAL) {
+ rc = ENODEV;
+ BCE_PRINTF("%s(%d): Invalid feature configuration "
+ "information NVRAM CRC! Expected: 0x%08X, "
+ "Found: 08%08X\n", __FILE__, __LINE__,
+ BCE_CRC32_RESIDUAL, csum);
+ }
+
+bce_nvram_test_exit:
+ DBEXIT(BCE_VERBOSE_NVRAM | BCE_VERBOSE_LOAD | BCE_VERBOSE_RESET);
+ return rc;
+}
+
+
+/****************************************************************************/
+/* Identifies the current media type of the controller and sets the PHY */
+/* address. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_get_media(struct bce_softc *sc)
+{
+ u32 val;
+
+ DBENTER(BCE_VERBOSE_PHY);
+
+ /* Assume PHY address for copper controllers. */
+ sc->bce_phy_addr = 1;
+
+ if (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) {
+ u32 val = REG_RD(sc, BCE_MISC_DUAL_MEDIA_CTRL);
+ u32 bond_id = val & BCE_MISC_DUAL_MEDIA_CTRL_BOND_ID;
+ u32 strap;
+
+ /*
+ * The BCM5709S is software configurable
+ * for Copper or SerDes operation.
+ */
+ if (bond_id == BCE_MISC_DUAL_MEDIA_CTRL_BOND_ID_C) {
+ DBPRINT(sc, BCE_INFO_LOAD, "5709 bonded "
+ "for copper.\n");
+ goto bce_get_media_exit;
+ } else if (bond_id == BCE_MISC_DUAL_MEDIA_CTRL_BOND_ID_S) {
+ DBPRINT(sc, BCE_INFO_LOAD, "5709 bonded "
+ "for dual media.\n");
+ sc->bce_phy_flags |= BCE_PHY_SERDES_FLAG;
+ goto bce_get_media_exit;
+ }
+
+ if (val & BCE_MISC_DUAL_MEDIA_CTRL_STRAP_OVERRIDE)
+ strap = (val &
+ BCE_MISC_DUAL_MEDIA_CTRL_PHY_CTRL) >> 21;
+ else
+ strap = (val &
+ BCE_MISC_DUAL_MEDIA_CTRL_PHY_CTRL_STRAP) >> 8;
+
+ if (pci_get_function(sc->bce_dev) == 0) {
+ switch (strap) {
+ case 0x4:
+ case 0x5:
+ case 0x6:
+ DBPRINT(sc, BCE_INFO_LOAD,
+ "BCM5709 s/w configured for SerDes.\n");
+ sc->bce_phy_flags |= BCE_PHY_SERDES_FLAG;
+ break;
+ default:
+ DBPRINT(sc, BCE_INFO_LOAD,
+ "BCM5709 s/w configured for Copper.\n");
+ break;
+ }
+ } else {
+ switch (strap) {
+ case 0x1:
+ case 0x2:
+ case 0x4:
+ DBPRINT(sc, BCE_INFO_LOAD,
+ "BCM5709 s/w configured for SerDes.\n");
+ sc->bce_phy_flags |= BCE_PHY_SERDES_FLAG;
+ break;
+ default:
+ DBPRINT(sc, BCE_INFO_LOAD,
+ "BCM5709 s/w configured for Copper.\n");
+ break;
+ }
+ }
+
+ } else if (BCE_CHIP_BOND_ID(sc) & BCE_CHIP_BOND_ID_SERDES_BIT)
+ sc->bce_phy_flags |= BCE_PHY_SERDES_FLAG;
+
+ if (sc->bce_phy_flags & BCE_PHY_SERDES_FLAG) {
+
+ sc->bce_flags |= BCE_NO_WOL_FLAG;
+
+ if (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709)
+ sc->bce_phy_flags |= BCE_PHY_IEEE_CLAUSE_45_FLAG;
+
+ if (BCE_CHIP_NUM(sc) != BCE_CHIP_NUM_5706) {
+ /* 5708S/09S/16S use a separate PHY for SerDes. */
+ sc->bce_phy_addr = 2;
+
+ val = bce_shmem_rd(sc, BCE_SHARED_HW_CFG_CONFIG);
+ if (val & BCE_SHARED_HW_CFG_PHY_2_5G) {
+ sc->bce_phy_flags |=
+ BCE_PHY_2_5G_CAPABLE_FLAG;
+ DBPRINT(sc, BCE_INFO_LOAD, "Found 2.5Gb "
+ "capable adapter\n");
+ }
+ }
+ } else if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5706) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5708))
+ sc->bce_phy_flags |= BCE_PHY_CRC_FIX_FLAG;
+
+bce_get_media_exit:
+ DBPRINT(sc, (BCE_INFO_LOAD | BCE_INFO_PHY),
+ "Using PHY address %d.\n", sc->bce_phy_addr);
+
+ DBEXIT(BCE_VERBOSE_PHY);
+}
+
+
+/****************************************************************************/
+/* Performs PHY initialization required before MII drivers access the */
+/* device. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_init_media(struct bce_softc *sc)
+{
+ if ((sc->bce_phy_flags & BCE_PHY_IEEE_CLAUSE_45_FLAG) != 0) {
+ /*
+ * Configure 5709S/5716S PHYs to use traditional IEEE
+ * Clause 22 method. Otherwise we have no way to attach
+ * the PHY in mii(4) layer. PHY specific configuration
+ * is done in mii layer.
+ */
+
+ /* Select auto-negotiation MMD of the PHY. */
+ bce_miibus_write_reg(sc->bce_dev, sc->bce_phy_addr,
+ BRGPHY_BLOCK_ADDR, BRGPHY_BLOCK_ADDR_ADDR_EXT);
+ bce_miibus_write_reg(sc->bce_dev, sc->bce_phy_addr,
+ BRGPHY_ADDR_EXT, BRGPHY_ADDR_EXT_AN_MMD);
+
+ /* Set IEEE0 block of AN MMD (assumed in brgphy(4) code). */
+ bce_miibus_write_reg(sc->bce_dev, sc->bce_phy_addr,
+ BRGPHY_BLOCK_ADDR, BRGPHY_BLOCK_ADDR_COMBO_IEEE0);
+ }
+}
+
+
+/****************************************************************************/
+/* Free any DMA memory owned by the driver. */
+/* */
+/* Scans through each data structre that requires DMA memory and frees */
+/* the memory if allocated. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_dma_free(struct bce_softc *sc)
+{
+ int i;
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_VERBOSE_UNLOAD | BCE_VERBOSE_CTX);
+
+ /* Free, unmap, and destroy the status block. */
+ if (sc->status_block != NULL) {
+ bus_dmamem_free(
+ sc->status_tag,
+ sc->status_block,
+ sc->status_map);
+ sc->status_block = NULL;
+ }
+
+ if (sc->status_map != NULL) {
+ bus_dmamap_unload(
+ sc->status_tag,
+ sc->status_map);
+ bus_dmamap_destroy(sc->status_tag,
+ sc->status_map);
+ sc->status_map = NULL;
+ }
+
+ if (sc->status_tag != NULL) {
+ bus_dma_tag_destroy(sc->status_tag);
+ sc->status_tag = NULL;
+ }
+
+
+ /* Free, unmap, and destroy the statistics block. */
+ if (sc->stats_block != NULL) {
+ bus_dmamem_free(
+ sc->stats_tag,
+ sc->stats_block,
+ sc->stats_map);
+ sc->stats_block = NULL;
+ }
+
+ if (sc->stats_map != NULL) {
+ bus_dmamap_unload(
+ sc->stats_tag,
+ sc->stats_map);
+ bus_dmamap_destroy(sc->stats_tag,
+ sc->stats_map);
+ sc->stats_map = NULL;
+ }
+
+ if (sc->stats_tag != NULL) {
+ bus_dma_tag_destroy(sc->stats_tag);
+ sc->stats_tag = NULL;
+ }
+
+
+ /* Free, unmap and destroy all context memory pages. */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ for (i = 0; i < sc->ctx_pages; i++ ) {
+ if (sc->ctx_block[i] != NULL) {
+ bus_dmamem_free(
+ sc->ctx_tag,
+ sc->ctx_block[i],
+ sc->ctx_map[i]);
+ sc->ctx_block[i] = NULL;
+ }
+
+ if (sc->ctx_map[i] != NULL) {
+ bus_dmamap_unload(
+ sc->ctx_tag,
+ sc->ctx_map[i]);
+ bus_dmamap_destroy(
+ sc->ctx_tag,
+ sc->ctx_map[i]);
+ sc->ctx_map[i] = NULL;
+ }
+ }
+
+ /* Destroy the context memory tag. */
+ if (sc->ctx_tag != NULL) {
+ bus_dma_tag_destroy(sc->ctx_tag);
+ sc->ctx_tag = NULL;
+ }
+ }
+
+
+ /* Free, unmap and destroy all TX buffer descriptor chain pages. */
+ for (i = 0; i < TX_PAGES; i++ ) {
+ if (sc->tx_bd_chain[i] != NULL) {
+ bus_dmamem_free(
+ sc->tx_bd_chain_tag,
+ sc->tx_bd_chain[i],
+ sc->tx_bd_chain_map[i]);
+ sc->tx_bd_chain[i] = NULL;
+ }
+
+ if (sc->tx_bd_chain_map[i] != NULL) {
+ bus_dmamap_unload(
+ sc->tx_bd_chain_tag,
+ sc->tx_bd_chain_map[i]);
+ bus_dmamap_destroy(
+ sc->tx_bd_chain_tag,
+ sc->tx_bd_chain_map[i]);
+ sc->tx_bd_chain_map[i] = NULL;
+ }
+ }
+
+ /* Destroy the TX buffer descriptor tag. */
+ if (sc->tx_bd_chain_tag != NULL) {
+ bus_dma_tag_destroy(sc->tx_bd_chain_tag);
+ sc->tx_bd_chain_tag = NULL;
+ }
+
+
+ /* Free, unmap and destroy all RX buffer descriptor chain pages. */
+ for (i = 0; i < RX_PAGES; i++ ) {
+ if (sc->rx_bd_chain[i] != NULL) {
+ bus_dmamem_free(
+ sc->rx_bd_chain_tag,
+ sc->rx_bd_chain[i],
+ sc->rx_bd_chain_map[i]);
+ sc->rx_bd_chain[i] = NULL;
+ }
+
+ if (sc->rx_bd_chain_map[i] != NULL) {
+ bus_dmamap_unload(
+ sc->rx_bd_chain_tag,
+ sc->rx_bd_chain_map[i]);
+ bus_dmamap_destroy(
+ sc->rx_bd_chain_tag,
+ sc->rx_bd_chain_map[i]);
+ sc->rx_bd_chain_map[i] = NULL;
+ }
+ }
+
+ /* Destroy the RX buffer descriptor tag. */
+ if (sc->rx_bd_chain_tag != NULL) {
+ bus_dma_tag_destroy(sc->rx_bd_chain_tag);
+ sc->rx_bd_chain_tag = NULL;
+ }
+
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ /* Free, unmap and destroy all page buffer descriptor chain pages. */
+ for (i = 0; i < PG_PAGES; i++ ) {
+ if (sc->pg_bd_chain[i] != NULL) {
+ bus_dmamem_free(
+ sc->pg_bd_chain_tag,
+ sc->pg_bd_chain[i],
+ sc->pg_bd_chain_map[i]);
+ sc->pg_bd_chain[i] = NULL;
+ }
+
+ if (sc->pg_bd_chain_map[i] != NULL) {
+ bus_dmamap_unload(
+ sc->pg_bd_chain_tag,
+ sc->pg_bd_chain_map[i]);
+ bus_dmamap_destroy(
+ sc->pg_bd_chain_tag,
+ sc->pg_bd_chain_map[i]);
+ sc->pg_bd_chain_map[i] = NULL;
+ }
+ }
+
+ /* Destroy the page buffer descriptor tag. */
+ if (sc->pg_bd_chain_tag != NULL) {
+ bus_dma_tag_destroy(sc->pg_bd_chain_tag);
+ sc->pg_bd_chain_tag = NULL;
+ }
+#endif
+
+
+ /* Unload and destroy the TX mbuf maps. */
+ for (i = 0; i < TOTAL_TX_BD; i++) {
+ if (sc->tx_mbuf_map[i] != NULL) {
+ bus_dmamap_unload(sc->tx_mbuf_tag,
+ sc->tx_mbuf_map[i]);
+ bus_dmamap_destroy(sc->tx_mbuf_tag,
+ sc->tx_mbuf_map[i]);
+ sc->tx_mbuf_map[i] = NULL;
+ }
+ }
+
+ /* Destroy the TX mbuf tag. */
+ if (sc->tx_mbuf_tag != NULL) {
+ bus_dma_tag_destroy(sc->tx_mbuf_tag);
+ sc->tx_mbuf_tag = NULL;
+ }
+
+ /* Unload and destroy the RX mbuf maps. */
+ for (i = 0; i < TOTAL_RX_BD; i++) {
+ if (sc->rx_mbuf_map[i] != NULL) {
+ bus_dmamap_unload(sc->rx_mbuf_tag,
+ sc->rx_mbuf_map[i]);
+ bus_dmamap_destroy(sc->rx_mbuf_tag,
+ sc->rx_mbuf_map[i]);
+ sc->rx_mbuf_map[i] = NULL;
+ }
+ }
+
+ /* Destroy the RX mbuf tag. */
+ if (sc->rx_mbuf_tag != NULL) {
+ bus_dma_tag_destroy(sc->rx_mbuf_tag);
+ sc->rx_mbuf_tag = NULL;
+ }
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ /* Unload and destroy the page mbuf maps. */
+ for (i = 0; i < TOTAL_PG_BD; i++) {
+ if (sc->pg_mbuf_map[i] != NULL) {
+ bus_dmamap_unload(sc->pg_mbuf_tag,
+ sc->pg_mbuf_map[i]);
+ bus_dmamap_destroy(sc->pg_mbuf_tag,
+ sc->pg_mbuf_map[i]);
+ sc->pg_mbuf_map[i] = NULL;
+ }
+ }
+
+ /* Destroy the page mbuf tag. */
+ if (sc->pg_mbuf_tag != NULL) {
+ bus_dma_tag_destroy(sc->pg_mbuf_tag);
+ sc->pg_mbuf_tag = NULL;
+ }
+#endif
+
+ /* Destroy the parent tag */
+ if (sc->parent_tag != NULL) {
+ bus_dma_tag_destroy(sc->parent_tag);
+ sc->parent_tag = NULL;
+ }
+
+ DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_UNLOAD | BCE_VERBOSE_CTX);
+}
+
+
+/****************************************************************************/
+/* Get DMA memory from the OS. */
+/* */
+/* Validates that the OS has provided DMA buffers in response to a */
+/* bus_dmamap_load() call and saves the physical address of those buffers. */
+/* When the callback is used the OS will return 0 for the mapping function */
+/* (bus_dmamap_load()) so we use the value of map_arg->maxsegs to pass any */
+/* failures back to the caller. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_dma_map_addr(void *arg, bus_dma_segment_t *segs, int nseg, int error)
+{
+ bus_addr_t *busaddr = arg;
+
+ KASSERT(nseg == 1, ("%s(): Too many segments returned (%d)!",
+ __FUNCTION__, nseg));
+ /* Simulate a mapping failure. */
+ DBRUNIF(DB_RANDOMTRUE(dma_map_addr_failed_sim_control),
+ error = ENOMEM);
+
+ /* ToDo: How to increment debug sim_count variable here? */
+
+ /* Check for an error and signal the caller that an error occurred. */
+ if (error) {
+ *busaddr = 0;
+ } else {
+ *busaddr = segs->ds_addr;
+ }
+
+ return;
+}
+
+
+/****************************************************************************/
+/* Allocate any DMA memory needed by the driver. */
+/* */
+/* Allocates DMA memory needed for the various global structures needed by */
+/* hardware. */
+/* */
+/* Memory alignment requirements: */
+/* +-----------------+----------+----------+----------+----------+ */
+/* | | 5706 | 5708 | 5709 | 5716 | */
+/* +-----------------+----------+----------+----------+----------+ */
+/* |Status Block | 8 bytes | 8 bytes | 16 bytes | 16 bytes | */
+/* |Statistics Block | 8 bytes | 8 bytes | 16 bytes | 16 bytes | */
+/* |RX Buffers | 16 bytes | 16 bytes | 16 bytes | 16 bytes | */
+/* |PG Buffers | none | none | none | none | */
+/* |TX Buffers | none | none | none | none | */
+/* |Chain Pages(1) | 4KiB | 4KiB | 4KiB | 4KiB | */
+/* |Context Memory | | | | | */
+/* +-----------------+----------+----------+----------+----------+ */
+/* */
+/* (1) Must align with CPU page size (BCM_PAGE_SZIE). */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_dma_alloc(device_t dev)
+{
+ struct bce_softc *sc;
+ int i, error, rc = 0;
+ bus_size_t max_size, max_seg_size;
+ int max_segments;
+
+ sc = device_get_softc(dev);
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_VERBOSE_CTX);
+
+ /*
+ * Allocate the parent bus DMA tag appropriate for PCI.
+ */
+ if (bus_dma_tag_create(bus_get_dma_tag(dev), 1, BCE_DMA_BOUNDARY,
+ sc->max_bus_addr, BUS_SPACE_MAXADDR, NULL, NULL,
+ BUS_SPACE_MAXSIZE_32BIT, 0, BUS_SPACE_MAXSIZE_32BIT, 0, NULL, NULL,
+ &sc->parent_tag)) {
+ BCE_PRINTF("%s(%d): Could not allocate parent DMA tag!\n",
+ __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ /*
+ * Create a DMA tag for the status block, allocate and clear the
+ * memory, map the memory into DMA space, and fetch the physical
+ * address of the block.
+ */
+ if (bus_dma_tag_create(sc->parent_tag, BCE_DMA_ALIGN,
+ BCE_DMA_BOUNDARY, sc->max_bus_addr, BUS_SPACE_MAXADDR,
+ NULL, NULL, BCE_STATUS_BLK_SZ, 1, BCE_STATUS_BLK_SZ,
+ 0, NULL, NULL, &sc->status_tag)) {
+ BCE_PRINTF("%s(%d): Could not allocate status block "
+ "DMA tag!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ if(bus_dmamem_alloc(sc->status_tag, (void **)&sc->status_block,
+ BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_COHERENT,
+ &sc->status_map)) {
+ BCE_PRINTF("%s(%d): Could not allocate status block "
+ "DMA memory!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ error = bus_dmamap_load(sc->status_tag, sc->status_map,
+ sc->status_block, BCE_STATUS_BLK_SZ, bce_dma_map_addr,
+ &sc->status_block_paddr, BUS_DMA_NOWAIT);
+
+ if (error) {
+ BCE_PRINTF("%s(%d): Could not map status block "
+ "DMA memory!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): status_block_paddr = 0x%jX\n",
+ __FUNCTION__, (uintmax_t) sc->status_block_paddr);
+
+ /*
+ * Create a DMA tag for the statistics block, allocate and clear the
+ * memory, map the memory into DMA space, and fetch the physical
+ * address of the block.
+ */
+ if (bus_dma_tag_create(sc->parent_tag, BCE_DMA_ALIGN,
+ BCE_DMA_BOUNDARY, sc->max_bus_addr, BUS_SPACE_MAXADDR,
+ NULL, NULL, BCE_STATS_BLK_SZ, 1, BCE_STATS_BLK_SZ,
+ 0, NULL, NULL, &sc->stats_tag)) {
+ BCE_PRINTF("%s(%d): Could not allocate statistics block "
+ "DMA tag!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ if (bus_dmamem_alloc(sc->stats_tag, (void **)&sc->stats_block,
+ BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_COHERENT, &sc->stats_map)) {
+ BCE_PRINTF("%s(%d): Could not allocate statistics block "
+ "DMA memory!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ error = bus_dmamap_load(sc->stats_tag, sc->stats_map,
+ sc->stats_block, BCE_STATS_BLK_SZ, bce_dma_map_addr,
+ &sc->stats_block_paddr, BUS_DMA_NOWAIT);
+
+ if(error) {
+ BCE_PRINTF("%s(%d): Could not map statistics block "
+ "DMA memory!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): stats_block_paddr = 0x%jX\n",
+ __FUNCTION__, (uintmax_t) sc->stats_block_paddr);
+
+ /* BCM5709 uses host memory as cache for context memory. */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ sc->ctx_pages = 0x2000 / BCM_PAGE_SIZE;
+ if (sc->ctx_pages == 0)
+ sc->ctx_pages = 1;
+
+ DBRUNIF((sc->ctx_pages > 512),
+ BCE_PRINTF("%s(%d): Too many CTX pages! %d > 512\n",
+ __FILE__, __LINE__, sc->ctx_pages));
+
+ /*
+ * Create a DMA tag for the context pages,
+ * allocate and clear the memory, map the
+ * memory into DMA space, and fetch the
+ * physical address of the block.
+ */
+ if(bus_dma_tag_create(sc->parent_tag, BCM_PAGE_SIZE,
+ BCE_DMA_BOUNDARY, sc->max_bus_addr, BUS_SPACE_MAXADDR,
+ NULL, NULL, BCM_PAGE_SIZE, 1, BCM_PAGE_SIZE,
+ 0, NULL, NULL, &sc->ctx_tag)) {
+ BCE_PRINTF("%s(%d): Could not allocate CTX "
+ "DMA tag!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ for (i = 0; i < sc->ctx_pages; i++) {
+
+ if(bus_dmamem_alloc(sc->ctx_tag,
+ (void **)&sc->ctx_block[i],
+ BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_COHERENT,
+ &sc->ctx_map[i])) {
+ BCE_PRINTF("%s(%d): Could not allocate CTX "
+ "DMA memory!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ error = bus_dmamap_load(sc->ctx_tag, sc->ctx_map[i],
+ sc->ctx_block[i], BCM_PAGE_SIZE, bce_dma_map_addr,
+ &sc->ctx_paddr[i], BUS_DMA_NOWAIT);
+
+ if (error) {
+ BCE_PRINTF("%s(%d): Could not map CTX "
+ "DMA memory!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): ctx_paddr[%d] "
+ "= 0x%jX\n", __FUNCTION__, i,
+ (uintmax_t) sc->ctx_paddr[i]);
+ }
+ }
+
+ /*
+ * Create a DMA tag for the TX buffer descriptor chain,
+ * allocate and clear the memory, and fetch the
+ * physical address of the block.
+ */
+ if(bus_dma_tag_create(sc->parent_tag, BCM_PAGE_SIZE, BCE_DMA_BOUNDARY,
+ sc->max_bus_addr, BUS_SPACE_MAXADDR, NULL, NULL,
+ BCE_TX_CHAIN_PAGE_SZ, 1, BCE_TX_CHAIN_PAGE_SZ, 0,
+ NULL, NULL, &sc->tx_bd_chain_tag)) {
+ BCE_PRINTF("%s(%d): Could not allocate TX descriptor "
+ "chain DMA tag!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ for (i = 0; i < TX_PAGES; i++) {
+
+ if(bus_dmamem_alloc(sc->tx_bd_chain_tag,
+ (void **)&sc->tx_bd_chain[i],
+ BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_COHERENT,
+ &sc->tx_bd_chain_map[i])) {
+ BCE_PRINTF("%s(%d): Could not allocate TX descriptor "
+ "chain DMA memory!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ error = bus_dmamap_load(sc->tx_bd_chain_tag,
+ sc->tx_bd_chain_map[i], sc->tx_bd_chain[i],
+ BCE_TX_CHAIN_PAGE_SZ, bce_dma_map_addr,
+ &sc->tx_bd_chain_paddr[i], BUS_DMA_NOWAIT);
+
+ if (error) {
+ BCE_PRINTF("%s(%d): Could not map TX descriptor "
+ "chain DMA memory!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): tx_bd_chain_paddr[%d] = "
+ "0x%jX\n", __FUNCTION__, i,
+ (uintmax_t) sc->tx_bd_chain_paddr[i]);
+ }
+
+ /* Check the required size before mapping to conserve resources. */
+ if (bce_tso_enable) {
+ max_size = BCE_TSO_MAX_SIZE;
+ max_segments = BCE_MAX_SEGMENTS;
+ max_seg_size = BCE_TSO_MAX_SEG_SIZE;
+ } else {
+ max_size = MCLBYTES * BCE_MAX_SEGMENTS;
+ max_segments = BCE_MAX_SEGMENTS;
+ max_seg_size = MCLBYTES;
+ }
+
+ /* Create a DMA tag for TX mbufs. */
+ if (bus_dma_tag_create(sc->parent_tag, 1, BCE_DMA_BOUNDARY,
+ sc->max_bus_addr, BUS_SPACE_MAXADDR, NULL, NULL, max_size,
+ max_segments, max_seg_size, 0, NULL, NULL, &sc->tx_mbuf_tag)) {
+ BCE_PRINTF("%s(%d): Could not allocate TX mbuf DMA tag!\n",
+ __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ /* Create DMA maps for the TX mbufs clusters. */
+ for (i = 0; i < TOTAL_TX_BD; i++) {
+ if (bus_dmamap_create(sc->tx_mbuf_tag, BUS_DMA_NOWAIT,
+ &sc->tx_mbuf_map[i])) {
+ BCE_PRINTF("%s(%d): Unable to create TX mbuf DMA "
+ "map!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+ }
+
+ /*
+ * Create a DMA tag for the RX buffer descriptor chain,
+ * allocate and clear the memory, and fetch the physical
+ * address of the blocks.
+ */
+ if (bus_dma_tag_create(sc->parent_tag, BCM_PAGE_SIZE,
+ BCE_DMA_BOUNDARY, BUS_SPACE_MAXADDR,
+ sc->max_bus_addr, NULL, NULL,
+ BCE_RX_CHAIN_PAGE_SZ, 1, BCE_RX_CHAIN_PAGE_SZ,
+ 0, NULL, NULL, &sc->rx_bd_chain_tag)) {
+ BCE_PRINTF("%s(%d): Could not allocate RX descriptor chain "
+ "DMA tag!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ for (i = 0; i < RX_PAGES; i++) {
+
+ if (bus_dmamem_alloc(sc->rx_bd_chain_tag,
+ (void **)&sc->rx_bd_chain[i],
+ BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_COHERENT,
+ &sc->rx_bd_chain_map[i])) {
+ BCE_PRINTF("%s(%d): Could not allocate RX descriptor "
+ "chain DMA memory!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ error = bus_dmamap_load(sc->rx_bd_chain_tag,
+ sc->rx_bd_chain_map[i], sc->rx_bd_chain[i],
+ BCE_RX_CHAIN_PAGE_SZ, bce_dma_map_addr,
+ &sc->rx_bd_chain_paddr[i], BUS_DMA_NOWAIT);
+
+ if (error) {
+ BCE_PRINTF("%s(%d): Could not map RX descriptor "
+ "chain DMA memory!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): rx_bd_chain_paddr[%d] = "
+ "0x%jX\n", __FUNCTION__, i,
+ (uintmax_t) sc->rx_bd_chain_paddr[i]);
+ }
+
+ /*
+ * Create a DMA tag for RX mbufs.
+ */
+#ifdef BCE_JUMBO_HDRSPLIT
+ max_size = max_seg_size = ((sc->rx_bd_mbuf_alloc_size < MCLBYTES) ?
+ MCLBYTES : sc->rx_bd_mbuf_alloc_size);
+#else
+ max_size = max_seg_size = MJUM9BYTES;
+#endif
+ max_segments = 1;
+
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): Creating rx_mbuf_tag "
+ "(max size = 0x%jX max segments = %d, max segment "
+ "size = 0x%jX)\n", __FUNCTION__, (uintmax_t) max_size,
+ max_segments, (uintmax_t) max_seg_size);
+
+ if (bus_dma_tag_create(sc->parent_tag, BCE_RX_BUF_ALIGN,
+ BCE_DMA_BOUNDARY, sc->max_bus_addr, BUS_SPACE_MAXADDR, NULL, NULL,
+ max_size, max_segments, max_seg_size, 0, NULL, NULL,
+ &sc->rx_mbuf_tag)) {
+ BCE_PRINTF("%s(%d): Could not allocate RX mbuf DMA tag!\n",
+ __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ /* Create DMA maps for the RX mbuf clusters. */
+ for (i = 0; i < TOTAL_RX_BD; i++) {
+ if (bus_dmamap_create(sc->rx_mbuf_tag, BUS_DMA_NOWAIT,
+ &sc->rx_mbuf_map[i])) {
+ BCE_PRINTF("%s(%d): Unable to create RX mbuf "
+ "DMA map!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+ }
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ /*
+ * Create a DMA tag for the page buffer descriptor chain,
+ * allocate and clear the memory, and fetch the physical
+ * address of the blocks.
+ */
+ if (bus_dma_tag_create(sc->parent_tag, BCM_PAGE_SIZE,
+ BCE_DMA_BOUNDARY, BUS_SPACE_MAXADDR, sc->max_bus_addr,
+ NULL, NULL, BCE_PG_CHAIN_PAGE_SZ, 1, BCE_PG_CHAIN_PAGE_SZ,
+ 0, NULL, NULL, &sc->pg_bd_chain_tag)) {
+ BCE_PRINTF("%s(%d): Could not allocate page descriptor "
+ "chain DMA tag!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ for (i = 0; i < PG_PAGES; i++) {
+
+ if (bus_dmamem_alloc(sc->pg_bd_chain_tag,
+ (void **)&sc->pg_bd_chain[i],
+ BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_COHERENT,
+ &sc->pg_bd_chain_map[i])) {
+ BCE_PRINTF("%s(%d): Could not allocate page "
+ "descriptor chain DMA memory!\n",
+ __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ error = bus_dmamap_load(sc->pg_bd_chain_tag,
+ sc->pg_bd_chain_map[i], sc->pg_bd_chain[i],
+ BCE_PG_CHAIN_PAGE_SZ, bce_dma_map_addr,
+ &sc->pg_bd_chain_paddr[i], BUS_DMA_NOWAIT);
+
+ if (error) {
+ BCE_PRINTF("%s(%d): Could not map page descriptor "
+ "chain DMA memory!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): pg_bd_chain_paddr[%d] = "
+ "0x%jX\n", __FUNCTION__, i,
+ (uintmax_t) sc->pg_bd_chain_paddr[i]);
+ }
+
+ /*
+ * Create a DMA tag for page mbufs.
+ */
+ max_size = max_seg_size = ((sc->pg_bd_mbuf_alloc_size < MCLBYTES) ?
+ MCLBYTES : sc->pg_bd_mbuf_alloc_size);
+
+ if (bus_dma_tag_create(sc->parent_tag, 1, BCE_DMA_BOUNDARY,
+ sc->max_bus_addr, BUS_SPACE_MAXADDR, NULL, NULL,
+ max_size, 1, max_seg_size, 0, NULL, NULL, &sc->pg_mbuf_tag)) {
+ BCE_PRINTF("%s(%d): Could not allocate page mbuf "
+ "DMA tag!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+
+ /* Create DMA maps for the page mbuf clusters. */
+ for (i = 0; i < TOTAL_PG_BD; i++) {
+ if (bus_dmamap_create(sc->pg_mbuf_tag, BUS_DMA_NOWAIT,
+ &sc->pg_mbuf_map[i])) {
+ BCE_PRINTF("%s(%d): Unable to create page mbuf "
+ "DMA map!\n", __FILE__, __LINE__);
+ rc = ENOMEM;
+ goto bce_dma_alloc_exit;
+ }
+ }
+#endif
+
+bce_dma_alloc_exit:
+ DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_CTX);
+ return(rc);
+}
+
+
+/****************************************************************************/
+/* Release all resources used by the driver. */
+/* */
+/* Releases all resources acquired by the driver including interrupts, */
+/* interrupt handler, interfaces, mutexes, and DMA memory. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_release_resources(struct bce_softc *sc)
+{
+ device_t dev;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ dev = sc->bce_dev;
+
+ bce_dma_free(sc);
+
+ if (sc->bce_intrhand != NULL) {
+ DBPRINT(sc, BCE_INFO_RESET, "Removing interrupt handler.\n");
+ bus_teardown_intr(dev, sc->bce_res_irq, sc->bce_intrhand);
+ }
+
+ if (sc->bce_res_irq != NULL) {
+ DBPRINT(sc, BCE_INFO_RESET, "Releasing IRQ.\n");
+ bus_release_resource(dev, SYS_RES_IRQ, sc->bce_irq_rid,
+ sc->bce_res_irq);
+ }
+
+ if (sc->bce_flags & (BCE_USING_MSI_FLAG | BCE_USING_MSIX_FLAG)) {
+ DBPRINT(sc, BCE_INFO_RESET, "Releasing MSI/MSI-X vector.\n");
+ pci_release_msi(dev);
+ }
+
+ if (sc->bce_res_mem != NULL) {
+ DBPRINT(sc, BCE_INFO_RESET, "Releasing PCI memory.\n");
+ bus_release_resource(dev, SYS_RES_MEMORY, PCIR_BAR(0),
+ sc->bce_res_mem);
+ }
+
+ if (sc->bce_ifp != NULL) {
+ DBPRINT(sc, BCE_INFO_RESET, "Releasing IF.\n");
+ if_free(sc->bce_ifp);
+ }
+
+ if (mtx_initialized(&sc->bce_mtx))
+ BCE_LOCK_DESTROY(sc);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Firmware synchronization. */
+/* */
+/* Before performing certain events such as a chip reset, synchronize with */
+/* the firmware first. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_fw_sync(struct bce_softc *sc, u32 msg_data)
+{
+ int i, rc = 0;
+ u32 val;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ /* Don't waste any time if we've timed out before. */
+ if (sc->bce_fw_timed_out == TRUE) {
+ rc = EBUSY;
+ goto bce_fw_sync_exit;
+ }
+
+ /* Increment the message sequence number. */
+ sc->bce_fw_wr_seq++;
+ msg_data |= sc->bce_fw_wr_seq;
+
+ DBPRINT(sc, BCE_VERBOSE_FIRMWARE, "bce_fw_sync(): msg_data = "
+ "0x%08X\n", msg_data);
+
+ /* Send the message to the bootcode driver mailbox. */
+ bce_shmem_wr(sc, BCE_DRV_MB, msg_data);
+
+ /* Wait for the bootcode to acknowledge the message. */
+ for (i = 0; i < FW_ACK_TIME_OUT_MS; i++) {
+ /* Check for a response in the bootcode firmware mailbox. */
+ val = bce_shmem_rd(sc, BCE_FW_MB);
+ if ((val & BCE_FW_MSG_ACK) == (msg_data & BCE_DRV_MSG_SEQ))
+ break;
+ DELAY(1000);
+ }
+
+ /* If we've timed out, tell bootcode that we've stopped waiting. */
+ if (((val & BCE_FW_MSG_ACK) != (msg_data & BCE_DRV_MSG_SEQ)) &&
+ ((msg_data & BCE_DRV_MSG_DATA) != BCE_DRV_MSG_DATA_WAIT0)) {
+
+ BCE_PRINTF("%s(%d): Firmware synchronization timeout! "
+ "msg_data = 0x%08X\n", __FILE__, __LINE__, msg_data);
+
+ msg_data &= ~BCE_DRV_MSG_CODE;
+ msg_data |= BCE_DRV_MSG_CODE_FW_TIMEOUT;
+
+ bce_shmem_wr(sc, BCE_DRV_MB, msg_data);
+
+ sc->bce_fw_timed_out = TRUE;
+ rc = EBUSY;
+ }
+
+bce_fw_sync_exit:
+ DBEXIT(BCE_VERBOSE_RESET);
+ return (rc);
+}
+
+
+/****************************************************************************/
+/* Load Receive Virtual 2 Physical (RV2P) processor firmware. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_load_rv2p_fw(struct bce_softc *sc, u32 *rv2p_code,
+ u32 rv2p_code_len, u32 rv2p_proc)
+{
+ int i;
+ u32 val;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ /* Set the page size used by RV2P. */
+ if (rv2p_proc == RV2P_PROC2) {
+ BCE_RV2P_PROC2_CHG_MAX_BD_PAGE(USABLE_RX_BD_PER_PAGE);
+ }
+
+ for (i = 0; i < rv2p_code_len; i += 8) {
+ REG_WR(sc, BCE_RV2P_INSTR_HIGH, *rv2p_code);
+ rv2p_code++;
+ REG_WR(sc, BCE_RV2P_INSTR_LOW, *rv2p_code);
+ rv2p_code++;
+
+ if (rv2p_proc == RV2P_PROC1) {
+ val = (i / 8) | BCE_RV2P_PROC1_ADDR_CMD_RDWR;
+ REG_WR(sc, BCE_RV2P_PROC1_ADDR_CMD, val);
+ }
+ else {
+ val = (i / 8) | BCE_RV2P_PROC2_ADDR_CMD_RDWR;
+ REG_WR(sc, BCE_RV2P_PROC2_ADDR_CMD, val);
+ }
+ }
+
+ /* Reset the processor, un-stall is done later. */
+ if (rv2p_proc == RV2P_PROC1) {
+ REG_WR(sc, BCE_RV2P_COMMAND, BCE_RV2P_COMMAND_PROC1_RESET);
+ }
+ else {
+ REG_WR(sc, BCE_RV2P_COMMAND, BCE_RV2P_COMMAND_PROC2_RESET);
+ }
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Load RISC processor firmware. */
+/* */
+/* Loads firmware from the file if_bcefw.h into the scratchpad memory */
+/* associated with a particular processor. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_load_cpu_fw(struct bce_softc *sc, struct cpu_reg *cpu_reg,
+ struct fw_info *fw)
+{
+ u32 offset;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ bce_halt_cpu(sc, cpu_reg);
+
+ /* Load the Text area. */
+ offset = cpu_reg->spad_base + (fw->text_addr - cpu_reg->mips_view_base);
+ if (fw->text) {
+ int j;
+
+ for (j = 0; j < (fw->text_len / 4); j++, offset += 4) {
+ REG_WR_IND(sc, offset, fw->text[j]);
+ }
+ }
+
+ /* Load the Data area. */
+ offset = cpu_reg->spad_base + (fw->data_addr - cpu_reg->mips_view_base);
+ if (fw->data) {
+ int j;
+
+ for (j = 0; j < (fw->data_len / 4); j++, offset += 4) {
+ REG_WR_IND(sc, offset, fw->data[j]);
+ }
+ }
+
+ /* Load the SBSS area. */
+ offset = cpu_reg->spad_base + (fw->sbss_addr - cpu_reg->mips_view_base);
+ if (fw->sbss) {
+ int j;
+
+ for (j = 0; j < (fw->sbss_len / 4); j++, offset += 4) {
+ REG_WR_IND(sc, offset, fw->sbss[j]);
+ }
+ }
+
+ /* Load the BSS area. */
+ offset = cpu_reg->spad_base + (fw->bss_addr - cpu_reg->mips_view_base);
+ if (fw->bss) {
+ int j;
+
+ for (j = 0; j < (fw->bss_len/4); j++, offset += 4) {
+ REG_WR_IND(sc, offset, fw->bss[j]);
+ }
+ }
+
+ /* Load the Read-Only area. */
+ offset = cpu_reg->spad_base +
+ (fw->rodata_addr - cpu_reg->mips_view_base);
+ if (fw->rodata) {
+ int j;
+
+ for (j = 0; j < (fw->rodata_len / 4); j++, offset += 4) {
+ REG_WR_IND(sc, offset, fw->rodata[j]);
+ }
+ }
+
+ /* Clear the pre-fetch instruction and set the FW start address. */
+ REG_WR_IND(sc, cpu_reg->inst, 0);
+ REG_WR_IND(sc, cpu_reg->pc, fw->start_addr);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Starts the RISC processor. */
+/* */
+/* Assumes the CPU starting address has already been set. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_start_cpu(struct bce_softc *sc, struct cpu_reg *cpu_reg)
+{
+ u32 val;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ /* Start the CPU. */
+ val = REG_RD_IND(sc, cpu_reg->mode);
+ val &= ~cpu_reg->mode_value_halt;
+ REG_WR_IND(sc, cpu_reg->state, cpu_reg->state_value_clear);
+ REG_WR_IND(sc, cpu_reg->mode, val);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Halts the RISC processor. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_halt_cpu(struct bce_softc *sc, struct cpu_reg *cpu_reg)
+{
+ u32 val;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ /* Halt the CPU. */
+ val = REG_RD_IND(sc, cpu_reg->mode);
+ val |= cpu_reg->mode_value_halt;
+ REG_WR_IND(sc, cpu_reg->mode, val);
+ REG_WR_IND(sc, cpu_reg->state, cpu_reg->state_value_clear);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Initialize the RX CPU. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_start_rxp_cpu(struct bce_softc *sc)
+{
+ struct cpu_reg cpu_reg;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ cpu_reg.mode = BCE_RXP_CPU_MODE;
+ cpu_reg.mode_value_halt = BCE_RXP_CPU_MODE_SOFT_HALT;
+ cpu_reg.mode_value_sstep = BCE_RXP_CPU_MODE_STEP_ENA;
+ cpu_reg.state = BCE_RXP_CPU_STATE;
+ cpu_reg.state_value_clear = 0xffffff;
+ cpu_reg.gpr0 = BCE_RXP_CPU_REG_FILE;
+ cpu_reg.evmask = BCE_RXP_CPU_EVENT_MASK;
+ cpu_reg.pc = BCE_RXP_CPU_PROGRAM_COUNTER;
+ cpu_reg.inst = BCE_RXP_CPU_INSTRUCTION;
+ cpu_reg.bp = BCE_RXP_CPU_HW_BREAKPOINT;
+ cpu_reg.spad_base = BCE_RXP_SCRATCH;
+ cpu_reg.mips_view_base = 0x8000000;
+
+ DBPRINT(sc, BCE_INFO_RESET, "Starting RX firmware.\n");
+ bce_start_cpu(sc, &cpu_reg);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Initialize the RX CPU. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_init_rxp_cpu(struct bce_softc *sc)
+{
+ struct cpu_reg cpu_reg;
+ struct fw_info fw;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ cpu_reg.mode = BCE_RXP_CPU_MODE;
+ cpu_reg.mode_value_halt = BCE_RXP_CPU_MODE_SOFT_HALT;
+ cpu_reg.mode_value_sstep = BCE_RXP_CPU_MODE_STEP_ENA;
+ cpu_reg.state = BCE_RXP_CPU_STATE;
+ cpu_reg.state_value_clear = 0xffffff;
+ cpu_reg.gpr0 = BCE_RXP_CPU_REG_FILE;
+ cpu_reg.evmask = BCE_RXP_CPU_EVENT_MASK;
+ cpu_reg.pc = BCE_RXP_CPU_PROGRAM_COUNTER;
+ cpu_reg.inst = BCE_RXP_CPU_INSTRUCTION;
+ cpu_reg.bp = BCE_RXP_CPU_HW_BREAKPOINT;
+ cpu_reg.spad_base = BCE_RXP_SCRATCH;
+ cpu_reg.mips_view_base = 0x8000000;
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ fw.ver_major = bce_RXP_b09FwReleaseMajor;
+ fw.ver_minor = bce_RXP_b09FwReleaseMinor;
+ fw.ver_fix = bce_RXP_b09FwReleaseFix;
+ fw.start_addr = bce_RXP_b09FwStartAddr;
+
+ fw.text_addr = bce_RXP_b09FwTextAddr;
+ fw.text_len = bce_RXP_b09FwTextLen;
+ fw.text_index = 0;
+ fw.text = bce_RXP_b09FwText;
+
+ fw.data_addr = bce_RXP_b09FwDataAddr;
+ fw.data_len = bce_RXP_b09FwDataLen;
+ fw.data_index = 0;
+ fw.data = bce_RXP_b09FwData;
+
+ fw.sbss_addr = bce_RXP_b09FwSbssAddr;
+ fw.sbss_len = bce_RXP_b09FwSbssLen;
+ fw.sbss_index = 0;
+ fw.sbss = bce_RXP_b09FwSbss;
+
+ fw.bss_addr = bce_RXP_b09FwBssAddr;
+ fw.bss_len = bce_RXP_b09FwBssLen;
+ fw.bss_index = 0;
+ fw.bss = bce_RXP_b09FwBss;
+
+ fw.rodata_addr = bce_RXP_b09FwRodataAddr;
+ fw.rodata_len = bce_RXP_b09FwRodataLen;
+ fw.rodata_index = 0;
+ fw.rodata = bce_RXP_b09FwRodata;
+ } else {
+ fw.ver_major = bce_RXP_b06FwReleaseMajor;
+ fw.ver_minor = bce_RXP_b06FwReleaseMinor;
+ fw.ver_fix = bce_RXP_b06FwReleaseFix;
+ fw.start_addr = bce_RXP_b06FwStartAddr;
+
+ fw.text_addr = bce_RXP_b06FwTextAddr;
+ fw.text_len = bce_RXP_b06FwTextLen;
+ fw.text_index = 0;
+ fw.text = bce_RXP_b06FwText;
+
+ fw.data_addr = bce_RXP_b06FwDataAddr;
+ fw.data_len = bce_RXP_b06FwDataLen;
+ fw.data_index = 0;
+ fw.data = bce_RXP_b06FwData;
+
+ fw.sbss_addr = bce_RXP_b06FwSbssAddr;
+ fw.sbss_len = bce_RXP_b06FwSbssLen;
+ fw.sbss_index = 0;
+ fw.sbss = bce_RXP_b06FwSbss;
+
+ fw.bss_addr = bce_RXP_b06FwBssAddr;
+ fw.bss_len = bce_RXP_b06FwBssLen;
+ fw.bss_index = 0;
+ fw.bss = bce_RXP_b06FwBss;
+
+ fw.rodata_addr = bce_RXP_b06FwRodataAddr;
+ fw.rodata_len = bce_RXP_b06FwRodataLen;
+ fw.rodata_index = 0;
+ fw.rodata = bce_RXP_b06FwRodata;
+ }
+
+ DBPRINT(sc, BCE_INFO_RESET, "Loading RX firmware.\n");
+ bce_load_cpu_fw(sc, &cpu_reg, &fw);
+
+ /* Delay RXP start until initialization is complete. */
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Initialize the TX CPU. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_init_txp_cpu(struct bce_softc *sc)
+{
+ struct cpu_reg cpu_reg;
+ struct fw_info fw;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ cpu_reg.mode = BCE_TXP_CPU_MODE;
+ cpu_reg.mode_value_halt = BCE_TXP_CPU_MODE_SOFT_HALT;
+ cpu_reg.mode_value_sstep = BCE_TXP_CPU_MODE_STEP_ENA;
+ cpu_reg.state = BCE_TXP_CPU_STATE;
+ cpu_reg.state_value_clear = 0xffffff;
+ cpu_reg.gpr0 = BCE_TXP_CPU_REG_FILE;
+ cpu_reg.evmask = BCE_TXP_CPU_EVENT_MASK;
+ cpu_reg.pc = BCE_TXP_CPU_PROGRAM_COUNTER;
+ cpu_reg.inst = BCE_TXP_CPU_INSTRUCTION;
+ cpu_reg.bp = BCE_TXP_CPU_HW_BREAKPOINT;
+ cpu_reg.spad_base = BCE_TXP_SCRATCH;
+ cpu_reg.mips_view_base = 0x8000000;
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ fw.ver_major = bce_TXP_b09FwReleaseMajor;
+ fw.ver_minor = bce_TXP_b09FwReleaseMinor;
+ fw.ver_fix = bce_TXP_b09FwReleaseFix;
+ fw.start_addr = bce_TXP_b09FwStartAddr;
+
+ fw.text_addr = bce_TXP_b09FwTextAddr;
+ fw.text_len = bce_TXP_b09FwTextLen;
+ fw.text_index = 0;
+ fw.text = bce_TXP_b09FwText;
+
+ fw.data_addr = bce_TXP_b09FwDataAddr;
+ fw.data_len = bce_TXP_b09FwDataLen;
+ fw.data_index = 0;
+ fw.data = bce_TXP_b09FwData;
+
+ fw.sbss_addr = bce_TXP_b09FwSbssAddr;
+ fw.sbss_len = bce_TXP_b09FwSbssLen;
+ fw.sbss_index = 0;
+ fw.sbss = bce_TXP_b09FwSbss;
+
+ fw.bss_addr = bce_TXP_b09FwBssAddr;
+ fw.bss_len = bce_TXP_b09FwBssLen;
+ fw.bss_index = 0;
+ fw.bss = bce_TXP_b09FwBss;
+
+ fw.rodata_addr = bce_TXP_b09FwRodataAddr;
+ fw.rodata_len = bce_TXP_b09FwRodataLen;
+ fw.rodata_index = 0;
+ fw.rodata = bce_TXP_b09FwRodata;
+ } else {
+ fw.ver_major = bce_TXP_b06FwReleaseMajor;
+ fw.ver_minor = bce_TXP_b06FwReleaseMinor;
+ fw.ver_fix = bce_TXP_b06FwReleaseFix;
+ fw.start_addr = bce_TXP_b06FwStartAddr;
+
+ fw.text_addr = bce_TXP_b06FwTextAddr;
+ fw.text_len = bce_TXP_b06FwTextLen;
+ fw.text_index = 0;
+ fw.text = bce_TXP_b06FwText;
+
+ fw.data_addr = bce_TXP_b06FwDataAddr;
+ fw.data_len = bce_TXP_b06FwDataLen;
+ fw.data_index = 0;
+ fw.data = bce_TXP_b06FwData;
+
+ fw.sbss_addr = bce_TXP_b06FwSbssAddr;
+ fw.sbss_len = bce_TXP_b06FwSbssLen;
+ fw.sbss_index = 0;
+ fw.sbss = bce_TXP_b06FwSbss;
+
+ fw.bss_addr = bce_TXP_b06FwBssAddr;
+ fw.bss_len = bce_TXP_b06FwBssLen;
+ fw.bss_index = 0;
+ fw.bss = bce_TXP_b06FwBss;
+
+ fw.rodata_addr = bce_TXP_b06FwRodataAddr;
+ fw.rodata_len = bce_TXP_b06FwRodataLen;
+ fw.rodata_index = 0;
+ fw.rodata = bce_TXP_b06FwRodata;
+ }
+
+ DBPRINT(sc, BCE_INFO_RESET, "Loading TX firmware.\n");
+ bce_load_cpu_fw(sc, &cpu_reg, &fw);
+ bce_start_cpu(sc, &cpu_reg);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Initialize the TPAT CPU. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_init_tpat_cpu(struct bce_softc *sc)
+{
+ struct cpu_reg cpu_reg;
+ struct fw_info fw;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ cpu_reg.mode = BCE_TPAT_CPU_MODE;
+ cpu_reg.mode_value_halt = BCE_TPAT_CPU_MODE_SOFT_HALT;
+ cpu_reg.mode_value_sstep = BCE_TPAT_CPU_MODE_STEP_ENA;
+ cpu_reg.state = BCE_TPAT_CPU_STATE;
+ cpu_reg.state_value_clear = 0xffffff;
+ cpu_reg.gpr0 = BCE_TPAT_CPU_REG_FILE;
+ cpu_reg.evmask = BCE_TPAT_CPU_EVENT_MASK;
+ cpu_reg.pc = BCE_TPAT_CPU_PROGRAM_COUNTER;
+ cpu_reg.inst = BCE_TPAT_CPU_INSTRUCTION;
+ cpu_reg.bp = BCE_TPAT_CPU_HW_BREAKPOINT;
+ cpu_reg.spad_base = BCE_TPAT_SCRATCH;
+ cpu_reg.mips_view_base = 0x8000000;
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ fw.ver_major = bce_TPAT_b09FwReleaseMajor;
+ fw.ver_minor = bce_TPAT_b09FwReleaseMinor;
+ fw.ver_fix = bce_TPAT_b09FwReleaseFix;
+ fw.start_addr = bce_TPAT_b09FwStartAddr;
+
+ fw.text_addr = bce_TPAT_b09FwTextAddr;
+ fw.text_len = bce_TPAT_b09FwTextLen;
+ fw.text_index = 0;
+ fw.text = bce_TPAT_b09FwText;
+
+ fw.data_addr = bce_TPAT_b09FwDataAddr;
+ fw.data_len = bce_TPAT_b09FwDataLen;
+ fw.data_index = 0;
+ fw.data = bce_TPAT_b09FwData;
+
+ fw.sbss_addr = bce_TPAT_b09FwSbssAddr;
+ fw.sbss_len = bce_TPAT_b09FwSbssLen;
+ fw.sbss_index = 0;
+ fw.sbss = bce_TPAT_b09FwSbss;
+
+ fw.bss_addr = bce_TPAT_b09FwBssAddr;
+ fw.bss_len = bce_TPAT_b09FwBssLen;
+ fw.bss_index = 0;
+ fw.bss = bce_TPAT_b09FwBss;
+
+ fw.rodata_addr = bce_TPAT_b09FwRodataAddr;
+ fw.rodata_len = bce_TPAT_b09FwRodataLen;
+ fw.rodata_index = 0;
+ fw.rodata = bce_TPAT_b09FwRodata;
+ } else {
+ fw.ver_major = bce_TPAT_b06FwReleaseMajor;
+ fw.ver_minor = bce_TPAT_b06FwReleaseMinor;
+ fw.ver_fix = bce_TPAT_b06FwReleaseFix;
+ fw.start_addr = bce_TPAT_b06FwStartAddr;
+
+ fw.text_addr = bce_TPAT_b06FwTextAddr;
+ fw.text_len = bce_TPAT_b06FwTextLen;
+ fw.text_index = 0;
+ fw.text = bce_TPAT_b06FwText;
+
+ fw.data_addr = bce_TPAT_b06FwDataAddr;
+ fw.data_len = bce_TPAT_b06FwDataLen;
+ fw.data_index = 0;
+ fw.data = bce_TPAT_b06FwData;
+
+ fw.sbss_addr = bce_TPAT_b06FwSbssAddr;
+ fw.sbss_len = bce_TPAT_b06FwSbssLen;
+ fw.sbss_index = 0;
+ fw.sbss = bce_TPAT_b06FwSbss;
+
+ fw.bss_addr = bce_TPAT_b06FwBssAddr;
+ fw.bss_len = bce_TPAT_b06FwBssLen;
+ fw.bss_index = 0;
+ fw.bss = bce_TPAT_b06FwBss;
+
+ fw.rodata_addr = bce_TPAT_b06FwRodataAddr;
+ fw.rodata_len = bce_TPAT_b06FwRodataLen;
+ fw.rodata_index = 0;
+ fw.rodata = bce_TPAT_b06FwRodata;
+ }
+
+ DBPRINT(sc, BCE_INFO_RESET, "Loading TPAT firmware.\n");
+ bce_load_cpu_fw(sc, &cpu_reg, &fw);
+ bce_start_cpu(sc, &cpu_reg);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Initialize the CP CPU. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_init_cp_cpu(struct bce_softc *sc)
+{
+ struct cpu_reg cpu_reg;
+ struct fw_info fw;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ cpu_reg.mode = BCE_CP_CPU_MODE;
+ cpu_reg.mode_value_halt = BCE_CP_CPU_MODE_SOFT_HALT;
+ cpu_reg.mode_value_sstep = BCE_CP_CPU_MODE_STEP_ENA;
+ cpu_reg.state = BCE_CP_CPU_STATE;
+ cpu_reg.state_value_clear = 0xffffff;
+ cpu_reg.gpr0 = BCE_CP_CPU_REG_FILE;
+ cpu_reg.evmask = BCE_CP_CPU_EVENT_MASK;
+ cpu_reg.pc = BCE_CP_CPU_PROGRAM_COUNTER;
+ cpu_reg.inst = BCE_CP_CPU_INSTRUCTION;
+ cpu_reg.bp = BCE_CP_CPU_HW_BREAKPOINT;
+ cpu_reg.spad_base = BCE_CP_SCRATCH;
+ cpu_reg.mips_view_base = 0x8000000;
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ fw.ver_major = bce_CP_b09FwReleaseMajor;
+ fw.ver_minor = bce_CP_b09FwReleaseMinor;
+ fw.ver_fix = bce_CP_b09FwReleaseFix;
+ fw.start_addr = bce_CP_b09FwStartAddr;
+
+ fw.text_addr = bce_CP_b09FwTextAddr;
+ fw.text_len = bce_CP_b09FwTextLen;
+ fw.text_index = 0;
+ fw.text = bce_CP_b09FwText;
+
+ fw.data_addr = bce_CP_b09FwDataAddr;
+ fw.data_len = bce_CP_b09FwDataLen;
+ fw.data_index = 0;
+ fw.data = bce_CP_b09FwData;
+
+ fw.sbss_addr = bce_CP_b09FwSbssAddr;
+ fw.sbss_len = bce_CP_b09FwSbssLen;
+ fw.sbss_index = 0;
+ fw.sbss = bce_CP_b09FwSbss;
+
+ fw.bss_addr = bce_CP_b09FwBssAddr;
+ fw.bss_len = bce_CP_b09FwBssLen;
+ fw.bss_index = 0;
+ fw.bss = bce_CP_b09FwBss;
+
+ fw.rodata_addr = bce_CP_b09FwRodataAddr;
+ fw.rodata_len = bce_CP_b09FwRodataLen;
+ fw.rodata_index = 0;
+ fw.rodata = bce_CP_b09FwRodata;
+ } else {
+ fw.ver_major = bce_CP_b06FwReleaseMajor;
+ fw.ver_minor = bce_CP_b06FwReleaseMinor;
+ fw.ver_fix = bce_CP_b06FwReleaseFix;
+ fw.start_addr = bce_CP_b06FwStartAddr;
+
+ fw.text_addr = bce_CP_b06FwTextAddr;
+ fw.text_len = bce_CP_b06FwTextLen;
+ fw.text_index = 0;
+ fw.text = bce_CP_b06FwText;
+
+ fw.data_addr = bce_CP_b06FwDataAddr;
+ fw.data_len = bce_CP_b06FwDataLen;
+ fw.data_index = 0;
+ fw.data = bce_CP_b06FwData;
+
+ fw.sbss_addr = bce_CP_b06FwSbssAddr;
+ fw.sbss_len = bce_CP_b06FwSbssLen;
+ fw.sbss_index = 0;
+ fw.sbss = bce_CP_b06FwSbss;
+
+ fw.bss_addr = bce_CP_b06FwBssAddr;
+ fw.bss_len = bce_CP_b06FwBssLen;
+ fw.bss_index = 0;
+ fw.bss = bce_CP_b06FwBss;
+
+ fw.rodata_addr = bce_CP_b06FwRodataAddr;
+ fw.rodata_len = bce_CP_b06FwRodataLen;
+ fw.rodata_index = 0;
+ fw.rodata = bce_CP_b06FwRodata;
+ }
+
+ DBPRINT(sc, BCE_INFO_RESET, "Loading CP firmware.\n");
+ bce_load_cpu_fw(sc, &cpu_reg, &fw);
+ bce_start_cpu(sc, &cpu_reg);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Initialize the COM CPU. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_init_com_cpu(struct bce_softc *sc)
+{
+ struct cpu_reg cpu_reg;
+ struct fw_info fw;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ cpu_reg.mode = BCE_COM_CPU_MODE;
+ cpu_reg.mode_value_halt = BCE_COM_CPU_MODE_SOFT_HALT;
+ cpu_reg.mode_value_sstep = BCE_COM_CPU_MODE_STEP_ENA;
+ cpu_reg.state = BCE_COM_CPU_STATE;
+ cpu_reg.state_value_clear = 0xffffff;
+ cpu_reg.gpr0 = BCE_COM_CPU_REG_FILE;
+ cpu_reg.evmask = BCE_COM_CPU_EVENT_MASK;
+ cpu_reg.pc = BCE_COM_CPU_PROGRAM_COUNTER;
+ cpu_reg.inst = BCE_COM_CPU_INSTRUCTION;
+ cpu_reg.bp = BCE_COM_CPU_HW_BREAKPOINT;
+ cpu_reg.spad_base = BCE_COM_SCRATCH;
+ cpu_reg.mips_view_base = 0x8000000;
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ fw.ver_major = bce_COM_b09FwReleaseMajor;
+ fw.ver_minor = bce_COM_b09FwReleaseMinor;
+ fw.ver_fix = bce_COM_b09FwReleaseFix;
+ fw.start_addr = bce_COM_b09FwStartAddr;
+
+ fw.text_addr = bce_COM_b09FwTextAddr;
+ fw.text_len = bce_COM_b09FwTextLen;
+ fw.text_index = 0;
+ fw.text = bce_COM_b09FwText;
+
+ fw.data_addr = bce_COM_b09FwDataAddr;
+ fw.data_len = bce_COM_b09FwDataLen;
+ fw.data_index = 0;
+ fw.data = bce_COM_b09FwData;
+
+ fw.sbss_addr = bce_COM_b09FwSbssAddr;
+ fw.sbss_len = bce_COM_b09FwSbssLen;
+ fw.sbss_index = 0;
+ fw.sbss = bce_COM_b09FwSbss;
+
+ fw.bss_addr = bce_COM_b09FwBssAddr;
+ fw.bss_len = bce_COM_b09FwBssLen;
+ fw.bss_index = 0;
+ fw.bss = bce_COM_b09FwBss;
+
+ fw.rodata_addr = bce_COM_b09FwRodataAddr;
+ fw.rodata_len = bce_COM_b09FwRodataLen;
+ fw.rodata_index = 0;
+ fw.rodata = bce_COM_b09FwRodata;
+ } else {
+ fw.ver_major = bce_COM_b06FwReleaseMajor;
+ fw.ver_minor = bce_COM_b06FwReleaseMinor;
+ fw.ver_fix = bce_COM_b06FwReleaseFix;
+ fw.start_addr = bce_COM_b06FwStartAddr;
+
+ fw.text_addr = bce_COM_b06FwTextAddr;
+ fw.text_len = bce_COM_b06FwTextLen;
+ fw.text_index = 0;
+ fw.text = bce_COM_b06FwText;
+
+ fw.data_addr = bce_COM_b06FwDataAddr;
+ fw.data_len = bce_COM_b06FwDataLen;
+ fw.data_index = 0;
+ fw.data = bce_COM_b06FwData;
+
+ fw.sbss_addr = bce_COM_b06FwSbssAddr;
+ fw.sbss_len = bce_COM_b06FwSbssLen;
+ fw.sbss_index = 0;
+ fw.sbss = bce_COM_b06FwSbss;
+
+ fw.bss_addr = bce_COM_b06FwBssAddr;
+ fw.bss_len = bce_COM_b06FwBssLen;
+ fw.bss_index = 0;
+ fw.bss = bce_COM_b06FwBss;
+
+ fw.rodata_addr = bce_COM_b06FwRodataAddr;
+ fw.rodata_len = bce_COM_b06FwRodataLen;
+ fw.rodata_index = 0;
+ fw.rodata = bce_COM_b06FwRodata;
+ }
+
+ DBPRINT(sc, BCE_INFO_RESET, "Loading COM firmware.\n");
+ bce_load_cpu_fw(sc, &cpu_reg, &fw);
+ bce_start_cpu(sc, &cpu_reg);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Initialize the RV2P, RX, TX, TPAT, COM, and CP CPUs. */
+/* */
+/* Loads the firmware for each CPU and starts the CPU. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_init_cpus(struct bce_softc *sc)
+{
+ DBENTER(BCE_VERBOSE_RESET);
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+
+ if ((BCE_CHIP_REV(sc) == BCE_CHIP_REV_Ax)) {
+ bce_load_rv2p_fw(sc, bce_xi90_rv2p_proc1,
+ sizeof(bce_xi90_rv2p_proc1), RV2P_PROC1);
+ bce_load_rv2p_fw(sc, bce_xi90_rv2p_proc2,
+ sizeof(bce_xi90_rv2p_proc2), RV2P_PROC2);
+ } else {
+ bce_load_rv2p_fw(sc, bce_xi_rv2p_proc1,
+ sizeof(bce_xi_rv2p_proc1), RV2P_PROC1);
+ bce_load_rv2p_fw(sc, bce_xi_rv2p_proc2,
+ sizeof(bce_xi_rv2p_proc2), RV2P_PROC2);
+ }
+
+ } else {
+ bce_load_rv2p_fw(sc, bce_rv2p_proc1,
+ sizeof(bce_rv2p_proc1), RV2P_PROC1);
+ bce_load_rv2p_fw(sc, bce_rv2p_proc2,
+ sizeof(bce_rv2p_proc2), RV2P_PROC2);
+ }
+
+ bce_init_rxp_cpu(sc);
+ bce_init_txp_cpu(sc);
+ bce_init_tpat_cpu(sc);
+ bce_init_com_cpu(sc);
+ bce_init_cp_cpu(sc);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Initialize context memory. */
+/* */
+/* Clears the memory associated with each Context ID (CID). */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static int
+bce_init_ctx(struct bce_softc *sc)
+{
+ u32 offset, val, vcid_addr;
+ int i, j, rc, retry_cnt;
+
+ rc = 0;
+ DBENTER(BCE_VERBOSE_RESET | BCE_VERBOSE_CTX);
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ retry_cnt = CTX_INIT_RETRY_COUNT;
+
+ DBPRINT(sc, BCE_INFO_CTX, "Initializing 5709 context.\n");
+
+ /*
+ * BCM5709 context memory may be cached
+ * in host memory so prepare the host memory
+ * for access.
+ */
+ val = BCE_CTX_COMMAND_ENABLED |
+ BCE_CTX_COMMAND_MEM_INIT | (1 << 12);
+ val |= (BCM_PAGE_BITS - 8) << 16;
+ REG_WR(sc, BCE_CTX_COMMAND, val);
+
+ /* Wait for mem init command to complete. */
+ for (i = 0; i < retry_cnt; i++) {
+ val = REG_RD(sc, BCE_CTX_COMMAND);
+ if (!(val & BCE_CTX_COMMAND_MEM_INIT))
+ break;
+ DELAY(2);
+ }
+ if ((val & BCE_CTX_COMMAND_MEM_INIT) != 0) {
+ BCE_PRINTF("%s(): Context memory initialization failed!\n",
+ __FUNCTION__);
+ rc = EBUSY;
+ goto init_ctx_fail;
+ }
+
+ for (i = 0; i < sc->ctx_pages; i++) {
+ /* Set the physical address of the context memory. */
+ REG_WR(sc, BCE_CTX_HOST_PAGE_TBL_DATA0,
+ BCE_ADDR_LO(sc->ctx_paddr[i] & 0xfffffff0) |
+ BCE_CTX_HOST_PAGE_TBL_DATA0_VALID);
+ REG_WR(sc, BCE_CTX_HOST_PAGE_TBL_DATA1,
+ BCE_ADDR_HI(sc->ctx_paddr[i]));
+ REG_WR(sc, BCE_CTX_HOST_PAGE_TBL_CTRL, i |
+ BCE_CTX_HOST_PAGE_TBL_CTRL_WRITE_REQ);
+
+ /* Verify the context memory write was successful. */
+ for (j = 0; j < retry_cnt; j++) {
+ val = REG_RD(sc, BCE_CTX_HOST_PAGE_TBL_CTRL);
+ if ((val &
+ BCE_CTX_HOST_PAGE_TBL_CTRL_WRITE_REQ) == 0)
+ break;
+ DELAY(5);
+ }
+ if ((val & BCE_CTX_HOST_PAGE_TBL_CTRL_WRITE_REQ) != 0) {
+ BCE_PRINTF("%s(): Failed to initialize "
+ "context page %d!\n", __FUNCTION__, i);
+ rc = EBUSY;
+ goto init_ctx_fail;
+ }
+ }
+ } else {
+
+ DBPRINT(sc, BCE_INFO, "Initializing 5706/5708 context.\n");
+
+ /*
+ * For the 5706/5708, context memory is local to
+ * the controller, so initialize the controller
+ * context memory.
+ */
+
+ vcid_addr = GET_CID_ADDR(96);
+ while (vcid_addr) {
+
+ vcid_addr -= PHY_CTX_SIZE;
+
+ REG_WR(sc, BCE_CTX_VIRT_ADDR, 0);
+ REG_WR(sc, BCE_CTX_PAGE_TBL, vcid_addr);
+
+ for(offset = 0; offset < PHY_CTX_SIZE; offset += 4) {
+ CTX_WR(sc, 0x00, offset, 0);
+ }
+
+ REG_WR(sc, BCE_CTX_VIRT_ADDR, vcid_addr);
+ REG_WR(sc, BCE_CTX_PAGE_TBL, vcid_addr);
+ }
+
+ }
+init_ctx_fail:
+ DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_CTX);
+ return (rc);
+}
+
+
+/****************************************************************************/
+/* Fetch the permanent MAC address of the controller. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_get_mac_addr(struct bce_softc *sc)
+{
+ u32 mac_lo = 0, mac_hi = 0;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ /*
+ * The NetXtreme II bootcode populates various NIC
+ * power-on and runtime configuration items in a
+ * shared memory area. The factory configured MAC
+ * address is available from both NVRAM and the
+ * shared memory area so we'll read the value from
+ * shared memory for speed.
+ */
+
+ mac_hi = bce_shmem_rd(sc, BCE_PORT_HW_CFG_MAC_UPPER);
+ mac_lo = bce_shmem_rd(sc, BCE_PORT_HW_CFG_MAC_LOWER);
+
+ if ((mac_lo == 0) && (mac_hi == 0)) {
+ BCE_PRINTF("%s(%d): Invalid Ethernet address!\n",
+ __FILE__, __LINE__);
+ } else {
+ sc->eaddr[0] = (u_char)(mac_hi >> 8);
+ sc->eaddr[1] = (u_char)(mac_hi >> 0);
+ sc->eaddr[2] = (u_char)(mac_lo >> 24);
+ sc->eaddr[3] = (u_char)(mac_lo >> 16);
+ sc->eaddr[4] = (u_char)(mac_lo >> 8);
+ sc->eaddr[5] = (u_char)(mac_lo >> 0);
+ }
+
+ DBPRINT(sc, BCE_INFO_MISC, "Permanent Ethernet "
+ "address = %6D\n", sc->eaddr, ":");
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Program the MAC address. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_set_mac_addr(struct bce_softc *sc)
+{
+ u32 val;
+ u8 *mac_addr = sc->eaddr;
+
+ /* ToDo: Add support for setting multiple MAC addresses. */
+
+ DBENTER(BCE_VERBOSE_RESET);
+ DBPRINT(sc, BCE_INFO_MISC, "Setting Ethernet address = "
+ "%6D\n", sc->eaddr, ":");
+
+ val = (mac_addr[0] << 8) | mac_addr[1];
+
+ REG_WR(sc, BCE_EMAC_MAC_MATCH0, val);
+
+ val = (mac_addr[2] << 24) | (mac_addr[3] << 16) |
+ (mac_addr[4] << 8) | mac_addr[5];
+
+ REG_WR(sc, BCE_EMAC_MAC_MATCH1, val);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Stop the controller. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_stop(struct bce_softc *sc)
+{
+ struct ifnet *ifp;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ BCE_LOCK_ASSERT(sc);
+
+ ifp = sc->bce_ifp;
+
+ callout_stop(&sc->bce_tick_callout);
+
+ /* Disable the transmit/receive blocks. */
+ REG_WR(sc, BCE_MISC_ENABLE_CLR_BITS, BCE_MISC_ENABLE_CLR_DEFAULT);
+ REG_RD(sc, BCE_MISC_ENABLE_CLR_BITS);
+ DELAY(20);
+
+ bce_disable_intr(sc);
+
+ /* Free RX buffers. */
+#ifdef BCE_JUMBO_HDRSPLIT
+ bce_free_pg_chain(sc);
+#endif
+ bce_free_rx_chain(sc);
+
+ /* Free TX buffers. */
+ bce_free_tx_chain(sc);
+
+ sc->watchdog_timer = 0;
+
+ sc->bce_link_up = FALSE;
+
+ ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+static int
+bce_reset(struct bce_softc *sc, u32 reset_code)
+{
+ u32 val;
+ int i, rc = 0;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ DBPRINT(sc, BCE_VERBOSE_RESET, "%s(): reset_code = 0x%08X\n",
+ __FUNCTION__, reset_code);
+
+ /* Wait for pending PCI transactions to complete. */
+ REG_WR(sc, BCE_MISC_ENABLE_CLR_BITS,
+ BCE_MISC_ENABLE_CLR_BITS_TX_DMA_ENABLE |
+ BCE_MISC_ENABLE_CLR_BITS_DMA_ENGINE_ENABLE |
+ BCE_MISC_ENABLE_CLR_BITS_RX_DMA_ENABLE |
+ BCE_MISC_ENABLE_CLR_BITS_HOST_COALESCE_ENABLE);
+ val = REG_RD(sc, BCE_MISC_ENABLE_CLR_BITS);
+ DELAY(5);
+
+ /* Disable DMA */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ val = REG_RD(sc, BCE_MISC_NEW_CORE_CTL);
+ val &= ~BCE_MISC_NEW_CORE_CTL_DMA_ENABLE;
+ REG_WR(sc, BCE_MISC_NEW_CORE_CTL, val);
+ }
+
+ /* Assume bootcode is running. */
+ sc->bce_fw_timed_out = FALSE;
+ sc->bce_drv_cardiac_arrest = FALSE;
+
+ /* Give the firmware a chance to prepare for the reset. */
+ rc = bce_fw_sync(sc, BCE_DRV_MSG_DATA_WAIT0 | reset_code);
+ if (rc)
+ goto bce_reset_exit;
+
+ /* Set a firmware reminder that this is a soft reset. */
+ bce_shmem_wr(sc, BCE_DRV_RESET_SIGNATURE, BCE_DRV_RESET_SIGNATURE_MAGIC);
+
+ /* Dummy read to force the chip to complete all current transactions. */
+ val = REG_RD(sc, BCE_MISC_ID);
+
+ /* Chip reset. */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ REG_WR(sc, BCE_MISC_COMMAND, BCE_MISC_COMMAND_SW_RESET);
+ REG_RD(sc, BCE_MISC_COMMAND);
+ DELAY(5);
+
+ val = BCE_PCICFG_MISC_CONFIG_REG_WINDOW_ENA |
+ BCE_PCICFG_MISC_CONFIG_TARGET_MB_WORD_SWAP;
+
+ pci_write_config(sc->bce_dev, BCE_PCICFG_MISC_CONFIG, val, 4);
+ } else {
+ val = BCE_PCICFG_MISC_CONFIG_CORE_RST_REQ |
+ BCE_PCICFG_MISC_CONFIG_REG_WINDOW_ENA |
+ BCE_PCICFG_MISC_CONFIG_TARGET_MB_WORD_SWAP;
+ REG_WR(sc, BCE_PCICFG_MISC_CONFIG, val);
+
+ /* Allow up to 30us for reset to complete. */
+ for (i = 0; i < 10; i++) {
+ val = REG_RD(sc, BCE_PCICFG_MISC_CONFIG);
+ if ((val & (BCE_PCICFG_MISC_CONFIG_CORE_RST_REQ |
+ BCE_PCICFG_MISC_CONFIG_CORE_RST_BSY)) == 0) {
+ break;
+ }
+ DELAY(10);
+ }
+
+ /* Check that reset completed successfully. */
+ if (val & (BCE_PCICFG_MISC_CONFIG_CORE_RST_REQ |
+ BCE_PCICFG_MISC_CONFIG_CORE_RST_BSY)) {
+ BCE_PRINTF("%s(%d): Reset failed!\n",
+ __FILE__, __LINE__);
+ rc = EBUSY;
+ goto bce_reset_exit;
+ }
+ }
+
+ /* Make sure byte swapping is properly configured. */
+ val = REG_RD(sc, BCE_PCI_SWAP_DIAG0);
+ if (val != 0x01020304) {
+ BCE_PRINTF("%s(%d): Byte swap is incorrect!\n",
+ __FILE__, __LINE__);
+ rc = ENODEV;
+ goto bce_reset_exit;
+ }
+
+ /* Just completed a reset, assume that firmware is running again. */
+ sc->bce_fw_timed_out = FALSE;
+ sc->bce_drv_cardiac_arrest = FALSE;
+
+ /* Wait for the firmware to finish its initialization. */
+ rc = bce_fw_sync(sc, BCE_DRV_MSG_DATA_WAIT1 | reset_code);
+ if (rc)
+ BCE_PRINTF("%s(%d): Firmware did not complete "
+ "initialization!\n", __FILE__, __LINE__);
+
+bce_reset_exit:
+ DBEXIT(BCE_VERBOSE_RESET);
+ return (rc);
+}
+
+
+static int
+bce_chipinit(struct bce_softc *sc)
+{
+ u32 val;
+ int rc = 0;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ bce_disable_intr(sc);
+
+ /*
+ * Initialize DMA byte/word swapping, configure the number of DMA
+ * channels and PCI clock compensation delay.
+ */
+ val = BCE_DMA_CONFIG_DATA_BYTE_SWAP |
+ BCE_DMA_CONFIG_DATA_WORD_SWAP |
+#if BYTE_ORDER == BIG_ENDIAN
+ BCE_DMA_CONFIG_CNTL_BYTE_SWAP |
+#endif
+ BCE_DMA_CONFIG_CNTL_WORD_SWAP |
+ DMA_READ_CHANS << 12 |
+ DMA_WRITE_CHANS << 16;
+
+ val |= (0x2 << 20) | BCE_DMA_CONFIG_CNTL_PCI_COMP_DLY;
+
+ if ((sc->bce_flags & BCE_PCIX_FLAG) && (sc->bus_speed_mhz == 133))
+ val |= BCE_DMA_CONFIG_PCI_FAST_CLK_CMP;
+
+ /*
+ * This setting resolves a problem observed on certain Intel PCI
+ * chipsets that cannot handle multiple outstanding DMA operations.
+ * See errata E9_5706A1_65.
+ */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5706) &&
+ (BCE_CHIP_ID(sc) != BCE_CHIP_ID_5706_A0) &&
+ !(sc->bce_flags & BCE_PCIX_FLAG))
+ val |= BCE_DMA_CONFIG_CNTL_PING_PONG_DMA;
+
+ REG_WR(sc, BCE_DMA_CONFIG, val);
+
+ /* Enable the RX_V2P and Context state machines before access. */
+ REG_WR(sc, BCE_MISC_ENABLE_SET_BITS,
+ BCE_MISC_ENABLE_SET_BITS_HOST_COALESCE_ENABLE |
+ BCE_MISC_ENABLE_STATUS_BITS_RX_V2P_ENABLE |
+ BCE_MISC_ENABLE_STATUS_BITS_CONTEXT_ENABLE);
+
+ /* Initialize context mapping and zero out the quick contexts. */
+ if ((rc = bce_init_ctx(sc)) != 0)
+ goto bce_chipinit_exit;
+
+ /* Initialize the on-boards CPUs */
+ bce_init_cpus(sc);
+
+ /* Enable management frames (NC-SI) to flow to the MCP. */
+ if (sc->bce_flags & BCE_MFW_ENABLE_FLAG) {
+ val = REG_RD(sc, BCE_RPM_MGMT_PKT_CTRL) | BCE_RPM_MGMT_PKT_CTRL_MGMT_EN;
+ REG_WR(sc, BCE_RPM_MGMT_PKT_CTRL, val);
+ }
+
+ /* Prepare NVRAM for access. */
+ if ((rc = bce_init_nvram(sc)) != 0)
+ goto bce_chipinit_exit;
+
+ /* Set the kernel bypass block size */
+ val = REG_RD(sc, BCE_MQ_CONFIG);
+ val &= ~BCE_MQ_CONFIG_KNL_BYP_BLK_SIZE;
+ val |= BCE_MQ_CONFIG_KNL_BYP_BLK_SIZE_256;
+
+ /* Enable bins used on the 5709. */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ val |= BCE_MQ_CONFIG_BIN_MQ_MODE;
+ if (BCE_CHIP_ID(sc) == BCE_CHIP_ID_5709_A1)
+ val |= BCE_MQ_CONFIG_HALT_DIS;
+ }
+
+ REG_WR(sc, BCE_MQ_CONFIG, val);
+
+ val = 0x10000 + (MAX_CID_CNT * MB_KERNEL_CTX_SIZE);
+ REG_WR(sc, BCE_MQ_KNL_BYP_WIND_START, val);
+ REG_WR(sc, BCE_MQ_KNL_WIND_END, val);
+
+ /* Set the page size and clear the RV2P processor stall bits. */
+ val = (BCM_PAGE_BITS - 8) << 24;
+ REG_WR(sc, BCE_RV2P_CONFIG, val);
+
+ /* Configure page size. */
+ val = REG_RD(sc, BCE_TBDR_CONFIG);
+ val &= ~BCE_TBDR_CONFIG_PAGE_SIZE;
+ val |= (BCM_PAGE_BITS - 8) << 24 | 0x40;
+ REG_WR(sc, BCE_TBDR_CONFIG, val);
+
+ /* Set the perfect match control register to default. */
+ REG_WR_IND(sc, BCE_RXP_PM_CTRL, 0);
+
+bce_chipinit_exit:
+ DBEXIT(BCE_VERBOSE_RESET);
+
+ return(rc);
+}
+
+
+/****************************************************************************/
+/* Initialize the controller in preparation to send/receive traffic. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_blockinit(struct bce_softc *sc)
+{
+ u32 reg, val;
+ int rc = 0;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ /* Load the hardware default MAC address. */
+ bce_set_mac_addr(sc);
+
+ /* Set the Ethernet backoff seed value */
+ val = sc->eaddr[0] + (sc->eaddr[1] << 8) +
+ (sc->eaddr[2] << 16) + (sc->eaddr[3] ) +
+ (sc->eaddr[4] << 8) + (sc->eaddr[5] << 16);
+ REG_WR(sc, BCE_EMAC_BACKOFF_SEED, val);
+
+ sc->last_status_idx = 0;
+ sc->rx_mode = BCE_EMAC_RX_MODE_SORT_MODE;
+
+ /* Set up link change interrupt generation. */
+ REG_WR(sc, BCE_EMAC_ATTENTION_ENA, BCE_EMAC_ATTENTION_ENA_LINK);
+
+ /* Program the physical address of the status block. */
+ REG_WR(sc, BCE_HC_STATUS_ADDR_L,
+ BCE_ADDR_LO(sc->status_block_paddr));
+ REG_WR(sc, BCE_HC_STATUS_ADDR_H,
+ BCE_ADDR_HI(sc->status_block_paddr));
+
+ /* Program the physical address of the statistics block. */
+ REG_WR(sc, BCE_HC_STATISTICS_ADDR_L,
+ BCE_ADDR_LO(sc->stats_block_paddr));
+ REG_WR(sc, BCE_HC_STATISTICS_ADDR_H,
+ BCE_ADDR_HI(sc->stats_block_paddr));
+
+ /* Program various host coalescing parameters. */
+ REG_WR(sc, BCE_HC_TX_QUICK_CONS_TRIP,
+ (sc->bce_tx_quick_cons_trip_int << 16) | sc->bce_tx_quick_cons_trip);
+ REG_WR(sc, BCE_HC_RX_QUICK_CONS_TRIP,
+ (sc->bce_rx_quick_cons_trip_int << 16) | sc->bce_rx_quick_cons_trip);
+ REG_WR(sc, BCE_HC_COMP_PROD_TRIP,
+ (sc->bce_comp_prod_trip_int << 16) | sc->bce_comp_prod_trip);
+ REG_WR(sc, BCE_HC_TX_TICKS,
+ (sc->bce_tx_ticks_int << 16) | sc->bce_tx_ticks);
+ REG_WR(sc, BCE_HC_RX_TICKS,
+ (sc->bce_rx_ticks_int << 16) | sc->bce_rx_ticks);
+ REG_WR(sc, BCE_HC_COM_TICKS,
+ (sc->bce_com_ticks_int << 16) | sc->bce_com_ticks);
+ REG_WR(sc, BCE_HC_CMD_TICKS,
+ (sc->bce_cmd_ticks_int << 16) | sc->bce_cmd_ticks);
+ REG_WR(sc, BCE_HC_STATS_TICKS,
+ (sc->bce_stats_ticks & 0xffff00));
+ REG_WR(sc, BCE_HC_STAT_COLLECT_TICKS, 0xbb8); /* 3ms */
+
+ /* Configure the Host Coalescing block. */
+ val = BCE_HC_CONFIG_RX_TMR_MODE | BCE_HC_CONFIG_TX_TMR_MODE |
+ BCE_HC_CONFIG_COLLECT_STATS;
+
+#if 0
+ /* ToDo: Add MSI-X support. */
+ if (sc->bce_flags & BCE_USING_MSIX_FLAG) {
+ u32 base = ((BCE_TX_VEC - 1) * BCE_HC_SB_CONFIG_SIZE) +
+ BCE_HC_SB_CONFIG_1;
+
+ REG_WR(sc, BCE_HC_MSIX_BIT_VECTOR, BCE_HC_MSIX_BIT_VECTOR_VAL);
+
+ REG_WR(sc, base, BCE_HC_SB_CONFIG_1_TX_TMR_MODE |
+ BCE_HC_SB_CONFIG_1_ONE_SHOT);
+
+ REG_WR(sc, base + BCE_HC_TX_QUICK_CONS_TRIP_OFF,
+ (sc->tx_quick_cons_trip_int << 16) |
+ sc->tx_quick_cons_trip);
+
+ REG_WR(sc, base + BCE_HC_TX_TICKS_OFF,
+ (sc->tx_ticks_int << 16) | sc->tx_ticks);
+
+ val |= BCE_HC_CONFIG_SB_ADDR_INC_128B;
+ }
+
+ /*
+ * Tell the HC block to automatically set the
+ * INT_MASK bit after an MSI/MSI-X interrupt
+ * is generated so the driver doesn't have to.
+ */
+ if (sc->bce_flags & BCE_ONE_SHOT_MSI_FLAG)
+ val |= BCE_HC_CONFIG_ONE_SHOT;
+
+ /* Set the MSI-X status blocks to 128 byte boundaries. */
+ if (sc->bce_flags & BCE_USING_MSIX_FLAG)
+ val |= BCE_HC_CONFIG_SB_ADDR_INC_128B;
+#endif
+
+ REG_WR(sc, BCE_HC_CONFIG, val);
+
+ /* Clear the internal statistics counters. */
+ REG_WR(sc, BCE_HC_COMMAND, BCE_HC_COMMAND_CLR_STAT_NOW);
+
+ /* Verify that bootcode is running. */
+ reg = bce_shmem_rd(sc, BCE_DEV_INFO_SIGNATURE);
+
+ DBRUNIF(DB_RANDOMTRUE(bootcode_running_failure_sim_control),
+ BCE_PRINTF("%s(%d): Simulating bootcode failure.\n",
+ __FILE__, __LINE__);
+ reg = 0);
+
+ if ((reg & BCE_DEV_INFO_SIGNATURE_MAGIC_MASK) !=
+ BCE_DEV_INFO_SIGNATURE_MAGIC) {
+ BCE_PRINTF("%s(%d): Bootcode not running! Found: 0x%08X, "
+ "Expected: 08%08X\n", __FILE__, __LINE__,
+ (reg & BCE_DEV_INFO_SIGNATURE_MAGIC_MASK),
+ BCE_DEV_INFO_SIGNATURE_MAGIC);
+ rc = ENODEV;
+ goto bce_blockinit_exit;
+ }
+
+ /* Enable DMA */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ val = REG_RD(sc, BCE_MISC_NEW_CORE_CTL);
+ val |= BCE_MISC_NEW_CORE_CTL_DMA_ENABLE;
+ REG_WR(sc, BCE_MISC_NEW_CORE_CTL, val);
+ }
+
+ /* Allow bootcode to apply additional fixes before enabling MAC. */
+ rc = bce_fw_sync(sc, BCE_DRV_MSG_DATA_WAIT2 |
+ BCE_DRV_MSG_CODE_RESET);
+
+ /* Enable link state change interrupt generation. */
+ REG_WR(sc, BCE_HC_ATTN_BITS_ENABLE, STATUS_ATTN_BITS_LINK_STATE);
+
+ /* Enable the RXP. */
+ bce_start_rxp_cpu(sc);
+
+ /* Disable management frames (NC-SI) from flowing to the MCP. */
+ if (sc->bce_flags & BCE_MFW_ENABLE_FLAG) {
+ val = REG_RD(sc, BCE_RPM_MGMT_PKT_CTRL) &
+ ~BCE_RPM_MGMT_PKT_CTRL_MGMT_EN;
+ REG_WR(sc, BCE_RPM_MGMT_PKT_CTRL, val);
+ }
+
+ /* Enable all remaining blocks in the MAC. */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716))
+ REG_WR(sc, BCE_MISC_ENABLE_SET_BITS,
+ BCE_MISC_ENABLE_DEFAULT_XI);
+ else
+ REG_WR(sc, BCE_MISC_ENABLE_SET_BITS,
+ BCE_MISC_ENABLE_DEFAULT);
+
+ REG_RD(sc, BCE_MISC_ENABLE_SET_BITS);
+ DELAY(20);
+
+ /* Save the current host coalescing block settings. */
+ sc->hc_command = REG_RD(sc, BCE_HC_COMMAND);
+
+bce_blockinit_exit:
+ DBEXIT(BCE_VERBOSE_RESET);
+
+ return (rc);
+}
+
+
+/****************************************************************************/
+/* Encapsulate an mbuf into the rx_bd chain. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_get_rx_buf(struct bce_softc *sc, struct mbuf *m, u16 *prod,
+ u16 *chain_prod, u32 *prod_bseq)
+{
+ bus_dmamap_t map;
+ bus_dma_segment_t segs[BCE_MAX_SEGMENTS];
+ struct mbuf *m_new = NULL;
+ struct rx_bd *rxbd;
+ int nsegs, error, rc = 0;
+#ifdef BCE_DEBUG
+ u16 debug_chain_prod = *chain_prod;
+#endif
+
+ DBENTER(BCE_EXTREME_RESET | BCE_EXTREME_RECV | BCE_EXTREME_LOAD);
+
+ /* Make sure the inputs are valid. */
+ DBRUNIF((*chain_prod > MAX_RX_BD),
+ BCE_PRINTF("%s(%d): RX producer out of range: "
+ "0x%04X > 0x%04X\n", __FILE__, __LINE__,
+ *chain_prod, (u16) MAX_RX_BD));
+
+ DBPRINT(sc, BCE_EXTREME_RECV, "%s(enter): prod = 0x%04X, "
+ "chain_prod = 0x%04X, prod_bseq = 0x%08X\n", __FUNCTION__,
+ *prod, *chain_prod, *prod_bseq);
+
+ /* Update some debug statistic counters */
+ DBRUNIF((sc->free_rx_bd < sc->rx_low_watermark),
+ sc->rx_low_watermark = sc->free_rx_bd);
+ DBRUNIF((sc->free_rx_bd == sc->max_rx_bd),
+ sc->rx_empty_count++);
+
+ /* Check whether this is a new mbuf allocation. */
+ if (m == NULL) {
+
+ /* Simulate an mbuf allocation failure. */
+ DBRUNIF(DB_RANDOMTRUE(mbuf_alloc_failed_sim_control),
+ sc->mbuf_alloc_failed_count++;
+ sc->mbuf_alloc_failed_sim_count++;
+ rc = ENOBUFS;
+ goto bce_get_rx_buf_exit);
+
+ /* This is a new mbuf allocation. */
+#ifdef BCE_JUMBO_HDRSPLIT
+ MGETHDR(m_new, M_DONTWAIT, MT_DATA);
+#else
+ if (sc->rx_bd_mbuf_alloc_size <= MCLBYTES)
+ m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
+ else
+ m_new = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR,
+ sc->rx_bd_mbuf_alloc_size);
+#endif
+
+ if (m_new == NULL) {
+ sc->mbuf_alloc_failed_count++;
+ rc = ENOBUFS;
+ goto bce_get_rx_buf_exit;
+ }
+
+ DBRUN(sc->debug_rx_mbuf_alloc++);
+ } else {
+ /* Reuse an existing mbuf. */
+ m_new = m;
+ }
+
+ /* Make sure we have a valid packet header. */
+ M_ASSERTPKTHDR(m_new);
+
+ /* Initialize the mbuf size and pad if necessary for alignment. */
+ m_new->m_pkthdr.len = m_new->m_len = sc->rx_bd_mbuf_alloc_size;
+ m_adj(m_new, sc->rx_bd_mbuf_align_pad);
+
+ /* ToDo: Consider calling m_fragment() to test error handling. */
+
+ /* Map the mbuf cluster into device memory. */
+ map = sc->rx_mbuf_map[*chain_prod];
+ error = bus_dmamap_load_mbuf_sg(sc->rx_mbuf_tag, map, m_new,
+ segs, &nsegs, BUS_DMA_NOWAIT);
+
+ /* Handle any mapping errors. */
+ if (error) {
+ BCE_PRINTF("%s(%d): Error mapping mbuf into RX "
+ "chain (%d)!\n", __FILE__, __LINE__, error);
+
+ sc->dma_map_addr_rx_failed_count++;
+ m_freem(m_new);
+
+ DBRUN(sc->debug_rx_mbuf_alloc--);
+
+ rc = ENOBUFS;
+ goto bce_get_rx_buf_exit;
+ }
+
+ /* All mbufs must map to a single segment. */
+ KASSERT(nsegs == 1, ("%s(): Too many segments returned (%d)!",
+ __FUNCTION__, nsegs));
+
+ /* Setup the rx_bd for the segment. */
+ rxbd = &sc->rx_bd_chain[RX_PAGE(*chain_prod)][RX_IDX(*chain_prod)];
+
+ rxbd->rx_bd_haddr_lo = htole32(BCE_ADDR_LO(segs[0].ds_addr));
+ rxbd->rx_bd_haddr_hi = htole32(BCE_ADDR_HI(segs[0].ds_addr));
+ rxbd->rx_bd_len = htole32(segs[0].ds_len);
+ rxbd->rx_bd_flags = htole32(RX_BD_FLAGS_START | RX_BD_FLAGS_END);
+ *prod_bseq += segs[0].ds_len;
+
+ /* Save the mbuf and update our counter. */
+ sc->rx_mbuf_ptr[*chain_prod] = m_new;
+ sc->free_rx_bd -= nsegs;
+
+ DBRUNMSG(BCE_INSANE_RECV,
+ bce_dump_rx_mbuf_chain(sc, debug_chain_prod, nsegs));
+
+ DBPRINT(sc, BCE_EXTREME_RECV, "%s(exit): prod = 0x%04X, "
+ "chain_prod = 0x%04X, prod_bseq = 0x%08X\n",
+ __FUNCTION__, *prod, *chain_prod, *prod_bseq);
+
+bce_get_rx_buf_exit:
+ DBEXIT(BCE_EXTREME_RESET | BCE_EXTREME_RECV | BCE_EXTREME_LOAD);
+
+ return(rc);
+}
+
+
+#ifdef BCE_JUMBO_HDRSPLIT
+/****************************************************************************/
+/* Encapsulate an mbuf cluster into the page chain. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_get_pg_buf(struct bce_softc *sc, struct mbuf *m, u16 *prod,
+ u16 *prod_idx)
+{
+ bus_dmamap_t map;
+ bus_addr_t busaddr;
+ struct mbuf *m_new = NULL;
+ struct rx_bd *pgbd;
+ int error, rc = 0;
+#ifdef BCE_DEBUG
+ u16 debug_prod_idx = *prod_idx;
+#endif
+
+ DBENTER(BCE_EXTREME_RESET | BCE_EXTREME_RECV | BCE_EXTREME_LOAD);
+
+ /* Make sure the inputs are valid. */
+ DBRUNIF((*prod_idx > MAX_PG_BD),
+ BCE_PRINTF("%s(%d): page producer out of range: "
+ "0x%04X > 0x%04X\n", __FILE__, __LINE__,
+ *prod_idx, (u16) MAX_PG_BD));
+
+ DBPRINT(sc, BCE_EXTREME_RECV, "%s(enter): prod = 0x%04X, "
+ "chain_prod = 0x%04X\n", __FUNCTION__, *prod, *prod_idx);
+
+ /* Update counters if we've hit a new low or run out of pages. */
+ DBRUNIF((sc->free_pg_bd < sc->pg_low_watermark),
+ sc->pg_low_watermark = sc->free_pg_bd);
+ DBRUNIF((sc->free_pg_bd == sc->max_pg_bd), sc->pg_empty_count++);
+
+ /* Check whether this is a new mbuf allocation. */
+ if (m == NULL) {
+
+ /* Simulate an mbuf allocation failure. */
+ DBRUNIF(DB_RANDOMTRUE(mbuf_alloc_failed_sim_control),
+ sc->mbuf_alloc_failed_count++;
+ sc->mbuf_alloc_failed_sim_count++;
+ rc = ENOBUFS;
+ goto bce_get_pg_buf_exit);
+
+ /* This is a new mbuf allocation. */
+ m_new = m_getcl(M_DONTWAIT, MT_DATA, 0);
+ if (m_new == NULL) {
+ sc->mbuf_alloc_failed_count++;
+ rc = ENOBUFS;
+ goto bce_get_pg_buf_exit;
+ }
+
+ DBRUN(sc->debug_pg_mbuf_alloc++);
+ } else {
+ /* Reuse an existing mbuf. */
+ m_new = m;
+ m_new->m_data = m_new->m_ext.ext_buf;
+ }
+
+ m_new->m_len = sc->pg_bd_mbuf_alloc_size;
+
+ /* ToDo: Consider calling m_fragment() to test error handling. */
+
+ /* Map the mbuf cluster into device memory. */
+ map = sc->pg_mbuf_map[*prod_idx];
+ error = bus_dmamap_load(sc->pg_mbuf_tag, map, mtod(m_new, void *),
+ sc->pg_bd_mbuf_alloc_size, bce_dma_map_addr,
+ &busaddr, BUS_DMA_NOWAIT);
+
+ /* Handle any mapping errors. */
+ if (error) {
+ BCE_PRINTF("%s(%d): Error mapping mbuf into page chain!\n",
+ __FILE__, __LINE__);
+
+ m_freem(m_new);
+ DBRUN(sc->debug_pg_mbuf_alloc--);
+
+ rc = ENOBUFS;
+ goto bce_get_pg_buf_exit;
+ }
+
+ /* ToDo: Do we need bus_dmamap_sync(,,BUS_DMASYNC_PREREAD) here? */
+
+ /*
+ * The page chain uses the same rx_bd data structure
+ * as the receive chain but doesn't require a byte sequence (bseq).
+ */
+ pgbd = &sc->pg_bd_chain[PG_PAGE(*prod_idx)][PG_IDX(*prod_idx)];
+
+ pgbd->rx_bd_haddr_lo = htole32(BCE_ADDR_LO(busaddr));
+ pgbd->rx_bd_haddr_hi = htole32(BCE_ADDR_HI(busaddr));
+ pgbd->rx_bd_len = htole32(sc->pg_bd_mbuf_alloc_size);
+ pgbd->rx_bd_flags = htole32(RX_BD_FLAGS_START | RX_BD_FLAGS_END);
+
+ /* Save the mbuf and update our counter. */
+ sc->pg_mbuf_ptr[*prod_idx] = m_new;
+ sc->free_pg_bd--;
+
+ DBRUNMSG(BCE_INSANE_RECV,
+ bce_dump_pg_mbuf_chain(sc, debug_prod_idx, 1));
+
+ DBPRINT(sc, BCE_EXTREME_RECV, "%s(exit): prod = 0x%04X, "
+ "prod_idx = 0x%04X\n", __FUNCTION__, *prod, *prod_idx);
+
+bce_get_pg_buf_exit:
+ DBEXIT(BCE_EXTREME_RESET | BCE_EXTREME_RECV | BCE_EXTREME_LOAD);
+
+ return(rc);
+}
+#endif /* BCE_JUMBO_HDRSPLIT */
+
+
+/****************************************************************************/
+/* Initialize the TX context memory. */
+/* */
+/* Returns: */
+/* Nothing */
+/****************************************************************************/
+static void
+bce_init_tx_context(struct bce_softc *sc)
+{
+ u32 val;
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_VERBOSE_SEND | BCE_VERBOSE_CTX);
+
+ /* Initialize the context ID for an L2 TX chain. */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ /* Set the CID type to support an L2 connection. */
+ val = BCE_L2CTX_TX_TYPE_TYPE_L2_XI |
+ BCE_L2CTX_TX_TYPE_SIZE_L2_XI;
+ CTX_WR(sc, GET_CID_ADDR(TX_CID), BCE_L2CTX_TX_TYPE_XI, val);
+ val = BCE_L2CTX_TX_CMD_TYPE_TYPE_L2_XI | (8 << 16);
+ CTX_WR(sc, GET_CID_ADDR(TX_CID),
+ BCE_L2CTX_TX_CMD_TYPE_XI, val);
+
+ /* Point the hardware to the first page in the chain. */
+ val = BCE_ADDR_HI(sc->tx_bd_chain_paddr[0]);
+ CTX_WR(sc, GET_CID_ADDR(TX_CID),
+ BCE_L2CTX_TX_TBDR_BHADDR_HI_XI, val);
+ val = BCE_ADDR_LO(sc->tx_bd_chain_paddr[0]);
+ CTX_WR(sc, GET_CID_ADDR(TX_CID),
+ BCE_L2CTX_TX_TBDR_BHADDR_LO_XI, val);
+ } else {
+ /* Set the CID type to support an L2 connection. */
+ val = BCE_L2CTX_TX_TYPE_TYPE_L2 | BCE_L2CTX_TX_TYPE_SIZE_L2;
+ CTX_WR(sc, GET_CID_ADDR(TX_CID), BCE_L2CTX_TX_TYPE, val);
+ val = BCE_L2CTX_TX_CMD_TYPE_TYPE_L2 | (8 << 16);
+ CTX_WR(sc, GET_CID_ADDR(TX_CID), BCE_L2CTX_TX_CMD_TYPE, val);
+
+ /* Point the hardware to the first page in the chain. */
+ val = BCE_ADDR_HI(sc->tx_bd_chain_paddr[0]);
+ CTX_WR(sc, GET_CID_ADDR(TX_CID),
+ BCE_L2CTX_TX_TBDR_BHADDR_HI, val);
+ val = BCE_ADDR_LO(sc->tx_bd_chain_paddr[0]);
+ CTX_WR(sc, GET_CID_ADDR(TX_CID),
+ BCE_L2CTX_TX_TBDR_BHADDR_LO, val);
+ }
+
+ DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_SEND | BCE_VERBOSE_CTX);
+}
+
+
+/****************************************************************************/
+/* Allocate memory and initialize the TX data structures. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_init_tx_chain(struct bce_softc *sc)
+{
+ struct tx_bd *txbd;
+ int i, rc = 0;
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_VERBOSE_SEND | BCE_VERBOSE_LOAD);
+
+ /* Set the initial TX producer/consumer indices. */
+ sc->tx_prod = 0;
+ sc->tx_cons = 0;
+ sc->tx_prod_bseq = 0;
+ sc->used_tx_bd = 0;
+ sc->max_tx_bd = USABLE_TX_BD;
+ DBRUN(sc->tx_hi_watermark = 0);
+ DBRUN(sc->tx_full_count = 0);
+
+ /*
+ * The NetXtreme II supports a linked-list structre called
+ * a Buffer Descriptor Chain (or BD chain). A BD chain
+ * consists of a series of 1 or more chain pages, each of which
+ * consists of a fixed number of BD entries.
+ * The last BD entry on each page is a pointer to the next page
+ * in the chain, and the last pointer in the BD chain
+ * points back to the beginning of the chain.
+ */
+
+ /* Set the TX next pointer chain entries. */
+ for (i = 0; i < TX_PAGES; i++) {
+ int j;
+
+ txbd = &sc->tx_bd_chain[i][USABLE_TX_BD_PER_PAGE];
+
+ /* Check if we've reached the last page. */
+ if (i == (TX_PAGES - 1))
+ j = 0;
+ else
+ j = i + 1;
+
+ txbd->tx_bd_haddr_hi = htole32(BCE_ADDR_HI(sc->tx_bd_chain_paddr[j]));
+ txbd->tx_bd_haddr_lo = htole32(BCE_ADDR_LO(sc->tx_bd_chain_paddr[j]));
+ }
+
+ bce_init_tx_context(sc);
+
+ DBRUNMSG(BCE_INSANE_SEND, bce_dump_tx_chain(sc, 0, TOTAL_TX_BD));
+ DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_SEND | BCE_VERBOSE_LOAD);
+
+ return(rc);
+}
+
+
+/****************************************************************************/
+/* Free memory and clear the TX data structures. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_free_tx_chain(struct bce_softc *sc)
+{
+ int i;
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_VERBOSE_SEND | BCE_VERBOSE_UNLOAD);
+
+ /* Unmap, unload, and free any mbufs still in the TX mbuf chain. */
+ for (i = 0; i < TOTAL_TX_BD; i++) {
+ if (sc->tx_mbuf_ptr[i] != NULL) {
+ if (sc->tx_mbuf_map[i] != NULL)
+ bus_dmamap_sync(sc->tx_mbuf_tag,
+ sc->tx_mbuf_map[i],
+ BUS_DMASYNC_POSTWRITE);
+ m_freem(sc->tx_mbuf_ptr[i]);
+ sc->tx_mbuf_ptr[i] = NULL;
+ DBRUN(sc->debug_tx_mbuf_alloc--);
+ }
+ }
+
+ /* Clear each TX chain page. */
+ for (i = 0; i < TX_PAGES; i++)
+ bzero((char *)sc->tx_bd_chain[i], BCE_TX_CHAIN_PAGE_SZ);
+
+ sc->used_tx_bd = 0;
+
+ /* Check if we lost any mbufs in the process. */
+ DBRUNIF((sc->debug_tx_mbuf_alloc),
+ BCE_PRINTF("%s(%d): Memory leak! Lost %d mbufs "
+ "from tx chain!\n", __FILE__, __LINE__,
+ sc->debug_tx_mbuf_alloc));
+
+ DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_SEND | BCE_VERBOSE_UNLOAD);
+}
+
+
+/****************************************************************************/
+/* Initialize the RX context memory. */
+/* */
+/* Returns: */
+/* Nothing */
+/****************************************************************************/
+static void
+bce_init_rx_context(struct bce_softc *sc)
+{
+ u32 val;
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_CTX);
+
+ /* Init the type, size, and BD cache levels for the RX context. */
+ val = BCE_L2CTX_RX_CTX_TYPE_CTX_BD_CHN_TYPE_VALUE |
+ BCE_L2CTX_RX_CTX_TYPE_SIZE_L2 |
+ (0x02 << BCE_L2CTX_RX_BD_PRE_READ_SHIFT);
+
+ /*
+ * Set the level for generating pause frames
+ * when the number of available rx_bd's gets
+ * too low (the low watermark) and the level
+ * when pause frames can be stopped (the high
+ * watermark).
+ */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ u32 lo_water, hi_water;
+
+ if (sc->bce_flags && BCE_USING_TX_FLOW_CONTROL) {
+ lo_water = BCE_L2CTX_RX_LO_WATER_MARK_DEFAULT;
+ } else {
+ lo_water = 0;
+ }
+
+ if (lo_water >= USABLE_RX_BD) {
+ lo_water = 0;
+ }
+
+ hi_water = USABLE_RX_BD / 4;
+
+ if (hi_water <= lo_water) {
+ lo_water = 0;
+ }
+
+ lo_water /= BCE_L2CTX_RX_LO_WATER_MARK_SCALE;
+ hi_water /= BCE_L2CTX_RX_HI_WATER_MARK_SCALE;
+
+ if (hi_water > 0xf)
+ hi_water = 0xf;
+ else if (hi_water == 0)
+ lo_water = 0;
+
+ val |= (lo_water << BCE_L2CTX_RX_LO_WATER_MARK_SHIFT) |
+ (hi_water << BCE_L2CTX_RX_HI_WATER_MARK_SHIFT);
+ }
+
+ CTX_WR(sc, GET_CID_ADDR(RX_CID), BCE_L2CTX_RX_CTX_TYPE, val);
+
+ /* Setup the MQ BIN mapping for l2_ctx_host_bseq. */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ val = REG_RD(sc, BCE_MQ_MAP_L2_5);
+ REG_WR(sc, BCE_MQ_MAP_L2_5, val | BCE_MQ_MAP_L2_5_ARM);
+ }
+
+ /* Point the hardware to the first page in the chain. */
+ val = BCE_ADDR_HI(sc->rx_bd_chain_paddr[0]);
+ CTX_WR(sc, GET_CID_ADDR(RX_CID), BCE_L2CTX_RX_NX_BDHADDR_HI, val);
+ val = BCE_ADDR_LO(sc->rx_bd_chain_paddr[0]);
+ CTX_WR(sc, GET_CID_ADDR(RX_CID), BCE_L2CTX_RX_NX_BDHADDR_LO, val);
+
+ DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_CTX);
+}
+
+
+/****************************************************************************/
+/* Allocate memory and initialize the RX data structures. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_init_rx_chain(struct bce_softc *sc)
+{
+ struct rx_bd *rxbd;
+ int i, rc = 0;
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_LOAD |
+ BCE_VERBOSE_CTX);
+
+ /* Initialize the RX producer and consumer indices. */
+ sc->rx_prod = 0;
+ sc->rx_cons = 0;
+ sc->rx_prod_bseq = 0;
+ sc->free_rx_bd = USABLE_RX_BD;
+ sc->max_rx_bd = USABLE_RX_BD;
+
+ /* Initialize the RX next pointer chain entries. */
+ for (i = 0; i < RX_PAGES; i++) {
+ int j;
+
+ rxbd = &sc->rx_bd_chain[i][USABLE_RX_BD_PER_PAGE];
+
+ /* Check if we've reached the last page. */
+ if (i == (RX_PAGES - 1))
+ j = 0;
+ else
+ j = i + 1;
+
+ /* Setup the chain page pointers. */
+ rxbd->rx_bd_haddr_hi =
+ htole32(BCE_ADDR_HI(sc->rx_bd_chain_paddr[j]));
+ rxbd->rx_bd_haddr_lo =
+ htole32(BCE_ADDR_LO(sc->rx_bd_chain_paddr[j]));
+ }
+
+ /* Fill up the RX chain. */
+ bce_fill_rx_chain(sc);
+
+ DBRUN(sc->rx_low_watermark = USABLE_RX_BD);
+ DBRUN(sc->rx_empty_count = 0);
+ for (i = 0; i < RX_PAGES; i++) {
+ bus_dmamap_sync(sc->rx_bd_chain_tag, sc->rx_bd_chain_map[i],
+ BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
+ }
+
+ bce_init_rx_context(sc);
+
+ DBRUNMSG(BCE_EXTREME_RECV, bce_dump_rx_bd_chain(sc, 0, TOTAL_RX_BD));
+ DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_LOAD |
+ BCE_VERBOSE_CTX);
+
+ /* ToDo: Are there possible failure modes here? */
+
+ return(rc);
+}
+
+
+/****************************************************************************/
+/* Add mbufs to the RX chain until its full or an mbuf allocation error */
+/* occurs. */
+/* */
+/* Returns: */
+/* Nothing */
+/****************************************************************************/
+static void
+bce_fill_rx_chain(struct bce_softc *sc)
+{
+ u16 prod, prod_idx;
+ u32 prod_bseq;
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_EXTREME_RECV | BCE_VERBOSE_LOAD |
+ BCE_VERBOSE_CTX);
+
+ /* Get the RX chain producer indices. */
+ prod = sc->rx_prod;
+ prod_bseq = sc->rx_prod_bseq;
+
+ /* Keep filling the RX chain until it's full. */
+ while (sc->free_rx_bd > 0) {
+ prod_idx = RX_CHAIN_IDX(prod);
+ if (bce_get_rx_buf(sc, NULL, &prod, &prod_idx, &prod_bseq)) {
+ /* Bail out if we can't add an mbuf to the chain. */
+ break;
+ }
+ prod = NEXT_RX_BD(prod);
+ }
+
+ /* Save the RX chain producer indices. */
+ sc->rx_prod = prod;
+ sc->rx_prod_bseq = prod_bseq;
+
+ /* We should never end up pointing to a next page pointer. */
+ DBRUNIF(((prod & USABLE_RX_BD_PER_PAGE) == USABLE_RX_BD_PER_PAGE),
+ BCE_PRINTF("%s(): Invalid rx_prod value: 0x%04X\n",
+ __FUNCTION__, sc->rx_prod));
+
+ /* Write the mailbox and tell the chip about the waiting rx_bd's. */
+ REG_WR16(sc, MB_GET_CID_ADDR(RX_CID) +
+ BCE_L2MQ_RX_HOST_BDIDX, sc->rx_prod);
+ REG_WR(sc, MB_GET_CID_ADDR(RX_CID) +
+ BCE_L2MQ_RX_HOST_BSEQ, sc->rx_prod_bseq);
+
+ DBEXIT(BCE_VERBOSE_RESET | BCE_EXTREME_RECV | BCE_VERBOSE_LOAD |
+ BCE_VERBOSE_CTX);
+}
+
+
+/****************************************************************************/
+/* Free memory and clear the RX data structures. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_free_rx_chain(struct bce_softc *sc)
+{
+ int i;
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_UNLOAD);
+
+ /* Free any mbufs still in the RX mbuf chain. */
+ for (i = 0; i < TOTAL_RX_BD; i++) {
+ if (sc->rx_mbuf_ptr[i] != NULL) {
+ if (sc->rx_mbuf_map[i] != NULL)
+ bus_dmamap_sync(sc->rx_mbuf_tag,
+ sc->rx_mbuf_map[i],
+ BUS_DMASYNC_POSTREAD);
+ m_freem(sc->rx_mbuf_ptr[i]);
+ sc->rx_mbuf_ptr[i] = NULL;
+ DBRUN(sc->debug_rx_mbuf_alloc--);
+ }
+ }
+
+ /* Clear each RX chain page. */
+ for (i = 0; i < RX_PAGES; i++)
+ if (sc->rx_bd_chain[i] != NULL) {
+ bzero((char *)sc->rx_bd_chain[i],
+ BCE_RX_CHAIN_PAGE_SZ);
+ }
+
+ sc->free_rx_bd = sc->max_rx_bd;
+
+ /* Check if we lost any mbufs in the process. */
+ DBRUNIF((sc->debug_rx_mbuf_alloc),
+ BCE_PRINTF("%s(): Memory leak! Lost %d mbufs from rx chain!\n",
+ __FUNCTION__, sc->debug_rx_mbuf_alloc));
+
+ DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_UNLOAD);
+}
+
+
+#ifdef BCE_JUMBO_HDRSPLIT
+/****************************************************************************/
+/* Allocate memory and initialize the page data structures. */
+/* Assumes that bce_init_rx_chain() has not already been called. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_init_pg_chain(struct bce_softc *sc)
+{
+ struct rx_bd *pgbd;
+ int i, rc = 0;
+ u32 val;
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_LOAD |
+ BCE_VERBOSE_CTX);
+
+ /* Initialize the page producer and consumer indices. */
+ sc->pg_prod = 0;
+ sc->pg_cons = 0;
+ sc->free_pg_bd = USABLE_PG_BD;
+ sc->max_pg_bd = USABLE_PG_BD;
+ DBRUN(sc->pg_low_watermark = sc->max_pg_bd);
+ DBRUN(sc->pg_empty_count = 0);
+
+ /* Initialize the page next pointer chain entries. */
+ for (i = 0; i < PG_PAGES; i++) {
+ int j;
+
+ pgbd = &sc->pg_bd_chain[i][USABLE_PG_BD_PER_PAGE];
+
+ /* Check if we've reached the last page. */
+ if (i == (PG_PAGES - 1))
+ j = 0;
+ else
+ j = i + 1;
+
+ /* Setup the chain page pointers. */
+ pgbd->rx_bd_haddr_hi = htole32(BCE_ADDR_HI(sc->pg_bd_chain_paddr[j]));
+ pgbd->rx_bd_haddr_lo = htole32(BCE_ADDR_LO(sc->pg_bd_chain_paddr[j]));
+ }
+
+ /* Setup the MQ BIN mapping for host_pg_bidx. */
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716))
+ REG_WR(sc, BCE_MQ_MAP_L2_3, BCE_MQ_MAP_L2_3_DEFAULT);
+
+ CTX_WR(sc, GET_CID_ADDR(RX_CID), BCE_L2CTX_RX_PG_BUF_SIZE, 0);
+
+ /* Configure the rx_bd and page chain mbuf cluster size. */
+ val = (sc->rx_bd_mbuf_data_len << 16) | sc->pg_bd_mbuf_alloc_size;
+ CTX_WR(sc, GET_CID_ADDR(RX_CID), BCE_L2CTX_RX_PG_BUF_SIZE, val);
+
+ /* Configure the context reserved for jumbo support. */
+ CTX_WR(sc, GET_CID_ADDR(RX_CID), BCE_L2CTX_RX_RBDC_KEY,
+ BCE_L2CTX_RX_RBDC_JUMBO_KEY);
+
+ /* Point the hardware to the first page in the page chain. */
+ val = BCE_ADDR_HI(sc->pg_bd_chain_paddr[0]);
+ CTX_WR(sc, GET_CID_ADDR(RX_CID), BCE_L2CTX_RX_NX_PG_BDHADDR_HI, val);
+ val = BCE_ADDR_LO(sc->pg_bd_chain_paddr[0]);
+ CTX_WR(sc, GET_CID_ADDR(RX_CID), BCE_L2CTX_RX_NX_PG_BDHADDR_LO, val);
+
+ /* Fill up the page chain. */
+ bce_fill_pg_chain(sc);
+
+ for (i = 0; i < PG_PAGES; i++) {
+ bus_dmamap_sync(sc->pg_bd_chain_tag, sc->pg_bd_chain_map[i],
+ BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
+ }
+
+ DBRUNMSG(BCE_EXTREME_RECV, bce_dump_pg_chain(sc, 0, TOTAL_PG_BD));
+ DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_LOAD |
+ BCE_VERBOSE_CTX);
+ return(rc);
+}
+
+
+/****************************************************************************/
+/* Add mbufs to the page chain until its full or an mbuf allocation error */
+/* occurs. */
+/* */
+/* Returns: */
+/* Nothing */
+/****************************************************************************/
+static void
+bce_fill_pg_chain(struct bce_softc *sc)
+{
+ u16 prod, prod_idx;
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_EXTREME_RECV | BCE_VERBOSE_LOAD |
+ BCE_VERBOSE_CTX);
+
+ /* Get the page chain prodcuer index. */
+ prod = sc->pg_prod;
+
+ /* Keep filling the page chain until it's full. */
+ while (sc->free_pg_bd > 0) {
+ prod_idx = PG_CHAIN_IDX(prod);
+ if (bce_get_pg_buf(sc, NULL, &prod, &prod_idx)) {
+ /* Bail out if we can't add an mbuf to the chain. */
+ break;
+ }
+ prod = NEXT_PG_BD(prod);
+ }
+
+ /* Save the page chain producer index. */
+ sc->pg_prod = prod;
+
+ DBRUNIF(((prod & USABLE_RX_BD_PER_PAGE) == USABLE_RX_BD_PER_PAGE),
+ BCE_PRINTF("%s(): Invalid pg_prod value: 0x%04X\n",
+ __FUNCTION__, sc->pg_prod));
+
+ /*
+ * Write the mailbox and tell the chip about
+ * the new rx_bd's in the page chain.
+ */
+ REG_WR16(sc, MB_GET_CID_ADDR(RX_CID) +
+ BCE_L2MQ_RX_HOST_PG_BDIDX, sc->pg_prod);
+
+ DBEXIT(BCE_VERBOSE_RESET | BCE_EXTREME_RECV | BCE_VERBOSE_LOAD |
+ BCE_VERBOSE_CTX);
+}
+
+
+/****************************************************************************/
+/* Free memory and clear the RX data structures. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_free_pg_chain(struct bce_softc *sc)
+{
+ int i;
+
+ DBENTER(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_UNLOAD);
+
+ /* Free any mbufs still in the mbuf page chain. */
+ for (i = 0; i < TOTAL_PG_BD; i++) {
+ if (sc->pg_mbuf_ptr[i] != NULL) {
+ if (sc->pg_mbuf_map[i] != NULL)
+ bus_dmamap_sync(sc->pg_mbuf_tag,
+ sc->pg_mbuf_map[i],
+ BUS_DMASYNC_POSTREAD);
+ m_freem(sc->pg_mbuf_ptr[i]);
+ sc->pg_mbuf_ptr[i] = NULL;
+ DBRUN(sc->debug_pg_mbuf_alloc--);
+ }
+ }
+
+ /* Clear each page chain pages. */
+ for (i = 0; i < PG_PAGES; i++)
+ bzero((char *)sc->pg_bd_chain[i], BCE_PG_CHAIN_PAGE_SZ);
+
+ sc->free_pg_bd = sc->max_pg_bd;
+
+ /* Check if we lost any mbufs in the process. */
+ DBRUNIF((sc->debug_pg_mbuf_alloc),
+ BCE_PRINTF("%s(): Memory leak! Lost %d mbufs from page chain!\n",
+ __FUNCTION__, sc->debug_pg_mbuf_alloc));
+
+ DBEXIT(BCE_VERBOSE_RESET | BCE_VERBOSE_RECV | BCE_VERBOSE_UNLOAD);
+}
+#endif /* BCE_JUMBO_HDRSPLIT */
+
+
+/****************************************************************************/
+/* Set media options. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_ifmedia_upd(struct ifnet *ifp)
+{
+ struct bce_softc *sc = ifp->if_softc;
+ int error;
+
+ DBENTER(BCE_VERBOSE);
+
+ BCE_LOCK(sc);
+ error = bce_ifmedia_upd_locked(ifp);
+ BCE_UNLOCK(sc);
+
+ DBEXIT(BCE_VERBOSE);
+ return (error);
+}
+
+
+/****************************************************************************/
+/* Set media options. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static int
+bce_ifmedia_upd_locked(struct ifnet *ifp)
+{
+ struct bce_softc *sc = ifp->if_softc;
+ struct mii_data *mii;
+ int error;
+
+ DBENTER(BCE_VERBOSE_PHY);
+
+ error = 0;
+ BCE_LOCK_ASSERT(sc);
+
+ mii = device_get_softc(sc->bce_miibus);
+
+ /* Make sure the MII bus has been enumerated. */
+ if (mii) {
+ sc->bce_link_up = FALSE;
+ if (mii->mii_instance) {
+ struct mii_softc *miisc;
+
+ LIST_FOREACH(miisc, &mii->mii_phys, mii_list)
+ mii_phy_reset(miisc);
+ }
+ error = mii_mediachg(mii);
+ }
+
+ DBEXIT(BCE_VERBOSE_PHY);
+ return (error);
+}
+
+
+/****************************************************************************/
+/* Reports current media status. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+{
+ struct bce_softc *sc = ifp->if_softc;
+ struct mii_data *mii;
+
+ DBENTER(BCE_VERBOSE_PHY);
+
+ BCE_LOCK(sc);
+
+ if ((ifp->if_flags & IFF_UP) == 0) {
+ BCE_UNLOCK(sc);
+ return;
+ }
+ mii = device_get_softc(sc->bce_miibus);
+
+ mii_pollstat(mii);
+ ifmr->ifm_active = mii->mii_media_active;
+ ifmr->ifm_status = mii->mii_media_status;
+
+ BCE_UNLOCK(sc);
+
+ DBEXIT(BCE_VERBOSE_PHY);
+}
+
+
+/****************************************************************************/
+/* Handles PHY generated interrupt events. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_phy_intr(struct bce_softc *sc)
+{
+ u32 new_link_state, old_link_state;
+
+ DBENTER(BCE_VERBOSE_PHY | BCE_VERBOSE_INTR);
+
+ DBRUN(sc->phy_interrupts++);
+
+ new_link_state = sc->status_block->status_attn_bits &
+ STATUS_ATTN_BITS_LINK_STATE;
+ old_link_state = sc->status_block->status_attn_bits_ack &
+ STATUS_ATTN_BITS_LINK_STATE;
+
+ /* Handle any changes if the link state has changed. */
+ if (new_link_state != old_link_state) {
+
+ /* Update the status_attn_bits_ack field. */
+ if (new_link_state) {
+ REG_WR(sc, BCE_PCICFG_STATUS_BIT_SET_CMD,
+ STATUS_ATTN_BITS_LINK_STATE);
+ DBPRINT(sc, BCE_INFO_PHY, "%s(): Link is now UP.\n",
+ __FUNCTION__);
+ }
+ else {
+ REG_WR(sc, BCE_PCICFG_STATUS_BIT_CLEAR_CMD,
+ STATUS_ATTN_BITS_LINK_STATE);
+ DBPRINT(sc, BCE_INFO_PHY, "%s(): Link is now DOWN.\n",
+ __FUNCTION__);
+ }
+
+ /*
+ * Assume link is down and allow
+ * tick routine to update the state
+ * based on the actual media state.
+ */
+ sc->bce_link_up = FALSE;
+ callout_stop(&sc->bce_tick_callout);
+ bce_tick(sc);
+ }
+
+ /* Acknowledge the link change interrupt. */
+ REG_WR(sc, BCE_EMAC_STATUS, BCE_EMAC_STATUS_LINK_CHANGE);
+
+ DBEXIT(BCE_VERBOSE_PHY | BCE_VERBOSE_INTR);
+}
+
+
+/****************************************************************************/
+/* Reads the receive consumer value from the status block (skipping over */
+/* chain page pointer if necessary). */
+/* */
+/* Returns: */
+/* hw_cons */
+/****************************************************************************/
+static inline u16
+bce_get_hw_rx_cons(struct bce_softc *sc)
+{
+ u16 hw_cons;
+
+ rmb();
+ hw_cons = sc->status_block->status_rx_quick_consumer_index0;
+ if ((hw_cons & USABLE_RX_BD_PER_PAGE) == USABLE_RX_BD_PER_PAGE)
+ hw_cons++;
+
+ return hw_cons;
+}
+
+/****************************************************************************/
+/* Handles received frame interrupt events. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_rx_intr(struct bce_softc *sc)
+{
+ struct ifnet *ifp = sc->bce_ifp;
+ struct l2_fhdr *l2fhdr;
+ struct ether_vlan_header *vh;
+ unsigned int pkt_len;
+ u16 sw_rx_cons, sw_rx_cons_idx, hw_rx_cons;
+ u32 status;
+#ifdef BCE_JUMBO_HDRSPLIT
+ unsigned int rem_len;
+ u16 sw_pg_cons, sw_pg_cons_idx;
+#endif
+
+ DBENTER(BCE_VERBOSE_RECV | BCE_VERBOSE_INTR);
+ DBRUN(sc->interrupts_rx++);
+ DBPRINT(sc, BCE_EXTREME_RECV, "%s(enter): rx_prod = 0x%04X, "
+ "rx_cons = 0x%04X, rx_prod_bseq = 0x%08X\n",
+ __FUNCTION__, sc->rx_prod, sc->rx_cons, sc->rx_prod_bseq);
+
+ /* Prepare the RX chain pages to be accessed by the host CPU. */
+ for (int i = 0; i < RX_PAGES; i++)
+ bus_dmamap_sync(sc->rx_bd_chain_tag,
+ sc->rx_bd_chain_map[i], BUS_DMASYNC_POSTREAD);
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ /* Prepare the page chain pages to be accessed by the host CPU. */
+ for (int i = 0; i < PG_PAGES; i++)
+ bus_dmamap_sync(sc->pg_bd_chain_tag,
+ sc->pg_bd_chain_map[i], BUS_DMASYNC_POSTREAD);
+#endif
+
+ /* Get the hardware's view of the RX consumer index. */
+ hw_rx_cons = sc->hw_rx_cons = bce_get_hw_rx_cons(sc);
+
+ /* Get working copies of the driver's view of the consumer indices. */
+ sw_rx_cons = sc->rx_cons;
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ sw_pg_cons = sc->pg_cons;
+#endif
+
+ /* Update some debug statistics counters */
+ DBRUNIF((sc->free_rx_bd < sc->rx_low_watermark),
+ sc->rx_low_watermark = sc->free_rx_bd);
+ DBRUNIF((sc->free_rx_bd == sc->max_rx_bd),
+ sc->rx_empty_count++);
+
+ /* Scan through the receive chain as long as there is work to do */
+ /* ToDo: Consider setting a limit on the number of packets processed. */
+ rmb();
+ while (sw_rx_cons != hw_rx_cons) {
+ struct mbuf *m0;
+
+ /* Convert the producer/consumer indices to an actual rx_bd index. */
+ sw_rx_cons_idx = RX_CHAIN_IDX(sw_rx_cons);
+
+ /* Unmap the mbuf from DMA space. */
+ bus_dmamap_sync(sc->rx_mbuf_tag,
+ sc->rx_mbuf_map[sw_rx_cons_idx],
+ BUS_DMASYNC_POSTREAD);
+ bus_dmamap_unload(sc->rx_mbuf_tag,
+ sc->rx_mbuf_map[sw_rx_cons_idx]);
+
+ /* Remove the mbuf from the RX chain. */
+ m0 = sc->rx_mbuf_ptr[sw_rx_cons_idx];
+ sc->rx_mbuf_ptr[sw_rx_cons_idx] = NULL;
+ DBRUN(sc->debug_rx_mbuf_alloc--);
+ sc->free_rx_bd++;
+
+ if(m0 == NULL) {
+ DBPRINT(sc, BCE_EXTREME_RECV,
+ "%s(): Oops! Empty mbuf pointer "
+ "found in sc->rx_mbuf_ptr[0x%04X]!\n",
+ __FUNCTION__, sw_rx_cons_idx);
+ goto bce_rx_int_next_rx;
+ }
+
+ /*
+ * Frames received on the NetXteme II are prepended
+ * with an l2_fhdr structure which provides status
+ * information about the received frame (including
+ * VLAN tags and checksum info). The frames are
+ * also automatically adjusted to align the IP
+ * header (i.e. two null bytes are inserted before
+ * the Ethernet header). As a result the data
+ * DMA'd by the controller into the mbuf looks
+ * like this:
+ *
+ * +---------+-----+---------------------+-----+
+ * | l2_fhdr | pad | packet data | FCS |
+ * +---------+-----+---------------------+-----+
+ *
+ * The l2_fhdr needs to be checked and skipped and
+ * the FCS needs to be stripped before sending the
+ * packet up the stack.
+ */
+ l2fhdr = mtod(m0, struct l2_fhdr *);
+
+ /* Get the packet data + FCS length and the status. */
+ pkt_len = l2fhdr->l2_fhdr_pkt_len;
+ status = l2fhdr->l2_fhdr_status;
+
+ /*
+ * Skip over the l2_fhdr and pad, resulting in the
+ * following data in the mbuf:
+ * +---------------------+-----+
+ * | packet data | FCS |
+ * +---------------------+-----+
+ */
+ m_adj(m0, sizeof(struct l2_fhdr) + ETHER_ALIGN);
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ /*
+ * Check whether the received frame fits in a single
+ * mbuf or not (i.e. packet data + FCS <=
+ * sc->rx_bd_mbuf_data_len bytes).
+ */
+ if (pkt_len > m0->m_len) {
+ /*
+ * The received frame is larger than a single mbuf.
+ * If the frame was a TCP frame then only the TCP
+ * header is placed in the mbuf, the remaining
+ * payload (including FCS) is placed in the page
+ * chain, the SPLIT flag is set, and the header
+ * length is placed in the IP checksum field.
+ * If the frame is not a TCP frame then the mbuf
+ * is filled and the remaining bytes are placed
+ * in the page chain.
+ */
+
+ DBPRINT(sc, BCE_INFO_RECV, "%s(): Found a large "
+ "packet.\n", __FUNCTION__);
+
+ /*
+ * When the page chain is enabled and the TCP
+ * header has been split from the TCP payload,
+ * the ip_xsum structure will reflect the length
+ * of the TCP header, not the IP checksum. Set
+ * the packet length of the mbuf accordingly.
+ */
+ if (status & L2_FHDR_STATUS_SPLIT)
+ m0->m_len = l2fhdr->l2_fhdr_ip_xsum;
+
+ rem_len = pkt_len - m0->m_len;
+
+ /* Pull mbufs off the page chain for the remaining data. */
+ while (rem_len > 0) {
+ struct mbuf *m_pg;
+
+ sw_pg_cons_idx = PG_CHAIN_IDX(sw_pg_cons);
+
+ /* Remove the mbuf from the page chain. */
+ m_pg = sc->pg_mbuf_ptr[sw_pg_cons_idx];
+ sc->pg_mbuf_ptr[sw_pg_cons_idx] = NULL;
+ DBRUN(sc->debug_pg_mbuf_alloc--);
+ sc->free_pg_bd++;
+
+ /* Unmap the page chain mbuf from DMA space. */
+ bus_dmamap_sync(sc->pg_mbuf_tag,
+ sc->pg_mbuf_map[sw_pg_cons_idx],
+ BUS_DMASYNC_POSTREAD);
+ bus_dmamap_unload(sc->pg_mbuf_tag,
+ sc->pg_mbuf_map[sw_pg_cons_idx]);
+
+ /* Adjust the mbuf length. */
+ if (rem_len < m_pg->m_len) {
+ /* The mbuf chain is complete. */
+ m_pg->m_len = rem_len;
+ rem_len = 0;
+ } else {
+ /* More packet data is waiting. */
+ rem_len -= m_pg->m_len;
+ }
+
+ /* Concatenate the mbuf cluster to the mbuf. */
+ m_cat(m0, m_pg);
+
+ sw_pg_cons = NEXT_PG_BD(sw_pg_cons);
+ }
+
+ /* Set the total packet length. */
+ m0->m_pkthdr.len = pkt_len;
+
+ } else {
+ /*
+ * The received packet is small and fits in a
+ * single mbuf (i.e. the l2_fhdr + pad + packet +
+ * FCS <= MHLEN). In other words, the packet is
+ * 154 bytes or less in size.
+ */
+
+ DBPRINT(sc, BCE_INFO_RECV, "%s(): Found a small "
+ "packet.\n", __FUNCTION__);
+
+ /* Set the total packet length. */
+ m0->m_pkthdr.len = m0->m_len = pkt_len;
+ }
+#else
+ /* Set the total packet length. */
+ m0->m_pkthdr.len = m0->m_len = pkt_len;
+#endif
+
+ /* Remove the trailing Ethernet FCS. */
+ m_adj(m0, -ETHER_CRC_LEN);
+
+ /* Check that the resulting mbuf chain is valid. */
+ DBRUN(m_sanity(m0, FALSE));
+ DBRUNIF(((m0->m_len < ETHER_HDR_LEN) |
+ (m0->m_pkthdr.len > BCE_MAX_JUMBO_ETHER_MTU_VLAN)),
+ BCE_PRINTF("Invalid Ethernet frame size!\n");
+ m_print(m0, 128));
+
+ DBRUNIF(DB_RANDOMTRUE(l2fhdr_error_sim_control),
+ sc->l2fhdr_error_sim_count++;
+ status = status | L2_FHDR_ERRORS_PHY_DECODE);
+
+ /* Check the received frame for errors. */
+ if (status & (L2_FHDR_ERRORS_BAD_CRC |
+ L2_FHDR_ERRORS_PHY_DECODE | L2_FHDR_ERRORS_ALIGNMENT |
+ L2_FHDR_ERRORS_TOO_SHORT | L2_FHDR_ERRORS_GIANT_FRAME)) {
+
+ /* Log the error and release the mbuf. */
+ ifp->if_ierrors++;
+ sc->l2fhdr_error_count++;
+
+ m_freem(m0);
+ m0 = NULL;
+ goto bce_rx_int_next_rx;
+ }
+
+ /* Send the packet to the appropriate interface. */
+ m0->m_pkthdr.rcvif = ifp;
+
+ /* Assume no hardware checksum. */
+ m0->m_pkthdr.csum_flags = 0;
+
+ /* Validate the checksum if offload enabled. */
+ if (ifp->if_capenable & IFCAP_RXCSUM) {
+
+ /* Check for an IP datagram. */
+ if (!(status & L2_FHDR_STATUS_SPLIT) &&
+ (status & L2_FHDR_STATUS_IP_DATAGRAM)) {
+ m0->m_pkthdr.csum_flags |= CSUM_IP_CHECKED;
+ DBRUN(sc->csum_offload_ip++);
+ /* Check if the IP checksum is valid. */
+ if ((l2fhdr->l2_fhdr_ip_xsum ^ 0xffff) == 0)
+ m0->m_pkthdr.csum_flags |=
+ CSUM_IP_VALID;
+ }
+
+ /* Check for a valid TCP/UDP frame. */
+ if (status & (L2_FHDR_STATUS_TCP_SEGMENT |
+ L2_FHDR_STATUS_UDP_DATAGRAM)) {
+
+ /* Check for a good TCP/UDP checksum. */
+ if ((status & (L2_FHDR_ERRORS_TCP_XSUM |
+ L2_FHDR_ERRORS_UDP_XSUM)) == 0) {
+ DBRUN(sc->csum_offload_tcp_udp++);
+ m0->m_pkthdr.csum_data =
+ l2fhdr->l2_fhdr_tcp_udp_xsum;
+ m0->m_pkthdr.csum_flags |=
+ (CSUM_DATA_VALID
+ | CSUM_PSEUDO_HDR);
+ }
+ }
+ }
+
+ /* Attach the VLAN tag. */
+ if (status & L2_FHDR_STATUS_L2_VLAN_TAG) {
+ if (ifp->if_capenable & IFCAP_VLAN_HWTAGGING) {
+#if __FreeBSD_version < 700000
+ VLAN_INPUT_TAG(ifp, m0,
+ l2fhdr->l2_fhdr_vlan_tag, continue);
+#else
+ m0->m_pkthdr.ether_vtag =
+ l2fhdr->l2_fhdr_vlan_tag;
+ m0->m_flags |= M_VLANTAG;
+#endif
+ } else {
+ /*
+ * bce(4) controllers can't disable VLAN
+ * tag stripping if management firmware
+ * (ASF/IPMI/UMP) is running. So we always
+ * strip VLAN tag and manually reconstruct
+ * the VLAN frame by appending stripped
+ * VLAN tag in driver if VLAN tag stripping
+ * was disabled.
+ *
+ * TODO: LLC SNAP handling.
+ */
+ bcopy(mtod(m0, uint8_t *),
+ mtod(m0, uint8_t *) - ETHER_VLAN_ENCAP_LEN,
+ ETHER_ADDR_LEN * 2);
+ m0->m_data -= ETHER_VLAN_ENCAP_LEN;
+ vh = mtod(m0, struct ether_vlan_header *);
+ vh->evl_encap_proto = htons(ETHERTYPE_VLAN);
+ vh->evl_tag = htons(l2fhdr->l2_fhdr_vlan_tag);
+ m0->m_pkthdr.len += ETHER_VLAN_ENCAP_LEN;
+ m0->m_len += ETHER_VLAN_ENCAP_LEN;
+ }
+ }
+
+ /* Increment received packet statistics. */
+ ifp->if_ipackets++;
+
+bce_rx_int_next_rx:
+ sw_rx_cons = NEXT_RX_BD(sw_rx_cons);
+
+ /* If we have a packet, pass it up the stack */
+ if (m0) {
+ /* Make sure we don't lose our place when we release the lock. */
+ sc->rx_cons = sw_rx_cons;
+#ifdef BCE_JUMBO_HDRSPLIT
+ sc->pg_cons = sw_pg_cons;
+#endif
+
+ BCE_UNLOCK(sc);
+ (*ifp->if_input)(ifp, m0);
+ BCE_LOCK(sc);
+
+ /* Recover our place. */
+ sw_rx_cons = sc->rx_cons;
+#ifdef BCE_JUMBO_HDRSPLIT
+ sw_pg_cons = sc->pg_cons;
+#endif
+ }
+
+ /* Refresh hw_cons to see if there's new work */
+ if (sw_rx_cons == hw_rx_cons)
+ hw_rx_cons = sc->hw_rx_cons = bce_get_hw_rx_cons(sc);
+ }
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ /* No new packets. Refill the page chain. */
+ sc->pg_cons = sw_pg_cons;
+ bce_fill_pg_chain(sc);
+#endif
+
+ /* No new packets. Refill the RX chain. */
+ sc->rx_cons = sw_rx_cons;
+ bce_fill_rx_chain(sc);
+
+ /* Prepare the page chain pages to be accessed by the NIC. */
+ for (int i = 0; i < RX_PAGES; i++)
+ bus_dmamap_sync(sc->rx_bd_chain_tag,
+ sc->rx_bd_chain_map[i], BUS_DMASYNC_PREWRITE);
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ for (int i = 0; i < PG_PAGES; i++)
+ bus_dmamap_sync(sc->pg_bd_chain_tag,
+ sc->pg_bd_chain_map[i], BUS_DMASYNC_PREWRITE);
+#endif
+
+ DBPRINT(sc, BCE_EXTREME_RECV, "%s(exit): rx_prod = 0x%04X, "
+ "rx_cons = 0x%04X, rx_prod_bseq = 0x%08X\n",
+ __FUNCTION__, sc->rx_prod, sc->rx_cons, sc->rx_prod_bseq);
+ DBEXIT(BCE_VERBOSE_RECV | BCE_VERBOSE_INTR);
+}
+
+
+/****************************************************************************/
+/* Reads the transmit consumer value from the status block (skipping over */
+/* chain page pointer if necessary). */
+/* */
+/* Returns: */
+/* hw_cons */
+/****************************************************************************/
+static inline u16
+bce_get_hw_tx_cons(struct bce_softc *sc)
+{
+ u16 hw_cons;
+
+ mb();
+ hw_cons = sc->status_block->status_tx_quick_consumer_index0;
+ if ((hw_cons & USABLE_TX_BD_PER_PAGE) == USABLE_TX_BD_PER_PAGE)
+ hw_cons++;
+
+ return hw_cons;
+}
+
+
+/****************************************************************************/
+/* Handles transmit completion interrupt events. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_tx_intr(struct bce_softc *sc)
+{
+ struct ifnet *ifp = sc->bce_ifp;
+ u16 hw_tx_cons, sw_tx_cons, sw_tx_chain_cons;
+
+ DBENTER(BCE_VERBOSE_SEND | BCE_VERBOSE_INTR);
+ DBRUN(sc->interrupts_tx++);
+ DBPRINT(sc, BCE_EXTREME_SEND, "%s(enter): tx_prod = 0x%04X, "
+ "tx_cons = 0x%04X, tx_prod_bseq = 0x%08X\n",
+ __FUNCTION__, sc->tx_prod, sc->tx_cons, sc->tx_prod_bseq);
+
+ BCE_LOCK_ASSERT(sc);
+
+ /* Get the hardware's view of the TX consumer index. */
+ hw_tx_cons = sc->hw_tx_cons = bce_get_hw_tx_cons(sc);
+ sw_tx_cons = sc->tx_cons;
+
+ /* Prevent speculative reads of the status block. */
+ bus_space_barrier(sc->bce_btag, sc->bce_bhandle, 0, 0,
+ BUS_SPACE_BARRIER_READ);
+
+ /* Cycle through any completed TX chain page entries. */
+ while (sw_tx_cons != hw_tx_cons) {
+#ifdef BCE_DEBUG
+ struct tx_bd *txbd = NULL;
+#endif
+ sw_tx_chain_cons = TX_CHAIN_IDX(sw_tx_cons);
+
+ DBPRINT(sc, BCE_INFO_SEND,
+ "%s(): hw_tx_cons = 0x%04X, sw_tx_cons = 0x%04X, "
+ "sw_tx_chain_cons = 0x%04X\n",
+ __FUNCTION__, hw_tx_cons, sw_tx_cons, sw_tx_chain_cons);
+
+ DBRUNIF((sw_tx_chain_cons > MAX_TX_BD),
+ BCE_PRINTF("%s(%d): TX chain consumer out of range! "
+ " 0x%04X > 0x%04X\n", __FILE__, __LINE__, sw_tx_chain_cons,
+ (int) MAX_TX_BD);
+ bce_breakpoint(sc));
+
+ DBRUN(txbd = &sc->tx_bd_chain[TX_PAGE(sw_tx_chain_cons)]
+ [TX_IDX(sw_tx_chain_cons)]);
+
+ DBRUNIF((txbd == NULL),
+ BCE_PRINTF("%s(%d): Unexpected NULL tx_bd[0x%04X]!\n",
+ __FILE__, __LINE__, sw_tx_chain_cons);
+ bce_breakpoint(sc));
+
+ DBRUNMSG(BCE_INFO_SEND, BCE_PRINTF("%s(): ", __FUNCTION__);
+ bce_dump_txbd(sc, sw_tx_chain_cons, txbd));
+
+ /*
+ * Free the associated mbuf. Remember
+ * that only the last tx_bd of a packet
+ * has an mbuf pointer and DMA map.
+ */
+ if (sc->tx_mbuf_ptr[sw_tx_chain_cons] != NULL) {
+
+ /* Validate that this is the last tx_bd. */
+ DBRUNIF((!(txbd->tx_bd_flags & TX_BD_FLAGS_END)),
+ BCE_PRINTF("%s(%d): tx_bd END flag not set but "
+ "txmbuf == NULL!\n", __FILE__, __LINE__);
+ bce_breakpoint(sc));
+
+ DBRUNMSG(BCE_INFO_SEND,
+ BCE_PRINTF("%s(): Unloading map/freeing mbuf "
+ "from tx_bd[0x%04X]\n", __FUNCTION__,
+ sw_tx_chain_cons));
+
+ /* Unmap the mbuf. */
+ bus_dmamap_unload(sc->tx_mbuf_tag,
+ sc->tx_mbuf_map[sw_tx_chain_cons]);
+
+ /* Free the mbuf. */
+ m_freem(sc->tx_mbuf_ptr[sw_tx_chain_cons]);
+ sc->tx_mbuf_ptr[sw_tx_chain_cons] = NULL;
+ DBRUN(sc->debug_tx_mbuf_alloc--);
+
+ ifp->if_opackets++;
+ }
+
+ sc->used_tx_bd--;
+ sw_tx_cons = NEXT_TX_BD(sw_tx_cons);
+
+ /* Refresh hw_cons to see if there's new work. */
+ hw_tx_cons = sc->hw_tx_cons = bce_get_hw_tx_cons(sc);
+
+ /* Prevent speculative reads of the status block. */
+ bus_space_barrier(sc->bce_btag, sc->bce_bhandle, 0, 0,
+ BUS_SPACE_BARRIER_READ);
+ }
+
+ /* Clear the TX timeout timer. */
+ sc->watchdog_timer = 0;
+
+ /* Clear the tx hardware queue full flag. */
+ if (sc->used_tx_bd < sc->max_tx_bd) {
+ DBRUNIF((ifp->if_drv_flags & IFF_DRV_OACTIVE),
+ DBPRINT(sc, BCE_INFO_SEND,
+ "%s(): Open TX chain! %d/%d (used/total)\n",
+ __FUNCTION__, sc->used_tx_bd, sc->max_tx_bd));
+ ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ }
+
+ sc->tx_cons = sw_tx_cons;
+
+ DBPRINT(sc, BCE_EXTREME_SEND, "%s(exit): tx_prod = 0x%04X, "
+ "tx_cons = 0x%04X, tx_prod_bseq = 0x%08X\n",
+ __FUNCTION__, sc->tx_prod, sc->tx_cons, sc->tx_prod_bseq);
+ DBEXIT(BCE_VERBOSE_SEND | BCE_VERBOSE_INTR);
+}
+
+
+/****************************************************************************/
+/* Disables interrupt generation. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_disable_intr(struct bce_softc *sc)
+{
+ DBENTER(BCE_VERBOSE_INTR);
+
+ REG_WR(sc, BCE_PCICFG_INT_ACK_CMD, BCE_PCICFG_INT_ACK_CMD_MASK_INT);
+ REG_RD(sc, BCE_PCICFG_INT_ACK_CMD);
+
+ DBEXIT(BCE_VERBOSE_INTR);
+}
+
+
+/****************************************************************************/
+/* Enables interrupt generation. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_enable_intr(struct bce_softc *sc, int coal_now)
+{
+ DBENTER(BCE_VERBOSE_INTR);
+
+ REG_WR(sc, BCE_PCICFG_INT_ACK_CMD,
+ BCE_PCICFG_INT_ACK_CMD_INDEX_VALID |
+ BCE_PCICFG_INT_ACK_CMD_MASK_INT | sc->last_status_idx);
+
+ REG_WR(sc, BCE_PCICFG_INT_ACK_CMD,
+ BCE_PCICFG_INT_ACK_CMD_INDEX_VALID | sc->last_status_idx);
+
+ /* Force an immediate interrupt (whether there is new data or not). */
+ if (coal_now)
+ REG_WR(sc, BCE_HC_COMMAND, sc->hc_command | BCE_HC_COMMAND_COAL_NOW);
+
+ DBEXIT(BCE_VERBOSE_INTR);
+}
+
+
+/****************************************************************************/
+/* Handles controller initialization. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_init_locked(struct bce_softc *sc)
+{
+ struct ifnet *ifp;
+ u32 ether_mtu = 0;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ BCE_LOCK_ASSERT(sc);
+
+ ifp = sc->bce_ifp;
+
+ /* Check if the driver is still running and bail out if it is. */
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+ goto bce_init_locked_exit;
+
+ bce_stop(sc);
+
+ if (bce_reset(sc, BCE_DRV_MSG_CODE_RESET)) {
+ BCE_PRINTF("%s(%d): Controller reset failed!\n",
+ __FILE__, __LINE__);
+ goto bce_init_locked_exit;
+ }
+
+ if (bce_chipinit(sc)) {
+ BCE_PRINTF("%s(%d): Controller initialization failed!\n",
+ __FILE__, __LINE__);
+ goto bce_init_locked_exit;
+ }
+
+ if (bce_blockinit(sc)) {
+ BCE_PRINTF("%s(%d): Block initialization failed!\n",
+ __FILE__, __LINE__);
+ goto bce_init_locked_exit;
+ }
+
+ /* Load our MAC address. */
+ bcopy(IF_LLADDR(sc->bce_ifp), sc->eaddr, ETHER_ADDR_LEN);
+ bce_set_mac_addr(sc);
+
+ /*
+ * Calculate and program the hardware Ethernet MTU
+ * size. Be generous on the receive if we have room.
+ */
+#ifdef BCE_JUMBO_HDRSPLIT
+ if (ifp->if_mtu <= (sc->rx_bd_mbuf_data_len +
+ sc->pg_bd_mbuf_alloc_size))
+ ether_mtu = sc->rx_bd_mbuf_data_len +
+ sc->pg_bd_mbuf_alloc_size;
+#else
+ if (ifp->if_mtu <= sc->rx_bd_mbuf_data_len)
+ ether_mtu = sc->rx_bd_mbuf_data_len;
+#endif
+ else
+ ether_mtu = ifp->if_mtu;
+
+ ether_mtu += ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN + ETHER_CRC_LEN;
+
+ DBPRINT(sc, BCE_INFO_MISC, "%s(): setting h/w mtu = %d\n",
+ __FUNCTION__, ether_mtu);
+
+ /* Program the mtu, enabling jumbo frame support if necessary. */
+ if (ether_mtu > (ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN))
+ REG_WR(sc, BCE_EMAC_RX_MTU_SIZE,
+ min(ether_mtu, BCE_MAX_JUMBO_ETHER_MTU) |
+ BCE_EMAC_RX_MTU_SIZE_JUMBO_ENA);
+ else
+ REG_WR(sc, BCE_EMAC_RX_MTU_SIZE, ether_mtu);
+
+ DBPRINT(sc, BCE_INFO_LOAD,
+ "%s(): rx_bd_mbuf_alloc_size = %d, rx_bce_mbuf_data_len = %d, "
+ "rx_bd_mbuf_align_pad = %d\n", __FUNCTION__,
+ sc->rx_bd_mbuf_alloc_size, sc->rx_bd_mbuf_data_len,
+ sc->rx_bd_mbuf_align_pad);
+
+ /* Program appropriate promiscuous/multicast filtering. */
+ bce_set_rx_mode(sc);
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ DBPRINT(sc, BCE_INFO_LOAD, "%s(): pg_bd_mbuf_alloc_size = %d\n",
+ __FUNCTION__, sc->pg_bd_mbuf_alloc_size);
+
+ /* Init page buffer descriptor chain. */
+ bce_init_pg_chain(sc);
+#endif
+
+ /* Init RX buffer descriptor chain. */
+ bce_init_rx_chain(sc);
+
+ /* Init TX buffer descriptor chain. */
+ bce_init_tx_chain(sc);
+
+ /* Enable host interrupts. */
+ bce_enable_intr(sc, 1);
+
+ bce_ifmedia_upd_locked(ifp);
+
+ /* Let the OS know the driver is up and running. */
+ ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+
+ callout_reset(&sc->bce_tick_callout, hz, bce_tick, sc);
+
+bce_init_locked_exit:
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Initialize the controller just enough so that any management firmware */
+/* running on the device will continue to operate correctly. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_mgmt_init_locked(struct bce_softc *sc)
+{
+ struct ifnet *ifp;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ BCE_LOCK_ASSERT(sc);
+
+ /* Bail out if management firmware is not running. */
+ if (!(sc->bce_flags & BCE_MFW_ENABLE_FLAG)) {
+ DBPRINT(sc, BCE_VERBOSE_SPECIAL,
+ "No management firmware running...\n");
+ goto bce_mgmt_init_locked_exit;
+ }
+
+ ifp = sc->bce_ifp;
+
+ /* Enable all critical blocks in the MAC. */
+ REG_WR(sc, BCE_MISC_ENABLE_SET_BITS, BCE_MISC_ENABLE_DEFAULT);
+ REG_RD(sc, BCE_MISC_ENABLE_SET_BITS);
+ DELAY(20);
+
+ bce_ifmedia_upd_locked(ifp);
+
+bce_mgmt_init_locked_exit:
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Handles controller initialization when called from an unlocked routine. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_init(void *xsc)
+{
+ struct bce_softc *sc = xsc;
+
+ DBENTER(BCE_VERBOSE_RESET);
+
+ BCE_LOCK(sc);
+ bce_init_locked(sc);
+ BCE_UNLOCK(sc);
+
+ DBEXIT(BCE_VERBOSE_RESET);
+}
+
+
+/****************************************************************************/
+/* Modifies an mbuf for TSO on the hardware. */
+/* */
+/* Returns: */
+/* Pointer to a modified mbuf. */
+/****************************************************************************/
+static struct mbuf *
+bce_tso_setup(struct bce_softc *sc, struct mbuf **m_head, u16 *flags)
+{
+ struct mbuf *m;
+ struct ether_header *eh;
+ struct ip *ip;
+ struct tcphdr *th;
+ u16 etype;
+ int hdr_len, ip_hlen = 0, tcp_hlen = 0, ip_len = 0;
+
+ DBRUN(sc->tso_frames_requested++);
+
+ /* Controller may modify mbuf chains. */
+ if (M_WRITABLE(*m_head) == 0) {
+ m = m_dup(*m_head, M_DONTWAIT);
+ m_freem(*m_head);
+ if (m == NULL) {
+ sc->mbuf_alloc_failed_count++;
+ *m_head = NULL;
+ return (NULL);
+ }
+ *m_head = m;
+ }
+
+ /*
+ * For TSO the controller needs two pieces of info,
+ * the MSS and the IP+TCP options length.
+ */
+ m = m_pullup(*m_head, sizeof(struct ether_header) + sizeof(struct ip));
+ if (m == NULL) {
+ *m_head = NULL;
+ return (NULL);
+ }
+ eh = mtod(m, struct ether_header *);
+ etype = ntohs(eh->ether_type);
+
+ /* Check for supported TSO Ethernet types (only IPv4 for now) */
+ switch (etype) {
+ case ETHERTYPE_IP:
+ ip = (struct ip *)(m->m_data + sizeof(struct ether_header));
+ /* TSO only supported for TCP protocol. */
+ if (ip->ip_p != IPPROTO_TCP) {
+ BCE_PRINTF("%s(%d): TSO enabled for non-TCP frame!.\n",
+ __FILE__, __LINE__);
+ m_freem(*m_head);
+ *m_head = NULL;
+ return (NULL);
+ }
+
+ /* Get IP header length in bytes (min 20) */
+ ip_hlen = ip->ip_hl << 2;
+ m = m_pullup(*m_head, sizeof(struct ether_header) + ip_hlen +
+ sizeof(struct tcphdr));
+ if (m == NULL) {
+ *m_head = NULL;
+ return (NULL);
+ }
+
+ /* Get the TCP header length in bytes (min 20) */
+ ip = (struct ip *)(m->m_data + sizeof(struct ether_header));
+ th = (struct tcphdr *)((caddr_t)ip + ip_hlen);
+ tcp_hlen = (th->th_off << 2);
+
+ /* Make sure all IP/TCP options live in the same buffer. */
+ m = m_pullup(*m_head, sizeof(struct ether_header)+ ip_hlen +
+ tcp_hlen);
+ if (m == NULL) {
+ *m_head = NULL;
+ return (NULL);
+ }
+
+ /* IP header length and checksum will be calc'd by hardware */
+ ip = (struct ip *)(m->m_data + sizeof(struct ether_header));
+ ip_len = ip->ip_len;
+ ip->ip_len = 0;
+ ip->ip_sum = 0;
+ break;
+ case ETHERTYPE_IPV6:
+ BCE_PRINTF("%s(%d): TSO over IPv6 not supported!.\n",
+ __FILE__, __LINE__);
+ m_freem(*m_head);
+ *m_head = NULL;
+ return (NULL);
+ /* NOT REACHED */
+ default:
+ BCE_PRINTF("%s(%d): TSO enabled for unsupported protocol!.\n",
+ __FILE__, __LINE__);
+ m_freem(*m_head);
+ *m_head = NULL;
+ return (NULL);
+ }
+
+ hdr_len = sizeof(struct ether_header) + ip_hlen + tcp_hlen;
+
+ DBPRINT(sc, BCE_EXTREME_SEND, "%s(): hdr_len = %d, e_hlen = %d, "
+ "ip_hlen = %d, tcp_hlen = %d, ip_len = %d\n",
+ __FUNCTION__, hdr_len, (int) sizeof(struct ether_header), ip_hlen,
+ tcp_hlen, ip_len);
+
+ /* Set the LSO flag in the TX BD */
+ *flags |= TX_BD_FLAGS_SW_LSO;
+
+ /* Set the length of IP + TCP options (in 32 bit words) */
+ *flags |= (((ip_hlen + tcp_hlen - sizeof(struct ip) -
+ sizeof(struct tcphdr)) >> 2) << 8);
+
+ DBRUN(sc->tso_frames_completed++);
+ return (*m_head);
+}
+
+
+/****************************************************************************/
+/* Encapsultes an mbuf cluster into the tx_bd chain structure and makes the */
+/* memory visible to the controller. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/* Modified: */
+/* m_head: May be set to NULL if MBUF is excessively fragmented. */
+/****************************************************************************/
+static int
+bce_tx_encap(struct bce_softc *sc, struct mbuf **m_head)
+{
+ bus_dma_segment_t segs[BCE_MAX_SEGMENTS];
+ bus_dmamap_t map;
+ struct tx_bd *txbd = NULL;
+ struct mbuf *m0;
+ u16 prod, chain_prod, mss = 0, vlan_tag = 0, flags = 0;
+ u32 prod_bseq;
+
+#ifdef BCE_DEBUG
+ u16 debug_prod;
+#endif
+
+ int i, error, nsegs, rc = 0;
+
+ DBENTER(BCE_VERBOSE_SEND);
+
+ /* Make sure we have room in the TX chain. */
+ if (sc->used_tx_bd >= sc->max_tx_bd)
+ goto bce_tx_encap_exit;
+
+ /* Transfer any checksum offload flags to the bd. */
+ m0 = *m_head;
+ if (m0->m_pkthdr.csum_flags) {
+ if (m0->m_pkthdr.csum_flags & CSUM_TSO) {
+ m0 = bce_tso_setup(sc, m_head, &flags);
+ if (m0 == NULL) {
+ DBRUN(sc->tso_frames_failed++);
+ goto bce_tx_encap_exit;
+ }
+ mss = htole16(m0->m_pkthdr.tso_segsz);
+ } else {
+ if (m0->m_pkthdr.csum_flags & CSUM_IP)
+ flags |= TX_BD_FLAGS_IP_CKSUM;
+ if (m0->m_pkthdr.csum_flags & (CSUM_TCP | CSUM_UDP))
+ flags |= TX_BD_FLAGS_TCP_UDP_CKSUM;
+ }
+ }
+
+ /* Transfer any VLAN tags to the bd. */
+ if (m0->m_flags & M_VLANTAG) {
+ flags |= TX_BD_FLAGS_VLAN_TAG;
+ vlan_tag = m0->m_pkthdr.ether_vtag;
+ }
+
+ /* Map the mbuf into DMAable memory. */
+ prod = sc->tx_prod;
+ chain_prod = TX_CHAIN_IDX(prod);
+ map = sc->tx_mbuf_map[chain_prod];
+
+ /* Map the mbuf into our DMA address space. */
+ error = bus_dmamap_load_mbuf_sg(sc->tx_mbuf_tag, map, m0,
+ segs, &nsegs, BUS_DMA_NOWAIT);
+
+ /* Check if the DMA mapping was successful */
+ if (error == EFBIG) {
+ sc->mbuf_frag_count++;
+
+ /* Try to defrag the mbuf. */
+ m0 = m_collapse(*m_head, M_DONTWAIT, BCE_MAX_SEGMENTS);
+ if (m0 == NULL) {
+ /* Defrag was unsuccessful */
+ m_freem(*m_head);
+ *m_head = NULL;
+ sc->mbuf_alloc_failed_count++;
+ rc = ENOBUFS;
+ goto bce_tx_encap_exit;
+ }
+
+ /* Defrag was successful, try mapping again */
+ *m_head = m0;
+ error = bus_dmamap_load_mbuf_sg(sc->tx_mbuf_tag,
+ map, m0, segs, &nsegs, BUS_DMA_NOWAIT);
+
+ /* Still getting an error after a defrag. */
+ if (error == ENOMEM) {
+ /* Insufficient DMA buffers available. */
+ sc->dma_map_addr_tx_failed_count++;
+ rc = error;
+ goto bce_tx_encap_exit;
+ } else if (error != 0) {
+ /* Release it and return an error. */
+ BCE_PRINTF("%s(%d): Unknown error mapping mbuf into "
+ "TX chain!\n", __FILE__, __LINE__);
+ m_freem(m0);
+ *m_head = NULL;
+ sc->dma_map_addr_tx_failed_count++;
+ rc = ENOBUFS;
+ goto bce_tx_encap_exit;
+ }
+ } else if (error == ENOMEM) {
+ /* Insufficient DMA buffers available. */
+ sc->dma_map_addr_tx_failed_count++;
+ rc = error;
+ goto bce_tx_encap_exit;
+ } else if (error != 0) {
+ m_freem(m0);
+ *m_head = NULL;
+ sc->dma_map_addr_tx_failed_count++;
+ rc = error;
+ goto bce_tx_encap_exit;
+ }
+
+ /* Make sure there's room in the chain */
+ if (nsegs > (sc->max_tx_bd - sc->used_tx_bd)) {
+ bus_dmamap_unload(sc->tx_mbuf_tag, map);
+ rc = ENOBUFS;
+ goto bce_tx_encap_exit;
+ }
+
+ /* prod points to an empty tx_bd at this point. */
+ prod_bseq = sc->tx_prod_bseq;
+
+#ifdef BCE_DEBUG
+ debug_prod = chain_prod;
+#endif
+
+ DBPRINT(sc, BCE_INFO_SEND,
+ "%s(start): prod = 0x%04X, chain_prod = 0x%04X, "
+ "prod_bseq = 0x%08X\n",
+ __FUNCTION__, prod, chain_prod, prod_bseq);
+
+ /*
+ * Cycle through each mbuf segment that makes up
+ * the outgoing frame, gathering the mapping info
+ * for that segment and creating a tx_bd for
+ * the mbuf.
+ */
+ for (i = 0; i < nsegs ; i++) {
+
+ chain_prod = TX_CHAIN_IDX(prod);
+ txbd= &sc->tx_bd_chain[TX_PAGE(chain_prod)]
+ [TX_IDX(chain_prod)];
+
+ txbd->tx_bd_haddr_lo =
+ htole32(BCE_ADDR_LO(segs[i].ds_addr));
+ txbd->tx_bd_haddr_hi =
+ htole32(BCE_ADDR_HI(segs[i].ds_addr));
+ txbd->tx_bd_mss_nbytes = htole32(mss << 16) |
+ htole16(segs[i].ds_len);
+ txbd->tx_bd_vlan_tag = htole16(vlan_tag);
+ txbd->tx_bd_flags = htole16(flags);
+ prod_bseq += segs[i].ds_len;
+ if (i == 0)
+ txbd->tx_bd_flags |= htole16(TX_BD_FLAGS_START);
+ prod = NEXT_TX_BD(prod);
+ }
+
+ /* Set the END flag on the last TX buffer descriptor. */
+ txbd->tx_bd_flags |= htole16(TX_BD_FLAGS_END);
+
+ DBRUNMSG(BCE_EXTREME_SEND,
+ bce_dump_tx_chain(sc, debug_prod, nsegs));
+
+ /*
+ * Ensure that the mbuf pointer for this transmission
+ * is placed at the array index of the last
+ * descriptor in this chain. This is done
+ * because a single map is used for all
+ * segments of the mbuf and we don't want to
+ * unload the map before all of the segments
+ * have been freed.
+ */
+ sc->tx_mbuf_ptr[chain_prod] = m0;
+ sc->used_tx_bd += nsegs;
+
+ /* Update some debug statistic counters */
+ DBRUNIF((sc->used_tx_bd > sc->tx_hi_watermark),
+ sc->tx_hi_watermark = sc->used_tx_bd);
+ DBRUNIF((sc->used_tx_bd == sc->max_tx_bd), sc->tx_full_count++);
+ DBRUNIF(sc->debug_tx_mbuf_alloc++);
+
+ DBRUNMSG(BCE_EXTREME_SEND, bce_dump_tx_mbuf_chain(sc, chain_prod, 1));
+
+ /* prod points to the next free tx_bd at this point. */
+ sc->tx_prod = prod;
+ sc->tx_prod_bseq = prod_bseq;
+
+ /* Tell the chip about the waiting TX frames. */
+ REG_WR16(sc, MB_GET_CID_ADDR(TX_CID) +
+ BCE_L2MQ_TX_HOST_BIDX, sc->tx_prod);
+ REG_WR(sc, MB_GET_CID_ADDR(TX_CID) +
+ BCE_L2MQ_TX_HOST_BSEQ, sc->tx_prod_bseq);
+
+bce_tx_encap_exit:
+ DBEXIT(BCE_VERBOSE_SEND);
+ return(rc);
+}
+
+
+/****************************************************************************/
+/* Main transmit routine when called from another routine with a lock. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_start_locked(struct ifnet *ifp)
+{
+ struct bce_softc *sc = ifp->if_softc;
+ struct mbuf *m_head = NULL;
+ int count = 0;
+ u16 tx_prod, tx_chain_prod;
+
+ DBENTER(BCE_VERBOSE_SEND | BCE_VERBOSE_CTX);
+
+ BCE_LOCK_ASSERT(sc);
+
+ /* prod points to the next free tx_bd. */
+ tx_prod = sc->tx_prod;
+ tx_chain_prod = TX_CHAIN_IDX(tx_prod);
+
+ DBPRINT(sc, BCE_INFO_SEND,
+ "%s(enter): tx_prod = 0x%04X, tx_chain_prod = 0x%04X, "
+ "tx_prod_bseq = 0x%08X\n",
+ __FUNCTION__, tx_prod, tx_chain_prod, sc->tx_prod_bseq);
+
+ /* If there's no link or the transmit queue is empty then just exit. */
+ if (sc->bce_link_up == FALSE) {
+ DBPRINT(sc, BCE_INFO_SEND, "%s(): No link.\n",
+ __FUNCTION__);
+ goto bce_start_locked_exit;
+ }
+
+ if (IFQ_DRV_IS_EMPTY(&ifp->if_snd)) {
+ DBPRINT(sc, BCE_INFO_SEND, "%s(): Transmit queue empty.\n",
+ __FUNCTION__);
+ goto bce_start_locked_exit;
+ }
+
+ /*
+ * Keep adding entries while there is space in the ring.
+ */
+ while (sc->used_tx_bd < sc->max_tx_bd) {
+
+ /* Check for any frames to send. */
+ IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head);
+
+ /* Stop when the transmit queue is empty. */
+ if (m_head == NULL)
+ break;
+
+ /*
+ * Pack the data into the transmit ring. If we
+ * don't have room, place the mbuf back at the
+ * head of the queue and set the OACTIVE flag
+ * to wait for the NIC to drain the chain.
+ */
+ if (bce_tx_encap(sc, &m_head)) {
+ if (m_head != NULL)
+ IFQ_DRV_PREPEND(&ifp->if_snd, m_head);
+ ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+ DBPRINT(sc, BCE_INFO_SEND,
+ "TX chain is closed for business! Total "
+ "tx_bd used = %d\n", sc->used_tx_bd);
+ break;
+ }
+
+ count++;
+
+ /* Send a copy of the frame to any BPF listeners. */
+ ETHER_BPF_MTAP(ifp, m_head);
+ }
+
+ /* Exit if no packets were dequeued. */
+ if (count == 0) {
+ DBPRINT(sc, BCE_VERBOSE_SEND, "%s(): No packets were "
+ "dequeued\n", __FUNCTION__);
+ goto bce_start_locked_exit;
+ }
+
+ DBPRINT(sc, BCE_VERBOSE_SEND, "%s(): Inserted %d frames into "
+ "send queue.\n", __FUNCTION__, count);
+
+ /* Set the tx timeout. */
+ sc->watchdog_timer = BCE_TX_TIMEOUT;
+
+ DBRUNMSG(BCE_VERBOSE_SEND, bce_dump_ctx(sc, TX_CID));
+ DBRUNMSG(BCE_VERBOSE_SEND, bce_dump_mq_regs(sc));
+
+bce_start_locked_exit:
+ DBEXIT(BCE_VERBOSE_SEND | BCE_VERBOSE_CTX);
+ return;
+}
+
+
+/****************************************************************************/
+/* Main transmit routine when called from another routine without a lock. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_start(struct ifnet *ifp)
+{
+ struct bce_softc *sc = ifp->if_softc;
+
+ DBENTER(BCE_VERBOSE_SEND);
+
+ BCE_LOCK(sc);
+ bce_start_locked(ifp);
+ BCE_UNLOCK(sc);
+
+ DBEXIT(BCE_VERBOSE_SEND);
+}
+
+
+/****************************************************************************/
+/* Handles any IOCTL calls from the operating system. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+{
+ struct bce_softc *sc = ifp->if_softc;
+ struct ifreq *ifr = (struct ifreq *) data;
+ struct mii_data *mii;
+ int mask, error = 0, reinit;
+
+ DBENTER(BCE_VERBOSE_MISC);
+
+ switch(command) {
+
+ /* Set the interface MTU. */
+ case SIOCSIFMTU:
+ /* Check that the MTU setting is supported. */
+ if ((ifr->ifr_mtu < BCE_MIN_MTU) ||
+ (ifr->ifr_mtu > BCE_MAX_JUMBO_MTU)) {
+ error = EINVAL;
+ break;
+ }
+
+ DBPRINT(sc, BCE_INFO_MISC,
+ "SIOCSIFMTU: Changing MTU from %d to %d\n",
+ (int) ifp->if_mtu, (int) ifr->ifr_mtu);
+
+ BCE_LOCK(sc);
+ ifp->if_mtu = ifr->ifr_mtu;
+ reinit = 0;
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
+ /*
+ * Because allocation size is used in RX
+ * buffer allocation, stop controller if
+ * it is already running.
+ */
+ bce_stop(sc);
+ reinit = 1;
+ }
+#ifdef BCE_JUMBO_HDRSPLIT
+ /* No buffer allocation size changes are necessary. */
+#else
+ /* Recalculate our buffer allocation sizes. */
+ if ((ifp->if_mtu + ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN +
+ ETHER_CRC_LEN) > MCLBYTES) {
+ sc->rx_bd_mbuf_alloc_size = MJUM9BYTES;
+ sc->rx_bd_mbuf_align_pad =
+ roundup2(MJUM9BYTES, 16) - MJUM9BYTES;
+ sc->rx_bd_mbuf_data_len =
+ sc->rx_bd_mbuf_alloc_size -
+ sc->rx_bd_mbuf_align_pad;
+ } else {
+ sc->rx_bd_mbuf_alloc_size = MCLBYTES;
+ sc->rx_bd_mbuf_align_pad =
+ roundup2(MCLBYTES, 16) - MCLBYTES;
+ sc->rx_bd_mbuf_data_len =
+ sc->rx_bd_mbuf_alloc_size -
+ sc->rx_bd_mbuf_align_pad;
+ }
+#endif
+
+ if (reinit != 0)
+ bce_init_locked(sc);
+ BCE_UNLOCK(sc);
+ break;
+
+ /* Set interface flags. */
+ case SIOCSIFFLAGS:
+ DBPRINT(sc, BCE_VERBOSE_SPECIAL, "Received SIOCSIFFLAGS\n");
+
+ BCE_LOCK(sc);
+
+ /* Check if the interface is up. */
+ if (ifp->if_flags & IFF_UP) {
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
+ /* Change promiscuous/multicast flags as necessary. */
+ bce_set_rx_mode(sc);
+ } else {
+ /* Start the HW */
+ bce_init_locked(sc);
+ }
+ } else {
+ /* The interface is down, check if driver is running. */
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
+ bce_stop(sc);
+
+ /* If MFW is running, restart the controller a bit. */
+ if (sc->bce_flags & BCE_MFW_ENABLE_FLAG) {
+ bce_reset(sc, BCE_DRV_MSG_CODE_RESET);
+ bce_chipinit(sc);
+ bce_mgmt_init_locked(sc);
+ }
+ }
+ }
+
+ BCE_UNLOCK(sc);
+ break;
+
+ /* Add/Delete multicast address */
+ case SIOCADDMULTI:
+ case SIOCDELMULTI:
+ DBPRINT(sc, BCE_VERBOSE_MISC,
+ "Received SIOCADDMULTI/SIOCDELMULTI\n");
+
+ BCE_LOCK(sc);
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+ bce_set_rx_mode(sc);
+ BCE_UNLOCK(sc);
+
+ break;
+
+ /* Set/Get Interface media */
+ case SIOCSIFMEDIA:
+ case SIOCGIFMEDIA:
+ DBPRINT(sc, BCE_VERBOSE_MISC,
+ "Received SIOCSIFMEDIA/SIOCGIFMEDIA\n");
+
+ mii = device_get_softc(sc->bce_miibus);
+ error = ifmedia_ioctl(ifp, ifr,
+ &mii->mii_media, command);
+ break;
+
+ /* Set interface capability */
+ case SIOCSIFCAP:
+ mask = ifr->ifr_reqcap ^ ifp->if_capenable;
+ DBPRINT(sc, BCE_INFO_MISC,
+ "Received SIOCSIFCAP = 0x%08X\n", (u32) mask);
+
+ /* Toggle the TX checksum capabilities enable flag. */
+ if (mask & IFCAP_TXCSUM &&
+ ifp->if_capabilities & IFCAP_TXCSUM) {
+ ifp->if_capenable ^= IFCAP_TXCSUM;
+ if (IFCAP_TXCSUM & ifp->if_capenable)
+ ifp->if_hwassist |= BCE_IF_HWASSIST;
+ else
+ ifp->if_hwassist &= ~BCE_IF_HWASSIST;
+ }
+
+ /* Toggle the RX checksum capabilities enable flag. */
+ if (mask & IFCAP_RXCSUM &&
+ ifp->if_capabilities & IFCAP_RXCSUM)
+ ifp->if_capenable ^= IFCAP_RXCSUM;
+
+ /* Toggle the TSO capabilities enable flag. */
+ if (bce_tso_enable && (mask & IFCAP_TSO4) &&
+ ifp->if_capabilities & IFCAP_TSO4) {
+ ifp->if_capenable ^= IFCAP_TSO4;
+ if (IFCAP_TSO4 & ifp->if_capenable)
+ ifp->if_hwassist |= CSUM_TSO;
+ else
+ ifp->if_hwassist &= ~CSUM_TSO;
+ }
+
+ if (mask & IFCAP_VLAN_HWCSUM &&
+ ifp->if_capabilities & IFCAP_VLAN_HWCSUM)
+ ifp->if_capenable ^= IFCAP_VLAN_HWCSUM;
+
+ if ((mask & IFCAP_VLAN_HWTSO) != 0 &&
+ (ifp->if_capabilities & IFCAP_VLAN_HWTSO) != 0)
+ ifp->if_capenable ^= IFCAP_VLAN_HWTSO;
+ /*
+ * Don't actually disable VLAN tag stripping as
+ * management firmware (ASF/IPMI/UMP) requires the
+ * feature. If VLAN tag stripping is disabled driver
+ * will manually reconstruct the VLAN frame by
+ * appending stripped VLAN tag.
+ */
+ if ((mask & IFCAP_VLAN_HWTAGGING) != 0 &&
+ (ifp->if_capabilities & IFCAP_VLAN_HWTAGGING)) {
+ ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING;
+ if ((ifp->if_capenable & IFCAP_VLAN_HWTAGGING)
+ == 0)
+ ifp->if_capenable &= ~IFCAP_VLAN_HWTSO;
+ }
+ VLAN_CAPABILITIES(ifp);
+ break;
+ default:
+ /* We don't know how to handle the IOCTL, pass it on. */
+ error = ether_ioctl(ifp, command, data);
+ break;
+ }
+
+ DBEXIT(BCE_VERBOSE_MISC);
+ return(error);
+}
+
+
+/****************************************************************************/
+/* Transmit timeout handler. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_watchdog(struct bce_softc *sc)
+{
+ DBENTER(BCE_EXTREME_SEND);
+
+ BCE_LOCK_ASSERT(sc);
+
+ /* If the watchdog timer hasn't expired then just exit. */
+ if (sc->watchdog_timer == 0 || --sc->watchdog_timer)
+ goto bce_watchdog_exit;
+
+ /* If pause frames are active then don't reset the hardware. */
+ /* ToDo: Should we reset the timer here? */
+ if (REG_RD(sc, BCE_EMAC_TX_STATUS) & BCE_EMAC_TX_STATUS_XOFFED)
+ goto bce_watchdog_exit;
+
+ BCE_PRINTF("%s(%d): Watchdog timeout occurred, resetting!\n",
+ __FILE__, __LINE__);
+
+ DBRUNMSG(BCE_INFO,
+ bce_dump_driver_state(sc);
+ bce_dump_status_block(sc);
+ bce_dump_stats_block(sc);
+ bce_dump_ftqs(sc);
+ bce_dump_txp_state(sc, 0);
+ bce_dump_rxp_state(sc, 0);
+ bce_dump_tpat_state(sc, 0);
+ bce_dump_cp_state(sc, 0);
+ bce_dump_com_state(sc, 0));
+
+ DBRUN(bce_breakpoint(sc));
+
+ sc->bce_ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+
+ bce_init_locked(sc);
+ sc->bce_ifp->if_oerrors++;
+
+bce_watchdog_exit:
+ DBEXIT(BCE_EXTREME_SEND);
+}
+
+
+/*
+ * Interrupt handler.
+ */
+/****************************************************************************/
+/* Main interrupt entry point. Verifies that the controller generated the */
+/* interrupt and then calls a separate routine for handle the various */
+/* interrupt causes (PHY, TX, RX). */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static void
+bce_intr(void *xsc)
+{
+ struct bce_softc *sc;
+ struct ifnet *ifp;
+ u32 status_attn_bits;
+ u16 hw_rx_cons, hw_tx_cons;
+
+ sc = xsc;
+ ifp = sc->bce_ifp;
+
+ DBENTER(BCE_VERBOSE_SEND | BCE_VERBOSE_RECV | BCE_VERBOSE_INTR);
+ DBRUNMSG(BCE_VERBOSE_INTR, bce_dump_status_block(sc));
+ DBRUNMSG(BCE_VERBOSE_INTR, bce_dump_stats_block(sc));
+
+ BCE_LOCK(sc);
+
+ DBRUN(sc->interrupts_generated++);
+
+ /* Synchnorize before we read from interface's status block */
+ bus_dmamap_sync(sc->status_tag, sc->status_map,
+ BUS_DMASYNC_POSTREAD);
+
+ /*
+ * If the hardware status block index
+ * matches the last value read by the
+ * driver and we haven't asserted our
+ * interrupt then there's nothing to do.
+ */
+ if ((sc->status_block->status_idx == sc->last_status_idx) &&
+ (REG_RD(sc, BCE_PCICFG_MISC_STATUS) &
+ BCE_PCICFG_MISC_STATUS_INTA_VALUE)) {
+ DBPRINT(sc, BCE_VERBOSE_INTR, "%s(): Spurious interrupt.\n",
+ __FUNCTION__);
+ goto bce_intr_exit;
+ }
+
+ /* Ack the interrupt and stop others from occuring. */
+ REG_WR(sc, BCE_PCICFG_INT_ACK_CMD,
+ BCE_PCICFG_INT_ACK_CMD_USE_INT_HC_PARAM |
+ BCE_PCICFG_INT_ACK_CMD_MASK_INT);
+
+ /* Check if the hardware has finished any work. */
+ hw_rx_cons = bce_get_hw_rx_cons(sc);
+ hw_tx_cons = bce_get_hw_tx_cons(sc);
+
+ /* Keep processing data as long as there is work to do. */
+ for (;;) {
+
+ status_attn_bits = sc->status_block->status_attn_bits;
+
+ DBRUNIF(DB_RANDOMTRUE(unexpected_attention_sim_control),
+ BCE_PRINTF("Simulating unexpected status attention "
+ "bit set.");
+ sc->unexpected_attention_sim_count++;
+ status_attn_bits = status_attn_bits |
+ STATUS_ATTN_BITS_PARITY_ERROR);
+
+ /* Was it a link change interrupt? */
+ if ((status_attn_bits & STATUS_ATTN_BITS_LINK_STATE) !=
+ (sc->status_block->status_attn_bits_ack &
+ STATUS_ATTN_BITS_LINK_STATE)) {
+ bce_phy_intr(sc);
+
+ /* Clear transient updates during link state change. */
+ REG_WR(sc, BCE_HC_COMMAND, sc->hc_command |
+ BCE_HC_COMMAND_COAL_NOW_WO_INT);
+ REG_RD(sc, BCE_HC_COMMAND);
+ }
+
+ /* If any other attention is asserted, the chip is toast. */
+ if (((status_attn_bits & ~STATUS_ATTN_BITS_LINK_STATE) !=
+ (sc->status_block->status_attn_bits_ack &
+ ~STATUS_ATTN_BITS_LINK_STATE))) {
+
+ sc->unexpected_attention_count++;
+
+ BCE_PRINTF("%s(%d): Fatal attention detected: "
+ "0x%08X\n", __FILE__, __LINE__,
+ sc->status_block->status_attn_bits);
+
+ DBRUNMSG(BCE_FATAL,
+ if (unexpected_attention_sim_control == 0)
+ bce_breakpoint(sc));
+
+ bce_init_locked(sc);
+ goto bce_intr_exit;
+ }
+
+ /* Check for any completed RX frames. */
+ if (hw_rx_cons != sc->hw_rx_cons)
+ bce_rx_intr(sc);
+
+ /* Check for any completed TX frames. */
+ if (hw_tx_cons != sc->hw_tx_cons)
+ bce_tx_intr(sc);
+
+ /* Save status block index value for the next interrupt. */
+ sc->last_status_idx = sc->status_block->status_idx;
+
+ /*
+ * Prevent speculative reads from getting
+ * ahead of the status block.
+ */
+ bus_space_barrier(sc->bce_btag, sc->bce_bhandle, 0, 0,
+ BUS_SPACE_BARRIER_READ);
+
+ /*
+ * If there's no work left then exit the
+ * interrupt service routine.
+ */
+ hw_rx_cons = bce_get_hw_rx_cons(sc);
+ hw_tx_cons = bce_get_hw_tx_cons(sc);
+
+ if ((hw_rx_cons == sc->hw_rx_cons) &&
+ (hw_tx_cons == sc->hw_tx_cons))
+ break;
+
+ }
+
+ bus_dmamap_sync(sc->status_tag, sc->status_map,
+ BUS_DMASYNC_PREREAD);
+
+ /* Re-enable interrupts. */
+ bce_enable_intr(sc, 0);
+
+ /* Handle any frames that arrived while handling the interrupt. */
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING &&
+ !IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+ bce_start_locked(ifp);
+
+bce_intr_exit:
+ BCE_UNLOCK(sc);
+
+ DBEXIT(BCE_VERBOSE_SEND | BCE_VERBOSE_RECV | BCE_VERBOSE_INTR);
+}
+
+
+/****************************************************************************/
+/* Programs the various packet receive modes (broadcast and multicast). */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_set_rx_mode(struct bce_softc *sc)
+{
+ struct ifnet *ifp;
+ struct ifmultiaddr *ifma;
+ u32 hashes[NUM_MC_HASH_REGISTERS] = { 0, 0, 0, 0, 0, 0, 0, 0 };
+ u32 rx_mode, sort_mode;
+ int h, i;
+
+ DBENTER(BCE_VERBOSE_MISC);
+
+ BCE_LOCK_ASSERT(sc);
+
+ ifp = sc->bce_ifp;
+
+ /* Initialize receive mode default settings. */
+ rx_mode = sc->rx_mode & ~(BCE_EMAC_RX_MODE_PROMISCUOUS |
+ BCE_EMAC_RX_MODE_KEEP_VLAN_TAG);
+ sort_mode = 1 | BCE_RPM_SORT_USER0_BC_EN;
+
+ /*
+ * ASF/IPMI/UMP firmware requires that VLAN tag stripping
+ * be enbled.
+ */
+ if (!(BCE_IF_CAPABILITIES & IFCAP_VLAN_HWTAGGING) &&
+ (!(sc->bce_flags & BCE_MFW_ENABLE_FLAG)))
+ rx_mode |= BCE_EMAC_RX_MODE_KEEP_VLAN_TAG;
+
+ /*
+ * Check for promiscuous, all multicast, or selected
+ * multicast address filtering.
+ */
+ if (ifp->if_flags & IFF_PROMISC) {
+ DBPRINT(sc, BCE_INFO_MISC, "Enabling promiscuous mode.\n");
+
+ /* Enable promiscuous mode. */
+ rx_mode |= BCE_EMAC_RX_MODE_PROMISCUOUS;
+ sort_mode |= BCE_RPM_SORT_USER0_PROM_EN;
+ } else if (ifp->if_flags & IFF_ALLMULTI) {
+ DBPRINT(sc, BCE_INFO_MISC, "Enabling all multicast mode.\n");
+
+ /* Enable all multicast addresses. */
+ for (i = 0; i < NUM_MC_HASH_REGISTERS; i++) {
+ REG_WR(sc, BCE_EMAC_MULTICAST_HASH0 + (i * 4), 0xffffffff);
+ }
+ sort_mode |= BCE_RPM_SORT_USER0_MC_EN;
+ } else {
+ /* Accept one or more multicast(s). */
+ DBPRINT(sc, BCE_INFO_MISC, "Enabling selective multicast mode.\n");
+
+ if_maddr_rlock(ifp);
+ TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
+ if (ifma->ifma_addr->sa_family != AF_LINK)
+ continue;
+ h = ether_crc32_le(LLADDR((struct sockaddr_dl *)
+ ifma->ifma_addr), ETHER_ADDR_LEN) & 0xFF;
+ hashes[(h & 0xE0) >> 5] |= 1 << (h & 0x1F);
+ }
+ if_maddr_runlock(ifp);
+
+ for (i = 0; i < NUM_MC_HASH_REGISTERS; i++)
+ REG_WR(sc, BCE_EMAC_MULTICAST_HASH0 + (i * 4), hashes[i]);
+
+ sort_mode |= BCE_RPM_SORT_USER0_MC_HSH_EN;
+ }
+
+ /* Only make changes if the recive mode has actually changed. */
+ if (rx_mode != sc->rx_mode) {
+ DBPRINT(sc, BCE_VERBOSE_MISC, "Enabling new receive mode: "
+ "0x%08X\n", rx_mode);
+
+ sc->rx_mode = rx_mode;
+ REG_WR(sc, BCE_EMAC_RX_MODE, rx_mode);
+ }
+
+ /* Disable and clear the exisitng sort before enabling a new sort. */
+ REG_WR(sc, BCE_RPM_SORT_USER0, 0x0);
+ REG_WR(sc, BCE_RPM_SORT_USER0, sort_mode);
+ REG_WR(sc, BCE_RPM_SORT_USER0, sort_mode | BCE_RPM_SORT_USER0_ENA);
+
+ DBEXIT(BCE_VERBOSE_MISC);
+}
+
+
+/****************************************************************************/
+/* Called periodically to updates statistics from the controllers */
+/* statistics block. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_stats_update(struct bce_softc *sc)
+{
+ struct ifnet *ifp;
+ struct statistics_block *stats;
+
+ DBENTER(BCE_EXTREME_MISC);
+
+ ifp = sc->bce_ifp;
+
+ stats = (struct statistics_block *) sc->stats_block;
+
+ /*
+ * Certain controllers don't report
+ * carrier sense errors correctly.
+ * See errata E11_5708CA0_1165.
+ */
+ if (!(BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5706) &&
+ !(BCE_CHIP_ID(sc) == BCE_CHIP_ID_5708_A0))
+ ifp->if_oerrors +=
+ (u_long) stats->stat_Dot3StatsCarrierSenseErrors;
+
+ /*
+ * Update the sysctl statistics from the
+ * hardware statistics.
+ */
+ sc->stat_IfHCInOctets =
+ ((u64) stats->stat_IfHCInOctets_hi << 32) +
+ (u64) stats->stat_IfHCInOctets_lo;
+
+ sc->stat_IfHCInBadOctets =
+ ((u64) stats->stat_IfHCInBadOctets_hi << 32) +
+ (u64) stats->stat_IfHCInBadOctets_lo;
+
+ sc->stat_IfHCOutOctets =
+ ((u64) stats->stat_IfHCOutOctets_hi << 32) +
+ (u64) stats->stat_IfHCOutOctets_lo;
+
+ sc->stat_IfHCOutBadOctets =
+ ((u64) stats->stat_IfHCOutBadOctets_hi << 32) +
+ (u64) stats->stat_IfHCOutBadOctets_lo;
+
+ sc->stat_IfHCInUcastPkts =
+ ((u64) stats->stat_IfHCInUcastPkts_hi << 32) +
+ (u64) stats->stat_IfHCInUcastPkts_lo;
+
+ sc->stat_IfHCInMulticastPkts =
+ ((u64) stats->stat_IfHCInMulticastPkts_hi << 32) +
+ (u64) stats->stat_IfHCInMulticastPkts_lo;
+
+ sc->stat_IfHCInBroadcastPkts =
+ ((u64) stats->stat_IfHCInBroadcastPkts_hi << 32) +
+ (u64) stats->stat_IfHCInBroadcastPkts_lo;
+
+ sc->stat_IfHCOutUcastPkts =
+ ((u64) stats->stat_IfHCOutUcastPkts_hi << 32) +
+ (u64) stats->stat_IfHCOutUcastPkts_lo;
+
+ sc->stat_IfHCOutMulticastPkts =
+ ((u64) stats->stat_IfHCOutMulticastPkts_hi << 32) +
+ (u64) stats->stat_IfHCOutMulticastPkts_lo;
+
+ sc->stat_IfHCOutBroadcastPkts =
+ ((u64) stats->stat_IfHCOutBroadcastPkts_hi << 32) +
+ (u64) stats->stat_IfHCOutBroadcastPkts_lo;
+
+ /* ToDo: Preserve counters beyond 32 bits? */
+ /* ToDo: Read the statistics from auto-clear regs? */
+
+ sc->stat_emac_tx_stat_dot3statsinternalmactransmiterrors =
+ stats->stat_emac_tx_stat_dot3statsinternalmactransmiterrors;
+
+ sc->stat_Dot3StatsCarrierSenseErrors =
+ stats->stat_Dot3StatsCarrierSenseErrors;
+
+ sc->stat_Dot3StatsFCSErrors =
+ stats->stat_Dot3StatsFCSErrors;
+
+ sc->stat_Dot3StatsAlignmentErrors =
+ stats->stat_Dot3StatsAlignmentErrors;
+
+ sc->stat_Dot3StatsSingleCollisionFrames =
+ stats->stat_Dot3StatsSingleCollisionFrames;
+
+ sc->stat_Dot3StatsMultipleCollisionFrames =
+ stats->stat_Dot3StatsMultipleCollisionFrames;
+
+ sc->stat_Dot3StatsDeferredTransmissions =
+ stats->stat_Dot3StatsDeferredTransmissions;
+
+ sc->stat_Dot3StatsExcessiveCollisions =
+ stats->stat_Dot3StatsExcessiveCollisions;
+
+ sc->stat_Dot3StatsLateCollisions =
+ stats->stat_Dot3StatsLateCollisions;
+
+ sc->stat_EtherStatsCollisions =
+ stats->stat_EtherStatsCollisions;
+
+ sc->stat_EtherStatsFragments =
+ stats->stat_EtherStatsFragments;
+
+ sc->stat_EtherStatsJabbers =
+ stats->stat_EtherStatsJabbers;
+
+ sc->stat_EtherStatsUndersizePkts =
+ stats->stat_EtherStatsUndersizePkts;
+
+ sc->stat_EtherStatsOversizePkts =
+ stats->stat_EtherStatsOversizePkts;
+
+ sc->stat_EtherStatsPktsRx64Octets =
+ stats->stat_EtherStatsPktsRx64Octets;
+
+ sc->stat_EtherStatsPktsRx65Octetsto127Octets =
+ stats->stat_EtherStatsPktsRx65Octetsto127Octets;
+
+ sc->stat_EtherStatsPktsRx128Octetsto255Octets =
+ stats->stat_EtherStatsPktsRx128Octetsto255Octets;
+
+ sc->stat_EtherStatsPktsRx256Octetsto511Octets =
+ stats->stat_EtherStatsPktsRx256Octetsto511Octets;
+
+ sc->stat_EtherStatsPktsRx512Octetsto1023Octets =
+ stats->stat_EtherStatsPktsRx512Octetsto1023Octets;
+
+ sc->stat_EtherStatsPktsRx1024Octetsto1522Octets =
+ stats->stat_EtherStatsPktsRx1024Octetsto1522Octets;
+
+ sc->stat_EtherStatsPktsRx1523Octetsto9022Octets =
+ stats->stat_EtherStatsPktsRx1523Octetsto9022Octets;
+
+ sc->stat_EtherStatsPktsTx64Octets =
+ stats->stat_EtherStatsPktsTx64Octets;
+
+ sc->stat_EtherStatsPktsTx65Octetsto127Octets =
+ stats->stat_EtherStatsPktsTx65Octetsto127Octets;
+
+ sc->stat_EtherStatsPktsTx128Octetsto255Octets =
+ stats->stat_EtherStatsPktsTx128Octetsto255Octets;
+
+ sc->stat_EtherStatsPktsTx256Octetsto511Octets =
+ stats->stat_EtherStatsPktsTx256Octetsto511Octets;
+
+ sc->stat_EtherStatsPktsTx512Octetsto1023Octets =
+ stats->stat_EtherStatsPktsTx512Octetsto1023Octets;
+
+ sc->stat_EtherStatsPktsTx1024Octetsto1522Octets =
+ stats->stat_EtherStatsPktsTx1024Octetsto1522Octets;
+
+ sc->stat_EtherStatsPktsTx1523Octetsto9022Octets =
+ stats->stat_EtherStatsPktsTx1523Octetsto9022Octets;
+
+ sc->stat_XonPauseFramesReceived =
+ stats->stat_XonPauseFramesReceived;
+
+ sc->stat_XoffPauseFramesReceived =
+ stats->stat_XoffPauseFramesReceived;
+
+ sc->stat_OutXonSent =
+ stats->stat_OutXonSent;
+
+ sc->stat_OutXoffSent =
+ stats->stat_OutXoffSent;
+
+ sc->stat_FlowControlDone =
+ stats->stat_FlowControlDone;
+
+ sc->stat_MacControlFramesReceived =
+ stats->stat_MacControlFramesReceived;
+
+ sc->stat_XoffStateEntered =
+ stats->stat_XoffStateEntered;
+
+ sc->stat_IfInFramesL2FilterDiscards =
+ stats->stat_IfInFramesL2FilterDiscards;
+
+ sc->stat_IfInRuleCheckerDiscards =
+ stats->stat_IfInRuleCheckerDiscards;
+
+ sc->stat_IfInFTQDiscards =
+ stats->stat_IfInFTQDiscards;
+
+ sc->stat_IfInMBUFDiscards =
+ stats->stat_IfInMBUFDiscards;
+
+ sc->stat_IfInRuleCheckerP4Hit =
+ stats->stat_IfInRuleCheckerP4Hit;
+
+ sc->stat_CatchupInRuleCheckerDiscards =
+ stats->stat_CatchupInRuleCheckerDiscards;
+
+ sc->stat_CatchupInFTQDiscards =
+ stats->stat_CatchupInFTQDiscards;
+
+ sc->stat_CatchupInMBUFDiscards =
+ stats->stat_CatchupInMBUFDiscards;
+
+ sc->stat_CatchupInRuleCheckerP4Hit =
+ stats->stat_CatchupInRuleCheckerP4Hit;
+
+ sc->com_no_buffers = REG_RD_IND(sc, 0x120084);
+
+ /*
+ * Update the interface statistics from the
+ * hardware statistics.
+ */
+ ifp->if_collisions =
+ (u_long) sc->stat_EtherStatsCollisions;
+
+ /* ToDo: This method loses soft errors. */
+ ifp->if_ierrors =
+ (u_long) sc->stat_EtherStatsUndersizePkts +
+ (u_long) sc->stat_EtherStatsOversizePkts +
+ (u_long) sc->stat_IfInMBUFDiscards +
+ (u_long) sc->stat_Dot3StatsAlignmentErrors +
+ (u_long) sc->stat_Dot3StatsFCSErrors +
+ (u_long) sc->stat_IfInRuleCheckerDiscards +
+ (u_long) sc->stat_IfInFTQDiscards +
+ (u_long) sc->com_no_buffers;
+
+ /* ToDo: This method loses soft errors. */
+ ifp->if_oerrors =
+ (u_long) sc->stat_emac_tx_stat_dot3statsinternalmactransmiterrors +
+ (u_long) sc->stat_Dot3StatsExcessiveCollisions +
+ (u_long) sc->stat_Dot3StatsLateCollisions;
+
+ /* ToDo: Add additional statistics? */
+
+ DBEXIT(BCE_EXTREME_MISC);
+}
+
+
+/****************************************************************************/
+/* Periodic function to notify the bootcode that the driver is still */
+/* present. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_pulse(void *xsc)
+{
+ struct bce_softc *sc = xsc;
+ u32 msg;
+
+ DBENTER(BCE_EXTREME_MISC);
+
+ BCE_LOCK_ASSERT(sc);
+
+ /* Tell the firmware that the driver is still running. */
+ msg = (u32) ++sc->bce_fw_drv_pulse_wr_seq;
+ bce_shmem_wr(sc, BCE_DRV_PULSE_MB, msg);
+
+ /* Update the bootcode condition. */
+ sc->bc_state = bce_shmem_rd(sc, BCE_BC_STATE_CONDITION);
+
+ /* Report whether the bootcode still knows the driver is running. */
+ if (bootverbose) {
+ if (sc->bce_drv_cardiac_arrest == FALSE) {
+ if (!(sc->bc_state & BCE_CONDITION_DRV_PRESENT)) {
+ sc->bce_drv_cardiac_arrest = TRUE;
+ BCE_PRINTF("%s(): Warning: bootcode "
+ "thinks driver is absent! "
+ "(bc_state = 0x%08X)\n",
+ __FUNCTION__, sc->bc_state);
+ }
+ } else {
+ /*
+ * Not supported by all bootcode versions.
+ * (v5.0.11+ and v5.2.1+) Older bootcode
+ * will require the driver to reset the
+ * controller to clear this condition.
+ */
+ if (sc->bc_state & BCE_CONDITION_DRV_PRESENT) {
+ sc->bce_drv_cardiac_arrest = FALSE;
+ BCE_PRINTF("%s(): Bootcode found the "
+ "driver pulse! (bc_state = 0x%08X)\n",
+ __FUNCTION__, sc->bc_state);
+ }
+ }
+ }
+
+
+ /* Schedule the next pulse. */
+ callout_reset(&sc->bce_pulse_callout, hz, bce_pulse, sc);
+
+ DBEXIT(BCE_EXTREME_MISC);
+}
+
+
+/****************************************************************************/
+/* Periodic function to perform maintenance tasks. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static void
+bce_tick(void *xsc)
+{
+ struct bce_softc *sc = xsc;
+ struct mii_data *mii;
+ struct ifnet *ifp;
+
+ ifp = sc->bce_ifp;
+
+ DBENTER(BCE_EXTREME_MISC);
+
+ BCE_LOCK_ASSERT(sc);
+
+ /* Schedule the next tick. */
+ callout_reset(&sc->bce_tick_callout, hz, bce_tick, sc);
+
+ /* Update the statistics from the hardware statistics block. */
+ bce_stats_update(sc);
+
+ /* Top off the receive and page chains. */
+#ifdef BCE_JUMBO_HDRSPLIT
+ bce_fill_pg_chain(sc);
+#endif
+ bce_fill_rx_chain(sc);
+
+ /* Check that chip hasn't hung. */
+ bce_watchdog(sc);
+
+ /* If link is up already up then we're done. */
+ if (sc->bce_link_up == TRUE)
+ goto bce_tick_exit;
+
+ /* Link is down. Check what the PHY's doing. */
+ mii = device_get_softc(sc->bce_miibus);
+ mii_tick(mii);
+
+ /* Check if the link has come up. */
+ if ((mii->mii_media_status & IFM_ACTIVE) &&
+ (IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE)) {
+ DBPRINT(sc, BCE_VERBOSE_MISC,
+ "%s(): Link up!\n", __FUNCTION__);
+ sc->bce_link_up = TRUE;
+ if ((IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_T ||
+ IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_SX ||
+ IFM_SUBTYPE(mii->mii_media_active) == IFM_2500_SX) &&
+ bootverbose)
+ BCE_PRINTF("Gigabit link up!\n");
+
+ /* Now that link is up, handle any outstanding TX traffic. */
+ if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) {
+ DBPRINT(sc, BCE_VERBOSE_MISC, "%s(): Found "
+ "pending TX traffic.\n", __FUNCTION__);
+ bce_start_locked(ifp);
+ }
+ }
+
+bce_tick_exit:
+ DBEXIT(BCE_EXTREME_MISC);
+ return;
+}
+
+
+#ifdef BCE_DEBUG
+/****************************************************************************/
+/* Allows the driver state to be dumped through the sysctl interface. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_driver_state(SYSCTL_HANDLER_ARGS)
+{
+ int error;
+ int result;
+ struct bce_softc *sc;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+
+ if (error || !req->newptr)
+ return (error);
+
+ if (result == 1) {
+ sc = (struct bce_softc *)arg1;
+ bce_dump_driver_state(sc);
+ }
+
+ return error;
+}
+
+
+/****************************************************************************/
+/* Allows the hardware state to be dumped through the sysctl interface. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_hw_state(SYSCTL_HANDLER_ARGS)
+{
+ int error;
+ int result;
+ struct bce_softc *sc;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+
+ if (error || !req->newptr)
+ return (error);
+
+ if (result == 1) {
+ sc = (struct bce_softc *)arg1;
+ bce_dump_hw_state(sc);
+ }
+
+ return error;
+}
+
+
+/****************************************************************************/
+/* Allows the status block to be dumped through the sysctl interface. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_status_block(SYSCTL_HANDLER_ARGS)
+{
+ int error;
+ int result;
+ struct bce_softc *sc;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+
+ if (error || !req->newptr)
+ return (error);
+
+ if (result == 1) {
+ sc = (struct bce_softc *)arg1;
+ bce_dump_status_block(sc);
+ }
+
+ return error;
+}
+
+
+/****************************************************************************/
+/* Allows the stats block to be dumped through the sysctl interface. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_stats_block(SYSCTL_HANDLER_ARGS)
+{
+ int error;
+ int result;
+ struct bce_softc *sc;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+
+ if (error || !req->newptr)
+ return (error);
+
+ if (result == 1) {
+ sc = (struct bce_softc *)arg1;
+ bce_dump_stats_block(sc);
+ }
+
+ return error;
+}
+
+
+/****************************************************************************/
+/* Allows the stat counters to be cleared without unloading/reloading the */
+/* driver. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_stats_clear(SYSCTL_HANDLER_ARGS)
+{
+ int error;
+ int result;
+ struct bce_softc *sc;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+
+ if (error || !req->newptr)
+ return (error);
+
+ if (result == 1) {
+ sc = (struct bce_softc *)arg1;
+
+ /* Clear the internal H/W statistics counters. */
+ REG_WR(sc, BCE_HC_COMMAND, BCE_HC_COMMAND_CLR_STAT_NOW);
+
+ /* Reset the driver maintained statistics. */
+ sc->interrupts_rx =
+ sc->interrupts_tx = 0;
+ sc->tso_frames_requested =
+ sc->tso_frames_completed =
+ sc->tso_frames_failed = 0;
+ sc->rx_empty_count =
+ sc->tx_full_count = 0;
+ sc->rx_low_watermark = USABLE_RX_BD;
+ sc->tx_hi_watermark = 0;
+ sc->l2fhdr_error_count =
+ sc->l2fhdr_error_sim_count = 0;
+ sc->mbuf_alloc_failed_count =
+ sc->mbuf_alloc_failed_sim_count = 0;
+ sc->dma_map_addr_rx_failed_count =
+ sc->dma_map_addr_tx_failed_count = 0;
+ sc->mbuf_frag_count = 0;
+ sc->csum_offload_tcp_udp =
+ sc->csum_offload_ip = 0;
+ sc->vlan_tagged_frames_rcvd =
+ sc->vlan_tagged_frames_stripped = 0;
+
+ /* Clear firmware maintained statistics. */
+ REG_WR_IND(sc, 0x120084, 0);
+ }
+
+ return error;
+}
+
+
+/****************************************************************************/
+/* Allows the bootcode state to be dumped through the sysctl interface. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_bc_state(SYSCTL_HANDLER_ARGS)
+{
+ int error;
+ int result;
+ struct bce_softc *sc;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+
+ if (error || !req->newptr)
+ return (error);
+
+ if (result == 1) {
+ sc = (struct bce_softc *)arg1;
+ bce_dump_bc_state(sc);
+ }
+
+ return error;
+}
+
+
+/****************************************************************************/
+/* Provides a sysctl interface to allow dumping the RX BD chain. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_dump_rx_bd_chain(SYSCTL_HANDLER_ARGS)
+{
+ int error;
+ int result;
+ struct bce_softc *sc;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+
+ if (error || !req->newptr)
+ return (error);
+
+ if (result == 1) {
+ sc = (struct bce_softc *)arg1;
+ bce_dump_rx_bd_chain(sc, 0, TOTAL_RX_BD);
+ }
+
+ return error;
+}
+
+
+/****************************************************************************/
+/* Provides a sysctl interface to allow dumping the RX MBUF chain. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_dump_rx_mbuf_chain(SYSCTL_HANDLER_ARGS)
+{
+ int error;
+ int result;
+ struct bce_softc *sc;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+
+ if (error || !req->newptr)
+ return (error);
+
+ if (result == 1) {
+ sc = (struct bce_softc *)arg1;
+ bce_dump_rx_mbuf_chain(sc, 0, USABLE_RX_BD);
+ }
+
+ return error;
+}
+
+
+/****************************************************************************/
+/* Provides a sysctl interface to allow dumping the TX chain. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_dump_tx_chain(SYSCTL_HANDLER_ARGS)
+{
+ int error;
+ int result;
+ struct bce_softc *sc;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+
+ if (error || !req->newptr)
+ return (error);
+
+ if (result == 1) {
+ sc = (struct bce_softc *)arg1;
+ bce_dump_tx_chain(sc, 0, TOTAL_TX_BD);
+ }
+
+ return error;
+}
+
+
+#ifdef BCE_JUMBO_HDRSPLIT
+/****************************************************************************/
+/* Provides a sysctl interface to allow dumping the page chain. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_dump_pg_chain(SYSCTL_HANDLER_ARGS)
+{
+ int error;
+ int result;
+ struct bce_softc *sc;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+
+ if (error || !req->newptr)
+ return (error);
+
+ if (result == 1) {
+ sc = (struct bce_softc *)arg1;
+ bce_dump_pg_chain(sc, 0, TOTAL_PG_BD);
+ }
+
+ return error;
+}
+#endif
+
+/****************************************************************************/
+/* Provides a sysctl interface to allow reading arbitrary NVRAM offsets in */
+/* the device. DO NOT ENABLE ON PRODUCTION SYSTEMS! */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_nvram_read(SYSCTL_HANDLER_ARGS)
+{
+ struct bce_softc *sc = (struct bce_softc *)arg1;
+ int error;
+ u32 result;
+ u32 val[1];
+ u8 *data = (u8 *) val;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+ if (error || (req->newptr == NULL))
+ return (error);
+
+ bce_nvram_read(sc, result, data, 4);
+ BCE_PRINTF("offset 0x%08X = 0x%08X\n", result, bce_be32toh(val[0]));
+
+ return (error);
+}
+
+
+/****************************************************************************/
+/* Provides a sysctl interface to allow reading arbitrary registers in the */
+/* device. DO NOT ENABLE ON PRODUCTION SYSTEMS! */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_reg_read(SYSCTL_HANDLER_ARGS)
+{
+ struct bce_softc *sc = (struct bce_softc *)arg1;
+ int error;
+ u32 val, result;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+ if (error || (req->newptr == NULL))
+ return (error);
+
+ /* Make sure the register is accessible. */
+ if (result < 0x8000) {
+ val = REG_RD(sc, result);
+ BCE_PRINTF("reg 0x%08X = 0x%08X\n", result, val);
+ } else if (result < 0x0280000) {
+ val = REG_RD_IND(sc, result);
+ BCE_PRINTF("reg 0x%08X = 0x%08X\n", result, val);
+ }
+
+ return (error);
+}
+
+
+/****************************************************************************/
+/* Provides a sysctl interface to allow reading arbitrary PHY registers in */
+/* the device. DO NOT ENABLE ON PRODUCTION SYSTEMS! */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_phy_read(SYSCTL_HANDLER_ARGS)
+{
+ struct bce_softc *sc;
+ device_t dev;
+ int error, result;
+ u16 val;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+ if (error || (req->newptr == NULL))
+ return (error);
+
+ /* Make sure the register is accessible. */
+ if (result < 0x20) {
+ sc = (struct bce_softc *)arg1;
+ dev = sc->bce_dev;
+ val = bce_miibus_read_reg(dev, sc->bce_phy_addr, result);
+ BCE_PRINTF("phy 0x%02X = 0x%04X\n", result, val);
+ }
+ return (error);
+}
+
+
+/****************************************************************************/
+/* Provides a sysctl interface to allow reading a CID. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_dump_ctx(SYSCTL_HANDLER_ARGS)
+{
+ struct bce_softc *sc;
+ int error, result;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+ if (error || (req->newptr == NULL))
+ return (error);
+
+ /* Make sure the register is accessible. */
+ if (result <= TX_CID) {
+ sc = (struct bce_softc *)arg1;
+ bce_dump_ctx(sc, result);
+ }
+
+ return (error);
+}
+
+
+ /****************************************************************************/
+/* Provides a sysctl interface to forcing the driver to dump state and */
+/* enter the debugger. DO NOT ENABLE ON PRODUCTION SYSTEMS! */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static int
+bce_sysctl_breakpoint(SYSCTL_HANDLER_ARGS)
+{
+ int error;
+ int result;
+ struct bce_softc *sc;
+
+ result = -1;
+ error = sysctl_handle_int(oidp, &result, 0, req);
+
+ if (error || !req->newptr)
+ return (error);
+
+ if (result == 1) {
+ sc = (struct bce_softc *)arg1;
+ bce_breakpoint(sc);
+ }
+
+ return error;
+}
+#endif
+
+
+/****************************************************************************/
+/* Adds any sysctl parameters for tuning or debugging purposes. */
+/* */
+/* Returns: */
+/* 0 for success, positive value for failure. */
+/****************************************************************************/
+static void
+bce_add_sysctls(struct bce_softc *sc)
+{
+ struct sysctl_ctx_list *ctx;
+ struct sysctl_oid_list *children;
+
+ DBENTER(BCE_VERBOSE_MISC);
+
+ ctx = device_get_sysctl_ctx(sc->bce_dev);
+ children = SYSCTL_CHILDREN(device_get_sysctl_tree(sc->bce_dev));
+
+#ifdef BCE_DEBUG
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "l2fhdr_error_sim_control",
+ CTLFLAG_RW, &l2fhdr_error_sim_control,
+ 0, "Debug control to force l2fhdr errors");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "l2fhdr_error_sim_count",
+ CTLFLAG_RD, &sc->l2fhdr_error_sim_count,
+ 0, "Number of simulated l2_fhdr errors");
+#endif
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "l2fhdr_error_count",
+ CTLFLAG_RD, &sc->l2fhdr_error_count,
+ 0, "Number of l2_fhdr errors");
+
+#ifdef BCE_DEBUG
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "mbuf_alloc_failed_sim_control",
+ CTLFLAG_RW, &mbuf_alloc_failed_sim_control,
+ 0, "Debug control to force mbuf allocation failures");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "mbuf_alloc_failed_sim_count",
+ CTLFLAG_RD, &sc->mbuf_alloc_failed_sim_count,
+ 0, "Number of simulated mbuf cluster allocation failures");
+#endif
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "mbuf_alloc_failed_count",
+ CTLFLAG_RD, &sc->mbuf_alloc_failed_count,
+ 0, "Number of mbuf allocation failures");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "mbuf_frag_count",
+ CTLFLAG_RD, &sc->mbuf_frag_count,
+ 0, "Number of fragmented mbufs");
+
+#ifdef BCE_DEBUG
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "dma_map_addr_failed_sim_control",
+ CTLFLAG_RW, &dma_map_addr_failed_sim_control,
+ 0, "Debug control to force DMA mapping failures");
+
+ /* ToDo: Figure out how to update this value in bce_dma_map_addr(). */
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "dma_map_addr_failed_sim_count",
+ CTLFLAG_RD, &sc->dma_map_addr_failed_sim_count,
+ 0, "Number of simulated DMA mapping failures");
+
+#endif
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "dma_map_addr_rx_failed_count",
+ CTLFLAG_RD, &sc->dma_map_addr_rx_failed_count,
+ 0, "Number of RX DMA mapping failures");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "dma_map_addr_tx_failed_count",
+ CTLFLAG_RD, &sc->dma_map_addr_tx_failed_count,
+ 0, "Number of TX DMA mapping failures");
+
+#ifdef BCE_DEBUG
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "unexpected_attention_sim_control",
+ CTLFLAG_RW, &unexpected_attention_sim_control,
+ 0, "Debug control to simulate unexpected attentions");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "unexpected_attention_sim_count",
+ CTLFLAG_RW, &sc->unexpected_attention_sim_count,
+ 0, "Number of simulated unexpected attentions");
+#endif
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "unexpected_attention_count",
+ CTLFLAG_RW, &sc->unexpected_attention_count,
+ 0, "Number of unexpected attentions");
+
+#ifdef BCE_DEBUG
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "debug_bootcode_running_failure",
+ CTLFLAG_RW, &bootcode_running_failure_sim_control,
+ 0, "Debug control to force bootcode running failures");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "rx_low_watermark",
+ CTLFLAG_RD, &sc->rx_low_watermark,
+ 0, "Lowest level of free rx_bd's");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "rx_empty_count",
+ CTLFLAG_RD, &sc->rx_empty_count,
+ 0, "Number of times the RX chain was empty");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "tx_hi_watermark",
+ CTLFLAG_RD, &sc->tx_hi_watermark,
+ 0, "Highest level of used tx_bd's");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "tx_full_count",
+ CTLFLAG_RD, &sc->tx_full_count,
+ 0, "Number of times the TX chain was full");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "tso_frames_requested",
+ CTLFLAG_RD, &sc->tso_frames_requested,
+ 0, "Number of TSO frames requested");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "tso_frames_completed",
+ CTLFLAG_RD, &sc->tso_frames_completed,
+ 0, "Number of TSO frames completed");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "tso_frames_failed",
+ CTLFLAG_RD, &sc->tso_frames_failed,
+ 0, "Number of TSO frames failed");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "csum_offload_ip",
+ CTLFLAG_RD, &sc->csum_offload_ip,
+ 0, "Number of IP checksum offload frames");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "csum_offload_tcp_udp",
+ CTLFLAG_RD, &sc->csum_offload_tcp_udp,
+ 0, "Number of TCP/UDP checksum offload frames");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "vlan_tagged_frames_rcvd",
+ CTLFLAG_RD, &sc->vlan_tagged_frames_rcvd,
+ 0, "Number of VLAN tagged frames received");
+
+ SYSCTL_ADD_INT(ctx, children, OID_AUTO,
+ "vlan_tagged_frames_stripped",
+ CTLFLAG_RD, &sc->vlan_tagged_frames_stripped,
+ 0, "Number of VLAN tagged frames stripped");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "interrupts_rx",
+ CTLFLAG_RD, &sc->interrupts_rx,
+ 0, "Number of RX interrupts");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "interrupts_tx",
+ CTLFLAG_RD, &sc->interrupts_tx,
+ 0, "Number of TX interrupts");
+#endif
+
+ SYSCTL_ADD_ULONG(ctx, children, OID_AUTO,
+ "stat_IfHcInOctets",
+ CTLFLAG_RD, &sc->stat_IfHCInOctets,
+ "Bytes received");
+
+ SYSCTL_ADD_ULONG(ctx, children, OID_AUTO,
+ "stat_IfHCInBadOctets",
+ CTLFLAG_RD, &sc->stat_IfHCInBadOctets,
+ "Bad bytes received");
+
+ SYSCTL_ADD_ULONG(ctx, children, OID_AUTO,
+ "stat_IfHCOutOctets",
+ CTLFLAG_RD, &sc->stat_IfHCOutOctets,
+ "Bytes sent");
+
+ SYSCTL_ADD_ULONG(ctx, children, OID_AUTO,
+ "stat_IfHCOutBadOctets",
+ CTLFLAG_RD, &sc->stat_IfHCOutBadOctets,
+ "Bad bytes sent");
+
+ SYSCTL_ADD_ULONG(ctx, children, OID_AUTO,
+ "stat_IfHCInUcastPkts",
+ CTLFLAG_RD, &sc->stat_IfHCInUcastPkts,
+ "Unicast packets received");
+
+ SYSCTL_ADD_ULONG(ctx, children, OID_AUTO,
+ "stat_IfHCInMulticastPkts",
+ CTLFLAG_RD, &sc->stat_IfHCInMulticastPkts,
+ "Multicast packets received");
+
+ SYSCTL_ADD_ULONG(ctx, children, OID_AUTO,
+ "stat_IfHCInBroadcastPkts",
+ CTLFLAG_RD, &sc->stat_IfHCInBroadcastPkts,
+ "Broadcast packets received");
+
+ SYSCTL_ADD_ULONG(ctx, children, OID_AUTO,
+ "stat_IfHCOutUcastPkts",
+ CTLFLAG_RD, &sc->stat_IfHCOutUcastPkts,
+ "Unicast packets sent");
+
+ SYSCTL_ADD_ULONG(ctx, children, OID_AUTO,
+ "stat_IfHCOutMulticastPkts",
+ CTLFLAG_RD, &sc->stat_IfHCOutMulticastPkts,
+ "Multicast packets sent");
+
+ SYSCTL_ADD_ULONG(ctx, children, OID_AUTO,
+ "stat_IfHCOutBroadcastPkts",
+ CTLFLAG_RD, &sc->stat_IfHCOutBroadcastPkts,
+ "Broadcast packets sent");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_emac_tx_stat_dot3statsinternalmactransmiterrors",
+ CTLFLAG_RD, &sc->stat_emac_tx_stat_dot3statsinternalmactransmiterrors,
+ 0, "Internal MAC transmit errors");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_Dot3StatsCarrierSenseErrors",
+ CTLFLAG_RD, &sc->stat_Dot3StatsCarrierSenseErrors,
+ 0, "Carrier sense errors");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_Dot3StatsFCSErrors",
+ CTLFLAG_RD, &sc->stat_Dot3StatsFCSErrors,
+ 0, "Frame check sequence errors");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_Dot3StatsAlignmentErrors",
+ CTLFLAG_RD, &sc->stat_Dot3StatsAlignmentErrors,
+ 0, "Alignment errors");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_Dot3StatsSingleCollisionFrames",
+ CTLFLAG_RD, &sc->stat_Dot3StatsSingleCollisionFrames,
+ 0, "Single Collision Frames");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_Dot3StatsMultipleCollisionFrames",
+ CTLFLAG_RD, &sc->stat_Dot3StatsMultipleCollisionFrames,
+ 0, "Multiple Collision Frames");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_Dot3StatsDeferredTransmissions",
+ CTLFLAG_RD, &sc->stat_Dot3StatsDeferredTransmissions,
+ 0, "Deferred Transmissions");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_Dot3StatsExcessiveCollisions",
+ CTLFLAG_RD, &sc->stat_Dot3StatsExcessiveCollisions,
+ 0, "Excessive Collisions");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_Dot3StatsLateCollisions",
+ CTLFLAG_RD, &sc->stat_Dot3StatsLateCollisions,
+ 0, "Late Collisions");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsCollisions",
+ CTLFLAG_RD, &sc->stat_EtherStatsCollisions,
+ 0, "Collisions");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsFragments",
+ CTLFLAG_RD, &sc->stat_EtherStatsFragments,
+ 0, "Fragments");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsJabbers",
+ CTLFLAG_RD, &sc->stat_EtherStatsJabbers,
+ 0, "Jabbers");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsUndersizePkts",
+ CTLFLAG_RD, &sc->stat_EtherStatsUndersizePkts,
+ 0, "Undersize packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsOversizePkts",
+ CTLFLAG_RD, &sc->stat_EtherStatsOversizePkts,
+ 0, "stat_EtherStatsOversizePkts");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsRx64Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsRx64Octets,
+ 0, "Bytes received in 64 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsRx65Octetsto127Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsRx65Octetsto127Octets,
+ 0, "Bytes received in 65 to 127 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsRx128Octetsto255Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsRx128Octetsto255Octets,
+ 0, "Bytes received in 128 to 255 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsRx256Octetsto511Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsRx256Octetsto511Octets,
+ 0, "Bytes received in 256 to 511 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsRx512Octetsto1023Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsRx512Octetsto1023Octets,
+ 0, "Bytes received in 512 to 1023 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsRx1024Octetsto1522Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsRx1024Octetsto1522Octets,
+ 0, "Bytes received in 1024 t0 1522 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsRx1523Octetsto9022Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsRx1523Octetsto9022Octets,
+ 0, "Bytes received in 1523 to 9022 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsTx64Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsTx64Octets,
+ 0, "Bytes sent in 64 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsTx65Octetsto127Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsTx65Octetsto127Octets,
+ 0, "Bytes sent in 65 to 127 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsTx128Octetsto255Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsTx128Octetsto255Octets,
+ 0, "Bytes sent in 128 to 255 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsTx256Octetsto511Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsTx256Octetsto511Octets,
+ 0, "Bytes sent in 256 to 511 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsTx512Octetsto1023Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsTx512Octetsto1023Octets,
+ 0, "Bytes sent in 512 to 1023 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsTx1024Octetsto1522Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsTx1024Octetsto1522Octets,
+ 0, "Bytes sent in 1024 to 1522 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_EtherStatsPktsTx1523Octetsto9022Octets",
+ CTLFLAG_RD, &sc->stat_EtherStatsPktsTx1523Octetsto9022Octets,
+ 0, "Bytes sent in 1523 to 9022 byte packets");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_XonPauseFramesReceived",
+ CTLFLAG_RD, &sc->stat_XonPauseFramesReceived,
+ 0, "XON pause frames receved");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_XoffPauseFramesReceived",
+ CTLFLAG_RD, &sc->stat_XoffPauseFramesReceived,
+ 0, "XOFF pause frames received");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_OutXonSent",
+ CTLFLAG_RD, &sc->stat_OutXonSent,
+ 0, "XON pause frames sent");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_OutXoffSent",
+ CTLFLAG_RD, &sc->stat_OutXoffSent,
+ 0, "XOFF pause frames sent");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_FlowControlDone",
+ CTLFLAG_RD, &sc->stat_FlowControlDone,
+ 0, "Flow control done");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_MacControlFramesReceived",
+ CTLFLAG_RD, &sc->stat_MacControlFramesReceived,
+ 0, "MAC control frames received");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_XoffStateEntered",
+ CTLFLAG_RD, &sc->stat_XoffStateEntered,
+ 0, "XOFF state entered");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_IfInFramesL2FilterDiscards",
+ CTLFLAG_RD, &sc->stat_IfInFramesL2FilterDiscards,
+ 0, "Received L2 packets discarded");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_IfInRuleCheckerDiscards",
+ CTLFLAG_RD, &sc->stat_IfInRuleCheckerDiscards,
+ 0, "Received packets discarded by rule");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_IfInFTQDiscards",
+ CTLFLAG_RD, &sc->stat_IfInFTQDiscards,
+ 0, "Received packet FTQ discards");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_IfInMBUFDiscards",
+ CTLFLAG_RD, &sc->stat_IfInMBUFDiscards,
+ 0, "Received packets discarded due to lack "
+ "of controller buffer memory");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_IfInRuleCheckerP4Hit",
+ CTLFLAG_RD, &sc->stat_IfInRuleCheckerP4Hit,
+ 0, "Received packets rule checker hits");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_CatchupInRuleCheckerDiscards",
+ CTLFLAG_RD, &sc->stat_CatchupInRuleCheckerDiscards,
+ 0, "Received packets discarded in Catchup path");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_CatchupInFTQDiscards",
+ CTLFLAG_RD, &sc->stat_CatchupInFTQDiscards,
+ 0, "Received packets discarded in FTQ in Catchup path");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_CatchupInMBUFDiscards",
+ CTLFLAG_RD, &sc->stat_CatchupInMBUFDiscards,
+ 0, "Received packets discarded in controller "
+ "buffer memory in Catchup path");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "stat_CatchupInRuleCheckerP4Hit",
+ CTLFLAG_RD, &sc->stat_CatchupInRuleCheckerP4Hit,
+ 0, "Received packets rule checker hits in Catchup path");
+
+ SYSCTL_ADD_UINT(ctx, children, OID_AUTO,
+ "com_no_buffers",
+ CTLFLAG_RD, &sc->com_no_buffers,
+ 0, "Valid packets received but no RX buffers available");
+
+#ifdef BCE_DEBUG
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "driver_state", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_driver_state, "I", "Drive state information");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "hw_state", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_hw_state, "I", "Hardware state information");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "status_block", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_status_block, "I", "Dump status block");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "stats_block", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_stats_block, "I", "Dump statistics block");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "stats_clear", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_stats_clear, "I", "Clear statistics block");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "bc_state", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_bc_state, "I", "Bootcode state information");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "dump_rx_bd_chain", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_dump_rx_bd_chain, "I", "Dump RX BD chain");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "dump_rx_mbuf_chain", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_dump_rx_mbuf_chain, "I", "Dump RX MBUF chain");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "dump_tx_chain", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_dump_tx_chain, "I", "Dump tx_bd chain");
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "dump_pg_chain", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_dump_pg_chain, "I", "Dump page chain");
+#endif
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "dump_ctx", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_dump_ctx, "I", "Dump context memory");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "breakpoint", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_breakpoint, "I", "Driver breakpoint");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "reg_read", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_reg_read, "I", "Register read");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "nvram_read", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_nvram_read, "I", "NVRAM read");
+
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO,
+ "phy_read", CTLTYPE_INT | CTLFLAG_RW,
+ (void *)sc, 0,
+ bce_sysctl_phy_read, "I", "PHY register read");
+
+#endif
+
+ DBEXIT(BCE_VERBOSE_MISC);
+}
+
+
+/****************************************************************************/
+/* BCE Debug Routines */
+/****************************************************************************/
+#ifdef BCE_DEBUG
+
+/****************************************************************************/
+/* Freezes the controller to allow for a cohesive state dump. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_freeze_controller(struct bce_softc *sc)
+{
+ u32 val;
+ val = REG_RD(sc, BCE_MISC_COMMAND);
+ val |= BCE_MISC_COMMAND_DISABLE_ALL;
+ REG_WR(sc, BCE_MISC_COMMAND, val);
+}
+
+
+/****************************************************************************/
+/* Unfreezes the controller after a freeze operation. This may not always */
+/* work and the controller will require a reset! */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_unfreeze_controller(struct bce_softc *sc)
+{
+ u32 val;
+ val = REG_RD(sc, BCE_MISC_COMMAND);
+ val |= BCE_MISC_COMMAND_ENABLE_ALL;
+ REG_WR(sc, BCE_MISC_COMMAND, val);
+}
+
+
+/****************************************************************************/
+/* Prints out Ethernet frame information from an mbuf. */
+/* */
+/* Partially decode an Ethernet frame to look at some important headers. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_enet(struct bce_softc *sc, struct mbuf *m)
+{
+ struct ether_vlan_header *eh;
+ u16 etype;
+ int ehlen;
+ struct ip *ip;
+ struct tcphdr *th;
+ struct udphdr *uh;
+ struct arphdr *ah;
+
+ BCE_PRINTF(
+ "-----------------------------"
+ " Frame Decode "
+ "-----------------------------\n");
+
+ eh = mtod(m, struct ether_vlan_header *);
+
+ /* Handle VLAN encapsulation if present. */
+ if (eh->evl_encap_proto == htons(ETHERTYPE_VLAN)) {
+ etype = ntohs(eh->evl_proto);
+ ehlen = ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN;
+ } else {
+ etype = ntohs(eh->evl_encap_proto);
+ ehlen = ETHER_HDR_LEN;
+ }
+
+ /* ToDo: Add VLAN output. */
+ BCE_PRINTF("enet: dest = %6D, src = %6D, type = 0x%04X, hlen = %d\n",
+ eh->evl_dhost, ":", eh->evl_shost, ":", etype, ehlen);
+
+ switch (etype) {
+ case ETHERTYPE_IP:
+ ip = (struct ip *)(m->m_data + ehlen);
+ BCE_PRINTF("--ip: dest = 0x%08X , src = 0x%08X, "
+ "len = %d bytes, protocol = 0x%02X, xsum = 0x%04X\n",
+ ntohl(ip->ip_dst.s_addr), ntohl(ip->ip_src.s_addr),
+ ntohs(ip->ip_len), ip->ip_p, ntohs(ip->ip_sum));
+
+ switch (ip->ip_p) {
+ case IPPROTO_TCP:
+ th = (struct tcphdr *)((caddr_t)ip + (ip->ip_hl << 2));
+ BCE_PRINTF("-tcp: dest = %d, src = %d, hlen = "
+ "%d bytes, flags = 0x%b, csum = 0x%04X\n",
+ ntohs(th->th_dport), ntohs(th->th_sport),
+ (th->th_off << 2), th->th_flags,
+ "\20\10CWR\07ECE\06URG\05ACK\04PSH\03RST"
+ "\02SYN\01FIN", ntohs(th->th_sum));
+ break;
+ case IPPROTO_UDP:
+ uh = (struct udphdr *)((caddr_t)ip + (ip->ip_hl << 2));
+ BCE_PRINTF("-udp: dest = %d, src = %d, len = %d "
+ "bytes, csum = 0x%04X\n", ntohs(uh->uh_dport),
+ ntohs(uh->uh_sport), ntohs(uh->uh_ulen),
+ ntohs(uh->uh_sum));
+ break;
+ case IPPROTO_ICMP:
+ BCE_PRINTF("icmp:\n");
+ break;
+ default:
+ BCE_PRINTF("----: Other IP protocol.\n");
+ }
+ break;
+ case ETHERTYPE_IPV6:
+ BCE_PRINTF("ipv6: No decode supported.\n");
+ break;
+ case ETHERTYPE_ARP:
+ BCE_PRINTF("-arp: ");
+ ah = (struct arphdr *) (m->m_data + ehlen);
+ switch (ntohs(ah->ar_op)) {
+ case ARPOP_REVREQUEST:
+ printf("reverse ARP request\n");
+ break;
+ case ARPOP_REVREPLY:
+ printf("reverse ARP reply\n");
+ break;
+ case ARPOP_REQUEST:
+ printf("ARP request\n");
+ break;
+ case ARPOP_REPLY:
+ printf("ARP reply\n");
+ break;
+ default:
+ printf("other ARP operation\n");
+ }
+ break;
+ default:
+ BCE_PRINTF("----: Other protocol.\n");
+ }
+
+ BCE_PRINTF(
+ "-----------------------------"
+ "--------------"
+ "-----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out information about an mbuf. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_mbuf(struct bce_softc *sc, struct mbuf *m)
+{
+ struct mbuf *mp = m;
+
+ if (m == NULL) {
+ BCE_PRINTF("mbuf: null pointer\n");
+ return;
+ }
+
+ while (mp) {
+ BCE_PRINTF("mbuf: %p, m_len = %d, m_flags = 0x%b, "
+ "m_data = %p\n", mp, mp->m_len, mp->m_flags,
+ "\20\1M_EXT\2M_PKTHDR\3M_EOR\4M_RDONLY", mp->m_data);
+
+ if (mp->m_flags & M_PKTHDR) {
+ BCE_PRINTF("- m_pkthdr: len = %d, flags = 0x%b, "
+ "csum_flags = %b\n", mp->m_pkthdr.len,
+ mp->m_flags, "\20\12M_BCAST\13M_MCAST\14M_FRAG"
+ "\15M_FIRSTFRAG\16M_LASTFRAG\21M_VLANTAG"
+ "\22M_PROMISC\23M_NOFREE",
+ mp->m_pkthdr.csum_flags,
+ "\20\1CSUM_IP\2CSUM_TCP\3CSUM_UDP\4CSUM_IP_FRAGS"
+ "\5CSUM_FRAGMENT\6CSUM_TSO\11CSUM_IP_CHECKED"
+ "\12CSUM_IP_VALID\13CSUM_DATA_VALID"
+ "\14CSUM_PSEUDO_HDR");
+ }
+
+ if (mp->m_flags & M_EXT) {
+ BCE_PRINTF("- m_ext: %p, ext_size = %d, type = ",
+ mp->m_ext.ext_buf, mp->m_ext.ext_size);
+ switch (mp->m_ext.ext_type) {
+ case EXT_CLUSTER:
+ printf("EXT_CLUSTER\n"); break;
+ case EXT_SFBUF:
+ printf("EXT_SFBUF\n"); break;
+ case EXT_JUMBO9:
+ printf("EXT_JUMBO9\n"); break;
+ case EXT_JUMBO16:
+ printf("EXT_JUMBO16\n"); break;
+ case EXT_PACKET:
+ printf("EXT_PACKET\n"); break;
+ case EXT_MBUF:
+ printf("EXT_MBUF\n"); break;
+ case EXT_NET_DRV:
+ printf("EXT_NET_DRV\n"); break;
+ case EXT_MOD_TYPE:
+ printf("EXT_MDD_TYPE\n"); break;
+ case EXT_DISPOSABLE:
+ printf("EXT_DISPOSABLE\n"); break;
+ case EXT_EXTREF:
+ printf("EXT_EXTREF\n"); break;
+ default:
+ printf("UNKNOWN\n");
+ }
+ }
+
+ mp = mp->m_next;
+ }
+}
+
+
+/****************************************************************************/
+/* Prints out the mbufs in the TX mbuf chain. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_tx_mbuf_chain(struct bce_softc *sc, u16 chain_prod, int count)
+{
+ struct mbuf *m;
+
+ BCE_PRINTF(
+ "----------------------------"
+ " tx mbuf data "
+ "----------------------------\n");
+
+ for (int i = 0; i < count; i++) {
+ m = sc->tx_mbuf_ptr[chain_prod];
+ BCE_PRINTF("txmbuf[0x%04X]\n", chain_prod);
+ bce_dump_mbuf(sc, m);
+ chain_prod = TX_CHAIN_IDX(NEXT_TX_BD(chain_prod));
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the mbufs in the RX mbuf chain. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_rx_mbuf_chain(struct bce_softc *sc, u16 chain_prod, int count)
+{
+ struct mbuf *m;
+
+ BCE_PRINTF(
+ "----------------------------"
+ " rx mbuf data "
+ "----------------------------\n");
+
+ for (int i = 0; i < count; i++) {
+ m = sc->rx_mbuf_ptr[chain_prod];
+ BCE_PRINTF("rxmbuf[0x%04X]\n", chain_prod);
+ bce_dump_mbuf(sc, m);
+ chain_prod = RX_CHAIN_IDX(NEXT_RX_BD(chain_prod));
+ }
+
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+#ifdef BCE_JUMBO_HDRSPLIT
+/****************************************************************************/
+/* Prints out the mbufs in the mbuf page chain. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_pg_mbuf_chain(struct bce_softc *sc, u16 chain_prod, int count)
+{
+ struct mbuf *m;
+
+ BCE_PRINTF(
+ "----------------------------"
+ " pg mbuf data "
+ "----------------------------\n");
+
+ for (int i = 0; i < count; i++) {
+ m = sc->pg_mbuf_ptr[chain_prod];
+ BCE_PRINTF("pgmbuf[0x%04X]\n", chain_prod);
+ bce_dump_mbuf(sc, m);
+ chain_prod = PG_CHAIN_IDX(NEXT_PG_BD(chain_prod));
+ }
+
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+#endif
+
+
+/****************************************************************************/
+/* Prints out a tx_bd structure. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_txbd(struct bce_softc *sc, int idx, struct tx_bd *txbd)
+{
+ int i = 0;
+
+ if (idx > MAX_TX_BD)
+ /* Index out of range. */
+ BCE_PRINTF("tx_bd[0x%04X]: Invalid tx_bd index!\n", idx);
+ else if ((idx & USABLE_TX_BD_PER_PAGE) == USABLE_TX_BD_PER_PAGE)
+ /* TX Chain page pointer. */
+ BCE_PRINTF("tx_bd[0x%04X]: haddr = 0x%08X:%08X, chain page "
+ "pointer\n", idx, txbd->tx_bd_haddr_hi,
+ txbd->tx_bd_haddr_lo);
+ else {
+ /* Normal tx_bd entry. */
+ BCE_PRINTF("tx_bd[0x%04X]: haddr = 0x%08X:%08X, "
+ "mss_nbytes = 0x%08X, vlan tag = 0x%04X, flags = "
+ "0x%04X (", idx, txbd->tx_bd_haddr_hi,
+ txbd->tx_bd_haddr_lo, txbd->tx_bd_mss_nbytes,
+ txbd->tx_bd_vlan_tag, txbd->tx_bd_flags);
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_CONN_FAULT) {
+ if (i>0)
+ printf("|");
+ printf("CONN_FAULT");
+ i++;
+ }
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_TCP_UDP_CKSUM) {
+ if (i>0)
+ printf("|");
+ printf("TCP_UDP_CKSUM");
+ i++;
+ }
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_IP_CKSUM) {
+ if (i>0)
+ printf("|");
+ printf("IP_CKSUM");
+ i++;
+ }
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_VLAN_TAG) {
+ if (i>0)
+ printf("|");
+ printf("VLAN");
+ i++;
+ }
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_COAL_NOW) {
+ if (i>0)
+ printf("|");
+ printf("COAL_NOW");
+ i++;
+ }
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_DONT_GEN_CRC) {
+ if (i>0)
+ printf("|");
+ printf("DONT_GEN_CRC");
+ i++;
+ }
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_START) {
+ if (i>0)
+ printf("|");
+ printf("START");
+ i++;
+ }
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_END) {
+ if (i>0)
+ printf("|");
+ printf("END");
+ i++;
+ }
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_SW_LSO) {
+ if (i>0)
+ printf("|");
+ printf("LSO");
+ i++;
+ }
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_SW_OPTION_WORD) {
+ if (i>0)
+ printf("|");
+ printf("SW_OPTION=%d", ((txbd->tx_bd_flags &
+ TX_BD_FLAGS_SW_OPTION_WORD) >> 8)); i++;
+ }
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_SW_FLAGS) {
+ if (i>0)
+ printf("|");
+ printf("SW_FLAGS");
+ i++;
+ }
+
+ if (txbd->tx_bd_flags & TX_BD_FLAGS_SW_SNAP) {
+ if (i>0)
+ printf("|");
+ printf("SNAP)");
+ } else {
+ printf(")\n");
+ }
+ }
+}
+
+
+/****************************************************************************/
+/* Prints out a rx_bd structure. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_rxbd(struct bce_softc *sc, int idx, struct rx_bd *rxbd)
+{
+ if (idx > MAX_RX_BD)
+ /* Index out of range. */
+ BCE_PRINTF("rx_bd[0x%04X]: Invalid rx_bd index!\n", idx);
+ else if ((idx & USABLE_RX_BD_PER_PAGE) == USABLE_RX_BD_PER_PAGE)
+ /* RX Chain page pointer. */
+ BCE_PRINTF("rx_bd[0x%04X]: haddr = 0x%08X:%08X, chain page "
+ "pointer\n", idx, rxbd->rx_bd_haddr_hi,
+ rxbd->rx_bd_haddr_lo);
+ else
+ /* Normal rx_bd entry. */
+ BCE_PRINTF("rx_bd[0x%04X]: haddr = 0x%08X:%08X, nbytes = "
+ "0x%08X, flags = 0x%08X\n", idx, rxbd->rx_bd_haddr_hi,
+ rxbd->rx_bd_haddr_lo, rxbd->rx_bd_len,
+ rxbd->rx_bd_flags);
+}
+
+
+#ifdef BCE_JUMBO_HDRSPLIT
+/****************************************************************************/
+/* Prints out a rx_bd structure in the page chain. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_pgbd(struct bce_softc *sc, int idx, struct rx_bd *pgbd)
+{
+ if (idx > MAX_PG_BD)
+ /* Index out of range. */
+ BCE_PRINTF("pg_bd[0x%04X]: Invalid pg_bd index!\n", idx);
+ else if ((idx & USABLE_PG_BD_PER_PAGE) == USABLE_PG_BD_PER_PAGE)
+ /* Page Chain page pointer. */
+ BCE_PRINTF("px_bd[0x%04X]: haddr = 0x%08X:%08X, chain page pointer\n",
+ idx, pgbd->rx_bd_haddr_hi, pgbd->rx_bd_haddr_lo);
+ else
+ /* Normal rx_bd entry. */
+ BCE_PRINTF("pg_bd[0x%04X]: haddr = 0x%08X:%08X, nbytes = 0x%08X, "
+ "flags = 0x%08X\n", idx,
+ pgbd->rx_bd_haddr_hi, pgbd->rx_bd_haddr_lo,
+ pgbd->rx_bd_len, pgbd->rx_bd_flags);
+}
+#endif
+
+
+/****************************************************************************/
+/* Prints out a l2_fhdr structure. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_l2fhdr(struct bce_softc *sc, int idx, struct l2_fhdr *l2fhdr)
+{
+ BCE_PRINTF("l2_fhdr[0x%04X]: status = 0x%b, "
+ "pkt_len = %d, vlan = 0x%04x, ip_xsum/hdr_len = 0x%04X, "
+ "tcp_udp_xsum = 0x%04X\n", idx,
+ l2fhdr->l2_fhdr_status, BCE_L2FHDR_PRINTFB,
+ l2fhdr->l2_fhdr_pkt_len, l2fhdr->l2_fhdr_vlan_tag,
+ l2fhdr->l2_fhdr_ip_xsum, l2fhdr->l2_fhdr_tcp_udp_xsum);
+}
+
+
+/****************************************************************************/
+/* Prints out context memory info. (Only useful for CID 0 to 16.) */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_ctx(struct bce_softc *sc, u16 cid)
+{
+ if (cid > TX_CID) {
+ BCE_PRINTF(" Unknown CID\n");
+ return;
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ " CTX Data "
+ "----------------------------\n");
+
+ BCE_PRINTF(" 0x%04X - (CID) Context ID\n", cid);
+
+ if (cid == RX_CID) {
+ BCE_PRINTF(" 0x%08X - (L2CTX_RX_HOST_BDIDX) host rx "
+ "producer index\n",
+ CTX_RD(sc, GET_CID_ADDR(cid), BCE_L2CTX_RX_HOST_BDIDX));
+ BCE_PRINTF(" 0x%08X - (L2CTX_RX_HOST_BSEQ) host "
+ "byte sequence\n", CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_RX_HOST_BSEQ));
+ BCE_PRINTF(" 0x%08X - (L2CTX_RX_NX_BSEQ) h/w byte sequence\n",
+ CTX_RD(sc, GET_CID_ADDR(cid), BCE_L2CTX_RX_NX_BSEQ));
+ BCE_PRINTF(" 0x%08X - (L2CTX_RX_NX_BDHADDR_HI) h/w buffer "
+ "descriptor address\n",
+ CTX_RD(sc, GET_CID_ADDR(cid), BCE_L2CTX_RX_NX_BDHADDR_HI));
+ BCE_PRINTF(" 0x%08X - (L2CTX_RX_NX_BDHADDR_LO) h/w buffer "
+ "descriptor address\n",
+ CTX_RD(sc, GET_CID_ADDR(cid), BCE_L2CTX_RX_NX_BDHADDR_LO));
+ BCE_PRINTF(" 0x%08X - (L2CTX_RX_NX_BDIDX) h/w rx consumer "
+ "index\n", CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_RX_NX_BDIDX));
+ BCE_PRINTF(" 0x%08X - (L2CTX_RX_HOST_PG_BDIDX) host page "
+ "producer index\n", CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_RX_HOST_PG_BDIDX));
+ BCE_PRINTF(" 0x%08X - (L2CTX_RX_PG_BUF_SIZE) host rx_bd/page "
+ "buffer size\n", CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_RX_PG_BUF_SIZE));
+ BCE_PRINTF(" 0x%08X - (L2CTX_RX_NX_PG_BDHADDR_HI) h/w page "
+ "chain address\n", CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_RX_NX_PG_BDHADDR_HI));
+ BCE_PRINTF(" 0x%08X - (L2CTX_RX_NX_PG_BDHADDR_LO) h/w page "
+ "chain address\n", CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_RX_NX_PG_BDHADDR_LO));
+ BCE_PRINTF(" 0x%08X - (L2CTX_RX_NX_PG_BDIDX) h/w page "
+ "consumer index\n", CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_RX_NX_PG_BDIDX));
+ } else if (cid == TX_CID) {
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ BCE_PRINTF(" 0x%08X - (L2CTX_TX_TYPE_XI) ctx type\n",
+ CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_TX_TYPE_XI));
+ BCE_PRINTF(" 0x%08X - (L2CTX_CMD_TX_TYPE_XI) ctx "
+ "cmd\n", CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_TX_CMD_TYPE_XI));
+ BCE_PRINTF(" 0x%08X - (L2CTX_TX_TBDR_BDHADDR_HI_XI) "
+ "h/w buffer descriptor address\n",
+ CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_TX_TBDR_BHADDR_HI_XI));
+ BCE_PRINTF(" 0x%08X - (L2CTX_TX_TBDR_BHADDR_LO_XI) "
+ "h/w buffer descriptor address\n",
+ CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_TX_TBDR_BHADDR_LO_XI));
+ BCE_PRINTF(" 0x%08X - (L2CTX_TX_HOST_BIDX_XI) "
+ "host producer index\n",
+ CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_TX_HOST_BIDX_XI));
+ BCE_PRINTF(" 0x%08X - (L2CTX_TX_HOST_BSEQ_XI) "
+ "host byte sequence\n",
+ CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_TX_HOST_BSEQ_XI));
+ } else {
+ BCE_PRINTF(" 0x%08X - (L2CTX_TX_TYPE) ctx type\n",
+ CTX_RD(sc, GET_CID_ADDR(cid), BCE_L2CTX_TX_TYPE));
+ BCE_PRINTF(" 0x%08X - (L2CTX_TX_CMD_TYPE) ctx cmd\n",
+ CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_TX_CMD_TYPE));
+ BCE_PRINTF(" 0x%08X - (L2CTX_TX_TBDR_BDHADDR_HI) "
+ "h/w buffer descriptor address\n",
+ CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_TX_TBDR_BHADDR_HI));
+ BCE_PRINTF(" 0x%08X - (L2CTX_TX_TBDR_BHADDR_LO) "
+ "h/w buffer descriptor address\n",
+ CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_TX_TBDR_BHADDR_LO));
+ BCE_PRINTF(" 0x%08X - (L2CTX_TX_HOST_BIDX) host "
+ "producer index\n", CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_TX_HOST_BIDX));
+ BCE_PRINTF(" 0x%08X - (L2CTX_TX_HOST_BSEQ) host byte "
+ "sequence\n", CTX_RD(sc, GET_CID_ADDR(cid),
+ BCE_L2CTX_TX_HOST_BSEQ));
+ }
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ " Raw CTX "
+ "----------------------------\n");
+
+ for (int i = 0x0; i < 0x300; i += 0x10) {
+ BCE_PRINTF("0x%04X: 0x%08X 0x%08X 0x%08X 0x%08X\n", i,
+ CTX_RD(sc, GET_CID_ADDR(cid), i),
+ CTX_RD(sc, GET_CID_ADDR(cid), i + 0x4),
+ CTX_RD(sc, GET_CID_ADDR(cid), i + 0x8),
+ CTX_RD(sc, GET_CID_ADDR(cid), i + 0xc));
+ }
+
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the FTQ data. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_ftqs(struct bce_softc *sc)
+{
+ u32 cmd, ctl, cur_depth, max_depth, valid_cnt, val;
+
+ BCE_PRINTF(
+ "----------------------------"
+ " FTQ Data "
+ "----------------------------\n");
+
+ BCE_PRINTF(" FTQ Command Control Depth_Now "
+ "Max_Depth Valid_Cnt \n");
+ BCE_PRINTF(" ------- ---------- ---------- ---------- "
+ "---------- ----------\n");
+
+ /* Setup the generic statistic counters for the FTQ valid count. */
+ val = (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PPQ_VALID_CNT << 24) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXPCQ_VALID_CNT << 16) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXPQ_VALID_CNT << 8) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RLUPQ_VALID_CNT);
+ REG_WR(sc, BCE_HC_STAT_GEN_SEL_0, val);
+
+ val = (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TSCHQ_VALID_CNT << 24) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RDMAQ_VALID_CNT << 16) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PTQ_VALID_CNT << 8) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PMQ_VALID_CNT);
+ REG_WR(sc, BCE_HC_STAT_GEN_SEL_1, val);
+
+ val = (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPATQ_VALID_CNT << 24) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TDMAQ_VALID_CNT << 16) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXPQ_VALID_CNT << 8) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TBDRQ_VALID_CNT);
+ REG_WR(sc, BCE_HC_STAT_GEN_SEL_2, val);
+
+ val = (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMQ_VALID_CNT << 24) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMTQ_VALID_CNT << 16) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMXQ_VALID_CNT << 8) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TASQ_VALID_CNT);
+ REG_WR(sc, BCE_HC_STAT_GEN_SEL_3, val);
+
+ /* Input queue to the Receive Lookup state machine */
+ cmd = REG_RD(sc, BCE_RLUP_FTQ_CMD);
+ ctl = REG_RD(sc, BCE_RLUP_FTQ_CTL);
+ cur_depth = (ctl & BCE_RLUP_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_RLUP_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT0);
+ BCE_PRINTF(" RLUP 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Receive Processor */
+ cmd = REG_RD_IND(sc, BCE_RXP_FTQ_CMD);
+ ctl = REG_RD_IND(sc, BCE_RXP_FTQ_CTL);
+ cur_depth = (ctl & BCE_RXP_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_RXP_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT1);
+ BCE_PRINTF(" RXP 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Recevie Processor */
+ cmd = REG_RD_IND(sc, BCE_RXP_CFTQ_CMD);
+ ctl = REG_RD_IND(sc, BCE_RXP_CFTQ_CTL);
+ cur_depth = (ctl & BCE_RXP_CFTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_RXP_CFTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT2);
+ BCE_PRINTF(" RXPC 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Receive Virtual to Physical state machine */
+ cmd = REG_RD(sc, BCE_RV2P_PFTQ_CMD);
+ ctl = REG_RD(sc, BCE_RV2P_PFTQ_CTL);
+ cur_depth = (ctl & BCE_RV2P_PFTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_RV2P_PFTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT3);
+ BCE_PRINTF(" RV2PP 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Recevie Virtual to Physical state machine */
+ cmd = REG_RD(sc, BCE_RV2P_MFTQ_CMD);
+ ctl = REG_RD(sc, BCE_RV2P_MFTQ_CTL);
+ cur_depth = (ctl & BCE_RV2P_MFTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_RV2P_MFTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT4);
+ BCE_PRINTF(" RV2PM 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Receive Virtual to Physical state machine */
+ cmd = REG_RD(sc, BCE_RV2P_TFTQ_CMD);
+ ctl = REG_RD(sc, BCE_RV2P_TFTQ_CTL);
+ cur_depth = (ctl & BCE_RV2P_TFTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_RV2P_TFTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT5);
+ BCE_PRINTF(" RV2PT 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Receive DMA state machine */
+ cmd = REG_RD(sc, BCE_RDMA_FTQ_CMD);
+ ctl = REG_RD(sc, BCE_RDMA_FTQ_CTL);
+ cur_depth = (ctl & BCE_RDMA_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_RDMA_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT6);
+ BCE_PRINTF(" RDMA 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Transmit Scheduler state machine */
+ cmd = REG_RD(sc, BCE_TSCH_FTQ_CMD);
+ ctl = REG_RD(sc, BCE_TSCH_FTQ_CTL);
+ cur_depth = (ctl & BCE_TSCH_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_TSCH_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT7);
+ BCE_PRINTF(" TSCH 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Transmit Buffer Descriptor state machine */
+ cmd = REG_RD(sc, BCE_TBDR_FTQ_CMD);
+ ctl = REG_RD(sc, BCE_TBDR_FTQ_CTL);
+ cur_depth = (ctl & BCE_TBDR_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_TBDR_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT8);
+ BCE_PRINTF(" TBDR 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Transmit Processor */
+ cmd = REG_RD_IND(sc, BCE_TXP_FTQ_CMD);
+ ctl = REG_RD_IND(sc, BCE_TXP_FTQ_CTL);
+ cur_depth = (ctl & BCE_TXP_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_TXP_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT9);
+ BCE_PRINTF(" TXP 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Transmit DMA state machine */
+ cmd = REG_RD(sc, BCE_TDMA_FTQ_CMD);
+ ctl = REG_RD(sc, BCE_TDMA_FTQ_CTL);
+ cur_depth = (ctl & BCE_TDMA_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_TDMA_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT10);
+ BCE_PRINTF(" TDMA 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Transmit Patch-Up Processor */
+ cmd = REG_RD_IND(sc, BCE_TPAT_FTQ_CMD);
+ ctl = REG_RD_IND(sc, BCE_TPAT_FTQ_CTL);
+ cur_depth = (ctl & BCE_TPAT_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_TPAT_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT11);
+ BCE_PRINTF(" TPAT 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Transmit Assembler state machine */
+ cmd = REG_RD_IND(sc, BCE_TAS_FTQ_CMD);
+ ctl = REG_RD_IND(sc, BCE_TAS_FTQ_CTL);
+ cur_depth = (ctl & BCE_TAS_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_TAS_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT12);
+ BCE_PRINTF(" TAS 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Completion Processor */
+ cmd = REG_RD_IND(sc, BCE_COM_COMXQ_FTQ_CMD);
+ ctl = REG_RD_IND(sc, BCE_COM_COMXQ_FTQ_CTL);
+ cur_depth = (ctl & BCE_COM_COMXQ_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_COM_COMXQ_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT13);
+ BCE_PRINTF(" COMX 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Completion Processor */
+ cmd = REG_RD_IND(sc, BCE_COM_COMTQ_FTQ_CMD);
+ ctl = REG_RD_IND(sc, BCE_COM_COMTQ_FTQ_CTL);
+ cur_depth = (ctl & BCE_COM_COMTQ_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_COM_COMTQ_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT14);
+ BCE_PRINTF(" COMT 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Completion Processor */
+ cmd = REG_RD_IND(sc, BCE_COM_COMQ_FTQ_CMD);
+ ctl = REG_RD_IND(sc, BCE_COM_COMQ_FTQ_CTL);
+ cur_depth = (ctl & BCE_COM_COMQ_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_COM_COMQ_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT15);
+ BCE_PRINTF(" COMX 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Setup the generic statistic counters for the FTQ valid count. */
+ val = (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CSQ_VALID_CNT << 16) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CPQ_VALID_CNT << 8) |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MGMQ_VALID_CNT);
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716))
+ val = val |
+ (BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PCSQ_VALID_CNT_XI <<
+ 24);
+ REG_WR(sc, BCE_HC_STAT_GEN_SEL_0, val);
+
+ /* Input queue to the Management Control Processor */
+ cmd = REG_RD_IND(sc, BCE_MCP_MCPQ_FTQ_CMD);
+ ctl = REG_RD_IND(sc, BCE_MCP_MCPQ_FTQ_CTL);
+ cur_depth = (ctl & BCE_MCP_MCPQ_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_MCP_MCPQ_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT0);
+ BCE_PRINTF(" MCP 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Command Processor */
+ cmd = REG_RD_IND(sc, BCE_CP_CPQ_FTQ_CMD);
+ ctl = REG_RD_IND(sc, BCE_CP_CPQ_FTQ_CTL);
+ cur_depth = (ctl & BCE_CP_CPQ_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_CP_CPQ_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT1);
+ BCE_PRINTF(" CP 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ /* Input queue to the Completion Scheduler state machine */
+ cmd = REG_RD(sc, BCE_CSCH_CH_FTQ_CMD);
+ ctl = REG_RD(sc, BCE_CSCH_CH_FTQ_CTL);
+ cur_depth = (ctl & BCE_CSCH_CH_FTQ_CTL_CUR_DEPTH) >> 22;
+ max_depth = (ctl & BCE_CSCH_CH_FTQ_CTL_MAX_DEPTH) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT2);
+ BCE_PRINTF(" CS 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+
+ if ((BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5709) ||
+ (BCE_CHIP_NUM(sc) == BCE_CHIP_NUM_5716)) {
+ /* Input queue to the RV2P Command Scheduler */
+ cmd = REG_RD(sc, BCE_RV2PCSR_FTQ_CMD);
+ ctl = REG_RD(sc, BCE_RV2PCSR_FTQ_CTL);
+ cur_depth = (ctl & 0xFFC00000) >> 22;
+ max_depth = (ctl & 0x003FF000) >> 12;
+ valid_cnt = REG_RD(sc, BCE_HC_STAT_GEN_STAT3);
+ BCE_PRINTF(" RV2PCSR 0x%08X 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ cmd, ctl, cur_depth, max_depth, valid_cnt);
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the TX chain. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_tx_chain(struct bce_softc *sc, u16 tx_prod, int count)
+{
+ struct tx_bd *txbd;
+
+ /* First some info about the tx_bd chain structure. */
+ BCE_PRINTF(
+ "----------------------------"
+ " tx_bd chain "
+ "----------------------------\n");
+
+ BCE_PRINTF("page size = 0x%08X, tx chain pages = 0x%08X\n",
+ (u32) BCM_PAGE_SIZE, (u32) TX_PAGES);
+ BCE_PRINTF("tx_bd per page = 0x%08X, usable tx_bd per page = 0x%08X\n",
+ (u32) TOTAL_TX_BD_PER_PAGE, (u32) USABLE_TX_BD_PER_PAGE);
+ BCE_PRINTF("total tx_bd = 0x%08X\n", (u32) TOTAL_TX_BD);
+
+ BCE_PRINTF(
+ "----------------------------"
+ " tx_bd data "
+ "----------------------------\n");
+
+ /* Now print out a decoded list of TX buffer descriptors. */
+ for (int i = 0; i < count; i++) {
+ txbd = &sc->tx_bd_chain[TX_PAGE(tx_prod)][TX_IDX(tx_prod)];
+ bce_dump_txbd(sc, tx_prod, txbd);
+ tx_prod++;
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the RX chain. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_rx_bd_chain(struct bce_softc *sc, u16 rx_prod, int count)
+{
+ struct rx_bd *rxbd;
+
+ /* First some info about the rx_bd chain structure. */
+ BCE_PRINTF(
+ "----------------------------"
+ " rx_bd chain "
+ "----------------------------\n");
+
+ BCE_PRINTF("page size = 0x%08X, rx chain pages = 0x%08X\n",
+ (u32) BCM_PAGE_SIZE, (u32) RX_PAGES);
+
+ BCE_PRINTF("rx_bd per page = 0x%08X, usable rx_bd per page = 0x%08X\n",
+ (u32) TOTAL_RX_BD_PER_PAGE, (u32) USABLE_RX_BD_PER_PAGE);
+
+ BCE_PRINTF("total rx_bd = 0x%08X\n", (u32) TOTAL_RX_BD);
+
+ BCE_PRINTF(
+ "----------------------------"
+ " rx_bd data "
+ "----------------------------\n");
+
+ /* Now print out the rx_bd's themselves. */
+ for (int i = 0; i < count; i++) {
+ rxbd = &sc->rx_bd_chain[RX_PAGE(rx_prod)][RX_IDX(rx_prod)];
+ bce_dump_rxbd(sc, rx_prod, rxbd);
+ rx_prod = RX_CHAIN_IDX(rx_prod + 1);
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+#ifdef BCE_JUMBO_HDRSPLIT
+/****************************************************************************/
+/* Prints out the page chain. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_pg_chain(struct bce_softc *sc, u16 pg_prod, int count)
+{
+ struct rx_bd *pgbd;
+
+ /* First some info about the page chain structure. */
+ BCE_PRINTF(
+ "----------------------------"
+ " page chain "
+ "----------------------------\n");
+
+ BCE_PRINTF("page size = 0x%08X, pg chain pages = 0x%08X\n",
+ (u32) BCM_PAGE_SIZE, (u32) PG_PAGES);
+
+ BCE_PRINTF("rx_bd per page = 0x%08X, usable rx_bd per page = 0x%08X\n",
+ (u32) TOTAL_PG_BD_PER_PAGE, (u32) USABLE_PG_BD_PER_PAGE);
+
+ BCE_PRINTF("total rx_bd = 0x%08X, max_pg_bd = 0x%08X\n",
+ (u32) TOTAL_PG_BD, (u32) MAX_PG_BD);
+
+ BCE_PRINTF(
+ "----------------------------"
+ " page data "
+ "----------------------------\n");
+
+ /* Now print out the rx_bd's themselves. */
+ for (int i = 0; i < count; i++) {
+ pgbd = &sc->pg_bd_chain[PG_PAGE(pg_prod)][PG_IDX(pg_prod)];
+ bce_dump_pgbd(sc, pg_prod, pgbd);
+ pg_prod = PG_CHAIN_IDX(pg_prod + 1);
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+#endif
+
+
+#define BCE_PRINT_RX_CONS(arg) \
+if (sblk->status_rx_quick_consumer_index##arg) \
+ BCE_PRINTF("0x%04X(0x%04X) - rx_quick_consumer_index%d\n", \
+ sblk->status_rx_quick_consumer_index##arg, (u16) \
+ RX_CHAIN_IDX(sblk->status_rx_quick_consumer_index##arg), \
+ arg);
+
+
+#define BCE_PRINT_TX_CONS(arg) \
+if (sblk->status_tx_quick_consumer_index##arg) \
+ BCE_PRINTF("0x%04X(0x%04X) - tx_quick_consumer_index%d\n", \
+ sblk->status_tx_quick_consumer_index##arg, (u16) \
+ TX_CHAIN_IDX(sblk->status_tx_quick_consumer_index##arg), \
+ arg);
+
+/****************************************************************************/
+/* Prints out the status block from host memory. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_status_block(struct bce_softc *sc)
+{
+ struct status_block *sblk;
+
+ sblk = sc->status_block;
+
+ BCE_PRINTF(
+ "----------------------------"
+ " Status Block "
+ "----------------------------\n");
+
+ /* Theses indices are used for normal L2 drivers. */
+ BCE_PRINTF(" 0x%08X - attn_bits\n",
+ sblk->status_attn_bits);
+
+ BCE_PRINTF(" 0x%08X - attn_bits_ack\n",
+ sblk->status_attn_bits_ack);
+
+ BCE_PRINT_RX_CONS(0);
+ BCE_PRINT_TX_CONS(0)
+
+ BCE_PRINTF(" 0x%04X - status_idx\n", sblk->status_idx);
+
+ /* Theses indices are not used for normal L2 drivers. */
+ BCE_PRINT_RX_CONS(1); BCE_PRINT_RX_CONS(2); BCE_PRINT_RX_CONS(3);
+ BCE_PRINT_RX_CONS(4); BCE_PRINT_RX_CONS(5); BCE_PRINT_RX_CONS(6);
+ BCE_PRINT_RX_CONS(7); BCE_PRINT_RX_CONS(8); BCE_PRINT_RX_CONS(9);
+ BCE_PRINT_RX_CONS(10); BCE_PRINT_RX_CONS(11); BCE_PRINT_RX_CONS(12);
+ BCE_PRINT_RX_CONS(13); BCE_PRINT_RX_CONS(14); BCE_PRINT_RX_CONS(15);
+
+ BCE_PRINT_TX_CONS(1); BCE_PRINT_TX_CONS(2); BCE_PRINT_TX_CONS(3);
+
+ if (sblk->status_completion_producer_index ||
+ sblk->status_cmd_consumer_index)
+ BCE_PRINTF("com_prod = 0x%08X, cmd_cons = 0x%08X\n",
+ sblk->status_completion_producer_index,
+ sblk->status_cmd_consumer_index);
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+#define BCE_PRINT_64BIT_STAT(arg) \
+if (sblk->arg##_lo || sblk->arg##_hi) \
+ BCE_PRINTF("0x%08X:%08X : %s\n", sblk->arg##_hi, \
+ sblk->arg##_lo, #arg);
+
+#define BCE_PRINT_32BIT_STAT(arg) \
+if (sblk->arg) \
+ BCE_PRINTF(" 0x%08X : %s\n", \
+ sblk->arg, #arg);
+
+/****************************************************************************/
+/* Prints out the statistics block from host memory. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_stats_block(struct bce_softc *sc)
+{
+ struct statistics_block *sblk;
+
+ sblk = sc->stats_block;
+
+ BCE_PRINTF(
+ "---------------"
+ " Stats Block (All Stats Not Shown Are 0) "
+ "---------------\n");
+
+ BCE_PRINT_64BIT_STAT(stat_IfHCInOctets);
+ BCE_PRINT_64BIT_STAT(stat_IfHCInBadOctets);
+ BCE_PRINT_64BIT_STAT(stat_IfHCOutOctets);
+ BCE_PRINT_64BIT_STAT(stat_IfHCOutBadOctets);
+ BCE_PRINT_64BIT_STAT(stat_IfHCInUcastPkts);
+ BCE_PRINT_64BIT_STAT(stat_IfHCInBroadcastPkts);
+ BCE_PRINT_64BIT_STAT(stat_IfHCInMulticastPkts);
+ BCE_PRINT_64BIT_STAT(stat_IfHCOutUcastPkts);
+ BCE_PRINT_64BIT_STAT(stat_IfHCOutBroadcastPkts);
+ BCE_PRINT_64BIT_STAT(stat_IfHCOutMulticastPkts);
+ BCE_PRINT_32BIT_STAT(
+ stat_emac_tx_stat_dot3statsinternalmactransmiterrors);
+ BCE_PRINT_32BIT_STAT(stat_Dot3StatsCarrierSenseErrors);
+ BCE_PRINT_32BIT_STAT(stat_Dot3StatsFCSErrors);
+ BCE_PRINT_32BIT_STAT(stat_Dot3StatsAlignmentErrors);
+ BCE_PRINT_32BIT_STAT(stat_Dot3StatsSingleCollisionFrames);
+ BCE_PRINT_32BIT_STAT(stat_Dot3StatsMultipleCollisionFrames);
+ BCE_PRINT_32BIT_STAT(stat_Dot3StatsDeferredTransmissions);
+ BCE_PRINT_32BIT_STAT(stat_Dot3StatsExcessiveCollisions);
+ BCE_PRINT_32BIT_STAT(stat_Dot3StatsLateCollisions);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsCollisions);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsFragments);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsJabbers);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsUndersizePkts);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsOversizePkts);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsRx64Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsRx65Octetsto127Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsRx128Octetsto255Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsRx256Octetsto511Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsRx512Octetsto1023Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsRx1024Octetsto1522Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsRx1523Octetsto9022Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsTx64Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsTx65Octetsto127Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsTx128Octetsto255Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsTx256Octetsto511Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsTx512Octetsto1023Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsTx1024Octetsto1522Octets);
+ BCE_PRINT_32BIT_STAT(stat_EtherStatsPktsTx1523Octetsto9022Octets);
+ BCE_PRINT_32BIT_STAT(stat_XonPauseFramesReceived);
+ BCE_PRINT_32BIT_STAT(stat_XoffPauseFramesReceived);
+ BCE_PRINT_32BIT_STAT(stat_OutXonSent);
+ BCE_PRINT_32BIT_STAT(stat_OutXoffSent);
+ BCE_PRINT_32BIT_STAT(stat_FlowControlDone);
+ BCE_PRINT_32BIT_STAT(stat_MacControlFramesReceived);
+ BCE_PRINT_32BIT_STAT(stat_XoffStateEntered);
+ BCE_PRINT_32BIT_STAT(stat_IfInFramesL2FilterDiscards);
+ BCE_PRINT_32BIT_STAT(stat_IfInRuleCheckerDiscards);
+ BCE_PRINT_32BIT_STAT(stat_IfInFTQDiscards);
+ BCE_PRINT_32BIT_STAT(stat_IfInMBUFDiscards);
+ BCE_PRINT_32BIT_STAT(stat_IfInRuleCheckerP4Hit);
+ BCE_PRINT_32BIT_STAT(stat_CatchupInRuleCheckerDiscards);
+ BCE_PRINT_32BIT_STAT(stat_CatchupInFTQDiscards);
+ BCE_PRINT_32BIT_STAT(stat_CatchupInMBUFDiscards);
+ BCE_PRINT_32BIT_STAT(stat_CatchupInRuleCheckerP4Hit);
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out a summary of the driver state. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_driver_state(struct bce_softc *sc)
+{
+ u32 val_hi, val_lo;
+
+ BCE_PRINTF(
+ "-----------------------------"
+ " Driver State "
+ "-----------------------------\n");
+
+ val_hi = BCE_ADDR_HI(sc);
+ val_lo = BCE_ADDR_LO(sc);
+ BCE_PRINTF("0x%08X:%08X - (sc) driver softc structure virtual "
+ "address\n", val_hi, val_lo);
+
+ val_hi = BCE_ADDR_HI(sc->bce_vhandle);
+ val_lo = BCE_ADDR_LO(sc->bce_vhandle);
+ BCE_PRINTF("0x%08X:%08X - (sc->bce_vhandle) PCI BAR virtual "
+ "address\n", val_hi, val_lo);
+
+ val_hi = BCE_ADDR_HI(sc->status_block);
+ val_lo = BCE_ADDR_LO(sc->status_block);
+ BCE_PRINTF("0x%08X:%08X - (sc->status_block) status block "
+ "virtual address\n", val_hi, val_lo);
+
+ val_hi = BCE_ADDR_HI(sc->stats_block);
+ val_lo = BCE_ADDR_LO(sc->stats_block);
+ BCE_PRINTF("0x%08X:%08X - (sc->stats_block) statistics block "
+ "virtual address\n", val_hi, val_lo);
+
+ val_hi = BCE_ADDR_HI(sc->tx_bd_chain);
+ val_lo = BCE_ADDR_LO(sc->tx_bd_chain);
+ BCE_PRINTF("0x%08X:%08X - (sc->tx_bd_chain) tx_bd chain "
+ "virtual adddress\n", val_hi, val_lo);
+
+ val_hi = BCE_ADDR_HI(sc->rx_bd_chain);
+ val_lo = BCE_ADDR_LO(sc->rx_bd_chain);
+ BCE_PRINTF("0x%08X:%08X - (sc->rx_bd_chain) rx_bd chain "
+ "virtual address\n", val_hi, val_lo);
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ val_hi = BCE_ADDR_HI(sc->pg_bd_chain);
+ val_lo = BCE_ADDR_LO(sc->pg_bd_chain);
+ BCE_PRINTF("0x%08X:%08X - (sc->pg_bd_chain) page chain "
+ "virtual address\n", val_hi, val_lo);
+#endif
+
+ val_hi = BCE_ADDR_HI(sc->tx_mbuf_ptr);
+ val_lo = BCE_ADDR_LO(sc->tx_mbuf_ptr);
+ BCE_PRINTF("0x%08X:%08X - (sc->tx_mbuf_ptr) tx mbuf chain "
+ "virtual address\n", val_hi, val_lo);
+
+ val_hi = BCE_ADDR_HI(sc->rx_mbuf_ptr);
+ val_lo = BCE_ADDR_LO(sc->rx_mbuf_ptr);
+ BCE_PRINTF("0x%08X:%08X - (sc->rx_mbuf_ptr) rx mbuf chain "
+ "virtual address\n", val_hi, val_lo);
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ val_hi = BCE_ADDR_HI(sc->pg_mbuf_ptr);
+ val_lo = BCE_ADDR_LO(sc->pg_mbuf_ptr);
+ BCE_PRINTF("0x%08X:%08X - (sc->pg_mbuf_ptr) page mbuf chain "
+ "virtual address\n", val_hi, val_lo);
+#endif
+
+ BCE_PRINTF(" 0x%08X - (sc->interrupts_generated) "
+ "h/w intrs\n", sc->interrupts_generated);
+
+ BCE_PRINTF(" 0x%08X - (sc->interrupts_rx) "
+ "rx interrupts handled\n", sc->interrupts_rx);
+
+ BCE_PRINTF(" 0x%08X - (sc->interrupts_tx) "
+ "tx interrupts handled\n", sc->interrupts_tx);
+
+ BCE_PRINTF(" 0x%08X - (sc->phy_interrupts) "
+ "phy interrupts handled\n", sc->phy_interrupts);
+
+ BCE_PRINTF(" 0x%08X - (sc->last_status_idx) "
+ "status block index\n", sc->last_status_idx);
+
+ BCE_PRINTF(" 0x%04X(0x%04X) - (sc->tx_prod) tx producer "
+ "index\n", sc->tx_prod, (u16) TX_CHAIN_IDX(sc->tx_prod));
+
+ BCE_PRINTF(" 0x%04X(0x%04X) - (sc->tx_cons) tx consumer "
+ "index\n", sc->tx_cons, (u16) TX_CHAIN_IDX(sc->tx_cons));
+
+ BCE_PRINTF(" 0x%08X - (sc->tx_prod_bseq) tx producer "
+ "byte seq index\n", sc->tx_prod_bseq);
+
+ BCE_PRINTF(" 0x%08X - (sc->debug_tx_mbuf_alloc) tx "
+ "mbufs allocated\n", sc->debug_tx_mbuf_alloc);
+
+ BCE_PRINTF(" 0x%08X - (sc->used_tx_bd) used "
+ "tx_bd's\n", sc->used_tx_bd);
+
+ BCE_PRINTF("0x%08X/%08X - (sc->tx_hi_watermark) tx hi "
+ "watermark\n", sc->tx_hi_watermark, sc->max_tx_bd);
+
+ BCE_PRINTF(" 0x%04X(0x%04X) - (sc->rx_prod) rx producer "
+ "index\n", sc->rx_prod, (u16) RX_CHAIN_IDX(sc->rx_prod));
+
+ BCE_PRINTF(" 0x%04X(0x%04X) - (sc->rx_cons) rx consumer "
+ "index\n", sc->rx_cons, (u16) RX_CHAIN_IDX(sc->rx_cons));
+
+ BCE_PRINTF(" 0x%08X - (sc->rx_prod_bseq) rx producer "
+ "byte seq index\n", sc->rx_prod_bseq);
+
+ BCE_PRINTF(" 0x%08X - (sc->debug_rx_mbuf_alloc) rx "
+ "mbufs allocated\n", sc->debug_rx_mbuf_alloc);
+
+ BCE_PRINTF(" 0x%08X - (sc->free_rx_bd) free "
+ "rx_bd's\n", sc->free_rx_bd);
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ BCE_PRINTF(" 0x%04X(0x%04X) - (sc->pg_prod) page producer "
+ "index\n", sc->pg_prod, (u16) PG_CHAIN_IDX(sc->pg_prod));
+
+ BCE_PRINTF(" 0x%04X(0x%04X) - (sc->pg_cons) page consumer "
+ "index\n", sc->pg_cons, (u16) PG_CHAIN_IDX(sc->pg_cons));
+
+ BCE_PRINTF(" 0x%08X - (sc->debug_pg_mbuf_alloc) page "
+ "mbufs allocated\n", sc->debug_pg_mbuf_alloc);
+
+ BCE_PRINTF(" 0x%08X - (sc->free_pg_bd) free page "
+ "rx_bd's\n", sc->free_pg_bd);
+
+ BCE_PRINTF("0x%08X/%08X - (sc->pg_low_watermark) page low "
+ "watermark\n", sc->pg_low_watermark, sc->max_pg_bd);
+#endif
+
+ BCE_PRINTF(" 0x%08X - (sc->mbuf_alloc_failed_count) "
+ "mbuf alloc failures\n", sc->mbuf_alloc_failed_count);
+
+ BCE_PRINTF(" 0x%08X - (sc->bce_flags) "
+ "bce mac flags\n", sc->bce_flags);
+
+ BCE_PRINTF(" 0x%08X - (sc->bce_phy_flags) "
+ "bce phy flags\n", sc->bce_phy_flags);
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the hardware state through a summary of important register, */
+/* followed by a complete register dump. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_hw_state(struct bce_softc *sc)
+{
+ u32 val;
+
+ BCE_PRINTF(
+ "----------------------------"
+ " Hardware State "
+ "----------------------------\n");
+
+ BCE_PRINTF("%s - bootcode version\n", sc->bce_bc_ver);
+
+ val = REG_RD(sc, BCE_MISC_ENABLE_STATUS_BITS);
+ BCE_PRINTF("0x%08X - (0x%06X) misc_enable_status_bits\n",
+ val, BCE_MISC_ENABLE_STATUS_BITS);
+
+ val = REG_RD(sc, BCE_DMA_STATUS);
+ BCE_PRINTF("0x%08X - (0x%06X) dma_status\n",
+ val, BCE_DMA_STATUS);
+
+ val = REG_RD(sc, BCE_CTX_STATUS);
+ BCE_PRINTF("0x%08X - (0x%06X) ctx_status\n",
+ val, BCE_CTX_STATUS);
+
+ val = REG_RD(sc, BCE_EMAC_STATUS);
+ BCE_PRINTF("0x%08X - (0x%06X) emac_status\n",
+ val, BCE_EMAC_STATUS);
+
+ val = REG_RD(sc, BCE_RPM_STATUS);
+ BCE_PRINTF("0x%08X - (0x%06X) rpm_status\n",
+ val, BCE_RPM_STATUS);
+
+ /* ToDo: Create a #define for this constant. */
+ val = REG_RD(sc, 0x2004);
+ BCE_PRINTF("0x%08X - (0x%06X) rlup_status\n",
+ val, 0x2004);
+
+ val = REG_RD(sc, BCE_RV2P_STATUS);
+ BCE_PRINTF("0x%08X - (0x%06X) rv2p_status\n",
+ val, BCE_RV2P_STATUS);
+
+ /* ToDo: Create a #define for this constant. */
+ val = REG_RD(sc, 0x2c04);
+ BCE_PRINTF("0x%08X - (0x%06X) rdma_status\n",
+ val, 0x2c04);
+
+ val = REG_RD(sc, BCE_TBDR_STATUS);
+ BCE_PRINTF("0x%08X - (0x%06X) tbdr_status\n",
+ val, BCE_TBDR_STATUS);
+
+ val = REG_RD(sc, BCE_TDMA_STATUS);
+ BCE_PRINTF("0x%08X - (0x%06X) tdma_status\n",
+ val, BCE_TDMA_STATUS);
+
+ val = REG_RD(sc, BCE_HC_STATUS);
+ BCE_PRINTF("0x%08X - (0x%06X) hc_status\n",
+ val, BCE_HC_STATUS);
+
+ val = REG_RD_IND(sc, BCE_TXP_CPU_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) txp_cpu_state\n",
+ val, BCE_TXP_CPU_STATE);
+
+ val = REG_RD_IND(sc, BCE_TPAT_CPU_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) tpat_cpu_state\n",
+ val, BCE_TPAT_CPU_STATE);
+
+ val = REG_RD_IND(sc, BCE_RXP_CPU_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) rxp_cpu_state\n",
+ val, BCE_RXP_CPU_STATE);
+
+ val = REG_RD_IND(sc, BCE_COM_CPU_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) com_cpu_state\n",
+ val, BCE_COM_CPU_STATE);
+
+ val = REG_RD_IND(sc, BCE_MCP_CPU_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) mcp_cpu_state\n",
+ val, BCE_MCP_CPU_STATE);
+
+ val = REG_RD_IND(sc, BCE_CP_CPU_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) cp_cpu_state\n",
+ val, BCE_CP_CPU_STATE);
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+
+ BCE_PRINTF(
+ "----------------------------"
+ " Register Dump "
+ "----------------------------\n");
+
+ for (int i = 0x400; i < 0x8000; i += 0x10) {
+ BCE_PRINTF("0x%04X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ i, REG_RD(sc, i), REG_RD(sc, i + 0x4),
+ REG_RD(sc, i + 0x8), REG_RD(sc, i + 0xC));
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the mailbox queue registers. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_mq_regs(struct bce_softc *sc)
+{
+ BCE_PRINTF(
+ "----------------------------"
+ " MQ Regs "
+ "----------------------------\n");
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+
+ for (int i = 0x3c00; i < 0x4000; i += 0x10) {
+ BCE_PRINTF("0x%04X: 0x%08X 0x%08X 0x%08X 0x%08X\n",
+ i, REG_RD(sc, i), REG_RD(sc, i + 0x4),
+ REG_RD(sc, i + 0x8), REG_RD(sc, i + 0xC));
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the bootcode state. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_bc_state(struct bce_softc *sc)
+{
+ u32 val;
+
+ BCE_PRINTF(
+ "----------------------------"
+ " Bootcode State "
+ "----------------------------\n");
+
+ BCE_PRINTF("%s - bootcode version\n", sc->bce_bc_ver);
+
+ val = bce_shmem_rd(sc, BCE_BC_RESET_TYPE);
+ BCE_PRINTF("0x%08X - (0x%06X) reset_type\n",
+ val, BCE_BC_RESET_TYPE);
+
+ val = bce_shmem_rd(sc, BCE_BC_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) state\n",
+ val, BCE_BC_STATE);
+
+ val = bce_shmem_rd(sc, BCE_BC_STATE_CONDITION);
+ BCE_PRINTF("0x%08X - (0x%06X) condition\n",
+ val, BCE_BC_STATE_CONDITION);
+
+ val = bce_shmem_rd(sc, BCE_BC_STATE_DEBUG_CMD);
+ BCE_PRINTF("0x%08X - (0x%06X) debug_cmd\n",
+ val, BCE_BC_STATE_DEBUG_CMD);
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the TXP processor state. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_txp_state(struct bce_softc *sc, int regs)
+{
+ u32 val;
+ u32 fw_version[3];
+
+ BCE_PRINTF(
+ "----------------------------"
+ " TXP State "
+ "----------------------------\n");
+
+ for (int i = 0; i < 3; i++)
+ fw_version[i] = htonl(REG_RD_IND(sc,
+ (BCE_TXP_SCRATCH + 0x10 + i * 4)));
+ BCE_PRINTF("Firmware version - %s\n", (char *) fw_version);
+
+ val = REG_RD_IND(sc, BCE_TXP_CPU_MODE);
+ BCE_PRINTF("0x%08X - (0x%06X) txp_cpu_mode\n",
+ val, BCE_TXP_CPU_MODE);
+
+ val = REG_RD_IND(sc, BCE_TXP_CPU_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) txp_cpu_state\n",
+ val, BCE_TXP_CPU_STATE);
+
+ val = REG_RD_IND(sc, BCE_TXP_CPU_EVENT_MASK);
+ BCE_PRINTF("0x%08X - (0x%06X) txp_cpu_event_mask\n",
+ val, BCE_TXP_CPU_EVENT_MASK);
+
+ if (regs) {
+ BCE_PRINTF(
+ "----------------------------"
+ " Register Dump "
+ "----------------------------\n");
+
+ for (int i = BCE_TXP_CPU_MODE; i < 0x68000; i += 0x10) {
+ /* Skip the big blank spaces */
+ if (i < 0x454000 && i > 0x5ffff)
+ BCE_PRINTF("0x%04X: 0x%08X 0x%08X "
+ "0x%08X 0x%08X\n", i,
+ REG_RD_IND(sc, i),
+ REG_RD_IND(sc, i + 0x4),
+ REG_RD_IND(sc, i + 0x8),
+ REG_RD_IND(sc, i + 0xC));
+ }
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the RXP processor state. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_rxp_state(struct bce_softc *sc, int regs)
+{
+ u32 val;
+ u32 fw_version[3];
+
+ BCE_PRINTF(
+ "----------------------------"
+ " RXP State "
+ "----------------------------\n");
+
+ for (int i = 0; i < 3; i++)
+ fw_version[i] = htonl(REG_RD_IND(sc,
+ (BCE_RXP_SCRATCH + 0x10 + i * 4)));
+
+ BCE_PRINTF("Firmware version - %s\n", (char *) fw_version);
+
+ val = REG_RD_IND(sc, BCE_RXP_CPU_MODE);
+ BCE_PRINTF("0x%08X - (0x%06X) rxp_cpu_mode\n",
+ val, BCE_RXP_CPU_MODE);
+
+ val = REG_RD_IND(sc, BCE_RXP_CPU_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) rxp_cpu_state\n",
+ val, BCE_RXP_CPU_STATE);
+
+ val = REG_RD_IND(sc, BCE_RXP_CPU_EVENT_MASK);
+ BCE_PRINTF("0x%08X - (0x%06X) rxp_cpu_event_mask\n",
+ val, BCE_RXP_CPU_EVENT_MASK);
+
+ if (regs) {
+ BCE_PRINTF(
+ "----------------------------"
+ " Register Dump "
+ "----------------------------\n");
+
+ for (int i = BCE_RXP_CPU_MODE; i < 0xe8fff; i += 0x10) {
+ /* Skip the big blank sapces */
+ if (i < 0xc5400 && i > 0xdffff)
+ BCE_PRINTF("0x%04X: 0x%08X 0x%08X "
+ "0x%08X 0x%08X\n", i,
+ REG_RD_IND(sc, i),
+ REG_RD_IND(sc, i + 0x4),
+ REG_RD_IND(sc, i + 0x8),
+ REG_RD_IND(sc, i + 0xC));
+ }
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the TPAT processor state. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_tpat_state(struct bce_softc *sc, int regs)
+{
+ u32 val;
+ u32 fw_version[3];
+
+ BCE_PRINTF(
+ "----------------------------"
+ " TPAT State "
+ "----------------------------\n");
+
+ for (int i = 0; i < 3; i++)
+ fw_version[i] = htonl(REG_RD_IND(sc,
+ (BCE_TPAT_SCRATCH + 0x410 + i * 4)));
+
+ BCE_PRINTF("Firmware version - %s\n", (char *) fw_version);
+
+ val = REG_RD_IND(sc, BCE_TPAT_CPU_MODE);
+ BCE_PRINTF("0x%08X - (0x%06X) tpat_cpu_mode\n",
+ val, BCE_TPAT_CPU_MODE);
+
+ val = REG_RD_IND(sc, BCE_TPAT_CPU_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) tpat_cpu_state\n",
+ val, BCE_TPAT_CPU_STATE);
+
+ val = REG_RD_IND(sc, BCE_TPAT_CPU_EVENT_MASK);
+ BCE_PRINTF("0x%08X - (0x%06X) tpat_cpu_event_mask\n",
+ val, BCE_TPAT_CPU_EVENT_MASK);
+
+ if (regs) {
+ BCE_PRINTF(
+ "----------------------------"
+ " Register Dump "
+ "----------------------------\n");
+
+ for (int i = BCE_TPAT_CPU_MODE; i < 0xa3fff; i += 0x10) {
+ /* Skip the big blank spaces */
+ if (i < 0x854000 && i > 0x9ffff)
+ BCE_PRINTF("0x%04X: 0x%08X 0x%08X "
+ "0x%08X 0x%08X\n", i,
+ REG_RD_IND(sc, i),
+ REG_RD_IND(sc, i + 0x4),
+ REG_RD_IND(sc, i + 0x8),
+ REG_RD_IND(sc, i + 0xC));
+ }
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the Command Procesor (CP) state. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_cp_state(struct bce_softc *sc, int regs)
+{
+ u32 val;
+ u32 fw_version[3];
+
+ BCE_PRINTF(
+ "----------------------------"
+ " CP State "
+ "----------------------------\n");
+
+ for (int i = 0; i < 3; i++)
+ fw_version[i] = htonl(REG_RD_IND(sc,
+ (BCE_CP_SCRATCH + 0x10 + i * 4)));
+
+ BCE_PRINTF("Firmware version - %s\n", (char *) fw_version);
+
+ val = REG_RD_IND(sc, BCE_CP_CPU_MODE);
+ BCE_PRINTF("0x%08X - (0x%06X) cp_cpu_mode\n",
+ val, BCE_CP_CPU_MODE);
+
+ val = REG_RD_IND(sc, BCE_CP_CPU_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) cp_cpu_state\n",
+ val, BCE_CP_CPU_STATE);
+
+ val = REG_RD_IND(sc, BCE_CP_CPU_EVENT_MASK);
+ BCE_PRINTF("0x%08X - (0x%06X) cp_cpu_event_mask\n", val,
+ BCE_CP_CPU_EVENT_MASK);
+
+ if (regs) {
+ BCE_PRINTF(
+ "----------------------------"
+ " Register Dump "
+ "----------------------------\n");
+
+ for (int i = BCE_CP_CPU_MODE; i < 0x1aa000; i += 0x10) {
+ /* Skip the big blank spaces */
+ if (i < 0x185400 && i > 0x19ffff)
+ BCE_PRINTF("0x%04X: 0x%08X 0x%08X "
+ "0x%08X 0x%08X\n", i,
+ REG_RD_IND(sc, i),
+ REG_RD_IND(sc, i + 0x4),
+ REG_RD_IND(sc, i + 0x8),
+ REG_RD_IND(sc, i + 0xC));
+ }
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the Completion Procesor (COM) state. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_com_state(struct bce_softc *sc, int regs)
+{
+ u32 val;
+ u32 fw_version[4];
+
+ BCE_PRINTF(
+ "----------------------------"
+ " COM State "
+ "----------------------------\n");
+
+ for (int i = 0; i < 3; i++)
+ fw_version[i] = htonl(REG_RD_IND(sc,
+ (BCE_COM_SCRATCH + 0x10 + i * 4)));
+
+ BCE_PRINTF("Firmware version - %s\n", (char *) fw_version);
+
+ val = REG_RD_IND(sc, BCE_COM_CPU_MODE);
+ BCE_PRINTF("0x%08X - (0x%06X) com_cpu_mode\n",
+ val, BCE_COM_CPU_MODE);
+
+ val = REG_RD_IND(sc, BCE_COM_CPU_STATE);
+ BCE_PRINTF("0x%08X - (0x%06X) com_cpu_state\n",
+ val, BCE_COM_CPU_STATE);
+
+ val = REG_RD_IND(sc, BCE_COM_CPU_EVENT_MASK);
+ BCE_PRINTF("0x%08X - (0x%06X) com_cpu_event_mask\n", val,
+ BCE_COM_CPU_EVENT_MASK);
+
+ if (regs) {
+ BCE_PRINTF(
+ "----------------------------"
+ " Register Dump "
+ "----------------------------\n");
+
+ for (int i = BCE_COM_CPU_MODE; i < 0x1053e8; i += 0x10) {
+ BCE_PRINTF("0x%04X: 0x%08X 0x%08X "
+ "0x%08X 0x%08X\n", i,
+ REG_RD_IND(sc, i),
+ REG_RD_IND(sc, i + 0x4),
+ REG_RD_IND(sc, i + 0x8),
+ REG_RD_IND(sc, i + 0xC));
+ }
+ }
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the Receive Virtual 2 Physical (RV2P) state. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_dump_rv2p_state(struct bce_softc *sc)
+{
+ u32 val, pc1, pc2, fw_ver_high, fw_ver_low;
+
+ BCE_PRINTF(
+ "----------------------------"
+ " RV2P State "
+ "----------------------------\n");
+
+ /* Stall the RV2P processors. */
+ val = REG_RD_IND(sc, BCE_RV2P_CONFIG);
+ val |= BCE_RV2P_CONFIG_STALL_PROC1 | BCE_RV2P_CONFIG_STALL_PROC2;
+ REG_WR_IND(sc, BCE_RV2P_CONFIG, val);
+
+ /* Read the firmware version. */
+ val = 0x00000001;
+ REG_WR_IND(sc, BCE_RV2P_PROC1_ADDR_CMD, val);
+ fw_ver_low = REG_RD_IND(sc, BCE_RV2P_INSTR_LOW);
+ fw_ver_high = REG_RD_IND(sc, BCE_RV2P_INSTR_HIGH) &
+ BCE_RV2P_INSTR_HIGH_HIGH;
+ BCE_PRINTF("RV2P1 Firmware version - 0x%08X:0x%08X\n",
+ fw_ver_high, fw_ver_low);
+
+ val = 0x00000001;
+ REG_WR_IND(sc, BCE_RV2P_PROC2_ADDR_CMD, val);
+ fw_ver_low = REG_RD_IND(sc, BCE_RV2P_INSTR_LOW);
+ fw_ver_high = REG_RD_IND(sc, BCE_RV2P_INSTR_HIGH) &
+ BCE_RV2P_INSTR_HIGH_HIGH;
+ BCE_PRINTF("RV2P2 Firmware version - 0x%08X:0x%08X\n",
+ fw_ver_high, fw_ver_low);
+
+ /* Resume the RV2P processors. */
+ val = REG_RD_IND(sc, BCE_RV2P_CONFIG);
+ val &= ~(BCE_RV2P_CONFIG_STALL_PROC1 | BCE_RV2P_CONFIG_STALL_PROC2);
+ REG_WR_IND(sc, BCE_RV2P_CONFIG, val);
+
+ /* Fetch the program counter value. */
+ val = 0x68007800;
+ REG_WR_IND(sc, BCE_RV2P_DEBUG_VECT_PEEK, val);
+ val = REG_RD_IND(sc, BCE_RV2P_DEBUG_VECT_PEEK);
+ pc1 = (val & BCE_RV2P_DEBUG_VECT_PEEK_1_VALUE);
+ pc2 = (val & BCE_RV2P_DEBUG_VECT_PEEK_2_VALUE) >> 16;
+ BCE_PRINTF("0x%08X - RV2P1 program counter (1st read)\n", pc1);
+ BCE_PRINTF("0x%08X - RV2P2 program counter (1st read)\n", pc2);
+
+ /* Fetch the program counter value again to see if it is advancing. */
+ val = 0x68007800;
+ REG_WR_IND(sc, BCE_RV2P_DEBUG_VECT_PEEK, val);
+ val = REG_RD_IND(sc, BCE_RV2P_DEBUG_VECT_PEEK);
+ pc1 = (val & BCE_RV2P_DEBUG_VECT_PEEK_1_VALUE);
+ pc2 = (val & BCE_RV2P_DEBUG_VECT_PEEK_2_VALUE) >> 16;
+ BCE_PRINTF("0x%08X - RV2P1 program counter (2nd read)\n", pc1);
+ BCE_PRINTF("0x%08X - RV2P2 program counter (2nd read)\n", pc2);
+
+ BCE_PRINTF(
+ "----------------------------"
+ "----------------"
+ "----------------------------\n");
+}
+
+
+/****************************************************************************/
+/* Prints out the driver state and then enters the debugger. */
+/* */
+/* Returns: */
+/* Nothing. */
+/****************************************************************************/
+static __attribute__ ((noinline)) void
+bce_breakpoint(struct bce_softc *sc)
+{
+
+ /*
+ * Unreachable code to silence compiler warnings
+ * about unused functions.
+ */
+ if (0) {
+ bce_freeze_controller(sc);
+ bce_unfreeze_controller(sc);
+ bce_dump_enet(sc, NULL);
+ bce_dump_txbd(sc, 0, NULL);
+ bce_dump_rxbd(sc, 0, NULL);
+ bce_dump_tx_mbuf_chain(sc, 0, USABLE_TX_BD);
+ bce_dump_rx_mbuf_chain(sc, 0, USABLE_RX_BD);
+ bce_dump_l2fhdr(sc, 0, NULL);
+ bce_dump_ctx(sc, RX_CID);
+ bce_dump_ftqs(sc);
+ bce_dump_tx_chain(sc, 0, USABLE_TX_BD);
+ bce_dump_rx_bd_chain(sc, 0, USABLE_RX_BD);
+ bce_dump_status_block(sc);
+ bce_dump_stats_block(sc);
+ bce_dump_driver_state(sc);
+ bce_dump_hw_state(sc);
+ bce_dump_bc_state(sc);
+ bce_dump_txp_state(sc, 0);
+ bce_dump_rxp_state(sc, 0);
+ bce_dump_tpat_state(sc, 0);
+ bce_dump_cp_state(sc, 0);
+ bce_dump_com_state(sc, 0);
+ bce_dump_rv2p_state(sc);
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ bce_dump_pgbd(sc, 0, NULL);
+ bce_dump_pg_mbuf_chain(sc, 0, USABLE_PG_BD);
+ bce_dump_pg_chain(sc, 0, USABLE_PG_BD);
+#endif
+ }
+
+ bce_dump_status_block(sc);
+ bce_dump_driver_state(sc);
+
+ /* Call the debugger. */
+ breakpoint();
+
+ return;
+}
+#endif
+
diff --git a/freebsd/sys/dev/bce/if_bcefw.h b/freebsd/sys/dev/bce/if_bcefw.h
new file mode 100644
index 00000000..c41ff10a
--- /dev/null
+++ b/freebsd/sys/dev/bce/if_bcefw.h
@@ -0,0 +1,14594 @@
+/*-
+ * Copyright (c) 2006-2010 Broadcom Corporation
+ * David Christensen <davidch@broadcom.com>. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Broadcom Corporation nor the name of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written consent.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * This file contains firmware data derived from proprietary unpublished
+ * source code, Copyright (c) 2004, 2005, 2007, 2008 Broadcom Corporation.
+ *
+ * Permission is hereby granted for the distribution of this firmware data
+ * in hexadecimal or equivalent format, provided this copyright notice is
+ * accompanying it.
+ */
+
+/* Firmware release 4.6.17 for BCM5706 and BCM5708 (b06). */
+/* Firmware release 4.6.16 for BCM5709 and BCM5716 (b09). */
+int bce_COM_b06FwReleaseMajor = 0x1;
+int bce_COM_b06FwReleaseMinor = 0x0;
+int bce_COM_b06FwReleaseFix = 0x0;
+u32 bce_COM_b06FwStartAddr = 0x080000f8;
+u32 bce_COM_b06FwTextAddr = 0x08000000;
+int bce_COM_b06FwTextLen = 0x4df0;
+u32 bce_COM_b06FwDataAddr = 0x00000000;
+int bce_COM_b06FwDataLen = 0x0;
+u32 bce_COM_b06FwRodataAddr = 0x08004df0;
+int bce_COM_b06FwRodataLen = 0x14;
+u32 bce_COM_b06FwBssAddr = 0x08004e58;
+int bce_COM_b06FwBssLen = 0xbc;
+u32 bce_COM_b06FwSbssAddr = 0x08004e20;
+int bce_COM_b06FwSbssLen = 0x38;
+u32 bce_COM_b06FwSDataAddr = 0x00000000;
+int bce_COM_b06FwSDataLen = 0x0;
+u32 bce_COM_b06FwText[(0x4df0/4) + 1] = {
+0xa00003e, 0x0, 0x0,
+0xd, 0x636f6d34, 0x2e362e31, 0x37000000,
+0x4061102, 0x0, 0x3, 0x14,
+0x32, 0x3, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x10,
+0x136, 0xea60, 0x1, 0x0,
+0x0, 0x0, 0x8, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x2,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x10, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x10000003, 0x0, 0xd, 0xd,
+0x3c020800, 0x24424e20, 0x3c030800, 0x24634f14,
+0xac400000, 0x43202b, 0x1480fffd, 0x24420004,
+0x3c1d0800, 0x37bd7ffc, 0x3a0f021, 0x3c100800,
+0x261000f8, 0x3c1c0800, 0x279c4e20, 0xe0002bd,
+0x0, 0xd, 0x3c036010, 0x8c645000,
+0x2402ff7f, 0x3c1a8000, 0x822024, 0x3484380c,
+0x24020037, 0xac645000, 0xaf420008, 0x24020c80,
+0xaf420024, 0x3c1b8008, 0x3c060800, 0x24c607e8,
+0x3c020800, 0x24424e58, 0x2404001b, 0x2484ffff,
+0xac460000, 0x481fffd, 0x24420004, 0x3c020800,
+0x24420380, 0x3c010800, 0xac224e60, 0x3c020800,
+0x24420680, 0x3c010800, 0xac224e64, 0x3c020800,
+0x24420dcc, 0x3c010800, 0xac224ea0, 0x3c020800,
+0x24420a5c, 0x3c030800, 0x24630954, 0x3c040800,
+0x24840990, 0x3c050800, 0x24a53c70, 0x3c010800,
+0xac224ea8, 0x3c020800, 0x24420570, 0x3c010800,
+0xac264ea4, 0x3c010800, 0xac254eb4, 0x3c010800,
+0xac234ebc, 0x3c010800, 0xac224ec0, 0x3c010800,
+0xac244ec4, 0x3c010800, 0xac234e5c, 0x3c010800,
+0xac204e68, 0x3c010800, 0xac204e6c, 0x3c010800,
+0xac204e70, 0x3c010800, 0xac204e74, 0x3c010800,
+0xac204e78, 0x3c010800, 0xac204e7c, 0x3c010800,
+0xac204e80, 0x3c010800, 0xac244e84, 0x3c010800,
+0xac204e88, 0x3c010800, 0xac204e8c, 0x3c010800,
+0xac204e90, 0x3c010800, 0xac204e94, 0x3c010800,
+0xac204e98, 0x3c010800, 0xac264e9c, 0x3c010800,
+0xac204eac, 0x3c010800, 0xac254eb0, 0x3c010800,
+0xac234eb8, 0xa000707, 0x0, 0x3c030800,
+0x8c630020, 0x8f820008, 0x10430003, 0x0,
+0xa00053f, 0xaf830008, 0x3e00008, 0x0,
+0x27bdffe8, 0xafb00010, 0xafbf0014, 0x27500100,
+0x92020009, 0x1040001a, 0x24030001, 0x3c020800,
+0x8c420020, 0x10400016, 0x1821, 0xe000577,
+0x0, 0x96030008, 0x3c060800, 0x94c64ed6,
+0x8e040018, 0x8f820020, 0x9605000c, 0x31c00,
+0x661825, 0xac440000, 0xac450004, 0x24040001,
+0xac400008, 0xac40000c, 0xac400010, 0xac400014,
+0xac400018, 0xe00059c, 0xac43001c, 0x1821,
+0x8fbf0014, 0x8fb00010, 0x601021, 0x3e00008,
+0x27bd0018, 0x27bdffe8, 0xafbf0010, 0x97420108,
+0x30437000, 0x24022000, 0x1062000a, 0x28642001,
+0x54800012, 0x8fbf0010, 0x24024000, 0x10620008,
+0x24026000, 0x1062000a, 0x8fbf0010, 0xa0000fb,
+0x1021, 0x8fbf0010, 0xa0000bb, 0x27bd0018,
+0xe000409, 0x0, 0xa0000fa, 0x8fbf0010,
+0xe000fc9, 0x0, 0x8fbf0010, 0x1021,
+0x3e00008, 0x27bd0018, 0x3c020800, 0x8c420020,
+0x27bdffe8, 0x10400027, 0xafbf0010, 0xe000577,
+0x0, 0x97420108, 0x9743010c, 0x8f850020,
+0x3042003e, 0x3063ffff, 0x21400, 0x431025,
+0xaca20000, 0x8f420100, 0x3c060800, 0x94c64ed6,
+0x8fbf0010, 0xaca20004, 0x97430116, 0x9744010e,
+0x3c022000, 0x31c00, 0x3084ffff, 0x641825,
+0xaca30008, 0xc23025, 0x97420110, 0x97430112,
+0x24040001, 0x21400, 0x3063ffff, 0x431025,
+0xaca2000c, 0x97420114, 0x27bd0018, 0x3042ffff,
+0xaca20010, 0xaca00014, 0xaca00018, 0xa00059c,
+0xaca6001c, 0x8fbf0010, 0x3e00008, 0x27bd0018,
+0x3c020800, 0x8c420020, 0x27bdffe8, 0x1040002a,
+0xafbf0010, 0xe000577, 0x0, 0x97420108,
+0x9743010c, 0x8f850020, 0x3042003e, 0x3063ffff,
+0x21400, 0x431025, 0xaca20000, 0x8f420100,
+0x3c060800, 0x94c64ed6, 0x8fbf0010, 0xaca20004,
+0x97430116, 0x9744010e, 0x3c022000, 0x31c00,
+0x3084ffff, 0x641825, 0xaca30008, 0xc23025,
+0x97420110, 0x97430112, 0x24040001, 0x21400,
+0x3063ffff, 0x431025, 0xaca2000c, 0x97420114,
+0x27bd0018, 0x3042ffff, 0xaca20010, 0x8f420118,
+0xaca20014, 0x9342010b, 0x304200ff, 0xaca20018,
+0xa00059c, 0xaca6001c, 0x8fbf0010, 0x3e00008,
+0x27bd0018, 0x27bdffe0, 0xafb00010, 0xafbf0018,
+0xafb10014, 0x27500100, 0x9203000b, 0x2402001a,
+0x96110008, 0x14620035, 0x2021, 0x32220001,
+0x10400009, 0x0, 0x8e020000, 0x96030014,
+0x211c2, 0x21040, 0x5a1021, 0xa4430080,
+0xa000179, 0x32220002, 0xe00012b, 0x0,
+0x3c020800, 0x8c420040, 0x24420001, 0x3c010800,
+0xac220040, 0x32220002, 0x2202b, 0x3c020800,
+0x8c420044, 0x32230004, 0x24420001, 0x3c010800,
+0xac220044, 0x1060001a, 0x8fbf0018, 0x8f4202b8,
+0x4410008, 0x24040001, 0x3c020800, 0x8c420060,
+0x24420001, 0x3c010800, 0xac220060, 0xa00019c,
+0x8fb10014, 0x8e020020, 0x96030016, 0x2021,
+0xaf420280, 0x8e020004, 0xa7430284, 0xaf420288,
+0x3c021000, 0xaf4202b8, 0x3c020800, 0x8c42005c,
+0x24420001, 0x3c010800, 0xac22005c, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x801021, 0x3e00008,
+0x27bd0020, 0x27bdffe0, 0xafb00010, 0xafbf0018,
+0xafb10014, 0x27500100, 0x9203000b, 0x24020003,
+0x96110008, 0x14620048, 0x2021, 0x32220001,
+0x10400008, 0x0, 0x8e020000, 0x96030014,
+0x211c2, 0x21040, 0x5a1021, 0xa0001bb,
+0xa4430080, 0xe0000fd, 0x0, 0x3c020800,
+0x8c420040, 0x24420001, 0x3c010800, 0xac220040,
+0x3c020800, 0x8c420044, 0x32230004, 0x24420001,
+0x3c010800, 0xac220044, 0x1060001a, 0x32220002,
+0x8f4202b8, 0x4430008, 0x8e020020, 0x3c020800,
+0x8c420060, 0x24420001, 0x3c010800, 0xac220060,
+0xa0001f1, 0x24040001, 0x96030016, 0x2021,
+0xaf420280, 0x8e020004, 0xa7430284, 0xaf420288,
+0x3c021000, 0xaf4202b8, 0x3c020800, 0x8c42005c,
+0x24420001, 0x3c010800, 0xac22005c, 0xa0001f2,
+0x8fbf0018, 0x10400014, 0x2021, 0x8f430104,
+0x3c026020, 0xac430014, 0x8c420004, 0x240301fe,
+0x304203ff, 0x1443000c, 0x2021, 0x8f420100,
+0x219c2, 0x2462fffc, 0x2c420008, 0x10400003,
+0x24040002, 0x2462fffd, 0x442004, 0x3c026000,
+0xac446914, 0x2021, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x801021, 0x3e00008, 0x27bd0020,
+0x93620000, 0x3e00008, 0xaf800004, 0x3e00008,
+0x1021, 0x27bdffe8, 0xafbf0014, 0xafb00010,
+0x8f420100, 0xaf420020, 0x8f420104, 0xaf4200a8,
+0x9350010b, 0xe0001f7, 0x321000ff, 0x3c020800,
+0x24424e58, 0x101880, 0x2e10001c, 0x16000004,
+0x621021, 0xe0001fa, 0xa000212, 0x0,
+0x8c420000, 0x40f809, 0x0, 0x10400005,
+0x3c024000, 0x8f430104, 0x3c026020, 0xac430014,
+0x3c024000, 0xaf420138, 0x3c020800, 0x8c420034,
+0x8fbf0014, 0x8fb00010, 0x24420001, 0x3c010800,
+0xac220034, 0x3e00008, 0x27bd0018, 0x27bdffe8,
+0xafbf0010, 0x8f420140, 0xe0001f7, 0xaf420020,
+0xe000393, 0x0, 0x3c024000, 0xaf420178,
+0x3c030800, 0x24630038, 0x8c620000, 0x8fbf0010,
+0x27bd0018, 0x24420001, 0x3e00008, 0xac620000,
+0x27bdffe8, 0xafbf0010, 0x8f420180, 0xe0001f7,
+0xaf420020, 0x8f430180, 0x24020f00, 0x14620005,
+0x0, 0x8f420188, 0xa742009c, 0xa00024c,
+0x3c024000, 0x93620000, 0x24030050, 0x304200ff,
+0x14430008, 0x3c024000, 0xe000377, 0x0,
+0x14400004, 0x3c024000, 0xe000e55, 0x0,
+0x3c024000, 0xaf4201b8, 0x3c020800, 0x8c42003c,
+0x8fbf0010, 0x24420001, 0x3c010800, 0xac22003c,
+0x3e00008, 0x27bd0018, 0x3e00008, 0x1021,
+0x8f430104, 0x8f820010, 0x10430008, 0x0,
+0x3c020800, 0x8c420084, 0x24420001, 0x3c010800,
+0xac220084, 0x8f420104, 0xaf820010, 0x3e00008,
+0x0, 0x27bdffe8, 0xafbf0010, 0x27440100,
+0x94820008, 0x30430002, 0x30420004, 0x1040001b,
+0x0, 0x8f4202b8, 0x4410008, 0x24050001,
+0x3c020800, 0x8c420060, 0x24420001, 0x3c010800,
+0xac220060, 0xa000294, 0x8fbf0010, 0x8c820020,
+0x94830016, 0x2821, 0xaf420280, 0x8c820004,
+0xa7430284, 0xaf420288, 0x3c021000, 0xaf4202b8,
+0x3c020800, 0x8c42005c, 0x24420001, 0x3c010800,
+0xac22005c, 0xa000294, 0x8fbf0010, 0x10600008,
+0x24050001, 0x3c020800, 0x8c420084, 0x24420001,
+0x3c010800, 0xac220084, 0xa000294, 0x8fbf0010,
+0x8f440100, 0xe000257, 0x0, 0x2821,
+0x8fbf0010, 0xa01021, 0x3e00008, 0x27bd0018,
+0x3c020800, 0x8c420088, 0x27430100, 0x9465000c,
+0x24420001, 0x3c010800, 0xac220088, 0x8c640018,
+0x3451021, 0x90454000, 0xaf440038, 0x8c62001c,
+0x2403fff8, 0x52e00, 0x431024, 0x34420004,
+0xaf42003c, 0x3c020005, 0xaf420030, 0x0,
+0x0, 0x0, 0xaf450404, 0x0,
+0x0, 0x0, 0x3c020006, 0x34420001,
+0xaf420030, 0x0, 0x0, 0x0,
+0x8f420000, 0x30420010, 0x1040fffd, 0x1021,
+0x3e00008, 0x0, 0x27bdffe0, 0xafbf0018,
+0xafb10014, 0xe000055, 0xafb00010, 0x3c028000,
+0x34420070, 0x8c420000, 0xaf820014, 0xe0000b2,
+0x0, 0x3c028000, 0x34460070, 0x3c030800,
+0x8c6300a0, 0x3c020800, 0x8c4200a4, 0x10430004,
+0x8f840014, 0x3c010800, 0xac2300a4, 0xa743009e,
+0x8cca0000, 0x3c030800, 0x8c6300bc, 0x3c020800,
+0x8c4200b8, 0x1442023, 0x641821, 0x4021,
+0x64202b, 0x481021, 0x441021, 0x3c010800,
+0xac2300bc, 0x3c010800, 0xac2200b8, 0x8f510000,
+0x32220007, 0x1040ffe1, 0xaf8a0014, 0x8cc60000,
+0x3c050800, 0x8ca500bc, 0x3c040800, 0x8c8400b8,
+0xca3023, 0xa62821, 0x1021, 0xa6302b,
+0x822021, 0x862021, 0x32270001, 0x3c010800,
+0xac2500bc, 0x3c010800, 0xac2400b8, 0x10e00021,
+0x32220002, 0x8f420100, 0xaf420020, 0x8f420104,
+0xaf4200a8, 0x9342010b, 0xe0001f7, 0x305000ff,
+0x2e02001c, 0x54400004, 0x101080, 0xe0001fa,
+0xa00030b, 0x0, 0x3c030800, 0x24634e58,
+0x431021, 0x8c420000, 0x40f809, 0x0,
+0x10400005, 0x3c024000, 0x8f430104, 0x3c026020,
+0xac430014, 0x3c024000, 0xaf420138, 0x3c020800,
+0x8c420034, 0x24420001, 0x3c010800, 0xac220034,
+0x32220002, 0x1040000e, 0x32220004, 0x8f420140,
+0xe0001f7, 0xaf420020, 0xe000393, 0x0,
+0x3c024000, 0xaf420178, 0x3c020800, 0x8c420038,
+0x24420001, 0x3c010800, 0xac220038, 0x32220004,
+0x1040ff9b, 0x3c028000, 0x8f420180, 0xe0001f7,
+0xaf420020, 0x8f430180, 0x24020f00, 0x14620005,
+0x0, 0x8f420188, 0xa742009c, 0xa000340,
+0x3c024000, 0x93620000, 0x24030050, 0x304200ff,
+0x14430008, 0x3c024000, 0xe000377, 0x0,
+0x54400004, 0x3c024000, 0xe000e55, 0x0,
+0x3c024000, 0xaf4201b8, 0x3c020800, 0x8c42003c,
+0x24420001, 0x3c010800, 0xac22003c, 0xa0002c3,
+0x3c028000, 0x3c029000, 0x34420001, 0x822025,
+0xaf440020, 0x8f420020, 0x440fffe, 0x0,
+0x3e00008, 0x0, 0x3c028000, 0x34420001,
+0x822025, 0x3e00008, 0xaf440020, 0x27bdffe0,
+0xafb10014, 0xafb00010, 0x808821, 0xafbf0018,
+0xe000348, 0x30b000ff, 0x9362007d, 0x2202021,
+0x2028025, 0xa370007d, 0x8f700074, 0x3c028000,
+0xe000351, 0x2028024, 0x16000009, 0x8fbf0018,
+0x8f4201f8, 0x440fffe, 0x24020002, 0xaf5101c0,
+0xa34201c4, 0x3c021000, 0xaf4201f8, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x3e00008, 0x27bd0020,
+0x27bdffd0, 0x1021, 0x3e00008, 0x27bd0030,
+0x27bdffe8, 0xafbf0010, 0x97420184, 0x30420200,
+0x10400005, 0x2021, 0xe00108c, 0x0,
+0xa00038b, 0x24040001, 0x8f420188, 0x4400009,
+0x8fbf0010, 0x8f420188, 0x3c03ff00, 0x431024,
+0x3c030400, 0x14430003, 0x24040001, 0x9362003e,
+0x8fbf0010, 0x801021, 0x3e00008, 0x27bd0018,
+0xa3600022, 0x8f440140, 0xa000356, 0x24050001,
+0x27bdffe8, 0xafbf0014, 0xafb00010, 0x93620000,
+0x24030020, 0x304200ff, 0x1043000b, 0x0,
+0x93620000, 0x24030030, 0x304200ff, 0x10430006,
+0x0, 0x93620000, 0x24030050, 0x304200ff,
+0x14430062, 0x8fbf0014, 0x93420148, 0x304200ff,
+0x2443ffff, 0x2c620005, 0x1040005c, 0x8fbf0014,
+0x31080, 0x3c030800, 0x24634df0, 0x431021,
+0x8c420000, 0x400008, 0x0, 0xe000348,
+0x8f440140, 0x8f70000c, 0x8f420144, 0x16020002,
+0x24020001, 0xaf62000c, 0xe000351, 0x8f440140,
+0x8f420144, 0x14500004, 0x8fbf0014, 0x8fb00010,
+0xa001000, 0x27bd0018, 0x8f62000c, 0xa0003ff,
+0x0, 0x97620010, 0x8f430144, 0x3042ffff,
+0x14620009, 0x0, 0x24020001, 0xa7620010,
+0x8f420140, 0xaf420200, 0x3c021000, 0xaf420238,
+0xa000406, 0x8fbf0014, 0x97620010, 0xa0003ff,
+0x0, 0xe000348, 0x8f440140, 0x97620012,
+0x8f430144, 0x3050ffff, 0x16030002, 0x24020001,
+0xa7620012, 0xe000351, 0x8f440140, 0x8f420144,
+0x16020004, 0x8fbf0014, 0x8fb00010, 0xa00038f,
+0x27bd0018, 0x97620012, 0xa0003ff, 0x0,
+0x97620014, 0x8f430144, 0x3042ffff, 0x14620006,
+0x8fbf0014, 0x24020001, 0x8fb00010, 0xa7620014,
+0xa00132c, 0x27bd0018, 0x97620014, 0xa0003ff,
+0x0, 0x97620016, 0x8f430144, 0x3042ffff,
+0x14620006, 0x24020001, 0x8fbf0014, 0x8fb00010,
+0xa7620016, 0xa000bf3, 0x27bd0018, 0x97620016,
+0x14400006, 0x8fbf0014, 0x3c020800, 0x8c420070,
+0x24420001, 0x3c010800, 0xac220070, 0x8fb00010,
+0x3e00008, 0x27bd0018, 0x27bdffe8, 0xafbf0014,
+0xafb00010, 0x93430109, 0x2402001f, 0x8f500100,
+0x106200a5, 0x28620020, 0x10400018, 0x24020038,
+0x2862000a, 0x1040000c, 0x2402000b, 0x28620008,
+0x1040002c, 0x0, 0x46000e7, 0x28620002,
+0x14400028, 0x24020006, 0x10620026, 0x8fbf0014,
+0xa000503, 0x8fb00010, 0x1062005e, 0x2862000b,
+0x144000de, 0x8fbf0014, 0x2402000e, 0x10620073,
+0x8fb00010, 0xa000503, 0x0, 0x106200c2,
+0x28620039, 0x1040000a, 0x24020080, 0x24020036,
+0x106200cc, 0x28620037, 0x104000b6, 0x24020035,
+0x106200c3, 0x8fbf0014, 0xa000503, 0x8fb00010,
+0x1062002b, 0x28620081, 0x10400006, 0x240200c8,
+0x24020039, 0x106200b6, 0x8fbf0014, 0xa000503,
+0x8fb00010, 0x10620099, 0x8fbf0014, 0xa000503,
+0x8fb00010, 0x3c020800, 0x8c420020, 0x104000bb,
+0x8fbf0014, 0xe000577, 0x0, 0x8f420100,
+0x8f830020, 0x9745010c, 0x97460108, 0xac620000,
+0x8f420104, 0x3c040800, 0x94844ed6, 0x52c00,
+0xac620004, 0x8f420118, 0x63400, 0xc43025,
+0xac620008, 0x8f42011c, 0x24040001, 0xac62000c,
+0x9342010a, 0xa22825, 0xac650010, 0xac600014,
+0xac600018, 0xac66001c, 0xa0004d7, 0x8fbf0014,
+0x3c020800, 0x8c420020, 0x1040009c, 0x8fbf0014,
+0xe000577, 0x0, 0x97440108, 0x3c030800,
+0x94634ed6, 0x9745010c, 0x42202, 0x9746010e,
+0x8f820020, 0x42600, 0x832025, 0x52c00,
+0x3c030080, 0xa62825, 0x832025, 0xac400000,
+0xac400004, 0xac400008, 0xac40000c, 0xac450010,
+0xac400014, 0xac400018, 0xac44001c, 0xa0004d6,
+0x24040001, 0x9742010c, 0x14400015, 0x0,
+0x93620005, 0x30420010, 0x14400011, 0x0,
+0xe000348, 0x2002021, 0x93620005, 0x2002021,
+0x34420010, 0xe000351, 0xa3620005, 0x93620000,
+0x24030020, 0x304200ff, 0x1043006f, 0x2002021,
+0x8fbf0014, 0x8fb00010, 0xa0010a2, 0x27bd0018,
+0xd, 0xa000502, 0x8fbf0014, 0x3c020800,
+0x8c420020, 0x10400065, 0x8fbf0014, 0xe000577,
+0x0, 0x8f420104, 0x8f830020, 0x9744010c,
+0x3c050800, 0x94a54ed6, 0xac620000, 0x9762002c,
+0x42400, 0x3042ffff, 0x822025, 0x3c02400e,
+0xa22825, 0xac640004, 0xac600008, 0xac60000c,
+0xac600010, 0xac600014, 0xac600018, 0xac65001c,
+0xa0004d6, 0x24040001, 0xe000348, 0x2002021,
+0xa7600008, 0xe000351, 0x2002021, 0x2002021,
+0xe000356, 0x24050001, 0x3c020800, 0x8c420020,
+0x10400042, 0x8fbf0014, 0xe000577, 0x0,
+0x9742010c, 0x8f830020, 0x3c050800, 0x94a54ed6,
+0x21400, 0xac700000, 0xac620004, 0xac600008,
+0x8f64004c, 0x3c02401f, 0xa22825, 0xac64000c,
+0x8f620050, 0x24040001, 0xac620010, 0x8f620054,
+0xac620014, 0xac600018, 0xac65001c, 0x8fbf0014,
+0x8fb00010, 0xa00059c, 0x27bd0018, 0x93620000,
+0x24030020, 0x304200ff, 0x10430024, 0x8fbf0014,
+0xe000fea, 0x2002021, 0x10400020, 0x8fbf0014,
+0x2002021, 0x8fb00010, 0x2821, 0xa000356,
+0x27bd0018, 0x2002021, 0x8fbf0014, 0x8fb00010,
+0xa000664, 0x27bd0018, 0x9745010c, 0x2002021,
+0x8fbf0014, 0x8fb00010, 0xa000684, 0x27bd0018,
+0x2002021, 0x8fb00010, 0xa0006a9, 0x27bd0018,
+0x9345010d, 0x2002021, 0x8fb00010, 0xa0006f3,
+0x27bd0018, 0x2002021, 0x8fbf0014, 0x8fb00010,
+0xa0006cf, 0x27bd0018, 0x8fbf0014, 0x8fb00010,
+0x3e00008, 0x27bd0018, 0x8f420278, 0x440fffe,
+0x34820080, 0xaf420240, 0x24020002, 0xa3420244,
+0x3c021000, 0x3e00008, 0xaf420278, 0x3c040800,
+0x94844ee2, 0x3c020800, 0x8c424eec, 0x3083ffff,
+0x318c0, 0x431021, 0xaf42003c, 0x3c020800,
+0x8c424ee8, 0xaf420038, 0x3c020050, 0x34420008,
+0xaf420030, 0x0, 0x0, 0x0,
+0x8f420000, 0x30420020, 0x1040fffd, 0x0,
+0x8f420400, 0x3c010800, 0xac224ed8, 0x8f420404,
+0x3c010800, 0xac224edc, 0x3c020020, 0xaf420030,
+0x0, 0x3c020800, 0x94424ee0, 0x3c030800,
+0x94634ee4, 0x3c050800, 0x94a54ee6, 0x24840001,
+0x431021, 0x3083ffff, 0x3c010800, 0xa4224ee0,
+0x3c010800, 0xa4244ee2, 0x14650003, 0x0,
+0x3c010800, 0xa4204ee2, 0x3e00008, 0x0,
+0x3c05000a, 0x27bdffe8, 0x3452821, 0x3c040800,
+0x24844ec8, 0xafbf0010, 0xe000601, 0x2406000a,
+0x3c020800, 0x94424eca, 0x3c030800, 0x94634ee6,
+0x3042000f, 0x24420003, 0x431804, 0x24027fff,
+0x43102b, 0x10400002, 0xaf83001c, 0xd,
+0xe00050e, 0x0, 0x3c020800, 0x94424ed2,
+0x8fbf0010, 0x27bd0018, 0x3e00008, 0xa74200a2,
+0x3c02000a, 0x3421021, 0x94430006, 0x3c020800,
+0x94424ed2, 0x3c010800, 0xa4234ece, 0x431023,
+0x8f83001c, 0x21400, 0x21403, 0x43102b,
+0x3e00008, 0x38420001, 0x27bdffe8, 0xafbf0010,
+0x3c02000a, 0x3421021, 0x94420006, 0x3c010800,
+0xa4224ece, 0xe00055b, 0x0, 0x5440fff9,
+0x3c02000a, 0x8fbf0010, 0x3e00008, 0x27bd0018,
+0x27bdffe8, 0xafbf0010, 0xe00055b, 0x0,
+0x10400003, 0x0, 0xe000569, 0x0,
+0x3c020800, 0x8c424ed8, 0x8fbf0010, 0x27430400,
+0xaf420038, 0x3c020800, 0x8c424edc, 0x27bd0018,
+0xaf830020, 0xaf42003c, 0x3c020005, 0xaf420030,
+0x3e00008, 0xaf800018, 0x8f820018, 0x3c030006,
+0x21140, 0x431025, 0xaf420030, 0x0,
+0x0, 0x0, 0x8f420000, 0x30420010,
+0x1040fffd, 0x27420400, 0xaf820020, 0x3e00008,
+0xaf800018, 0x3c060800, 0x8cc64edc, 0x8f850018,
+0x8f830020, 0x3c020800, 0x94424ed2, 0x27bdffe0,
+0x24a50001, 0x24630020, 0x24420001, 0x24c70020,
+0xafb10014, 0xafb00010, 0xafbf0018, 0xaf850018,
+0xaf830020, 0x3c010800, 0xa4224ed2, 0x309000ff,
+0x3c010800, 0xac274edc, 0x4c10008, 0x8821,
+0x4e00006, 0x0, 0x3c020800, 0x8c424ed8,
+0x24420001, 0x3c010800, 0xac224ed8, 0x3c020800,
+0x94424ed2, 0x3c030800, 0x94634ee0, 0x10202b,
+0x431026, 0x2c420001, 0x441025, 0x14400004,
+0x8f830018, 0x24020010, 0x1462000f, 0x0,
+0xe00058d, 0x24110001, 0x3c030800, 0x94634ed2,
+0x3c020800, 0x94424ee0, 0x14620003, 0x0,
+0xe00050e, 0x0, 0x16000003, 0x0,
+0xe000577, 0x0, 0x3c030800, 0x94634ed6,
+0x3c020800, 0x94424ed4, 0x24630001, 0x3064ffff,
+0x3c010800, 0xa4234ed6, 0x14820003, 0x0,
+0x3c010800, 0xa4204ed6, 0x12000006, 0x0,
+0x3c020800, 0x94424ed2, 0xa74200a2, 0xa0005ef,
+0x2201021, 0xe00055b, 0x0, 0x10400004,
+0x2201021, 0xe000569, 0x0, 0x2201021,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0020, 0x3084ffff, 0x30a5ffff, 0x1821,
+0x10800007, 0x0, 0x30820001, 0x10400002,
+0x42042, 0x651821, 0xa0005f7, 0x52840,
+0x3e00008, 0x601021, 0x10c00006, 0x24c6ffff,
+0x8ca20000, 0x24a50004, 0xac820000, 0xa000601,
+0x24840004, 0x3e00008, 0x0, 0x10a00008,
+0x24a3ffff, 0xac860000, 0x0, 0x0,
+0x2402ffff, 0x2463ffff, 0x1462fffa, 0x24840004,
+0x3e00008, 0x0, 0x24020001, 0xaf62000c,
+0xa7620010, 0xa7620012, 0xa7620014, 0x3e00008,
+0xa7620016, 0x3082007f, 0x3421021, 0x3c08000e,
+0x481821, 0x3c020800, 0x8c420020, 0x27bdffd8,
+0x2407ff80, 0xafb3001c, 0xafb20018, 0xafb10014,
+0xafb00010, 0xafbf0020, 0x808021, 0x30b100ff,
+0x872024, 0x30d200ff, 0x1040002f, 0x9821,
+0xaf44002c, 0x90620000, 0x24030050, 0x304200ff,
+0x1443000e, 0x0, 0x3c020800, 0x8c4200e0,
+0x2021021, 0x471024, 0xaf42002c, 0x3c020800,
+0x8c4200e0, 0x2021021, 0x3042007f, 0x3421021,
+0x481021, 0x944200d4, 0x3053ffff, 0xe000577,
+0x0, 0x3c020800, 0x94424ed6, 0x8f830020,
+0x113400, 0xc23025, 0x122c00, 0x3c024000,
+0xc23025, 0x34a50001, 0xac700000, 0x8fbf0020,
+0xac600004, 0x8fb20018, 0xac730008, 0x8fb10014,
+0xac60000c, 0x8fb3001c, 0xac650010, 0x8fb00010,
+0xac600014, 0x24040001, 0xac600018, 0x27bd0028,
+0xa00059c, 0xac66001c, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0028, 0x9343010f, 0x24020010, 0x1062000e,
+0x28650011, 0x10a00007, 0x24020012, 0x24020008,
+0x2405003a, 0x10620006, 0x3021, 0x3e00008,
+0x0, 0x24050035, 0x1462fffc, 0x3021,
+0xa00061c, 0x0, 0x8f420074, 0x24420fa0,
+0x3e00008, 0xaf62000c, 0x27bdffe8, 0xafbf0010,
+0xe000356, 0x24050001, 0x8fbf0010, 0x24020001,
+0xa7620012, 0x27bd0018, 0x24020001, 0x3e00008,
+0xa3600022, 0x27bdffe0, 0xafb10014, 0xafb00010,
+0xafbf0018, 0x30b1ffff, 0xe000348, 0x808021,
+0x9362003f, 0x24030004, 0x304200ff, 0x1443000c,
+0x2002021, 0x12200008, 0x2402000a, 0xe000615,
+0x0, 0x93620005, 0x2403fffe, 0x431024,
+0xa3620005, 0x24020012, 0xa362003f, 0x2002021,
+0xe000351, 0xa3600081, 0x16200003, 0x2002021,
+0xe000679, 0x0, 0x2002021, 0x322600ff,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x24050038,
+0xa00061c, 0x27bd0020, 0x27bdffe0, 0xafbf001c,
+0xafb20018, 0xafb10014, 0xafb00010, 0xe000348,
+0x808021, 0xe000615, 0x0, 0x9362003f,
+0x24120018, 0x305100ff, 0x12320003, 0x2002021,
+0x24020012, 0xa362003f, 0x93620005, 0x2403fffe,
+0x431024, 0xe000351, 0xa3620005, 0x2002021,
+0x24050020, 0x16320007, 0x3021, 0x8fbf001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0xa000356,
+0x27bd0020, 0x8fbf001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x24050039, 0xa00061c, 0x27bd0020,
+0x27bdffe8, 0xafb00010, 0xafbf0014, 0x9742010c,
+0x24050036, 0x808021, 0x14400010, 0x304600ff,
+0xe000348, 0x0, 0x24020012, 0xa362003f,
+0x93620005, 0x34420010, 0xe000615, 0xa3620005,
+0xe000351, 0x2002021, 0x2002021, 0xe000356,
+0x24050020, 0xa0006e8, 0x0, 0xe00061c,
+0x0, 0xe000348, 0x2002021, 0x93620023,
+0x2403ff9f, 0x2002021, 0x431024, 0x8fbf0014,
+0x8fb00010, 0xa3620023, 0xa000351, 0x27bd0018,
+0x27bdffe0, 0xafbf0018, 0xafb10014, 0xafb00010,
+0x30b100ff, 0xe000348, 0x808021, 0x24020012,
+0xe000615, 0xa362003f, 0xe000351, 0x2002021,
+0x2002021, 0x2203021, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x24050035, 0xa00061c, 0x27bd0020,
+0xa380002c, 0x3e00008, 0xa380002d, 0x8f420278,
+0x440fffe, 0x8f820034, 0xaf420240, 0x24020002,
+0xa3420244, 0x3c021000, 0x3e00008, 0xaf420278,
+0x3c036000, 0x8c625400, 0x30420008, 0x1440fffd,
+0x0, 0x8c625408, 0xaf820000, 0x24020052,
+0xac605408, 0xac645430, 0xac625434, 0x24020008,
+0x3e00008, 0xac625400, 0x3c026000, 0x8c425400,
+0x30420008, 0x10400005, 0x3c036000, 0x8c625400,
+0x30420008, 0x1440fffd, 0x0, 0x8f830000,
+0x3c026000, 0x3e00008, 0xac435408, 0x90a30000,
+0x24020005, 0x804021, 0x3063003f, 0x4821,
+0x14620005, 0x5021, 0x90a2001c, 0x94a3001e,
+0x304900ff, 0x306affff, 0xad00000c, 0xad000010,
+0xad000024, 0x95020014, 0x8d05001c, 0x8d040018,
+0x3042ffff, 0x491023, 0x21100, 0x237c3,
+0x403821, 0x862023, 0xa2102b, 0x822023,
+0xa72823, 0xad05001c, 0xad040018, 0xa5090014,
+0xa5090020, 0xa50a0016, 0x3e00008, 0xa50a0022,
+0x8f4201f8, 0x440fffe, 0x24020002, 0xaf4401c0,
+0xa34201c4, 0x3c021000, 0x3e00008, 0xaf4201f8,
+0x3c020800, 0x8c4200b4, 0x27bdffe8, 0xafbf0014,
+0x24420001, 0xafb00010, 0x3c010800, 0xac2200b4,
+0x8f430024, 0x3c02001f, 0x30aa00ff, 0x3442ff80,
+0x30d800ff, 0x628024, 0x80f821, 0x30ef00ff,
+0x1158003b, 0x1405821, 0x240cff80, 0x3c19000a,
+0x3163007f, 0x310c0, 0x31940, 0x621821,
+0x3c020800, 0x8c4200dc, 0x25680001, 0x310d007f,
+0x3e21021, 0x431021, 0x3043007f, 0x3431821,
+0x4c1024, 0x794821, 0xaf420024, 0x8d220024,
+0x16c1824, 0x6c7026, 0xad22000c, 0x8d220024,
+0x310800ff, 0xad220010, 0x95220014, 0x95230020,
+0x8d27001c, 0x3042ffff, 0x3063ffff, 0x8d260018,
+0x431023, 0x21100, 0x227c3, 0x402821,
+0xc43023, 0xe2102b, 0xc23023, 0xe53823,
+0xad27001c, 0xad260018, 0x95220020, 0xa5220014,
+0x95220022, 0x154b000a, 0xa5220016, 0x8d230024,
+0x8d220008, 0x25460001, 0x31450080, 0x14620004,
+0x30c4007f, 0x108f0002, 0x38aa0080, 0xc05021,
+0x51af0001, 0x31c800ff, 0x1518ffc9, 0x1005821,
+0x8f840034, 0x3082007f, 0x3421821, 0x3c02000a,
+0x621821, 0x2402ff80, 0x822024, 0xaf440024,
+0xa06a0079, 0xa06a0083, 0x8c620050, 0x8f840034,
+0xac620070, 0x8c650074, 0x3c027fff, 0x3442ffff,
+0xa22824, 0xe00074f, 0xac650074, 0xaf500024,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x27bdffc0, 0xafbe0038, 0xafb70034, 0xafb5002c,
+0xafb20020, 0xafb1001c, 0xafb00018, 0xafbf003c,
+0xafb60030, 0xafb40028, 0xafb30024, 0x8f450024,
+0x8f460028, 0x8f43002c, 0x3c02001f, 0x3442ff80,
+0x621824, 0xc23024, 0x80a821, 0xafa30014,
+0xa2f024, 0xe000713, 0xafa60010, 0x3c020800,
+0x8c4200e0, 0x2410ff80, 0x3608821, 0x2a21021,
+0x501024, 0xaf420024, 0x3c020800, 0x8c4200e0,
+0x2a21021, 0x3042007f, 0x3421821, 0x3c02000a,
+0x629021, 0x924200d2, 0x93630084, 0x305700ff,
+0x306300ff, 0x24020001, 0x10620034, 0x3602021,
+0x24020002, 0x14620036, 0x0, 0xe0012f8,
+0x2402821, 0x92230083, 0x92220083, 0x3063007f,
+0x3042007f, 0x210c0, 0x31940, 0x621821,
+0x3c020800, 0x8c4200dc, 0x2a21021, 0x433821,
+0xf01024, 0xaf420028, 0x92250078, 0x92240083,
+0x30e2007f, 0x3421821, 0x3c02000c, 0x14850007,
+0x628021, 0x2402ffff, 0xa24200f1, 0x2402ffff,
+0xa64200f2, 0xa00080b, 0x2402ffff, 0x96020020,
+0xa24200f1, 0x96020022, 0xa64200f2, 0x8e020024,
+0xae4200f4, 0x92220083, 0xa24200f0, 0x8e4200c8,
+0xae4200fc, 0x8e4200c4, 0xae4200f8, 0x8e220050,
+0xae420100, 0x8e4200cc, 0xae420104, 0x92220085,
+0x3042003f, 0xa000866, 0x34420040, 0xe00131b,
+0x2402821, 0x92220085, 0xa000866, 0x3042003f,
+0x93620085, 0x2403ffdf, 0x3042003f, 0xa3620085,
+0x93620085, 0x431024, 0xa3620085, 0x93630083,
+0x93620078, 0x307400ff, 0x304200ff, 0x10540036,
+0x240aff80, 0x3c0c000c, 0x3283007f, 0x310c0,
+0x31940, 0x621821, 0x3c020800, 0x8c4200dc,
+0x26880001, 0x3109007f, 0x2a21021, 0x433821,
+0x30e2007f, 0x3421821, 0xea1024, 0xaf420028,
+0x6c8021, 0x8e020024, 0x28a1824, 0x6a5826,
+0xae02000c, 0x8e020024, 0x310800ff, 0xae020010,
+0x96020014, 0x96030020, 0x8e07001c, 0x3042ffff,
+0x3063ffff, 0x8e060018, 0x431023, 0x21100,
+0x227c3, 0x402821, 0xc43023, 0xe2102b,
+0xc23023, 0xe53823, 0xae07001c, 0xae060018,
+0x96020020, 0xa6020014, 0x96020022, 0xa6020016,
+0x92220079, 0x304200ff, 0x10540007, 0x0,
+0x51370001, 0x316800ff, 0x92220078, 0x304200ff,
+0x1448ffcd, 0x100a021, 0x92220083, 0xa2220079,
+0x8e220050, 0xa0008c6, 0xae220070, 0xa2220085,
+0x8e22004c, 0x2405ff80, 0xae42010c, 0x92220085,
+0x34420020, 0xa2220085, 0x924200d1, 0x3c030800,
+0x8c6300dc, 0x305400ff, 0x3c020800, 0x8c4200e4,
+0x143140, 0x1420c0, 0x2a31821, 0xc42021,
+0x2a21021, 0x643821, 0x461021, 0x451824,
+0xe52824, 0xaf450028, 0xaf43002c, 0x3042007f,
+0x924400d0, 0x30e3007f, 0x3422821, 0x3431821,
+0x3c02000c, 0x628021, 0x3c02000e, 0x309600ff,
+0xa29821, 0x1296002a, 0x0, 0x8e02000c,
+0x2002021, 0x2602821, 0x10400025, 0x26100028,
+0xe00072e, 0x0, 0x9262000d, 0x26830001,
+0x307400ff, 0x3042007f, 0xa262000d, 0x2404ff80,
+0x1697fff0, 0x26730020, 0x3c020800, 0x8c4200dc,
+0xa021, 0x2a21021, 0x441024, 0xaf420028,
+0x3c020800, 0x8c4200e4, 0x3c030800, 0x8c6300dc,
+0x2a21021, 0x441024, 0xaf42002c, 0x3c020800,
+0x8c4200e4, 0x2a31821, 0x3063007f, 0x2a21021,
+0x3042007f, 0x3422021, 0x3431821, 0x3c02000c,
+0x628021, 0x3c02000e, 0xa000888, 0x829821,
+0x8e4200d8, 0xae220050, 0x8e4200d8, 0xae220070,
+0x92250083, 0x924600d1, 0x92230083, 0x924400d1,
+0x2402ff80, 0xa22824, 0x3063007f, 0x308400ff,
+0xa62825, 0x64182a, 0x10600002, 0x30a500ff,
+0x38a50080, 0xa2250083, 0xa2250079, 0xe000721,
+0x0, 0x9222007e, 0x2a02021, 0xa222007a,
+0x8e230074, 0x3c027fff, 0x3442ffff, 0x621824,
+0xe00074f, 0xae230074, 0x8fa20010, 0xaf5e0024,
+0x8fbf003c, 0xaf420028, 0x8fbe0038, 0x8fa20014,
+0x8fb70034, 0x8fb60030, 0x8fb5002c, 0x8fb40028,
+0x8fb30024, 0x8fb20020, 0x8fb1001c, 0x8fb00018,
+0x27bd0040, 0x3e00008, 0xaf42002c, 0x90a20000,
+0x24420001, 0xa0a20000, 0x3c030800, 0x8c6300f4,
+0x304200ff, 0x1443000f, 0x803021, 0xa0a00000,
+0x3c020800, 0x8c4200e4, 0x8f840034, 0x822021,
+0x3082007f, 0x3421821, 0x3c02000c, 0x621821,
+0x2402ff80, 0x822024, 0xacc30000, 0x3e00008,
+0xaf440028, 0x8c820000, 0x24420020, 0x3e00008,
+0xac820000, 0x94c20000, 0x3c080800, 0x950800ca,
+0x30e7ffff, 0x804821, 0x1021021, 0xa4c20000,
+0x94c20000, 0x3042ffff, 0xe2102b, 0x54400001,
+0xa4c70000, 0x94a20000, 0x3c030800, 0x8c6300cc,
+0x24420001, 0xa4a20000, 0x94a20000, 0x3042ffff,
+0x54430007, 0x8f860028, 0x107102b, 0xa4a00000,
+0x54400001, 0x1003821, 0xa4c70000, 0x8f860028,
+0x8cc4001c, 0xaf44003c, 0x94a20000, 0x8f43003c,
+0x3042ffff, 0x210c0, 0x621821, 0xaf43003c,
+0x8f42003c, 0x822023, 0x18800004, 0x0,
+0x8cc20018, 0xa000927, 0x24420001, 0x8cc20018,
+0xaf420038, 0x3c020050, 0x34420010, 0xaf420030,
+0x0, 0x0, 0x0, 0x8f420000,
+0x30420020, 0x1040fffd, 0x0, 0x8f420404,
+0xad220004, 0x8f420400, 0xad220000, 0x3c020020,
+0xaf420030, 0x3e00008, 0x0, 0x27bdffe0,
+0xafb20018, 0xafb10014, 0xafb00010, 0xafbf001c,
+0x94c20000, 0xc08021, 0x3c120800, 0x965200c6,
+0x24420001, 0xa6020000, 0x96030000, 0x94e20000,
+0xe03021, 0x14430005, 0x8fb10030, 0xe0008fc,
+0x2403821, 0xa000959, 0x0, 0x8c830004,
+0x8c820004, 0x24420040, 0x4610007, 0xac820004,
+0x8c820004, 0x4400004, 0x0, 0x8c820000,
+0x24420001, 0xac820000, 0x96020000, 0x3042ffff,
+0x50520001, 0xa6000000, 0x96220000, 0x24420001,
+0xa6220000, 0x8f820028, 0x96230000, 0x94420016,
+0x14430004, 0x8fbf001c, 0x24020001, 0xa6220000,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0x8f890028, 0x27bdffe0,
+0xafbf0018, 0x8d220028, 0x27480400, 0x30e700ff,
+0xaf420038, 0x8d22002c, 0xaf880030, 0xaf42003c,
+0x3c020005, 0xaf420030, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x8c82000c, 0x8c82000c, 0xad020000, 0x8c820010,
+0xad020004, 0x8c820018, 0xad020008, 0x8c82001c,
+0xad02000c, 0x8ca20014, 0xad020010, 0x8c820020,
+0xad020014, 0x90820005, 0x304200ff, 0x21200,
+0xad020018, 0x8ca20018, 0xad02001c, 0x8ca2000c,
+0xad020020, 0x8ca20010, 0xad020024, 0x8ca2001c,
+0xad020028, 0x8ca20020, 0xad02002c, 0xad060030,
+0xad000034, 0x97830026, 0x3402ffff, 0x14620002,
+0x602021, 0x3404ffff, 0x10e00011, 0xad040038,
+0x95230036, 0x95240036, 0x24020001, 0x3063ffff,
+0x318c2, 0x691821, 0x90650040, 0x30840007,
+0x821004, 0x451025, 0xa0620040, 0x8f820028,
+0x94420056, 0x3042ffff, 0xa0009c0, 0xad02003c,
+0x95230036, 0x95240036, 0x24020001, 0x3063ffff,
+0x318c2, 0x691821, 0x90650040, 0x30840007,
+0x821004, 0x21027, 0x451024, 0xa0620040,
+0xad00003c, 0x0, 0x0, 0x0,
+0x3c020006, 0x34420040, 0xaf420030, 0x0,
+0x0, 0x0, 0x8f420000, 0x30420010,
+0x1040fffd, 0x8f860028, 0xaf880030, 0x24c20056,
+0x24c7003c, 0x24c40028, 0x24c50032, 0x24c60036,
+0xe00093a, 0xafa20010, 0x8fbf0018, 0x3e00008,
+0x27bd0020, 0x8f830024, 0x3c050800, 0x8ca500e8,
+0x8f820034, 0x30633fff, 0x31980, 0x451021,
+0x431021, 0x2403ff80, 0x3045007f, 0x431024,
+0xaf420028, 0x3451821, 0x3c02000c, 0x623021,
+0x90c2000d, 0x3821, 0x34420010, 0xa0c2000d,
+0x8f890028, 0x8f8a0024, 0x95230036, 0xa1382,
+0x30480003, 0x24020001, 0xa4c3000e, 0x1102000b,
+0x29020002, 0x10400005, 0x24020002, 0x1100000c,
+0x24030001, 0xa000a03, 0x1821, 0x11020006,
+0x0, 0xa000a03, 0x1821, 0x8cc2002c,
+0xa000a03, 0x24430001, 0x8cc20014, 0x24430001,
+0x8cc20018, 0x43102b, 0x14400003, 0x0,
+0xa000a0c, 0x24070001, 0x9522003e, 0x24420001,
+0xa522003e, 0xa1382, 0x30430003, 0x2c620002,
+0x10400009, 0x802821, 0x14600004, 0x0,
+0x94c20036, 0xa000a1c, 0x3046ffff, 0x8cc60038,
+0xa000a1c, 0x802821, 0x3021, 0x3c040800,
+0x24844ef0, 0xa00096d, 0x0, 0x27490100,
+0x8d22000c, 0x95230006, 0x1202021, 0x21602,
+0x3045003f, 0x3063ffff, 0x24020027, 0x28a60028,
+0x10a2000e, 0xaf830024, 0x10c00008, 0x24020031,
+0x24020021, 0x10a20009, 0x24020025, 0x10a20007,
+0x9382002d, 0xa000a3a, 0x0, 0x10a20005,
+0x9382002d, 0xa000a3a, 0x0, 0xa0009d8,
+0x0, 0xa00070a, 0x0, 0x95230006,
+0x91240005, 0x8d25000c, 0x8d260010, 0x8d270018,
+0x8d28001c, 0x8d290020, 0x24420001, 0x3c010800,
+0xa4234ef6, 0x3c010800, 0xa0244ef5, 0x3c010800,
+0xac254efc, 0x3c010800, 0xac264f00, 0x3c010800,
+0xac274f08, 0x3c010800, 0xac284f0c, 0x3c010800,
+0xac294f10, 0x3e00008, 0xa382002d, 0x8f870028,
+0x27bdffc0, 0xafb30034, 0xafb20030, 0xafb1002c,
+0xafb00028, 0xafbf0038, 0x3c020800, 0x8c4200d0,
+0x94e30030, 0x30b0ffff, 0x501007, 0x3045ffff,
+0x3063ffff, 0xc09821, 0xa7a20010, 0x3c110800,
+0x963100c6, 0x14a30006, 0x3092ffff, 0x8ce20024,
+0x24420030, 0xaf42003c, 0xa000a73, 0x8ce20020,
+0x94e20032, 0x3042ffff, 0x54a20008, 0x27a40018,
+0x8ce2002c, 0x24420030, 0xaf42003c, 0x8ce20028,
+0xaf420038, 0xa000a81, 0x8f840028, 0x27a50010,
+0x27a60020, 0x2203821, 0xe0008fc, 0xa7a00020,
+0x8fa20018, 0x24420030, 0xaf420038, 0x8fa2001c,
+0xaf42003c, 0x8f840028, 0x3c020005, 0xaf420030,
+0x94820034, 0x27430400, 0x3042ffff, 0x202102b,
+0x14400007, 0xaf830030, 0x94820054, 0x94830034,
+0x2021021, 0x431023, 0xa000a95, 0x3043ffff,
+0x94830054, 0x94820034, 0x2231821, 0x501023,
+0x621823, 0x3063ffff, 0x94820016, 0x3042ffff,
+0x14430003, 0x0, 0xa000aa3, 0x24030001,
+0x94820016, 0x3042ffff, 0x43102b, 0x10400005,
+0x8f820030, 0x94820016, 0x621023, 0x3043ffff,
+0x8f820030, 0xac530000, 0xac400004, 0xac520008,
+0xac43000c, 0x3c020006, 0x34420010, 0xaf420030,
+0x0, 0x0, 0x0, 0x8f420000,
+0x30420010, 0x1040fffd, 0x1018c2, 0x641821,
+0x90650040, 0x32040007, 0x24020001, 0x8fbf0038,
+0x8fb30034, 0x8fb20030, 0x8fb1002c, 0x8fb00028,
+0x821004, 0x451025, 0x27bd0040, 0x3e00008,
+0xa0620040, 0x27bdffa8, 0xafb60050, 0xafb5004c,
+0xafb40048, 0xafb30044, 0xafb1003c, 0xafbf0054,
+0xafb20040, 0xafb00038, 0x8c900000, 0x3c020800,
+0x8c4200e8, 0x8f860034, 0x96030002, 0x2413ff80,
+0xc23021, 0x30633fff, 0x31980, 0xc33821,
+0xf31024, 0x90b20000, 0xaf42002c, 0x92030002,
+0x30e2007f, 0x3423021, 0x3c02000e, 0xc28821,
+0x306300c0, 0x24020040, 0x80a821, 0xa0b021,
+0x14620026, 0xa021, 0x8e340038, 0x8e220018,
+0x14400002, 0x24020001, 0xae220018, 0x9202000d,
+0x30420020, 0x14400015, 0x8f820034, 0x3c030800,
+0x8c6300dc, 0x1238c0, 0x123140, 0x431021,
+0xc73021, 0x463821, 0x30e30007, 0x3c020080,
+0x30e60078, 0xc23025, 0x3431821, 0xf31024,
+0xaf420800, 0x24630900, 0xaf460810, 0x8e220018,
+0x8c630008, 0x431021, 0xae220018, 0x8e22002c,
+0x8e230018, 0x24420001, 0x62182b, 0x1060003d,
+0x0, 0xa000b57, 0x0, 0x92030002,
+0x2402ffc0, 0x431024, 0x304200ff, 0x14400005,
+0x24020001, 0xae220018, 0x96220036, 0xa000b40,
+0x3054ffff, 0x8e220014, 0x24420001, 0xae220018,
+0x92020000, 0x21600, 0x21603, 0x4410029,
+0x0, 0x96020002, 0x27a40010, 0x802821,
+0xa7a20016, 0x96020002, 0x24070001, 0x3021,
+0x3042ffff, 0xaf820024, 0xe00096d, 0xafa0001c,
+0x96030002, 0x3c040800, 0x8c8400e8, 0x8f820034,
+0x30633fff, 0x31980, 0x441021, 0x431021,
+0x3043007f, 0x3c05000c, 0x531024, 0x3431821,
+0xaf420028, 0x651821, 0x9062000d, 0x122140,
+0x3042007f, 0xa062000d, 0x3c030800, 0x8c6300e4,
+0x8f820034, 0x431021, 0x443821, 0x30e2007f,
+0x3421021, 0x451021, 0xf31824, 0xaf430028,
+0xaea20000, 0x9222000d, 0x30420010, 0x10400013,
+0x2a02021, 0x8f830028, 0x8ea40000, 0x2803021,
+0x9462003e, 0x2442ffff, 0xa462003e, 0x94840002,
+0x9625000e, 0x3084ffff, 0xe000a52, 0x30a5ffff,
+0x8f820028, 0x94430034, 0x9622000e, 0x14430003,
+0x2a02021, 0x24020001, 0xa382002c, 0x2c02821,
+0xe0008e2, 0x0, 0x8fbf0054, 0x8fb60050,
+0x8fb5004c, 0x8fb40048, 0x8fb30044, 0x8fb20040,
+0x8fb1003c, 0x8fb00038, 0x3e00008, 0x27bd0058,
+0x8f850028, 0x27bdffd0, 0xafb40028, 0xafb20020,
+0xafbf002c, 0xafb30024, 0xafb1001c, 0xafb00018,
+0x90a800d0, 0x90a600d1, 0x3c020800, 0x8c4200e4,
+0x8f830034, 0x30c700ff, 0xa3a60010, 0x621821,
+0x71140, 0x621821, 0x3062007f, 0x3422021,
+0x3c02000c, 0x822021, 0x2402ff80, 0x621824,
+0x311200ff, 0x8cb100d8, 0xafa40014, 0x8cb300dc,
+0xa021, 0xaf430028, 0x10f2001f, 0x24020001,
+0x8fa60014, 0x27a40014, 0x27a50010, 0x8cc20004,
+0x2228021, 0x2701023, 0x4400017, 0x24020001,
+0x90c3000d, 0x2402ff80, 0x431024, 0x304200ff,
+0x14400007, 0x2008821, 0x90c2000d, 0x34420040,
+0xe0008e2, 0xa0c2000d, 0xa000b9e, 0x93a20010,
+0xe000ac0, 0x24140001, 0x8f830028, 0xac7000d8,
+0x93a20010, 0xa06200d1, 0x93a20010, 0x1452ffe5,
+0x8fa60014, 0x24020001, 0x16820004, 0x8fbf002c,
+0xe00070a, 0x0, 0x8fbf002c, 0x8fb40028,
+0x8fb30024, 0x8fb20020, 0x8fb1001c, 0x8fb00018,
+0x3e00008, 0x27bd0030, 0x27bdffd8, 0xafb3001c,
+0xafb20018, 0xafb10014, 0xafb00010, 0xafbf0020,
+0x809821, 0xe08021, 0x30b1ffff, 0xe000577,
+0x30d200ff, 0x0, 0x0, 0x0,
+0x8f820020, 0xac510000, 0xac520004, 0xac530008,
+0xac40000c, 0xac400010, 0xac400014, 0xac400018,
+0x3c030800, 0x94634ed6, 0x2038025, 0xac50001c,
+0x0, 0x0, 0x0, 0x24040001,
+0x8fbf0020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0xa00059c, 0x27bd0028, 0x27bdffe8,
+0xafb00010, 0xafbf0014, 0x30a5ffff, 0x30c600ff,
+0x808021, 0x24020c80, 0xaf420024, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0xe000bad, 0x0, 0x3c040800, 0x248400e0,
+0x8c820000, 0x2403ff80, 0x8fbf0014, 0x2021021,
+0x431024, 0xaf420024, 0x8c820000, 0x3c03000a,
+0x2028021, 0x3210007f, 0x3501021, 0x8fb00010,
+0x431021, 0x27bd0018, 0x3e00008, 0xaf820028,
+0x27bdffe8, 0xafbf0010, 0x8f440140, 0x3c030800,
+0x8c6300e0, 0x2402ff80, 0xaf840034, 0x831821,
+0x621024, 0xaf420024, 0x3c020008, 0x3424021,
+0x95050002, 0x3063007f, 0x3c02000a, 0x3431821,
+0x621821, 0x30a5ffff, 0x3402ffff, 0x3021,
+0x3c076020, 0x10a20006, 0xaf830028, 0x2402ffff,
+0xa5020002, 0x946500d4, 0xe000bd2, 0x30a5ffff,
+0x8fbf0010, 0x24020c80, 0x27bd0018, 0x3e00008,
+0xaf420024, 0x3c020008, 0x3424021, 0x95020002,
+0x3c0a0800, 0x954a00c6, 0x3046ffff, 0x14c00007,
+0x3402ffff, 0x8f820028, 0x8f840034, 0x3c076020,
+0x944500d4, 0xa000c3b, 0x30a5ffff, 0x10c20024,
+0x8f870028, 0x94e20054, 0x94e40016, 0x3045ffff,
+0xa61023, 0xa6182b, 0x3089ffff, 0x10600004,
+0x3044ffff, 0xc51023, 0x1221023, 0x3044ffff,
+0x8a102b, 0x1040000c, 0x12a1023, 0x24020001,
+0xa5020016, 0x2402ffff, 0xa5020002, 0x94e500d4,
+0x8f840034, 0x3021, 0x30a5ffff, 0x3c076020,
+0xa000bd2, 0x0, 0x44102a, 0x10400008,
+0x0, 0x95020016, 0x30420001, 0x10400004,
+0x0, 0x9742007e, 0x24420014, 0xa5020016,
+0x3e00008, 0x0, 0x8f840028, 0x27bdffe0,
+0xafbf0018, 0x94820034, 0x9483003e, 0x1060001a,
+0x3048ffff, 0x9383002c, 0x24020001, 0x14620027,
+0x8fbf0018, 0x8f820028, 0x818c2, 0x31080007,
+0x621821, 0x2447003a, 0x24490054, 0x24440020,
+0x24450030, 0x24460034, 0x90620040, 0x304200ff,
+0x1021007, 0x30420001, 0x10400016, 0x8fbf0018,
+0xe00093a, 0xafa90010, 0x8f820028, 0x94420034,
+0xa000c54, 0x3048ffff, 0x94830036, 0x94820034,
+0x1043000e, 0x8fbf0018, 0x94820036, 0xa4820034,
+0x94820056, 0xa4820054, 0x8c82002c, 0xac820024,
+0x94820032, 0xa4820030, 0x9482003c, 0xa482003a,
+0x8fbf0018, 0xa000c14, 0x27bd0020, 0x3e00008,
+0x27bd0020, 0x27bdffe8, 0xafbf0010, 0x8f4a0100,
+0x3c050800, 0x8ca500e0, 0x3c020800, 0x90424efc,
+0x3c0c0800, 0x958c4ef6, 0x1452821, 0x304b003f,
+0x30a2007f, 0x3424021, 0x39690032, 0x3c02000a,
+0x3963003f, 0x2c630001, 0x1024021, 0x2d290001,
+0x2402ff80, 0xa22824, 0x1234825, 0xaf8a0034,
+0x801821, 0xaf450024, 0x3021, 0x802821,
+0x24070001, 0xaf880028, 0x3c040800, 0x24844ef0,
+0xaf8c0024, 0x15200006, 0xa380002d, 0x24020020,
+0x1562000e, 0x3402ffff, 0x1582000c, 0x0,
+0x24020020, 0x15620005, 0x0, 0x8c630014,
+0x2402ffff, 0x10620007, 0x0, 0xe00096d,
+0x0, 0xa000cb0, 0x0, 0xe0009d8,
+0x602021, 0xe000c49, 0x0, 0x8fbf0010,
+0x24020c80, 0x27bd0018, 0x3e00008, 0xaf420024,
+0x3c020800, 0x8c4200e0, 0x27bdffa0, 0xafb1003c,
+0x821021, 0x2411ff80, 0xafbe0058, 0xafb70054,
+0xafb20040, 0xafb00038, 0xafbf005c, 0xafb60050,
+0xafb5004c, 0xafb40048, 0xafb30044, 0x511024,
+0x8f480024, 0x8f490028, 0x8f470028, 0xaf420024,
+0x3c020800, 0x8c4200e0, 0x809021, 0x24060006,
+0x821021, 0x3042007f, 0x3421821, 0x3c02000a,
+0x628021, 0x3c02001f, 0x3442ff80, 0xe23824,
+0x27a40010, 0x260500f0, 0x122f024, 0x102b824,
+0xe000601, 0xafa70030, 0x8fa20018, 0xae0200c4,
+0x8fa2001c, 0xae0200c8, 0x8fa20024, 0xae0200cc,
+0x93a40010, 0x920300d1, 0x2402ff80, 0x821024,
+0x431025, 0x304900ff, 0x3083007f, 0x3122007f,
+0x62102a, 0x10400004, 0x310c0, 0x1311026,
+0x304900ff, 0x310c0, 0x31940, 0x621821,
+0x3c020800, 0x8c4200dc, 0x920400d2, 0x2421021,
+0x431021, 0x511024, 0xaf420028, 0x93a30010,
+0x3063007f, 0x310c0, 0x31940, 0x621821,
+0x3c020800, 0x8c4200dc, 0x2421021, 0x431021,
+0x3042007f, 0x3421821, 0x3c02000c, 0x624021,
+0x8fa30014, 0x2402ffff, 0x10620030, 0x309500ff,
+0x93a20011, 0x95030014, 0x304400ff, 0x3063ffff,
+0x64182b, 0x1060000d, 0x0, 0x95040014,
+0x8d07001c, 0x8d060018, 0x3084ffff, 0x442023,
+0x42100, 0x1021, 0xe43821, 0xe4202b,
+0xc23021, 0xa000d2a, 0xc43021, 0x95040014,
+0x8d07001c, 0x8d060018, 0x3084ffff, 0x822023,
+0x42100, 0x1021, 0x801821, 0xc23023,
+0xe4202b, 0xc43023, 0xe33823, 0xad07001c,
+0xad060018, 0x93a20011, 0xa5020014, 0x97a20012,
+0xa5020016, 0x8fa20014, 0xad020010, 0x8fa20014,
+0xad02000c, 0x93a20011, 0xa5020020, 0x97a20012,
+0xa5020022, 0x8fa20014, 0xad020024, 0x2406ff80,
+0x2461024, 0x3256007f, 0xaf420024, 0x3561821,
+0x3c02000a, 0x628021, 0x8e02004c, 0x8fa20020,
+0x3124007f, 0x428c0, 0xae020050, 0x8fa20020,
+0x42140, 0x852821, 0xae020070, 0x93a20010,
+0x1208821, 0xa2020083, 0x93a20010, 0xa2020079,
+0x92020085, 0x3042003f, 0xa2020085, 0x3c020800,
+0x8c4200dc, 0x2421021, 0x451021, 0x461024,
+0xaf42002c, 0x3c020800, 0x8c4200e4, 0x3c030800,
+0x8c6300dc, 0x2421021, 0x441021, 0x461024,
+0xaf420028, 0x3c020800, 0x8c4200e4, 0x2431821,
+0x651821, 0x2421021, 0x441021, 0x3042007f,
+0x3063007f, 0x93a50010, 0x3422021, 0x3431821,
+0x3c02000e, 0x624021, 0x3c02000c, 0x10b1008c,
+0x824821, 0x3233007f, 0x16600019, 0x2404ff80,
+0x3c020800, 0x8c4200dc, 0x2421021, 0x441024,
+0xaf42002c, 0x3c020800, 0x8c4200e4, 0x3c030800,
+0x8c6300dc, 0x2421021, 0x441024, 0xaf420028,
+0x3c020800, 0x8c4200e4, 0x2431821, 0x3063007f,
+0x2421021, 0x3042007f, 0x3422021, 0x3431821,
+0x3c02000e, 0x624021, 0x3c02000c, 0x824821,
+0x9124000d, 0x2414ff80, 0x1021, 0x942025,
+0xa124000d, 0x95040002, 0x95050014, 0x8d07001c,
+0x3084ffff, 0x30a5ffff, 0x8d060018, 0x852023,
+0x42100, 0xe43821, 0xc23021, 0xe4202b,
+0xc43021, 0xad07001c, 0xad060018, 0x95020002,
+0xa5020014, 0xa5000016, 0x8d020008, 0xad020010,
+0x8d020008, 0xad02000c, 0x95020002, 0xa5020020,
+0xa5000022, 0x8d020008, 0xad020024, 0x9122000d,
+0x30420040, 0x10400042, 0x26220001, 0x3c020800,
+0x8c4200e0, 0xa3b30028, 0x3c10000a, 0x2421021,
+0x541024, 0xaf420024, 0x3c020800, 0x8c4200e0,
+0xa380002c, 0x27a4002c, 0x2421021, 0x3042007f,
+0x3421821, 0x701821, 0x8c6200d8, 0x8d260004,
+0x27a50028, 0xafa9002c, 0x461021, 0xac6200d8,
+0xe000ac0, 0xaf830028, 0x93a30028, 0x8f820028,
+0xe00070a, 0xa04300d1, 0xe000c49, 0x0,
+0x2541024, 0xaf420024, 0x3c020800, 0x8c4200dc,
+0x132940, 0x1320c0, 0xa42021, 0x2421021,
+0x441021, 0x541024, 0xaf42002c, 0x3c020800,
+0x8c4200e4, 0x3c030800, 0x8c6300dc, 0x3563021,
+0x2421021, 0x451021, 0x541024, 0xaf420028,
+0x3c020800, 0x8c4200e4, 0x2431821, 0x641821,
+0x2421021, 0x451021, 0x3042007f, 0x3063007f,
+0x3422021, 0x3431821, 0x3c02000e, 0x624021,
+0x3c02000c, 0xd08021, 0x824821, 0x26220001,
+0x3043007f, 0x14750005, 0x304400ff, 0x2403ff80,
+0x2231024, 0x431026, 0x304400ff, 0x93a20010,
+0x808821, 0x25080028, 0x1444ff76, 0x25290020,
+0x93a40010, 0x8fa30014, 0x2402ffff, 0x1062000a,
+0x308900ff, 0x24820001, 0x24830001, 0x3042007f,
+0x14550005, 0x306900ff, 0x2403ff80, 0x831024,
+0x431026, 0x304900ff, 0x92020078, 0x305300ff,
+0x11330032, 0x1208821, 0x3c020800, 0x8c4200dc,
+0x3225007f, 0x520c0, 0x52940, 0xa42021,
+0x2421021, 0x2406ff80, 0x441021, 0x461024,
+0xaf42002c, 0x3c030800, 0x8c6300dc, 0x3c020800,
+0x8c4200e4, 0x2431821, 0x2421021, 0x451021,
+0x641821, 0x461024, 0x3063007f, 0xaf420028,
+0x3431821, 0x3c02000e, 0x624021, 0x3c020800,
+0x8c4200e4, 0x8d06000c, 0x1002021, 0x2421021,
+0x451021, 0x3042007f, 0x3421821, 0x3c02000c,
+0x624821, 0x10c0000d, 0x1202821, 0xe00072e,
+0x0, 0x2402ff80, 0x2221824, 0x26240001,
+0x622826, 0x3082007f, 0x14550002, 0x308300ff,
+0x30a300ff, 0x1473ffd0, 0x608821, 0x8e030074,
+0x3c027fff, 0x3442ffff, 0x621824, 0xae030074,
+0xe00074f, 0x2402021, 0xaf570024, 0x8fa20030,
+0xaf5e0028, 0x8fbf005c, 0x8fbe0058, 0x8fb70054,
+0x8fb60050, 0x8fb5004c, 0x8fb40048, 0x8fb30044,
+0x8fb20040, 0x8fb1003c, 0x8fb00038, 0x27bd0060,
+0x3e00008, 0xaf42002c, 0x27bdffd8, 0xafb1001c,
+0xafbf0020, 0xafb00018, 0x27510188, 0x92220003,
+0x2408ff80, 0x3c03000a, 0x3047007f, 0xa3a70010,
+0x8f460180, 0x3c020800, 0x8c4200e0, 0xaf860034,
+0xc22821, 0xa81024, 0xaf420024, 0x92240000,
+0x30a2007f, 0x3421021, 0x431021, 0xaf820028,
+0x3084007f, 0x24020002, 0x14820025, 0x71940,
+0x3c020800, 0x8c4200e4, 0xc21021, 0x432821,
+0x30a2007f, 0x3421821, 0xa81024, 0xaf420028,
+0x3c02000c, 0x621821, 0x9062000d, 0xafa30014,
+0x481025, 0xa062000d, 0x8fa30014, 0x9062000d,
+0x30420040, 0x5040006a, 0x8fbf0020, 0x8f860028,
+0xa380002c, 0x27a40014, 0x8cc200d8, 0x8c630004,
+0x27a50010, 0x431021, 0xe000ac0, 0xacc200d8,
+0x93a30010, 0x8f820028, 0xe00070a, 0xa04300d1,
+0xe000c49, 0x0, 0xa000eeb, 0x8fbf0020,
+0xe000713, 0xc02021, 0xe000721, 0x0,
+0x3c020008, 0x3428021, 0x92230001, 0x9202007b,
+0x1443004f, 0x8fbf0020, 0x92220000, 0x3044007f,
+0x24020004, 0x10820017, 0x28820005, 0x10400006,
+0x24020005, 0x24020003, 0x10820007, 0x8fb1001c,
+0xa000eec, 0x0, 0x10820012, 0x8fbf0020,
+0xa000eec, 0x8fb1001c, 0x92050083, 0x92060078,
+0x8e070074, 0x8f840034, 0x30a500ff, 0x73e02,
+0x30c600ff, 0xe000757, 0x30e7007f, 0xa000eeb,
+0x8fbf0020, 0xe000cb7, 0x8f840034, 0xa000eeb,
+0x8fbf0020, 0x24020c80, 0xaf420024, 0x9202003e,
+0x30420040, 0x10400020, 0x0, 0x9202003e,
+0x21600, 0x21603, 0x4410006, 0x0,
+0x8f840034, 0xe000684, 0x24050093, 0xa000eeb,
+0x8fbf0020, 0x9202003f, 0x24030018, 0x304200ff,
+0x1443000c, 0x8f840034, 0x24050039, 0xe00061c,
+0x3021, 0xe000348, 0x8f840034, 0x24020012,
+0xa202003f, 0xe000351, 0x8f840034, 0xa000eeb,
+0x8fbf0020, 0x24050036, 0xe00061c, 0x3021,
+0xa000eeb, 0x8fbf0020, 0xe000348, 0x8f840034,
+0x92020005, 0x34420020, 0xa2020005, 0xe000351,
+0x8f840034, 0xe0010a2, 0x8f840034, 0x8fbf0020,
+0x8fb1001c, 0x8fb00018, 0x24020c80, 0x27bd0028,
+0x3e00008, 0xaf420024, 0x27bdffe8, 0xafb00010,
+0xafbf0014, 0x27430100, 0x94620008, 0x21400,
+0x21403, 0x4410002, 0x8021, 0x24100001,
+0x94620008, 0x30420080, 0x1040001a, 0x2001021,
+0x94620008, 0x30422000, 0x10400016, 0x2001021,
+0x8c630018, 0x3c021c2d, 0x344219ed, 0x24060006,
+0x1062000f, 0x3c076021, 0x3c020800, 0x8c4200d4,
+0x10400007, 0x8f820028, 0x8f830028, 0x90620062,
+0x3042000f, 0x34420040, 0xa0620062, 0x8f820028,
+0x8f840034, 0x944500d4, 0xe000bd2, 0x30a5ffff,
+0x2001021, 0x8fbf0014, 0x8fb00010, 0x3e00008,
+0x27bd0018, 0x27bdffe0, 0xafb10014, 0xafb00010,
+0xa380002c, 0xafbf0018, 0x8f450100, 0x3c030800,
+0x8c6300e0, 0x2402ff80, 0xaf850034, 0xa31821,
+0x3064007f, 0x3442021, 0x621824, 0x3c02000a,
+0x822021, 0xaf430024, 0x27500100, 0x8e020014,
+0x8c8300dc, 0xaf840028, 0x431023, 0x18400004,
+0x8821, 0x8e020014, 0xe000b63, 0xac8200dc,
+0x9202000b, 0x24030002, 0x304200ff, 0x1443002f,
+0x0, 0x96020008, 0x304300ff, 0x24020082,
+0x14620005, 0x24020084, 0xe000a1e, 0x0,
+0xa000f77, 0x0, 0x14620009, 0x24020081,
+0x8f820028, 0x8f840034, 0x3c076021, 0x944500d4,
+0x92060005, 0x30a5ffff, 0xa000f66, 0x30c600ff,
+0x14620027, 0x0, 0x9202000a, 0x304300ff,
+0x30620020, 0x10400004, 0x30620040, 0x8f840034,
+0xa000f62, 0x24060040, 0x10400004, 0x31600,
+0x8f840034, 0xa000f62, 0x24060041, 0x21603,
+0x4410017, 0x8f840034, 0x24060042, 0x8f820028,
+0x3c076019, 0x944500d4, 0x30a5ffff, 0xe000bd2,
+0x0, 0xa000f77, 0x0, 0x9202000b,
+0x24030016, 0x304200ff, 0x10430006, 0x0,
+0x9202000b, 0x24030017, 0x304200ff, 0x14430004,
+0x0, 0xe000ef1, 0x0, 0x408821,
+0xe000c49, 0x0, 0x9202000a, 0x30420008,
+0x10400006, 0x24020c80, 0x8f850028, 0x3c040008,
+0xe0012d0, 0x3442021, 0x24020c80, 0xaf420024,
+0x8fbf0018, 0x2201021, 0x8fb00010, 0x8fb10014,
+0x3e00008, 0x27bd0020, 0x27bdffe8, 0xafbf0014,
+0xafb00010, 0x8f500024, 0x3c030800, 0x8c6300e0,
+0x8f450100, 0x2402ff80, 0xa31821, 0x3064007f,
+0x3442021, 0x621824, 0x3c02000a, 0x822021,
+0xaf850034, 0xaf430024, 0x90820062, 0xaf840028,
+0x3042000f, 0x34420050, 0xa0820062, 0x3c02001f,
+0x3442ff80, 0xe00070a, 0x2028024, 0xaf500024,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x3c020800, 0x8c420020, 0x1040001d, 0x27450100,
+0x90a30009, 0x3c020008, 0x3422021, 0x24020018,
+0x54620003, 0x3c020008, 0xa000fb8, 0x24020008,
+0x3422021, 0x24020016, 0x14620005, 0x24020017,
+0x24020012, 0xa082003f, 0xa000fc2, 0x94a70008,
+0x54620006, 0x94a70008, 0x93620005, 0x2403fffe,
+0x431024, 0xa3620005, 0x94a70008, 0x90a6001b,
+0x8ca40000, 0x94a50006, 0xa000bad, 0x73c00,
+0x3e00008, 0x0, 0x27440100, 0x94820008,
+0x304500ff, 0x38a30082, 0x38a20084, 0x2c630001,
+0x2c420001, 0x621825, 0x10600006, 0x24020083,
+0x9382002d, 0x1040000d, 0x0, 0xa000c7c,
+0x0, 0x14a20005, 0x24a2ff80, 0x8f430104,
+0x3c026020, 0x3e00008, 0xac430014, 0x304200ff,
+0x2c420002, 0x10400003, 0x24020022, 0xa000f1c,
+0x0, 0x14a20003, 0x0, 0xa000f89,
+0x0, 0xa000fa7, 0x0, 0x9363007e,
+0x9362007a, 0x14430009, 0x2021, 0x93620000,
+0x24030050, 0x304200ff, 0x14430004, 0x24040001,
+0x9362007e, 0x24420001, 0xa362007e, 0x3e00008,
+0x801021, 0x8f4201f8, 0x440fffe, 0x24020002,
+0xaf4401c0, 0xa34201c4, 0x3c021000, 0x3e00008,
+0xaf4201f8, 0x27bdffe8, 0xafbf0010, 0x9362003f,
+0x2403000a, 0x304200ff, 0x14430046, 0x0,
+0x8f630054, 0x8f62004c, 0x1062007f, 0x3603021,
+0x93620000, 0x24030050, 0x304200ff, 0x1443002f,
+0x0, 0x8f440140, 0x3c020800, 0x8c4200e0,
+0x2403ff80, 0x821021, 0x431024, 0xaf420024,
+0x3c020800, 0x8c4200e0, 0x8f650054, 0x3c03000a,
+0x822021, 0x3084007f, 0x3441021, 0x431021,
+0xac450108, 0x9762003c, 0x8f63004c, 0x3042ffff,
+0x21040, 0x621821, 0xaf63005c, 0x8f630054,
+0x8f64004c, 0x9762003c, 0x641823, 0x3042ffff,
+0x31843, 0x21040, 0x43102a, 0x10400006,
+0x0, 0x8f620054, 0x8f63004c, 0x431023,
+0xa001038, 0x21043, 0x9762003c, 0x3042ffff,
+0x21040, 0xacc20064, 0x24020001, 0xa0c0007c,
+0xa0c20084, 0x24020c80, 0xaf420024, 0xe000fea,
+0x8f440140, 0x10400049, 0x8fbf0010, 0x8f430140,
+0x8f4201f8, 0x440fffe, 0x24020002, 0xaf4301c0,
+0xa34201c4, 0x3c021000, 0xaf4201f8, 0xa00108a,
+0x8fbf0010, 0x9362003f, 0x24030010, 0x304200ff,
+0x14430004, 0x0, 0x8f440140, 0xa001076,
+0x2821, 0x9362003f, 0x24030016, 0x304200ff,
+0x14430004, 0x24020014, 0xa362003f, 0xa001084,
+0x0, 0x8f62004c, 0x8f630050, 0x431023,
+0x441002a, 0x8fbf0010, 0x93620081, 0x24420001,
+0xa3620081, 0x93620081, 0x3c030800, 0x8c6300c0,
+0x304200ff, 0x14430010, 0x0, 0x9362003f,
+0x24030004, 0x304200ff, 0x14430006, 0x0,
+0x8f440140, 0x8fbf0010, 0x24050093, 0xa000684,
+0x27bd0018, 0x8f440140, 0x24050093, 0x8fbf0010,
+0xa0006f3, 0x27bd0018, 0x8f440140, 0xe000348,
+0x0, 0x8f620054, 0x2442ffff, 0xaf620054,
+0x8f620050, 0x2442ffff, 0xaf620050, 0xe000351,
+0x8f440140, 0x8f440140, 0x8fbf0010, 0x24050004,
+0xa000356, 0x27bd0018, 0x8fbf0010, 0x3e00008,
+0x27bd0018, 0x8f420188, 0x9363007e, 0x21402,
+0x304400ff, 0x306300ff, 0x1464000d, 0x0,
+0x93620080, 0x304200ff, 0x10440009, 0x0,
+0xa3640080, 0x93620000, 0x24030050, 0x304200ff,
+0x14430004, 0x0, 0xa0007bb, 0x8f440180,
+0xa3640080, 0x3e00008, 0x0, 0x27bdffe8,
+0xafb00010, 0xafbf0014, 0x93620005, 0x24030030,
+0x30420030, 0x14430089, 0x808021, 0x3c020800,
+0x8c420020, 0x10400080, 0x2002021, 0xe000577,
+0x0, 0x8f850020, 0xacb00000, 0x9362003e,
+0x9363003f, 0x304200ff, 0x21200, 0x306300ff,
+0x431025, 0xaca20004, 0x93620082, 0x21600,
+0x21603, 0x4410005, 0x0, 0x3c030800,
+0x8c630048, 0xa0010c8, 0x0, 0x9362003e,
+0x30420040, 0x14400003, 0x1821, 0x93620081,
+0x304300ff, 0x93620082, 0x31e00, 0x304200ff,
+0x21400, 0x621825, 0xaca30008, 0x8f620040,
+0xaca2000c, 0x8f620048, 0xaca20010, 0x8f62004c,
+0xaca20014, 0x8f620050, 0x8f63004c, 0x431023,
+0x4410003, 0x0, 0xa0010dc, 0x8f62004c,
+0x8f620050, 0xaca20018, 0x3c020800, 0x94424ed6,
+0x3c03c00b, 0x2021, 0x431025, 0xe00059c,
+0xaca2001c, 0x8f620054, 0x8f840020, 0xac820000,
+0x8f620058, 0xac820004, 0x8f62005c, 0xac820008,
+0x8f620060, 0x8f430074, 0x431021, 0xac82000c,
+0x8f620064, 0xac820010, 0x97630068, 0x9762006a,
+0x31c00, 0x3042ffff, 0x621825, 0xac830014,
+0x93620082, 0x24030080, 0x304200ff, 0x14430003,
+0x0, 0xa001110, 0xac800018, 0x8f63000c,
+0x24020001, 0x1062000e, 0x2402ffff, 0x9362003e,
+0x30420040, 0x1440000a, 0x2402ffff, 0x8f63000c,
+0x8f420074, 0x621823, 0x3c020800, 0x621024,
+0x14400002, 0x2821, 0x602821, 0x51043,
+0xac820018, 0x3c020800, 0x94424ed6, 0x3c03c00c,
+0x2021, 0x431025, 0x8f830020, 0xe00059c,
+0xac62001c, 0x8f620018, 0x8f830020, 0x3c050800,
+0x94a54ed6, 0x24040001, 0xac620000, 0xac600004,
+0x8f66006c, 0x3c02400d, 0xa22825, 0xac660008,
+0x8f6200dc, 0xac62000c, 0xac600010, 0x93620005,
+0x21600, 0xac620014, 0xac600018, 0xe00059c,
+0xac65001c, 0x2002021, 0x8fbf0014, 0x8fb00010,
+0xa3600005, 0xa000505, 0x27bd0018, 0x8fbf0014,
+0x8fb00010, 0x3e00008, 0x27bd0018, 0x9742007c,
+0x30c600ff, 0xa0860084, 0x3047ffff, 0x24020005,
+0x14c2000b, 0x24e34650, 0x90a20112, 0x2c420007,
+0x10400007, 0x24e30a00, 0x90a30112, 0x24020014,
+0x621004, 0xe21021, 0xa001148, 0x3047ffff,
+0x3067ffff, 0x3e00008, 0xa4870014, 0xac87004c,
+0x8ca20108, 0x804021, 0xa04821, 0xe21023,
+0x30c600ff, 0x18400003, 0x93aa0013, 0x24e2fffc,
+0xaca20108, 0x30c20001, 0x10400008, 0x0,
+0x8d020050, 0xe21023, 0x4410013, 0x24060005,
+0x8d020054, 0x10e20010, 0x0, 0x8d020054,
+0x14e2001a, 0x0, 0x3c020800, 0x8c4200d8,
+0x30420020, 0x1040000a, 0x24020001, 0x91030078,
+0x91020083, 0x14430006, 0x24020001, 0x1002021,
+0x1202821, 0x24060004, 0xa001136, 0x0,
+0xa1000084, 0x11400009, 0xa5020014, 0x8f430100,
+0x8f4201f8, 0x440fffe, 0x24020002, 0xaf4301c0,
+0xa34201c4, 0x3c021000, 0xaf4201f8, 0x3e00008,
+0x0, 0x27bdffe8, 0x8fa90028, 0xafbf0010,
+0x804021, 0xe91823, 0x18600073, 0x30c600ff,
+0xa080007c, 0xa0800081, 0x8ca20108, 0xe21023,
+0x440004d, 0x0, 0x8c820050, 0x9483003c,
+0x8c840064, 0x474823, 0x3063ffff, 0x1231821,
+0x83202b, 0x10800004, 0x0, 0x8d020064,
+0xa001199, 0xe21021, 0x9502003c, 0x3042ffff,
+0x1221021, 0xe21021, 0xad02005c, 0x9502003c,
+0x8d03005c, 0x3042ffff, 0x21040, 0xe21021,
+0x43102b, 0x10400003, 0x0, 0xa0011a8,
+0x8d02005c, 0x9502003c, 0x3042ffff, 0x21040,
+0xe21021, 0xad02005c, 0xa1000084, 0xad07004c,
+0x8ca20108, 0xe21023, 0x18400002, 0x24e2fffc,
+0xaca20108, 0x30c20001, 0x1040000a, 0x0,
+0x8d020050, 0xe21023, 0x4410004, 0x1002021,
+0x8d020054, 0x14e20003, 0x0, 0xa0011ca,
+0x24060005, 0x8d020054, 0x14e20047, 0x8fbf0010,
+0x3c020800, 0x8c4200d8, 0x30420020, 0x1040000a,
+0x24020001, 0x91030078, 0x91020083, 0x14430006,
+0x24020001, 0x1002021, 0x24060004, 0x8fbf0010,
+0xa001136, 0x27bd0018, 0xa1000084, 0xa5020014,
+0x8f430100, 0x8f4201f8, 0x440fffe, 0x24020002,
+0xa0011ef, 0x0, 0x8c82005c, 0x491023,
+0x43102b, 0x54400001, 0xac87005c, 0x9502003c,
+0x3042ffff, 0x62102b, 0x14400007, 0x24020002,
+0x9502003c, 0x8d03005c, 0x3042ffff, 0x621821,
+0xad03005c, 0x24020002, 0xad07004c, 0xa1020084,
+0xe000fea, 0x8f440100, 0x1040001b, 0x8fbf0010,
+0x8f430100, 0x8f4201f8, 0x440fffe, 0x24020002,
+0xaf4301c0, 0xa34201c4, 0x3c021000, 0xaf4201f8,
+0xa001205, 0x8fbf0010, 0x30c20010, 0x1040000e,
+0x8fbf0010, 0x8c83005c, 0x9482003c, 0x691823,
+0x3042ffff, 0x621821, 0x3c023fff, 0x3444ffff,
+0x83102b, 0x54400001, 0x801821, 0x1231021,
+0xad02005c, 0x8fbf0010, 0x3e00008, 0x27bd0018,
+0x27bdffe8, 0x8faa0028, 0xafbf0010, 0x804021,
+0xea4823, 0x19200021, 0x30c600ff, 0x8c83005c,
+0x8c820064, 0x6a1823, 0x43102b, 0x50400010,
+0x691821, 0x94a20110, 0x1221021, 0xa4a20110,
+0x94a20110, 0x3042ffff, 0x43102b, 0x1440000a,
+0x3c023fff, 0x94a20110, 0x431023, 0xa4a20110,
+0x9482003c, 0x3042ffff, 0xa001224, 0x621821,
+0xa4a00110, 0x3c023fff, 0x3444ffff, 0x83102b,
+0x54400001, 0x801821, 0x671021, 0xad02005c,
+0xa100007c, 0xa00126c, 0xa1000081, 0x30c20010,
+0x1040003c, 0x0, 0x8c820050, 0x4a1023,
+0x18400038, 0x0, 0x9082007c, 0x24420001,
+0xa082007c, 0x9082007c, 0x3c030800, 0x8c630024,
+0x304200ff, 0x43102b, 0x1440005c, 0x8fbf0010,
+0x8ca20108, 0xe21023, 0x18400058, 0x0,
+0x8c830054, 0x9482003c, 0x6a1823, 0x3042ffff,
+0x31843, 0x21040, 0x43102a, 0x10400005,
+0x0, 0x8c820054, 0x4a1023, 0xa001253,
+0x21043, 0x9482003c, 0x3042ffff, 0x21040,
+0xad020064, 0x9502003c, 0x8d040064, 0x9503003c,
+0x3042ffff, 0x21040, 0x822021, 0x3063ffff,
+0x831821, 0x1431021, 0xad02005c, 0x8d020054,
+0xaca20108, 0x24020002, 0xa1020084, 0xe000fea,
+0x8f440100, 0x10400035, 0x8fbf0010, 0x8f430100,
+0x8f4201f8, 0x440fffe, 0x24020002, 0xa001295,
+0x0, 0xad07004c, 0x8ca20108, 0xe21023,
+0x18400002, 0x24e2fffc, 0xaca20108, 0x30c20001,
+0x1040000a, 0x0, 0x8d020050, 0xe21023,
+0x4410004, 0x1002021, 0x8d020054, 0x14e20003,
+0x0, 0xa00128c, 0x24060005, 0x8d020054,
+0x14e2001a, 0x8fbf0010, 0x3c020800, 0x8c4200d8,
+0x30420020, 0x1040000a, 0x24020001, 0x91030078,
+0x91020083, 0x14430006, 0x24020001, 0x1002021,
+0x24060004, 0x8fbf0010, 0xa001136, 0x27bd0018,
+0xa1000084, 0xa5020014, 0x8f430100, 0x8f4201f8,
+0x440fffe, 0x24020002, 0xaf4301c0, 0xa34201c4,
+0x3c021000, 0xaf4201f8, 0x8fbf0010, 0x3e00008,
+0x27bd0018, 0x8faa0010, 0x8c820050, 0x804021,
+0x30c600ff, 0x4a1023, 0xa04821, 0x18400007,
+0xe01821, 0x24020001, 0xa0800084, 0xa0a00112,
+0xa4820014, 0xa001207, 0xafaa0010, 0xa0800081,
+0xad07004c, 0x8ca20108, 0xe21023, 0x18400002,
+0x24e2fffc, 0xaca20108, 0x30c20001, 0x10400008,
+0x0, 0x8d020050, 0x621023, 0x4410013,
+0x24060005, 0x8d020054, 0x10620010, 0x0,
+0x8d020054, 0x14620011, 0x0, 0x3c020800,
+0x8c4200d8, 0x30420020, 0x1040000a, 0x24020001,
+0x91030078, 0x91020083, 0x14430006, 0x24020001,
+0x1002021, 0x1202821, 0x24060004, 0xa001136,
+0x0, 0xa1000084, 0xa5020014, 0x3e00008,
+0x0, 0x27bdffe0, 0xafbf0018, 0x27420100,
+0x9046000a, 0x8c480014, 0x8c8b004c, 0x90820084,
+0x30c900ff, 0x1681823, 0x304a00ff, 0x1c60001a,
+0x2d460006, 0x24020001, 0x1421004, 0x10c00016,
+0x30430003, 0x1203021, 0x1003821, 0x14600007,
+0x304c000c, 0x15800009, 0x30420030, 0x1440000b,
+0x8fbf0018, 0xa0012f6, 0x0, 0xe001207,
+0xafab0010, 0xa0012f6, 0x8fbf0018, 0xe00117c,
+0xafab0010, 0xa0012f6, 0x8fbf0018, 0xafab0010,
+0xe00129c, 0xafaa0014, 0x8fbf0018, 0x3e00008,
+0x27bd0020, 0x24020003, 0xa0820084, 0x8c820054,
+0x3e00008, 0xaca20108, 0x3c020008, 0x3421821,
+0x90620081, 0x24060043, 0x3c076019, 0x24420001,
+0xa0620081, 0x90630081, 0x3c020800, 0x8c4200c0,
+0x306300ff, 0x14620010, 0x2403ff80, 0x3c020800,
+0x8c4200e0, 0x821021, 0x431024, 0xaf420024,
+0x3c020800, 0x8c4200e0, 0x3c03000a, 0x821021,
+0x3042007f, 0x3421021, 0x431021, 0x944500d4,
+0xa000bd2, 0x30a5ffff, 0x3e00008, 0x0,
+0x27bdffe0, 0xafbf0018, 0xafb10014, 0xafb00010,
+0x8f420180, 0x808021, 0xa08821, 0xe0012fd,
+0x402021, 0xa2000084, 0x8e020054, 0x8fbf0018,
+0x8fb00010, 0xae220108, 0x8fb10014, 0x3e00008,
+0x27bd0020, 0x27bdffe0, 0x3c020008, 0xafb00010,
+0xafbf0018, 0xafb10014, 0x3428021, 0x8f510140,
+0x92030084, 0x8e040050, 0x8e02004c, 0x14820040,
+0x306600ff, 0x3c020800, 0x8c4200e0, 0x2403ff80,
+0x2221021, 0x431024, 0xaf420024, 0x3c020800,
+0x8c4200e0, 0x9744007c, 0x92050081, 0x2221021,
+0x3042007f, 0x3421821, 0x3c02000a, 0x621821,
+0x14a0000b, 0x3084ffff, 0x24020005, 0x54c20014,
+0x248205dc, 0x90620112, 0x24420001, 0xa0620112,
+0x24020c80, 0xaf420024, 0xa001355, 0x24020005,
+0xa0600112, 0x24020005, 0x14c20009, 0x248205dc,
+0x92020081, 0x2c420007, 0x50400005, 0x24820a00,
+0x92030081, 0x24020014, 0x621004, 0x821021,
+0x3044ffff, 0xa6040014, 0xe0012fd, 0x2202021,
+0x9602003c, 0x8e03004c, 0x2202021, 0x3042ffff,
+0x21040, 0x621821, 0xe000348, 0xae03005c,
+0x9202007d, 0x2202021, 0x34420040, 0xe000351,
+0xa202007d, 0x8f4201f8, 0x440fffe, 0x24020002,
+0xaf5101c0, 0xa34201c4, 0x3c021000, 0xaf4201f8,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0020, 0x0 };
+u32 bce_COM_b06FwData[(0x0/4) + 1] = { 0x0 };
+u32 bce_COM_b06FwRodata[(0x14/4) + 1] = {
+0x8000ec8,
+0x8000f10, 0x8000f50, 0x8000f9c, 0x8000fd0,
+0x0 };
+u32 bce_COM_b06FwBss[(0xbc/4) + 1] = { 0x0 };
+u32 bce_COM_b06FwSbss[(0x38/4) + 1] = { 0x0 };
+u32 bce_COM_b06FwSdata[(0x0/4) + 1] = { 0x0 };
+
+
+int bce_RXP_b06FwReleaseMajor = 0x1;
+int bce_RXP_b06FwReleaseMinor = 0x0;
+int bce_RXP_b06FwReleaseFix = 0x0;
+u32 bce_RXP_b06FwStartAddr = 0x080031d8;
+u32 bce_RXP_b06FwTextAddr = 0x08000000;
+int bce_RXP_b06FwTextLen = 0x70dc;
+u32 bce_RXP_b06FwDataAddr = 0x00000000;
+int bce_RXP_b06FwDataLen = 0x0;
+u32 bce_RXP_b06FwRodataAddr = 0x080070dc;
+int bce_RXP_b06FwRodataLen = 0x24;
+u32 bce_RXP_b06FwBssAddr = 0x08007178;
+int bce_RXP_b06FwBssLen = 0x450;
+u32 bce_RXP_b06FwSbssAddr = 0x08007120;
+int bce_RXP_b06FwSbssLen = 0x54;
+u32 bce_RXP_b06FwSDataAddr = 0x00000000;
+int bce_RXP_b06FwSDataLen = 0x0;
+u32 bce_RXP_b06FwText[(0x70dc/4) + 1] = {
+0xa000c76, 0x0, 0x0,
+0xd, 0x72787034, 0x2e362e31, 0x37000000,
+0x4061103, 0x0, 0x1, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x10000003, 0x0, 0xd, 0xd,
+0x3c020800, 0x24427120, 0x3c030800, 0x246375c8,
+0xac400000, 0x43202b, 0x1480fffd, 0x24420004,
+0x3c1d0800, 0x37bd7ffc, 0x3a0f021, 0x3c100800,
+0x261031d8, 0x3c1c0800, 0x279c7120, 0xe001164,
+0x0, 0xd, 0x30a5ffff, 0x30c600ff,
+0x27430180, 0x8f4201b8, 0x440fffe, 0x24020002,
+0xac640000, 0xa4650008, 0xa066000a, 0xa062000b,
+0x3c021000, 0xac670018, 0x3e00008, 0xaf4201b8,
+0x3c036000, 0x8c624ff8, 0x440fffe, 0x3c020200,
+0xac644fc0, 0xac624fc4, 0x3c021000, 0x3e00008,
+0xac624ff8, 0x27bdffe8, 0xafbf0014, 0xafb00010,
+0xe0011b3, 0x808021, 0x93620005, 0x2403fffe,
+0x2002021, 0x431024, 0x8fbf0014, 0x8fb00010,
+0xa3620005, 0xa0011bc, 0x27bd0018, 0x27bdffe8,
+0xafb00010, 0xafbf0014, 0xe000ea4, 0x808021,
+0x93620000, 0x24030050, 0x304200ff, 0x14430004,
+0x24020100, 0xaf420180, 0xa000cc1, 0x2002021,
+0xaf400180, 0x2002021, 0x8fbf0014, 0x8fb00010,
+0xa000f7d, 0x27bd0018, 0x27bdff98, 0xafbe0060,
+0xafb7005c, 0xafb20048, 0xafbf0064, 0xafb60058,
+0xafb50054, 0xafb40050, 0xafb3004c, 0xafb10044,
+0xafb00040, 0x8f500128, 0x9363003f, 0x93620005,
+0xf021, 0x307200ff, 0x21027, 0x30420001,
+0xb821, 0x14400066, 0xafa00038, 0x93420116,
+0x93430112, 0x304200ff, 0x306300ff, 0x3422021,
+0x3431021, 0x24454000, 0x8f820000, 0x10400018,
+0x24884000, 0x8f420104, 0x3c030001, 0x431024,
+0x10400013, 0x0, 0x8ca3000c, 0x8f620030,
+0x146201a2, 0x24020001, 0x8ca30010, 0x8f62002c,
+0x1462019e, 0x24020001, 0x9762003a, 0x94834000,
+0x3042ffff, 0x14620199, 0x24020001, 0x97620038,
+0x95030002, 0x3042ffff, 0x14620194, 0x24020001,
+0x93620000, 0x304300ff, 0x24020020, 0x10620005,
+0x24020050, 0x10620006, 0x0, 0xa000d0b,
+0x0, 0xd, 0xa000d14, 0xafa00030,
+0x3c1e0800, 0x27de7188, 0xa000d14, 0xafa00030,
+0x3c020800, 0x8c4200dc, 0x24420001, 0x3c010800,
+0xac2200dc, 0xe00127d, 0x0, 0xa000e8f,
+0x8fbf0064, 0x8f420104, 0x3c030020, 0x9113000d,
+0x431024, 0x2202b, 0x42140, 0xafa40030,
+0x8f430104, 0x3c020040, 0x621824, 0x14600002,
+0x34870040, 0x803821, 0x32620020, 0xafa70030,
+0x14400002, 0x34e60080, 0xe03021, 0x10c0000b,
+0xafa60030, 0x93c50008, 0x8f67004c, 0x2002021,
+0x52b00, 0x34a50081, 0x30a5f081, 0xe000c8d,
+0x30c600ff, 0xa000e8c, 0x0, 0x9362003e,
+0x30420040, 0x1040000e, 0x24020004, 0x56420006,
+0x24020012, 0x2002021, 0xe0013da, 0x1003021,
+0xa000e8f, 0x8fbf0064, 0x16420005, 0x0,
+0xe000cb2, 0x2021, 0xa000e8f, 0x8fbf0064,
+0x9742011a, 0x9504000e, 0x93630035, 0x32650004,
+0x3055ffff, 0x642004, 0xafa4003c, 0x8d110004,
+0x10a00015, 0x8d140008, 0x9362003e, 0x30420040,
+0x10400007, 0x0, 0xe00133b, 0x2202021,
+0x1040000d, 0x0, 0xa000e8c, 0x0,
+0x8f620044, 0x2221023, 0x4400132, 0x0,
+0x8f620048, 0x2221023, 0x441012e, 0x24040016,
+0xa000da2, 0x8fc20004, 0x8f620048, 0x2221023,
+0x4400008, 0x0, 0x3c020800, 0x8c423100,
+0x24420001, 0x3c010800, 0xac223100, 0xa000e81,
+0x0, 0x8f620040, 0x2221023, 0x18400009,
+0x2402000c, 0x3c020800, 0x8c423100, 0x327300fc,
+0xa821, 0x24420001, 0x3c010800, 0xac223100,
+0x2402000c, 0xafa20030, 0x8f620040, 0x511823,
+0x1860000d, 0x2a3102a, 0x14400103, 0x0,
+0x14750006, 0x2a31023, 0x3a620001, 0x30420001,
+0x144000fd, 0x0, 0x2a31023, 0x2238821,
+0xa000d8a, 0x3055ffff, 0x1821, 0x32620002,
+0x1040001a, 0x32620010, 0x9362003e, 0x30420040,
+0x50400011, 0x8fc20004, 0xe0011b3, 0x2002021,
+0x24020018, 0xa362003f, 0x93620005, 0x2403fffe,
+0x2002021, 0x431024, 0xe0011bc, 0xa3620005,
+0x24040039, 0x2821, 0xe001324, 0x24060018,
+0xa000e8e, 0x24020001, 0x24040017, 0x40f809,
+0x0, 0xa000e8e, 0x24020001, 0x104000e5,
+0x0, 0x8f64004c, 0x8f620054, 0x2821023,
+0x1c4000e0, 0x2841023, 0x4420001, 0x80a021,
+0xafa30018, 0xafb10010, 0xafb50014, 0x93420120,
+0x8f660040, 0x9764003c, 0x304200ff, 0x3422821,
+0x8fa2003c, 0xa32821, 0x8fa30030, 0x3084ffff,
+0x44202b, 0x8fc20000, 0x641825, 0x24a54000,
+0xafa50020, 0xafa60028, 0xafa30030, 0xafa60024,
+0xafa0002c, 0xafb40034, 0x40f809, 0x27a40010,
+0x8fa20030, 0x30420002, 0x54400001, 0x327300fe,
+0x9362003e, 0x30420040, 0x10400037, 0x8fa30014,
+0x8f620054, 0x1682001a, 0x32620001, 0x24020014,
+0x12420010, 0x2a420015, 0x10400006, 0x24020016,
+0x2402000c, 0x12420007, 0x32620001, 0xa000deb,
+0x0, 0x12420005, 0x32620001, 0xa000deb,
+0x0, 0xa000de6, 0x2417000e, 0xa000de6,
+0x24170010, 0xa000dea, 0x24170012, 0x93620023,
+0x2403ffbd, 0x431024, 0xa3620023, 0x32620001,
+0x10400019, 0x8fa30014, 0x2402000c, 0x1242000e,
+0x2a42000d, 0x10400006, 0x2402000e, 0x2402000a,
+0x12420007, 0x8fa20024, 0xa000e03, 0x24420001,
+0x12420008, 0x8fa20024, 0xa000e03, 0x24420001,
+0xa000e01, 0x24170008, 0x2402000e, 0x16e20002,
+0x24170016, 0x24170010, 0x8fa20024, 0x24420001,
+0xafa20024, 0x8fa30014, 0x8fa20024, 0x8f760040,
+0x431021, 0xaf620040, 0x8fa2003c, 0x93640036,
+0x8f630040, 0x2829021, 0x3402ffff, 0x821004,
+0x621821, 0xaf630048, 0x8fa60030, 0x30c20008,
+0x1040000e, 0x0, 0x8f620058, 0x16420004,
+0x30c600ff, 0x9742011a, 0x50400001, 0x34c60010,
+0x93c50008, 0x8fa70034, 0x2002021, 0x52b00,
+0x34a50080, 0xe000c8d, 0x30a5f080, 0x8f620040,
+0x561023, 0x18400017, 0x8fa20018, 0x3c020800,
+0x8c423198, 0x30420010, 0x10400009, 0x24020001,
+0x97620068, 0x14400006, 0x24020001, 0xa7620068,
+0x9742007a, 0x2442000a, 0xa000e47, 0xa7620012,
+0xa7620012, 0xe0011b3, 0x2002021, 0x9362007d,
+0x24030001, 0x2002021, 0x34420001, 0xa000e45,
+0xafa30038, 0x1840000a, 0x0, 0xe0011b3,
+0x2002021, 0x9362007d, 0x24030001, 0x2002021,
+0xafa30038, 0x34420004, 0xe0011bc, 0xa362007d,
+0x9362003e, 0x30420040, 0x1440000c, 0x32620001,
+0x1040000a, 0x0, 0x8f630040, 0x8fc20004,
+0x24040018, 0x24630001, 0x40f809, 0xaf630040,
+0x8fa20030, 0xa000e8e, 0x30420004, 0x8f620058,
+0x10520010, 0x0, 0x8f620018, 0x2221023,
+0x1c400008, 0x24020001, 0x8f620018, 0x16220009,
+0x0, 0x8f62001c, 0x2821023, 0x4400005,
+0x24020001, 0xaf720058, 0xafa20038, 0xaf710018,
+0xaf74001c, 0x12e0000b, 0x8fa30038, 0xe0011b3,
+0x2002021, 0xa377003f, 0xe0011bc, 0x2002021,
+0x2e03021, 0x24040037, 0xe001324, 0x2821,
+0x8fa30038, 0x10600003, 0x0, 0xe000c9b,
+0x2002021, 0x12a00005, 0x1821, 0x8fa20030,
+0x30420004, 0x50400011, 0x601021, 0x24030001,
+0xa000e8e, 0x601021, 0xe0011b3, 0x2002021,
+0x9362007d, 0x2002021, 0x34420004, 0xe0011bc,
+0xa362007d, 0xe000c9b, 0x2002021, 0xa000e8e,
+0x24020001, 0xaf400044, 0x24020001, 0x8fbf0064,
+0x8fbe0060, 0x8fb7005c, 0x8fb60058, 0x8fb50054,
+0x8fb40050, 0x8fb3004c, 0x8fb20048, 0x8fb10044,
+0x8fb00040, 0x3e00008, 0x27bd0068, 0x8c870004,
+0x8c860000, 0x1021, 0xe53821, 0xe5282b,
+0xc23021, 0xc53021, 0xac870004, 0x3e00008,
+0xac860000, 0x8f4201b8, 0x440fffe, 0x24020800,
+0xaf4201b8, 0x3e00008, 0x0, 0x3c020008,
+0x3422821, 0x94a20048, 0x3084ffff, 0x1040001b,
+0x24840012, 0x94a20048, 0x3042ffff, 0x44102a,
+0x10400017, 0x24020003, 0x2402001a, 0x93430120,
+0xa342018b, 0x8f820008, 0x306300ff, 0x30424000,
+0x10400009, 0x2463fffe, 0x94a20048, 0x3042ffff,
+0x43102b, 0x14400005, 0x8f820014, 0xa7430194,
+0xa000ec8, 0x34420001, 0x8f820014, 0x2403fffe,
+0x431024, 0x3e00008, 0xaf820014, 0x24020003,
+0x3e00008, 0xa342018b, 0x27bdffe0, 0xafb20018,
+0xafb10014, 0xafb00010, 0xafbf001c, 0x30b1ffff,
+0x30d0ffff, 0x30f2ffff, 0x8f4201b8, 0x440fffe,
+0x0, 0xaf440180, 0xaf440020, 0xe000eaa,
+0x2002021, 0x8f830008, 0x8f840014, 0xa751018c,
+0xa750018e, 0xa7430190, 0x8f830004, 0x30828000,
+0xaf4301a8, 0xa7520188, 0x1040000e, 0x8f820014,
+0x93420116, 0x304200fc, 0x24420004, 0x5a1021,
+0x8c424000, 0x3042ffff, 0x14400006, 0x8f820014,
+0x3c02ffff, 0x34427fff, 0x821024, 0xaf820014,
+0x8f820014, 0x2403bfff, 0x431024, 0xa74201a6,
+0x9743010c, 0x8f420104, 0x31c00, 0x3042ffff,
+0x621825, 0xaf4301ac, 0x3c021000, 0xaf4201b8,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0x27bdffe0, 0xafb20018,
+0x30d2ffff, 0xaf440180, 0xaf440020, 0x2402021,
+0xafb10014, 0xafb00010, 0x30f1ffff, 0xafbf001c,
+0xe000eaa, 0x30b0ffff, 0x8f830014, 0x2402bfff,
+0xa750018c, 0x621824, 0x8f820008, 0xa752018e,
+0xa7510188, 0xa74301a6, 0xa7420190, 0x3c021000,
+0xaf4201b8, 0x8fbf001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x3e00008, 0x27bd0020, 0x27430180,
+0x8f4201b8, 0x440fffe, 0x24022000, 0xa4620008,
+0x24020002, 0xa062000b, 0xa4600010, 0x3c021000,
+0xaf4201b8, 0x3e00008, 0x0, 0x8f470070,
+0x93420112, 0x8f830008, 0x27bdfff0, 0x304200ff,
+0x22882, 0x30620100, 0x3021, 0x10400043,
+0x24a40003, 0x30624000, 0x10400010, 0x30622000,
+0x41080, 0x5a1021, 0x8c434000, 0x24a40004,
+0x41080, 0xafa30000, 0x5a1021, 0x8c424000,
+0xafa20004, 0x93420116, 0x304200fc, 0x5a1021,
+0x8c424000, 0xa000f56, 0xafa20008, 0x1040002f,
+0x3021, 0x41080, 0x5a1021, 0x8c434000,
+0x24a40004, 0x41080, 0xafa30000, 0x5a1021,
+0x8c424000, 0xafa00008, 0xafa20004, 0x8fa80008,
+0x3021, 0x2021, 0x240a0008, 0x3c090800,
+0x25290100, 0x3a41021, 0x148a0003, 0x42a00,
+0x1100000a, 0x0, 0x90420000, 0x24840001,
+0x2c83000c, 0xa21021, 0x21080, 0x491021,
+0x8c420000, 0x1460fff3, 0xc23026, 0x3c040800,
+0x8c843104, 0x8f420070, 0x2c830020, 0x10600009,
+0x473823, 0x3c030800, 0x24633108, 0x41080,
+0x431021, 0x24830001, 0xac470000, 0x3c010800,
+0xac233104, 0xaf860004, 0x24060001, 0xc01021,
+0x3e00008, 0x27bd0010, 0x3c020800, 0x8c420038,
+0x27bdffd0, 0xafb50024, 0xafb3001c, 0xafbf0028,
+0xafb40020, 0xafb20018, 0xafb10014, 0xafb00010,
+0x3c150800, 0x26b50038, 0x14400002, 0x2453ffff,
+0x9821, 0x8f840008, 0x30824000, 0x1040000a,
+0x30828000, 0x3c020020, 0x821024, 0x50400006,
+0x30828000, 0x8f820014, 0x2403bfff, 0x831824,
+0xa000fa2, 0x34421000, 0x1040000a, 0x3c020020,
+0x821024, 0x10400007, 0x8f820014, 0x3c03ffff,
+0x34637fff, 0x831824, 0x34428000, 0xaf820014,
+0xaf830008, 0xe000f2e, 0x0, 0x14400008,
+0x8f840008, 0x9743011e, 0x9742011c, 0x3063ffff,
+0x21400, 0x621825, 0xaf830004, 0x8f840008,
+0x9742010c, 0x30831000, 0x10600011, 0x3046ffff,
+0x30820020, 0x1440000f, 0x24120005, 0x3c021000,
+0x821024, 0x1040000b, 0x24120001, 0x3c030e00,
+0x3c020dff, 0x831824, 0x3442ffff, 0x43102b,
+0x10400004, 0x0, 0xa000fc4, 0x24120005,
+0x24120001, 0x3c050800, 0x8ca50034, 0x54a00019,
+0x8f840008, 0x8f82001c, 0x54400016, 0x8f840008,
+0x8f820014, 0x30424000, 0x54400012, 0x8f840008,
+0x3c021f01, 0x821024, 0x3c031000, 0x1443000d,
+0x8f840008, 0x30c20200, 0x1440000b, 0x3c020001,
+0x9746010e, 0x36470002, 0x2021, 0x24c60004,
+0x30c6ffff, 0xe000f05, 0x24050002, 0xa00108d,
+0x8fbf0028, 0x3c020001, 0x821024, 0x1040000c,
+0x8f830014, 0x3c020800, 0x8c4200d8, 0x9746010e,
+0x24040080, 0x24420001, 0x30c6ffff, 0x24050002,
+0x3c010800, 0xac2200d8, 0xa00108a, 0x24070003,
+0x30624000, 0x10400006, 0x3c021000, 0x3c020f00,
+0x821024, 0x50400001, 0x93420116, 0x3c021000,
+0x821024, 0x10400044, 0x0, 0x3c020800,
+0x8c420030, 0x1040000c, 0x30624000, 0x1040000a,
+0x3c030f00, 0x831824, 0x3c020100, 0x43102b,
+0x14400005, 0x0, 0x9746010e, 0x36470002,
+0xa001087, 0x24040080, 0x10a0000d, 0x30820100,
+0x1040000b, 0x3c020f00, 0x821024, 0x3c030200,
+0x10430007, 0x8f820004, 0x531024, 0x551021,
+0x90420004, 0x24420004, 0xa00103a, 0x221c0,
+0x0, 0x8f860008, 0x3c050800, 0x8ca500d0,
+0x61602, 0x3050000f, 0x38a20001, 0x2c420001,
+0x2e03000c, 0x431024, 0x14400018, 0x1021c0,
+0x2602fffc, 0x2c420004, 0x54400014, 0x2021,
+0x38a20002, 0x2c420001, 0x431024, 0x10400003,
+0x61242, 0xa00103a, 0x2021, 0x10182b,
+0x431024, 0x50400009, 0x1021c0, 0x9746010e,
+0x2021, 0x24050002, 0x24c60004, 0x30c6ffff,
+0xe000ecd, 0x3247fffb, 0x1021c0, 0x9746010e,
+0xa001087, 0x36470002, 0x8f424000, 0x3c110800,
+0x8e310024, 0x30420100, 0x10400040, 0x32220001,
+0x2208021, 0x10a00017, 0x32540004, 0x30820100,
+0x10400015, 0x24020001, 0x3c020f00, 0x821024,
+0x3c030200, 0x1043000f, 0x8f820004, 0x9746010e,
+0x2403821, 0x531024, 0x551021, 0x90440004,
+0x24c60004, 0x30c6ffff, 0x24840004, 0x421c0,
+0xe000ecd, 0x24050002, 0x2402fffe, 0x2228024,
+0x3252fffb, 0x24020001, 0x16020007, 0x32020001,
+0x32420004, 0x50400001, 0x36520002, 0x9746010e,
+0xa001086, 0x2403821, 0x1040000a, 0x32020004,
+0x9746010e, 0x2403821, 0x2021, 0x24c60004,
+0x30c6ffff, 0xe000ecd, 0x24050002, 0x3252fffb,
+0x32020004, 0x1040000b, 0x8f820008, 0x30420800,
+0x10400008, 0x0, 0x9746010e, 0x2403821,
+0x24040100, 0x24c60004, 0x30c6ffff, 0xe000ecd,
+0x24050002, 0x56800010, 0x8fbf0028, 0xe000f22,
+0x0, 0xa00108d, 0x8fbf0028, 0x1040000a,
+0x8fbf0028, 0x9746010e, 0x36470002, 0x2021,
+0x24c60004, 0x30c6ffff, 0x24050002, 0xe000ecd,
+0x0, 0x8fbf0028, 0x8fb50024, 0x8fb40020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x1021, 0x3e00008, 0x27bd0030, 0x27430180,
+0x8f4201b8, 0x440fffe, 0x0, 0x8f420148,
+0x21402, 0xa4620008, 0x24020002, 0xa062000b,
+0x8f420148, 0xa4620010, 0x8f420144, 0xac620024,
+0x3c021000, 0x3e00008, 0xaf4201b8, 0x27bdffe8,
+0xafb00010, 0x3c04600c, 0xafbf0014, 0x8c825000,
+0x2403ff7f, 0x3c1a8000, 0x431024, 0x3442380c,
+0xac825000, 0x24020003, 0x3c106000, 0xaf420008,
+0x8e020808, 0x3c1b8008, 0x3c010800, 0xac200020,
+0x3042fff0, 0x38420010, 0x2c420001, 0xe001b39,
+0xaf820000, 0x3c04ffff, 0x3c020400, 0x34830806,
+0x3442000c, 0xae021948, 0xae03194c, 0x3c056016,
+0x8e021980, 0x8ca30000, 0x34420200, 0x641824,
+0xae021980, 0x3c025353, 0x14620003, 0x34a47c00,
+0x8ca20004, 0x502021, 0x8c82007c, 0x8c830078,
+0x8fbf0014, 0x8fb00010, 0x27bd0018, 0xaf820018,
+0x3e00008, 0xaf830010, 0x27bdffe8, 0xafbf0010,
+0x8f434000, 0x3402ffff, 0x3c040800, 0x248400f0,
+0x10620007, 0x0, 0x8f424000, 0x3c040800,
+0x248400e8, 0x30420100, 0x10400009, 0x0,
+0x9745010e, 0xe000e9a, 0x30a5ffff, 0x9745010e,
+0x3c040800, 0x248431c8, 0xa0010fc, 0x8fbf0010,
+0x8f434000, 0x8f820010, 0x3c040800, 0x248400e0,
+0x1462000a, 0x0, 0x8f434004, 0x8f820018,
+0x14620006, 0x0, 0x9745010e, 0x3c040800,
+0x248431b8, 0xa0010fc, 0x8fbf0010, 0x9745010e,
+0x8fbf0010, 0x30a5ffff, 0xa000e9a, 0x27bd0018,
+0x27bdffe8, 0xafbf0010, 0x8f420128, 0xaf420020,
+0x8f420104, 0x8f430100, 0xaf820008, 0xe000ea4,
+0xaf830014, 0xe0010d5, 0x0, 0x3c020800,
+0x8c4200c0, 0x10400008, 0x8f840008, 0x3c020800,
+0x8c4200c4, 0x24420001, 0x3c010800, 0xac2200c4,
+0xa001135, 0x0, 0x3c020010, 0x821024,
+0x1440000a, 0x8f830014, 0x3c020800, 0x8c420020,
+0x24420001, 0x3c010800, 0xac220020, 0xe000f7d,
+0x2021, 0xa001133, 0x0, 0x2402bfff,
+0x621024, 0x10400008, 0x0, 0x240287ff,
+0x621024, 0x14400008, 0x3c020060, 0x821024,
+0x10400005, 0x0, 0xe000cc5, 0x0,
+0xa001133, 0x0, 0xe00119d, 0x0,
+0x10400006, 0x3c024000, 0x8f430124, 0x3c026020,
+0xac430014, 0x0, 0x3c024000, 0xaf420138,
+0x0, 0x8fbf0010, 0x3e00008, 0x27bd0018,
+0x27bdffe8, 0xafbf0010, 0x8f420140, 0x3c044000,
+0xaf420020, 0x8f430148, 0x3c027000, 0x621824,
+0x10640010, 0x83102b, 0x14400006, 0x3c026000,
+0x3c022000, 0x10620007, 0x0, 0xa00115f,
+0x3c024000, 0x1062000b, 0x3c024000, 0xa00115f,
+0x0, 0xe001096, 0x0, 0xa00115f,
+0x3c024000, 0xe0011c1, 0x0, 0xa00115f,
+0x3c024000, 0xe001b46, 0x0, 0x3c024000,
+0xaf420178, 0x0, 0x8fbf0010, 0x3e00008,
+0x27bd0018, 0x27bdffe8, 0xafbf0014, 0xe0010a6,
+0xafb00010, 0x3c028000, 0x34420070, 0x8c430000,
+0x403821, 0xaf830020, 0x603021, 0x8ce80000,
+0x3c050800, 0x8ca500fc, 0x3c040800, 0x8c8400f8,
+0x1063023, 0x1021, 0xa62821, 0xa6302b,
+0x822021, 0x862021, 0x3c010800, 0xac2500fc,
+0x3c010800, 0xac2400f8, 0x8f500000, 0x32020003,
+0x1040ffee, 0x1003021, 0x8ce60000, 0x3c050800,
+0x8ca500fc, 0x3c040800, 0x8c8400f8, 0xc83023,
+0xa62821, 0x1021, 0xa6302b, 0x822021,
+0x862021, 0x32070001, 0x3c010800, 0xac2500fc,
+0xaf880020, 0x3c010800, 0xac2400f8, 0x10e00004,
+0x32020002, 0xe0010ff, 0x0, 0x32020002,
+0x5040ffd1, 0x3c028000, 0xe00113f, 0x0,
+0xa001169, 0x3c028000, 0x8f420100, 0x3042003e,
+0x14400011, 0x24020001, 0xaf400048, 0x8f420100,
+0x304207c0, 0x10400005, 0x0, 0xaf40004c,
+0xaf400050, 0x3e00008, 0x24020001, 0xaf400054,
+0xaf400040, 0x8f420100, 0x30423800, 0x54400001,
+0xaf400044, 0x24020001, 0x3e00008, 0x0,
+0x3c029000, 0x34420001, 0x822025, 0xaf440020,
+0x8f420020, 0x440fffe, 0x0, 0x3e00008,
+0x0, 0x3c028000, 0x34420001, 0x822025,
+0x3e00008, 0xaf440020, 0x27bdffe0, 0xafb20018,
+0xafbf001c, 0xafb10014, 0xafb00010, 0x8f500140,
+0x8f510148, 0x3c028000, 0x119402, 0x2222024,
+0x324300ff, 0x2402000e, 0x1062008a, 0x2862000f,
+0x10400012, 0x28620037, 0x24020006, 0x1062003b,
+0x28620007, 0x10400007, 0x24020009, 0x1060001a,
+0x24020001, 0x10620025, 0x0, 0xa001276,
+0x0, 0x1062007b, 0x2402000b, 0x1062005b,
+0x3222ffff, 0xa001276, 0x0, 0x10400008,
+0x24020038, 0x28620035, 0x10400080, 0x2402001f,
+0x1062007e, 0x0, 0xa001276, 0x0,
+0x1062007a, 0x24020080, 0x10620042, 0x0,
+0xa001276, 0x0, 0x8f4201b8, 0x440fffe,
+0x24020001, 0xaf500180, 0xaf400184, 0xa7520188,
+0xa342018a, 0x24020002, 0xa342018b, 0xa7510190,
+0x8f420144, 0xa001271, 0xaf4201a4, 0x1080000a,
+0x24020002, 0x3c010800, 0xa0227178, 0x3c010800,
+0xac307180, 0x8f420144, 0x3c010800, 0xac22717c,
+0xa001278, 0x8fbf001c, 0x8f4201b8, 0x440fffe,
+0x24020002, 0xa00125b, 0x0, 0x8f4201b8,
+0x440fffe, 0x0, 0xaf500180, 0x3c020800,
+0x90427178, 0x10400003, 0x1821, 0x3c030800,
+0x8c637180, 0xaf430184, 0xa7520188, 0x3c020800,
+0x90427178, 0x1821, 0x34420001, 0xa342018a,
+0x24020002, 0xa342018b, 0xa7510190, 0x8f420144,
+0xaf4201a4, 0x3c020800, 0x90427178, 0x10400003,
+0x3c021000, 0x3c030800, 0x8c63717c, 0xaf4301a8,
+0xaf4201b8, 0x3c010800, 0xa0207178, 0xa001278,
+0x8fbf001c, 0x8f4201b8, 0x440fffe, 0x24020002,
+0xa342018b, 0xa7520188, 0xa7510190, 0x8f420144,
+0xa7420192, 0xa001273, 0x3c021000, 0x1440001d,
+0x0, 0x93620005, 0x30420004, 0x14400037,
+0x0, 0xe0011b3, 0x2002021, 0x93620005,
+0x2002021, 0x34420004, 0xe0011bc, 0xa3620005,
+0x93620005, 0x30420004, 0x14400002, 0x0,
+0xd, 0x93620000, 0x24030020, 0x304200ff,
+0x14430008, 0x0, 0x8f4201b8, 0x440fffe,
+0x24020005, 0xaf500180, 0xa342018b, 0x3c021000,
+0xaf4201b8, 0x8f4201b8, 0x440fffe, 0x24020002,
+0xaf400180, 0xaf500184, 0xa7520188, 0xa342018a,
+0xa342018b, 0xa7510190, 0xaf4001a4, 0x8f420144,
+0xaf4201a8, 0xa001273, 0x3c021000, 0x8f4201b8,
+0x440fffe, 0x24020001, 0xaf500180, 0xaf400184,
+0xa7520188, 0xa342018a, 0x24020002, 0xa342018b,
+0xa7510190, 0xaf4001a4, 0xaf4001a8, 0x3c021000,
+0xaf4201b8, 0xa001278, 0x8fbf001c, 0xd,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0x27bdffe8, 0xafbf0010,
+0xe000ea4, 0x0, 0xaf400180, 0x8fbf0010,
+0x2021, 0xa000f7d, 0x27bd0018, 0x3084ffff,
+0x30a5ffff, 0x1821, 0x10800007, 0x0,
+0x30820001, 0x10400002, 0x42042, 0x651821,
+0xa001289, 0x52840, 0x3e00008, 0x601021,
+0x10c00006, 0x24c6ffff, 0x8ca20000, 0x24a50004,
+0xac820000, 0xa001293, 0x24840004, 0x3e00008,
+0x0, 0x10a00008, 0x24a3ffff, 0xac860000,
+0x0, 0x0, 0x2402ffff, 0x2463ffff,
+0x1462fffa, 0x24840004, 0x3e00008, 0x0,
+0x27bdffe0, 0xafb20018, 0xafb10014, 0xafb00010,
+0xafbf001c, 0x9482000c, 0xa08821, 0x24900014,
+0x21302, 0x21080, 0x829021, 0x3021,
+0xa02021, 0xe00129c, 0x24050005, 0x212102b,
+0x10400057, 0x1021, 0x92030000, 0x2c620009,
+0x50400051, 0x92020001, 0x31080, 0x3c030800,
+0x246370dc, 0x431021, 0x8c420000, 0x400008,
+0x0, 0x92030001, 0x2402000c, 0x14620048,
+0x24020001, 0x2501023, 0x2c42000a, 0x14400036,
+0x26100002, 0x8e220000, 0x34420100, 0xae220000,
+0x92020000, 0x92030001, 0x92040002, 0x92050003,
+0x31c00, 0x21600, 0x431025, 0x42200,
+0x441025, 0x451025, 0x26100004, 0xae220004,
+0x92020000, 0x92030001, 0x92040002, 0x92050003,
+0x21600, 0x31c00, 0x431025, 0x42200,
+0x441025, 0x451025, 0x26100004, 0xa0012b6,
+0xae220008, 0x92030001, 0x24020004, 0x14620016,
+0x26100002, 0x92020000, 0x92040001, 0x8e230000,
+0x21200, 0x441025, 0x34630004, 0x26100002,
+0xae22000c, 0xa0012b6, 0xae230000, 0x92030001,
+0x24020003, 0x14620008, 0x26100002, 0x8e220000,
+0x92030000, 0x26100001, 0x34420008, 0xa2230010,
+0xa0012b6, 0xae220000, 0xa00130f, 0x24020001,
+0x92030001, 0x24020002, 0x10620002, 0x26040002,
+0x2402021, 0xa0012b6, 0x808021, 0xa0012b6,
+0x26100001, 0x92020001, 0xa0012b6, 0x2028021,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0x27bdffe8, 0xafbf0014,
+0xafb00010, 0xe0011b3, 0x808021, 0x9362007d,
+0x2002021, 0x34420020, 0xe0011bc, 0xa362007d,
+0x2002021, 0x8fbf0014, 0x8fb00010, 0xa000c9b,
+0x27bd0018, 0x308300ff, 0x30a500ff, 0x30c600ff,
+0x27470180, 0x8f4201b8, 0x440fffe, 0x0,
+0x8f420128, 0x34634000, 0xace20000, 0x24020001,
+0xace00004, 0xa4e30008, 0xa0e2000a, 0x24020002,
+0xa0e2000b, 0x3c021000, 0xa4e50010, 0xace00024,
+0xace00028, 0xa4e60012, 0x3e00008, 0xaf4201b8,
+0x27bdffe8, 0xafbf0010, 0x9362003f, 0x24030012,
+0x304200ff, 0x1043000d, 0x803021, 0x8f620044,
+0x821023, 0x440000a, 0x8fbf0010, 0x8f620048,
+0x24040039, 0x2821, 0xc21023, 0x4410004,
+0x24060012, 0xe001324, 0x0, 0x8fbf0010,
+0x24020001, 0x3e00008, 0x27bd0018, 0x27bdffc8,
+0xafb1002c, 0xa08821, 0xafb20030, 0x27a50010,
+0x809021, 0x2202021, 0xafbf0034, 0xe0012a7,
+0xafb00028, 0x10400009, 0x2402021, 0x8e220008,
+0xaf620084, 0xe001315, 0xaf600040, 0x24040038,
+0x2405008d, 0xa0013d1, 0x24060012, 0x93620034,
+0x93630037, 0x8f640084, 0x304200ff, 0x306300ff,
+0x432821, 0xa4202b, 0x1080000b, 0x0,
+0x9763003c, 0x8f620084, 0x3063ffff, 0x451023,
+0x62182b, 0x14600004, 0x0, 0x8f620084,
+0xa00137b, 0x458023, 0x9762003c, 0x3050ffff,
+0x8fa30010, 0x30620004, 0x50400003, 0x2e020218,
+0x8fa2001c, 0x202102b, 0x14400005, 0x2002021,
+0x30620004, 0x10400002, 0x24040218, 0x8fa4001c,
+0x2c820080, 0x10400002, 0x808021, 0x24100080,
+0xe0011b3, 0x2402021, 0x24020001, 0xaf62000c,
+0x9362003e, 0x102040, 0x3042007f, 0xa362003e,
+0x8e220004, 0x24420001, 0xaf620040, 0xa770003c,
+0x8f620050, 0x9623000e, 0x431021, 0xaf620058,
+0x8f620050, 0x441021, 0xaf62005c, 0x8e220004,
+0xaf620018, 0x8e220008, 0xaf62001c, 0x8fa20010,
+0x30420008, 0x5440000a, 0x93a20020, 0xa3600036,
+0x93620036, 0x2403ffdf, 0xa3620035, 0x9362003e,
+0x431024, 0xa362003e, 0xa0013b1, 0x8e220008,
+0xa3620035, 0x8e220008, 0xaf62004c, 0x8f620024,
+0x8f630040, 0x431021, 0xaf620048, 0x93620000,
+0x24030050, 0x304200ff, 0x14430012, 0x2403ff80,
+0x3c020800, 0x8c4231a0, 0x2421021, 0x431024,
+0xaf420028, 0x3c020800, 0x8c4231a0, 0x8e240008,
+0x3c03000c, 0x2421021, 0x3042007f, 0x3421021,
+0x431021, 0xac4400d8, 0x8e230008, 0xaf820028,
+0xac4300dc, 0xe0011bc, 0x2402021, 0x24040038,
+0x2821, 0x2406000a, 0xe001324, 0x0,
+0x8fbf0034, 0x8fb20030, 0x8fb1002c, 0x8fb00028,
+0x24020001, 0x3e00008, 0x27bd0038, 0x27bdffe8,
+0xafbf0010, 0x90c7000d, 0xc02821, 0x30e60010,
+0x10c0000a, 0x30e20004, 0x8ca30008, 0x8f620054,
+0x10620006, 0x30e20004, 0x14400017, 0x8fbf0010,
+0x2021, 0xa000cb2, 0x27bd0018, 0x1040000d,
+0x30e30012, 0x10c00010, 0x8fbf0010, 0x8ca30008,
+0x8f620054, 0x1462000d, 0x24020001, 0x24040038,
+0x2405008d, 0xe001324, 0x24060012, 0xa0013fd,
+0x8fbf0010, 0x24020012, 0x14620003, 0x8fbf0010,
+0xa001352, 0x27bd0018, 0x24020001, 0x3e00008,
+0x27bd0018, 0x27bdfff8, 0x27420180, 0xafa20000,
+0x308a00ff, 0x8f4201b8, 0x440fffe, 0x0,
+0x8f460128, 0x3c020800, 0x8c4231a0, 0x2403ff80,
+0xaf860050, 0xc21021, 0x431024, 0xaf420024,
+0x3c020800, 0x8c4231a0, 0x8fa90000, 0x8fa80000,
+0xc21021, 0x3042007f, 0x3421821, 0x3c02000a,
+0x621821, 0x946400d4, 0x8fa70000, 0x8fa50000,
+0x24020002, 0xaf830028, 0xa0a2000b, 0x8fa30000,
+0x35426000, 0x3084ffff, 0xa4e20008, 0x3c021000,
+0xad260000, 0xad040004, 0xac600024, 0x27bd0008,
+0xaf4201b8, 0x3e00008, 0x24020001, 0x8c820004,
+0x8f830028, 0x451023, 0xac820004, 0x90620063,
+0x3042007f, 0xa0620063, 0x8c820020, 0x93830030,
+0x8f850028, 0x34420002, 0xaf830044, 0xa7800042,
+0xac820020, 0xa4a000e4, 0x90a20063, 0x2403ffbf,
+0x431024, 0x3e00008, 0xa0a20063, 0x27430180,
+0x8f4201b8, 0x440fffe, 0x8f820050, 0xac620000,
+0x8f420124, 0xac620004, 0x24026083, 0xa4620008,
+0x24020002, 0xa062000b, 0x3c021000, 0x3e00008,
+0xaf4201b8, 0x8f880044, 0x93820030, 0x8f830028,
+0x3c070800, 0x24e77594, 0x481023, 0x304200ff,
+0x304900fc, 0x24650088, 0x8f860048, 0x304a0003,
+0x11200009, 0x2021, 0x24820004, 0x8ca30000,
+0x304400ff, 0x89102a, 0xace30000, 0x24a50004,
+0x1440fff9, 0x24e70004, 0x11400009, 0x2021,
+0x24820001, 0x90a30000, 0x304400ff, 0x8a102b,
+0xa0e30000, 0x24a50001, 0x1440fff9, 0x24e70001,
+0x30c20003, 0x14400004, 0x8f850044, 0x31020003,
+0x1040000d, 0x0, 0x10a00009, 0x2021,
+0x24820001, 0x90c30000, 0x304400ff, 0x85102b,
+0xa0e30000, 0x24c60001, 0x1440fff9, 0x24e70001,
+0x3e00008, 0x0, 0x1100fffd, 0x2021,
+0x24820004, 0x8cc30000, 0x304400ff, 0x88102b,
+0xace30000, 0x24c60004, 0x1440fff9, 0x24e70004,
+0x3e00008, 0x0, 0x8f830044, 0x93820030,
+0x30c600ff, 0x30a500ff, 0x431023, 0x304300ff,
+0x8f820028, 0x803821, 0x431021, 0x14c00002,
+0x24480088, 0x833821, 0x30e20003, 0x14400005,
+0x30a20003, 0x14400003, 0x30620003, 0x1040000d,
+0x0, 0x10a00009, 0x2021, 0x24820001,
+0x90e30000, 0x304400ff, 0x85102b, 0xa1030000,
+0x24e70001, 0x1440fff9, 0x25080001, 0x3e00008,
+0x0, 0x10a0fffd, 0x2021, 0x24820004,
+0x8ce30000, 0x304400ff, 0x85102b, 0xad030000,
+0x24e70004, 0x1440fff9, 0x25080004, 0x3e00008,
+0x0, 0x27bdfff8, 0x2402ffff, 0xafa20000,
+0x803821, 0x2405002f, 0x3c090800, 0x25297194,
+0x240800ff, 0x2406ffff, 0x90e20000, 0x24a3ffff,
+0x62202, 0xc21026, 0x304200ff, 0x21080,
+0x491021, 0x8c420000, 0x306500ff, 0x24e70001,
+0x14a8fff5, 0x823026, 0x61027, 0xafa20004,
+0xafa20000, 0x2821, 0x27a60004, 0xc51023,
+0x90440003, 0x24a20001, 0xbd1821, 0x304500ff,
+0x2ca20004, 0x1440fff9, 0xa0640000, 0x8fa20000,
+0x3e00008, 0x27bd0008, 0x804821, 0x30aaffff,
+0x30c600ff, 0x30e7ffff, 0x27480180, 0x8f4201b8,
+0x440fffe, 0x8f820050, 0xad020000, 0x8f420124,
+0xad020004, 0x8d220020, 0xa5070008, 0xa102000a,
+0x24020016, 0xa102000b, 0x93430120, 0x8d220008,
+0x8d240004, 0x306300ff, 0x431021, 0x97830042,
+0x441021, 0x8d250024, 0x431023, 0x3c030800,
+0x8c6331a0, 0x8f840028, 0xa502000c, 0x246300e8,
+0x2402ffff, 0xa50a000e, 0xa5030010, 0xa5060012,
+0xad050018, 0xad020024, 0x94820114, 0x2403fff7,
+0x3042ffff, 0xad020028, 0x8c820118, 0xad02002c,
+0x3c021000, 0xad000030, 0xaf4201b8, 0x8d220020,
+0x431024, 0x3e00008, 0xad220020, 0x8f820028,
+0x30e7ffff, 0x804821, 0x904200d3, 0x30a5ffff,
+0x30c600ff, 0x21100, 0x30420f00, 0xe23825,
+0x27480180, 0x8f4201b8, 0x440fffe, 0x8f820050,
+0xad020000, 0x8f420124, 0xad020004, 0x8d220020,
+0xa5070008, 0xa102000a, 0x24020017, 0xa102000b,
+0x93430120, 0x8d220008, 0x8d240004, 0x306300ff,
+0x431021, 0x97830042, 0x441021, 0x8f840028,
+0x431023, 0x3c030800, 0x8c6331a0, 0xa502000c,
+0xa505000e, 0x246300e8, 0xa5030010, 0xa5060012,
+0xad000014, 0x8d220024, 0xad020018, 0x8c82005c,
+0xad02001c, 0x8c820058, 0xad020020, 0x2402ffff,
+0xad020024, 0x948200e6, 0x3042ffff, 0xad020028,
+0x94820060, 0x948300be, 0x30427fff, 0x3063ffff,
+0x21200, 0x431021, 0xad02002c, 0x3c021000,
+0xad000030, 0xaf4201b8, 0x948200be, 0x2403fff7,
+0xa21021, 0xa48200be, 0x8d220020, 0x431024,
+0x3e00008, 0xad220020, 0x27430180, 0x8f4201b8,
+0x440fffe, 0x24020018, 0xac640000, 0xa062000b,
+0x8f820028, 0x944200e6, 0xa4620010, 0x3c021000,
+0xac600030, 0x3e00008, 0xaf4201b8, 0x27430180,
+0x8f4201b8, 0x440fffe, 0x8f82002c, 0x9442001c,
+0x3042ffff, 0x211c0, 0xac620000, 0x24020019,
+0xa062000b, 0x3c021000, 0xac600030, 0x3e00008,
+0xaf4201b8, 0x8f870034, 0x30c300ff, 0x8f4201b8,
+0x440fffe, 0x8f820050, 0x34636000, 0xaca20000,
+0x9382004c, 0xa0a20005, 0x8ce20010, 0xa4a20006,
+0xa4a30008, 0x8c820020, 0x2403fff7, 0xa0a2000a,
+0x24020002, 0xa0a2000b, 0x8ce20000, 0xaca20010,
+0x8ce20004, 0xaca20014, 0x8ce2001c, 0xaca20024,
+0x8ce20020, 0xaca20028, 0x8ce2002c, 0xaca2002c,
+0x8c820024, 0xaca20018, 0x3c021000, 0xaf4201b8,
+0x8c820020, 0x431024, 0x3e00008, 0xac820020,
+0x9382004c, 0x24030001, 0x27bdffe8, 0x433004,
+0x2c420020, 0xafb00010, 0xafbf0014, 0x2410fffe,
+0x10400005, 0x27450180, 0x3c020800, 0x8c423190,
+0xa00159c, 0x461024, 0x3c020800, 0x8c423194,
+0x461024, 0x14400007, 0x24060084, 0x8f830028,
+0x2410ffff, 0x90620062, 0x3042000f, 0x34420040,
+0xa0620062, 0xe001568, 0x0, 0x2001021,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x8f83002c, 0x27bdffe0, 0xafb20018, 0xafb10014,
+0xafb00010, 0xafbf001c, 0x9062000d, 0xa09021,
+0x30d100ff, 0x3042007f, 0xa062000d, 0x8f850028,
+0x8e430018, 0x808021, 0x8ca2007c, 0x14620005,
+0x2402000e, 0x90a20063, 0x34420020, 0xa0015c5,
+0xa0a20063, 0xe00158b, 0xa382004c, 0x2403ffff,
+0x10430047, 0x2404ffff, 0x52200045, 0x2021,
+0x8e430000, 0x3c020010, 0x621024, 0x50400004,
+0x3c020008, 0x2002021, 0xa0015d4, 0x24020015,
+0x621024, 0x50400009, 0x8e450000, 0x2002021,
+0x24020014, 0xe00158b, 0xa382004c, 0x2403ffff,
+0x10430033, 0x2404ffff, 0x8e450000, 0x3c020002,
+0xa21024, 0x10400016, 0x3c020004, 0x8f86002c,
+0x8cc20014, 0x8cc30010, 0x8cc40014, 0x431023,
+0x44102b, 0x50400005, 0x2002021, 0x8e43002c,
+0x8cc20010, 0x10620003, 0x2002021, 0xa001605,
+0x24020012, 0x3c020004, 0xa21024, 0x5040001c,
+0x2021, 0x2002021, 0xa001605, 0x24020013,
+0xa21024, 0x10400006, 0x8f83002c, 0x8c620010,
+0x50400013, 0x2021, 0xa0015ff, 0x2002021,
+0x8c620010, 0x50400004, 0x8e42002c, 0x2002021,
+0xa001605, 0x24020011, 0x50400009, 0x2021,
+0x2002021, 0x24020017, 0xe00158b, 0xa382004c,
+0x2403ffff, 0x10430002, 0x2404ffff, 0x2021,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x801021, 0x3e00008, 0x27bd0020, 0x93830030,
+0x27bdffe0, 0x24020034, 0xafb20018, 0xafb10014,
+0xafbf001c, 0xafb00010, 0x808821, 0x1462000c,
+0xa09021, 0x8f840034, 0xe0014b4, 0x8c900030,
+0x12020007, 0x24020005, 0x2202021, 0xe00158b,
+0xa382004c, 0x2403ffff, 0x1043005f, 0x2404ffff,
+0x92420004, 0x10400009, 0x8f820028, 0x2202021,
+0x2402000c, 0xe00158b, 0xa382004c, 0x2403ffff,
+0x10430055, 0x2404ffff, 0x8f820028, 0xa3800024,
+0x8e430004, 0x8c440080, 0x3c0200ff, 0x3442ffff,
+0x621824, 0x83202b, 0x10800008, 0xaf83003c,
+0x2202021, 0x24020019, 0xe00158b, 0xa382004c,
+0x2403ffff, 0x10430044, 0x2404ffff, 0x97820042,
+0x8f870044, 0x8f88003c, 0x471023, 0x11000039,
+0xa7820042, 0x8f860028, 0x3045ffff, 0x8f840050,
+0x90c300bc, 0x3c020800, 0x8c4231a0, 0x31882,
+0x30700001, 0x822021, 0x101080, 0x1021021,
+0xa2282b, 0x10a00010, 0x24820088, 0x8f840034,
+0x1082000d, 0x3c033f01, 0x8e420000, 0x431024,
+0x3c032500, 0x14430006, 0x30e500ff, 0x8c820000,
+0xacc20088, 0x8c820010, 0xa001665, 0xacc20098,
+0xe001489, 0x3021, 0x8f85003c, 0x93830024,
+0x8f860028, 0x30a20003, 0x21023, 0x30420003,
+0x433821, 0xa3870024, 0x94c400e4, 0xa22821,
+0x8f830044, 0x8f820048, 0x34841000, 0xa4c400e4,
+0x431021, 0xaf820048, 0x1200000e, 0xaf850044,
+0x24e20004, 0xa3820024, 0x94c200e4, 0x24a30004,
+0xaf830044, 0x34422000, 0xa4c200e4, 0xa001685,
+0x2021, 0x8f820048, 0xaf800044, 0x471021,
+0xaf820048, 0x2021, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x801021, 0x3e00008,
+0x27bd0020, 0x8f860028, 0x27bdffe8, 0xafbf0014,
+0xafb00010, 0x90c20063, 0x30420020, 0x10400008,
+0x30a500ff, 0x8cc2007c, 0x2403ffdf, 0x24420001,
+0xacc2007c, 0x90c20063, 0x431024, 0xa0c20063,
+0x10a00023, 0x8f830028, 0x27500180, 0x2002821,
+0xe001568, 0x24060082, 0x8f820028, 0x90420063,
+0x30420040, 0x50400019, 0xa380004c, 0x8f830034,
+0x8f4201b8, 0x440fffe, 0x8f820050, 0xae020000,
+0x24026082, 0xa6020008, 0x24020002, 0xa202000b,
+0x8c620008, 0xae020010, 0x8c62000c, 0xae020014,
+0x8c620014, 0xae020018, 0x8c620018, 0xae020024,
+0x8c620024, 0xae020028, 0x8c620028, 0xae02002c,
+0x3c021000, 0xaf4201b8, 0xa380004c, 0x8f830028,
+0x8fbf0014, 0x8fb00010, 0x90620063, 0x27bd0018,
+0x3042007f, 0xa0620063, 0x97820042, 0x8f860044,
+0x8f850028, 0x93830030, 0x461023, 0xa7820042,
+0xa4a000e4, 0x90a40063, 0x8f820048, 0xaf830044,
+0x2403ffbf, 0x461021, 0x832024, 0xaf820048,
+0xa0a40063, 0x8f820028, 0xa04000bd, 0x8f820028,
+0x3e00008, 0xa44000be, 0x8f8a0028, 0x27bdffe0,
+0xafb10014, 0xafb00010, 0x8f880044, 0xafbf0018,
+0x93890024, 0x954200e4, 0x30d100ff, 0x109182b,
+0x808021, 0x30ac00ff, 0x3047ffff, 0x5821,
+0x14600003, 0x310600ff, 0x1203021, 0x1095823,
+0x97830042, 0x68102b, 0x14400032, 0x0,
+0x14680007, 0x24020001, 0x8e020020, 0x2403fffb,
+0x34e78000, 0x431024, 0xae020020, 0x24020001,
+0x34e70880, 0x15820005, 0x3165ffff, 0xe0014d9,
+0x2002021, 0xa00171a, 0x2002021, 0xe00150a,
+0x2002021, 0xe00154d, 0x8f840050, 0x8f840028,
+0x94820060, 0x24420001, 0xa4820060, 0x94820060,
+0x3c030800, 0x8c633188, 0x30427fff, 0x5443000f,
+0x2002021, 0x94820060, 0x24038000, 0x431024,
+0xa4820060, 0x90820060, 0x90830060, 0x304200ff,
+0x211c2, 0x21027, 0x211c0, 0x3063007f,
+0x621825, 0xa0830060, 0x2002021, 0x2202821,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0xa00168c,
+0x27bd0020, 0x91420063, 0x2403ff80, 0x431025,
+0xa1420063, 0x97820042, 0x3048ffff, 0x11000020,
+0x93830024, 0x8f840028, 0x4b1023, 0x304600ff,
+0x948300e4, 0x2402efff, 0x168282b, 0x621824,
+0xa48300e4, 0x14a00003, 0x8e020020, 0x1005821,
+0x3021, 0x2403fffb, 0x34e78000, 0x431024,
+0xae020020, 0x24020001, 0x15820005, 0x3165ffff,
+0xe0014d9, 0x2002021, 0xa001742, 0x97830042,
+0xe00150a, 0x2002021, 0x97830042, 0x8f820044,
+0xa7800042, 0x431023, 0xaf820044, 0x93830024,
+0x8f820028, 0x8fbf0018, 0x8fb10014, 0x8fb00010,
+0x27bd0020, 0x3e00008, 0xa04300bd, 0x8f820028,
+0x90430088, 0x904500bd, 0x24490088, 0x3063003f,
+0x2463ffe0, 0x24020001, 0x623804, 0x2c630020,
+0x30e80019, 0xa3850024, 0x10600010, 0xaf890034,
+0x3c028000, 0x34420002, 0x24050001, 0x24060001,
+0x15000008, 0xe21824, 0x2821, 0x14600005,
+0x30e20020, 0x10400005, 0x24050001, 0x91260001,
+0x30c60001, 0xa0016d9, 0x0, 0x3e00008,
+0x0, 0x27bdffd8, 0xafb00010, 0x8f900034,
+0xafb40020, 0xafb10014, 0xafbf0024, 0xafb3001c,
+0xafb20018, 0x8e050010, 0x3c020800, 0x8c4231b0,
+0x8f860038, 0x30a33fff, 0x62182b, 0x8cd30014,
+0x808821, 0x8cd20020, 0x10600078, 0xa021,
+0x90c3000d, 0x2402ff80, 0x431024, 0x304200ff,
+0x50400073, 0x2202021, 0x51382, 0x30420003,
+0x5440006f, 0x2202021, 0x94c3001c, 0x8f820028,
+0x8e050028, 0xa4430114, 0x8cc20010, 0x2621823,
+0x14650007, 0x2402001f, 0x8f82003c, 0x621021,
+0x262102b, 0x10400008, 0x8f83002c, 0x24020018,
+0xe00158b, 0xa382004c, 0x2403ffff, 0x1043006f,
+0x2404ffff, 0x8f83002c, 0x8f84003c, 0x8c620010,
+0x2449021, 0x441023, 0xac620010, 0x8f820028,
+0xac720020, 0x8c420068, 0x52102b, 0x10400009,
+0x8f830038, 0x2202021, 0x2402001d, 0xe00158b,
+0xa382004c, 0x2403ffff, 0x1043005c, 0x2404ffff,
+0x8f830038, 0x8e020024, 0x8c630024, 0x10430007,
+0x2202021, 0x2402001c, 0xe00158b, 0xa382004c,
+0x2403ffff, 0x10430051, 0x2404ffff, 0x8f84002c,
+0x8c820024, 0x24420001, 0xac820024, 0x12530004,
+0x8f820028, 0x8c420068, 0x5642000e, 0x8e020000,
+0x8e020000, 0x3c030080, 0x431024, 0x1440000d,
+0x2402001a, 0x2202021, 0xe00158b, 0xa382004c,
+0x2403ffff, 0x1043003d, 0x2404ffff, 0xa0017d6,
+0x8e020014, 0x3c030080, 0x431024, 0x50400003,
+0x8e020014, 0xac800020, 0x8e020014, 0x2412ffff,
+0x10520006, 0x2402001b, 0x2202021, 0xe00158b,
+0xa382004c, 0x1052002d, 0x2404ffff, 0x8e030000,
+0x3c020001, 0x621024, 0x1040001f, 0x3c020080,
+0x621024, 0x14400008, 0x2202021, 0x2402001a,
+0xe00158b, 0xa382004c, 0x2403ffff, 0x1043001f,
+0x2404ffff, 0x2202021, 0x2002821, 0xe0015ab,
+0x24060001, 0x2403ffff, 0x2404ffff, 0x1443000e,
+0x24140001, 0xa00180b, 0x8fbf0024, 0x2202021,
+0x2402000d, 0x8fbf0024, 0x8fb40020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x27bd0028,
+0xa00158b, 0xa382004c, 0x8f83002c, 0x2202021,
+0x2803021, 0x94620036, 0x24050001, 0x24420001,
+0xe0016d9, 0xa4620036, 0x2021, 0x8fbf0024,
+0x8fb40020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x801021, 0x3e00008, 0x27bd0028,
+0x8f830028, 0x27bdffd8, 0xafb40020, 0xafb3001c,
+0xafb20018, 0xafb10014, 0xafb00010, 0xafbf0024,
+0x90620063, 0x8f910034, 0x2412ffff, 0x34420040,
+0x92250000, 0xa0620063, 0x8e220010, 0x809821,
+0x30b0003f, 0x10520006, 0x360a021, 0x2402000d,
+0xe00158b, 0xa382004c, 0x10520052, 0x2404ffff,
+0x8f830028, 0x8e220018, 0x8c63007c, 0x10430007,
+0x2602021, 0x2402000e, 0xe00158b, 0xa382004c,
+0x2403ffff, 0x10430047, 0x2404ffff, 0x24040020,
+0x12040004, 0x8f830028, 0x90620063, 0x34420020,
+0xa0620063, 0x8f85003c, 0x10a0001e, 0x0,
+0x56040004, 0x8f820028, 0x2602021, 0xa001855,
+0x2402000a, 0x9683000a, 0x2404fffd, 0x94420060,
+0x3042ffff, 0x10430034, 0x8fbf0024, 0x3c020800,
+0x8c42318c, 0x45102b, 0x14400006, 0x2602021,
+0x2821, 0xe0016d9, 0x24060001, 0xa00187c,
+0x2021, 0x2402002d, 0xe00158b, 0xa382004c,
+0x2403ffff, 0x10430023, 0x2404ffff, 0xa00187c,
+0x2021, 0x16040005, 0x8f840028, 0x8e230014,
+0x2402ffff, 0x50620018, 0x2602021, 0x94820060,
+0x24420001, 0xa4820060, 0x94820060, 0x3c030800,
+0x8c633188, 0x30427fff, 0x5443000f, 0x2602021,
+0x94820060, 0x24038000, 0x431024, 0xa4820060,
+0x90820060, 0x90830060, 0x304200ff, 0x211c2,
+0x21027, 0x211c0, 0x3063007f, 0x621825,
+0xa0830060, 0x2602021, 0xe00168c, 0x24050001,
+0x2021, 0x8fbf0024, 0x8fb40020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x801021,
+0x3e00008, 0x27bd0028, 0x8f830028, 0x27bdffe8,
+0xafb00010, 0xafbf0014, 0x90620063, 0x8f870034,
+0x808021, 0x34420040, 0x8ce60010, 0xa0620063,
+0x3c030800, 0x8c6331b0, 0x30c23fff, 0x43102b,
+0x1040004e, 0x8f850038, 0x2402ff80, 0x90a3000d,
+0x431024, 0x304200ff, 0x50400049, 0x2002021,
+0x61382, 0x30480003, 0x24020002, 0x55020044,
+0x2002021, 0x94a2001c, 0x8f850028, 0x24030023,
+0xa4a20114, 0x8ce60000, 0x61602, 0x3042003f,
+0x10430010, 0x3c030083, 0x8ce30018, 0x8ca2007c,
+0x10620006, 0x2402000e, 0xe00158b, 0xa382004c,
+0x2403ffff, 0x10430038, 0x2404ffff, 0x8f830028,
+0x90620063, 0x34420020, 0xa0620063, 0xa0018c1,
+0x8f83002c, 0xc31024, 0x14430007, 0x8f83002c,
+0x90a20062, 0x3042000f, 0x34420020, 0xa0a20062,
+0xa3880040, 0x8f83002c, 0x9062000d, 0x3042007f,
+0xa062000d, 0x8f83003c, 0x10600018, 0x2002021,
+0x8f840038, 0x8c820010, 0x43102b, 0x10400009,
+0x24020018, 0x2002021, 0xe00158b, 0xa382004c,
+0x2403ffff, 0x10430018, 0x2404ffff, 0xa0018e9,
+0x2021, 0x8c820010, 0x24050001, 0x2002021,
+0x431023, 0x8f83002c, 0x24060001, 0xe0016d9,
+0xac620010, 0xa0018e9, 0x2021, 0xe00168c,
+0x24050001, 0xa0018e9, 0x2021, 0x2002021,
+0x2402000d, 0x8fbf0014, 0x8fb00010, 0x27bd0018,
+0xa00158b, 0xa382004c, 0x8fbf0014, 0x8fb00010,
+0x801021, 0x3e00008, 0x27bd0018, 0x27bdffd8,
+0xafb00010, 0x8f900034, 0xafb3001c, 0xafbf0020,
+0xafb20018, 0xafb10014, 0x8e120010, 0x3c030800,
+0x8c6331b0, 0x32423fff, 0x43102b, 0x1040007c,
+0x809821, 0x8f850038, 0x2402ff80, 0x90a3000d,
+0x431024, 0x304200ff, 0x50400076, 0x2602021,
+0x121382, 0x30420003, 0x24030001, 0x54430071,
+0x2602021, 0x90a2000d, 0x30420008, 0x54400003,
+0x8f82003c, 0xa001919, 0x24020024, 0x50400003,
+0x8e03000c, 0xa001919, 0x24020027, 0x8ca20020,
+0x14620005, 0x24020020, 0x8e030008, 0x8ca20024,
+0x10620008, 0x24020020, 0xe00158b, 0xa382004c,
+0x2403ffff, 0x1043006a, 0x2404ffff, 0xa001944,
+0x8f84002c, 0x8e020014, 0x2411ffff, 0x14510003,
+0x8f870028, 0xa00193f, 0x24020025, 0x8e030018,
+0x8ce2007c, 0x14620016, 0x2402000e, 0x8e030024,
+0x8ca20028, 0x14620012, 0x24020021, 0x8e060028,
+0x8ca2002c, 0x14c2000e, 0x2402001f, 0x8e03002c,
+0x1060000b, 0x24020023, 0x8ce20068, 0x43102b,
+0x14400007, 0x24020026, 0x8ca20014, 0x661821,
+0x43102b, 0x50400007, 0x8f84002c, 0x24020022,
+0xe00158b, 0xa382004c, 0x10510045, 0x2404ffff,
+0x8f84002c, 0x2403fff7, 0x9082000d, 0x431024,
+0xa082000d, 0x8f860028, 0x3c030800, 0x8c6331ac,
+0x8f820050, 0x94c400e0, 0x8f85002c, 0x431021,
+0x30847fff, 0x42040, 0x441021, 0x3043007f,
+0x3432021, 0x3c03000e, 0x832021, 0x2403ff80,
+0x431024, 0xaf42002c, 0xa4920000, 0x8ca20028,
+0x24420001, 0xaca20028, 0x8ca2002c, 0x8e03002c,
+0x431021, 0xaca2002c, 0x8e02002c, 0xaca20030,
+0x8e020014, 0xaca20034, 0x94a2003a, 0x24420001,
+0xa4a2003a, 0x94c600e0, 0x3c020800, 0x8c4231b0,
+0x24c40001, 0x30837fff, 0x14620013, 0x803021,
+0x24028000, 0x823024, 0x30c2ffff, 0x213c2,
+0x304200ff, 0x21027, 0xa001981, 0x233c0,
+0x2602021, 0x2402000d, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x27bd0028,
+0xa00158b, 0xa382004c, 0x8f820028, 0x2602021,
+0x24050001, 0xe00168c, 0xa44600e0, 0x2021,
+0x8fbf0020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x801021, 0x3e00008, 0x27bd0028,
+0x27bdffe0, 0xafb10014, 0x8f910034, 0xafb00010,
+0xafbf0018, 0x8e260010, 0x3c030800, 0x8c6331b0,
+0x30c23fff, 0x43102b, 0x1040005e, 0x808021,
+0x8f850038, 0x2402ff80, 0x90a3000d, 0x431024,
+0x304200ff, 0x50400058, 0x2002021, 0x8f82003c,
+0x10400008, 0x61382, 0x8f820028, 0x9763000a,
+0x2404fffd, 0x94420060, 0x3042ffff, 0x10430055,
+0x61382, 0x30420003, 0x1440000e, 0x0,
+0x92220002, 0x10400005, 0x8e230024, 0x50600015,
+0x92230003, 0xa0019ba, 0x2002021, 0x8ca20024,
+0x50620010, 0x92230003, 0x2002021, 0xa0019c2,
+0x2402000f, 0x90a2000d, 0x30420008, 0x54400009,
+0x92230003, 0x2002021, 0x24020010, 0xe00158b,
+0xa382004c, 0x2403ffff, 0x1043003a, 0x2404ffff,
+0x92230003, 0x24020002, 0x5462000c, 0x92220003,
+0x8f82003c, 0x54400009, 0x92220003, 0x2002021,
+0x2402002c, 0xe00158b, 0xa382004c, 0x2403ffff,
+0x1043002c, 0x2404ffff, 0x92220003, 0x2202821,
+0x2002021, 0x38460010, 0x2cc60001, 0x2c420001,
+0xe0015ab, 0x463025, 0x2411ffff, 0x10510021,
+0x2404ffff, 0x8f83003c, 0x10600012, 0x2002021,
+0x3c020800, 0x8c42318c, 0x43102b, 0x14400006,
+0x0, 0x2821, 0xe0016d9, 0x24060001,
+0xa001a00, 0x2021, 0x2402002d, 0xe00158b,
+0xa382004c, 0x1051000f, 0x2404ffff, 0xa001a00,
+0x2021, 0xe00168c, 0x24050001, 0xa001a00,
+0x2021, 0x2002021, 0x2402000d, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x27bd0020, 0xa00158b,
+0xa382004c, 0x8fbf0018, 0x8fb10014, 0x8fb00010,
+0x801021, 0x3e00008, 0x27bd0020, 0x93830040,
+0x27bdffe0, 0x24020002, 0xafb10014, 0xafb00010,
+0x808821, 0xafbf0018, 0x8021, 0x1062008c,
+0x2404fffd, 0x97850042, 0x8f830044, 0x30a2ffff,
+0x43102b, 0x5440007d, 0x8f840048, 0xe00144c,
+0x0, 0x3c020800, 0x24427594, 0x2202021,
+0x402821, 0xe001612, 0xaf820034, 0x2409ffff,
+0x1049007b, 0x2404ffff, 0x3c080800, 0x8d0875a4,
+0x3c020800, 0x8c4231b0, 0x3c030800, 0x90637594,
+0x31043fff, 0x82102b, 0x1040001b, 0x3067003f,
+0x3c020800, 0x8c4231a8, 0x8f830050, 0x42180,
+0x621821, 0x641821, 0x3062007f, 0x3422821,
+0x3c02000c, 0xa22821, 0x3c020080, 0x34420001,
+0x30660078, 0xc23025, 0x2402ff80, 0x621024,
+0xaf420028, 0x30640007, 0xaf420804, 0x8f820028,
+0x3442021, 0x24840940, 0xaf460814, 0xaf85002c,
+0xaf840038, 0xac430118, 0x93830040, 0x24020003,
+0x1462003b, 0x24020001, 0x24020026, 0x10e2003d,
+0x28e20027, 0x10400013, 0x24020032, 0x24020022,
+0x10e20038, 0x28e20023, 0x10400008, 0x24020024,
+0x24020020, 0x10e20024, 0x24020021, 0x10e2001e,
+0x2202021, 0xa001a7f, 0x2402000b, 0x10e2002d,
+0x24020025, 0x10e20010, 0x2202021, 0xa001a7f,
+0x2402000b, 0x10e2001a, 0x28e20033, 0x10400006,
+0x2402003f, 0x24020031, 0x10e2000b, 0x2202021,
+0xa001a7f, 0x2402000b, 0x10e20011, 0x2202021,
+0xa001a7f, 0x2402000b, 0xe00176c, 0x2202021,
+0xa001a9a, 0x408021, 0xe0018ee, 0x2202021,
+0xa001a9a, 0x408021, 0xe00198f, 0x2202021,
+0xa001a9a, 0x408021, 0x1509000e, 0x0,
+0xe001813, 0x2202021, 0xa001a9a, 0x408021,
+0xe00158b, 0xa382004c, 0xa001a9a, 0x408021,
+0x14620017, 0x2002021, 0x24020023, 0x14e20005,
+0x2402000b, 0xe001885, 0x2202021, 0xa001a9a,
+0x408021, 0x2202021, 0xa382004c, 0xe00158b,
+0x2410ffff, 0xa001a9b, 0x2002021, 0x30a500ff,
+0xe001489, 0x24060001, 0x97830042, 0x8f820044,
+0xa7800042, 0x431023, 0xaf820044, 0x2002021,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x801021,
+0x3e00008, 0x27bd0020, 0x27bdffe0, 0xafb10014,
+0xafbf0018, 0xafb00010, 0x8f460128, 0x3c030800,
+0x8c6331a0, 0x2402ff80, 0xaf860050, 0xc31821,
+0x3065007f, 0x3452821, 0x621824, 0x3c02000a,
+0xaf430024, 0xa22821, 0x90a20062, 0x808821,
+0xaf850028, 0x304200ff, 0x21102, 0xa3820040,
+0x90a200bc, 0x30420002, 0x14400002, 0x24030034,
+0x24030030, 0x8f820028, 0xa3830030, 0x93830040,
+0x8c4200c0, 0xa380004c, 0xaf820044, 0x24020004,
+0x10620030, 0x8f840044, 0x8e240004, 0x5080002d,
+0x8f840044, 0x8e220010, 0x3083ffff, 0xa7840042,
+0x1060001f, 0xaf820048, 0x8f830028, 0x2405ff80,
+0x2202021, 0x90620063, 0xa21024, 0x304200ff,
+0x1440000d, 0x0, 0xe001a06, 0x97900042,
+0x10400010, 0x401821, 0x2402fffd, 0x54620011,
+0x8e230020, 0x2002821, 0xe00142a, 0x2202021,
+0xa001aec, 0x8e230020, 0x90620063, 0xa21024,
+0x304200ff, 0x10400003, 0x2202021, 0xe00174e,
+0x0, 0x97820042, 0x1440ffe4, 0x8f830028,
+0x8e230020, 0x30620004, 0x10400006, 0x8f840044,
+0x2402fffb, 0x621024, 0xe00143e, 0xae220020,
+0x8f840044, 0x8f830028, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x24020001, 0x27bd0020, 0x3e00008,
+0xac6400c0, 0x30a500ff, 0x24030001, 0x24a90001,
+0x69102b, 0x1040000c, 0x4021, 0x240a0001,
+0xa31023, 0x4a3804, 0x24630001, 0x30820001,
+0x69302b, 0x10400002, 0x42042, 0x1074025,
+0x54c0fff8, 0xa31023, 0x3e00008, 0x1001021,
+0x27bdffe0, 0x3c021edc, 0xafb20018, 0xafb10014,
+0xafbf001c, 0xafb00010, 0x34526f41, 0x8821,
+0x24050008, 0xe001afc, 0x2202021, 0x118080,
+0x3c070800, 0x24e77194, 0x21600, 0x2071821,
+0xac620000, 0x2821, 0x24a20001, 0x3045ffff,
+0x8c620000, 0x2ca60008, 0x4410002, 0x22040,
+0x922026, 0x14c0fff8, 0xac640000, 0x2078021,
+0x8e040000, 0xe001afc, 0x24050020, 0x26230001,
+0x3071ffff, 0x2e230100, 0x1460ffe5, 0xae020000,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0x3c020800, 0x24426a84,
+0x3c010800, 0xac227188, 0x3c020800, 0x24425000,
+0x3c010800, 0xac22718c, 0x24020006, 0x3c010800,
+0xa0227190, 0xa001b0f, 0x0, 0x27bdffd8,
+0xafb3001c, 0xafb20018, 0xafbf0020, 0xafb10014,
+0xafb00010, 0x8f510140, 0x8f480148, 0x89402,
+0x324300ff, 0x311300ff, 0x8f4201b8, 0x440fffe,
+0x27500180, 0xae110000, 0x8f420144, 0xae020004,
+0x24020002, 0xa6120008, 0xa202000b, 0x24020014,
+0xae130024, 0x10620025, 0x28620015, 0x10400008,
+0x24020015, 0x24020010, 0x10620030, 0x24020012,
+0x10620009, 0x8fbf0020, 0xa001c30, 0x8fb3001c,
+0x10620067, 0x24020022, 0x10620037, 0x8fbf0020,
+0xa001c30, 0x8fb3001c, 0x3c020800, 0x8c4231a0,
+0x2403ff80, 0x2221021, 0x431024, 0xaf420024,
+0x3c020800, 0x8c4231a0, 0x2221021, 0x3042007f,
+0x3421821, 0x3c02000a, 0x621821, 0x166000b3,
+0xaf830028, 0x90620062, 0x3042000f, 0x34420030,
+0xa0620062, 0xa001c2f, 0x8fbf0020, 0x3c046000,
+0x8c832c08, 0x3c02f003, 0x3442ffff, 0x621824,
+0xac832c08, 0x3c020800, 0x8c4231a0, 0x8c832c08,
+0x24420074, 0x21082, 0x21480, 0x621825,
+0xac832c08, 0xa001c2f, 0x8fbf0020, 0x3c020800,
+0x8c4231a0, 0x2403ff80, 0x2221021, 0x431024,
+0xaf420024, 0x3c020800, 0x8c4231a0, 0x3c03000a,
+0x2221021, 0x3042007f, 0x3421021, 0x431021,
+0xa001c2e, 0xaf820028, 0x3c020800, 0x8c4231a0,
+0x2404ff80, 0x2221021, 0x441024, 0xaf420024,
+0x3c020800, 0x8c4231a0, 0x2221021, 0x3042007f,
+0x3421821, 0x3c02000a, 0x621821, 0x90620063,
+0x821024, 0x304200ff, 0x1040007c, 0xaf830028,
+0x24620088, 0x94430012, 0x3c020800, 0x8c4231a8,
+0x30633fff, 0x31980, 0x2221021, 0x431021,
+0x3043007f, 0x3431821, 0x441024, 0x3c04000c,
+0x641821, 0xaf420028, 0xe00155a, 0xaf83002c,
+0x8f4201b8, 0x440fffe, 0x0, 0xae110000,
+0x8f420144, 0xae020004, 0x24020002, 0xa6120008,
+0xa202000b, 0xae130024, 0xa001c2f, 0x8fbf0020,
+0x2406ff80, 0x2261024, 0xaf420020, 0x3c020800,
+0x8c4231a0, 0x31043fff, 0x42180, 0x2221021,
+0x461024, 0xaf420024, 0x3c030800, 0x8c6331a8,
+0x3c020800, 0x8c4231a0, 0x3227007f, 0x2231821,
+0x2221021, 0x641821, 0x3042007f, 0x3064007f,
+0x3422821, 0x3c02000a, 0x661824, 0xa22821,
+0x3442021, 0x3c02000c, 0x822021, 0xaf430028,
+0x3c020008, 0x3471821, 0x629021, 0xaf850028,
+0xaf84002c, 0xe00155a, 0x1008021, 0x8f4201b8,
+0x440fffe, 0x8f82002c, 0x8f840028, 0x27450180,
+0x9042000d, 0xacb10000, 0xa4b00006, 0x21600,
+0x21603, 0x21027, 0x237c2, 0x14c00016,
+0x24820088, 0x94420012, 0x32033fff, 0x30423fff,
+0x14430012, 0x24026082, 0x90830063, 0x2402ff80,
+0x431024, 0x304200ff, 0x5040000c, 0x24026082,
+0x90820062, 0x3042000f, 0x34420040, 0xa0820062,
+0x24026084, 0xa4a20008, 0x2402000d, 0xa0a20005,
+0xa001c19, 0x3c022700, 0x24026082, 0xa4a20008,
+0xa0a00005, 0x3c022700, 0x61c00, 0x621825,
+0x24020002, 0xa0a2000b, 0xaca30010, 0xaca00014,
+0xaca00024, 0xaca00028, 0xaca0002c, 0x8e42004c,
+0x8f84002c, 0xaca20018, 0x9083000d, 0x2402ff80,
+0x431024, 0x304200ff, 0x10400005, 0x8fbf0020,
+0x9082000d, 0x3042007f, 0xa082000d, 0x8fbf0020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3c021000, 0x27bd0028, 0x3e00008, 0xaf4201b8,
+0x0 };
+u32 bce_RXP_b06FwData[(0x0/4) + 1] = { 0x0 };
+u32 bce_RXP_b06FwRodata[(0x24/4) + 1] = {
+0x8004c28,
+0x8004c28, 0x8004ba0, 0x8004bd8, 0x8004c0c,
+0x8004c30, 0x8004c30, 0x8004c30, 0x8004b10,
+0x0 };
+u32 bce_RXP_b06FwBss[(0x450/4) + 1] = { 0x0 };
+u32 bce_RXP_b06FwSbss[(0x54/4) + 1] = { 0x0 };
+u32 bce_RXP_b06FwSdata[(0x0/4) + 1] = { 0x0 };
+
+
+int bce_TPAT_b06FwReleaseMajor = 0x1;
+int bce_TPAT_b06FwReleaseMinor = 0x0;
+int bce_TPAT_b06FwReleaseFix = 0x0;
+u32 bce_TPAT_b06FwStartAddr = 0x08000488;
+u32 bce_TPAT_b06FwTextAddr = 0x08000400;
+int bce_TPAT_b06FwTextLen = 0x175c;
+u32 bce_TPAT_b06FwDataAddr = 0x00000000;
+int bce_TPAT_b06FwDataLen = 0x0;
+u32 bce_TPAT_b06FwRodataAddr = 0x00000000;
+int bce_TPAT_b06FwRodataLen = 0x0;
+u32 bce_TPAT_b06FwBssAddr = 0x08001bc4;
+int bce_TPAT_b06FwBssLen = 0x450;
+u32 bce_TPAT_b06FwSbssAddr = 0x08001b80;
+int bce_TPAT_b06FwSbssLen = 0x44;
+u32 bce_TPAT_b06FwSDataAddr = 0x00000000;
+int bce_TPAT_b06FwSDataLen = 0x0;
+u32 bce_TPAT_b06FwText[(0x175c/4) + 1] = {
+0xa000122, 0x0, 0x0,
+0xd, 0x74706134, 0x2e362e31, 0x37000000,
+0x4061101, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x10000003, 0x0, 0xd, 0xd,
+0x3c020800, 0x24421b80, 0x3c030800, 0x24632014,
+0xac400000, 0x43202b, 0x1480fffd, 0x24420004,
+0x3c1d0800, 0x37bd2ffc, 0x3a0f021, 0x3c100800,
+0x26100488, 0x3c1c0800, 0x279c1b80, 0xe00015a,
+0x0, 0xd, 0x3084ffff, 0x30820007,
+0x8f850018, 0x10400002, 0x24830007, 0x3064fff8,
+0x853021, 0x30c41fff, 0x3441821, 0x247b4000,
+0xaf85001c, 0xaf840018, 0x3e00008, 0xaf440084,
+0x3084ffff, 0x30820007, 0x8f850020, 0x8f860028,
+0x10400002, 0x24830007, 0x3064fff8, 0x852021,
+0x86182b, 0x14600002, 0xaf850024, 0x862023,
+0x3442821, 0x34068000, 0xaf840020, 0xaf440080,
+0xa62021, 0x3e00008, 0xaf840038, 0x27bdffd8,
+0xafb3001c, 0xafb20018, 0xafb00010, 0xafbf0024,
+0xafb40020, 0xafb10014, 0x3c086008, 0x8d145000,
+0x2418ff7f, 0x3c1a8000, 0x2989824, 0x3672380c,
+0xad125000, 0x8f510008, 0x3c07601c, 0x3c086000,
+0x36300001, 0xaf500008, 0xaf800018, 0xaf400080,
+0xaf400084, 0x8ce60008, 0x8d0f0808, 0x3c076016,
+0x8cec0000, 0x31eefff0, 0x39ca0010, 0x3c0dffff,
+0x340b8000, 0x3c030080, 0x34b4821, 0x2d440001,
+0x18d2824, 0x3c025353, 0x3c010800, 0xac230420,
+0xaf890038, 0xaf860028, 0xaf840010, 0x275b4000,
+0x14a20003, 0x34e37c00, 0x8cf90004, 0x3281821,
+0x8c7f007c, 0x8c650078, 0x3c028000, 0x34520070,
+0xaf85003c, 0xaf9f0040, 0x3c130800, 0x26731bc4,
+0x240a021, 0x8e480000, 0x8f460000, 0x38c30001,
+0x30640001, 0x10800017, 0xaf880034, 0x2804821,
+0x8d2d0000, 0x3c190800, 0x8f39045c, 0x3c110800,
+0x8e310458, 0x1a8f823, 0x33f7821, 0x4021,
+0x2283821, 0x1ff802b, 0xf07021, 0x3c010800,
+0xac2f045c, 0x3c010800, 0xac2e0458, 0x8f4c0000,
+0x398b0001, 0x316a0001, 0x1540ffed, 0x1a04021,
+0xaf8d0034, 0x8e4e0000, 0x3c0c0800, 0x8d8c045c,
+0x3c0a0800, 0x8d4a0458, 0x1c86823, 0x18d2821,
+0x5821, 0xad302b, 0x14b2021, 0x861021,
+0x3c010800, 0xac25045c, 0x3c010800, 0xac220458,
+0x8f450108, 0x8f440100, 0x30a92000, 0xaf850000,
+0xaf84000c, 0x1120000a, 0xa03021, 0x3c070800,
+0x8ce7042c, 0x24ef0001, 0x3c010800, 0xac2f042c,
+0x3c104000, 0xaf500138, 0xa000190, 0x0,
+0x30b00200, 0x16000014, 0x24110f00, 0x10910012,
+0x24070d00, 0x10870233, 0x30b00006, 0x5200fff5,
+0x3c104000, 0x936d0000, 0x240c0010, 0x31a600f0,
+0x10cc0269, 0x240e0070, 0x10ce02dd, 0x8f8b0014,
+0x25670001, 0xaf870014, 0x3c104000, 0xaf500138,
+0xa000190, 0x0, 0x97480104, 0x1100ffe5,
+0x3c104000, 0x30b84000, 0x170000a2, 0x0,
+0x8f590178, 0x720fffe, 0x8f870038, 0x24090008,
+0x24050800, 0x8ce30008, 0xaf450178, 0xa7490140,
+0xa7400142, 0x97420104, 0x8f860000, 0x3049ffff,
+0x30df0001, 0x13e002d5, 0x1204021, 0x2524fffe,
+0x240a0002, 0xa74a0146, 0x3088ffff, 0xa7440148,
+0x3c0b0800, 0x8d6b043c, 0x156002c4, 0x8f8f000c,
+0x30c30020, 0x14600002, 0x24040009, 0x24040001,
+0x30cd0c00, 0x240c0400, 0x51ac0001, 0x34840004,
+0xa744014a, 0x3c050800, 0x8ca50420, 0x3c020048,
+0x3c190001, 0xa2f825, 0x30d80002, 0x3f92825,
+0x13000004, 0x1821, 0x3c040100, 0xa42825,
+0x24030001, 0x30ca0004, 0x51400005, 0xaf830008,
+0x3c060010, 0xa62825, 0x24030001, 0xaf830008,
+0xaf451000, 0x0, 0x0, 0x0,
+0x0, 0x8f830008, 0x10600023, 0x0,
+0x8f4b1000, 0x561fffe, 0x0, 0x1060001e,
+0x0, 0x8f4d1000, 0x3c030020, 0x1a36024,
+0x11800019, 0x8f8f0000, 0x31ee0002, 0x11c00016,
+0x0, 0x97501014, 0x16000013, 0x0,
+0x97451008, 0x30bfffff, 0x27f80006, 0x18c882,
+0x193080, 0xc72821, 0x33110001, 0x33030003,
+0x12200320, 0x8ca20000, 0xd, 0xc7f821,
+0xafe20000, 0x3c190800, 0x8f390430, 0x27260001,
+0x3c010800, 0xac260430, 0x8f6a0000, 0x3405ffff,
+0xaf8a0004, 0x8ce20000, 0x1045029a, 0x2021,
+0x8ce50000, 0x30bf0100, 0x13e0027e, 0x1002021,
+0x3c070800, 0x8ce70474, 0x3c100800, 0x8e10044c,
+0xe85821, 0x3c180800, 0x8f180470, 0x168882b,
+0x3c080800, 0x8d080448, 0x7821, 0x2046021,
+0x30f1821, 0x184702b, 0x10f6821, 0x715021,
+0x1ae1021, 0x3c010800, 0xac2c044c, 0x3c010800,
+0xac220448, 0x3c010800, 0xac2b0474, 0x3c010800,
+0xac2a0470, 0x8f8d0018, 0x1203021, 0x31290007,
+0x25ae0008, 0x31c21fff, 0x3426021, 0xaf8d001c,
+0xaf820018, 0x259b4000, 0xaf420084, 0x11200003,
+0x8f900020, 0x24c80007, 0x3106fff8, 0x8f840028,
+0xd02821, 0xa4782b, 0x15e00002, 0xaf900024,
+0xa42823, 0x3452021, 0x34038000, 0x831021,
+0x3c061000, 0xaf850020, 0xaf820038, 0xaf450080,
+0xaf460178, 0x8f8b0014, 0x25670001, 0xa0001dd,
+0xaf870014, 0x8f620008, 0x8f670000, 0x24110030,
+0x7c602, 0x330300f0, 0x107100a2, 0x24190040,
+0x1479ff4b, 0x8f8b0014, 0x8f4a0178, 0x540fffe,
+0x30a70200, 0x14e00003, 0x51282, 0xd,
+0x51282, 0x30500003, 0x104900, 0x1307021,
+0xe6880, 0x1b06021, 0xc5880, 0x1738021,
+0x8e080000, 0x15000002, 0x0, 0xd,
+0x8f6f0004, 0x5e202b1, 0x92030006, 0x92070005,
+0x920f0004, 0x3c020001, 0x72880, 0xb06021,
+0x8d890018, 0x27710008, 0x25ee0005, 0x1226821,
+0xe3082, 0xad8d0018, 0x2202021, 0xe000580,
+0x26050014, 0x920b0006, 0x8f7f0004, 0x3c087fff,
+0xb2080, 0x913021, 0x8cc30004, 0x350affff,
+0x3eac824, 0x79c021, 0xacd80004, 0x92070005,
+0x92090004, 0x960d0008, 0x72880, 0xb1f821,
+0x8fef0000, 0x97420104, 0x3c07ffff, 0x1e75024,
+0x304effff, 0x1c96021, 0x18d5823, 0x3168ffff,
+0x1482025, 0xafe40000, 0x92030007, 0x24190001,
+0x10790269, 0x24060003, 0x10660279, 0x0,
+0x8e190010, 0x241f000a, 0xa75f0140, 0xa7590142,
+0x92030004, 0x8f860000, 0x24070001, 0xa7430144,
+0xa7400146, 0x97580104, 0x30d10002, 0x3c050041,
+0xa7580148, 0x1821, 0xa747014a, 0x12200003,
+0x30ca0004, 0x3c050141, 0x24030001, 0x51400005,
+0xaf830008, 0x3c080010, 0xa82825, 0x24030001,
+0xaf830008, 0xaf451000, 0x0, 0x0,
+0x0, 0x0, 0x8f8b0008, 0x11600004,
+0x0, 0x8f441000, 0x481fffe, 0x0,
+0x8f6a0000, 0x92070004, 0x3c050800, 0x8ca50444,
+0xaf8a0004, 0x975f0104, 0x3c0f0800, 0x8def0440,
+0x30e300ff, 0x33f9ffff, 0x79c021, 0xb86821,
+0x1021, 0x24e6000a, 0x30c8ffff, 0x1b8482b,
+0x1e27021, 0x1c96021, 0x31100007, 0x3c010800,
+0xac2d0444, 0x3c010800, 0xac2c0440, 0x12000003,
+0x8f8d0018, 0x250b0007, 0x3168fff8, 0x10d7021,
+0x31cc1fff, 0xaf8d001c, 0xaf8c0018, 0xaf4c0084,
+0x97440104, 0x34c8021, 0x3084ffff, 0x30880007,
+0x11000003, 0x261b4000, 0x24890007, 0x3124fff8,
+0x8f820020, 0x8f850028, 0x822021, 0x85782b,
+0x15e00002, 0xaf820024, 0x852023, 0x3448821,
+0x34058000, 0x2251021, 0x3c061000, 0xaf840020,
+0xaf820038, 0xaf440080, 0xaf460178, 0xa000285,
+0x8f8b0014, 0x8f5f0178, 0x7e0fffe, 0x30aa0200,
+0x15400003, 0x54282, 0xd, 0x54282,
+0x31020003, 0x27100, 0x1c26821, 0xd6080,
+0x1824821, 0x92880, 0xb38021, 0x8e0b0000,
+0x11600002, 0x0, 0xd, 0x8f6f000c,
+0x5e001f3, 0x8f870038, 0x24190001, 0xae190000,
+0x8ce30008, 0xa2000007, 0x8f780004, 0x181c02,
+0x306600ff, 0x24d10005, 0x113083, 0x2cc40041,
+0x14800002, 0xa2030004, 0xd, 0x8f6b0004,
+0x3c0effff, 0xe02821, 0x3164ffff, 0x248f000b,
+0xf4082, 0x81080, 0x474821, 0x8d2d0000,
+0x26040014, 0xa60b0008, 0x1ae6024, 0xe000580,
+0xad2c0000, 0x8f5f0108, 0x3c0a1000, 0x3ea3824,
+0x10e001a3, 0x0, 0x97460104, 0x92030007,
+0x24d1ffec, 0x34650002, 0x3224ffff, 0xa2050007,
+0x96060008, 0x2cc70013, 0x54e00005, 0x92030007,
+0x920a0007, 0x355f0001, 0xa21f0007, 0x92030007,
+0x240b0001, 0x106b01ba, 0x24090003, 0x106901cd,
+0x8f880038, 0x30cfffff, 0x25e40002, 0x4c883,
+0x333f00ff, 0x1f2880, 0xa2190005, 0xa85821,
+0x8d780000, 0x97510104, 0x3c03ffff, 0x3036024,
+0x3222ffff, 0x4f7023, 0x25cdfffe, 0x18d4825,
+0xad690000, 0x92060005, 0x3c02fff6, 0x344effff,
+0x30ca00ff, 0xa3880, 0xf02021, 0x90990014,
+0x3c1fff7f, 0x37e7ffff, 0x3323000f, 0x667821,
+0x31f800ff, 0x182880, 0xb08821, 0x8e2d0020,
+0xa86021, 0xa20f0006, 0x1ae4824, 0xae0d000c,
+0xad89000c, 0x920b0006, 0x8e04000c, 0x127f824,
+0xb5080, 0x150c821, 0x97260026, 0x148c021,
+0x874024, 0xaf260024, 0xae08000c, 0xaf3f0020,
+0xaf060010, 0x8f860000, 0x240c0010, 0x24090002,
+0xa74c0140, 0xa7400142, 0xa7400144, 0xa7490146,
+0x974b0104, 0x24070001, 0x30c80002, 0x256afffe,
+0xa74a0148, 0x3c050009, 0xa747014a, 0x11000003,
+0x1821, 0x3c050109, 0x24030001, 0x30cd0004,
+0x51a00005, 0xaf830008, 0x3c060010, 0xa62825,
+0x24030001, 0xaf830008, 0xaf451000, 0x0,
+0x0, 0x0, 0x0, 0x92180004,
+0x27110002, 0x322f0007, 0xf1023, 0x304e0007,
+0xae0e0010, 0x8f900008, 0x12000004, 0x0,
+0x8f431000, 0x461fffe, 0x0, 0x8f780000,
+0x8f8f0018, 0x3c100800, 0x8e100444, 0xaf980004,
+0x97510104, 0x25e60010, 0x30ca1fff, 0x3222ffff,
+0xaf8f001c, 0xaf8a0018, 0xaf4a0084, 0x2449fffe,
+0x3c0b0800, 0x8d6b0440, 0x974e0104, 0x1206821,
+0x967c3, 0x20d2821, 0x31c9ffff, 0xad402b,
+0x16c3821, 0xe82021, 0x34af821, 0x31390007,
+0x3c010800, 0xac250444, 0x3c010800, 0xac240440,
+0x13200003, 0x27fb4000, 0x25230007, 0x3069fff8,
+0x8f9f0020, 0x8f840028, 0x13f3821, 0xe4c82b,
+0x17200002, 0xaf9f0024, 0xe43823, 0x3472021,
+0x34058000, 0x851021, 0x3c061000, 0xaf870020,
+0xaf820038, 0xaf470080, 0xaf460178, 0xa000285,
+0x8f8b0014, 0x97580104, 0x1300fdc2, 0x3c104000,
+0x8f430178, 0x460fffe, 0x30b94000, 0x13200003,
+0x3c040008, 0xd, 0x3c040008, 0xaf440140,
+0x24080800, 0xaf480178, 0x8f8b0000, 0x974a0104,
+0x317f0001, 0x13e000e9, 0x3146ffff, 0x24d0fffe,
+0x240c0002, 0xa74c0146, 0xa7500148, 0x8f8f0018,
+0x2405000d, 0xa745014a, 0x8f710000, 0x25e20008,
+0x30491fff, 0x3497021, 0x30cd0007, 0xaf910004,
+0xaf8f001c, 0xaf890018, 0xc03821, 0xaf490084,
+0x11a00003, 0x25db4000, 0x24c60007, 0x30c7fff8,
+0x8f980020, 0x8f840028, 0xf83021, 0xc4382b,
+0x14e00002, 0xaf980024, 0xc43023, 0x8f8a0014,
+0x3465821, 0x34088000, 0x168f821, 0x25590001,
+0x3c031000, 0x3c104000, 0xaf860020, 0xaf9f0038,
+0xaf460080, 0xaf430178, 0xaf990014, 0xaf500138,
+0xa000190, 0x0, 0x8f690000, 0x97440104,
+0x3127ffff, 0x3088ffff, 0x8f4f0178, 0x5e0fffe,
+0x30ff0007, 0x1f1823, 0x30780007, 0x24e6fffe,
+0x2419000a, 0xa7590140, 0xa7580142, 0xa7460144,
+0xa7400146, 0xa7480148, 0x8f420108, 0x30510020,
+0x16200002, 0x24030009, 0x24030001, 0x30aa0002,
+0xa743014a, 0x3c040041, 0x11400003, 0x1821,
+0x3c040141, 0x24030001, 0x30ab0004, 0x51600005,
+0xaf830008, 0x3c050010, 0x852025, 0x24030001,
+0xaf830008, 0xaf441000, 0x0, 0x0,
+0x0, 0x0, 0x8f900008, 0x12000004,
+0x0, 0x8f4c1000, 0x581fffe, 0x0,
+0x8f780000, 0x27620008, 0x8f8d003c, 0xaf980004,
+0x94460008, 0x9451000a, 0x944f000c, 0x30ceffff,
+0x112400, 0x31e9ffff, 0x11cd00a2, 0x892025,
+0x3c030800, 0x8c630444, 0x3c180800, 0x8f180440,
+0xe85021, 0x255ffffe, 0x7f7821, 0x1021,
+0x1ff302b, 0x3028821, 0x2264821, 0x3c010800,
+0xac2f0444, 0x3c010800, 0xac290440, 0x24eb0008,
+0x3162ffff, 0x30470007, 0x10e00003, 0x8f850018,
+0x24500007, 0x3202fff8, 0x3106ffff, 0x30c80007,
+0x457021, 0x31cd1fff, 0x34d6021, 0xaf85001c,
+0xaf8d0018, 0x259b4000, 0xaf4d0084, 0x11000003,
+0x8f8f0020, 0x24c40007, 0x3086fff8, 0x8f840028,
+0xcf2821, 0xa4482b, 0x15200002, 0xaf8f0024,
+0xa42823, 0xaf850020, 0xaf450080, 0x3c110800,
+0x8e310434, 0x345c021, 0x34028000, 0x3023021,
+0x12200005, 0xaf860038, 0x93830017, 0x2419000e,
+0x1079000d, 0x241f043f, 0x3c0a1000, 0xaf4a0178,
+0x8f8b0014, 0x25670001, 0xa0001dd, 0xaf870014,
+0xe0005a6, 0x3c104000, 0x8f8b0014, 0x25670001,
+0xa0001de, 0xaf870014, 0x3c0a1000, 0xa75f0148,
+0xaf4a0178, 0xa0004b4, 0x8f8b0014, 0x240e0f00,
+0x11ee003d, 0x30d10020, 0x16200002, 0x24030009,
+0x24030001, 0xa000208, 0xa743014a, 0xa0001fb,
+0xa7400146, 0x94e50008, 0x94e2000a, 0x94eb000c,
+0x8f86003c, 0x2fc00, 0x316affff, 0x30b9ffff,
+0x13260037, 0x3ea2025, 0x3c050800, 0x8ca50444,
+0x3c1f0800, 0x8fff0440, 0x5021, 0xa83821,
+0xe8302b, 0x3eac821, 0x326c021, 0x3c010800,
+0xac270444, 0x3c010800, 0xac380440, 0xa000269,
+0x8f8d0018, 0x3c190800, 0x8f39047c, 0x3c030800,
+0x8c630454, 0x3c060800, 0x8cc60478, 0x3c0f0800,
+0x8def0450, 0x3283821, 0x686821, 0xe8c02b,
+0xc48821, 0x1a8402b, 0x1e47021, 0x2385821,
+0x1c86021, 0x3c010800, 0xac2d0454, 0x3c010800,
+0xac2c0450, 0x3c010800, 0xac27047c, 0x3c010800,
+0xac2b0478, 0xa000269, 0x8f8d0018, 0xa7400146,
+0xa00041b, 0x8f8f0018, 0x30d00020, 0x1600ffc5,
+0x2403000d, 0x24030005, 0xa000208, 0xa743014a,
+0x97590104, 0x2738fff0, 0xa00036b, 0x3304ffff,
+0x8f8c0040, 0x148cffc8, 0x8021, 0x3c110800,
+0x8e31046c, 0x3c040800, 0x8c840468, 0x2287021,
+0x1c8782b, 0x904021, 0x10f6821, 0x3c010800,
+0xac2e046c, 0x3c010800, 0xac2d0468, 0xa000269,
+0x8f8d0018, 0x8f990040, 0x1499ff5d, 0x6021,
+0x3c050800, 0x8ca5046c, 0x3c100800, 0x8e100468,
+0xe82021, 0x248efffe, 0xaef821, 0x3ee582b,
+0x20c5021, 0x14b1821, 0x3c010800, 0xac3f046c,
+0x3c010800, 0xac230468, 0xa00048b, 0x24eb0008,
+0x8f880038, 0x3c02ffff, 0x8d0e000c, 0x1c26824,
+0x1a46025, 0xad0c000c, 0xa000379, 0x30cfffff,
+0xa0003a9, 0xae000000, 0x974b0104, 0x92040004,
+0x8e2a000c, 0x1644021, 0x251ffff2, 0x1471824,
+0x33f9ffff, 0x79c025, 0xae38000c, 0xa0002d4,
+0x8e190010, 0x3c03ffff, 0x8d110010, 0x2232824,
+0xa47825, 0xad0f0010, 0xa000379, 0x30cfffff,
+0x97450104, 0x92060004, 0x8e2f0010, 0xa61021,
+0x2449ffee, 0x1e76824, 0x312effff, 0x1ae6025,
+0xae2c0010, 0xa0002d4, 0x8e190010, 0x8e06000c,
+0xae000000, 0x3c080, 0x3108821, 0xa0002a6,
+0xae260020, 0x1460000d, 0x3050ffff, 0x3c04ffff,
+0x446024, 0x1846826, 0xd582b, 0xc502b,
+0x14b1024, 0x10400002, 0x0, 0xd,
+0x8ca30000, 0xa00023e, 0x641025, 0x3a11ffff,
+0x11782b, 0x10702b, 0x1cf2024, 0x10800002,
+0x0, 0xd, 0x8cb80000, 0xa00023e,
+0x3702ffff, 0x3084ffff, 0x30a5ffff, 0x10800007,
+0x1821, 0x30820001, 0x10400002, 0x42042,
+0x651821, 0x1480fffb, 0x52840, 0x3e00008,
+0x601021, 0x10c00007, 0x0, 0x8ca20000,
+0x24c6ffff, 0x24a50004, 0xac820000, 0x14c0fffb,
+0x24840004, 0x3e00008, 0x0, 0x10a00008,
+0x24a3ffff, 0xac860000, 0x0, 0x0,
+0x2402ffff, 0x2463ffff, 0x1462fffa, 0x24840004,
+0x3e00008, 0x0, 0x308effff, 0x30d8ffff,
+0x57c00, 0x1f86025, 0x39cdffff, 0x1ac5021,
+0x14c582b, 0x14b4821, 0x94402, 0x3127ffff,
+0xe83021, 0x62402, 0x30c5ffff, 0xa41821,
+0x3862ffff, 0x3e00008, 0x3042ffff, 0x3c0c0800,
+0x8d8c0484, 0x240bff80, 0x27bdffd0, 0x1845021,
+0x14b4824, 0xaf490020, 0x3c080800, 0x8d080484,
+0xafb20020, 0xafb00018, 0xafbf0028, 0xafb30024,
+0xafb1001c, 0x93660004, 0x1043821, 0x30e4007f,
+0x9a1021, 0x3c030008, 0x439021, 0x30c50020,
+0x3608021, 0x3c080111, 0x277b0008, 0x14a00002,
+0x26460070, 0x2646006c, 0x92130004, 0x97510104,
+0x920f0004, 0x3267000f, 0x322effff, 0x31ed0040,
+0x1c72823, 0x11a00005, 0x4821, 0x925900bc,
+0x33380004, 0x17000090, 0x0, 0x924300bc,
+0x307f0004, 0x13e0000f, 0x0, 0x10a0000d,
+0x0, 0x960e0002, 0x240aff80, 0xa76021,
+0x25cdfffe, 0xa74d1016, 0x920b0004, 0x14b2024,
+0x308200ff, 0x10400085, 0x10c4025, 0x3c0f0400,
+0x10f4025, 0x8f530178, 0x660fffe, 0x2404000a,
+0xa7440140, 0x960d0002, 0x24040009, 0x31ac0007,
+0xc5823, 0x316a0007, 0xa74a0142, 0x96020002,
+0x2443fffe, 0xa7430144, 0xa7400146, 0x975f0104,
+0xa75f0148, 0x8f590108, 0x33380020, 0x53000001,
+0x24040001, 0x920f0004, 0x31ee0010, 0x15c00002,
+0x34830010, 0x801821, 0xa743014a, 0x0,
+0x0, 0x0, 0x0, 0xaf481000,
+0x0, 0x0, 0x0, 0x0,
+0x8f511000, 0x621fffe, 0x3113ffff, 0x12600003,
+0x0, 0x8f481018, 0xacc80000, 0x96030006,
+0x307fffff, 0x27f90002, 0x199882, 0x138880,
+0x23b3021, 0x8cd80000, 0x15200057, 0x183402,
+0x92030004, 0x2405ff80, 0xa3f824, 0x33f100ff,
+0x1220002c, 0x0, 0x924700bc, 0x30f20002,
+0x12400028, 0x0, 0x974b100c, 0x2562fffe,
+0xa7421016, 0x0, 0x3c0a0400, 0x35490030,
+0xaf491000, 0x0, 0x0, 0x0,
+0x0, 0x8f4c1000, 0x581fffe, 0x0,
+0x9749100c, 0x8f51101c, 0xc02021, 0x3127ffff,
+0x24f20030, 0x121882, 0x32880, 0xbbf821,
+0x3226ffff, 0xaff10000, 0xe000595, 0x112c02,
+0x13c880, 0x33b9821, 0x8e780000, 0x27400,
+0xafb80010, 0x8fa80010, 0x310fffff, 0xafaf0010,
+0x8fa40010, 0x1c46825, 0xafad0010, 0x8fa60010,
+0xae660000, 0x97730008, 0x976d000a, 0x9766000c,
+0x8f8a003c, 0xd5c00, 0x30ccffff, 0x3262ffff,
+0x104a0036, 0x16c2025, 0x96060002, 0x3c101000,
+0x24d30008, 0xe000139, 0x3264ffff, 0x974c0104,
+0xe000147, 0x3184ffff, 0xaf500178, 0x8fbf0028,
+0x8fb30024, 0x8fb20020, 0x8fb1001c, 0x8fb00018,
+0x3e00008, 0x27bd0030, 0x10a0ff70, 0x0,
+0x24a5fffc, 0xa0005ce, 0x24090004, 0x8cd10000,
+0xaf511018, 0x8f530178, 0x660ff7a, 0x2404000a,
+0xa0005e3, 0x0, 0xa7c821, 0x8f880038,
+0x8f4e101c, 0x19c082, 0x187880, 0x1e82021,
+0xac8e0000, 0xe2c02, 0xc02021, 0xe000595,
+0x31c6ffff, 0x23b2821, 0x8cad0000, 0x25400,
+0x403021, 0xafad0010, 0x8fac0010, 0x318bffff,
+0xafab0010, 0x8fa20010, 0x1424825, 0xafa90010,
+0x8fa70010, 0xa000613, 0xaca70000, 0x8f8f0040,
+0x148fffc9, 0x0, 0x97420104, 0x960b0002,
+0x3c050800, 0x8ca5046c, 0x3049ffff, 0x316affff,
+0x3c110800, 0x8e310468, 0x12a3821, 0x24f2fffe,
+0xb24021, 0x12ffc3, 0x112c82b, 0x23fc021,
+0x3192021, 0x3c010800, 0xac28046c, 0x3c010800,
+0xac240468, 0xa00064d, 0x0, 0xa4102b,
+0x10400009, 0x24030001, 0x52840, 0xa4102b,
+0x4a00003, 0x31840, 0x5440fffc, 0x52840,
+0x10600007, 0x0, 0x85302b, 0x14c00002,
+0x31842, 0x852023, 0x1460fffb, 0x52842,
+0x3e00008, 0x801021, 0x8f85002c, 0x27bdffe8,
+0x53027, 0x2cc30001, 0x2ca40002, 0x831025,
+0x10400003, 0xafbf0010, 0x2405007f, 0xaf85002c,
+0x52827, 0x30a5ffff, 0xe000574, 0x240426f5,
+0x8f830030, 0x240402bd, 0x403021, 0x83382b,
+0x10e00009, 0x24050001, 0x42040, 0x83102b,
+0x4800003, 0x52840, 0x5440fffc, 0x42040,
+0x10a00008, 0xc35021, 0x64402b, 0x15000002,
+0x52842, 0x641823, 0x14a0fffb, 0x42042,
+0xc35021, 0x8fbf0010, 0xa4c02, 0x312200ff,
+0x27bd0018, 0xaf8a002c, 0x3e00008, 0xaf890030,
+0x0 };
+u32 bce_TPAT_b06FwData[(0x0/4) + 1] = { 0x0 };
+u32 bce_TPAT_b06FwRodata[(0x0/4) + 1] = { 0x0 };
+u32 bce_TPAT_b06FwBss[(0x450/4) + 1] = { 0x0 };
+u32 bce_TPAT_b06FwSbss[(0x44/4) + 1] = { 0x0 };
+u32 bce_TPAT_b06FwSdata[(0x0/4) + 1] = { 0x0 };
+
+
+int bce_TXP_b06FwReleaseMajor = 0x1;
+int bce_TXP_b06FwReleaseMinor = 0x0;
+int bce_TXP_b06FwReleaseFix = 0x0;
+u32 bce_TXP_b06FwStartAddr = 0x08000098;
+u32 bce_TXP_b06FwTextAddr = 0x08000000;
+int bce_TXP_b06FwTextLen = 0x3a74;
+u32 bce_TXP_b06FwDataAddr = 0x00000000;
+int bce_TXP_b06FwDataLen = 0x0;
+u32 bce_TXP_b06FwRodataAddr = 0x00000000;
+int bce_TXP_b06FwRodataLen = 0x0;
+u32 bce_TXP_b06FwBssAddr = 0x08003b08;
+int bce_TXP_b06FwBssLen = 0x14c;
+u32 bce_TXP_b06FwSbssAddr = 0x08003aa0;
+int bce_TXP_b06FwSbssLen = 0x68;
+u32 bce_TXP_b06FwSDataAddr = 0x00000000;
+int bce_TXP_b06FwSDataLen = 0x0;
+u32 bce_TXP_b06FwText[(0x3a74/4) + 1] = {
+0xa000026, 0x0, 0x0,
+0xd, 0x74787034, 0x2e362e31, 0x37000000,
+0x4061100, 0xa, 0x136, 0xea60,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x1d, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x10000003, 0x0, 0xd, 0xd,
+0x3c020800, 0x24423aa0, 0x3c030800, 0x24633c54,
+0xac400000, 0x43202b, 0x1480fffd, 0x24420004,
+0x3c1d0800, 0x37bd7ffc, 0x3a0f021, 0x3c100800,
+0x26100098, 0x3c1c0800, 0x279c3aa0, 0xe000305,
+0x0, 0xd, 0x8f830038, 0x3c088000,
+0x35070070, 0x8ce50000, 0x833025, 0x3c029000,
+0xc22025, 0xaf850030, 0xaf440020, 0x8f490020,
+0x520fffe, 0x3c038000, 0x34620070, 0x8c450000,
+0x8f860030, 0x3c190800, 0x8f39007c, 0x3c0e0800,
+0x8dce0078, 0xa62023, 0x3245821, 0x7821,
+0x164682b, 0x1cf6021, 0x18d5021, 0x3c010800,
+0xac2b007c, 0x3c010800, 0xac2a0078, 0x3e00008,
+0x0, 0xa00003d, 0x24040001, 0x8f840038,
+0x3c058000, 0x34a20001, 0x821825, 0x3e00008,
+0xaf430020, 0x3e00008, 0x1021, 0x3084ffff,
+0x30a5ffff, 0x10800007, 0x1821, 0x30820001,
+0x10400002, 0x42042, 0x651821, 0x1480fffb,
+0x52840, 0x3e00008, 0x601021, 0x10c00007,
+0x0, 0x8ca20000, 0x24c6ffff, 0x24a50004,
+0xac820000, 0x14c0fffb, 0x24840004, 0x3e00008,
+0x0, 0x10a00008, 0x24a3ffff, 0xac860000,
+0x0, 0x0, 0x2402ffff, 0x2463ffff,
+0x1462fffa, 0x24840004, 0x3e00008, 0x0,
+0x308affff, 0x93a80013, 0xa74a0144, 0x97490e16,
+0x30c600ff, 0x3c021000, 0xa7490146, 0xaf450148,
+0xa3460152, 0xa748015a, 0xaf470160, 0x8fa40018,
+0x8fa30014, 0xa7440158, 0xaf430154, 0x3e00008,
+0xaf420178, 0x3e00008, 0x0, 0x3c038000,
+0x34620070, 0x8c490000, 0x8f88003c, 0x24840007,
+0x27bdfff8, 0x3084fff8, 0xaf890030, 0x974d008a,
+0x31acffff, 0xafac0000, 0x8fab0000, 0x1685023,
+0x2547ffff, 0x30e61fff, 0xc4282b, 0x14a0fff7,
+0x3c0c8000, 0x358b0070, 0x8d6a0000, 0x3c070800,
+0x8ce70084, 0x3c060800, 0x8cc60080, 0x81082,
+0x1491823, 0x27880, 0xe37021, 0x2021,
+0x1c3c82b, 0xc4c021, 0x1fa4021, 0x3194821,
+0x25024000, 0x27bd0008, 0x3c010800, 0xac2e0084,
+0x3c010800, 0xac290080, 0x3e00008, 0x0,
+0x8f82003c, 0x24860007, 0x30c5fff8, 0xa21821,
+0x30641fff, 0x3e00008, 0xaf84003c, 0x3c0e20ff,
+0x27bdffe0, 0x3c1a8000, 0x3c0f8008, 0x35cdfffd,
+0xafbf0018, 0xafb10014, 0xafb00010, 0xaf8f0044,
+0xaf4d0e00, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x3c0c00ff, 0x358bfffd,
+0xaf4b0e00, 0x3c066004, 0x8cc95000, 0x240aff7f,
+0x3c116000, 0x12a4024, 0x3507380c, 0xacc75000,
+0x8e240438, 0x24050009, 0xaf450008, 0x3083ffff,
+0x38622f71, 0x2450c0b3, 0xaf80004c, 0xe000064,
+0xaf80003c, 0x52000001, 0xae20442c, 0xe000460,
+0x0, 0x8fbf0018, 0x8fb10014, 0x8fb00010,
+0xa000e77, 0x27bd0020, 0x27bdffd0, 0xafb20028,
+0xafb10024, 0xafbf002c, 0xafb00020, 0x93620008,
+0x809021, 0xa08821, 0x1440002d, 0x24040010,
+0xe00009a, 0x0, 0x8f8e004c, 0x3c103200,
+0x31c600ff, 0x67c00, 0x1f06025, 0x25cd0001,
+0xaf8d004c, 0xac4c0000, 0x936b0009, 0x9369000a,
+0x316a00ff, 0xa3c00, 0x312800ff, 0xe82025,
+0xac440004, 0x8f83004c, 0x6400043, 0xac430008,
+0xac40000c, 0x97980040, 0x33050008, 0x14a00002,
+0x26280006, 0x26280002, 0x97420e14, 0x8f450e1c,
+0x8f670004, 0x937f0002, 0x3044ffff, 0x33f900ff,
+0xafb90010, 0x8f710014, 0xafa80018, 0xe000087,
+0xafb10014, 0x8fbf002c, 0x8fb20028, 0x8fb10024,
+0x8fb00020, 0x24040010, 0xa0000c3, 0x27bd0030,
+0x93690009, 0x9368000b, 0x312300ff, 0x310200ff,
+0x628021, 0x261f000a, 0x33f0ffff, 0xe00009a,
+0x2002021, 0x8f86004c, 0x3c0d4100, 0x24d90001,
+0xaf99004c, 0x93780009, 0x30c600ff, 0x67400,
+0x330500ff, 0x24af0002, 0x1cf6025, 0x18d5825,
+0xac4b0000, 0x8f6a000c, 0x97440e14, 0x1523825,
+0xac470004, 0x8f450e1c, 0x8f670004, 0x93690002,
+0x3084ffff, 0x312800ff, 0xafa80010, 0x8f630014,
+0xafb10018, 0xe000087, 0xafa30014, 0x2002021,
+0x8fbf002c, 0x8fb20028, 0x8fb10024, 0x8fb00020,
+0xa0000c3, 0x27bd0030, 0x3c128000, 0xa000114,
+0xac52000c, 0x27bdffd8, 0xafb3001c, 0xafbf0020,
+0xafb20018, 0xafb10014, 0xafb00010, 0x93620008,
+0x14400081, 0x809821, 0xaf60000c, 0x97850040,
+0x30a44000, 0x1080008b, 0x24030016, 0x24104007,
+0xa363000a, 0xaf700014, 0x938f0042, 0x8f6c0014,
+0x31ee0007, 0xe6a40, 0x18d5825, 0xaf6b0014,
+0x978a0040, 0x8f680014, 0x31490010, 0x1093825,
+0xaf670014, 0x97860040, 0x30c30008, 0x5060008d,
+0x2821, 0x8f660014, 0x3c031000, 0x3c028100,
+0xc32825, 0xaf650014, 0x97440e0a, 0x2418000e,
+0x3405fffc, 0x309fffff, 0x3e2c825, 0xaf790004,
+0xa3780002, 0x9372000a, 0x26510004, 0xa371000a,
+0x97830040, 0x9364000a, 0x30661f00, 0x61183,
+0x44f821, 0x27f90028, 0xa3790009, 0x97580e0c,
+0xa7780010, 0x93720009, 0x26510002, 0x32300007,
+0x107823, 0x31ee0007, 0xa36e000b, 0x936d0009,
+0x976c0010, 0x8f900034, 0x97890040, 0x31ab00ff,
+0x16c5021, 0x1454021, 0x31270040, 0x10e00005,
+0x3105ffff, 0xb0382b, 0x3c068000, 0x10e00014,
+0x8821, 0x205402b, 0x15000033, 0x2021,
+0x8f4a0e14, 0xaf4a0e10, 0x8f490e1c, 0xaf490e18,
+0xaf450e00, 0x8f4c0000, 0x318b0008, 0x1160fffd,
+0x0, 0x974d0e08, 0xa08021, 0x3021,
+0xa78d0040, 0x8f450e04, 0x24110001, 0xaf850034,
+0x976e0010, 0x31d2ffff, 0x8e640000, 0x901023,
+0x14400009, 0xae620000, 0x8f6a0014, 0x8f870048,
+0x35490040, 0xaf690014, 0x8f480e10, 0xace80020,
+0x8f430e18, 0xace30024, 0xc02021, 0xe0000f5,
+0x2002821, 0x8e660000, 0x14c00005, 0x0,
+0x8f6b0014, 0x240cffbf, 0x16c9824, 0xaf730014,
+0x8f6d000c, 0x1b22821, 0xaf65000c, 0x93720008,
+0x16400003, 0x0, 0x16200031, 0x0,
+0xa3710008, 0x2002021, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x801021,
+0x3e00008, 0x27bd0028, 0x8f900034, 0x97910040,
+0x3c068000, 0x2009021, 0x322f0040, 0x15e0ffd2,
+0x8821, 0x977f0010, 0x8f980034, 0x33f9ffff,
+0x1738ffed, 0x2021, 0x3021, 0xa0001b9,
+0x24110001, 0x2403000e, 0x24104007, 0xa363000a,
+0xaf700014, 0x938f0042, 0x8f6c0014, 0x31ee0007,
+0xe6a40, 0x18d5825, 0xaf6b0014, 0x978a0040,
+0x8f680014, 0x31490010, 0x1093825, 0xaf670014,
+0x97860040, 0x30c30008, 0x1460ff76, 0x0,
+0x2821, 0xaf600004, 0xa000187, 0xa3600002,
+0x8f6f0014, 0x3c19efff, 0x3738fffe, 0x1f87024,
+0xa0001d7, 0xaf6e0014, 0x8f870038, 0x8f8a0044,
+0x27bdffe0, 0x8f860048, 0xafb00018, 0xafbf001c,
+0x8f450104, 0x8d4900ac, 0xaf470080, 0x8cc80020,
+0xa93823, 0x8021, 0xaf480e10, 0x8f440e10,
+0x4821, 0xaf440e14, 0x8cc20024, 0xaf420e18,
+0x8f430e18, 0xaf430e1c, 0x10e00036, 0x2d390001,
+0x936b0008, 0x1160004f, 0x0, 0x976e0010,
+0x31cdffff, 0xed602b, 0x1580004a, 0x0,
+0x97780010, 0x330fffff, 0xaf4f0e00, 0x8f5f0000,
+0x33f90008, 0x1320fffd, 0x0, 0x97420e08,
+0x8f460e04, 0x3045ffff, 0x30a30001, 0x1060008a,
+0x0, 0xd, 0x30a8a040, 0x24040040,
+0x1104003b, 0x30a9a000, 0x11200085, 0x0,
+0x936c0008, 0x51800009, 0x27a40010, 0x976f0010,
+0x31eeffff, 0xce682b, 0x11a00004, 0x27a40010,
+0x30b80040, 0x1300007a, 0x0, 0xafa70010,
+0xa7850040, 0xaf860034, 0xe000158, 0x0,
+0x404821, 0x1440ffd0, 0x8fa70010, 0x8f420e14,
+0x8f840048, 0xac820020, 0x8f470e1c, 0xac870024,
+0x2d390001, 0x3303025, 0x10c00017, 0x8fbf001c,
+0x8f840038, 0x24100f00, 0x10900085, 0x0,
+0x8f4f0178, 0x5e0fffe, 0x24180f00, 0x1098006f,
+0x0, 0x8f470e14, 0x24020240, 0x3c101000,
+0xaf470144, 0x8f490e1c, 0xaf490148, 0xa3400152,
+0xa740015a, 0xaf400160, 0xa7400158, 0xaf420154,
+0xaf500178, 0x8fbf001c, 0x8fb00018, 0x3e00008,
+0x27bd0020, 0xaf470e00, 0xa00022e, 0x0,
+0x8f490178, 0x520fffe, 0x240a0800, 0x8f84003c,
+0xaf4a0178, 0x9758008a, 0x330fffff, 0x1e47023,
+0x25cdffff, 0x31ac1fff, 0x2d8b0008, 0x1560fff9,
+0x0, 0x8f83004c, 0x8f9f0038, 0xc04821,
+0x3442021, 0x24660001, 0x24190f00, 0xaf86004c,
+0x306a00ff, 0xe93823, 0x24864000, 0x13f90005,
+0x24080001, 0x938b0042, 0x31680007, 0x81240,
+0x34480001, 0xa7c00, 0x3c180100, 0x1f87025,
+0xac8e4000, 0x8f8d004c, 0x30ac0036, 0x30a40008,
+0xaccd0004, 0x1080002e, 0x10c3025, 0x974d0e0a,
+0x8f8c003c, 0x3c028100, 0x31a4ffff, 0x258b0008,
+0x824025, 0x3c031000, 0x31651fff, 0x25390006,
+0x241f000e, 0xaf480160, 0xc33025, 0xa75f015a,
+0xaf85003c, 0xa7590158, 0x14e0000a, 0x8f9f0038,
+0x24050f00, 0x53e50002, 0x24100001, 0x34c60040,
+0x8f430e10, 0x8f880048, 0xad030020, 0x8f4b0e18,
+0xad0b0024, 0x8f420e14, 0xaf420144, 0x8f440e1c,
+0xaf440148, 0xa34a0152, 0x3c0a1000, 0xaf460154,
+0xa000221, 0xaf4a0178, 0x14c0ff78, 0x30a8a040,
+0x8f420e14, 0x8f840048, 0x4821, 0xac820020,
+0x8f470e1c, 0xac870024, 0xa000258, 0x2d390001,
+0x8f98003c, 0x25390002, 0xa7590158, 0x270f0008,
+0x31ee1fff, 0xa0002ad, 0xaf8e003c, 0xaf40014c,
+0x1120002c, 0x0, 0x8f460e10, 0xaf460144,
+0x8f430e18, 0x24020040, 0x3c101000, 0xaf430148,
+0xa3400152, 0xa740015a, 0xaf400160, 0xa7400158,
+0xaf420154, 0xaf500178, 0xa000271, 0x8fbf001c,
+0x11200006, 0x0, 0x975f0e08, 0x33e50040,
+0x14a00002, 0x0, 0xd, 0x8f480178,
+0x500fffe, 0x0, 0x974e0e10, 0x3c0d0500,
+0x24032000, 0x31ccffff, 0x18d1025, 0xaf42014c,
+0x8f440e14, 0x3c0b1000, 0xaf440144, 0x8f4a0e1c,
+0xaf4a0148, 0xa3400152, 0x8f840038, 0xa740015a,
+0xaf400160, 0xa7400158, 0xaf430154, 0xa00025f,
+0xaf4b0178, 0x8f590e14, 0xaf590144, 0x8f430e1c,
+0xa0002d9, 0x24020040, 0x27bdffe0, 0xafb20018,
+0xafb10014, 0xafb00010, 0xafbf001c, 0xe0000ca,
+0x0, 0x3c028000, 0x8f8a0044, 0x34500070,
+0x3c120800, 0x26523b70, 0x2008821, 0x8e080000,
+0x8f450000, 0x38a40001, 0x30830001, 0x10600017,
+0xaf880030, 0x2204821, 0x8d2c0000, 0x3c020800,
+0x8c42006c, 0x3c180800, 0x8f180068, 0x1881823,
+0x436821, 0xc821, 0x1a3782b, 0x3197021,
+0x1cf4021, 0x3c010800, 0xac2d006c, 0x3c010800,
+0xac280068, 0x8f4b0000, 0x39670001, 0x30e60001,
+0x14c0ffed, 0x1804021, 0xaf8c0030, 0x8e180000,
+0x3c0e0800, 0x8dce006c, 0x3c0c0800, 0x8d8c0068,
+0x3087823, 0x1cf2821, 0x4021, 0xaf302b,
+0x1885821, 0x1662021, 0x3c010800, 0xac25006c,
+0x3c010800, 0xac240068, 0x8f490100, 0x25470088,
+0xaf870048, 0xaf890038, 0xaf490020, 0x8e070000,
+0xaf870030, 0x8f590178, 0x720fffe, 0x0,
+0x8e0f0000, 0x3c0d0800, 0x8dad0074, 0x3c0c0800,
+0x8d8c0070, 0x1e77023, 0x1ae2821, 0x3021,
+0xae582b, 0x1862021, 0x8b3821, 0x24090800,
+0x3c010800, 0xac250074, 0x3c010800, 0xac270070,
+0xaf490178, 0x93430108, 0xa3830042, 0x93820042,
+0x305f0001, 0x17e00015, 0x8f830038, 0x241f0d00,
+0x107f0019, 0x24020f00, 0x1062001d, 0x0,
+0x91470000, 0x24030050, 0x30e900ff, 0x11230004,
+0x3c054000, 0xaf450138, 0xa000312, 0x0,
+0xe0008da, 0x0, 0x8f8a0044, 0x3c054000,
+0xaf450138, 0xa000312, 0x0, 0x93990042,
+0x33380006, 0x185100, 0xe00020d, 0x152d821,
+0xa00036e, 0x8f8a0044, 0x3c1b0800, 0x277b3bf0,
+0xe00020d, 0x0, 0xa00036e, 0x8f8a0044,
+0x3c1b0800, 0x277b3c10, 0xe00020d, 0x0,
+0xa00036e, 0x8f8a0044, 0x90aa0001, 0x8fab0010,
+0x8cac0010, 0x3c0300ff, 0x8d680004, 0xad6c0020,
+0x8cad0014, 0xe06021, 0x3462ffff, 0xad6d0024,
+0x8ca70018, 0x3c09ff00, 0x109c024, 0xad670028,
+0x8cae001c, 0x182c824, 0x3197825, 0xad6f0004,
+0xad6e002c, 0x8cad0008, 0x314a00ff, 0xad6d001c,
+0x94a90002, 0x3128ffff, 0xad680010, 0x90a70000,
+0xa5600002, 0xa1600004, 0xa1670000, 0x90a30002,
+0x306200ff, 0x21982, 0x10600005, 0x24050001,
+0x1065000e, 0x0, 0x3e00008, 0xa16a0001,
+0x8cd80028, 0x354a0080, 0xad780018, 0x8ccf0014,
+0xad6f0014, 0x8cce0030, 0xad6e0008, 0x8cc4002c,
+0xa16a0001, 0x3e00008, 0xad64000c, 0x8ccd001c,
+0xad6d0018, 0x8cc90014, 0xad690014, 0x8cc80024,
+0xad680008, 0x8cc70020, 0xad67000c, 0x8cc20014,
+0x8c830064, 0x43c82b, 0x13200007, 0x0,
+0x8cc20014, 0x144cffe4, 0x0, 0x354a0080,
+0x3e00008, 0xa16a0001, 0x8c820064, 0xa0003c4,
+0x0, 0x90aa0000, 0x27bdfff8, 0x8fa9001c,
+0xa3aa0000, 0x8fae0000, 0x3c0fff80, 0x8fa80018,
+0x35e2ffff, 0x8ccd002c, 0x1c26024, 0xafac0000,
+0xa1200004, 0xe06021, 0xa7a00002, 0x8fb80000,
+0x8d270004, 0x1881821, 0xa05821, 0xc05021,
+0x6d2826, 0x3c06ff7f, 0x3c0f00ff, 0x2cad0001,
+0x35eeffff, 0x34d9ffff, 0x3c02ff00, 0x3193024,
+0xd1dc0, 0x10ec824, 0xe2c024, 0xc37025,
+0x3197825, 0xad2e0000, 0xad2f0004, 0x8d450024,
+0xafae0000, 0xad250008, 0x8d4d0020, 0x2405ffff,
+0xad2d000c, 0x95680002, 0x3107ffff, 0xad270010,
+0x91660018, 0x30c200ff, 0x219c2, 0x50600001,
+0x8d450034, 0xad250014, 0x8d670008, 0x27bd0008,
+0xad27001c, 0x8c8b00cc, 0xad2c0028, 0xad20002c,
+0xad2b0024, 0xad200018, 0x3e00008, 0xad200020,
+0x27bdffe0, 0xafb20018, 0xafb10014, 0xafb00010,
+0xafbf001c, 0x90980000, 0xc08821, 0x3c0d00ff,
+0x330f007f, 0xa0cf0000, 0x908e0001, 0x35acffff,
+0x3c0aff00, 0xa0ce0001, 0x94a6001e, 0xa2200004,
+0x8cab0014, 0x8e290004, 0xa08021, 0x16c2824,
+0x12a4024, 0x809021, 0x1052025, 0xa6260002,
+0xae240004, 0x26050020, 0x26240008, 0xe000072,
+0x24060002, 0x92470000, 0x26050028, 0x26240014,
+0x71e00, 0x31603, 0x24060004, 0x4400003,
+0x2403ffff, 0x96590002, 0x3323ffff, 0xe000072,
+0xae230010, 0x26240024, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x24050003, 0x3021,
+0xa00007c, 0x27bd0020, 0x27bdffd8, 0xafb1001c,
+0xafb00018, 0xafbf0020, 0x90a80000, 0x24020001,
+0x8fb0003c, 0x3103003f, 0x808821, 0x10620014,
+0x8faa0038, 0x240b0005, 0x506b0016, 0xafaa0010,
+0xa02021, 0xc02821, 0xe000407, 0x2003021,
+0x922400bc, 0x30830002, 0x10600003, 0x26060030,
+0xacc00000, 0x24c60004, 0x8fbf0020, 0x8fb1001c,
+0x8fb00018, 0xc01021, 0x3e00008, 0x27bd0028,
+0x1403821, 0xe000385, 0xafb00010, 0xa00044b,
+0x0, 0xe0003cc, 0xafb00014, 0xa00044b,
+0x0, 0x3c02000a, 0x3421821, 0x3c040800,
+0x24843b08, 0x2405001a, 0x3021, 0xa00007c,
+0xaf83002c, 0x3c038000, 0x34620070, 0x8c480000,
+0xa05821, 0xc04821, 0x308a00ff, 0xaf880030,
+0x8f440178, 0x480fffe, 0x3c0c8000, 0x35860070,
+0x8cc50000, 0x3c030800, 0x8c630074, 0x3c180800,
+0x8f180070, 0xa82023, 0x646821, 0xc821,
+0x1a4782b, 0x3197021, 0x1cf6021, 0x3c010800,
+0xac2d0074, 0x3c010800, 0xac2c0070, 0x8f480e14,
+0xaf480144, 0xaf47014c, 0xa34a0152, 0xa74b0158,
+0x93460108, 0x30c50008, 0x54a00001, 0x35291000,
+0x934b0900, 0x24070050, 0x316a00ff, 0x11470007,
+0x0, 0x8f450e1c, 0xaf450148, 0xaf490154,
+0x3c091000, 0x3e00008, 0xaf490178, 0x934d0108,
+0x31a80008, 0x11000010, 0x0, 0x934f0108,
+0x31ee0010, 0x51c00001, 0x35290008, 0x3c040800,
+0x90843b6c, 0xa3440150, 0x8f4309a4, 0xaf430148,
+0x8f4209a0, 0xaf420144, 0xaf490154, 0x3c091000,
+0x3e00008, 0xaf490178, 0x3c190800, 0x8f393b28,
+0x33380008, 0x5700fff1, 0x35290008, 0xa00049e,
+0x0, 0x24070040, 0xaf470814, 0xaf400810,
+0x8f420944, 0x8f430950, 0x8f440954, 0x8f45095c,
+0x8f46094c, 0xaf820064, 0xaf830054, 0xaf840050,
+0xaf85005c, 0x3e00008, 0xaf860060, 0x93460109,
+0x30c5007f, 0x518c0, 0x52140, 0x831021,
+0x3e00008, 0x24420088, 0x3c0a0800, 0x914a3b2d,
+0x3c090800, 0x95293b26, 0x3c051100, 0xa3c00,
+0x25280002, 0xe83025, 0xc51825, 0x24820008,
+0xac830000, 0x3e00008, 0xac800004, 0x8f4a002c,
+0x974d0908, 0x3c0e000e, 0x34e3821, 0x31acffff,
+0xc41c0, 0xaf48002c, 0x97430908, 0x94eb001a,
+0x804021, 0x24020001, 0x3169ffff, 0xac890000,
+0x8ce6001c, 0xa05821, 0xac860004, 0x8ce40020,
+0xad040008, 0x90e30019, 0x30630003, 0x1062003e,
+0x0, 0x28650002, 0x14a00071, 0x240f0002,
+0x106f004c, 0x0, 0x24180003, 0x10780055,
+0x0, 0x3c090800, 0x95293b1c, 0x93430934,
+0x934f0921, 0x3c050800, 0x94a53b22, 0x306400ff,
+0x94ee002a, 0x46882, 0x31ec00ff, 0x978f0058,
+0xdc600, 0xccc00, 0x3127ffff, 0x3191025,
+0xa73021, 0x462025, 0x1cf6821, 0x3c034000,
+0x836025, 0xd4c00, 0xad090004, 0xad0c0000,
+0x93590920, 0x3c180006, 0x25090014, 0x193e00,
+0xf82825, 0xad050008, 0x8f4e092c, 0x25e60001,
+0x30c27fff, 0xad0e000c, 0x8f440930, 0xa7820058,
+0x25020028, 0xad040010, 0x8f4d0938, 0xad0d0014,
+0xad2b0004, 0x8f4c0940, 0xad2c0008, 0x93430937,
+0x3c190800, 0x93393b2c, 0xad200010, 0x34700,
+0x19c400, 0x1185825, 0x3567ffff, 0xad27000c,
+0x3e00008, 0xaf4a002c, 0x3c090800, 0x95293b1c,
+0x3c0d0800, 0x95ad3b26, 0x3c0c0800, 0x958c3b18,
+0x94e40024, 0x312effff, 0x1ae3021, 0xcc1823,
+0x4cc00, 0x2462fff2, 0x322c025, 0x240f0800,
+0xad18000c, 0xad0f0014, 0xad000010, 0xa0004f2,
+0x25080018, 0x94e50024, 0x94ee0028, 0x3c090800,
+0x95293b1c, 0x56c00, 0xe6400, 0x35a68100,
+0x35840800, 0xad06000c, 0xad040010, 0xa0004f2,
+0x25080014, 0x3c090800, 0x95293b1c, 0x3c0f0800,
+0x95ef3b26, 0x3c060800, 0x94c63b18, 0x94e40024,
+0x3125ffff, 0x94ed0028, 0x1e57021, 0x1c66023,
+0x4cc00, 0xd1c00, 0x2582ffee, 0x627825,
+0x37388100, 0x24050800, 0xad18000c, 0xad0f0010,
+0xad050018, 0xad000014, 0xa0004f2, 0x2508001c,
+0x1460ff94, 0x0, 0x94e30024, 0x3c090800,
+0x95293b1c, 0x31400, 0x34590800, 0xad19000c,
+0xa0004f2, 0x25080010, 0x3e00008, 0x240201f4,
+0x27bdffe8, 0xafb00010, 0xafbf0014, 0xe00005c,
+0x808021, 0x24050040, 0xaf450814, 0x8f830054,
+0x8f840050, 0x8f85005c, 0x701821, 0x641023,
+0x18400004, 0xaf830054, 0xaf630054, 0x8f660054,
+0xaf860050, 0x1200000c, 0x0, 0x8f440074,
+0x93680081, 0x3409fa00, 0x2d070007, 0x10e00005,
+0x891021, 0x936c0081, 0x240b01f4, 0x18b5004,
+0x1441021, 0xaf62000c, 0x8f4e095c, 0x1c56823,
+0x19a00004, 0x8fbf0014, 0x8f4f095c, 0xaf8f005c,
+0x8fbf0014, 0x8fb00010, 0xa00005e, 0x27bd0018,
+0x8f840064, 0x8f830054, 0x8f820050, 0xaf640044,
+0xaf630050, 0x3e00008, 0xaf620054, 0x3c038000,
+0x34620070, 0x8c430000, 0x27bdfff8, 0x308700ff,
+0x30a900ff, 0x30c800ff, 0xaf830030, 0x8f440178,
+0x480fffe, 0x3c028000, 0x34590070, 0x8f380000,
+0xa3a70003, 0x3c070800, 0x8ce70074, 0x8fac0000,
+0x3c060800, 0x8cc60070, 0x3037823, 0x3c0e7fff,
+0xefc821, 0x35cdffff, 0x5021, 0x18d2824,
+0xca1821, 0x847c0, 0x32f202b, 0xa81025,
+0x64c021, 0xafa20000, 0x3c010800, 0xac390074,
+0x3c010800, 0xac380070, 0x934f010a, 0xa3a00002,
+0x3c0e80ff, 0xa3af0001, 0x8fac0000, 0x312b007f,
+0x35cdffff, 0x18d4824, 0xb5600, 0x12a4025,
+0x24073000, 0x2406ff80, 0x3c051000, 0x27bd0008,
+0xaf48014c, 0xaf470154, 0xa7400158, 0xa3460152,
+0x3e00008, 0xaf450178, 0x27bdffe8, 0xafbf0014,
+0xafb00010, 0x8f650074, 0x3c068000, 0x309000ff,
+0xa62025, 0xe00005c, 0xaf640074, 0x93630005,
+0x34620008, 0xe00005e, 0xa3620005, 0x2002021,
+0x8fbf0014, 0x8fb00010, 0x24050005, 0x24060001,
+0xa000596, 0x27bd0018, 0x27bdffe0, 0x3c038000,
+0xafb00010, 0xafbf0018, 0xafb10014, 0x34620070,
+0x8c470000, 0x309000ff, 0x30a800ff, 0xaf870030,
+0x8f440178, 0x480fffe, 0x3c188000, 0x37110070,
+0x8e2f0000, 0x3c0d0800, 0x8dad0074, 0x3c0a0800,
+0x8d4a0070, 0x1e77023, 0x1ae2821, 0x5821,
+0xae302b, 0x14b4821, 0x1263821, 0x3c010800,
+0xac250074, 0x8821, 0x3c010800, 0xac270070,
+0x1100000f, 0x0, 0x8f620074, 0x2619ffff,
+0x3208007f, 0x2fe02, 0x33e5007f, 0x15000006,
+0x332200ff, 0x2407ff80, 0x2072026, 0x24a3ffff,
+0x838025, 0x320200ff, 0x408021, 0x24111008,
+0xe00005c, 0x0, 0x8f490818, 0x31250004,
+0x14a0fffd, 0x3218007f, 0x1878c0, 0x187140,
+0x1cf6821, 0x25ac0088, 0xaf4c0818, 0x274a0980,
+0x8d4b0020, 0xaf4b0144, 0x8d460024, 0xaf460148,
+0xa3500150, 0xe00005e, 0xa7400158, 0x2201021,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0020, 0x27bdffe8, 0x308400ff, 0xafbf0010,
+0xe0005e1, 0x30a500ff, 0x8f830054, 0x8fbf0010,
+0x34450040, 0x2404ff90, 0x3c021000, 0x27bd0018,
+0xaf43014c, 0xa3440152, 0xaf450154, 0x3e00008,
+0xaf420178, 0x27bdffe8, 0xafbf0014, 0xafb00010,
+0x9345093f, 0x24020006, 0x3c080800, 0x95083b22,
+0x30a300ff, 0x2487ffd8, 0x24050004, 0x10620036,
+0x24060002, 0x974e093c, 0x3c0d0204, 0x63400,
+0x31ccffff, 0x18d5825, 0xac8b0000, 0x934a093e,
+0x31490020, 0x11200008, 0x0, 0x935f0936,
+0x3c190103, 0x37380300, 0x33f000ff, 0x2187825,
+0x24050008, 0xac8f0004, 0x93580934, 0x934d0921,
+0x3c104000, 0x330e00ff, 0xe6082, 0x31ab00ff,
+0xc5600, 0xb1400, 0x1421825, 0x68f825,
+0x3f0c825, 0xac99ffd8, 0x93580937, 0x8f4c0948,
+0x8f4d0940, 0x57882, 0x330e00ff, 0x1cf5821,
+0x18d2823, 0xb5700, 0x1461025, 0x30a3ffff,
+0x434025, 0xf4880, 0x1273021, 0xace80020,
+0xe00005c, 0x24d00028, 0x24040004, 0xe00005e,
+0xa364003f, 0x2001021, 0x8fbf0014, 0x8fb00010,
+0x3e00008, 0x27bd0018, 0xa000644, 0x24060012,
+0x27bdffd0, 0x24090010, 0xafb50024, 0xafb40020,
+0xafb3001c, 0xafb10014, 0xafb00010, 0x3c010800,
+0xa0293b2c, 0xafbf0028, 0xafb20018, 0x97480908,
+0x309400ff, 0x3c02000e, 0x3107ffff, 0x731c0,
+0xaf46002c, 0x97440908, 0x9344010b, 0x30b300ff,
+0x3428021, 0x30830030, 0xa821, 0x106000e4,
+0x8821, 0x240c0004, 0x3c010800, 0xa02c3b2c,
+0x934b093e, 0xb5600, 0xa2e03, 0x4a00131,
+0x0, 0xaf400048, 0x9352010b, 0x324f0020,
+0x11e00006, 0x0, 0x935f093e, 0x1fce00,
+0x19c603, 0x7000148, 0x0, 0x9346010b,
+0x30c20040, 0x10400003, 0x8f920054, 0x8f870054,
+0x24f2ffff, 0x960a002c, 0x93450934, 0x93490937,
+0xa78a0058, 0x30a600ff, 0x312700ff, 0x71080,
+0x462021, 0x91f821, 0x3c010800, 0xa43f3b22,
+0x92030018, 0x3c010800, 0xa4203b1c, 0x3c010800,
+0xa4203b18, 0x307000ff, 0x3f04021, 0x250b000a,
+0x3170ffff, 0x3c010800, 0xa4283b24, 0x3c010800,
+0xa4283b26, 0xe00009a, 0x2002021, 0xe0004c5,
+0x402021, 0x8f4b002c, 0x97580908, 0x3c19000e,
+0x3594021, 0x330fffff, 0xf71c0, 0xaf4e002c,
+0x97430908, 0x950d001a, 0x24110001, 0x403821,
+0x31acffff, 0xac4c0000, 0x8d0a001c, 0xac4a0004,
+0x8d050020, 0xac450008, 0x91090019, 0x31230003,
+0x107100bd, 0x28710002, 0x16200103, 0x240c0002,
+0x106c00f5, 0x240d0003, 0x106d00ca, 0x0,
+0x3c090800, 0x95293b1c, 0x93430934, 0x93580921,
+0x3c0a0800, 0x954a3b22, 0x306400ff, 0x950c002a,
+0x4f882, 0x331900ff, 0x97980058, 0x1f7600,
+0x197c00, 0x3126ffff, 0x1cf4025, 0x1466821,
+0x10d8825, 0x1982821, 0x3c084000, 0x2281025,
+0x54c00, 0xace90004, 0xace20000, 0x93430920,
+0x3c040006, 0x24e90014, 0x3fe00, 0x3e4c825,
+0xacf90008, 0x8f4e092c, 0x270f0001, 0x31e67fff,
+0xacee000c, 0x8f4d0930, 0xa7860058, 0x24e60028,
+0xaced0010, 0x8f4c0938, 0xacec0014, 0xad320004,
+0x8f510940, 0xad310008, 0x93420937, 0x3c050800,
+0x90a53b2c, 0xad200010, 0x22700, 0x51c00,
+0x83f825, 0x37f2ffff, 0xad32000c, 0xaf4b002c,
+0x12a00033, 0x0, 0x9352093f, 0x24150006,
+0x24050004, 0x324b00ff, 0x117500cd, 0x24090002,
+0x974f093c, 0x3c0e0204, 0x31edffff, 0x1ae6025,
+0xacec0028, 0x9351093e, 0x32220020, 0x10400008,
+0x0, 0x93440936, 0x3c180103, 0x371f0300,
+0x309900ff, 0x33f2825, 0xacc50004, 0x24050008,
+0x93520934, 0x93430921, 0x56082, 0x324b00ff,
+0xba882, 0x306400ff, 0x15fe00, 0x4c400,
+0x3f8c825, 0x32a7825, 0x1e87025, 0xacceffd8,
+0x934d0937, 0x8f520948, 0x8f420940, 0x31b100ff,
+0x22c5821, 0x2423023, 0xb1f00, 0x9ac00,
+0x754825, 0x30c8ffff, 0x1285025, 0xe00005c,
+0xacea0020, 0x24070004, 0xe00005e, 0xa367003f,
+0xe0000c3, 0x2002021, 0x3c050800, 0x90a53b2c,
+0x30b00003, 0x1200000f, 0x2802021, 0x8f880054,
+0x25090001, 0xaf890054, 0xaf690050, 0x8f6a0054,
+0x1493823, 0x18e00002, 0x1202021, 0x8f640054,
+0xaf640054, 0x8f420074, 0x244601f4, 0xaf66000c,
+0x2802021, 0x2602821, 0xa7600068, 0xe0005e1,
+0x3c131000, 0x8f8e0054, 0x34540006, 0xaf4e014c,
+0x8f8d004c, 0x8fbf0028, 0x8fb50024, 0x31b100ff,
+0x25ac0001, 0xaf8c004c, 0x8fb20018, 0xa3510152,
+0x8fb00010, 0xaf540154, 0x8fb10014, 0xaf530178,
+0x8fb40020, 0x8fb3001c, 0x3e00008, 0x27bd0030,
+0x9359093e, 0x19c600, 0x189603, 0x6420048,
+0x24110002, 0x93420923, 0x30440002, 0x1080ff1e,
+0x8f870060, 0x8f860054, 0x14e6ff1b, 0x0,
+0xe00005c, 0x0, 0x9365003f, 0x24080016,
+0x30a900ff, 0x1128000c, 0x240a0008, 0x3c0d0800,
+0x91ad3b2c, 0x35ac0001, 0x3c010800, 0xa02c3b2c,
+0x936b003f, 0x316300ff, 0x106a0065, 0x240e000a,
+0x106e005e, 0x2402000c, 0xe00005e, 0x0,
+0xa00069d, 0x0, 0x3c090800, 0x95293b1c,
+0x3c190800, 0x97393b26, 0x3c180800, 0x97183b18,
+0x950e0024, 0x313fffff, 0x33f7821, 0x1f86823,
+0xe8c00, 0x25acfff2, 0x22c5025, 0x24050800,
+0x24470018, 0xac4a000c, 0xac450014, 0xa0006e5,
+0xac400010, 0x3c090800, 0x95293b1c, 0x3c180800,
+0x97183b26, 0x3c0f0800, 0x95ef3b18, 0x950d0024,
+0x3139ffff, 0x950c0028, 0x3197021, 0x1cf8823,
+0xd2c00, 0xc5400, 0x2622ffee, 0x1423025,
+0x34a48100, 0x24030800, 0xace4000c, 0xace60010,
+0xace30018, 0xace00014, 0xa0006e5, 0x24e7001c,
+0x3c010800, 0xa0313b2c, 0x9343093e, 0x24150001,
+0x307f0020, 0x17e0fed4, 0x24110008, 0xa00069d,
+0x24110004, 0x8f6e0084, 0x8f4d0940, 0x11a0fecd,
+0xaf8e0054, 0x240f0014, 0x3c010800, 0xa02f3b2c,
+0xa00069c, 0x0, 0x95020024, 0x95060028,
+0x3c090800, 0x95293b1c, 0x22400, 0x61c00,
+0x349f8100, 0x34790800, 0xacff000c, 0xacf90010,
+0xa0006e5, 0x24e70014, 0x1460ff01, 0x0,
+0x95180024, 0x3c090800, 0x95293b1c, 0x24470010,
+0x187c00, 0x35ee0800, 0xa0006e5, 0xac4e000c,
+0xa00071f, 0x24090012, 0x8f64004c, 0xaf640054,
+0x8f630054, 0xa0006a6, 0xaf630050, 0xa362003f,
+0xe00005e, 0x0, 0xa00069d, 0x0,
+0x24020014, 0xa0007f3, 0xa362003f, 0x27bdffe8,
+0x308400ff, 0xafbf0010, 0xe0005e1, 0x30a500ff,
+0x9378007e, 0x9379007f, 0x936e0080, 0x9368007a,
+0x332f00ff, 0x186600, 0xf6c00, 0x31cb00ff,
+0x18d4825, 0xb5200, 0x8fbf0010, 0x12a3825,
+0x310600ff, 0x34447000, 0xe62825, 0x2402ff81,
+0x3c031000, 0x27bd0018, 0xaf45014c, 0xaf440154,
+0xa3420152, 0x3e00008, 0xaf430178, 0x27bdffd8,
+0xafb20018, 0xafb10014, 0xafb00010, 0xafbf0020,
+0xafb3001c, 0x93420109, 0x308600ff, 0x30b000ff,
+0x618c2, 0x32040002, 0x30710001, 0x14800005,
+0x305200ff, 0x93670005, 0x30e50008, 0x10a0000d,
+0x30c80010, 0x2402021, 0xe0005cd, 0x2202821,
+0x24040001, 0x8fbf0020, 0x8fb3001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x801021, 0x3e00008,
+0x27bd0028, 0x15000032, 0x0, 0x93430109,
+0x2821, 0x3062007f, 0x220c0, 0x2f940,
+0x3e49821, 0x26790088, 0x33b9821, 0x8e780024,
+0x8e6f0008, 0x130f0046, 0x0, 0x8f640084,
+0x24180002, 0x4fd82, 0x33f90003, 0x1338007c,
+0x0, 0x93660083, 0x934a0109, 0x51460004,
+0x3205007c, 0x10a00060, 0x0, 0x3205007c,
+0x14a00053, 0x2402021, 0x16200006, 0x32040001,
+0x8e7f0024, 0x8f590104, 0x17f9ffd6, 0x2021,
+0x32040001, 0x1080000a, 0x2402021, 0x8f420940,
+0x8f930064, 0x10530006, 0x0, 0xe00067b,
+0x2202821, 0x8f430940, 0xaf630044, 0x2402021,
+0xe000628, 0x2202821, 0xa00082c, 0x24040001,
+0x3c090800, 0x8d290064, 0x25260001, 0x3c010800,
+0xac260064, 0x16000012, 0x0, 0x8f6d0084,
+0x3c0e00c0, 0x1ae6024, 0x15800005, 0x2402021,
+0xe0007fa, 0x2202821, 0xa00082c, 0x24040001,
+0x24050004, 0xe000596, 0x24060001, 0x2402021,
+0xe0007fa, 0x2202821, 0xa00082c, 0x24040001,
+0xe00003d, 0x24040001, 0x936b007d, 0x20b5025,
+0xe00005e, 0xa36a007d, 0xa00086f, 0x8f6d0084,
+0x8f660074, 0x8f480104, 0x8e670024, 0x64e02,
+0x1507ffb6, 0x3126007f, 0x936b0083, 0x26440001,
+0x308a007f, 0x11460043, 0x316300ff, 0x5464ffb0,
+0x8f640084, 0x26450001, 0x30b1007f, 0x30a200ff,
+0x12260004, 0x24050001, 0x409021, 0xa000842,
+0x24110001, 0x240fff80, 0x24f7024, 0x1cf9026,
+0x324200ff, 0x409021, 0xa000842, 0x24110001,
+0xe00067b, 0x2202821, 0x32180030, 0x1300ffaa,
+0x32100082, 0x2402021, 0xe0005cd, 0x2202821,
+0xa00082c, 0x24040001, 0x8f6e0074, 0x3c0f8000,
+0x24050003, 0x1cf9025, 0xaf720074, 0x93710083,
+0x24060001, 0xe000596, 0x322400ff, 0xe00003d,
+0x24040001, 0x936d007d, 0x20d6025, 0xe00005e,
+0xa36c007d, 0x3c0b0800, 0x8d6b0054, 0x25700001,
+0x3c010800, 0xac300054, 0xa00082c, 0x24040001,
+0x8f680074, 0x3c098000, 0x24050004, 0x1093825,
+0xaf670074, 0x93630083, 0x24060001, 0xe000596,
+0x306400ff, 0xe00003d, 0x24040001, 0x9362007d,
+0x2029825, 0xe00005e, 0xa373007d, 0xa00082c,
+0x24040001, 0x324d0080, 0x39ac0080, 0x546cff6c,
+0x8f640084, 0xa000895, 0x26450001, 0x27bdffd0,
+0x3c0a0008, 0xafbf002c, 0xafb40028, 0xafb30024,
+0xafb20020, 0xafb1001c, 0xafb00018, 0x34ad821,
+0x24090040, 0xaf490814, 0xaf400810, 0x8f420944,
+0x8f430950, 0x8f460954, 0x8f47095c, 0x8f48094c,
+0x93440108, 0x9345010b, 0xaf820064, 0x308400ff,
+0x30a500ff, 0xaf830054, 0xaf860050, 0xaf87005c,
+0xe000816, 0xaf880060, 0x1440015a, 0x8fbf002c,
+0xa7600068, 0x934d0900, 0x240b0050, 0x3c140800,
+0x26943c30, 0x31ac00ff, 0x3c120800, 0x26523c40,
+0x118b0003, 0x0, 0xa021, 0x9021,
+0x934f0109, 0x8f880054, 0x24020010, 0x31f1007f,
+0x1170c0, 0x116940, 0x1ae2821, 0x24b80088,
+0xaf580818, 0x8f4a0104, 0x8f4b09a4, 0x3c0c000e,
+0x34cc821, 0x14b4823, 0x3c010800, 0xac293b08,
+0x8f440958, 0x3c010800, 0xa0223b2c, 0x97460908,
+0x881823, 0x3c010800, 0xac233b0c, 0x30c7ffff,
+0x7f9c0, 0x3c010800, 0xac283b30, 0xaf5f002c,
+0x97420908, 0x9730002c, 0x8e910000, 0x932f0018,
+0x3789821, 0xa7900058, 0xaf930048, 0x220f809,
+0x31f000ff, 0x304e0002, 0x15c0018e, 0x30530001,
+0x12600142, 0x0, 0x8f4f09a4, 0x24130001,
+0x3c010800, 0xac2f3b34, 0x93510934, 0x934e0937,
+0x322500ff, 0x31cd00ff, 0xd6080, 0x1855021,
+0x1505821, 0x3c010800, 0xa42b3b24, 0x3c010800,
+0xa42a3b22, 0x93490934, 0x312200ff, 0x2022021,
+0x24900010, 0x3c010800, 0xa4303b20, 0x24080006,
+0x8f990054, 0x3c010800, 0xac283b28, 0x8f9f005c,
+0x8f580958, 0x8021, 0x3f92823, 0x4a0013c,
+0x3192023, 0x480013a, 0xa4382b, 0x10e0013c,
+0x0, 0x3c010800, 0xac253b0c, 0x8e420000,
+0x40f809, 0x0, 0x30460002, 0x14c000dd,
+0x408821, 0x30430001, 0x54600010, 0x8e420004,
+0x3c040800, 0x8c843b10, 0x3c09c000, 0x898025,
+0xaf500e00, 0x8f4b0000, 0x316a0008, 0x1140fffd,
+0x0, 0x97450e08, 0x24100001, 0xa7850040,
+0x8f4c0e04, 0xaf8c0034, 0x8e420004, 0x40f809,
+0x0, 0x2228825, 0x322d0002, 0x15a00159,
+0x0, 0x3c090800, 0x95293b18, 0x3c060800,
+0x94c63b24, 0x3c040800, 0x94843b1a, 0x3c190800,
+0x8f393b10, 0x1265821, 0x3c180800, 0x8f183b34,
+0x3c1f0800, 0x97ff3b2e, 0x1641821, 0x8f4e0940,
+0x3292821, 0x246f0002, 0x3196821, 0xbf6021,
+0x3c010800, 0xa42b3b26, 0xaf8e0064, 0x3c010800,
+0xac2d3b34, 0x3c010800, 0xa42c3b1c, 0xe00009a,
+0x31e4ffff, 0x8f87004c, 0x402021, 0x3c010800,
+0xa0273b2d, 0x8e420008, 0x24e80001, 0xaf88004c,
+0x40f809, 0x0, 0x8f4b002c, 0x97490908,
+0x3c0a000e, 0x34a3821, 0x3124ffff, 0x419c0,
+0x8f8a0054, 0xaf43002c, 0x97430908, 0x94e6001a,
+0x404021, 0x30dfffff, 0xac5f0000, 0x8cf9001c,
+0xac590004, 0x8cf80020, 0xac580008, 0x90ef0019,
+0x31e30003, 0x107300e6, 0x0, 0x28620002,
+0x14400102, 0x240c0002, 0x106c00f4, 0x240d0003,
+0x106d00a7, 0x0, 0x3c090800, 0x95293b1c,
+0x93450934, 0x934c0921, 0x3c0f0800, 0x95ef3b22,
+0x30bf00ff, 0x94ee002a, 0x1f6882, 0x319900ff,
+0x978c0058, 0xd1600, 0x19c400, 0x3124ffff,
+0x1e43021, 0x584825, 0x1263825, 0x1cc2821,
+0x3c034000, 0xe3f825, 0x56c00, 0xad0d0004,
+0xad1f0000, 0x93590920, 0x3c180006, 0x250d0014,
+0x197e00, 0x1f87025, 0xad0e0008, 0x8f42092c,
+0x25860001, 0x8e4c000c, 0xad02000c, 0x8f440930,
+0x30c97fff, 0xa7890058, 0xad040010, 0x8f470938,
+0x25040028, 0xad070014, 0xadaa0004, 0x8f450940,
+0xada50008, 0x93430937, 0x3c1f0800, 0x93ff3b2c,
+0xada00010, 0x3c700, 0x1fcc00, 0x3197825,
+0x35eeffff, 0xadae000c, 0xaf4b002c, 0x180f809,
+0x0, 0x3c060800, 0x94c63b26, 0x3c020800,
+0x94423b1a, 0xc24821, 0x252b0002, 0xe0000c3,
+0x3164ffff, 0x3c080800, 0x8d083b08, 0x3c070800,
+0x8ce73b10, 0x1075023, 0x3c010800, 0xac2a3b08,
+0x15400006, 0x0, 0x3c080800, 0x8d083b28,
+0x350a0040, 0x3c010800, 0xac2a3b28, 0x12000084,
+0x8f830048, 0x8f470e10, 0x8f900048, 0xae070020,
+0x8f4b0e18, 0xae0b0024, 0x3c100800, 0x96103b1c,
+0xe00005c, 0x0, 0x240f0040, 0xaf4f0814,
+0x8f860054, 0x8f890050, 0xd01821, 0x697023,
+0x19c00004, 0xaf830054, 0xaf630054, 0x8f640054,
+0xaf840050, 0x1200000c, 0x0, 0x8f440074,
+0x93780081, 0x3419fa00, 0x2f020007, 0x10400005,
+0x991821, 0x937f0081, 0x240c01f4, 0x3ec6804,
+0x1a41821, 0xaf63000c, 0x8f4a095c, 0x8f88005c,
+0x1482823, 0x18a00003, 0x0, 0x8f50095c,
+0xaf90005c, 0xe00005e, 0x0, 0x8f830054,
+0x8e470010, 0x3c010800, 0xac233b30, 0xe0f809,
+0x0, 0x3c0b0800, 0x8d6b3b08, 0x1560ff10,
+0x24080006, 0x8f590024, 0x975f0908, 0x8f890064,
+0x8f8e0054, 0x3c0c001f, 0x97840058, 0x8f8f002c,
+0x8f930050, 0x33f8ffff, 0x358dff80, 0x32d3024,
+0x1811c0, 0x32320010, 0xaf420024, 0xa5e4002c,
+0xaf460024, 0xaf690044, 0xaf6e0050, 0xaf730054,
+0x5640007c, 0x8e850004, 0x322a0040, 0x55400031,
+0x8e910008, 0x8e88000c, 0x100f809, 0x0,
+0x8fbf002c, 0x8fb40028, 0x8fb30024, 0x8fb20020,
+0x8fb1001c, 0x8fb00018, 0x3e00008, 0x27bd0030,
+0x3c090800, 0x95293b1c, 0x3c030800, 0x94633b26,
+0x3c040800, 0x94843b18, 0x94f90024, 0x3125ffff,
+0x94f80028, 0x65f821, 0x3e47823, 0x196400,
+0x186c00, 0x25eeffee, 0x1ae3025, 0x35828100,
+0x24030800, 0xad02000c, 0xad060010, 0xad030018,
+0xad000014, 0xa0009b3, 0x2508001c, 0x93430109,
+0x8f860038, 0x33e00, 0xe64025, 0xaf480080,
+0x8f5f09a0, 0x8f5809a4, 0xafbf0010, 0xaf5f0e14,
+0x8fb90010, 0xaf590e10, 0xaf580e1c, 0xa00092d,
+0xaf580e18, 0x220f809, 0x0, 0x8e88000c,
+0x100f809, 0x0, 0xa000a50, 0x8fbf002c,
+0xa4600020, 0xa4730022, 0xa000a05, 0xac730024,
+0x3c010800, 0xac203b0c, 0xa000953, 0x8e420000,
+0x3c010800, 0xac243b0c, 0xa000953, 0x8e420000,
+0x3c090800, 0x95293b1c, 0x3c1f0800, 0x97ff3b26,
+0x3c050800, 0x94a53b18, 0x94f80024, 0x3124ffff,
+0x3e4c821, 0x3257823, 0x186c00, 0x25eefff2,
+0x1ae6025, 0xac4c000c, 0x24020800, 0xad020014,
+0xad000010, 0xa0009b3, 0x25080018, 0x94e60024,
+0x94e30028, 0x3c090800, 0x95293b1c, 0x62400,
+0x3fc00, 0x34858100, 0x37f90800, 0xad05000c,
+0xad190010, 0xa0009b3, 0x25080014, 0x1460ff02,
+0x0, 0x94f80024, 0x3c090800, 0x95293b1c,
+0x187c00, 0x35ee0800, 0xad0e000c, 0xa0009b3,
+0x25080010, 0x93520109, 0x2821, 0xe000628,
+0x324400ff, 0x8fbf002c, 0x8fb40028, 0x8fb30024,
+0x8fb20020, 0x8fb1001c, 0x8fb00018, 0x3e00008,
+0x27bd0030, 0xa0f809, 0x0, 0xa000a4a,
+0x322a0040, 0x1200ff6b, 0x0, 0x8f4e0e14,
+0x8f920048, 0xae4e0020, 0x8f530e1c, 0xa000a34,
+0xae530024, 0x8f820018, 0x804021, 0x3c040100,
+0x90470085, 0x30e30020, 0x10600009, 0x0,
+0x3c070800, 0x8ce73b30, 0x8f830014, 0xe32023,
+0x4800008, 0x93890000, 0x14e30003, 0x1002021,
+0x3e00008, 0x801021, 0x3c040100, 0x3e00008,
+0x801021, 0x1120000b, 0x673823, 0x8f8c001c,
+0x24090034, 0x918b00bc, 0x316a0002, 0x51400001,
+0x24090030, 0xe9682b, 0x15a0fff1, 0x1002021,
+0xe93823, 0x2419fffc, 0xb9c024, 0xf97824,
+0xf8702b, 0x15c0ffea, 0x1e82021, 0x30c20003,
+0x21823, 0x14c00012, 0x30690003, 0x3021,
+0xa97021, 0x1c66821, 0xed602b, 0x1180ffe0,
+0x3c040100, 0x2d2f0001, 0x6482b, 0x1053821,
+0x1e93024, 0x14c0ffda, 0x24e4fffc, 0x2419fffc,
+0xb9c024, 0x3082021, 0x3e00008, 0x801021,
+0x8f8b001c, 0x24060004, 0x916a00bc, 0x31440004,
+0x1480ffec, 0xa97021, 0xa000afc, 0x3021,
+0x27bdffe8, 0xafbf0010, 0x8f460100, 0x934a0109,
+0x3c1f0800, 0x8fff0090, 0x2407ff80, 0x314f00ff,
+0x31e8007f, 0x86140, 0x3e6c821, 0x32cc021,
+0x27090120, 0x1277024, 0x3c010800, 0xa02f3b6c,
+0xaf4e080c, 0x3c0d0800, 0x8dad0090, 0x3c040080,
+0x34820003, 0x1a65821, 0x16c1821, 0x24650120,
+0x30aa0078, 0x1424025, 0xaf48081c, 0x3c1f0800,
+0x8fff0090, 0x8f880044, 0x3e6c021, 0x33190007,
+0x3074824, 0x33a7821, 0xaf490028, 0x25e909c0,
+0x952e0002, 0x3c0d0800, 0x8dad008c, 0x3c0a0800,
+0x8d4a0090, 0x31cc3fff, 0x1a61821, 0xc5980,
+0x6b2821, 0xa72024, 0xaf44002c, 0x95220002,
+0x3c1f0800, 0x8fff008c, 0x91070085, 0x30593fff,
+0x3e67821, 0x19c180, 0x1467021, 0x1f86821,
+0x31cc007f, 0x31ab007f, 0x19a2821, 0x17a5021,
+0x3c03000c, 0x3c04000e, 0xa32821, 0x1441021,
+0x30e60020, 0x27470980, 0xaf820028, 0xaf880018,
+0xaf890020, 0xaf85001c, 0x10c00006, 0xaf870024,
+0x8d020050, 0x8ca4010c, 0x443023, 0x18c00077,
+0x0, 0x910c0085, 0x240dffdf, 0x18d3824,
+0xa1070085, 0x8f8b0018, 0x8f890020, 0x8f870024,
+0x8d65004c, 0xaf850014, 0x912f000d, 0x31ee0020,
+0x11c00017, 0x0, 0x24090001, 0xa3890000,
+0xaf800008, 0x8ce40024, 0x8f850008, 0x240a0008,
+0xaf800004, 0xaf80000c, 0x3c010800, 0xa42a3b1a,
+0x3c010800, 0xa4203b2e, 0xe000ad0, 0x3021,
+0x8f850020, 0x8fbf0010, 0xaf820010, 0x90a8000d,
+0x27bd0018, 0x83942, 0x3e00008, 0x30e20001,
+0x913f0002, 0x24180001, 0x33f900ff, 0x192182,
+0x10980039, 0x24080002, 0x1088005b, 0x8f860028,
+0x8ce50024, 0x14a0001b, 0x8f9f001c, 0x91220000,
+0x240a0005, 0x3046003f, 0x10ca0047, 0x24040001,
+0x8f860004, 0xa3840000, 0xaf86000c, 0xaf860008,
+0x8ce40024, 0x8f850008, 0x240a0008, 0x3c010800,
+0xa42a3b1a, 0x3c010800, 0xa4203b2e, 0xe000ad0,
+0x0, 0x8f850020, 0x8fbf0010, 0xaf820010,
+0x90a8000d, 0x27bd0018, 0x83942, 0x3e00008,
+0x30e20001, 0x8cf80008, 0x8cf90024, 0x8fee00c4,
+0xa3800000, 0x8ce40024, 0xaf8e0008, 0x8f850008,
+0x8f860004, 0x3197823, 0x240a0008, 0xaf8f000c,
+0x3c010800, 0xa42a3b1a, 0x3c010800, 0xa4203b2e,
+0xe000ad0, 0x0, 0x8f850020, 0x8fbf0010,
+0xaf820010, 0x90a8000d, 0x27bd0018, 0x83942,
+0x3e00008, 0x30e20001, 0x91230000, 0x3062003f,
+0x10440027, 0x8f85001c, 0x8ce40024, 0x14800021,
+0x0, 0x8d2e0018, 0x3c187fff, 0x8f85001c,
+0x370fffff, 0x1cf1824, 0xaf830004, 0x8f9f0004,
+0x8ca80084, 0x3e8c82b, 0x17200002, 0x3e02021,
+0x8ca40084, 0xa000b8b, 0xaf840004, 0x8ca3010c,
+0xa000b69, 0xaf830014, 0x8d2c0018, 0x8f860004,
+0x3c0d7fff, 0x8f89001c, 0x35a3ffff, 0x1835824,
+0x24040001, 0xaf8b000c, 0xad2000cc, 0xa3840000,
+0xa000b97, 0xaf860008, 0x8cca0014, 0xa000b8b,
+0xaf8a0004, 0x8ca300c8, 0xa000bce, 0xaf830004,
+0x8f840028, 0x8cac0064, 0x8c8d0014, 0x18d582b,
+0x11600004, 0x0, 0x8ca20064, 0xa000bce,
+0xaf820004, 0x8c820014, 0xa000bce, 0xaf820004,
+0x8f850008, 0x27bdffe0, 0xafbf0018, 0xafb10014,
+0x14a00007, 0xafb00010, 0x8f860020, 0x24020005,
+0x90c40000, 0x3083003f, 0x106200b6, 0x8f84001c,
+0x8f910004, 0xa08021, 0x8f8c0024, 0x3c050800,
+0x8ca53b0c, 0x8d8b0004, 0x31663fff, 0xc5502b,
+0x55400001, 0xc02821, 0x938d0000, 0x11a00073,
+0xb0f82b, 0x8f98001c, 0x24040034, 0x930f00bc,
+0x31ee0002, 0x51c00001, 0x24040030, 0xa4c82b,
+0x172000d1, 0x0, 0xa42823, 0xb0f82b,
+0x3c010800, 0xa4243b18, 0x17e00068, 0x2002021,
+0x3c030800, 0x8c633b08, 0x83102b, 0x54400001,
+0x801821, 0x8f880020, 0x3c010800, 0xac233b10,
+0x4821, 0x9104000d, 0x30830020, 0x50600001,
+0x8f490e18, 0x8f830010, 0x123382b, 0x10e00059,
+0x0, 0x3c040800, 0x8c843b10, 0x895821,
+0x6b502b, 0x11400056, 0x90602b, 0x693023,
+0xc02021, 0x3c010800, 0xac263b10, 0x12000003,
+0x241ffffc, 0x1090008a, 0x32270003, 0x9fc824,
+0x3c010800, 0xac393b10, 0x3c010800, 0xa4203b2e,
+0x8f840008, 0x12040007, 0x8f83001c, 0xaf910004,
+0x2002021, 0x8c7100cc, 0xaf900008, 0x26300001,
+0xac7000cc, 0x3c020800, 0x8c423b10, 0x8f8a000c,
+0x24070018, 0x822023, 0x1422823, 0xaf840008,
+0x10800002, 0xaf85000c, 0x24070010, 0x8f860018,
+0x3c010800, 0xa0273b2c, 0x24070040, 0x90cc0085,
+0x318b00c0, 0x11670040, 0x8f8d0010, 0x14a00015,
+0x2021, 0x934a0109, 0x8f420974, 0x314500ff,
+0x22602, 0x24a30001, 0x3090007f, 0x3071007f,
+0x1230007a, 0x2407ff80, 0xa0c30083, 0x3c090800,
+0x8d293b28, 0x8f880020, 0x240d0002, 0x352c0008,
+0x3c010800, 0xa02d3b6d, 0x3c010800, 0xac2c3b28,
+0x24040010, 0x910e000d, 0x31c60020, 0x10c00005,
+0x801821, 0x24080001, 0x3c010800, 0xac283b10,
+0x34830001, 0x8fbf0018, 0x8fb10014, 0x8fb00010,
+0x601021, 0x3e00008, 0x27bd0020, 0x3c010800,
+0xa4203b18, 0x13e0ff9a, 0x2002021, 0xa000c1f,
+0xa02021, 0x3c040800, 0x8c843b10, 0x90602b,
+0x1180ffae, 0x0, 0x3c0f0800, 0x95ef3b18,
+0x1e47021, 0x1c6682b, 0x11a00007, 0x2c820004,
+0x3c1f6000, 0x8ff95404, 0x3338003f, 0x1700ffe5,
+0x24030042, 0x2c820004, 0x1040ffa0, 0x24030042,
+0xa000c7d, 0x8fbf0018, 0x152dffc0, 0x0,
+0x8cdf0074, 0x3c038000, 0x2405ff80, 0x3e3c825,
+0xacd90074, 0x90d80085, 0x240e0004, 0x24040010,
+0x330f003f, 0x1e54025, 0xa0c80085, 0x8f880020,
+0x3c010800, 0xa02e3b6d, 0x24030001, 0x9106000d,
+0x30c90020, 0x15200003, 0x0, 0x3c030800,
+0x8c633b10, 0x3c010800, 0xac233b08, 0xa000c74,
+0x0, 0x8f87000c, 0x8c880084, 0xe8282b,
+0x14a00002, 0xe08821, 0x8c910084, 0x24090001,
+0xa3890000, 0x8f440e18, 0x2202821, 0xe000ad0,
+0x2203021, 0x2208021, 0xa000c05, 0xaf820010,
+0x71823, 0x30660003, 0x3c010800, 0xa4263b2e,
+0x12200005, 0x8f8c001c, 0x918b00bc, 0x316a0004,
+0x15400015, 0x24cd0004, 0x3c0f0800, 0x95ef3b2e,
+0x1e47021, 0xae302b, 0x50c0ff6e, 0x8f840008,
+0x2c850005, 0x14a0ffa3, 0x24030042, 0x30980003,
+0x17000002, 0x981823, 0x2483fffc, 0x3c010800,
+0xac233b10, 0xa000c41, 0x0, 0xa75824,
+0xa000c69, 0x1671826, 0x3c010800, 0xa42d3b2e,
+0xa000cd1, 0x0, 0x3c010800, 0xac203b10,
+0xa000c7c, 0x24030042, 0x8f83000c, 0x14600007,
+0x1021, 0x8f880020, 0x24050005, 0x91060000,
+0x30c400ff, 0x10850003, 0x0, 0x3e00008,
+0x0, 0x910a0018, 0x314900ff, 0x939c2,
+0x14e0fffa, 0x8f850018, 0x3c040800, 0x94843b18,
+0x3c030800, 0x8c633b30, 0x3c190800, 0x8f393b10,
+0x3c0f0800, 0x95ef3b2e, 0x64c021, 0x8cad0054,
+0x3197021, 0x1cf6021, 0x18d5823, 0x1960001d,
+0x0, 0x910e001c, 0x8f8c0028, 0x974b0e10,
+0x31cd00ff, 0x8d850004, 0x16d3023, 0x8d880000,
+0x30ceffff, 0xe5100, 0xaac821, 0x3821,
+0x1072021, 0x32a182b, 0x83c021, 0xad990004,
+0xad980000, 0x918f000a, 0x1cf6821, 0xa18d000a,
+0x8f880028, 0x974b0e12, 0xa50b0008, 0x950a0038,
+0x25490001, 0xa5090038, 0x9107000d, 0x34e60008,
+0xa106000d, 0x3e00008, 0x0, 0x27bdffe0,
+0x93870000, 0x8f8f0020, 0x8fad0014, 0x3c0e7fff,
+0x8f890008, 0x35c8ffff, 0xafbf001c, 0xafb00018,
+0x1a81824, 0x91ea000d, 0x717c0, 0x3c1fbfff,
+0x625825, 0x2d2e0001, 0x8f900014, 0x37f9ffff,
+0x3c180800, 0x8f183b30, 0x3c0f0800, 0x95ef3b26,
+0x1796824, 0xe4780, 0x3c07efff, 0x3c05f0ff,
+0x1a81825, 0x31490020, 0x34e2ffff, 0x34acffff,
+0x3105823, 0x27a50010, 0x24060002, 0x25ea0002,
+0x621824, 0x808021, 0x15200002, 0x4021,
+0x8f480e1c, 0xa7aa0012, 0x5600037, 0x24070000,
+0x30ff00ff, 0x1fcf00, 0x8f8b0018, 0x793825,
+0xafa70014, 0x916f0085, 0x3c080800, 0x91083b2d,
+0x3c18dfff, 0x31ee00c0, 0x370affff, 0xe182b,
+0x3c1f0800, 0x97ff3b20, 0xea6824, 0xa3a80011,
+0x31740, 0x1a24825, 0x8fb90010, 0xafa90014,
+0x3c0a0800, 0x914a3b2f, 0xa7bf0016, 0x8fa80014,
+0x32cc024, 0x3c0b0100, 0x3c0f0fff, 0x30b1825,
+0x31470003, 0x35eeffff, 0x10c6824, 0x71600,
+0x6ef824, 0x3c097000, 0x1a2c825, 0x3e95825,
+0xafb90014, 0xafab0010, 0xe000072, 0xa3a00015,
+0x8f8c0020, 0x26020008, 0x9186000d, 0x30c40020,
+0x10800006, 0x8fbf001c, 0x3c050800, 0x94a53b1c,
+0x24b0ffff, 0x3c010800, 0xa4303b1c, 0x8fb00018,
+0x3e00008, 0x27bd0020, 0x8f980010, 0x118502b,
+0x5540ffc7, 0x24070001, 0xa000d54, 0x30ff00ff,
+0x93820000, 0x27bdffe0, 0xafbf0018, 0x1040000f,
+0x805021, 0x8f880020, 0x240b0005, 0x8f890004,
+0x91070000, 0x8f84001c, 0x1002821, 0x30e3003f,
+0x8f860028, 0x106b0008, 0x3821, 0xafa90010,
+0xe000439, 0xafaa0014, 0xa3800000, 0x8fbf0018,
+0x3e00008, 0x27bd0020, 0x8d190018, 0x3c0f0800,
+0x8def3b10, 0x8f98000c, 0x3c027fff, 0x8d080014,
+0x345fffff, 0x33f6824, 0x1f87021, 0x1ae6023,
+0x1883821, 0xafa90010, 0xe000439, 0xafaa0014,
+0xa000da2, 0xa3800000, 0x8f870020, 0x3c050800,
+0x94a53b2e, 0x3c020800, 0x8c423b28, 0x90e6000d,
+0x52400, 0x30c30020, 0x1060002c, 0x444025,
+0x8f850018, 0x6021, 0x240b0001, 0x90a30085,
+0x4821, 0x240a0001, 0x3c0f8000, 0x35ee0070,
+0x8dc70000, 0xaf870030, 0x8f580178, 0x700fffe,
+0x3c038000, 0x34790070, 0x8f380000, 0x3c050800,
+0x8ca50074, 0x3c0d0800, 0x8dad0070, 0x3077823,
+0xaf3821, 0x1021, 0xef302b, 0x1a22021,
+0x861821, 0x3c010800, 0xac270074, 0x3c010800,
+0xac230070, 0xaf4b0148, 0x3c190800, 0x8f393b30,
+0xa7490144, 0xa74a0146, 0xaf59014c, 0x3c0b0800,
+0x916b3b2d, 0xa34b0152, 0xaf480154, 0x3c081000,
+0xa74c0158, 0x3e00008, 0xaf480178, 0x8f4b0e1c,
+0x3c0a0800, 0x8d4a3b10, 0x97490e16, 0x974d0e14,
+0x1456021, 0x312affff, 0xa000dc5, 0x31a9ffff,
+0x8f830020, 0x9064000d, 0x30820020, 0x10400029,
+0x0, 0x4821, 0x5021, 0x4021,
+0x3c078000, 0x34eb0070, 0x8d670000, 0xaf870030,
+0x8f4c0178, 0x580fffe, 0x3c0d8000, 0x35ac0070,
+0x8d8b0000, 0x3c050800, 0x8ca50074, 0x3c040800,
+0x8c840070, 0x1673023, 0xa67821, 0x1021,
+0x1e6c82b, 0x82c021, 0x3197021, 0x3c010800,
+0xac2f0074, 0x3c010800, 0xac2e0070, 0xaf490148,
+0x3c0d0800, 0x8dad3b30, 0xa7480144, 0x24090040,
+0xa74a0146, 0x3c081000, 0x240aff91, 0xaf4d014c,
+0xa34a0152, 0xaf490154, 0xa7400158, 0x3e00008,
+0xaf480178, 0x8f490e18, 0x97460e12, 0x97450e10,
+0x30caffff, 0xa000dfb, 0x30a8ffff, 0x8f830020,
+0x27bdfff8, 0x9064000d, 0x30820020, 0x1040003a,
+0x0, 0x240b0001, 0x4821, 0x240a0001,
+0x3c088000, 0x35070070, 0x8ce30000, 0xaf830030,
+0x8f4c0178, 0x580fffe, 0x3c0e8000, 0x3c040800,
+0x90843b6c, 0x35c70070, 0x8cec0000, 0x3c050800,
+0x8ca50074, 0xa3a40003, 0x3c190800, 0x8f390070,
+0x8fad0000, 0x1833023, 0xa63821, 0x1021,
+0x3227821, 0xe6c02b, 0x1f86021, 0x1ae4025,
+0xafa80000, 0x3c010800, 0xac270074, 0x3c010800,
+0xac2c0070, 0x9346010a, 0x3c040800, 0x90843b6d,
+0xa3a00002, 0xa3a60001, 0x8fa30000, 0x3c0580ff,
+0x3099007f, 0x34a2ffff, 0x627824, 0x19c600,
+0x1f87025, 0x240d3000, 0xaf4e014c, 0x27bd0008,
+0xaf4d0154, 0xa7400158, 0xaf4b0148, 0xa7490144,
+0xa74a0146, 0x3c091000, 0x240aff80, 0xa34a0152,
+0x3e00008, 0xaf490178, 0x8f4b0e18, 0x97460e12,
+0x97450e10, 0x30caffff, 0xa000e2f, 0x30a9ffff,
+0x8f850018, 0x24020080, 0x90a40085, 0x308300c0,
+0x10620005, 0x8f86001c, 0x8f880004, 0x8f870008,
+0xacc800c8, 0xacc700c4, 0x3e00008, 0x0,
+0x3c0a0800, 0x254a37cc, 0x3c090800, 0x25293898,
+0x3c080800, 0x25082c4c, 0x3c070800, 0x24e739ac,
+0x3c060800, 0x24c6363c, 0x3c050800, 0x24a533b4,
+0x3c040800, 0x24842fdc, 0x3c030800, 0x246336d4,
+0x3c020800, 0x244234a8, 0x3c010800, 0xac2a3c38,
+0x3c010800, 0xac293c34, 0x3c010800, 0xac283c30,
+0x3c010800, 0xac273c3c, 0x3c010800, 0xac263c4c,
+0x3c010800, 0xac253c44, 0x3c010800, 0xac243c40,
+0x3c010800, 0xac233c50, 0x3c010800, 0xac223c48,
+0x3e00008, 0x0, 0x0 };
+u32 bce_TXP_b06FwData[(0x0/4) + 1] = { 0x0 };
+u32 bce_TXP_b06FwRodata[(0x0/4) + 1] = { 0x0 };
+u32 bce_TXP_b06FwBss[(0x14c/4) + 1] = { 0x0 };
+u32 bce_TXP_b06FwSbss[(0x68/4) + 1] = { 0x0 };
+u32 bce_TXP_b06FwSdata[(0x0/4) + 1] = { 0x0 };
+
+
+int bce_CP_b06FwReleaseMajor = 0x1;
+int bce_CP_b06FwReleaseMinor = 0x0;
+int bce_CP_b06FwReleaseFix = 0x0;
+u32 bce_CP_b06FwStartAddr = 0x08000080;
+u32 bce_CP_b06FwTextAddr = 0x08000000;
+int bce_CP_b06FwTextLen = 0x56cc;
+u32 bce_CP_b06FwDataAddr = 0x08005820;
+int bce_CP_b06FwDataLen = 0x84;
+u32 bce_CP_b06FwRodataAddr = 0x080056cc;
+int bce_CP_b06FwRodataLen = 0x134;
+u32 bce_CP_b06FwBssAddr = 0x08005998;
+int bce_CP_b06FwBssLen = 0x5d8;
+u32 bce_CP_b06FwSbssAddr = 0x080058a4;
+int bce_CP_b06FwSbssLen = 0xf1;
+u32 bce_CP_b06FwSDataAddr = 0x00000000;
+int bce_CP_b06FwSDataLen = 0x0;
+u32 bce_CP_b06FwText[(0x56cc/4) + 1] = {
+0xa000020, 0x0, 0x0,
+0xd, 0x6370342e, 0x362e3137, 0x0,
+0x4061104, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x20,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x1,
+0x2b, 0x0, 0x10000003, 0x0,
+0xd, 0xd, 0x3c020800, 0x244258a4,
+0x3c030800, 0x24635f70, 0xac400000, 0x43202b,
+0x1480fffd, 0x24420004, 0x3c1d0800, 0x37bd7ffc,
+0x3a0f021, 0x3c100800, 0x26100080, 0x3c1c0800,
+0x279c58a4, 0xe00019c, 0x0, 0xd,
+0x27bdffe8, 0x3c096018, 0xafbf0010, 0x8d2c5000,
+0x240dff7f, 0x24080031, 0x18d5824, 0x356a380c,
+0x24070c00, 0x3c1a8000, 0xad2a5000, 0x3c04800a,
+0xaf480008, 0x3c1b8008, 0xaf470024, 0xe000924,
+0xaf840010, 0xe0008e7, 0x0, 0xe000834,
+0x0, 0xe00125e, 0x0, 0x3c046016,
+0x8c850000, 0x3c06ffff, 0x3c025353, 0xa61824,
+0x1062003f, 0x34867c00, 0x94c201f2, 0xa780002c,
+0x10400003, 0xa78000cc, 0x38581e1e, 0xa798002c,
+0x94c201f8, 0x10400004, 0x978300cc, 0x38591e1e,
+0xa79900cc, 0x978300cc, 0x2c7f0067, 0x53e00001,
+0x24030066, 0x9784002c, 0x2c820401, 0x14400002,
+0x602821, 0x24040400, 0x3c076000, 0x8ce90438,
+0x2403103c, 0x3128ffff, 0x11030017, 0x30b9ffff,
+0x5720000c, 0xa38000ce, 0x24020050, 0xa38200ce,
+0x939f00ce, 0x13e0000a, 0x8fbf0010, 0x27bd0018,
+0xa78000cc, 0xa780002c, 0xa7800034, 0x3e00008,
+0xa78000e6, 0x939f00ce, 0x17e0fff8, 0x8fbf0010,
+0x27bd0018, 0xa78500cc, 0xa784002c, 0xa7800034,
+0x3e00008, 0xa78000e6, 0xa38000ce, 0x8ccb003c,
+0x316a0001, 0x1140000e, 0x0, 0x30a7ffff,
+0x10e0ffe6, 0x24020050, 0x8ccc00c8, 0x31860001,
+0x14c0ffe4, 0x939f00ce, 0xa000072, 0x24020051,
+0x8c8f0004, 0x3c0e6000, 0xa000055, 0x1ee3021,
+0x8cef0808, 0x240d5708, 0xf7402, 0x11cd0004,
+0x30b8ffff, 0x24050066, 0xa000073, 0x24040400,
+0x1700ffd4, 0x939f00ce, 0xa000072, 0x24020050,
+0x8f860010, 0x3089ffff, 0x93940, 0x8cc30010,
+0x3c080050, 0xe82025, 0xaf430038, 0x8cc50014,
+0x27420400, 0xaf82001c, 0xaf45003c, 0xaf440030,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x8f4b0000, 0x316a0020, 0x1140fffd, 0x0,
+0x3e00008, 0x0, 0x8f840010, 0x948a001a,
+0x8c870024, 0x3149ffff, 0x940c0, 0xe83021,
+0xaf46003c, 0x8c850024, 0x8f43003c, 0xa31023,
+0x18400029, 0x0, 0x8c8b0020, 0x25620001,
+0x3c0d0050, 0x35ac0008, 0xaf420038, 0xaf4c0030,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x8f4f0000, 0x31ee0020, 0x11c0fffd, 0x0,
+0x8f4a0400, 0x3c080020, 0xac8a0010, 0x8f490404,
+0xac890014, 0xaf480030, 0x0, 0x94860018,
+0x9487001c, 0xc71821, 0xa4830018, 0x9485001a,
+0x24a20001, 0xa482001a, 0x9498001a, 0x9499001e,
+0x13380003, 0x0, 0x3e00008, 0x0,
+0x3e00008, 0xa480001a, 0x8c820020, 0xa0000cc,
+0x3c0d0050, 0xa0000bd, 0x0, 0x3c030800,
+0x8c630020, 0x8f820018, 0x27bdffe8, 0x10620008,
+0xafbf0010, 0xe0000f4, 0xaf830018, 0x3c030800,
+0x8c630020, 0x24040001, 0x10640004, 0x8f890010,
+0x8fbf0010, 0x3e00008, 0x27bd0018, 0x8fbf0010,
+0x3c076012, 0xa520000a, 0x9528000a, 0x34e50010,
+0x27bd0018, 0x3106ffff, 0x3e00008, 0xaca60090,
+0x3c020800, 0x8c420020, 0x27bdffc8, 0xafbf0034,
+0xafbe0030, 0xafb7002c, 0xafb60028, 0xafb50024,
+0xafb40020, 0xafb3001c, 0xafb20018, 0xafb10014,
+0x10400050, 0xafb00010, 0x8f840010, 0x94860006,
+0x9483000a, 0xc32823, 0x30b6ffff, 0x12c0004a,
+0x8fbf0034, 0x94890018, 0x948a000a, 0x12a4023,
+0x3102ffff, 0x2c2382b, 0x14e00002, 0x2c02021,
+0x402021, 0x2c8c0005, 0x15800002, 0x80a021,
+0x24140004, 0xe0000a3, 0x2802021, 0x8f870010,
+0x2809821, 0xaf800014, 0x94ed000a, 0x2808821,
+0x1280004e, 0x31b2ffff, 0x3c177000, 0x3c154000,
+0x3c1e6000, 0x8f8f001c, 0x8dee0000, 0x1d71824,
+0x50750050, 0x2202021, 0x2a3802b, 0x16000035,
+0x3c182000, 0x50780047, 0x2202021, 0x24100001,
+0x8f830014, 0x14600039, 0x2915823, 0x230f823,
+0x250c821, 0x33f1ffff, 0x1620ffee, 0x3332ffff,
+0x8f870010, 0x3c110020, 0xaf510030, 0x0,
+0x94e6000a, 0x3c1e6012, 0x37d50010, 0x2662821,
+0xa4e5000a, 0x94e2000a, 0x94f2000a, 0x94f40018,
+0x3057ffff, 0x1292003b, 0xaeb70090, 0x8ced0014,
+0x8ce40010, 0x137140, 0x1ae4021, 0xe5fc3,
+0x10e502b, 0x8b4821, 0x12a1821, 0xace80014,
+0xace30010, 0x2d33823, 0x30f6ffff, 0x16c0ffb9,
+0x8f840010, 0x8fbf0034, 0x8fbe0030, 0x8fb7002c,
+0x8fb60028, 0x8fb50024, 0x8fb40020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0038, 0x107e001b, 0x0, 0x1477ffcc,
+0x24100001, 0xe0015a9, 0x0, 0x8f830014,
+0x1060ffcb, 0x230f823, 0x2915823, 0x8f870010,
+0x1702021, 0xa000187, 0x3093ffff, 0x8f830014,
+0x1460ffcb, 0x3c110020, 0xaf510030, 0xa000153,
+0x0, 0xe00079b, 0x2402821, 0xa000147,
+0x408021, 0xe000341, 0x2402821, 0xa000147,
+0x408021, 0xe001471, 0x2202021, 0xa000147,
+0x408021, 0xe0000bd, 0x0, 0xa000169,
+0x2d33823, 0x27bdffe8, 0xafb00010, 0xafbf0014,
+0xe000037, 0x0, 0x3c028000, 0x34500070,
+0xa0001aa, 0x8e060000, 0x8f4f0000, 0x39ee0001,
+0x31c20001, 0x10400024, 0x8f8600a8, 0x8e070000,
+0x3c0c0800, 0x8d8c003c, 0x3c090800, 0x8d290038,
+0xe66823, 0x18d2821, 0x5021, 0xad302b,
+0x12a4021, 0x1062021, 0x3c010800, 0xac25003c,
+0xaf8700a8, 0x3c010800, 0xac240038, 0xe0000f6,
+0x0, 0x3c030800, 0x8c630070, 0x1060ffe6,
+0x602021, 0x3c050800, 0x8ca50068, 0x3c060800,
+0x8cc6006c, 0xe001538, 0x0, 0x3c010800,
+0xac200070, 0x8f4f0000, 0x39ee0001, 0x31c20001,
+0x1440ffde, 0x8f8600a8, 0x8e0a0000, 0x8f8b00a8,
+0x3c050800, 0x8ca5003c, 0x3c040800, 0x8c840038,
+0x14b4823, 0xa93821, 0x821821, 0xe9402b,
+0x681021, 0x3c010800, 0xac27003c, 0x3c010800,
+0xac220038, 0x8f5f0100, 0x2419ff00, 0x24180c00,
+0x3f92024, 0x10980012, 0xaf840000, 0xaf440020,
+0x936d0000, 0x240c0020, 0x31a600ff, 0x10cc0012,
+0x240e0050, 0x10ce0004, 0x3c194000, 0xaf590138,
+0xa0001a3, 0x0, 0xe0011d4, 0x0,
+0x3c194000, 0xaf590138, 0xa0001a3, 0x0,
+0xe00010f, 0x0, 0x3c194000, 0xaf590138,
+0xa0001a3, 0x0, 0x8f580100, 0x802821,
+0x330f00ff, 0x1e02021, 0xe0002ee, 0xaf8f0004,
+0x3c194000, 0xaf590138, 0xa0001a3, 0x0,
+0xa4102b, 0x24030001, 0x10400009, 0x3021,
+0x52840, 0xa4102b, 0x4a00003, 0x31840,
+0x5440fffc, 0x52840, 0x5060000a, 0x4182b,
+0x85382b, 0x54e00004, 0x31842, 0xc33025,
+0x852023, 0x31842, 0x1460fff9, 0x52842,
+0x4182b, 0x3e00008, 0xc31021, 0x3084ffff,
+0x30a5ffff, 0x8f4201b8, 0x440fffe, 0x3c074080,
+0x873025, 0x3c031000, 0xaf400180, 0xaf450184,
+0xaf460188, 0x3e00008, 0xaf4301b8, 0x3084ffff,
+0x8f4201b8, 0x440fffe, 0x3c074038, 0x8ca60000,
+0x872825, 0x3c031000, 0xaf460180, 0xaf450188,
+0x3e00008, 0xaf4301b8, 0x8f830038, 0x8f860030,
+0x1066000b, 0x804021, 0x3c070800, 0x24e75a18,
+0x328c0, 0xa71021, 0x8c440000, 0x24630001,
+0x10880005, 0x3063000f, 0x5466fffa, 0x328c0,
+0x3e00008, 0x1021, 0x3c070800, 0x24e75a1c,
+0xa73021, 0x3e00008, 0x8cc20000, 0x3c039000,
+0x34620001, 0x822025, 0xaf440020, 0x8f450020,
+0x4a0fffe, 0x0, 0x3e00008, 0x0,
+0x3c038000, 0x34620001, 0x822025, 0x3e00008,
+0xaf440020, 0x27bdffe0, 0xafb10014, 0x3091ffff,
+0xafb00010, 0xafbf0018, 0x12200015, 0xa08021,
+0x8ca50000, 0x10a00013, 0x24040002, 0xe000c6b,
+0x24060140, 0xae000000, 0x8f4201b8, 0x440000d,
+0x2821, 0x3c064000, 0x2262025, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x3c031000, 0x27bd0020,
+0xaf450180, 0xaf440188, 0x3e00008, 0xaf4301b8,
+0x8ca50000, 0x8f4201b8, 0x440fffe, 0x3c064000,
+0x2262025, 0x8fbf0018, 0x8fb10014, 0x8fb00010,
+0x3c031000, 0x27bd0020, 0xaf450180, 0xaf440188,
+0x3e00008, 0xaf4301b8, 0x3086ffff, 0x8f4201b8,
+0x440fffe, 0x3c094006, 0x8ca80000, 0xc93825,
+0xaf480180, 0x8ca40004, 0x3c031000, 0xaf440184,
+0xaf470188, 0x3e00008, 0xaf4301b8, 0x27bdffe0,
+0xafb00010, 0xafbf0018, 0xafb10014, 0x9363003e,
+0x808021, 0x802821, 0x30620040, 0x2021,
+0x1040000f, 0x8e110000, 0xe000860, 0x2202021,
+0x93670000, 0x24040050, 0x30e500ff, 0x50a40012,
+0x8e0f0000, 0x2202021, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0xa762013c, 0xa000920, 0x27bd0020,
+0xe00027d, 0x0, 0xe000860, 0x2202021,
+0x93670000, 0x24040050, 0x30e500ff, 0x14a4fff2,
+0x2202021, 0x8e0f0000, 0x3c100800, 0x8e100050,
+0x3c0d000c, 0x240bff80, 0x1f05021, 0x314e007f,
+0x1da6021, 0x18d4021, 0x14b4824, 0xaf490028,
+0x2202021, 0x8fbf0018, 0x8fb10014, 0x8fb00010,
+0xa50200d6, 0x27bd0020, 0xa000920, 0xaf8800d0,
+0x27bdffe0, 0xafbf0018, 0xafb10014, 0xafb00010,
+0x93660001, 0x808021, 0xe000246, 0x30d10004,
+0x93640005, 0x1029c2, 0xa7650000, 0x34830040,
+0xa3630005, 0xe00024f, 0x2002021, 0xe000922,
+0x2002021, 0x24020001, 0xaf62000c, 0x2002821,
+0xa7620010, 0x24040002, 0xa7620012, 0x24060140,
+0xa7620014, 0xe000c6b, 0xa7620016, 0x1620000f,
+0x8fbf0018, 0x978c0034, 0x3c0b0800, 0x8d6b0078,
+0x2588ffff, 0x3109ffff, 0x256a0001, 0x12a382b,
+0x10e00006, 0xa7880034, 0x3c0f6006, 0x240e0016,
+0x35ed0010, 0xadae0050, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x3e00008, 0x27bd0020, 0x27bdffe0,
+0xafb10014, 0xafbf0018, 0xafb00010, 0xa08821,
+0x1080000a, 0x3c036000, 0x24020080, 0x10820012,
+0x0, 0xd, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x3e00008, 0x27bd0020, 0x8c682bf8,
+0x500fffe, 0x0, 0xac712bc0, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x3c091000, 0x27bd0020,
+0x3e00008, 0xac692bf8, 0xe000246, 0xa02021,
+0x93650005, 0x2202021, 0xe00024f, 0x30b000ff,
+0x2403003e, 0x1603ffe7, 0x0, 0x8f440178,
+0x480fffe, 0x24070007, 0x3c061000, 0xaf510140,
+0x2202021, 0xa3470144, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0xaf460178, 0xa0002bf, 0x27bd0020,
+0x27bdffe8, 0xafbf0014, 0xafb00010, 0x8f500020,
+0x0, 0xe000922, 0xaf440020, 0xaf500020,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x3084ffff, 0x8f4201b8, 0x440fffe, 0x3c074035,
+0x873025, 0x3c031000, 0xaf450180, 0xaf400184,
+0xaf460188, 0x3e00008, 0xaf4301b8, 0x3084ffff,
+0x8f4201b8, 0x440fffe, 0x3c074036, 0x873025,
+0x3c031000, 0xaf450180, 0xaf400184, 0xaf460188,
+0x3e00008, 0xaf4301b8, 0x27bdffd0, 0xafb3001c,
+0x3093ffff, 0xafb50024, 0xafb20018, 0xafbf0028,
+0xafb40020, 0xafb10014, 0xafb00010, 0x30b5ffff,
+0x12600027, 0x9021, 0x8f90001c, 0x8e030000,
+0x3c068000, 0x24020040, 0x33e02, 0x32c02,
+0x30e4007f, 0x668824, 0x1482001d, 0x30a500ff,
+0x8f830028, 0x2c68000a, 0x51000010, 0x8f910014,
+0x35880, 0x3c0c0800, 0x258c56cc, 0x16c5021,
+0x8d490000, 0x1200008, 0x0, 0x2b21821,
+0x3065ffff, 0xe00021a, 0x24040084, 0x16200002,
+0x8f90001c, 0xaf800028, 0x8f910014, 0x260c0020,
+0x264b0001, 0x1808021, 0x3172ffff, 0x16200004,
+0xaf8c001c, 0x253402b, 0x1500ffdc, 0x0,
+0x2401021, 0x8fbf0028, 0x8fb50024, 0x8fb40020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0030, 0x240d0034, 0x14ad00f6,
+0x0, 0x920b000e, 0x240a1680, 0x3c07000c,
+0xa36b0021, 0x9203000d, 0x347f821, 0x3c066000,
+0xa3630020, 0x96110012, 0x3c087fff, 0x350cffff,
+0xa771003c, 0x96020010, 0x240b0005, 0x3054ffff,
+0xaf740084, 0x8e19001c, 0xaf4a0028, 0x8ff80000,
+0x8ccf4448, 0x3197026, 0x1ee3021, 0xaf66004c,
+0x8f69004c, 0x24cd0001, 0x3c197f00, 0xaf690050,
+0x8f640050, 0xaf640054, 0xaf660070, 0xaf6d0058,
+0x8f650058, 0x24040050, 0xaf65005c, 0xa3600023,
+0xaf6c0064, 0xa36b0037, 0x8e030014, 0xaf630048,
+0x8f710048, 0xaf710024, 0x8e020018, 0xaf62006c,
+0x9214000c, 0xa3740036, 0x936a003e, 0x355f0020,
+0xa37f003e, 0x8f780074, 0x3197824, 0x35ee4000,
+0xaf6e0074, 0x93700000, 0x320900ff, 0x11240233,
+0x2418ff80, 0x3c040800, 0x24845a98, 0xe00028a,
+0x0, 0x24060004, 0x24070001, 0x3c040800,
+0x8c845a98, 0xa366007d, 0xa3670005, 0x8f4a0178,
+0x540fffe, 0x24020002, 0xaf440140, 0xa3420144,
+0x8f90001c, 0x3c141000, 0xaf540178, 0xa000369,
+0xaf800028, 0x2cad0037, 0x51a0ff9c, 0x8f910014,
+0x5a080, 0x3c180800, 0x271856f4, 0x2987821,
+0x8dee0000, 0x1c00008, 0x0, 0x24060006,
+0x14a60011, 0x0, 0x3c1f0800, 0x8fff5a98,
+0x24040005, 0xaf5f0020, 0x8e190018, 0xaf790018,
+0x8f78004c, 0xaf78001c, 0x8f6f0050, 0x122000c2,
+0xaf6f0070, 0xa000369, 0xaf840028, 0x240a0007,
+0x10aa0084, 0x24030006, 0x3c050800, 0x24a55a98,
+0xe000254, 0x24040081, 0x8f90001c, 0x11102b,
+0xa000369, 0xaf820028, 0x240a0004, 0x14aafff6,
+0x24030050, 0x3c0e0800, 0x8dce5a98, 0xaf4e0020,
+0x8e090008, 0xaf690040, 0x8e060008, 0xaf660044,
+0x8e07000c, 0xaf670048, 0x8e040010, 0xaf64004c,
+0x8e0d0010, 0xaf6d0084, 0x8e080014, 0xaf680050,
+0x8e050018, 0xaf650054, 0x8e0c001c, 0xaf6c0058,
+0x936b0000, 0x317400ff, 0x128301f5, 0x0,
+0x8f640048, 0x8f660040, 0x863823, 0x4e00004,
+0x2404008c, 0x1620ffde, 0x24020003, 0x24040082,
+0x3c050800, 0x24a55a98, 0xe00027d, 0x0,
+0x8f90001c, 0x1021, 0xa000369, 0xaf820028,
+0x24090005, 0x14a9ffcc, 0x24052000, 0x3c0a0800,
+0x8d4a5a98, 0xaf4a0020, 0x8e1f0004, 0xaf7f005c,
+0x92190008, 0x24100008, 0xa3790021, 0x8f98001c,
+0x930f0009, 0xa36f0020, 0x8f86001c, 0x90ce000a,
+0x31c400ff, 0x10900010, 0x28830009, 0x1460006c,
+0x24020002, 0x24080020, 0x1088000b, 0x34058000,
+0x28850021, 0x14a00008, 0x24054000, 0x240d0040,
+0x108d0005, 0x3c050001, 0x24070080, 0x10870002,
+0x3c050002, 0x24054000, 0x8f6e0074, 0x3c0fff00,
+0x1cf8024, 0x2054825, 0xaf690074, 0x90c4000b,
+0xa3640081, 0x8f84001c, 0x9486000c, 0x10c0019b,
+0x0, 0x948e000c, 0x241fffbf, 0x24060004,
+0xa76e003c, 0x9090000e, 0xa370003e, 0x8f89001c,
+0x9124000f, 0xa364003f, 0x8f94001c, 0x8e8d0010,
+0x8f470074, 0x1a72823, 0xaf650060, 0x8e880014,
+0xaf680064, 0x968c0018, 0xa76c0068, 0x968b001a,
+0xa76b006a, 0x8e82001c, 0xaf62006c, 0x96830002,
+0xa763013e, 0x928a000e, 0xa36a003e, 0x9379003e,
+0x33fc024, 0x1220016a, 0xa378003e, 0x8f90001c,
+0xa000369, 0xaf860028, 0x24140022, 0x14b4ff7e,
+0x24030007, 0x3c020800, 0x8c425a98, 0x1220000c,
+0xaf420020, 0xa000369, 0xaf830028, 0x240c0033,
+0x10ac0014, 0x24080028, 0x3c050800, 0x24a55a98,
+0xe000226, 0x24040081, 0xa0003ee, 0x8f90001c,
+0x3c040800, 0x24845a98, 0xe00028a, 0x0,
+0x936b0000, 0x24110050, 0x316300ff, 0x10710154,
+0x0, 0x8f90001c, 0x1821, 0xa000369,
+0xaf830028, 0x3c050800, 0x8ca55a98, 0x24040081,
+0xaf450020, 0xa3680034, 0x3c050800, 0x24a55a98,
+0xe000226, 0x0, 0x8f90001c, 0x24020009,
+0xa000369, 0xaf820028, 0x2b28821, 0x3225ffff,
+0xe00021a, 0x24040084, 0xa000369, 0x8f90001c,
+0x1082ffa1, 0x24050400, 0x28940003, 0x12800176,
+0x240c0004, 0x240b0001, 0x548bff9b, 0x24054000,
+0xa00043d, 0x24050100, 0x3c040800, 0x24845a98,
+0x8f62004c, 0xe00028a, 0x8f630050, 0x8f90001c,
+0x2021, 0xa000369, 0xaf840028, 0x8e100004,
+0x2404008a, 0xaf500020, 0x936e0005, 0x31c90002,
+0x15200165, 0x2002821, 0x93780023, 0x2002821,
+0x330f0020, 0x15e00160, 0x2404008d, 0x9362003f,
+0x24190012, 0x305f00ff, 0x13f9015b, 0x24040081,
+0xe000246, 0x2002021, 0x93740023, 0x240a0004,
+0x2002021, 0x36830042, 0xa3630023, 0xe00024f,
+0xa36a007d, 0x8f4b0178, 0x560fffe, 0x24050002,
+0xaf500140, 0xa3450144, 0x8f90001c, 0x3c0c1000,
+0xaf4c0178, 0xa0003ef, 0x11102b, 0x8e100004,
+0x2404008a, 0xaf500020, 0x936d0005, 0x31a80002,
+0x15000019, 0x2002821, 0x9367003f, 0x24140012,
+0x30e400ff, 0x10940101, 0x0, 0x936e003f,
+0x24060004, 0x31c900ff, 0x112600fc, 0x0,
+0xe000246, 0x2002021, 0x93620023, 0x2419fffe,
+0x2002021, 0x345f0020, 0xa37f0023, 0xa374003f,
+0x93780005, 0x3197824, 0xe00024f, 0xa36f0005,
+0x2002821, 0x2021, 0xe000336, 0x0,
+0xa0003ee, 0x8f90001c, 0x8e050004, 0x3c0f0008,
+0x34f4021, 0xaf450020, 0x910e0000, 0x24060050,
+0x31c900ff, 0x1126017a, 0x24040088, 0x8f5901b8,
+0x720fffe, 0x3c0c400e, 0x8c5825, 0x3c031000,
+0xaf450180, 0xaf400184, 0xaf4b0188, 0xaf4301b8,
+0x91020000, 0x240aff80, 0x24040004, 0x4af825,
+0xa11f0000, 0xe000c6b, 0x24060030, 0xa0003ee,
+0x8f90001c, 0x8e04001c, 0xe000231, 0x0,
+0x1040014c, 0x404821, 0x8f90001c, 0x24050089,
+0x8f4d01b8, 0x5a0fffe, 0x0, 0xaf490180,
+0x8e0f001c, 0x3c144001, 0x11702b, 0xb44825,
+0x3c111000, 0xaf4f0184, 0xaf8e0028, 0xaf490188,
+0xaf5101b8, 0xa00036a, 0x8f910014, 0x96190002,
+0x3c140800, 0x26945a98, 0x33380004, 0x130000f2,
+0x3c026000, 0x8e1f001c, 0x3c010800, 0xac3f5a98,
+0xaf5f0020, 0x920c0010, 0x240b0014, 0x318400ff,
+0x148b011c, 0x0, 0x96090002, 0x312d0001,
+0x15a001b2, 0x0, 0x8e020004, 0xae820008,
+0x3c0e0800, 0x8dce5aa0, 0x11c001a8, 0x0,
+0x8f690074, 0x3c0e8000, 0x24040001, 0x12e6825,
+0xaf6d0074, 0xa3600005, 0xaf64000c, 0x3c0c0800,
+0x8d8c5aa0, 0x8f88001c, 0xa7640010, 0xc59c2,
+0xa7640012, 0xa7640014, 0xa7640016, 0xa76b0008,
+0x8d030008, 0x24040002, 0xaf63002c, 0x8d0a000c,
+0xaf6a0030, 0x91070010, 0xa3670034, 0x8f82001c,
+0x90450011, 0xa3650035, 0x8f86001c, 0x90d00012,
+0xa3700036, 0x8f9f001c, 0x93f90013, 0xa3790037,
+0x8f90001c, 0x96180014, 0xa7780038, 0x96140016,
+0xa774003a, 0x8e0f0018, 0xaf6f0024, 0x5620fe02,
+0xaf840028, 0x3c050800, 0x24a55a98, 0xe000254,
+0x2021, 0x8f90001c, 0xa0004ac, 0x2021,
+0x8e0f0004, 0x3c140800, 0x26945a98, 0x3c010800,
+0xac2f5a98, 0xaf4f0020, 0x920e0003, 0x31c90004,
+0x11200002, 0x24020012, 0x24020006, 0xa362003f,
+0x9203001b, 0x240affc0, 0x3062003f, 0x4af825,
+0xa37f003e, 0x92190003, 0x33380001, 0x170000c1,
+0x0, 0x8e020008, 0xae820008, 0x3c020800,
+0x8c425aa0, 0x104000c0, 0x0, 0x221c2,
+0xa7640008, 0x8e0d000c, 0x240b0001, 0x24140014,
+0xaf6d002c, 0x8e080010, 0xaf680030, 0x96050016,
+0xa7650038, 0x960c0014, 0xa76c003a, 0xaf6b000c,
+0xa76b0010, 0xa76b0012, 0xa76b0014, 0xa76b0016,
+0x122000eb, 0xa3740034, 0x92060003, 0x30c70002,
+0x2cf00001, 0x26020008, 0x8f90001c, 0xa000369,
+0xaf820028, 0x8e140004, 0x24030081, 0xaf540020,
+0x93680023, 0x31050010, 0x10a000ac, 0x0,
+0x8f4401b8, 0x480fffe, 0x3c06401f, 0x11382b,
+0x661025, 0x3c111000, 0xaf540180, 0xaf870028,
+0xaf400184, 0xaf420188, 0xaf5101b8, 0xa00036a,
+0x8f910014, 0x8e060004, 0x3c190008, 0x3592021,
+0xaf460020, 0x8e070008, 0x90980000, 0x240f0050,
+0x331400ff, 0x128f00a7, 0x24050088, 0x8f4401b8,
+0x480fffe, 0x3c0d4009, 0x11602b, 0xad1025,
+0x3c111000, 0xaf460180, 0xaf8c0028, 0xaf470184,
+0xaf420188, 0xaf5101b8, 0xa00036a, 0x8f910014,
+0x3c050800, 0x24a55a98, 0xe00027d, 0x24040082,
+0x8f90001c, 0x3021, 0xa000369, 0xaf860028,
+0x3c040800, 0x8c845a98, 0xe0014f6, 0x0,
+0x8f90001c, 0xa000486, 0x1821, 0xe000336,
+0x24040081, 0xa0003ee, 0x8f90001c, 0x3c050800,
+0x24a55a98, 0xe00027d, 0x2404008b, 0x8f90001c,
+0x11302b, 0xa000369, 0xaf860028, 0x3c190800,
+0x8f395a98, 0x3c1f0800, 0x8fff0050, 0x24ccfffe,
+0x33f7821, 0x1f87024, 0xaf4e0028, 0x3c040800,
+0x8c845a98, 0x3c090800, 0x8d290050, 0x896821,
+0x31a5007f, 0xba4021, 0x1078021, 0xae0600d8,
+0xaf9000d0, 0xae0000dc, 0xa0003b8, 0xae0c0108,
+0xaf600084, 0x3c080800, 0x8d085a98, 0x3c0d0800,
+0x8dad0050, 0x2405ff80, 0x3c02000c, 0x10d5821,
+0x1656024, 0xaf4c0028, 0x8e0a0014, 0x3174007f,
+0x29a1821, 0x627821, 0xadea00d8, 0x8e1f0014,
+0xaf8f00d0, 0xadff00dc, 0x8e190010, 0x2738fffe,
+0xa00040b, 0xadf80108, 0x548cfe27, 0x24054000,
+0xa00043d, 0x24051000, 0xe00032b, 0x0,
+0xa0003ee, 0x8f90001c, 0x8c46442c, 0x3c056c62,
+0x34b07970, 0x3c010800, 0xac205a98, 0x14d00008,
+0x24040002, 0x97880034, 0x978a002c, 0x2802821,
+0x10a382b, 0x10e00011, 0x24040092, 0x24040002,
+0xe000c89, 0x24050140, 0x3c010800, 0xac225a98,
+0xaf420020, 0x3c030800, 0x8c635a98, 0x10600005,
+0x24040083, 0xe000854, 0x0, 0x10400009,
+0x24040083, 0x3c050800, 0x24a55a98, 0xe000254,
+0x0, 0x8f90001c, 0x11202b, 0xa000369,
+0xaf840028, 0xe000858, 0x0, 0xa000530,
+0x8f90001c, 0x8e040008, 0xe000231, 0x0,
+0xa000586, 0xae820008, 0x3c050800, 0x24a55a98,
+0xe000226, 0x24040087, 0x8f90001c, 0xa0005a2,
+0x11102b, 0xe00085c, 0x0, 0x3c050800,
+0x24a55a98, 0xa00063a, 0x2404008b, 0xe000246,
+0x2802021, 0x93700023, 0x2802021, 0x360d0010,
+0xe00024f, 0xa36d0023, 0x8f90001c, 0xa0005ab,
+0x1821, 0x24040004, 0xe000c89, 0x24050030,
+0x1440002a, 0x404821, 0x8f90001c, 0xa000517,
+0x24050083, 0x9205000c, 0x30bf0001, 0x13e00003,
+0x0, 0x9602000e, 0xa482002c, 0x920a000c,
+0x31480002, 0x1100ff51, 0x2821, 0x960b0012,
+0x8e030014, 0xa48b001a, 0xa0005c2, 0xac83001c,
+0x8f830038, 0x8f870030, 0x1067fe84, 0x2021,
+0x3c090800, 0x25295a1c, 0x320c0, 0x893021,
+0x8cd40000, 0x1285005e, 0x24780001, 0x3303000f,
+0x5467fffa, 0x320c0, 0xa0004fe, 0x2021,
+0x3c050800, 0x24a55a98, 0xe00027d, 0x24040082,
+0x8f90001c, 0xa0005a2, 0x1021, 0x3c0b0008,
+0x34b2021, 0x24030050, 0x240a0001, 0xaf420020,
+0xa0830000, 0xa08a0001, 0x8f88001c, 0x91070004,
+0xa0870018, 0x8f82001c, 0x90450005, 0xa0850019,
+0x8f86001c, 0x90df0006, 0xa09f001a, 0x8f99001c,
+0x93380007, 0xa098001b, 0x8f94001c, 0x928f0008,
+0xa08f001c, 0x8f90001c, 0x920e0009, 0xa08e001d,
+0x8f8d001c, 0x91ac000a, 0xa08c001e, 0x8f8b001c,
+0x3c0c0800, 0x258c5a1c, 0x9163000b, 0x3c0b0800,
+0x256b5a18, 0xa083001f, 0x8f8a001c, 0x9148000c,
+0xa0880020, 0x8f87001c, 0x90e5000d, 0xa0850021,
+0x8f82001c, 0x24054646, 0x9046000e, 0xa0860022,
+0x8f9f001c, 0x93f9000f, 0xa0990023, 0x8f98001c,
+0x93140010, 0xa0940024, 0x8f8f001c, 0x91f00011,
+0xa0900025, 0x8f90001c, 0x8f8e0030, 0x8f990038,
+0x960d0014, 0xe18c0, 0x25c80001, 0xa48d0028,
+0x960a0016, 0x6c3021, 0x6bf821, 0xa48a002a,
+0x96070018, 0x3108000f, 0xa487002c, 0xa485002e,
+0x8e02001c, 0xacc90000, 0xaf880030, 0x11190003,
+0xafe20000, 0xa000517, 0x2821, 0x250c0001,
+0x3184000f, 0x2821, 0xa000517, 0xaf840038,
+0x3c070800, 0x24e75a18, 0x878021, 0x2021,
+0xacc00000, 0xa0004fe, 0xae000000, 0x3c050800,
+0x24a55a98, 0xa00063a, 0x24040087, 0x8e040004,
+0xe000231, 0x0, 0xa00053b, 0xae820008,
+0x3084ffff, 0x30c600ff, 0x8f4201b8, 0x440fffe,
+0x64400, 0x1043025, 0x3c072000, 0xc72025,
+0x3c031000, 0xaf400180, 0xaf450184, 0xaf440188,
+0x3e00008, 0xaf4301b8, 0x27bdffe8, 0xafb00010,
+0xafbf0014, 0x3c076000, 0x24060002, 0x10800006,
+0xa08021, 0x10102b, 0x8fbf0014, 0x8fb00010,
+0x3e00008, 0x27bd0018, 0x3c09600e, 0xad200034,
+0x8ce5201c, 0x8f82001c, 0x2408fffc, 0xa81824,
+0xace3201c, 0xe0006ef, 0x8c45000c, 0x10102b,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x3c02600e, 0x34470100, 0x24090018, 0x274a0400,
+0x0, 0x0, 0x0, 0x3c060050,
+0x34c30200, 0xaf440038, 0xaf45003c, 0xaf430030,
+0x1401821, 0x8f4b0000, 0x31680020, 0x1100fffd,
+0x2406007f, 0x2408ffff, 0x8c6c0000, 0x24c6ffff,
+0x24630004, 0xacec0000, 0x14c8fffb, 0x24e70004,
+0x0, 0x0, 0x0, 0x3c0f0020,
+0xaf4f0030, 0x0, 0x24ad0200, 0x1a5702b,
+0x2529ffff, 0x8e2021, 0x1520ffe1, 0x1a02821,
+0x3e00008, 0x0, 0x27bdffe0, 0xafb10014,
+0xafbf0018, 0xafb00010, 0x3c05600e, 0x8ca20034,
+0x808821, 0x14400006, 0x3c046000, 0x8c87201c,
+0x2408fffc, 0xe83024, 0x34c30001, 0xac83201c,
+0x8f8b001c, 0x24090001, 0xaca90034, 0x95690002,
+0x8d650014, 0x8d70000c, 0x2d240081, 0x8d670004,
+0x8d660008, 0x10800007, 0x8d6a0010, 0x2d2c0004,
+0x1580000e, 0x30ce0007, 0x312d0003, 0x11a0000b,
+0x0, 0x2404008b, 0x2002821, 0xe0006ef,
+0x24060003, 0x11102b, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x3e00008, 0x27bd0020, 0x15c0fff6,
+0x2404008b, 0x3c030020, 0xaf430030, 0x0,
+0x24020001, 0xaf820014, 0x0, 0x0,
+0x0, 0x3c1f0150, 0x13fc825, 0x25380003,
+0x3c0f600e, 0xaf470038, 0x181882, 0xaf46003c,
+0x35e8003c, 0xaf590030, 0x27470400, 0x8f440000,
+0x30860020, 0x10c0fffd, 0x0, 0x10600008,
+0x2466ffff, 0x2403ffff, 0x8ceb0000, 0x24c6ffff,
+0x24e70004, 0xad0b0000, 0x14c3fffb, 0x25080004,
+0x3c08600e, 0xad090038, 0x0, 0x0,
+0x0, 0x3c070020, 0xaf470030, 0x0,
+0xe000717, 0x1402021, 0x2002821, 0x2021,
+0xe0006ef, 0x24060003, 0x11102b, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x3e00008, 0x27bd0020,
+0x27bdffd8, 0xafb20018, 0x3092ffff, 0xafb10014,
+0xafbf0020, 0xafb3001c, 0xafb00010, 0x1240002c,
+0x8821, 0xa0007af, 0x24130001, 0x50b3003c,
+0x8ce5000c, 0xd, 0x262d0001, 0x31b1ffff,
+0x24ec0020, 0x232382b, 0x10e00021, 0xaf8c001c,
+0x8f820014, 0x1440001e, 0x8f87001c, 0x3c067000,
+0x3c032000, 0x8ce40000, 0x862824, 0x14a30018,
+0x8f85003c, 0x44402, 0x3c098000, 0x898024,
+0x14a0ffea, 0x310600ff, 0x24040002, 0x10c4001f,
+0x28ca0003, 0x11400016, 0x240b0003, 0x14d3ffe7,
+0x262d0001, 0x2002821, 0xe0006fd, 0x24040001,
+0x8f87001c, 0xaf82003c, 0x262d0001, 0x31b1ffff,
+0x24ec0020, 0x232382b, 0x14e0ffe1, 0xaf8c001c,
+0x2201021, 0x8fbf0020, 0x8fb3001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x3e00008, 0x27bd0028,
+0x14cbffd2, 0x262d0001, 0xe00073d, 0x2002021,
+0x8f87001c, 0xa0007c9, 0xaf82003c, 0x2002821,
+0xe0006fd, 0x2021, 0xa0007c8, 0x8f87001c,
+0xe0006ef, 0x24040084, 0x1600ffc3, 0x8f87001c,
+0xa0007a9, 0xaf80003c, 0x3082ffff, 0x14400003,
+0x1821, 0x42402, 0x24030010, 0x308500ff,
+0x14a00005, 0x3087000f, 0x24660008, 0x42202,
+0x30c300ff, 0x3087000f, 0x14e00005, 0x30890003,
+0x24680004, 0x42102, 0x310300ff, 0x30890003,
+0x15200005, 0x388b0001, 0x246a0002, 0x42082,
+0x314300ff, 0x388b0001, 0x31640001, 0x10800002,
+0x246c0001, 0x318300ff, 0x3e00008, 0x601021,
+0x308bffff, 0xb3942, 0x30e600ff, 0x3c090800,
+0x25295998, 0x64080, 0x1096021, 0x8d870000,
+0x3164001f, 0x240a0001, 0x8a1804, 0x30a500ff,
+0xe32025, 0x14a00002, 0x31027, 0xe22024,
+0x240f0001, 0xcf7004, 0x1096821, 0xe2827,
+0x14800005, 0xada40000, 0x8f86000c, 0xa61024,
+0x3e00008, 0xaf82000c, 0x8f88000c, 0x1c81025,
+0x3e00008, 0xaf82000c, 0x3c06001f, 0x3c036000,
+0x3084ffff, 0x34c5ff80, 0x24020020, 0xac602008,
+0xac60200c, 0xac602010, 0xac652014, 0xac642018,
+0xac622000, 0x0, 0x0, 0x3e00008,
+0x0, 0x27bdffe8, 0x2402ffff, 0xafbf0010,
+0xaf82000c, 0x2021, 0x3c060800, 0x24c65998,
+0x2405ffff, 0x24890001, 0x44080, 0x3124ffff,
+0x1061821, 0x2c870020, 0x14e0fffa, 0xac650000,
+0xe000825, 0x2021, 0x24020001, 0x3c046000,
+0x24050020, 0xac822018, 0xac852000, 0x0,
+0x0, 0x0, 0x244a0001, 0x3142ffff,
+0x2c460400, 0x14c0fff7, 0x8fbf0010, 0x3e00008,
+0x27bd0018, 0x8f830008, 0x2c620400, 0x3e00008,
+0x38420001, 0x8f830008, 0x24620001, 0x3e00008,
+0xaf820008, 0x8f830008, 0x2462ffff, 0x3e00008,
+0xaf820008, 0x27bdffe0, 0xafb10014, 0xafbf0018,
+0xafb00010, 0x8f6b0030, 0x3c066000, 0x808821,
+0xaccb2008, 0x8f6a002c, 0x3c028000, 0x24030008,
+0xacca200c, 0x9769003a, 0x97680038, 0x92c00,
+0x3107ffff, 0xa72025, 0xacc42010, 0xacc22014,
+0xacc32000, 0x0, 0x0, 0x0,
+0x3c036000, 0x8c6d2000, 0x31ac0008, 0x1580fff9,
+0x0, 0x8c6e2014, 0x5c00020, 0x0,
+0xe0007e9, 0x8f84000c, 0x24080, 0x3c090800,
+0x25295998, 0x1093821, 0x8ce40000, 0xe0007e9,
+0x28140, 0x2022021, 0x3090ffff, 0x2002021,
+0xe000807, 0x2821, 0x3c0c8000, 0x22c5825,
+0x3210ffff, 0x3c116000, 0x240a0020, 0xae2b2014,
+0xae302018, 0xae2a2000, 0x0, 0x0,
+0x0, 0x2001021, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x3e00008, 0x27bd0020, 0x8c662014,
+0x3c02001f, 0x3443ff80, 0x3c1fffe8, 0xc3c024,
+0x37f90800, 0x3198021, 0x1079c2, 0x3c0c8000,
+0x22c5825, 0x31f0ffff, 0x3c116000, 0x240a0020,
+0xae2b2014, 0xae302018, 0xae2a2000, 0x0,
+0x0, 0x0, 0x2001021, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x3e00008, 0x27bd0020,
+0x27bdffe8, 0xafb00010, 0x3402ffff, 0x3090ffff,
+0xafbf0014, 0x12020006, 0x2002021, 0xe000825,
+0x0, 0x2002021, 0xe000807, 0x24050001,
+0x8f840008, 0x8fbf0014, 0x8fb00010, 0x2483ffff,
+0x27bd0018, 0x3e00008, 0xaf830008, 0x439c2,
+0x30e6003f, 0x43b42, 0x71840, 0x24021000,
+0x2cc40020, 0x24c8ffe0, 0xaf42002c, 0x24630001,
+0x14800003, 0x30a900ff, 0x71840, 0x310600ff,
+0x36080, 0x24080001, 0x19a5821, 0x3c0a000e,
+0xc82804, 0x16a3821, 0x11200005, 0x53027,
+0x8ce90000, 0x1253025, 0x3e00008, 0xace60000,
+0x8cee0000, 0x1c66824, 0x3e00008, 0xaced0000,
+0x27bdffe8, 0xafbf0014, 0xafb00010, 0x3c046000,
+0x8c850808, 0x3403f000, 0x30a2f000, 0x50430006,
+0x24020001, 0x8c870808, 0x3404e000, 0x30e6f000,
+0x10c4001e, 0x24020002, 0xaf820040, 0x3c106000,
+0x3c0a0200, 0xae0a0814, 0x24091000, 0x3c08000e,
+0x8e034400, 0x3482021, 0xaf49002c, 0x24050120,
+0xe000ccf, 0x3021, 0x8f830040, 0x10600004,
+0x3c021691, 0x240b0001, 0x106b000e, 0x3c023d6c,
+0x344f0090, 0xae0f4408, 0x8fbf0014, 0x8fb00010,
+0x3c0c6000, 0x240e1000, 0x3c0d0200, 0x27bd0018,
+0xad8e4420, 0x3e00008, 0xad8d0810, 0xa0008f6,
+0xaf800040, 0x3c0218da, 0x344f0090, 0xae0f4408,
+0x8fbf0014, 0x8fb00010, 0x3c0c6000, 0x240e1000,
+0x3c0d0200, 0x27bd0018, 0xad8e4420, 0x3e00008,
+0xad8d0810, 0xa0008ca, 0x24050001, 0xa0008ca,
+0x2821, 0x3c080800, 0x25085da4, 0x2404ffff,
+0x1001821, 0x2402001e, 0x2442ffff, 0xac640000,
+0x441fffd, 0x24630004, 0x3c070800, 0x24e75e20,
+0x8ce5fffc, 0x2404001c, 0x24060001, 0x308a001f,
+0x1464804, 0x24840001, 0x91027, 0x2c830020,
+0x1460fffa, 0xa22824, 0xace5fffc, 0x3c056666,
+0x34a4616e, 0x3c060800, 0x24c65ee0, 0xaf840058,
+0xaf88009c, 0x2404ffff, 0xc01821, 0x2402001f,
+0x2442ffff, 0xac640000, 0x441fffd, 0x24630004,
+0x3c076666, 0x3c050800, 0x24a55ea0, 0xaf860048,
+0x34e6616e, 0xaf860098, 0x2404ffff, 0xa01821,
+0x2402000f, 0x2442ffff, 0xac640000, 0x441fffd,
+0x24630004, 0x3c0b6666, 0x3c060800, 0x24c65e20,
+0x3568616e, 0xaf8500a4, 0xaf880070, 0x2404ffff,
+0xc01821, 0x2402001f, 0x2442ffff, 0xac640000,
+0x441fffd, 0x24630004, 0x3c0d6666, 0x3c0a0800,
+0x254a5f60, 0x35ac616e, 0xaf860090, 0xaf8c005c,
+0x2404ffff, 0x1401821, 0x24020003, 0x2442ffff,
+0xac640000, 0x441fffd, 0x24630004, 0x3c090800,
+0x25295f70, 0x8d27fffc, 0x24040006, 0x24050001,
+0x3099001f, 0x325c004, 0x24840001, 0x187827,
+0x2c8e0020, 0x15c0fffa, 0xef3824, 0xad27fffc,
+0x3c096666, 0x24030400, 0x240403dc, 0x24050200,
+0x24060066, 0x3522616e, 0x3c080800, 0x25085aa4,
+0xaf820074, 0xaf830044, 0xaf83006c, 0xaf830050,
+0xaf830084, 0xaf8a008c, 0xaf840064, 0xaf85004c,
+0xaf860054, 0xaf840078, 0xaf850060, 0xaf860080,
+0x1001821, 0x24020002, 0x2442ffff, 0xac600000,
+0x441fffd, 0x24630004, 0x24040003, 0x2403000c,
+0x3c0a0800, 0x254a5ab0, 0xaf8a0068, 0xa00099d,
+0x2405ffff, 0x41880, 0x24840001, 0x685821,
+0x2c8700c0, 0x14e0fffb, 0xad650000, 0x3c0e6666,
+0x35cd616e, 0x240c17a0, 0x24081800, 0xaf8d0088,
+0xaf8c0094, 0x3e00008, 0xaf88007c, 0x2484007f,
+0x421c2, 0x4021, 0x3021, 0x3821,
+0x2821, 0xa0009b4, 0xaf8400a0, 0x10600006,
+0x24e70001, 0xc43021, 0x24a50001, 0x2cc20bf5,
+0x1440fffa, 0x2ca30066, 0x3c090800, 0x25295f60,
+0x1201821, 0x24020003, 0x2442ffff, 0xac600000,
+0x441fffd, 0x24630004, 0x10e0001a, 0x24e3ffff,
+0x32942, 0x10a0000a, 0x2021, 0x2406ffff,
+0x3c030800, 0x24635f60, 0x24840001, 0x85502b,
+0xac660000, 0x25080001, 0x1540fffb, 0x24630004,
+0x30e2001f, 0x10400008, 0x86880, 0x240c0001,
+0x4c3804, 0x85880, 0x1692821, 0x24e6ffff,
+0x3e00008, 0xaca60000, 0x1a94021, 0x2409ffff,
+0xad090000, 0x3e00008, 0x0, 0xaf440028,
+0x3c04000c, 0x3442021, 0x52882, 0xa000ccf,
+0x3021, 0x42180, 0x3c036000, 0xac641008,
+0x0, 0x52980, 0xac65100c, 0x0,
+0x3e00008, 0x8c62100c, 0x27bdffe8, 0x802821,
+0x24040038, 0xafbf0014, 0xe0009e4, 0xafb00010,
+0x24040e00, 0xaf440028, 0x3c10000c, 0x3502021,
+0x24050010, 0xe000ccf, 0x3021, 0x3501021,
+0xac400000, 0xac400004, 0x24040038, 0x8fbf0014,
+0x8fb00010, 0x24053fff, 0x27bd0018, 0xa0009e4,
+0x8c430000, 0x42180, 0x3c036000, 0xac641008,
+0x0, 0x8c62100c, 0x3e00008, 0x21182,
+0x27bdffc8, 0xafb40020, 0x8f940068, 0xafbe0030,
+0xafb7002c, 0xafb60028, 0xb821, 0x80b021,
+0x241e00c0, 0xafbf0034, 0xafb50024, 0xafb3001c,
+0xafb20018, 0xafb10014, 0xafb00010, 0xa000a21,
+0xafa5003c, 0x50400001, 0x8f940068, 0x27deffff,
+0x13c00028, 0x26940004, 0x8e920000, 0x3c030800,
+0x24635da0, 0x1240fff7, 0x283102b, 0x3c040800,
+0x24845aa4, 0x2841023, 0x2a8c0, 0x9821,
+0xa000a30, 0x24110001, 0x118840, 0x12200026,
+0x0, 0x2b38021, 0x2512824, 0x2002021,
+0x10a0fff9, 0x26730001, 0xe0009ed, 0x0,
+0x166840, 0x32ec0001, 0x1ac2021, 0xe0009e4,
+0x2002821, 0x8f890094, 0x26f70001, 0x8fa6003c,
+0x3aeb0001, 0x316a0001, 0x2528ffff, 0x113827,
+0x2cab021, 0xaf880094, 0x16e6ffe7, 0x2479024,
+0xae920000, 0x2e01021, 0x8fbf0034, 0x8fbe0030,
+0x8fb7002c, 0x8fb60028, 0x8fb50024, 0x8fb40020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0038, 0x3c0e0800, 0x25ce5da0,
+0x28e102b, 0xa000a1c, 0xae920000, 0x27bdffd8,
+0xafb10014, 0xafb00010, 0xafbf0020, 0xafb3001c,
+0xafb20018, 0xa08821, 0x10a0001f, 0x48040,
+0x3c130800, 0x26735aa4, 0xa000a69, 0x24120001,
+0x12200019, 0x26100001, 0xe000a04, 0x2002021,
+0x23142, 0x2444ffa0, 0x61880, 0x3045001f,
+0x2c8217a1, 0x731821, 0x2631ffff, 0x1040fff4,
+0xb23004, 0x8c690000, 0x2002021, 0x24053fff,
+0x1264024, 0x1500ffee, 0x1263825, 0xe0009e4,
+0xac670000, 0x8f8a0094, 0x26100001, 0x25470001,
+0x1620ffe9, 0xaf870094, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0028, 0x8f85009c, 0x805821, 0x4021,
+0x4821, 0x240a001f, 0x3c0c0800, 0x258c5e1c,
+0x3c0d0800, 0x25ad5da4, 0x8ca60000, 0x50c00014,
+0x4021, 0xad1023, 0x238c0, 0x24030001,
+0xa000aa2, 0x2021, 0x15000003, 0xe41021,
+0x24482024, 0x4821, 0x25290001, 0x512b0013,
+0x2506dfdc, 0x10600006, 0x24840001, 0xc37024,
+0x15c0fff5, 0x31840, 0xa000aa0, 0x4021,
+0x10ac0026, 0x24a30004, 0x602821, 0x254affff,
+0x1540ffe5, 0xaf85009c, 0x512b0004, 0x2506dfdc,
+0x4021, 0x3e00008, 0x1001021, 0x66142,
+0x30c5001f, 0xc5080, 0x3c070800, 0x24e75da4,
+0x24040001, 0x1473021, 0x1120000f, 0xa42004,
+0x3c050800, 0x24a55e20, 0x14800005, 0x2529ffff,
+0x24c60004, 0x10c50011, 0x0, 0x24040001,
+0x8ccf0000, 0x4c027, 0x42040, 0x1f86824,
+0x1520fff5, 0xaccd0000, 0x8f990078, 0x1001021,
+0x32b4823, 0x3e00008, 0xaf890078, 0x3c050800,
+0x24a55da4, 0xa000aaa, 0x4021, 0x3c060800,
+0x24c65da4, 0xa000ac3, 0x24040001, 0x308800ff,
+0x24020002, 0x1102000a, 0x24030003, 0x1103005c,
+0x8f8900a4, 0x24040004, 0x1104005f, 0x24050005,
+0x11050067, 0x1821, 0x3e00008, 0x601021,
+0x8f890048, 0x3c0c0800, 0x258c5ee0, 0x3c040800,
+0x24845f60, 0x24030020, 0x1060000f, 0x5821,
+0x240d0002, 0x240e0003, 0x3c0f0800, 0x25ef5ee0,
+0x8d270000, 0x14e0000b, 0x30f9ffff, 0x25290004,
+0x124c02b, 0x53000001, 0x1804821, 0x2463ffff,
+0x5460fff8, 0x8d270000, 0x1601821, 0x3e00008,
+0x601021, 0x13200032, 0x3c0500ff, 0x30e200ff,
+0x403021, 0x10400042, 0x5021, 0x24050001,
+0x2021, 0x5c840, 0xa6c024, 0x17000003,
+0x332500ff, 0x14a0fffb, 0x24840001, 0x12cc023,
+0x1828c0, 0xaa6021, 0x8c5021, 0x3144001f,
+0x240c0001, 0x8c1804, 0x31027, 0xe23024,
+0x110d0041, 0xad260000, 0x110e004c, 0xa1840,
+0x110d0036, 0x8f87006c, 0x510e0056, 0x8f8c0060,
+0x240d0004, 0x110d005a, 0x8f8e0084, 0x240e0005,
+0x150effda, 0x1601821, 0x240b1430, 0x11400006,
+0x1821, 0x8f8400a0, 0x24630001, 0x6a402b,
+0x1500fffd, 0x1645821, 0x8f8a0080, 0xaf89008c,
+0x1601821, 0x2549ffff, 0xa000afa, 0xaf890080,
+0xe52024, 0x73602, 0x1080ffd0, 0x240a0018,
+0x75402, 0x314600ff, 0xa000b02, 0x240a0010,
+0x3c0c0800, 0x258c5ea0, 0x3c040800, 0x24845ee0,
+0xa000ae9, 0x24030010, 0x3c0c0800, 0x258c5e20,
+0x3c040800, 0x24845ea0, 0xa000ae8, 0x8f890090,
+0x71a02, 0x306600ff, 0xa000b02, 0x240a0008,
+0x8f89008c, 0x3c0c0800, 0x258c5f60, 0x3c040800,
+0x24845f70, 0xa000ae9, 0x24030004, 0xa4080,
+0x250b0030, 0x24e6ffff, 0x1601821, 0xaf890048,
+0xa000afa, 0xaf86006c, 0xac982, 0x197880,
+0x3c070800, 0x24e75ea0, 0x1e72021, 0xa1842,
+0x8c8f0000, 0x3079001f, 0x32c3804, 0x7c027,
+0x1f86024, 0xa000b17, 0xac8c0000, 0x33142,
+0x62880, 0xaf2821, 0x3062001f, 0x8cb80000,
+0x24630001, 0x4cc804, 0x32142, 0x193827,
+0x41080, 0x3073024, 0x4f2021, 0xa000b5b,
+0xaca60000, 0xa68c0, 0x25ab0032, 0x258affff,
+0x1601821, 0xaf8900a4, 0xa000afa, 0xaf8a0060,
+0x254b1030, 0xaf890090, 0x1601821, 0x25c9ffff,
+0xa000afa, 0xaf890084, 0x30860007, 0x2cc20006,
+0x10400014, 0x0, 0x64080, 0x3c030800,
+0x246357d0, 0x1033821, 0x8ce40000, 0x800008,
+0x0, 0x24090003, 0x10a9000e, 0x0,
+0x240a0005, 0x10aa000b, 0x0, 0x240b0001,
+0x10ab0008, 0x0, 0x8f8c00a0, 0x10ac0005,
+0x0, 0x3e00008, 0x1021, 0xa000a88,
+0xa02021, 0xa000ad6, 0xc02021, 0x27bdffe8,
+0x308400ff, 0x24030002, 0x1083000b, 0xafbf0010,
+0x24060003, 0x1086003a, 0x24080004, 0x10880068,
+0x240e0005, 0x108e007f, 0x2caf1430, 0x8fbf0010,
+0x3e00008, 0x27bd0018, 0x2ca20030, 0x1440fffc,
+0x8fbf0010, 0x24a5ffd0, 0x531c2, 0x66880,
+0x3c070800, 0x24e75ee0, 0x1a73021, 0x8cc90000,
+0x52882, 0x30ac001f, 0x240b0001, 0x18b5004,
+0x8f840048, 0x12a4025, 0xacc80000, 0x8c830000,
+0x50600001, 0xaf860048, 0x8f98006c, 0x30ae0001,
+0x24a6ffff, 0x270f0001, 0x15c00002, 0xaf8f006c,
+0x24a60001, 0x64142, 0x82080, 0x871821,
+0x8c790000, 0x30c2001f, 0x24060001, 0x46f804,
+0x33f3824, 0x10e0ffda, 0x8fbf0010, 0x5c182,
+0x187080, 0x3c0f0800, 0x25ef5ea0, 0x1cf4821,
+0x8d2b0000, 0x56842, 0x31a5001f, 0xa66004,
+0x16c5025, 0x27bd0018, 0x3e00008, 0xad2a0000,
+0x2ca70030, 0x14e0ffca, 0x8fbf0010, 0x30b90007,
+0x1723ffc7, 0x24a8ffce, 0x86a02, 0xd6080,
+0x3c0b0800, 0x256b5ea0, 0x18b3021, 0x8cc40000,
+0x828c2, 0x30aa001f, 0x24080001, 0x1484804,
+0x8f8200a4, 0x891825, 0xacc30000, 0x8c5f0000,
+0x53e00001, 0xaf8600a4, 0x57040, 0xe7942,
+0xf2880, 0x3c040800, 0x24845ee0, 0xa41821,
+0x8c6b0000, 0x25df0001, 0x31cd001f, 0x1f5142,
+0x1a86004, 0x16c4825, 0xa1080, 0xac690000,
+0x442821, 0x8ca60000, 0x8f980060, 0x33f9001f,
+0x8fbf0010, 0x3283804, 0xc77825, 0x270e0001,
+0x27bd0018, 0xacaf0000, 0x3e00008, 0xaf8e0060,
+0x24a5efd0, 0x2cb80400, 0x1300ff99, 0x8fbf0010,
+0x53142, 0x65880, 0x3c0a0800, 0x254a5e20,
+0x16a3021, 0x8cc40000, 0x30a3001f, 0x24090001,
+0x691004, 0x8f990090, 0x82f825, 0xacdf0000,
+0x8f270000, 0x50e00001, 0xaf860090, 0x8f8d0084,
+0x8fbf0010, 0x27bd0018, 0x25ac0001, 0x3e00008,
+0xaf8c0084, 0x15e0ff82, 0x8fbf0010, 0x8f8600a0,
+0x61040, 0x46f821, 0x1f2100, 0x3e4c821,
+0x193840, 0x24f81430, 0xb8402b, 0x1100ff78,
+0x8fbf0010, 0x24a4ebd0, 0xe000203, 0xc02821,
+0x27942, 0xf7080, 0x3c0d0800, 0x25ad5f60,
+0x1cd2021, 0x8c8b0000, 0x304c001f, 0x24060001,
+0x1861804, 0x8f89008c, 0x1635025, 0xac8a0000,
+0x8d250000, 0x50a00001, 0xaf84008c, 0x8f980080,
+0x8fbf0010, 0x27bd0018, 0x27080001, 0x3e00008,
+0xaf880080, 0x30a50007, 0x24030003, 0x10a30010,
+0x28a20004, 0x14400008, 0x24070002, 0x24030004,
+0x10a30015, 0x24080005, 0x10a8000f, 0x8f8500a0,
+0x3e00008, 0x0, 0x14a7fffd, 0x802821,
+0x14c3fffb, 0x24040002, 0xa000b9a, 0x0,
+0x24090005, 0x802821, 0x10c9fffb, 0x24040003,
+0x3e00008, 0x0, 0x14c5fff1, 0x802821,
+0xa000b9a, 0x24040005, 0x240a0001, 0x802821,
+0x10cafff1, 0x24040004, 0x3e00008, 0x0,
+0x27bdffe0, 0xafb00010, 0x581c2, 0x2603ffd0,
+0x24c5003f, 0x2c6223d0, 0x24c6007f, 0xafb20018,
+0xafb10014, 0xafbf001c, 0x309100ff, 0x691c2,
+0x52982, 0x2002021, 0x10400008, 0x2403ffff,
+0xe000a5a, 0x0, 0x2002021, 0x2202821,
+0xe000c48, 0x2403021, 0x1821, 0x8fbf001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x601021,
+0x3e00008, 0x27bd0020, 0x27bdffd8, 0x24a2007f,
+0xafb3001c, 0xafb20018, 0x299c2, 0x309200ff,
+0x24a3003f, 0x2402021, 0x2602821, 0xafb10014,
+0xafb00010, 0xafbf0020, 0xe000b7d, 0x38982,
+0x408021, 0x402021, 0x2202821, 0x14400009,
+0x1821, 0x8fbf0020, 0x8fb3001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x601021, 0x3e00008,
+0x27bd0028, 0xe000a0b, 0x0, 0x402821,
+0x2002021, 0x1051fff3, 0x1019c0, 0xe000a5a,
+0x0, 0x2002021, 0x2402821, 0xe000c48,
+0x2603021, 0x8fbf0020, 0x8fb3001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x1821, 0x601021,
+0x3e00008, 0x27bd0028, 0x3084ffff, 0x30a5ffff,
+0x10800007, 0x1821, 0x30820001, 0x10400002,
+0x42042, 0x651821, 0x1480fffb, 0x52840,
+0x3e00008, 0x601021, 0x10c00007, 0x0,
+0x8ca20000, 0x24c6ffff, 0x24a50004, 0xac820000,
+0x14c0fffb, 0x24840004, 0x3e00008, 0x0,
+0x10a00008, 0x24a3ffff, 0xac860000, 0x0,
+0x0, 0x2402ffff, 0x2463ffff, 0x1462fffa,
+0x24840004, 0x3e00008, 0x0, 0x30a5ffff,
+0x8f4201b8, 0x440fffe, 0x3c076015, 0xa73025,
+0x3c031000, 0xaf440180, 0xaf400184, 0xaf460188,
+0x3e00008, 0xaf4301b8, 0x8f8500d0, 0x2c864000,
+0x801821, 0x8ca70084, 0x87102b, 0x14400010,
+0x0, 0x8ca80084, 0x2d064000, 0x50c0000f,
+0x24034000, 0x8caa0084, 0x8a482b, 0x51200001,
+0x8ca30084, 0x35a42, 0xb2080, 0x3c050800,
+0x24a55820, 0x851821, 0x3e00008, 0x8c620000,
+0x14c0fff4, 0x0, 0x24034000, 0x35a42,
+0xb2080, 0x3c050800, 0x24a55820, 0x851821,
+0x3e00008, 0x8c620000, 0x8f8300d0, 0x906600d0,
+0x24c50001, 0xa06500d0, 0x8f8500d0, 0x906400d0,
+0x90a200d2, 0x10440017, 0x0, 0x936c0078,
+0x8f8b00bc, 0x318a00ff, 0xa16a000c, 0x25490001,
+0x938700c4, 0x312200ff, 0x3048007f, 0x1107000b,
+0x26827, 0xa3620078, 0x8f4e0178, 0x5c0fffe,
+0x8f9900b0, 0x24180002, 0x3c0f1000, 0xaf590140,
+0xa3580144, 0x3e00008, 0xaf4f0178, 0xa000d18,
+0x31a20080, 0xa0a000d0, 0xa000d0e, 0x0,
+0x8f8700d0, 0x27bdffc8, 0xafbf0030, 0xafb7002c,
+0xafb60028, 0xafb50024, 0xafb40020, 0xafb3001c,
+0xafb20018, 0xafb10014, 0xafb00010, 0x94e300e0,
+0x94e200e2, 0x104300d7, 0x2405ffff, 0x3c047fff,
+0x3497ffff, 0x2415ff80, 0xa000dff, 0x3c16000e,
+0x108a00d1, 0x8fbf0030, 0x8f9100b0, 0x3c180800,
+0x8f18005c, 0x1230c0, 0x129140, 0x3117021,
+0x1d57824, 0xaf4f002c, 0x94ec00e2, 0x31cd007f,
+0x1ba5821, 0x318a7fff, 0x1764821, 0xa8040,
+0x2091021, 0x94530000, 0x3c080800, 0x8d080058,
+0x246c021, 0x32733fff, 0x131980, 0x1032021,
+0x2242821, 0x30bf007f, 0x3fac821, 0xb5a024,
+0xaf54002c, 0x336a021, 0x8e870010, 0x8e8f0030,
+0x3785821, 0x256d0088, 0xef7023, 0x240c0002,
+0xae8e0010, 0xaf8d00ac, 0xa16c0088, 0x976a003c,
+0x8e840030, 0x8f9100ac, 0xe000ce5, 0x3150ffff,
+0x24b80, 0x2094025, 0x3c024200, 0x1022025,
+0xae240004, 0x8e830004, 0x8f8d00ac, 0x8e860000,
+0x240e0008, 0xada3001c, 0xada60018, 0xada0000c,
+0xada00010, 0x929f000a, 0x33f900ff, 0xa5b90014,
+0x96850008, 0x3c1f000c, 0xa5a50016, 0x9298000a,
+0x331100ff, 0xa5b10020, 0x96900008, 0x24180005,
+0xa5b00022, 0xada00024, 0x928f000b, 0x2410c000,
+0x31e700ff, 0xa5a70002, 0xa1ae0001, 0x8e8c0030,
+0x8f8b00ac, 0x8f8400b0, 0xad6c0008, 0x3c0a0800,
+0x8d4a0054, 0x1444821, 0x1354024, 0xaf480028,
+0x3c020800, 0x8c420054, 0x443021, 0x30c3007f,
+0x7ac821, 0x33f2821, 0x2458821, 0xaf9100bc,
+0xaf8500c0, 0xa2380000, 0x8f8a00bc, 0x2403ffbf,
+0x2418ffdf, 0x954f0002, 0x1f03824, 0xf37025,
+0xa54e0002, 0x914d0002, 0x31ac003f, 0x358b0040,
+0xa14b0002, 0x8f8600bc, 0x8f8900d0, 0xacc00004,
+0x8d28007c, 0x3c098000, 0xacc80008, 0x90c4000d,
+0x3082007f, 0xa0c2000d, 0x8f8500bc, 0x90bf000d,
+0x3e3c824, 0xa0b9000d, 0x8f9100bc, 0x9233000d,
+0x2789024, 0xa232000d, 0x8e900034, 0x8f8b00bc,
+0xad700010, 0x8e87002c, 0x8e8f0030, 0xef7023,
+0xad6e0014, 0x916d0018, 0x31ac007f, 0xa16c0018,
+0x8f9f00bc, 0x8e8a0030, 0x8fe80018, 0x1572024,
+0x1093024, 0xc41025, 0xafe20018, 0x9283000a,
+0xa3e3001c, 0x96990008, 0x8f8500bc, 0x8f9800d0,
+0xa4b9001e, 0x8e900030, 0x8e840030, 0xe000203,
+0x8f050084, 0x8f8500d0, 0x29140, 0x29900,
+0x90af00bc, 0x2538821, 0x403021, 0x31e70002,
+0x10e00003, 0x2118021, 0x29080, 0x2128021,
+0x90b900bc, 0x33270004, 0x10e00002, 0x6f880,
+0x21f8021, 0x8e980030, 0x8f8b00bc, 0x24068000,
+0x330f0003, 0xf7023, 0x31cd0003, 0x20d6021,
+0xad6c0004, 0x94a400e2, 0x94aa00e2, 0x94b000e2,
+0x31497fff, 0x25220001, 0x30537fff, 0x2061824,
+0x734025, 0xa4a800e2, 0x94a400e2, 0x3c140800,
+0x8e940060, 0x30917fff, 0x12340022, 0x0,
+0xe000d05, 0x0, 0x8f8700d0, 0x2821,
+0x94f300e0, 0x94f000e2, 0x1213000f, 0x8fbf0030,
+0x90e900d0, 0x90e800d1, 0x313200ff, 0x310400ff,
+0x244302b, 0x14c0ff36, 0x264a0001, 0x90ee00d2,
+0x264b0001, 0x31cd00ff, 0x8d6021, 0x158bff33,
+0x8f9100b0, 0x8fbf0030, 0x8fb7002c, 0x8fb60028,
+0x8fb50024, 0x8fb40020, 0x8fb3001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0xa01021, 0x3e00008,
+0x27bd0038, 0x94a300e2, 0x664024, 0xa4a800e2,
+0x90a400e2, 0x90b900e2, 0x309100ff, 0x11a1c2,
+0x14f827, 0x1f39c0, 0x3332007f, 0x2473025,
+0xa000df7, 0xa0a600e2, 0x3084ffff, 0x30a5ffff,
+0xaf440018, 0xaf45001c, 0x3e00008, 0x8f420014,
+0x27bdffb8, 0xafb00020, 0x8f9000d0, 0x3084ffff,
+0xafa40010, 0xafbf0044, 0xafbe0040, 0xafb7003c,
+0xafb60038, 0xafb50034, 0xafb40030, 0xafb3002c,
+0xafb20028, 0xafb10024, 0xa7a00018, 0x920600d1,
+0x920500d0, 0x30c400ff, 0x30a300ff, 0x64102b,
+0x10400122, 0xafa00014, 0x920900d0, 0x8fb50010,
+0x312800ff, 0x883823, 0x24f4ffff, 0x14882b,
+0x15982b, 0x2339024, 0x52400126, 0x8fb40014,
+0x961e0012, 0x961f0010, 0x8fb70010, 0x3dfc823,
+0x171400, 0x19c400, 0x22403, 0x181403,
+0x2e2b02a, 0x52c00001, 0x402021, 0x284282b,
+0x10a00002, 0x801821, 0x2801821, 0x33c00,
+0x71c03, 0x3064ffff, 0x2c860009, 0x14c00002,
+0x60b821, 0x24170008, 0x8e0a0008, 0x176980,
+0x8e09000c, 0x31abffff, 0x3c0c0010, 0x16c4025,
+0x27520400, 0xaf4a0038, 0xaf9200b8, 0xaf49003c,
+0xaf480030, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x8f4f0000, 0x31ee0020, 0x11c0fffd,
+0x17982a, 0x2711024, 0xa000e92, 0xb021,
+0x55e00101, 0x92580001, 0x31130080, 0x126001cf,
+0x1202021, 0x96550012, 0x32a5ffff, 0xe000cda,
+0xa7b50018, 0x8f9000d0, 0x291a023, 0x26c80001,
+0x8f9100b8, 0x8b400, 0x16b403, 0x262c0040,
+0x2d7782a, 0x14882b, 0x240b0001, 0x1809021,
+0x1f11024, 0xaf8c00b8, 0xafab0014, 0x104001bc,
+0x8f8900b0, 0x3c0c0800, 0x8d8c0054, 0x240bff80,
+0x921e00d0, 0x1895021, 0x14b2824, 0x921900d0,
+0xaf450028, 0x8e470010, 0x3c080800, 0x8d080058,
+0x3c180800, 0x8f180054, 0x30e33fff, 0x32180,
+0x1043021, 0x1265821, 0x2402ff80, 0x162f824,
+0x920c00d0, 0xaf5f002c, 0x92480000, 0x33d100ff,
+0x333500ff, 0x3099821, 0x117140, 0x1578c0,
+0x326d007f, 0x1cf3821, 0x1ba2821, 0x318300ff,
+0x3164007f, 0x3c0a000c, 0xaa8821, 0x367f021,
+0x33140, 0x9a1021, 0x3108003f, 0x3c1f000e,
+0xd1c021, 0x5f9821, 0x27d90088, 0x2d150008,
+0xaf9100c0, 0xaf9900ac, 0xaf9800bc, 0xaf9300b4,
+0x12a0018a, 0x8821, 0x240e0001, 0x10e4004,
+0x310d005d, 0x11a0ffb2, 0x310f0002, 0x8e4a0028,
+0x3c030080, 0x3c04ffef, 0xae6a0000, 0x8e450024,
+0xa260000a, 0x3488ffff, 0xae650004, 0x9247002c,
+0x3c1fff9f, 0x37feffff, 0xa267000c, 0x8e62000c,
+0x3c180040, 0xa267000b, 0x433025, 0xc8c824,
+0x33e8824, 0x238a825, 0xae75000c, 0x8e490004,
+0xae600018, 0x3c0f00ff, 0xae690014, 0x8e4d002c,
+0x35eeffff, 0x8f8b00b0, 0x1ae6024, 0xae6c0010,
+0x8e470008, 0xa6600008, 0x96450012, 0xae670020,
+0x8e42000c, 0x30b03fff, 0x105180, 0xae620024,
+0x8e5e0014, 0x14b1821, 0x30a40001, 0xae7e0028,
+0x8e590018, 0x331c2, 0x44380, 0xae79002c,
+0x8e51001c, 0xc8f821, 0xa67f001c, 0xae710030,
+0x96580002, 0x8e550020, 0xa678001e, 0xae750034,
+0x92490033, 0x31300004, 0x56000005, 0x92500000,
+0x8f8c00d0, 0x8d8b007c, 0xae6b0030, 0x92500000,
+0x8f8f00bc, 0xa1f00000, 0x924e0033, 0x31cd0002,
+0x51a00007, 0x925e0001, 0x8f8900bc, 0x2418ff80,
+0x91310000, 0x311a825, 0xa1350000, 0x925e0001,
+0x8f9900bc, 0x2409ffbf, 0x240bffdf, 0xa33e0001,
+0x8f9500bc, 0x92b8000d, 0x3311007f, 0xa2b1000d,
+0x8f8e00bc, 0x91d0000d, 0x2097824, 0xa1cf000d,
+0x8f8800bc, 0x8e6d0014, 0x910a000d, 0x2dac0001,
+0xc2940, 0x14b3824, 0xe51825, 0xa103000d,
+0x96420012, 0x8f8800bc, 0x8f8700d0, 0xa5020002,
+0x8e450004, 0x90ff00bc, 0x30a40003, 0x43023,
+0x30de0003, 0xbe1021, 0x33f90002, 0x17200002,
+0x24440034, 0x24440030, 0x90e200bc, 0xa23024,
+0x30df0004, 0x17e00002, 0x24830004, 0x801821,
+0x8f8f00ac, 0x24090002, 0xad030004, 0xa1e90000,
+0x924e003f, 0x8f8d00ac, 0xa1ae0001, 0x8f9500ac,
+0x924c003f, 0x8e440004, 0xa6ac0002, 0x976b003c,
+0xe000ce5, 0x3170ffff, 0x25380, 0x20a3825,
+0x3c054200, 0xe51825, 0xaea30004, 0x8f8600ac,
+0x8e480038, 0xacc80018, 0x8e440034, 0xacc4001c,
+0xacc0000c, 0xacc00010, 0xa4c00014, 0xa4c00016,
+0xa4c00020, 0xa4c00022, 0xacc00024, 0x8e640014,
+0x50800001, 0x24040001, 0xacc40008, 0xe000d05,
+0x24110001, 0xa000e85, 0x8f9000d0, 0x920f00d2,
+0x920e00d0, 0x8fb50010, 0x31eb00ff, 0x31cd00ff,
+0x8d6023, 0x16c5021, 0x2554ffff, 0x14882b,
+0x15982b, 0x2339024, 0x1640fedd, 0x0,
+0x8fb40014, 0x8fbf0044, 0x8fbe0040, 0x3a820001,
+0x8fb7003c, 0x8fb60038, 0x8fb50034, 0x8fb40030,
+0x8fb3002c, 0x8fb20028, 0x8fb10024, 0x8fb00020,
+0x3e00008, 0x27bd0048, 0x33110020, 0x122000ee,
+0x24150001, 0x921e00bc, 0x241f0001, 0xa821,
+0x33d90001, 0x1320000d, 0xafbf001c, 0x8e440014,
+0x8e080084, 0x88102b, 0x14400002, 0x803021,
+0x8e060084, 0x8e030064, 0xc3a82b, 0x16a00002,
+0xc02021, 0x8e040064, 0x80a821, 0x8e470014,
+0x8e050064, 0xe5302b, 0x14c00002, 0xe02021,
+0x8e040064, 0x95f023, 0x13c00004, 0x8fac001c,
+0x240a0002, 0xafaa001c, 0x8fac001c, 0x28c582b,
+0x156000a8, 0x1821, 0x8e4f0038, 0x8e6d000c,
+0x3c0e0080, 0xae6f0000, 0x8e4a0034, 0x3c10ff9f,
+0x1ae5825, 0xae6a0004, 0x9246003f, 0x360cffff,
+0x16c3824, 0x3c050020, 0x3c03ffef, 0xa266000b,
+0xe51025, 0x3468ffff, 0x8f8700b8, 0x48f824,
+0x3c040008, 0x3e4c825, 0xae79000c, 0x8cf80014,
+0xae600018, 0x2be7821, 0xae780014, 0x8cf10018,
+0xae71001c, 0x8ce90008, 0xae690024, 0x8cee000c,
+0xae6f002c, 0xae600028, 0xae6e0020, 0xa6600038,
+0xa660003a, 0x8ced0014, 0x1b58023, 0x21e9023,
+0x12400011, 0xae720010, 0x90ea003d, 0x8e650004,
+0x8e640000, 0xa3100, 0xa6c821, 0x1021,
+0x326402b, 0x82f821, 0x3e8c021, 0xae790004,
+0xae780000, 0x90f1003d, 0xa271000a, 0x8f8900b8,
+0x95320006, 0xa6720008, 0x8f9800ac, 0x24190002,
+0x2a02021, 0xa3190000, 0x9769003c, 0x8f9200ac,
+0xe000ce5, 0x3131ffff, 0x27b80, 0x8f8500b8,
+0x22f6825, 0x3c0e4200, 0x1ae8025, 0xae500004,
+0x8f8400ac, 0x8cac0038, 0xac8c0018, 0x8cab0034,
+0xac8b001c, 0xac80000c, 0xac800010, 0xa4800014,
+0xa4800016, 0xa4800020, 0xa4800022, 0xac800024,
+0x90a7003f, 0xa4870002, 0x12a00134, 0x24030001,
+0x53c00002, 0x90a2003d, 0x90a2003e, 0x24480001,
+0xa0880001, 0x8f9f00ac, 0xaff50008, 0x8f8300d0,
+0x24070034, 0x906600bc, 0x30c50002, 0x50a00001,
+0x24070030, 0x8f9200b8, 0x8f8a00bc, 0x906d00bc,
+0x924b0000, 0x2412c000, 0x32a50003, 0xa14b0000,
+0x8f8600b8, 0x8f8800bc, 0x24020004, 0x90c40001,
+0x451823, 0x30790003, 0xa1040001, 0x8f8a00bc,
+0x8f9f00b8, 0xf53821, 0x95580002, 0x97e90012,
+0xf93821, 0x3128824, 0x312f3fff, 0x22f7025,
+0xa54e0002, 0x91500002, 0x31a80004, 0x320c003f,
+0x358b0040, 0xa14b0002, 0x12a00002, 0x8f8500bc,
+0xe83821, 0x8f8e00d0, 0xaca70004, 0x240bffbf,
+0x8dcd007c, 0x2ea40001, 0x2403ffdf, 0xacad0008,
+0x90b0000d, 0x44140, 0x320c007f, 0xa0ac000d,
+0x8f8600bc, 0x90ca000d, 0x14b1024, 0xa0c2000d,
+0x8f8700bc, 0x90e5000d, 0xa3f824, 0x3e8c825,
+0xa0f9000d, 0x8f9100b8, 0x8f8d00bc, 0x8e380020,
+0xadb80010, 0x8e290024, 0xada90014, 0x8e2f0028,
+0xadaf0018, 0x8e2e002c, 0xe000d05, 0xadae001c,
+0x8fb0001c, 0x240c0002, 0x120c00ed, 0x8f9000d0,
+0x8fa3001c, 0x608821, 0x14600002, 0x60a821,
+0xa021, 0x56a0fe39, 0x291a023, 0x14882b,
+0x8fae0010, 0x96070010, 0x3c0a0020, 0x1d6f023,
+0x2c7c021, 0x33d2ffff, 0xa6180010, 0xafb20010,
+0xaf4a0030, 0x0, 0x96170010, 0x96130012,
+0x1277008e, 0x164180, 0x8e16000c, 0x8e0f0008,
+0x817c3, 0x2c82821, 0xa8582b, 0x1e2a821,
+0x2ab1821, 0xae05000c, 0xae030008, 0x8fb30010,
+0x13b82b, 0x2378024, 0x1200ff05, 0x8f9000d0,
+0xa000e4b, 0x0, 0x8e480038, 0xa6600008,
+0x240f0003, 0xae680000, 0x8e4c0034, 0xa260000a,
+0x8f9000b8, 0xae6c0004, 0x3c050080, 0x920b003f,
+0xa26f000c, 0x8e62000c, 0x3c11ff9f, 0xa26b000b,
+0x456825, 0x3623ffff, 0x3c04ffef, 0x8f8c00b8,
+0x1a33024, 0x349fffff, 0xdfc824, 0xae79000c,
+0x8d890014, 0x959e0012, 0x8f9800b0, 0xae690010,
+0x8d8e0014, 0xae600018, 0xae600020, 0xae6e0014,
+0xae600024, 0x8d870018, 0x33ce3fff, 0xe5180,
+0xae670028, 0x8d880008, 0x1589021, 0x33d00001,
+0xae680030, 0x8d91000c, 0x8f8d00ac, 0x1259c2,
+0x107b80, 0x16f2821, 0x24020002, 0xa665001c,
+0xa6600036, 0xae71002c, 0xa1a20000, 0x9763003c,
+0x8f9800ac, 0x3c044200, 0x307fffff, 0x3e43025,
+0xaf060004, 0x8f9900b8, 0x24070001, 0x240bc000,
+0x8f330038, 0x24060034, 0xaf130018, 0x8f290034,
+0xaf09001c, 0xaf00000c, 0xaf000010, 0xa7000014,
+0xa7000016, 0xa7000020, 0xa7000022, 0xaf000024,
+0xa7150002, 0xa3070001, 0x8f8a00ac, 0x8f9e00b8,
+0x8f8c00bc, 0xad550008, 0x93c80000, 0xa1880000,
+0x8f9200b8, 0x8f8f00bc, 0x92500001, 0xa1f00001,
+0x8f8400bc, 0x94910002, 0x22b2824, 0xae1025,
+0xa4820002, 0x908d0002, 0x31a3003f, 0xa0830002,
+0x8f8300d0, 0x8f8400bc, 0x907f00bc, 0x33f30002,
+0x52600001, 0x24060030, 0xac860004, 0x8c65007c,
+0x240dffbf, 0x2a08821, 0xac850008, 0x9082000d,
+0x3043007f, 0xa083000d, 0x8f8600bc, 0x90c4000d,
+0x8df824, 0xa0df000d, 0x8f8e00bc, 0x91d9000d,
+0x37290020, 0xa1c9000d, 0x8f9e00b8, 0x8f9300bc,
+0x8fc70020, 0xae670010, 0x8fd80024, 0xae780014,
+0x8fca0028, 0xae6a0018, 0x8fd2002c, 0xe000d05,
+0xae72001c, 0xa00104c, 0x8f9000d0, 0x96020014,
+0x8e040004, 0x3043ffff, 0x368c0, 0x8df821,
+0xaf5f003c, 0x8e190004, 0x8f46003c, 0x3264823,
+0x1920003c, 0x0, 0x8e050000, 0x24a20001,
+0x3c0b0010, 0x35750008, 0xaf420038, 0xaf550030,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x8f4c0000, 0x318f0020, 0x11e0fffd, 0x0,
+0x8f530400, 0x3c080020, 0xae130008, 0x8f570404,
+0xae17000c, 0xaf480030, 0x0, 0x3c060800,
+0x8cc60044, 0x24160001, 0x10d600bb, 0x0,
+0x96190012, 0x3c050800, 0x8ca50040, 0xb94821,
+0xa6090012, 0x960e0014, 0x25c70001, 0xa6070014,
+0x96180014, 0x3304ffff, 0x5486ff49, 0x8fb30010,
+0xa6000014, 0xe000e25, 0x30a5ffff, 0x3c040800,
+0x8c840024, 0x961f0012, 0x446823, 0x3ed3023,
+0xa6060012, 0xa001067, 0x8fb30010, 0xa0830001,
+0x8f8200ac, 0x24040001, 0xac440008, 0xa000fff,
+0x8f8300d0, 0x8e020000, 0xa0010f8, 0x3c0b0010,
+0x8f9f00c0, 0x8fb8001c, 0x920f00d0, 0x920b00d0,
+0x920d00d0, 0x31f100ff, 0x316e00ff, 0xe28c0,
+0x111140, 0x451821, 0x31a600ff, 0x3635021,
+0x6c940, 0x33f3821, 0x25490088, 0xaf8900ac,
+0xaf8700bc, 0xa1580088, 0x9768003c, 0x3c02021,
+0x8f9100ac, 0xe000ce5, 0x3110ffff, 0x26380,
+0x20c7825, 0x3c044200, 0x8f8c00b8, 0x1e45825,
+0xae2b0004, 0x8d910038, 0x8f8b00ac, 0x6821,
+0xd1100, 0xad710018, 0x8d8e0034, 0x3c087fff,
+0x3504ffff, 0xad6e001c, 0x9183003e, 0x8d65001c,
+0x8d790018, 0x33100, 0x38702, 0xa6c021,
+0x50f825, 0x306482b, 0x33f3821, 0xe95021,
+0xad78001c, 0xad6a0018, 0xad60000c, 0xad600010,
+0x918f003e, 0x24050005, 0x3c45024, 0xa56f0014,
+0x95910004, 0x3c02021, 0xa5710016, 0x918e003e,
+0xa56e0020, 0x958d0004, 0xa56d0022, 0xad600024,
+0x9190003f, 0xa5700002, 0x9182003d, 0x24430001,
+0xa1630001, 0x8f8600ac, 0x8f9f00bc, 0xacde0008,
+0xa3e50000, 0x8f9000bc, 0x8f9900b8, 0x2405ffbf,
+0x96070002, 0x97380012, 0x2477824, 0x33093fff,
+0x1e98825, 0xa6110002, 0x92120002, 0x2418ffdf,
+0x324e003f, 0x35cd0040, 0xa20d0002, 0x8f8600bc,
+0x8f8c00d0, 0x2412ffff, 0xacc00004, 0x8d8b007c,
+0x3c0c8000, 0xaccb0008, 0x90c2000d, 0x3043007f,
+0xa0c3000d, 0x8f8700bc, 0x90ff000d, 0x3e5c824,
+0xa0f9000d, 0x8f9100bc, 0x9229000d, 0x1387824,
+0xa22f000d, 0x8f9000bc, 0xae120010, 0xae150014,
+0x920e0018, 0x2415ff80, 0x2ae6825, 0xa20d0018,
+0x8f8500bc, 0x8f8300b8, 0x8cab0018, 0x16c1024,
+0x4a3025, 0xaca60018, 0x9068003e, 0xa0a8001c,
+0x8f9f00b8, 0x8f8700bc, 0x8f9800d0, 0x97f90004,
+0xa4f9001e, 0xe000203, 0x8f050084, 0x8f8600d0,
+0x27940, 0x24900, 0x90d200bc, 0x1e98821,
+0x402821, 0x32550002, 0x12a00003, 0x3d12021,
+0x2a880, 0x952021, 0x90cc00bc, 0x31920004,
+0x12400003, 0x33c90003, 0x54080, 0x882021,
+0x24190004, 0x8f9e00bc, 0x3293823, 0x30f80003,
+0x985021, 0xafca0004, 0xe000d05, 0xa6650038,
+0xa001047, 0x8f9000d0, 0x960a0012, 0x3c1e0800,
+0x8fde0024, 0x3ca9021, 0xa6120012, 0xa001067,
+0x8fb30010, 0x27bdffe0, 0x3c180800, 0x8f180050,
+0xafb00010, 0xafbf0018, 0xafb10014, 0xaf8400b0,
+0x93710074, 0x3047821, 0x2410ff80, 0x31ee007f,
+0x3225007f, 0x1f05824, 0x1da6821, 0x3c0c000a,
+0xa38500c4, 0x1ac2821, 0xaf4b0024, 0x94a90010,
+0x97680006, 0x90a60062, 0x803821, 0x24020030,
+0x1092023, 0x30c300f0, 0xaf8500d0, 0x10620019,
+0x3090ffff, 0x90ae0062, 0x240dfff0, 0x240a0050,
+0x1ae6024, 0x318b00ff, 0x116a002f, 0x0,
+0x16000007, 0x241f0c00, 0xaf5f0024, 0x8fb10014,
+0x8fbf0018, 0x8fb00010, 0x3e00008, 0x27bd0020,
+0xe000e2b, 0x2002021, 0x241f0c00, 0xaf5f0024,
+0x8fb10014, 0x8fbf0018, 0x8fb00010, 0x3e00008,
+0x27bd0020, 0x94a200e0, 0x94a400e2, 0x90bf0113,
+0x821826, 0x3079ffff, 0x33e700c0, 0x14e00009,
+0x2f310001, 0x16000038, 0x0, 0x5620ffe6,
+0x241f0c00, 0xe000d27, 0x0, 0xa0011f9,
+0x241f0c00, 0x1620ffde, 0x0, 0xe000d27,
+0x0, 0x1440ffdc, 0x241f0c00, 0x16000022,
+0x8f8300d0, 0x90690113, 0x3122003f, 0xa0620113,
+0xa0011f9, 0x241f0c00, 0x94af00d4, 0x8f8600d4,
+0xe02821, 0x24040005, 0xe000c6b, 0x31f0ffff,
+0x14400005, 0x24030003, 0x979100e6, 0x1821,
+0x2625ffff, 0xa78500e6, 0x8f5801b8, 0x700fffe,
+0x3c196013, 0xaf400180, 0x241f0c00, 0xaf500184,
+0x793825, 0x3c101000, 0xaf470188, 0x8fb10014,
+0xaf5001b8, 0xaf5f0024, 0x8fb00010, 0x8fbf0018,
+0x3e00008, 0x27bd0020, 0xe000e2b, 0x2002021,
+0x5040ffb5, 0x241f0c00, 0x8f8300d0, 0x90690113,
+0xa001222, 0x3122003f, 0xe000e2b, 0x2002021,
+0x1440ffad, 0x241f0c00, 0x12200007, 0x8f8300d0,
+0x90680113, 0x3106003f, 0x34c20040, 0xa0620113,
+0xa0011f9, 0x241f0c00, 0xe000d27, 0x0,
+0x5040ffa1, 0x241f0c00, 0x8f8300d0, 0x90680113,
+0x3106003f, 0xa001252, 0x34c20040, 0xaf9b00c8,
+0x3e00008, 0xaf8000ec, 0x3089ffff, 0x94042,
+0x2d020041, 0x92980, 0x14400002, 0x95040,
+0x24080040, 0x87940, 0x8c0c0, 0x1f85821,
+0x256701a8, 0xef7021, 0x25cc007f, 0x240dff80,
+0x18d1824, 0x653021, 0xca2821, 0x25640088,
+0x240a0088, 0x3c010800, 0xac2a004c, 0x3c010800,
+0xac240050, 0xaf8500d4, 0x3c010800, 0xac290060,
+0x3c010800, 0xac280064, 0x3c010800, 0xac270054,
+0x3c010800, 0xac230058, 0x3c010800, 0xac26005c,
+0x3e00008, 0x0, 0x308300ff, 0x30c6ffff,
+0x30e400ff, 0x8f4201b8, 0x440fffe, 0x34c00,
+0x1243825, 0x3c086000, 0xe82025, 0x3c031000,
+0xaf450180, 0xaf460184, 0xaf440188, 0x3e00008,
+0xaf4301b8, 0x8f86001c, 0x3c096012, 0x35270010,
+0x8ccb0004, 0x3c0c600e, 0x35850010, 0x316a0006,
+0x2d480001, 0xace800c4, 0x8cc40004, 0xaca43180,
+0x8cc20008, 0x94c30002, 0xaca23184, 0x3e00008,
+0xa78300e4, 0x3c030800, 0x8c630050, 0x8f8400e8,
+0x8f86001c, 0x2402ff80, 0x64c021, 0x302c824,
+0xaf590028, 0x8ccd0004, 0x3305007f, 0xba7821,
+0x3c0e000c, 0x1ee2821, 0xacad0058, 0x8cc80008,
+0xaf8500d0, 0x3c076012, 0xaca8005c, 0x8ccc0010,
+0x34e80010, 0xacac000c, 0x8ccb000c, 0xacab0008,
+0x94aa0014, 0x3c020800, 0x8c420044, 0x25490001,
+0xa4a90014, 0x94a40014, 0x3083ffff, 0x10620017,
+0x8f8400d0, 0x3c0a0800, 0x8d4a0040, 0xa4aa0012,
+0x8cce0018, 0xac8e0024, 0x8ccd0014, 0xac8d0020,
+0x8cc70018, 0xac87002c, 0x8ccc0014, 0x24060001,
+0xac8c0028, 0x8d0b00bc, 0x5166001a, 0x8d0200b4,
+0x8d0200b8, 0xa482003a, 0x948f003a, 0xa48f003c,
+0x948800d4, 0x3e00008, 0x3102ffff, 0x3c090800,
+0x8d290024, 0xa4a00014, 0x8f8400d0, 0xa4a90012,
+0x8cce0018, 0xac8e0024, 0x8ccd0014, 0xac8d0020,
+0x8cc70018, 0xac87002c, 0x8ccc0014, 0x24060001,
+0xac8c0028, 0x8d0b00bc, 0x5566ffea, 0x8d0200b8,
+0x8d0200b4, 0xa482003a, 0x948f003a, 0xa48f003c,
+0x948800d4, 0x3e00008, 0x3102ffff, 0x8f86001c,
+0x3c0c0800, 0x8d8c0050, 0x240bff80, 0x8ccd0008,
+0x3c03000c, 0xd51c0, 0x18a4021, 0x10b4824,
+0xaf8a00e8, 0xaf490028, 0x90c70007, 0x3105007f,
+0xba1021, 0x432821, 0x30e40004, 0x1080002f,
+0xaf8500d0, 0x90cf0007, 0x31ee0008, 0x11c0003c,
+0x0, 0x8cd9000c, 0x8cc40014, 0x324c02b,
+0x13000026, 0x0, 0x8cc2000c, 0xaca20064,
+0x8ccd0018, 0x2402fff8, 0xacad0068, 0x8ccc0010,
+0xacac0080, 0x8ccb000c, 0xacab0084, 0x8cca001c,
+0xacaa007c, 0x90a900bc, 0x1224024, 0xa0a800bc,
+0x90c30007, 0x30670008, 0x10e00004, 0x8f8500d0,
+0x90af00bc, 0x35ee0001, 0xa0ae00bc, 0x90d90007,
+0x33380001, 0x1300000f, 0x8f8400d0, 0x24070020,
+0x908200bc, 0x34490002, 0xa08900bc, 0x8f8400d0,
+0x90880062, 0x310300f0, 0x14670006, 0x240a0034,
+0xac8a00c0, 0xa001334, 0x0, 0xa00130e,
+0x8cc20014, 0x90cb0007, 0x31660002, 0x10c00005,
+0x0, 0x908d00bc, 0x35ac0004, 0xa08c00bc,
+0x8f8400d0, 0x90980113, 0x330f003f, 0xa08f0113,
+0x8f8e00d0, 0x95c500d4, 0x3e00008, 0x30a2ffff,
+0xaca00064, 0xa00130f, 0x0, 0x27bdffd8,
+0xafb00010, 0x8f90001c, 0xafbf0024, 0xafb40020,
+0xafb20018, 0xafb10014, 0xafb3001c, 0x9613000e,
+0x3c07600a, 0x3c146006, 0x3264ffff, 0x36930010,
+0xe001261, 0x34f40410, 0x8f8400d4, 0x3c11600e,
+0xe0009aa, 0x36310010, 0x920e0015, 0x3c070800,
+0x8ce70060, 0x3c126012, 0x31cd000f, 0xa38d00f0,
+0x8e0e0004, 0x8e0d0008, 0x96080012, 0x961f0010,
+0x9619001a, 0x9618001e, 0x960f001c, 0x310cffff,
+0x33ebffff, 0x332affff, 0x3309ffff, 0x31e6ffff,
+0x3c010800, 0xac2b0040, 0x3c010800, 0xac2c0024,
+0x3c010800, 0xac2a0044, 0xae293178, 0xae26317c,
+0x92020015, 0x96030016, 0x36520010, 0x304400ff,
+0x3065ffff, 0x3c060800, 0x8cc60064, 0xae243188,
+0xae4500b4, 0x92080014, 0x96190018, 0x241f0001,
+0x11fc004, 0x332fffff, 0x3c050800, 0x8ca50058,
+0xae5800b8, 0xae4f00bc, 0x920c0014, 0xaf8e00d8,
+0xaf8d00dc, 0x318b00ff, 0xae4b00c0, 0x920a0015,
+0xae670048, 0xae66004c, 0x314900ff, 0xae4900c8,
+0xae65007c, 0x3c030800, 0x8c630050, 0x3c040800,
+0x8c84004c, 0x3c080800, 0x8d080054, 0x3c020800,
+0x8c42005c, 0x8fbf0024, 0xae630080, 0x8fb00010,
+0xae830074, 0x8fb3001c, 0xae22319c, 0xae4200dc,
+0xae2731a0, 0xae2631a4, 0xae24318c, 0xae233190,
+0xae283194, 0xae253198, 0xae870050, 0xae860054,
+0xae850070, 0x8fb10014, 0xae4700e0, 0xae4600e4,
+0xae4400cc, 0xae4300d0, 0xae4800d4, 0xae4500d8,
+0x8fb40020, 0x8fb20018, 0x3e00008, 0x27bd0028,
+0x27bdffe0, 0xafb10014, 0xafbf0018, 0x24110001,
+0xe000854, 0xafb00010, 0x10510005, 0x978400e6,
+0x978300cc, 0x83102b, 0x14400008, 0x8f8500d4,
+0x24070002, 0x8fbf0018, 0x8fb10014, 0x8fb00010,
+0xe01021, 0x3e00008, 0x27bd0020, 0xe000c89,
+0x24040005, 0xaf8200e8, 0x1040fff6, 0x24070002,
+0xe000858, 0x8f90001c, 0x979f00e6, 0x8f9900e8,
+0x8f8d00c8, 0x27ef0001, 0x240e0050, 0xaf590020,
+0xa78f00e6, 0xa1ae0000, 0x3c0c0800, 0x8d8c0064,
+0x8f8600c8, 0x240a8000, 0xc5e00, 0xaccb0074,
+0xa4c00006, 0x94c9000a, 0x241fff80, 0x3c0d000c,
+0x12ac024, 0xa4d8000a, 0x90c8000a, 0x24182000,
+0x11f1825, 0xa0c3000a, 0x8f8700c8, 0xa0e00078,
+0x8f8500c8, 0x3821, 0xa0a00083, 0x3c020800,
+0x8c420050, 0x8f8400e8, 0x447821, 0x1ffc824,
+0xaf590028, 0x960b0002, 0x31ee007f, 0x1da6021,
+0x18d3021, 0xa4cb00d4, 0x960a0002, 0xaf8600d0,
+0x3c0e0004, 0x25492401, 0xa4c900e6, 0x8e080004,
+0xacc80004, 0x8e030008, 0xacc30000, 0xa4c00010,
+0xa4c00014, 0xa0c000d0, 0x8f8500d0, 0x2403ffbf,
+0xa0a000d1, 0x3c040800, 0x8c840064, 0x8f8200d0,
+0xa04400d2, 0x8e1f000c, 0x8f8a00d0, 0x978f00e4,
+0xad5f001c, 0x8e190010, 0x24100030, 0xad590018,
+0xa5400030, 0xa5510054, 0xa5510056, 0xa54f0016,
+0xad4e0068, 0xad580080, 0xad580084, 0x914d0062,
+0x31ac000f, 0x358b0010, 0xa14b0062, 0x8f8600d0,
+0x90c90063, 0x3128007f, 0xa0c80063, 0x8f8400d0,
+0x2406ffff, 0x90850063, 0xa31024, 0xa0820063,
+0x8f9100d0, 0xe01021, 0x923f00bc, 0x37f90001,
+0xa23900bc, 0x8f8a00d0, 0x938f00f0, 0xad580064,
+0xad5000c0, 0x914e00d3, 0xf6900, 0x31cc000f,
+0x18d5825, 0xa14b00d3, 0x8f8500d0, 0x8f8900dc,
+0xaca900e8, 0x8f8800d8, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x27bd0020, 0xaca800ec, 0xa4a600d6,
+0xa4a000e0, 0xa4a000e2, 0x3e00008, 0x0,
+0x27bdffe0, 0xafb00010, 0x8f90001c, 0xafb10014,
+0xafbf0018, 0x8e190004, 0x3c180800, 0x8f180050,
+0x240fff80, 0x1989c0, 0x2387021, 0x31cd007f,
+0x1cf6024, 0x1ba5021, 0x3c0b000c, 0xaf4c0028,
+0x14b4021, 0x950900d4, 0x950400d6, 0x8e070004,
+0x3131ffff, 0xaf8800d0, 0xe000922, 0x721c0,
+0x8e060004, 0x8f8300c8, 0x629c0, 0xaf450020,
+0x9064003e, 0x30820040, 0x14400006, 0x8f8400d0,
+0x341fffff, 0x948300d6, 0x3062ffff, 0x145f0004,
+0x0, 0x948400d6, 0xe0008b7, 0x3084ffff,
+0x8e050004, 0x2203021, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x24040022, 0x3821, 0x529c0,
+0xa001285, 0x27bd0020, 0x27bdffe0, 0xafb10014,
+0x3091ffff, 0xafb00010, 0xafbf0018, 0x1220001d,
+0x8021, 0x8f86001c, 0x8cc50000, 0x24030006,
+0x53f02, 0x51402, 0x30e40007, 0x14830015,
+0x304500ff, 0x2ca80006, 0x1100004d, 0x55880,
+0x3c0c0800, 0x258c57e8, 0x16c5021, 0x8d490000,
+0x1200008, 0x0, 0x8f8e00ec, 0x240d0001,
+0x11cd0059, 0x0, 0x260b0001, 0x3170ffff,
+0x24ca0020, 0x211202b, 0x1403021, 0x1480ffe6,
+0xaf8a001c, 0x2001021, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x3e00008, 0x27bd0020, 0x938700ce,
+0x14e00038, 0x24040014, 0xe001346, 0x0,
+0x8f86001c, 0x24020001, 0xa00148d, 0xaf8200ec,
+0x8f8900ec, 0x24080002, 0x1128003b, 0x24040013,
+0x2821, 0x3021, 0x24070001, 0xe001285,
+0x0, 0xa00148d, 0x8f86001c, 0x8f8700ec,
+0x24050002, 0x14e5fff6, 0x24040012, 0xe0012f2,
+0x0, 0x8f8500e8, 0x403021, 0x24040012,
+0xe001285, 0x3821, 0xa00148d, 0x8f86001c,
+0x8f8300ec, 0x241f0003, 0x147fffd0, 0x260b0001,
+0xe0012a4, 0x0, 0x8f8500e8, 0x403021,
+0x24020002, 0x24040010, 0x3821, 0xaf8200ec,
+0xe001285, 0x0, 0xa00148d, 0x8f86001c,
+0x8f8f00ec, 0x24060002, 0x11e6000b, 0x0,
+0x24040010, 0x2821, 0x3021, 0xa0014aa,
+0x24070001, 0x2821, 0xe001285, 0x3021,
+0xa00148d, 0x8f86001c, 0xe0013b3, 0x0,
+0x14400012, 0x8f99001c, 0x8f86001c, 0x24020003,
+0xa00148d, 0xaf8200ec, 0xe00143f, 0x0,
+0xa00148d, 0x8f86001c, 0xe001294, 0x0,
+0x24020002, 0x24040014, 0x2821, 0x3021,
+0x3821, 0xa0014c7, 0xaf8200ec, 0x403821,
+0x24040010, 0x97380002, 0x2821, 0xe001285,
+0x3306ffff, 0xa00148d, 0x8f86001c, 0x8f8400c8,
+0x3c077fff, 0x34e6ffff, 0x8c850074, 0x24020001,
+0xa61824, 0xac830074, 0x3e00008, 0xa0820005,
+0x10a00036, 0x2ca20080, 0x274a0400, 0x3c0b0005,
+0x24090080, 0x10400007, 0x24080080, 0x30a6000f,
+0xc54021, 0x2d030081, 0x14600002, 0xa04821,
+0x24080080, 0xaf4b0030, 0x0, 0x0,
+0x0, 0x11000009, 0x3821, 0x1403021,
+0x8c8d0000, 0x24e70004, 0xe8602b, 0xaccd0000,
+0x24840004, 0x1580fffa, 0x24c60004, 0x0,
+0x0, 0x0, 0x3c0e0006, 0x10e3825,
+0xaf470030, 0x0, 0x0, 0x0,
+0x8f4f0000, 0x31e80010, 0x1100fffd, 0x0,
+0x8f42003c, 0x8f43003c, 0x49c821, 0x323c02b,
+0x13000004, 0x0, 0x8f4c0038, 0x25860001,
+0xaf460038, 0x8f47003c, 0xa92823, 0xe96821,
+0xaf4d003c, 0x14a0ffce, 0x2ca20080, 0x3e00008,
+0x0, 0x27bdffd0, 0x3c020002, 0xafb10014,
+0x3c11000c, 0xaf450038, 0xafb3001c, 0xaf46003c,
+0x809821, 0xaf420030, 0x24050088, 0xaf440028,
+0x3512021, 0xafbf0028, 0xafb50024, 0xafb40020,
+0xafb20018, 0xe0014ff, 0xafb00010, 0x3c1f0800,
+0x8fff004c, 0x3c180800, 0x8f180064, 0x2410ff80,
+0x3f3a821, 0x32b9007f, 0x2b07824, 0x18a0c0,
+0x33a7021, 0x189140, 0x1d12021, 0xaf4f0028,
+0xe0014ff, 0x2542821, 0x3c0d0800, 0x8dad0050,
+0x24050120, 0x1b35821, 0x316c007f, 0x1705024,
+0x19a4821, 0x1312021, 0xe0014ff, 0xaf4a0028,
+0x3c080800, 0x8d080054, 0x3c050800, 0x8ca50064,
+0x1133821, 0x30e6007f, 0xf01824, 0xda2021,
+0x912021, 0xaf430028, 0xe0014ff, 0x52940,
+0x3c020800, 0x8c420058, 0x3c100800, 0x8e100060,
+0x1200001c, 0x538821, 0x2415ff80, 0xa001582,
+0x3c14000c, 0x3226007f, 0x2351824, 0xda2021,
+0x2402821, 0xaf430028, 0x942021, 0xe0014ff,
+0x2610ffc0, 0x1200000f, 0x2328821, 0x2e050041,
+0x10a0fff4, 0x24121000, 0x3226007f, 0x109180,
+0x2351824, 0xda2021, 0x2402821, 0xaf430028,
+0x942021, 0xe0014ff, 0x8021, 0x1600fff3,
+0x2328821, 0x3c0b0800, 0x8d6b005c, 0x240aff80,
+0x24050002, 0x1734021, 0x10a4824, 0xaf490028,
+0x3c040800, 0x94840062, 0x3110007f, 0x21a8821,
+0x3c07000c, 0xe000cb9, 0x2279821, 0x402821,
+0x2602021, 0x8fbf0028, 0x8fb50024, 0x8fb40020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0xa0014ff, 0x27bd0030, 0x8f83001c, 0x8c620004,
+0x10400003, 0x0, 0x3e00008, 0x0,
+0x8c640010, 0x8c650008, 0xa001538, 0x8c66000c,
+0x0 };
+u32 bce_CP_b06FwData[(0x84/4) + 1] = {
+0x0,
+0x1b, 0xf, 0xa, 0x8,
+0x6, 0x5, 0x5, 0x4,
+0x4, 0x3, 0x3, 0x3,
+0x3, 0x3, 0x2, 0x2,
+0x2, 0x2, 0x2, 0x2,
+0x2, 0x2, 0x2, 0x2,
+0x2, 0x2, 0x2, 0x2,
+0x2, 0x1, 0x1, 0x1,
+0x0 };
+u32 bce_CP_b06FwRodata[(0x134/4) + 1] = {
+0x8000f30, 0x8000d88, 0x8000fc4,
+0x800106c, 0x8000f58, 0x8000f98, 0x80011a4,
+0x8000da4, 0x80011c8, 0x8000df4, 0x8001498,
+0x8001440, 0x8000da4, 0x8000da4, 0x8000da4,
+0x8001254, 0x8001254, 0x8000da4, 0x8000da4,
+0x80016e0, 0x8000da4, 0x8000da4, 0x8000da4,
+0x8000da4, 0x80013d4, 0x8000da4, 0x8000da4,
+0x8000da4, 0x8000da4, 0x8000da4, 0x8000da4,
+0x8000da4, 0x8000da4, 0x8000da4, 0x8000da4,
+0x8000da4, 0x8000da4, 0x8000da4, 0x8000da4,
+0x8000fb8, 0x8000da4, 0x8000da4, 0x8001690,
+0x8000da4, 0x8000da4, 0x8000da4, 0x8000da4,
+0x8000da4, 0x8000da4, 0x8000da4, 0x8000da4,
+0x8000da4, 0x8000da4, 0x8000da4, 0x8000da4,
+0x8000da4, 0x8000da4, 0x8000da4, 0x8000da4,
+0x8000da4, 0x80015bc, 0x8000da4, 0x8000da4,
+0x8001348, 0x80012b8, 0x8002e50, 0x8002e58,
+0x8002e20, 0x8002e2c, 0x8002e38, 0x8002e44,
+0x800532c, 0x80052ec, 0x80052b8, 0x800528c,
+0x8005268, 0x8005224, 0x0 };
+u32 bce_CP_b06FwBss[(0x5d8/4) + 1] = { 0x0 };
+u32 bce_CP_b06FwSbss[(0xf1/4) + 1] = { 0x0 };
+u32 bce_CP_b06FwSdata[(0x0/4) + 1] = { 0x0 };
+
+
+u32 bce_rv2p_proc1[] = {
+ 0x00000010, 0xb1800002,
+ 0x0000001f, 0x01030100,
+ 0x00000008, 0xac000001,
+ 0x00000000, 0x05000000,
+ 0x0000000c, 0x2f800001,
+ 0x00000000, 0x2b000000,
+ 0x00000000, 0x2b800000,
+ 0x00000010, 0x203f0063,
+ 0x00000010, 0x213f0003,
+ 0x00000010, 0x20bf0032,
+ 0x00000018, 0x8000fffd,
+ 0x00000010, 0xb1b8b00d,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x03d80000,
+ 0x00000000, 0x2c380000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x80000075,
+ 0x00000018, 0x8000010b,
+ 0x00000008, 0x02000002,
+ 0x0000000f, 0x42e0001c,
+ 0x00000010, 0x91840a11,
+ 0x00000010, 0x2c62000b,
+ 0x00000018, 0x8000001e,
+ 0x00000008, 0x02000002,
+ 0x0000000f, 0x42e0001c,
+ 0x00000010, 0x91840a18,
+ 0x00000008, 0x2c8000b1,
+ 0x00000008, 0x2d000009,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800107,
+ 0x00000018, 0x8000006f,
+ 0x00000018, 0x80000015,
+ 0x00000008, 0xb1000001,
+ 0x00000008, 0x2c8000b0,
+ 0x00000008, 0x2d000008,
+ 0x00000008, 0x2d800001,
+ 0x00000018, 0x80000069,
+ 0x0000000b, 0x2fdf0002,
+ 0x0000000c, 0x1f800002,
+ 0x00000000, 0x2c070000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffdc,
+ 0x0000000b, 0x2fdf0002,
+ 0x0000000c, 0x1f800000,
+ 0x00000000, 0x2c070000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffd6,
+ 0x0000000c, 0x1f800002,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffd3,
+ 0x0000000c, 0x29800002,
+ 0x0000000c, 0x1f800002,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a000005,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ffcd,
+ 0x00000008, 0x0224003c,
+ 0x00000018, 0x00040000,
+ 0x00000018, 0x8000001c,
+ 0x00000018, 0x8000001e,
+ 0x00000018, 0x80000052,
+ 0x00000018, 0x8000009e,
+ 0x00000018, 0x8000009d,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x800000df,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000015,
+ 0x00000018, 0x8000001b,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x800000b4,
+ 0x00000018, 0x8000002e,
+ 0x00000018, 0x800000df,
+ 0x00000018, 0x8000010a,
+ 0x00000018, 0x800000d5,
+ 0x00000018, 0x8000012e,
+ 0x00000018, 0x8000003b,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000071,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffac,
+ 0x00000010, 0x91d40000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a000002,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffa6,
+ 0x00000010, 0x91d40000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x29420000,
+ 0x00000008, 0x2a000002,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ff9f,
+ 0x00000018, 0x8000ff9e,
+ 0x00000010, 0xb1bcb00a,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x03d80000,
+ 0x00000000, 0x2c3c0000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x80000016,
+ 0x00000018, 0x800000ac,
+ 0x00000010, 0x2c6201ba,
+ 0x00000018, 0x80000005,
+ 0x00000008, 0x2c8000b1,
+ 0x00000008, 0x2d000009,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800107,
+ 0x0000000c, 0x29800000,
+ 0x0000000c, 0x1f800000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a000006,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ff89,
+ 0x00000010, 0x91d40000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a00000b,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ff83,
+ 0x00000018, 0x00020000,
+ 0x00000000, 0x06820000,
+ 0x00000010, 0xb18a0006,
+ 0x00000000, 0x860c1400,
+ 0x00000010, 0xb18c0004,
+ 0x00000000, 0x05000000,
+ 0x00000008, 0x2a000001,
+ 0x00000010, 0x91d40000,
+ 0x00000018, 0x000d0000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x000a0000,
+ 0x00000010, 0xb1a0b013,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c200000,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000ffee,
+ 0x00000008, 0x2d80011c,
+ 0x00000010, 0x001f0000,
+ 0x00000010, 0x91de0000,
+ 0x0000000f, 0x47600008,
+ 0x0000000f, 0x060e0001,
+ 0x00000000, 0x0f580000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0d610000,
+ 0x00000018, 0x80000013,
+ 0x0000000f, 0x47600008,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d80011c,
+ 0x0000000f, 0x060e0001,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x0f580000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0d610000,
+ 0x00000000, 0x02620000,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x31040000,
+ 0x00000000, 0x309a0000,
+ 0x00000000, 0x0c961800,
+ 0x00000009, 0x0c99ffff,
+ 0x00000004, 0xcc993400,
+ 0x00000010, 0xb1963202,
+ 0x00000008, 0x0f800000,
+ 0x0000000c, 0x29800001,
+ 0x00000010, 0x00220002,
+ 0x0000000c, 0x29520001,
+ 0x0000000c, 0x29520000,
+ 0x00000008, 0x0200000e,
+ 0x00000008, 0x0280001a,
+ 0x00000010, 0xb1c40a02,
+ 0x00000008, 0x02000003,
+ 0x00000008, 0x22000001,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x2adf0000,
+ 0x00000000, 0x2a000800,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ff3f,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2a000001,
+ 0x00000000, 0x2c200000,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d80011c,
+ 0x00000010, 0x91d40000,
+ 0x00000010, 0x91de0000,
+ 0x00000008, 0x2c800006,
+ 0x00000008, 0x2d000006,
+ 0x00000000, 0x30800000,
+ 0x00000000, 0x31000000,
+ 0x00000008, 0x2d800006,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a000010,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ff2a,
+ 0x00000010, 0x91a0b009,
+ 0x00000008, 0x2c8000b1,
+ 0x00000008, 0x2d000009,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800107,
+ 0x00000018, 0x8000ffab,
+ 0x00000018, 0x80000010,
+ 0x00000008, 0xac000001,
+ 0x00000018, 0x8000000b,
+ 0x00000000, 0x0380b000,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c004000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000ff9a,
+ 0x00000018, 0x80000030,
+ 0x00000018, 0x80000006,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c000e00,
+ 0x00000008, 0x2a000007,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ff14,
+ 0x00000000, 0x06820000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x0ce70007,
+ 0x00000009, 0x0562ffff,
+ 0x00000010, 0xba6c1405,
+ 0x00000000, 0x2adf0000,
+ 0x00000000, 0x21000000,
+ 0x00000008, 0x2a000005,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2c8000b0,
+ 0x00000008, 0x2d000008,
+ 0x0000000c, 0x31620018,
+ 0x00000008, 0x2d800001,
+ 0x00000018, 0x8000ff8c,
+ 0x00000018, 0x000d0000,
+ 0x00000010, 0xb1a0b00e,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x03d80000,
+ 0x00000000, 0x2c200000,
+ 0x00000010, 0x91d40000,
+ 0x00000018, 0x80000014,
+ 0x00000010, 0x2c620002,
+ 0x00000018, 0x8000000b,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c070000,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000fef6,
+ 0x00000008, 0x2c8000b1,
+ 0x00000008, 0x2d000009,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800107,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a00000a,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000feeb,
+ 0x00000000, 0x05020000,
+ 0x00000008, 0x2c8000b0,
+ 0x00000008, 0x2d000008,
+ 0x00000008, 0x2d800150,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x205f0000,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d800108,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x000a0000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x0600aaaa,
+ 0x00000018, 0x8000ff5b,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a000009,
+ 0x00000008, 0x0500aaaa,
+ 0x00000018, 0x8000fed7,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000ff53,
+ 0x00000010, 0x91a03c02,
+ 0x00000010, 0xb1e66207,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c310000,
+ 0x00000009, 0x2cb1007f,
+ 0x00000008, 0x2cd90000,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d80010d,
+ 0x00000010, 0xb1a80006,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c200000,
+ 0x00000000, 0x2ca70000,
+ 0x00000008, 0x2d000010,
+ 0x00000008, 0x2d800108,
+ 0x00000018, 0x8000ff4c,
+ 0x00000010, 0xb1a60010,
+ 0x00000010, 0x001f0000,
+ 0x0000000f, 0x0f300007,
+ 0x00000000, 0x0a600000,
+ 0x00000000, 0x0ae10000,
+ 0x0000000f, 0x4b620008,
+ 0x00000009, 0x0b1600ff,
+ 0x00000000, 0x0d620000,
+ 0x00000009, 0x0d1a00ff,
+ 0x00000010, 0x07300003,
+ 0x0000000c, 0x0d1a0008,
+ 0x0000000c, 0x0b160008,
+ 0x0000000f, 0x4ce30018,
+ 0x00000000, 0x0c992c00,
+ 0x00000004, 0xcc993400,
+ 0x00000008, 0x0f800000,
+ 0x0000000c, 0x29800001,
+ 0x00000000, 0x33310000,
+ 0x00000008, 0x22000016,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a00000c,
+ 0x00000010, 0x009f0000,
+ 0x00000000, 0x0f200000,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000feab,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x0600aaaa,
+ 0x00000018, 0x8000ff27,
+ 0x0000000f, 0x47220008,
+ 0x00000009, 0x070e000f,
+ 0x00000008, 0x070e0008,
+ 0x00000008, 0x02800001,
+ 0x00000007, 0x02851c00,
+ 0x00000008, 0x82850001,
+ 0x00000000, 0x02854c00,
+ 0x00000007, 0x42851c00,
+ 0x00000003, 0xc3aa5200,
+ 0x00000000, 0x03b10e00,
+ 0x00000007, 0x4b071c00,
+ 0x0000000f, 0x0f300007,
+ 0x0000000f, 0x0a960003,
+ 0x00000000, 0x0a955c00,
+ 0x00000000, 0x4a005a00,
+ 0x00000000, 0x0c960a00,
+ 0x00000009, 0x0c99ffff,
+ 0x00000008, 0x0d00ffff,
+ 0x00000010, 0xb1963202,
+ 0x00000008, 0x0f800005,
+ 0x00000010, 0xb1a80008,
+ 0x00000010, 0x205f0000,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c200000,
+ 0x00000000, 0x2ca70000,
+ 0x00000008, 0x2d000010,
+ 0x00000008, 0x2d800108,
+ 0x00000018, 0x8000ff13,
+ 0x0000000c, 0x29800001,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a00000d,
+ 0x00000008, 0x0500aaaa,
+ 0x00000018, 0x8000fe85,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000ff01,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a000007,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000fe7d,
+ 0x00000008, 0x03050004,
+ 0x00000006, 0x83040c00,
+ 0x00000008, 0x02850200,
+ 0x00000000, 0x86050c00,
+ 0x00000001, 0x860c0e00,
+ 0x00000008, 0x02040004,
+ 0x00000000, 0x02041800,
+ 0x00000000, 0x83871800,
+ 0x00000018, 0x00020000,
+};
+
+
+u32 bce_rv2p_proc2[] = {
+ 0x00000010, 0xb1800004,
+ 0x0000001f, 0x01030100,
+ 0x00000008, 0x050000ff,
+ 0x00000018, 0x00020000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0xb1d40000,
+ 0x0000000c, 0x29800001,
+ 0x00000008, 0x02540008,
+ 0x00000018, 0x00040000,
+ 0x00000018, 0x80000010,
+ 0x00000018, 0x80000011,
+ 0x00000018, 0x8000003a,
+ 0x00000018, 0x80000104,
+ 0x00000018, 0x80000103,
+ 0x00000018, 0x80000102,
+ 0x00000018, 0x80000102,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000114,
+ 0x00000018, 0x800000fe,
+ 0x00000018, 0x8000000c,
+ 0x00000018, 0x80000118,
+ 0x00000018, 0x8000016a,
+ 0x00000018, 0x80000067,
+ 0x00000018, 0x800000da,
+ 0x00000018, 0x800000e7,
+ 0x00000000, 0x2a000000,
+ 0x00000018, 0x8000ffeb,
+ 0x00000000, 0x2a000000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000ffe7,
+ 0x00000000, 0x2a000000,
+ 0x00000018, 0x8000ffe5,
+ 0x00000018, 0x00020000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91963421,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c1e0000,
+ 0x00000008, 0x2c800006,
+ 0x00000008, 0x2d000006,
+ 0x00000008, 0x2d800102,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0d610000,
+ 0x00000018, 0x000a0000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91963416,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x09d80000,
+ 0x00000000, 0x2c1e0000,
+ 0x00000008, 0x2c8000b2,
+ 0x00000008, 0x2d00000a,
+ 0x00000008, 0x2d800102,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0d620000,
+ 0x00000000, 0x2c130000,
+ 0x00000018, 0x000a0000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91963409,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c1e0000,
+ 0x00000008, 0x2c800006,
+ 0x00000008, 0x2d00006a,
+ 0x00000008, 0x2d800102,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0d7a0000,
+ 0x00000018, 0x000a0000,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x2f80aa00,
+ 0x00000000, 0x2a000000,
+ 0x00000000, 0x0d610000,
+ 0x00000000, 0x03620000,
+ 0x00000000, 0x2c400000,
+ 0x00000000, 0x02638c00,
+ 0x00000000, 0x26460000,
+ 0x00000008, 0x02040012,
+ 0x00000010, 0xb9060827,
+ 0x00000000, 0x0f580000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0c000000,
+ 0x00000000, 0x0b800000,
+ 0x00000008, 0x0cc60012,
+ 0x00000018, 0x8000ffcb,
+ 0x00000008, 0x0f800003,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x009f0000,
+ 0x00000008, 0x27110012,
+ 0x00000000, 0x66900000,
+ 0x00000008, 0xa31b0012,
+ 0x00000010, 0xb1980003,
+ 0x00000010, 0x001f0000,
+ 0x00000008, 0x0f800004,
+ 0x00000008, 0x22000003,
+ 0x00000008, 0x2c80000c,
+ 0x00000008, 0x2d00000c,
+ 0x00000010, 0x009f0000,
+ 0x00000000, 0x25960000,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x06660000,
+ 0x00000000, 0x86611800,
+ 0x00000009, 0x0260000f,
+ 0x0000000f, 0x02040002,
+ 0x00000010, 0xb60c0803,
+ 0x0000000c, 0x1fbf0000,
+ 0x0000000c, 0x33660010,
+ 0x00000000, 0x32140000,
+ 0x00000000, 0x32950000,
+ 0x00000005, 0x73662c00,
+ 0x00000000, 0x31e32e00,
+ 0x00000008, 0x2d800010,
+ 0x00000010, 0x20530000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x8000ff90,
+ 0x00000000, 0x23000000,
+ 0x00000009, 0x25e6ffff,
+ 0x00000008, 0x2200000b,
+ 0x0000000c, 0x69520000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000ff89,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x2f80aa00,
+ 0x00000000, 0x2a000000,
+ 0x00000000, 0x2c400000,
+ 0x00000008, 0x2c800040,
+ 0x00000008, 0x2d000020,
+ 0x00000008, 0x2d80011c,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x0000000f, 0x42ea0010,
+ 0x00000010, 0x004f0004,
+ 0x00000010, 0xb7469200,
+ 0x00000008, 0x02490012,
+ 0x00000010, 0xb5840a00,
+ 0x00000000, 0x0d610000,
+ 0x00000010, 0xba66345a,
+ 0x00000000, 0x03620000,
+ 0x00000010, 0xb8630c58,
+ 0x00000008, 0x83050012,
+ 0x00000010, 0x004f0002,
+ 0x00000000, 0x03490000,
+ 0x00000001, 0x83068c00,
+ 0x00000000, 0x83c60c00,
+ 0x00000010, 0xb1870010,
+ 0x00000000, 0x0b6e0000,
+ 0x00000018, 0x8000ff6b,
+ 0x00000001, 0x06691400,
+ 0x00000010, 0x918c0002,
+ 0x00000008, 0xb4e90001,
+ 0x00000010, 0xb1e92c4c,
+ 0x00000000, 0x86692c00,
+ 0x00000000, 0x02000000,
+ 0x00000009, 0x02eaffff,
+ 0x00000010, 0x000c0002,
+ 0x00000000, 0x02040a00,
+ 0x0000000f, 0x460c0001,
+ 0x0000000f, 0x02850001,
+ 0x00000010, 0x918c01fc,
+ 0x00000010, 0xb7040e43,
+ 0x00000000, 0x2c400000,
+ 0x00000000, 0x0f400000,
+ 0x00000000, 0x0d610000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0c000000,
+ 0x00000000, 0x0b800000,
+ 0x00000008, 0x0c860012,
+ 0x00000008, 0x0f800003,
+ 0x0000000c, 0x29520000,
+ 0x00000010, 0x009f0000,
+ 0x00000008, 0x27110012,
+ 0x00000000, 0x66900000,
+ 0x00000000, 0x26460000,
+ 0x00000000, 0x23060000,
+ 0x00000010, 0xb1980005,
+ 0x00000010, 0x001f0000,
+ 0x00000008, 0x0f800004,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x32140000,
+ 0x00000000, 0x32950000,
+ 0x00000000, 0x31e32e00,
+ 0x00000005, 0x73662c00,
+ 0x00000000, 0x25960000,
+ 0x00000010, 0xb1870016,
+ 0x0000000c, 0x29800000,
+ 0x0000000f, 0x0f6b0007,
+ 0x00000000, 0x0d690000,
+ 0x00000000, 0x0a6c0000,
+ 0x00000000, 0x0aed0000,
+ 0x00000000, 0x0b6e0000,
+ 0x00000000, 0x0b800000,
+ 0x00000000, 0x0c870000,
+ 0x00000008, 0x0f800003,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x69520001,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x22c58c00,
+ 0x00000000, 0x231b0000,
+ 0x00000000, 0x27110000,
+ 0x00000000, 0x26900000,
+ 0x00000010, 0xb8170e03,
+ 0x0000000c, 0x29800000,
+ 0x00000018, 0x8000fff6,
+ 0x00000010, 0xb1980002,
+ 0x00000008, 0x0f800004,
+ 0x00000008, 0x2200001a,
+ 0x00000008, 0x2c80000c,
+ 0x00000008, 0x2d00000c,
+ 0x00000008, 0x2d800010,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x0d6e0000,
+ 0x00000003, 0xe7cf3400,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0xb1870007,
+ 0x00000000, 0x36140000,
+ 0x00000000, 0x36950000,
+ 0x00000000, 0x37160000,
+ 0x00000008, 0x2c800050,
+ 0x00000008, 0x2d000030,
+ 0x00000008, 0x2d80000c,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000ff1f,
+ 0x00000000, 0x26460000,
+ 0x00000000, 0x23000000,
+ 0x00000009, 0x25e6ffff,
+ 0x00000000, 0x0b6e0000,
+ 0x00000003, 0xe7cf2c00,
+ 0x00000008, 0x2200001b,
+ 0x0000000c, 0x69520000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000ff15,
+ 0x00000000, 0x2fd50000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0x003f000b,
+ 0x00000000, 0x06660000,
+ 0x00000000, 0x86611800,
+ 0x00000009, 0x026000f0,
+ 0x00000010, 0xb70c0807,
+ 0x0000000c, 0x73660010,
+ 0x00000008, 0x2c800018,
+ 0x00000008, 0x2d000018,
+ 0x00000008, 0x2d800002,
+ 0x0000000c, 0x5fbf0000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x8000ff07,
+ 0x00000000, 0x2fd50000,
+ 0x00000000, 0x2a000000,
+ 0x00000000, 0x2c400000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x91de0000,
+ 0x00000008, 0x2c80001a,
+ 0x00000008, 0x2d00001a,
+ 0x00000000, 0x33000000,
+ 0x00000008, 0x2d800002,
+ 0x00000000, 0x31800000,
+ 0x00000010, 0x91de0000,
+ 0x00000008, 0x2c80000c,
+ 0x00000008, 0x2d00000c,
+ 0x00000008, 0x2d800004,
+ 0x00000010, 0x20530000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x8000fef6,
+ 0x00000018, 0x8000fef5,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x0f008000,
+ 0x00000008, 0x0f800007,
+ 0x00000018, 0x80000014,
+ 0x00000000, 0x05020000,
+ 0x00000008, 0x22000009,
+ 0x00000000, 0x286d0000,
+ 0x00000000, 0x29000000,
+ 0x0000000f, 0x65680010,
+ 0x00000003, 0xf66c9400,
+ 0x00000010, 0xb972a004,
+ 0x0000000c, 0x73e70019,
+ 0x0000000c, 0x21420004,
+ 0x00000000, 0x3bf60000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000008, 0x22000008,
+ 0x0000000c, 0x61420004,
+ 0x00000018, 0x000a0000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0x001f0000,
+ 0x0000000f, 0x0f470007,
+ 0x00000008, 0x0f800008,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000feda,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2fd50000,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x33510000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0xb1c60023,
+ 0x0000000f, 0x0f500007,
+ 0x00000000, 0x0a600000,
+ 0x00000000, 0x0ae10000,
+ 0x0000000f, 0x4b620008,
+ 0x00000009, 0x0b1600ff,
+ 0x0000000f, 0x4c620010,
+ 0x00000000, 0x0d620000,
+ 0x00000009, 0x0d1a00ff,
+ 0x00000010, 0x07500003,
+ 0x0000000c, 0x0d1a0008,
+ 0x0000000c, 0x0b160008,
+ 0x00000000, 0x0cc60000,
+ 0x00000000, 0x0b800000,
+ 0x00000000, 0x06980000,
+ 0x00000008, 0x0f800003,
+ 0x00000010, 0x06c20004,
+ 0x0000000c, 0x29000002,
+ 0x00000010, 0x26420002,
+ 0x0000000c, 0x29520003,
+ 0x00000008, 0x22000001,
+ 0x00000010, 0x009f0000,
+ 0x00000000, 0x231b0000,
+ 0x00000000, 0x27111a00,
+ 0x00000000, 0x66900000,
+ 0x0000000c, 0x29520000,
+ 0x00000010, 0xb1973209,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x06980000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520003,
+ 0x00000000, 0x22c58c00,
+ 0x00000010, 0x001f0000,
+ 0x00000008, 0x0f800003,
+ 0x00000018, 0x8000fff3,
+ 0x00000010, 0xb1c80013,
+ 0x00000010, 0xb1c60003,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520000,
+ 0x0000000c, 0x29520003,
+ 0x00000010, 0x06c20002,
+ 0x0000000c, 0x29520002,
+ 0x00000000, 0x22c58c00,
+ 0x00000000, 0x27650000,
+ 0x00000000, 0x26e40000,
+ 0x00000008, 0x22000016,
+ 0x00000010, 0xb1c60003,
+ 0x00000000, 0x23480000,
+ 0x00000010, 0xb1800005,
+ 0x00000000, 0x23480000,
+ 0x0000000c, 0x29800000,
+ 0x0000000f, 0x0f500007,
+ 0x00000018, 0x80000012,
+ 0x00000008, 0x22000016,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x30140000,
+ 0x00000000, 0x30950000,
+ 0x00000010, 0x07500003,
+ 0x00000009, 0x0b1600ff,
+ 0x00000009, 0x0d1a00ff,
+ 0x0000000f, 0x31160008,
+ 0x00000000, 0x31623400,
+ 0x00000003, 0xf1623000,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c510000,
+ 0x00000009, 0x2cd1007f,
+ 0x00000008, 0x2cd90000,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d80000c,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0x05c20003,
+ 0x00000000, 0x33000000,
+ 0x00000008, 0x0f800007,
+ 0x00000010, 0x20530000,
+ 0x00000010, 0x009f0000,
+ 0x00000018, 0x8000fe87,
+ 0x00000000, 0x2fd50000,
+ 0x00000000, 0x2a000000,
+ 0x0000000f, 0x0f500007,
+ 0x00000010, 0xb1c6002d,
+ 0x0000000f, 0x47420008,
+ 0x00000009, 0x070e000f,
+ 0x00000008, 0x070e0008,
+ 0x00000010, 0x001f0000,
+ 0x00000008, 0x09000001,
+ 0x00000007, 0x09121c00,
+ 0x00000003, 0xcbca9200,
+ 0x00000000, 0x0b97a200,
+ 0x00000007, 0x42171c00,
+ 0x00000000, 0x0b040000,
+ 0x0000000f, 0x0a840003,
+ 0x00000000, 0x0a959c00,
+ 0x00000000, 0x4a009a00,
+ 0x00000008, 0x82120001,
+ 0x00000001, 0x0c170800,
+ 0x00000000, 0x0c978c00,
+ 0x00000000, 0x02180000,
+ 0x00000008, 0x0d00ffff,
+ 0x00000008, 0x0f800006,
+ 0x0000000c, 0x29000000,
+ 0x00000010, 0x06c20004,
+ 0x0000000c, 0x29520002,
+ 0x00000010, 0x26420002,
+ 0x0000000c, 0x29520003,
+ 0x00000008, 0x22000001,
+ 0x00000010, 0x009f0000,
+ 0x00000010, 0xb197320c,
+ 0x00000000, 0x231b0000,
+ 0x00000000, 0x27110800,
+ 0x00000000, 0x66900000,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x02180000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520003,
+ 0x00000000, 0x22c53600,
+ 0x00000010, 0x001f0000,
+ 0x00000008, 0x0f800006,
+ 0x00000018, 0x8000fff4,
+ 0x00000000, 0x231b0000,
+ 0x00000000, 0x27110800,
+ 0x00000000, 0x66900000,
+ 0x00000010, 0xb1c8000b,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520000,
+ 0x0000000c, 0x29520003,
+ 0x00000010, 0x06c20002,
+ 0x0000000c, 0x29520002,
+ 0x00000000, 0x22c58c00,
+ 0x00000000, 0x27650000,
+ 0x00000000, 0x26e40000,
+ 0x00000000, 0x23480000,
+ 0x00000008, 0x22000017,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x001f0000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000fe4a,
+};
+
+
+int bce_TXP_b09FwReleaseMajor = 0x1;
+int bce_TXP_b09FwReleaseMinor = 0x0;
+int bce_TXP_b09FwReleaseFix = 0x0;
+u32 bce_TXP_b09FwStartAddr = 0x08000098;
+u32 bce_TXP_b09FwTextAddr = 0x08000000;
+int bce_TXP_b09FwTextLen = 0x3afc;
+u32 bce_TXP_b09FwDataAddr = 0x00000000;
+int bce_TXP_b09FwDataLen = 0x0;
+u32 bce_TXP_b09FwRodataAddr = 0x08003afc;
+int bce_TXP_b09FwRodataLen = 0x30;
+u32 bce_TXP_b09FwBssAddr = 0x08003bcc;
+int bce_TXP_b09FwBssLen = 0x24c;
+u32 bce_TXP_b09FwSbssAddr = 0x08003b60;
+int bce_TXP_b09FwSbssLen = 0x6c;
+u32 bce_TXP_b09FwSDataAddr = 0x00000000;
+int bce_TXP_b09FwSDataLen = 0x0;
+u32 bce_TXP_b09FwText[(0x3afc/4) + 1] = {
+0xa000026,
+0x0, 0x0, 0xd, 0x74787034,
+0x2e362e31, 0x36000000, 0x4061000, 0xa,
+0x136, 0xea60, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x1d,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x10000003, 0x0,
+0xd, 0xd, 0x3c020800, 0x24423b60,
+0x3c030800, 0x24633e18, 0xac400000, 0x43202b,
+0x1480fffd, 0x24420004, 0x3c1d0800, 0x37bd7ffc,
+0x3a0f021, 0x3c100800, 0x26100098, 0x3c1c0800,
+0x279c3b60, 0xe0004ae, 0x0, 0xd,
+0x3c058000, 0x8f830030, 0x34a80070, 0x8d070000,
+0x833025, 0x3c029000, 0xc22025, 0xaca40020,
+0xaf870024, 0x3c048000, 0x8c890020, 0x520fffe,
+0x0, 0x34840070, 0x8c850000, 0x3c180800,
+0x8f18007c, 0x3c0d0800, 0x8dad0078, 0xa7c823,
+0x3195021, 0x7021, 0x159602b, 0x1ae5821,
+0x16c3821, 0x3c010800, 0xac2a007c, 0x3c010800,
+0xac270078, 0x3e00008, 0x0, 0xa00003d,
+0x24040001, 0x8f850030, 0x3c048000, 0x34830001,
+0xa31025, 0x3e00008, 0xac820020, 0x3e00008,
+0x1021, 0x3084ffff, 0x30a5ffff, 0x10800007,
+0x1821, 0x30820001, 0x10400002, 0x42042,
+0x651821, 0x1480fffb, 0x52840, 0x3e00008,
+0x601021, 0x10c00007, 0x0, 0x8ca20000,
+0x24c6ffff, 0x24a50004, 0xac820000, 0x14c0fffb,
+0x24840004, 0x3e00008, 0x0, 0x10a00008,
+0x24a3ffff, 0xac860000, 0x0, 0x0,
+0x2402ffff, 0x2463ffff, 0x1462fffa, 0x24840004,
+0x3e00008, 0x0, 0x90aa0031, 0x8fab0010,
+0x8cac0040, 0x3c0300ff, 0x8d680004, 0xad6c0020,
+0x8cad0044, 0xe06021, 0x3462ffff, 0xad6d0024,
+0x8ca70048, 0x3c09ff00, 0x109c024, 0xad670028,
+0x8cae004c, 0x182c824, 0x3197825, 0xad6f0004,
+0xad6e002c, 0x8cad0038, 0x314a00ff, 0xad6d001c,
+0x94a90032, 0x3128ffff, 0xad680010, 0x90a70030,
+0xa5600002, 0xa1600004, 0xa1670000, 0x90a30032,
+0x306200ff, 0x21982, 0x10600005, 0x24050001,
+0x1065000e, 0x0, 0x3e00008, 0xa16a0001,
+0x8cd80028, 0x354a0080, 0xad780018, 0x8ccf0014,
+0xad6f0014, 0x8cce0030, 0xad6e0008, 0x8cc4002c,
+0xa16a0001, 0x3e00008, 0xad64000c, 0x8ccd001c,
+0xad6d0018, 0x8cc90014, 0xad690014, 0x8cc80024,
+0xad680008, 0x8cc70020, 0xad67000c, 0x8cc20014,
+0x8c830070, 0x43c82b, 0x13200007, 0x0,
+0x8cc20014, 0x144cffe4, 0x0, 0x354a0080,
+0x3e00008, 0xa16a0001, 0x8c820070, 0xa0000c6,
+0x0, 0x90890030, 0x27bdfff8, 0x8fa8001c,
+0xa3a90000, 0x8fa30000, 0x3c0dff80, 0x35a2ffff,
+0x8cac002c, 0x625824, 0xafab0000, 0xa1000004,
+0xc05821, 0xa7a00002, 0x8d060004, 0xa04821,
+0x167c821, 0x8fa50000, 0x805021, 0x3c18ff7f,
+0x32c2026, 0x3c0e00ff, 0x2c8c0001, 0x370fffff,
+0x35cdffff, 0x3c02ff00, 0xafc824, 0xedc024,
+0xc27824, 0xc1dc0, 0x3236825, 0x1f87025,
+0xad0d0000, 0xad0e0004, 0x8d240024, 0xafad0000,
+0xad040008, 0x8d2c0020, 0x2404ffff, 0xad0c000c,
+0x95470032, 0x30e6ffff, 0xad060010, 0x91450048,
+0x30a200ff, 0x219c2, 0x50600001, 0x8d240034,
+0xad040014, 0x8d470038, 0x8faa0018, 0x27bd0008,
+0xad0b0028, 0xad0a0024, 0xad07001c, 0xad00002c,
+0xad000018, 0x3e00008, 0xad000020, 0x27bdffe0,
+0xafb20018, 0xafb10014, 0xafb00010, 0xafbf001c,
+0x90980030, 0xc08821, 0x3c0d00ff, 0x330f007f,
+0xa0cf0000, 0x908e0031, 0x35acffff, 0x3c0aff00,
+0xa0ce0001, 0x94a6001e, 0xa2200004, 0x8cab0014,
+0x8e290004, 0xa08021, 0x16c2824, 0x12a4024,
+0x809021, 0x1052025, 0xa6260002, 0xae240004,
+0x26050020, 0x26240008, 0xe000072, 0x24060002,
+0x92470030, 0x26050028, 0x26240014, 0x71e00,
+0x31603, 0x24060004, 0x4400003, 0x2403ffff,
+0x96590032, 0x3323ffff, 0xe000072, 0xae230010,
+0x26240024, 0x8fbf001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x24050003, 0x3021, 0xa00007c,
+0x27bd0020, 0x27bdffd8, 0xafb1001c, 0xafb00018,
+0xafbf0020, 0x90a90030, 0x24020001, 0xe05021,
+0x3123003f, 0xa04021, 0x8fb00040, 0x808821,
+0xc04821, 0x10620014, 0x8fa70038, 0x240b0005,
+0xa02021, 0xc02821, 0x106b0013, 0x2003021,
+0xe000108, 0x0, 0x9225007c, 0x30a40002,
+0x10800003, 0x26030030, 0xae000030, 0x26030034,
+0x8fbf0020, 0x8fb1001c, 0x8fb00018, 0x601021,
+0x3e00008, 0x27bd0028, 0xe000087, 0xafb00010,
+0xa00014f, 0x0, 0x8fa3003c, 0x1002021,
+0x1202821, 0x1403021, 0xafa30010, 0xe0000ce,
+0xafb00014, 0xa00014f, 0x0, 0x8f820050,
+0x24430001, 0x304200ff, 0xaf830050, 0x3e00008,
+0x0, 0x3c058000, 0x8ca30e10, 0x8f840044,
+0xac830020, 0x8ca20e18, 0x3e00008, 0xac820024,
+0x3c058000, 0x8ca30e14, 0x8f840044, 0xac830020,
+0x8ca20e1c, 0x3e00008, 0xac820024, 0x93820038,
+0x1040001b, 0x2483000f, 0x2404fff0, 0x643824,
+0x10e00019, 0x978b002c, 0x9784004c, 0x9389002e,
+0x3c0a601c, 0xa000190, 0x1644023, 0x1037021,
+0x642823, 0x11260002, 0x31c2ffff, 0x30a2ffff,
+0x47302b, 0x50c0000e, 0xe44821, 0x8d4d000c,
+0x31a3ffff, 0x36400, 0xc2c03, 0x4a1fff3,
+0x3021, 0x30637fff, 0xa000188, 0x24060001,
+0x3e00008, 0x0, 0x9784004c, 0xe44821,
+0x3123ffff, 0x3168ffff, 0x68382b, 0x54e0fff8,
+0xa783004c, 0x938a002e, 0x11400005, 0x240f0001,
+0x6bc023, 0xa380002e, 0x3e00008, 0xa798004c,
+0x6bc023, 0xa38f002e, 0x3e00008, 0xa798004c,
+0x3e00008, 0x0, 0x27bdffe8, 0xafb00010,
+0x3084ffff, 0x3c108000, 0x93a8002b, 0xafbf0014,
+0xa6040144, 0x960a0e16, 0x30c600ff, 0x8fa90030,
+0xa60a0146, 0xae050148, 0xa2060152, 0xa608015a,
+0xae070160, 0x8fa3002c, 0xa6090158, 0x1202021,
+0xe00017c, 0xae030154, 0x3c021000, 0xae020178,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x3c038000, 0x34620070, 0x8c490000, 0x8f87003c,
+0x24840007, 0x27bdfff8, 0x3084fff8, 0xaf890024,
+0x3c088000, 0x950e008a, 0x31cdffff, 0xafad0000,
+0x8fac0000, 0x1875823, 0x256affff, 0x31461fff,
+0xc4282b, 0x14a0fff7, 0x350d0070, 0x8dac0000,
+0x3c050800, 0x8ca50084, 0x3c0a0800, 0x8d4a0080,
+0x1895823, 0x1021, 0xabc021, 0x7c882,
+0x1422021, 0x30b302b, 0x193880, 0x35094000,
+0x867821, 0xe91021, 0x27bd0008, 0x3c010800,
+0xac380084, 0x3c010800, 0xac2f0080, 0x3e00008,
+0x0, 0x8f82003c, 0x24860007, 0x30c5fff8,
+0xa21821, 0x30641fff, 0x3e00008, 0xaf84003c,
+0x3c0320ff, 0x27bdffe8, 0x3c076000, 0x3c088000,
+0x24050010, 0x3464fffd, 0xace53008, 0xafbf0010,
+0xad040e00, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x3c0200ff, 0x345ffffd,
+0xad1f0e00, 0x3c0b6004, 0x8d785000, 0x2419ff7f,
+0x3c0e0002, 0x3197824, 0x35ec380c, 0x35cd0109,
+0xaced4c18, 0x24060009, 0xad6c5000, 0x8cea0438,
+0xad060008, 0xad000014, 0x8ce94c1c, 0x3145ffff,
+0x3c065709, 0x91e02, 0x38a42f71, 0x3062000f,
+0x34c80010, 0xaf820048, 0x10400007, 0x2485c0b3,
+0x8ceb4c1c, 0x3c0d001f, 0x35acfc00, 0x16c5024,
+0xa49c2, 0xaf890034, 0x8cf90808, 0x241ff000,
+0x33fc024, 0x3087026, 0x3067826, 0x2de80001,
+0x2dc60001, 0x1063825, 0x50e00009, 0xa3800038,
+0x3c09601c, 0x8d240008, 0x24030001, 0xa3830038,
+0x30827c00, 0xa780004c, 0xa380002e, 0xa782002c,
+0xaf800050, 0x14a00003, 0xaf80003c, 0x3c056000,
+0xaca0442c, 0xe000559, 0x0, 0x8fbf0010,
+0xa000e99, 0x27bd0018, 0x27bdffc8, 0xafb3002c,
+0xafb20028, 0xafbf0030, 0xafb10024, 0xafb00020,
+0x93620008, 0x809821, 0xa09021, 0x14400035,
+0x24040010, 0xe0001c9, 0x0, 0xe000168,
+0x408021, 0x2c400, 0x3c193200, 0x3198825,
+0xae110000, 0x936f0009, 0x976e0012, 0x936a000a,
+0x31ec00ff, 0x31cdffff, 0x18d5821, 0xb4400,
+0x314900ff, 0x1093825, 0xae070004, 0x8f850050,
+0x97840040, 0x403021, 0x30832000, 0x1460004d,
+0xae050008, 0xae00000c, 0x3c058000, 0x97840040,
+0x662004f, 0x8e03000c, 0x30900008, 0x16000002,
+0x26480006, 0x26480002, 0x94a40e14, 0x8ca50e1c,
+0x8f670004, 0x936a0002, 0x3084ffff, 0x314900ff,
+0xafa90010, 0x8f720014, 0xafa80018, 0xe0001af,
+0xafb20014, 0x8fbf0030, 0x8fb3002c, 0x8fb20028,
+0x8fb10024, 0x8fb00020, 0x24040010, 0xa0001f2,
+0x27bd0038, 0x93650009, 0x97710012, 0x936c000b,
+0x30ad00ff, 0x1b13021, 0x318b00ff, 0xcb8021,
+0x2602000a, 0x3050ffff, 0xe0001c9, 0x2002021,
+0xe000168, 0x408821, 0x93680009, 0x97640012,
+0x2fc00, 0x310900ff, 0x308affff, 0x12a3821,
+0x24e30002, 0x3e3c025, 0x3c194100, 0x3197825,
+0xae2f0000, 0x8f6e000c, 0x3c0d8000, 0x95ac0e14,
+0x1d32825, 0xae250004, 0x8da50e1c, 0x8f670004,
+0x936b0002, 0x3184ffff, 0x316600ff, 0xafa60010,
+0x8f680014, 0x403021, 0xafb20018, 0xe0001af,
+0xafa80014, 0x2002021, 0x8fbf0030, 0x8fb3002c,
+0x8fb20028, 0x8fb10024, 0x8fb00020, 0xa0001f2,
+0x27bd0038, 0x97620012, 0x3c058000, 0x97840040,
+0x305fffff, 0x661ffb4, 0xae1f000c, 0x8e03000c,
+0x3c078000, 0x679825, 0xa00026b, 0xae13000c,
+0x27bdffd8, 0xafb40020, 0xafbf0024, 0xafb3001c,
+0xafb20018, 0xafb10014, 0xafb00010, 0x93620008,
+0x14400094, 0x80a021, 0xaf60000c, 0x97850040,
+0x30a44000, 0x1080009e, 0x24030016, 0x24104007,
+0xa363000a, 0xaf700014, 0x938f0042, 0x8f6c0014,
+0x31ee0001, 0xe6a40, 0x18d5825, 0xaf6b0014,
+0x978a0040, 0x8f680014, 0x31490010, 0x1093825,
+0xaf670014, 0x97860040, 0x30c30008, 0x1060009f,
+0x0, 0x8f660014, 0x3c031000, 0x3c048000,
+0xc32825, 0xaf650014, 0x94820e0a, 0x3c1f8100,
+0x2413000e, 0x3059ffff, 0x33fc025, 0xaf780004,
+0xa3730002, 0x9372000a, 0x3406fffc, 0x26510004,
+0xa371000a, 0x97880040, 0x31072000, 0x10e00091,
+0x0, 0x3c0b8000, 0x97890040, 0x95680e0c,
+0x97840040, 0x91842, 0x3107c000, 0x30650003,
+0x71303, 0x309f1000, 0xa2c025, 0x1fca03,
+0x3199825, 0x1390c0, 0xa7720012, 0x97910040,
+0x936f000a, 0x118182, 0x320e003c, 0x1cf6821,
+0x25ac003c, 0xa36c0009, 0x956a0e0c, 0x31493fff,
+0xa7690010, 0x976d0012, 0x936c0009, 0x18d5821,
+0x256a0002, 0x31490007, 0x94023, 0x31030007,
+0xa363000b, 0x93670009, 0x97640012, 0x97650010,
+0x30e200ff, 0x8f900028, 0x97980040, 0x44f821,
+0x3e5c821, 0x3269821, 0x33120040, 0x12400005,
+0x3266ffff, 0xd0702b, 0x3c118000, 0x11c00016,
+0x9021, 0x206782b, 0x15e0002d, 0x2021,
+0x3c108000, 0x8e120e14, 0x3c058000, 0xae120e10,
+0x8e110e1c, 0xae110e18, 0xae060e00, 0x8cb80000,
+0x33130008, 0x1260fffd, 0x0, 0x94b90e08,
+0xc08021, 0x8821, 0xa7990040, 0x8ca60e04,
+0x24120001, 0xaf860028, 0x977f0010, 0x33f3ffff,
+0x8e890000, 0x1302023, 0x10800058, 0xae840000,
+0x2202021, 0xe000243, 0x2002821, 0x8e8c0000,
+0x15800005, 0x0, 0x8f6d0014, 0x240effbf,
+0x1aea024, 0xaf740014, 0x8f78000c, 0x3138821,
+0xaf71000c, 0x936f0008, 0x15e00003, 0x0,
+0x16400040, 0x0, 0xa3720008, 0x2002021,
+0x8fbf0024, 0x8fb40020, 0x8fb3001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x801021, 0x3e00008,
+0x27bd0028, 0x8f900028, 0x97820040, 0x3c118000,
+0x2009821, 0x30450040, 0x14a0ffd9, 0x9021,
+0x97680010, 0x8f870028, 0x3103ffff, 0x1467ffec,
+0x2021, 0x8821, 0xa000339, 0x24120001,
+0x2403000e, 0x24104007, 0xa363000a, 0xaf700014,
+0x938f0042, 0x8f6c0014, 0x31ee0001, 0xe6a40,
+0x18d5825, 0xaf6b0014, 0x978a0040, 0x8f680014,
+0x31490010, 0x1093825, 0xaf670014, 0x97860040,
+0x30c30008, 0x1460ff63, 0x0, 0xaf600004,
+0xa3600002, 0x97880040, 0x31072000, 0x14e0ff71,
+0x3021, 0xa7600012, 0x97910040, 0x936f000a,
+0x3c0b8000, 0x32301f00, 0x107183, 0x1cf6821,
+0x25ac0028, 0xa36c0009, 0x956a0e0c, 0xa00030a,
+0xa76a0010, 0x8f660014, 0x3c1fefff, 0x37f9fffe,
+0xd99824, 0xa00034f, 0xaf730014, 0x8f6b0014,
+0x356a0040, 0xe00016e, 0xaf6a0014, 0xa00033e,
+0x2202021, 0x8f850044, 0x8f8a0030, 0x27bdffc0,
+0x3c048000, 0xafb70034, 0xafb40028, 0xafb1001c,
+0xafbf0038, 0xafb60030, 0xafb5002c, 0xafb30024,
+0xafb20020, 0xafb00018, 0x8c870104, 0x8ca90024,
+0xac8a0080, 0x8ca80020, 0xe98823, 0xb821,
+0xac880e10, 0x8ca60024, 0xa021, 0xac860e18,
+0x8c820e10, 0xac820e14, 0x8c830e18, 0xac830e1c,
+0x12200033, 0x3c168000, 0x936b0008, 0x11600054,
+0x0, 0x976e0010, 0x31cdffff, 0x22d602b,
+0x1580004f, 0x0, 0x97700010, 0x320fffff,
+0xaecf0e00, 0x3c058000, 0x8cb30000, 0x32720008,
+0x1240fffd, 0x0, 0x94b50e08, 0x8ca50e04,
+0x32b0ffff, 0x32140001, 0x12800044, 0x0,
+0xd, 0x3219a040, 0x24180040, 0x13380045,
+0x3214a000, 0x1280003f, 0x0, 0x93730008,
+0x12600009, 0x27a40010, 0x97620010, 0x305fffff,
+0xbfc82b, 0x53200005, 0xafb10010, 0x32080040,
+0x11000034, 0x0, 0xafb10010, 0xa7900040,
+0xaf850028, 0xe0002bd, 0x0, 0x40a021,
+0x104000be, 0x8fb10010, 0x1620ffcf, 0x0,
+0x2e960001, 0x2d78825, 0x12200017, 0x8fbf0038,
+0x8f850030, 0x24170f00, 0x10b70071, 0x3c048000,
+0x8c8f0178, 0x5e0fffe, 0x24180f00, 0x50b8008f,
+0x3c048000, 0x8c990e14, 0x24140240, 0x3c051000,
+0xac990144, 0x8c930e1c, 0xac930148, 0xa0800152,
+0xa480015a, 0xac800160, 0xa4800158, 0xac940154,
+0xac850178, 0x8fbf0038, 0x8fb70034, 0x8fb60030,
+0x8fb5002c, 0x8fb40028, 0x8fb30024, 0x8fb20020,
+0x8fb1001c, 0x8fb00018, 0x3e00008, 0x27bd0040,
+0xaed10e00, 0xa0003c3, 0x3c058000, 0x14a0ffbe,
+0x3219a040, 0xe000175, 0xa021, 0xa0003ea,
+0x2e960001, 0x3c038000, 0x8c7f0178, 0x7e0fffe,
+0x24020800, 0x8f84003c, 0xac620178, 0x3c038000,
+0x946b008a, 0x316affff, 0x1443823, 0x24e9ffff,
+0x31281fff, 0x2d060008, 0x14c0fff9, 0x346c4000,
+0xa0a021, 0xe000168, 0x8c9021, 0x8f830030,
+0x24040f00, 0x40a821, 0x2348823, 0x3c068000,
+0x10640005, 0x24050001, 0x938e0042, 0x31c50001,
+0x56a40, 0x35a50001, 0x15fc00, 0x3c020100,
+0x3e2c825, 0xae590000, 0x8f930050, 0x32180036,
+0x320f0008, 0xae530004, 0x11e00041, 0xb89825,
+0x94c30e0a, 0x8f84003c, 0x3c0b8100, 0x306affff,
+0x24920008, 0x32481fff, 0x14b4825, 0x3c071000,
+0x26920006, 0x2410000e, 0xacc90160, 0x2679825,
+0xa4d0015a, 0xaf88003c, 0xa4d20158, 0x16200008,
+0x3c108000, 0x8f8e0030, 0x24050f00, 0x51c50002,
+0x24170001, 0x36730040, 0xe00016e, 0x3c108000,
+0x8e180e14, 0x2402021, 0xae180144, 0x8e0f0e1c,
+0xae0f0148, 0xa2150152, 0xae130154, 0xe00017c,
+0x3c151000, 0xae150178, 0xa0003e7, 0x0,
+0x12800005, 0x3c078000, 0x94f20e08, 0x32490040,
+0x11200042, 0x0, 0x8c8a0178, 0x540fffe,
+0x0, 0x94950e10, 0x3c100500, 0x24032000,
+0x32aeffff, 0x1d06825, 0xac8d014c, 0x8c8c0e14,
+0x3c0b1000, 0xac8c0144, 0x8c860e1c, 0xac860148,
+0xa0800152, 0xa480015a, 0xac800160, 0xa4800158,
+0xac830154, 0xac8b0178, 0xa0003f1, 0x3c048000,
+0x8f8d003c, 0x26920002, 0xa4d20158, 0x25ac0008,
+0x31861fff, 0xa00044c, 0xaf86003c, 0xac80014c,
+0x12800019, 0x0, 0x8c9f0e10, 0xac9f0144,
+0x8c830e18, 0x3c088000, 0x24110040, 0xac830148,
+0x8fbf0038, 0xa1000152, 0x8fb70034, 0xa500015a,
+0x8fb60030, 0xad000160, 0x8fb5002c, 0xa5000158,
+0x8fb40028, 0xad110154, 0x8fb30024, 0x8fb20020,
+0x8fb1001c, 0x8fb00018, 0x3c041000, 0x27bd0040,
+0x3e00008, 0xad040178, 0x8c820e14, 0xac820144,
+0x8c830e1c, 0xa00048b, 0x3c088000, 0xe000175,
+0x2e960001, 0xa0003eb, 0x2d78825, 0x0,
+0xd, 0x0, 0x2400033a, 0xa000467,
+0x3c048000, 0x27bdffd8, 0xafb10014, 0x3c118000,
+0xafb00010, 0xafb40020, 0xafb3001c, 0xafb20018,
+0xafbf0024, 0x3c130800, 0x26733c34, 0xe0001f9,
+0x36300070, 0x3c140800, 0x26943cb4, 0x2009021,
+0x8e080000, 0x8e240000, 0x38830001, 0x30620001,
+0x10400016, 0x3c0a8000, 0x2404821, 0x8d270000,
+0x3c1f0800, 0x8fff006c, 0x3c0f0800, 0x8def0068,
+0xe81023, 0x3e26021, 0xc021, 0x182702b,
+0x1f86821, 0x1ae4021, 0x3c010800, 0xac2c006c,
+0x3c010800, 0xac280068, 0x8d4b0000, 0x39660001,
+0x30c50001, 0x14a0ffed, 0xe04021, 0x8e1f0000,
+0x3c180800, 0x8f18006c, 0x3c0d0800, 0x8dad0068,
+0x3e8c823, 0x3193821, 0x7021, 0xf9602b,
+0x1ae4021, 0x10c5821, 0x3c010800, 0xac27006c,
+0x3c010800, 0xac2b0068, 0x8e280100, 0x2406ff80,
+0x3c04800a, 0x25050240, 0xa64824, 0xae280020,
+0xae290024, 0x8e090000, 0x30a3007f, 0x645021,
+0x3c078000, 0xaf8a0044, 0xaf880030, 0xaf890024,
+0x8ce20178, 0x440fffe, 0x0, 0x8e1f0000,
+0x3c180800, 0x8f180074, 0x3c0d0800, 0x8dad0070,
+0x3e9c823, 0x3195821, 0x7021, 0x179302b,
+0x1ae6021, 0x1864821, 0x24050800, 0x3c010800,
+0xac2b0074, 0x3c010800, 0xac290070, 0xace50178,
+0x90e40108, 0xa3840042, 0x93830042, 0x306a0001,
+0x1140000f, 0x240e0d00, 0x2502f800, 0x2c470301,
+0x10e0001c, 0x819c2, 0x2464fff0, 0x45042,
+0xa4140, 0xe00039a, 0x113d821, 0x3c0a4000,
+0x3c088000, 0xad0a0138, 0xa0004bd, 0x0,
+0x110e0026, 0x240f0f00, 0x110f002a, 0x3c028008,
+0x34470080, 0x90ff0000, 0x24180050, 0x33f900ff,
+0x1738fff3, 0x3c0a4000, 0xe0009a3, 0x0,
+0x3c0a4000, 0x3c088000, 0xad0a0138, 0xa0004bd,
+0x0, 0x8f840034, 0x64282b, 0x14a0000b,
+0x8f860048, 0x866021, 0x258bffff, 0x163482b,
+0x15200006, 0x646823, 0xd1940, 0xe00039a,
+0x74d821, 0xa000519, 0x3c0a4000, 0x0,
+0xd, 0x0, 0x240003ad, 0xe00039a,
+0x0, 0xa000519, 0x3c0a4000, 0x3c1b0800,
+0x277b3db4, 0xe00039a, 0x0, 0xa000519,
+0x3c0a4000, 0x3c1b0800, 0x277b3dd4, 0xe00039a,
+0x0, 0xa000519, 0x3c0a4000, 0x8f820050,
+0x24430001, 0x304200ff, 0xaf830050, 0x3e00008,
+0x0, 0x411c0, 0x3e00008, 0x24420240,
+0x3c040800, 0x24843bcc, 0x2405001a, 0xa00007c,
+0x3021, 0x27bdffe0, 0xafbf001c, 0xafb20018,
+0xafb10014, 0xafb00010, 0x3c108000, 0x920b0109,
+0x2412ff80, 0xe000556, 0x3164007f, 0x8f910030,
+0x515021, 0x1524024, 0xae080024, 0x92030109,
+0xe000556, 0x3064007f, 0x24060080, 0x240700c0,
+0x24040040, 0xae000810, 0xae040814, 0xae060818,
+0xae07081c, 0x920c0109, 0x51f821, 0x33f8007f,
+0x3c19800a, 0x3191021, 0x3184007f, 0xe000556,
+0xaf820044, 0x8e110100, 0x3c0c0080, 0x35850001,
+0x2227821, 0x1f24824, 0xae090804, 0x8e0e0100,
+0x35980002, 0x36090900, 0x1c26821, 0x31ab0078,
+0x1655025, 0xae0a0820, 0x8e050100, 0x8e080100,
+0x36050980, 0x1021821, 0x24640040, 0x923024,
+0xae060808, 0x8e070100, 0xe2f821, 0x27f90040,
+0x33320078, 0x2588825, 0xae110824, 0x8e040100,
+0x952f000c, 0x8fbf001c, 0x8fb20018, 0x31eeffff,
+0xe69c0, 0xae0d0800, 0xae0c0828, 0x952b000c,
+0x8fb10014, 0x316affff, 0xa41c0, 0xae08002c,
+0x8ca30050, 0x8fb00010, 0x8ca2003c, 0x8d240004,
+0x8ca6001c, 0x8ca70038, 0x27bd0020, 0xaf830068,
+0xaf820058, 0xaf840054, 0xaf860060, 0x3e00008,
+0xaf870064, 0x3c0a0800, 0x914a3bf1, 0x3c090800,
+0x95293bea, 0x3c051100, 0xa3c00, 0x25280002,
+0xe83025, 0xc51825, 0x24820008, 0xac830000,
+0x3e00008, 0xac800004, 0x3c088000, 0x35070900,
+0x90e60011, 0x24020028, 0x805021, 0x30c300ff,
+0xa06021, 0x10620002, 0x340b86dd, 0x240b0800,
+0x3c078000, 0x34e20a9a, 0x94590000, 0x34ef0a9c,
+0x34ed0aa0, 0x3338ffff, 0xad580000, 0x8dee0000,
+0x34e80a80, 0x24040001, 0xad4e0004, 0x8da90000,
+0xad490008, 0x91050019, 0x30a30003, 0x10640043,
+0x28660002, 0x14c000b0, 0x24040002, 0x1064008b,
+0x24050003, 0x10650096, 0x34e60aa4, 0x3c090800,
+0x95293be0, 0x24020800, 0x5162004d, 0x3c0e8000,
+0x3c0e8000, 0x35c50900, 0x90a60012, 0x90b90019,
+0x35cb0980, 0x8d680028, 0x30c700ff, 0x77880,
+0x3138ffff, 0x332300ff, 0x1f81021, 0x32500,
+0x887025, 0x25c00, 0x3c0d6000, 0x1cd3025,
+0x356906ff, 0xad490004, 0xad460000, 0x8ca7002c,
+0x25490028, 0xad470008, 0x8cb90030, 0xad59000c,
+0x8cb80034, 0xad580010, 0x8caf0038, 0xad4f0014,
+0x8ca3001c, 0xad430018, 0x8ca80020, 0x3c038000,
+0x3462093c, 0xad48001c, 0x8ca40024, 0x346f0900,
+0xad440020, 0x8cad0028, 0xad4d0024, 0x8c590000,
+0xad2c0004, 0x25220014, 0xad390000, 0x8c78010c,
+0xad380008, 0x91e80012, 0x3c040800, 0x90843bf0,
+0xad200010, 0x82f00, 0x46c00, 0xad6025,
+0x358affff, 0x3e00008, 0xad2a000c, 0x3c090800,
+0x95293be0, 0x3c0f0800, 0x95ef3bea, 0x34f90aa4,
+0x3c0e0800, 0x95ce3bdc, 0x97280000, 0x3138ffff,
+0x1f86821, 0x1ae3823, 0x82c00, 0x24e3fff2,
+0xa32025, 0x24020800, 0xad44000c, 0xad400010,
+0xad4b0014, 0x1562ffb6, 0x254a0018, 0x3c0e8000,
+0x35cd0900, 0x91a20011, 0x91a70019, 0x3c050800,
+0x94a53be6, 0x304600ff, 0x35cb0a80, 0x956e002a,
+0x6c882, 0x30f800ff, 0x9787005c, 0x191e00,
+0x187c00, 0x3128ffff, 0xa82021, 0x6f4825,
+0x1241025, 0x1c73021, 0x3c0b4000, 0x4bc825,
+0x6c400, 0xad590000, 0xad580004, 0x91af0018,
+0x3c030006, 0x24e90001, 0xf4600, 0x1037025,
+0xad4e0008, 0x8da5002c, 0x3c038000, 0x3462093c,
+0xad45000c, 0x8dab001c, 0x31247fff, 0x25490014,
+0xad4b0010, 0x8c590000, 0xad2c0004, 0x346f0900,
+0xad390000, 0x8c78010c, 0xa784005c, 0x25220014,
+0xad380008, 0x91e80012, 0x3c040800, 0x90843bf0,
+0xad200010, 0x82f00, 0x46c00, 0xad6025,
+0x358affff, 0x3e00008, 0xad2a000c, 0x34e20aa4,
+0x94460000, 0x95190028, 0x3c090800, 0x95293be0,
+0x6c400, 0x197c00, 0x370e8100, 0x1eb6825,
+0xad4e000c, 0xad4d0010, 0xa0005e2, 0x254a0014,
+0x3c090800, 0x95293be0, 0x3c180800, 0x97183bea,
+0x3c0f0800, 0x95ef3bdc, 0x94ce0000, 0x3139ffff,
+0x950d0028, 0x3194021, 0x10f3823, 0xe2400,
+0xd2c00, 0x24e3ffee, 0xa33025, 0x34828100,
+0xad42000c, 0xad460010, 0xad400014, 0xad4b0018,
+0xa0005e2, 0x254a001c, 0x1460ff54, 0x34e90aa4,
+0x95280000, 0x3c090800, 0x95293be0, 0x83c00,
+0xeb1825, 0xad43000c, 0xa0005e2, 0x254a0010,
+0x3e00008, 0x240207d0, 0x27bdffe0, 0xafb20018,
+0xafb10014, 0xafb00010, 0xafbf001c, 0xe00005c,
+0x808821, 0x8f880058, 0x8f870054, 0x3c058008,
+0x34b20080, 0x1112821, 0x3c108000, 0x24020080,
+0x240300c0, 0xa72023, 0xae020818, 0x3c068008,
+0xae03081c, 0x18800004, 0xaf850058, 0xacc50004,
+0x8cc90004, 0xaf890054, 0x12200009, 0x36040980,
+0xe000695, 0x0, 0x924c0027, 0x8e0b0074,
+0x1825004, 0x14b3021, 0xae46000c, 0x36040980,
+0x8c8e001c, 0x8f8f0060, 0x1cf6823, 0x19a00004,
+0x8fbf001c, 0x8c90001c, 0xaf900060, 0x8fbf001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0xa00005e,
+0x27bd0020, 0x8f860068, 0x8f830058, 0x8f820054,
+0x3c058008, 0x34a40080, 0xac860050, 0xac83003c,
+0x3e00008, 0xaca20004, 0x3c038000, 0x34670070,
+0x8ce30000, 0x308700ff, 0x3c040800, 0x8c840054,
+0x27bdfff8, 0x30aa00ff, 0x24820001, 0x3c010800,
+0xac220054, 0x30c800ff, 0xaf830024, 0x3c098000,
+0x8d250178, 0x4a0fffe, 0x352b0070, 0x8d650000,
+0xa3a70003, 0x3c180800, 0x8f180074, 0x8fb90000,
+0x3c0d0800, 0x8dad0070, 0xa33823, 0x3c047fff,
+0xe07821, 0x3482ffff, 0x3073821, 0x7021,
+0x3225824, 0x1ae3021, 0xef602b, 0x847c0,
+0xcc1821, 0x1682825, 0xafa50000, 0x3c010800,
+0xac270074, 0x3c010800, 0xac230070, 0x9124010a,
+0xa3a00002, 0x3c0280ff, 0xa3a40001, 0x8fb80000,
+0x314f007f, 0x3459ffff, 0x3196824, 0xf7600,
+0x3c0b0020, 0x1ae6025, 0x356a2000, 0x2408ff80,
+0x3c061000, 0x27bd0008, 0xad2c014c, 0xad2a0154,
+0xa5200158, 0xa1280152, 0x3e00008, 0xad260178,
+0x3c038000, 0x34620070, 0x8c480000, 0x308a00ff,
+0x30a900ff, 0xaf880024, 0x3c048000, 0x8c850178,
+0x4a0fffe, 0x34870070, 0x8ceb0000, 0x3c050800,
+0x8ca50074, 0x3c190800, 0x8f390070, 0x1682023,
+0xa47021, 0x1021, 0x1c4c02b, 0x3227821,
+0x3c078000, 0x1f86821, 0x3c010800, 0xac2e0074,
+0x34e60a00, 0x3c010800, 0xac2d0070, 0x8ccc0020,
+0x9582b, 0x34e80980, 0xacec0144, 0x8cc90024,
+0xb1540, 0xace90148, 0xa0ea0150, 0x9104004c,
+0xa0e4016d, 0x3e00008, 0xa4e00158, 0x27bdffe8,
+0x308400ff, 0xafbf0010, 0xe00070d, 0x30a500ff,
+0x8f830058, 0x8fbf0010, 0x3c058000, 0x34460040,
+0x2404ff90, 0x3c021000, 0x27bd0018, 0xaca3014c,
+0xa0a40152, 0xaca60154, 0x3e00008, 0xaca20178,
+0x27bdffe0, 0x3c088008, 0xafbf001c, 0xafb20018,
+0xafb10014, 0xafb00010, 0x35100080, 0x8e060018,
+0x3c078000, 0x309200ff, 0xc72025, 0xae040018,
+0xe00005c, 0x30b100ff, 0x92030005, 0x34620008,
+0xe00005e, 0xa2020005, 0x2402021, 0xe000734,
+0x2202821, 0x2402021, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x24050005, 0x24060001,
+0xa0006cf, 0x27bd0020, 0x3c088000, 0x27bdffe8,
+0xafb00010, 0x35050980, 0xafbf0014, 0x90a70009,
+0x24020006, 0x35060900, 0x30e300ff, 0x24100004,
+0x10620072, 0x24080002, 0x94ae005c, 0x3c0d0204,
+0x31ccffff, 0x18d5825, 0xac8b0000, 0x90aa0008,
+0x31490020, 0x11200008, 0x0, 0x90bf004e,
+0x3c190103, 0x37380300, 0x33ef00ff, 0x1f82825,
+0x24100008, 0xac850004, 0x90cc0011, 0x90c90011,
+0x318a00ff, 0xa5882, 0x312700ff, 0x256a0005,
+0xa1080, 0x38e30028, 0x14600029, 0x824823,
+0x90cf0012, 0x3c198000, 0x37220900, 0x31e500ff,
+0x57080, 0x1d06821, 0xd3400, 0x34c406ff,
+0xad240004, 0x904c0011, 0x90580012, 0x373f0980,
+0x8fe40034, 0x8f2f010c, 0x105882, 0x330500ff,
+0xab7021, 0x83400, 0x8f1823, 0xe6f00,
+0x1a61025, 0x319f00fc, 0x3067ffff, 0x3e9c021,
+0x47c825, 0x14b7821, 0xf2880, 0xaf19000c,
+0xe00005c, 0x1258021, 0x3c0a8008, 0x24090004,
+0x35480080, 0xe00005e, 0xa1090009, 0x2001021,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x90ce0011, 0x90cd0019, 0x3c070800, 0x94e73be6,
+0x31c600ff, 0x62082, 0x31ac00ff, 0x45e00,
+0xc1c00, 0x1631025, 0x47c825, 0x3c1f4000,
+0x33fc025, 0x3c198000, 0xad380000, 0x37220900,
+0x904c0011, 0x90580012, 0x373f0980, 0x8fe40034,
+0x8f2f010c, 0x105882, 0x330500ff, 0xab7021,
+0x83400, 0x8f1823, 0xe6f00, 0x1a61025,
+0x319f00fc, 0x3067ffff, 0x3e9c021, 0x47c825,
+0x14b7821, 0xf2880, 0xaf19000c, 0xe00005c,
+0x1258021, 0x3c0a8008, 0x24090004, 0x35480080,
+0xe00005e, 0xa1090009, 0x2001021, 0x8fbf0014,
+0x8fb00010, 0x3e00008, 0x27bd0018, 0xa00076f,
+0x24080012, 0x27bdffd8, 0xafb40020, 0xafb3001c,
+0xafb20018, 0xafb10014, 0xafbf0024, 0xafb00010,
+0x3c068000, 0x90c3010b, 0x309200ff, 0x30b300ff,
+0x30620030, 0xa021, 0x10400070, 0x8821,
+0x34c40980, 0x90880008, 0x83e00, 0x72e03,
+0x4a00097, 0x24040004, 0x8f880058, 0x3c010800,
+0xa0243bf0, 0x3c0c8000, 0xad800048, 0x3c038000,
+0x906e010b, 0x31c50020, 0x10a00007, 0x3c028000,
+0x34790980, 0x93380008, 0x188600, 0x107e03,
+0x5e2009c, 0x3c028008, 0x34500900, 0x34470a80,
+0x904d010b, 0x94eb002c, 0x92030011, 0x921f0012,
+0x90e50018, 0x307800ff, 0x33f900ff, 0x197880,
+0x1f87021, 0x1d15021, 0x30b100ff, 0x1514821,
+0x2524000a, 0x31ac0040, 0x3091ffff, 0xc302b,
+0x2202021, 0xa78b005c, 0x3c010800, 0xa42a3be6,
+0x3c010800, 0xa4293be8, 0x3c010800, 0xa4293bea,
+0x3c010800, 0xa4203be0, 0x3c010800, 0xa4203bdc,
+0xe0001c9, 0x1068023, 0xe0005b2, 0x402021,
+0x402021, 0xe0005bf, 0x2002821, 0x1680005c,
+0x0, 0xe0001f2, 0x2202021, 0x3c080800,
+0x91083bf0, 0x31140003, 0x12800016, 0x3c1f8008,
+0x8f840058, 0x3c0c8008, 0x35860080, 0x248b0001,
+0xaccb003c, 0x3c058008, 0x8caa0004, 0x1602021,
+0x14b4823, 0x19200002, 0xaf8b0058, 0x8ca40004,
+0xe000695, 0xaca40004, 0x3c0f8000, 0x8dee0074,
+0x3c058008, 0x34ad0080, 0x4e8821, 0xadb1000c,
+0x3c1f8008, 0x37f90080, 0x2402021, 0x2602821,
+0xa320006b, 0xe00070d, 0x3c128000, 0x8f980058,
+0x34500006, 0xae58014c, 0xe000550, 0x3c131000,
+0xa2420152, 0x8fbf0024, 0xae500154, 0x8fb40020,
+0xae530178, 0x8fb10014, 0x8fb3001c, 0x8fb20018,
+0x8fb00010, 0x3e00008, 0x27bd0028, 0x34c30980,
+0x906f0008, 0xf7600, 0xe6e03, 0x5a00033,
+0x34c20900, 0x9059001b, 0x241f0010, 0x3c010800,
+0xa03f3bf0, 0x33380002, 0x1300ff90, 0x8f880058,
+0x8f830064, 0x1468ff8e, 0x3c038000, 0xe00005c,
+0x0, 0x3c098008, 0x35250080, 0x90a40009,
+0x24070016, 0x308800ff, 0x1107000d, 0x0,
+0x90a60009, 0x3c0c0800, 0x918c3bf0, 0x240a0008,
+0x30c400ff, 0x358b0001, 0x3c010800, 0xa02b3bf0,
+0x108a002f, 0x240d000a, 0x108d0028, 0x2402000c,
+0xe00005e, 0x0, 0xa0007fc, 0x8f880058,
+0xe000763, 0x402021, 0xa00082e, 0x0,
+0x3c0b8008, 0x356a0080, 0x8d480054, 0x8cc9010c,
+0x1120ff66, 0xaf880058, 0x24060014, 0x3c010800,
+0xa0263bf0, 0xa0007fb, 0x3c0c8000, 0x90710008,
+0x24140002, 0x3c010800, 0xa0343bf0, 0x32300020,
+0x1200000b, 0x24140001, 0x8f880058, 0xa0007fc,
+0x24110008, 0x345f0080, 0x8fe70038, 0xac470004,
+0x8c430004, 0xafe3003c, 0xa000807, 0x3c028000,
+0x8f880058, 0xa0007fc, 0x24110004, 0xa0a20009,
+0xe00005e, 0x0, 0xa0007fc, 0x8f880058,
+0x24020014, 0xa0008ad, 0xa0a20009, 0x27bdffe8,
+0xafbf0014, 0xafb00010, 0x3c108000, 0x92020109,
+0x24050001, 0xe00070d, 0x304400ff, 0x3c1f8008,
+0x93f8000e, 0x37e30080, 0x93f9000f, 0x906e0026,
+0x93e9000a, 0x332f00ff, 0x186600, 0xf6c00,
+0x31cb00ff, 0x18d5025, 0xb3200, 0x1463825,
+0x312800ff, 0x34456000, 0xe82025, 0x2402ff81,
+0x3c031000, 0xae04014c, 0x8fbf0014, 0xae050154,
+0xa2020152, 0xae030178, 0x8fb00010, 0x3e00008,
+0x27bd0018, 0x27bdffe8, 0x308400ff, 0xafbf0010,
+0xe00070d, 0x30a500ff, 0x34460040, 0x3c048000,
+0x2405ff92, 0xac860154, 0xa0850152, 0x8f830058,
+0x8fbf0010, 0x3c021000, 0x27bd0018, 0xac83014c,
+0x3e00008, 0xac820178, 0x27bdffd8, 0xafb20018,
+0xafb10014, 0xafb00010, 0xafbf0020, 0xafb3001c,
+0x3c078000, 0x90e20109, 0x308600ff, 0x30b000ff,
+0x618c2, 0x32040002, 0x30710001, 0x14800007,
+0x305200ff, 0x3c098008, 0x35330080, 0x92680005,
+0x31050008, 0x10a0000c, 0x30ca0010, 0x2402021,
+0xe000745, 0x2202821, 0x24020001, 0x8fbf0020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0028, 0x15400030, 0x34e50a00,
+0x8cb90024, 0x8cb80008, 0x13380047, 0x4021,
+0x3c0e8008, 0x35d30080, 0x926d0068, 0x240b0002,
+0x31ac00ff, 0x118b0080, 0x3c068000, 0x927f004c,
+0x90c40109, 0x509f0004, 0x3213007c, 0x11000067,
+0x0, 0x3213007c, 0x1660005a, 0x2402021,
+0x16200008, 0x320c0001, 0x3c078000, 0x34eb0a00,
+0x8d650024, 0x8ce80104, 0x14a8ffdc, 0x1021,
+0x320c0001, 0x1180000d, 0x2402021, 0x3c108000,
+0x8e0e010c, 0x8f8d0068, 0x11cd0008, 0x0,
+0xe0007e2, 0x2202821, 0x8e0f010c, 0x3c188008,
+0x37100080, 0xae0f0050, 0x2402021, 0xe000734,
+0x2202821, 0xa000900, 0x24020001, 0x3c070800,
+0x8ce70064, 0x24e60001, 0x3c010800, 0xac260064,
+0x1600000d, 0x0, 0x2202821, 0xe000734,
+0x2402021, 0x926f0068, 0x240d0002, 0x31ee00ff,
+0x11cd0022, 0x2402021, 0xe0008b4, 0x0,
+0xa000900, 0x24020001, 0xe00003d, 0x24040001,
+0x926c0025, 0x20c5825, 0xe00005e, 0xa26b0025,
+0xa000940, 0x2202821, 0x8e630018, 0x8ce40104,
+0x8cbf0024, 0x31602, 0x149fffb5, 0x3045007f,
+0x9269004c, 0x26440001, 0x3093007f, 0x12650040,
+0x312300ff, 0x1464ffaf, 0x3c0e8008, 0x26480001,
+0x3111007f, 0x310200ff, 0x1225000b, 0x24080001,
+0x409021, 0xa00090d, 0x24110001, 0x24050004,
+0xe0006cf, 0x24060001, 0xe0008b4, 0x0,
+0xa000900, 0x24020001, 0x2407ff80, 0x2472824,
+0xa79026, 0x324200ff, 0x409021, 0xa00090d,
+0x24110001, 0xe0007e2, 0x2202821, 0x32060030,
+0x10c0ffa3, 0x32100082, 0x2402021, 0xe000745,
+0x2202821, 0xa000900, 0x24020001, 0x8e630018,
+0x2402021, 0x2202821, 0x661025, 0xe0008d6,
+0xae620018, 0x9264004c, 0x24050003, 0x24060001,
+0xe0006cf, 0x308400ff, 0xe00003d, 0x24040001,
+0x926a0025, 0x20a4825, 0xe00005e, 0xa2690025,
+0xa000900, 0x24020001, 0x8e780018, 0x3c198000,
+0x2402021, 0x3197825, 0x2202821, 0xe000734,
+0xae6f0018, 0x9264004c, 0xa000988, 0x24050004,
+0x32460080, 0x38ca0080, 0x146aff6e, 0x3c0e8008,
+0xa000961, 0x26480001, 0x27bdffc0, 0xafb00018,
+0x3c108000, 0xafbf0038, 0xafb70034, 0xafb60030,
+0xafb5002c, 0xafb40028, 0xafb30024, 0xafb20020,
+0xe00055e, 0xafb1001c, 0x92040108, 0x9205010b,
+0x308400ff, 0xe0008e7, 0x30a500ff, 0x144000d6,
+0x8fbf0038, 0x3c098008, 0x35280080, 0xa100006b,
+0x36070980, 0x90e60000, 0x24020050, 0x3c170800,
+0x26f73df4, 0x30c300ff, 0x3c140800, 0x26943e04,
+0x10620003, 0x3c108000, 0xb821, 0xa021,
+0x241f0010, 0x36110a00, 0x36130980, 0x8e160104,
+0x8f8d0058, 0x8e380024, 0x36190a80, 0x8e720020,
+0x3c010800, 0xa03f3bf0, 0x972c002c, 0x8ef50000,
+0x932b0018, 0x24d7023, 0x2d87823, 0x3c010800,
+0xac2f3bcc, 0x3c010800, 0xac2e3bd0, 0x3c010800,
+0xac2d3bf4, 0xa78c005c, 0x2a0f809, 0x317200ff,
+0x304a0002, 0x154000da, 0x30450001, 0x10a000b4,
+0x0, 0x36050900, 0x8e2b0024, 0x90bf0011,
+0x90b90012, 0x90b60011, 0x33ef00ff, 0x333800ff,
+0x32cd00ff, 0x187080, 0x1cf8021, 0x24d6021,
+0x212a821, 0x258a0010, 0x3c010800, 0xa4353be8,
+0x3c010800, 0xac2b3bf8, 0x3c010800, 0xa42a3be4,
+0x3c010800, 0xa4303be6, 0x260b021, 0x3c158000,
+0x8f920058, 0x8f840060, 0x8ed30020, 0x24110006,
+0x923023, 0x2722823, 0x3c010800, 0xac313bec,
+0x4c000af, 0x9821, 0x4a000ad, 0xc5102b,
+0x104000af, 0x0, 0x3c010800, 0xac263bd0,
+0x8e900000, 0x200f809, 0x0, 0x30430002,
+0x1460006f, 0x408821, 0x30460001, 0x54c00011,
+0x8e920004, 0x3c080800, 0x8d083bd4, 0x3c09c000,
+0x3c048000, 0x1093825, 0xaea70e00, 0x8c8b0000,
+0x316a0008, 0x1140fffd, 0x0, 0x948d0e08,
+0x24130001, 0xa78d0040, 0x8c8c0e04, 0xaf8c0028,
+0x8e920004, 0x240f809, 0x0, 0x2228825,
+0x322e0002, 0x15c000a5, 0x0, 0x3c180800,
+0x97183bdc, 0x3c120800, 0x96523be8, 0x3c190800,
+0x97393bde, 0x3c070800, 0x8ce73bd4, 0x3124021,
+0x3c0b0800, 0x8d6b3bf8, 0x3c0e0800, 0x95ce3bf2,
+0x3c128000, 0x1197821, 0x8e46010c, 0xf86821,
+0x25ec0002, 0x1ae4821, 0x1675021, 0xaf860068,
+0x3c010800, 0xac2a3bf8, 0x3c010800, 0xa4293be0,
+0x3c010800, 0xa4283bea, 0xe0001c9, 0x3184ffff,
+0xe000550, 0x408021, 0x3c010800, 0xa0223bf1,
+0x8e820008, 0x40f809, 0x2002021, 0x8f850058,
+0xe0005bf, 0x402021, 0x8e90000c, 0x200f809,
+0x402021, 0x3c030800, 0x94633bea, 0x3c020800,
+0x94423bde, 0x622021, 0x24850002, 0xe0001f2,
+0x30a4ffff, 0x3c190800, 0x8f393bcc, 0x3c1f0800,
+0x8fff3bd4, 0x33fc023, 0x3c010800, 0xac383bcc,
+0x17000006, 0x0, 0x3c050800, 0x8ca53bec,
+0x34bf0040, 0x3c010800, 0xac3f3bec, 0x12600042,
+0x8f820044, 0x8e430e10, 0x8f930044, 0xae630020,
+0x8e440e18, 0xae640024, 0x3c040800, 0x94843be0,
+0xe000697, 0x0, 0x8f860058, 0x8e8a0010,
+0x3c010800, 0xac263bf4, 0x140f809, 0x0,
+0x3c090800, 0x8d293bcc, 0x1520ff7e, 0x8f920058,
+0x9796005c, 0x3c14800e, 0x32350010, 0xe0006c6,
+0xa696002c, 0x56a00045, 0x8eeb0004, 0x32270040,
+0x54e0001e, 0x8ef10008, 0x8eec000c, 0x180f809,
+0x0, 0x8fbf0038, 0x8fb70034, 0x8fb60030,
+0x8fb5002c, 0x8fb40028, 0x8fb30024, 0x8fb20020,
+0x8fb1001c, 0x8fb00018, 0x3e00008, 0x27bd0040,
+0x92090109, 0x8f880030, 0x93e00, 0xe83025,
+0xae060080, 0x8e230020, 0x8e240024, 0xafa30010,
+0xae030e14, 0x8fa20010, 0xae020e10, 0xae040e1c,
+0xae040e18, 0xa0009e3, 0x36050900, 0x220f809,
+0x0, 0x8eec000c, 0x180f809, 0x0,
+0xa000a8b, 0x8fbf0038, 0x24080001, 0x24100001,
+0xa4400020, 0xa4480022, 0xa000a6f, 0xac500024,
+0x3c010800, 0xac203bd0, 0xa000a0a, 0x8e900000,
+0x3c010800, 0xac253bd0, 0xa000a0a, 0x8e900000,
+0x92110109, 0x2821, 0xe000734, 0x322400ff,
+0x8fbf0038, 0x8fb70034, 0x8fb60030, 0x8fb5002c,
+0x8fb40028, 0x8fb30024, 0x8fb20020, 0x8fb1001c,
+0x8fb00018, 0x3e00008, 0x27bd0040, 0x160f809,
+0x0, 0xa000a85, 0x32270040, 0x5260ffb1,
+0x9796005c, 0x8eb60e14, 0x8f940044, 0xae960020,
+0x8eaf0e1c, 0xae8f0024, 0xa000a7e, 0x9796005c,
+0x8f820000, 0x42180, 0x3e00008, 0x821021,
+0x3c078008, 0x34e20080, 0x90430069, 0x804021,
+0x10600009, 0x3c040100, 0x3c070800, 0x8ce73bf4,
+0x8f83001c, 0xe32023, 0x4800008, 0x93890008,
+0x14e30003, 0x1002021, 0x3e00008, 0x801021,
+0x3c040100, 0x3e00008, 0x801021, 0x1120000b,
+0x673823, 0x3c0d8000, 0x35ac0980, 0x918b007c,
+0x316a0002, 0x11400020, 0x24090034, 0xe9702b,
+0x15c0fff1, 0x1002021, 0xe93823, 0x2403fffc,
+0xa3c824, 0xe3c024, 0xf9782b, 0x15e0ffea,
+0x3082021, 0x30c40003, 0x41023, 0x14c00014,
+0x30490003, 0x3021, 0xa97821, 0x1e67021,
+0xee682b, 0x11a0ffe0, 0x3c040100, 0x2d380001,
+0x6c82b, 0x1054821, 0x3193824, 0x14e0ffda,
+0x2524fffc, 0x2402fffc, 0xa21824, 0x682021,
+0x3e00008, 0x801021, 0xa000af4, 0x24090030,
+0x3c0c8000, 0x35860980, 0x90cb007c, 0x316a0004,
+0x1540ffe9, 0x24060004, 0xa000b03, 0x3021,
+0x3c030800, 0x8c63005c, 0x8f820004, 0x27bdffe8,
+0xafbf0014, 0x10620005, 0xafb00010, 0x329c0,
+0x24a40280, 0xaf840000, 0xaf830004, 0x3c108000,
+0x36030a00, 0x94650032, 0xe000ad5, 0x30a43fff,
+0x8e040100, 0x3c180080, 0x370f0003, 0x82c821,
+0x2402ff80, 0x3226024, 0x3329007f, 0xcf940,
+0x3e94025, 0x332e0078, 0x3c0d1000, 0x10d5025,
+0x1cf5825, 0xae0c0028, 0x36080980, 0xae0c080c,
+0xae0b082c, 0xae0a0830, 0x91030069, 0x3c06800c,
+0x1263821, 0x10600006, 0xaf870020, 0x8d09003c,
+0x8d06006c, 0x1263823, 0x18e0007f, 0x0,
+0x3c0c8008, 0x358b0080, 0x3c0a8000, 0xa1600069,
+0x35500980, 0x8e020038, 0x3c068000, 0x34c50a00,
+0x90ad003c, 0x31a80020, 0x11000019, 0xaf82001c,
+0x240e0001, 0x3c198000, 0x37300a00, 0xa38e0008,
+0xaf800010, 0x8e040024, 0x8f850010, 0x24180008,
+0xaf80000c, 0xaf800014, 0x3c010800, 0xa4383bde,
+0x3c010800, 0xa4203bf2, 0xe000ad9, 0x3021,
+0x920f003c, 0x8fbf0014, 0x8fb00010, 0xf7142,
+0xaf820018, 0x27bd0018, 0x3e00008, 0x31c20001,
+0x90b90032, 0x240f0001, 0x333800ff, 0x182182,
+0x108f003f, 0x241f0002, 0x109f0062, 0x34c20ac0,
+0x3c038000, 0x34640a00, 0x8c990024, 0x1720001d,
+0x34660900, 0x90830030, 0x241f0005, 0x3062003f,
+0x105f004c, 0x24050001, 0x8f86000c, 0xa3850008,
+0xaf860014, 0xaf860010, 0x3c198000, 0x37300a00,
+0x8e040024, 0x8f850010, 0x24180008, 0x3c010800,
+0xa4383bde, 0x3c010800, 0xa4203bf2, 0xe000ad9,
+0x0, 0x920f003c, 0x8fbf0014, 0x8fb00010,
+0xf7142, 0xaf820018, 0x27bd0018, 0x3e00008,
+0x31c20001, 0x8c880008, 0x8c8d0024, 0x8ccb0064,
+0x3c198000, 0x37300a00, 0xaf8b0010, 0xa3800008,
+0x8e040024, 0x8f86000c, 0x8f850010, 0x10d6023,
+0x24180008, 0xaf8c0014, 0x3c010800, 0xa4383bde,
+0x3c010800, 0xa4203bf2, 0xe000ad9, 0x0,
+0x920f003c, 0x8fbf0014, 0x8fb00010, 0xf7142,
+0xaf820018, 0x27bd0018, 0x3e00008, 0x31c20001,
+0x90a70030, 0x30e3003f, 0x50640028, 0x34c50ac0,
+0x8caa0024, 0x15400022, 0x34c80900, 0x8cab0048,
+0x3c0c7fff, 0x3585ffff, 0x1651024, 0x3c188000,
+0xaf82000c, 0x37050900, 0x8f8e000c, 0x8caf0060,
+0x1cf682b, 0x15a00002, 0x1c02021, 0x8ca40060,
+0xa000b75, 0xaf84000c, 0x8d02006c, 0xa000b50,
+0x3c068000, 0x8c890048, 0x8f86000c, 0x3c0a7fff,
+0x3550ffff, 0x1303824, 0x3c048008, 0x24050001,
+0xaf870014, 0xac80006c, 0xa3850008, 0xa000b83,
+0xaf860010, 0x8c440014, 0xa000b75, 0xaf84000c,
+0x8d020068, 0xa000bbd, 0x3c188000, 0x34c40980,
+0x8c860070, 0x8cb00014, 0xd0482b, 0x11200004,
+0x0, 0x8c820070, 0xa000bbd, 0x3c188000,
+0x8ca20014, 0xa000bbd, 0x3c188000, 0x8f850010,
+0x27bdffe0, 0xafbf0018, 0xafb10014, 0x14a00008,
+0xafb00010, 0x3c048000, 0x34870a00, 0x90e60030,
+0x24020005, 0x30c3003f, 0x106200b7, 0x34840900,
+0x8f91000c, 0xa08021, 0x3c048000, 0x348e0a00,
+0x8dcd0004, 0x3c060800, 0x8cc63bd0, 0x31a73fff,
+0xe6602b, 0x55800001, 0xe03021, 0x938f0008,
+0x11e00076, 0xd0102b, 0x34990980, 0x9338007c,
+0x33040002, 0x10800077, 0x24030034, 0xc3f82b,
+0x17e000d6, 0xc33023, 0xd0102b, 0x3c010800,
+0xa4233bdc, 0x1440006d, 0x2001821, 0x3c040800,
+0x8c843bcc, 0x64282b, 0x54a00001, 0x602021,
+0x3c058000, 0x34a90a00, 0x9128003c, 0x3c010800,
+0xac243bd4, 0x31030020, 0x14600002, 0x4821,
+0x8ca90e18, 0x8f880018, 0x128502b, 0x1140005f,
+0x0, 0x3c050800, 0x8ca53bd4, 0xa96021,
+0x10c582b, 0x1160005c, 0xb0682b, 0x1093823,
+0xe02821, 0x3c010800, 0xac273bd4, 0x12000003,
+0x2402fffc, 0x10b0008c, 0x322a0003, 0xa2f824,
+0x3c010800, 0xa4203bf2, 0x3c010800, 0xac3f3bd4,
+0x3e02821, 0x8f840010, 0x12040006, 0x3c038008,
+0x8c6a006c, 0x2002021, 0xaf91000c, 0x25500001,
+0xac70006c, 0x8f8b0014, 0x858823, 0xaf910010,
+0x1652023, 0xaf840014, 0x12200002, 0x24070018,
+0x24070010, 0x3c0e8008, 0x35c60080, 0x90cd0068,
+0x240c0001, 0x3c010800, 0xa0273bf0, 0x31a700ff,
+0x10ec0047, 0x0, 0x14800018, 0x2821,
+0x3c0b8000, 0x91650109, 0x35710980, 0x8e230018,
+0x30a500ff, 0x35602, 0x24a30001, 0x3146007f,
+0x3070007f, 0x1206007e, 0x240cff80, 0x3c0f8008,
+0x35e90080, 0xa123004c, 0x3c080800, 0x8d083bec,
+0x240e0002, 0x3c010800, 0xa02e3c31, 0x350d0008,
+0x3c010800, 0xac2d3bec, 0x24050010, 0x3c1f8000,
+0x37e40a00, 0x9099003c, 0x33380020, 0x13000005,
+0xa02021, 0x24020001, 0x3c010800, 0xac223bd4,
+0x34a40001, 0x8fbf0018, 0x8fb10014, 0x8fb00010,
+0x801021, 0x3e00008, 0x27bd0020, 0x3c010800,
+0xa4203bdc, 0x1040ff95, 0x2001821, 0xa000c10,
+0xc01821, 0xa000c08, 0x24030030, 0x3c050800,
+0x8ca53bd4, 0xb0682b, 0x11a0ffa8, 0x0,
+0x3c040800, 0x94843bdc, 0x857821, 0x1e7702b,
+0x11c00007, 0x2ca20004, 0x3c1f6000, 0x8ff95404,
+0x3338003f, 0x1700ffe3, 0x24040042, 0x2ca20004,
+0x1040ff9a, 0x24040042, 0xa000c73, 0x8fbf0018,
+0x1528ffb9, 0x0, 0x8cc20018, 0x3c188000,
+0x24190002, 0x58f825, 0xacdf0018, 0x37040a00,
+0xa0d90068, 0x9089003c, 0x240f0004, 0xa01021,
+0x31280020, 0x3c010800, 0xa02f3c31, 0x11000002,
+0x24050010, 0x24020001, 0x3c010800, 0xac223bcc,
+0xa000c69, 0x3c1f8000, 0x8f880014, 0x8c890060,
+0x109282b, 0x14a00002, 0x1008821, 0x8c910060,
+0x3c0b8000, 0x8d640e18, 0x240a0001, 0x2202821,
+0x2203021, 0xa38a0008, 0xe000ad9, 0x2208021,
+0xa000bf7, 0xaf820018, 0xa1823, 0x12200007,
+0x30640003, 0x3c0d8000, 0x35a70980, 0x90ec007c,
+0x318b0004, 0x15600019, 0x248e0004, 0x3c010800,
+0xa4243bf2, 0x3c180800, 0x97183bf2, 0x3052021,
+0xc4782b, 0x11e0ff6c, 0x8f840010, 0x2ca60005,
+0x14c0ffa4, 0x24040042, 0x30b90003, 0x17200002,
+0xb91823, 0x24a3fffc, 0x3c010800, 0xac233bd4,
+0x3c010800, 0xa4203bf2, 0xa000c36, 0x602821,
+0xac3824, 0xa000c5c, 0xec1826, 0x3c010800,
+0xa42e3bf2, 0xa000cc6, 0x0, 0x3c010800,
+0xac203bd4, 0xa000c72, 0x24040042, 0x8f830014,
+0x3c0b8000, 0x356a0a00, 0x14600006, 0x1021,
+0x91460030, 0x24050005, 0x30c400ff, 0x10850003,
+0x0, 0x3e00008, 0x0, 0x91490048,
+0x312800ff, 0x839c2, 0x14e0fffa, 0x3c048008,
+0x3c060800, 0x94c63bdc, 0x3c030800, 0x8c633bf4,
+0x3c050800, 0x8ca53bd4, 0x3c180800, 0x97183bf2,
+0x66c821, 0x8c8e0004, 0x3257821, 0x1f86821,
+0x1ae6023, 0x1980001d, 0x0, 0x9158004c,
+0x8f8d0020, 0x956e0e10, 0x330f00ff, 0x8da90004,
+0x1cf3023, 0x8daa0000, 0x30cfffff, 0xf6100,
+0x12c2821, 0x3821, 0x1472021, 0xac182b,
+0x83c821, 0xada50004, 0xadb90000, 0x91b8000a,
+0x1f87021, 0xa1ae000a, 0x956c0e12, 0x8f8a0020,
+0xa54c0008, 0x95490038, 0x25280001, 0xa5480038,
+0x9147000d, 0x34eb0008, 0xa14b000d, 0x3e00008,
+0x0, 0x27bdffd8, 0xafb00018, 0x938f0008,
+0x8fb00014, 0x3c087fff, 0x8f870010, 0x3c0c8000,
+0x3518ffff, 0xafbf0020, 0xafb1001c, 0x35990a00,
+0x2181824, 0x932a003c, 0xf5fc0, 0x3c02bfff,
+0x2cf00001, 0x3449ffff, 0x6bf825, 0x3c080800,
+0x8d083bf4, 0x8f99001c, 0x3c180800, 0x97183bea,
+0x3e95824, 0x107f80, 0x3c07efff, 0x3c05f0ff,
+0x16f1825, 0x3c118000, 0x31490020, 0x34e2ffff,
+0x34adffff, 0x362e0980, 0x27a50010, 0x24060002,
+0x1194023, 0x270a0002, 0x621824, 0x808021,
+0x15200002, 0x5821, 0x8d8b0e1c, 0xa7aa0012,
+0x500003a, 0x24070000, 0x30ef00ff, 0xf3f00,
+0x674025, 0x3c028008, 0xafa80014, 0x344b0080,
+0x916a0068, 0x3c0f0800, 0x91ef3bf1, 0x3c09dfff,
+0x353fffff, 0xa602b, 0x3c020800, 0x94423be4,
+0xa3af0011, 0x11fc024, 0xccf40, 0x3191825,
+0x8fa70010, 0xafa30014, 0x3c1f0800, 0x93ff3bf3,
+0xa7a20016, 0x8fa80014, 0xed4824, 0x3c0b0100,
+0x3c0a0fff, 0x12bc825, 0x33f80003, 0x354cffff,
+0x10d7824, 0x3c027000, 0x32c3824, 0x181e00,
+0xe24825, 0x1e35825, 0xafab0014, 0xafa90010,
+0x91df007c, 0xa3bf0015, 0xe000072, 0x0,
+0x362d0a00, 0x91a6003c, 0x30c40020, 0x10800006,
+0x26020008, 0x3c110800, 0x96313be0, 0x262effff,
+0x3c010800, 0xa42e3be0, 0x8fbf0020, 0x8fb1001c,
+0x8fb00018, 0x3e00008, 0x27bd0028, 0x8f8a0018,
+0x16a602b, 0x5580ffc4, 0x24070001, 0xa000d50,
+0x30ef00ff, 0x93830008, 0x3c028000, 0x27bdffd8,
+0x34480a00, 0x805021, 0xafbf0020, 0x34460ac0,
+0x1002821, 0x1060000e, 0x34440980, 0x91070030,
+0x240b0005, 0x8f89000c, 0x30ec003f, 0x118b000b,
+0x3821, 0xafa90010, 0x3c0b8008, 0x8d69006c,
+0xafaa0018, 0xe00013a, 0xafa90014, 0xa3800008,
+0x8fbf0020, 0x3e00008, 0x27bd0028, 0x8d1f0048,
+0x3c180800, 0x8f183bd4, 0x8f990014, 0x3c027fff,
+0x8d080044, 0x3443ffff, 0xafa90010, 0x3c0b8008,
+0x8d69006c, 0x3e37024, 0x3197821, 0x1cf6823,
+0x1a83821, 0xafaa0018, 0xe00013a, 0xafa90014,
+0xa000da5, 0xa3800008, 0x3c058000, 0x34a60a00,
+0x90c7003c, 0x3c060800, 0x94c63bf2, 0x3c020800,
+0x8c423bec, 0x30e30020, 0x62400, 0x10600031,
+0x444825, 0x3c088008, 0x35050080, 0x90a30068,
+0x6821, 0x240c0001, 0x5021, 0x240b0001,
+0x3c188000, 0x370f0070, 0x8de80000, 0x3c078000,
+0xaf880024, 0x8cf90178, 0x720fffe, 0x34e50070,
+0x8ca20000, 0x3c030800, 0x8c630074, 0x3c0f0800,
+0x8def0070, 0x482023, 0x642821, 0xc021,
+0xa4302b, 0x1f87021, 0x1c64021, 0x3c010800,
+0xac250074, 0x3c010800, 0xac280070, 0xacec0148,
+0x3c020800, 0x8c423bf4, 0xa4ea0144, 0xa4eb0146,
+0xace2014c, 0x3c040800, 0x90843bf1, 0x3c038008,
+0xa0e40152, 0xace90154, 0xa4ed0158, 0x346d0080,
+0x91ac004c, 0x3c091000, 0xa0ec016d, 0x3e00008,
+0xace90178, 0x8cac0e1c, 0x3c0b0800, 0x8d6b3bd4,
+0x94aa0e16, 0x94ae0e14, 0x1666821, 0x314bffff,
+0xa000dcd, 0x31caffff, 0x3c048000, 0x34830a00,
+0x9065003c, 0x30a20020, 0x1040002b, 0x0,
+0x5821, 0x5021, 0x4821, 0x3c088000,
+0x35040070, 0x8c880000, 0x3c078000, 0xaf880024,
+0x8cec0178, 0x580fffe, 0x34ee0070, 0x8dcd0000,
+0x3c050800, 0x8ca50074, 0x3c040800, 0x8c840070,
+0x1a86023, 0xacc021, 0x1021, 0x30c302b,
+0x82c821, 0x3267821, 0x3c010800, 0xac380074,
+0x3c010800, 0xac2f0070, 0xaceb0148, 0x3c0e0800,
+0x8dce3bf4, 0x240dff91, 0x240b0040, 0xa4e90144,
+0xa4ea0146, 0xacee014c, 0xa0ed0152, 0xaceb0154,
+0xa4e00158, 0x90ea0109, 0x3c091000, 0xa0ea016d,
+0x3e00008, 0xace90178, 0x8c8b0e18, 0x94870e12,
+0x94860e10, 0x30eaffff, 0xa000e08, 0x30c9ffff,
+0x3c048000, 0x34830a00, 0x9065003c, 0x30a20020,
+0x10400039, 0x27bdfff8, 0x240c0001, 0x5021,
+0x240b0001, 0x3c088000, 0x35040070, 0x8c890000,
+0x3c088000, 0xaf890024, 0x8d0d0178, 0x5a0fffe,
+0x350e0070, 0x8dc70000, 0x3c050800, 0x8ca50074,
+0x3c040800, 0x8c840070, 0xe96823, 0xadc021,
+0x1021, 0x30d302b, 0x82c821, 0x3267821,
+0x3c010800, 0xac380074, 0x3c010800, 0xac2f0070,
+0x91090109, 0x3c0e0800, 0x91ce3c31, 0x3c0380ff,
+0xa3a90003, 0x8fad0000, 0x31c7007f, 0x3462ffff,
+0x1a82025, 0xafa40000, 0x9106010a, 0xa3a00002,
+0x7ce00, 0xa3a60001, 0x8fa50000, 0x240e3000,
+0x3c091000, 0xa2c024, 0x3197825, 0xad0f014c,
+0x27bd0008, 0xad0e0154, 0xa5000158, 0xad0c0148,
+0xa50a0144, 0x240aff80, 0xa50b0146, 0xa10a0152,
+0x3e00008, 0xad090178, 0x8c8c0e18, 0x94870e12,
+0x94860e10, 0x30ebffff, 0xa000e3e, 0x30caffff,
+0x27bdffe8, 0xafb00010, 0x3c108000, 0xafbf0014,
+0x36180a00, 0x970f0032, 0xe000ad5, 0x31e43fff,
+0x8e0e0100, 0x240dff80, 0x3c042000, 0x1c25821,
+0x16d6024, 0xc4940, 0x316a007f, 0x12a4025,
+0x1043825, 0x3c048008, 0xae070830, 0x34860080,
+0x90c50068, 0x24030002, 0x30a200ff, 0x10430004,
+0x8f9f000c, 0x8f990010, 0xac9f0068, 0xac990064,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x3c0a0800, 0x254a37fc, 0x3c090800, 0x252938d4,
+0x3c080800, 0x25082c74, 0x3c070800, 0x24e739e4,
+0x3c060800, 0x24c63638, 0x3c050800, 0x24a53390,
+0x3c040800, 0x24842fa0, 0x3c030800, 0x246336ec,
+0x3c020800, 0x24423488, 0x3c010800, 0xac2a3dfc,
+0x3c010800, 0xac293df8, 0x3c010800, 0xac283df4,
+0x3c010800, 0xac273e00, 0x3c010800, 0xac263e10,
+0x3c010800, 0xac253e08, 0x3c010800, 0xac243e04,
+0x3c010800, 0xac233e14, 0x3c010800, 0xac223e0c,
+0x3e00008, 0x0, 0x0 };
+u32 bce_TXP_b09FwData[(0x0/4) + 1] = { 0x0 };
+u32 bce_TXP_b09FwRodata[(0x30/4) + 1] = {
+0x80000940, 0x80000900, 0x80080100,
+0x80080080, 0x80080000, 0x800e0000, 0x80080080,
+0x80080000, 0x80000a80, 0x80000a00, 0x80000980,
+0x80000900, 0x0 };
+u32 bce_TXP_b09FwBss[(0x24c/4) + 1] = { 0x0 };
+u32 bce_TXP_b09FwSbss[(0x6c/4) + 1] = { 0x0 };
+u32 bce_TXP_b09FwSdata[(0x0/4) + 1] = { 0x0 };
+
+
+int bce_TPAT_b09FwReleaseMajor = 0x1;
+int bce_TPAT_b09FwReleaseMinor = 0x0;
+int bce_TPAT_b09FwReleaseFix = 0x0;
+u32 bce_TPAT_b09FwStartAddr = 0x08000488;
+u32 bce_TPAT_b09FwTextAddr = 0x08000400;
+int bce_TPAT_b09FwTextLen = 0x13a4;
+u32 bce_TPAT_b09FwDataAddr = 0x00000000;
+int bce_TPAT_b09FwDataLen = 0x0;
+u32 bce_TPAT_b09FwRodataAddr = 0x080017a4;
+int bce_TPAT_b09FwRodataLen = 0x4;
+u32 bce_TPAT_b09FwBssAddr = 0x08001800;
+int bce_TPAT_b09FwBssLen = 0x12b4;
+u32 bce_TPAT_b09FwSbssAddr = 0x080017c0;
+int bce_TPAT_b09FwSbssLen = 0x40;
+u32 bce_TPAT_b09FwSDataAddr = 0x00000000;
+int bce_TPAT_b09FwSDataLen = 0x0;
+u32 bce_TPAT_b09FwText[(0x13a4/4) + 1] = {
+0xa000122,
+0x0, 0x0, 0xd, 0x74706134,
+0x2e362e31, 0x36000000, 0x4061001, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x10000003, 0x0,
+0xd, 0xd, 0x3c020800, 0x244217c0,
+0x3c030800, 0x24632ab4, 0xac400000, 0x43202b,
+0x1480fffd, 0x24420004, 0x3c1d0800, 0x37bd2ffc,
+0x3a0f021, 0x3c100800, 0x26100488, 0x3c1c0800,
+0x279c17c0, 0xe00025e, 0x0, 0xd,
+0x2402ff80, 0x27bdffe0, 0x821024, 0xafb00010,
+0xaf420020, 0xafbf0018, 0xafb10014, 0x93650004,
+0x3084007f, 0x3441821, 0x3c020008, 0x621821,
+0x30a50020, 0x3608021, 0x3c080111, 0x277b0008,
+0x14a00002, 0x2466005c, 0x24660058, 0x92020004,
+0x97430104, 0x92040004, 0x3047000f, 0x3063ffff,
+0x30840040, 0x672823, 0x10800009, 0x4821,
+0x92020005, 0x30420004, 0x10400005, 0x0,
+0x10a00003, 0x0, 0x24a5fffc, 0x24090004,
+0x92020005, 0x30420004, 0x10400012, 0x0,
+0x10a00010, 0x0, 0x96020002, 0xa72021,
+0x1044025, 0x2442fffe, 0xa7421016, 0x92030004,
+0x2402ff80, 0x431024, 0x304200ff, 0x10400003,
+0x3c020400, 0xa000172, 0x1024025, 0x8cc20000,
+0xaf421018, 0x8f420178, 0x440fffe, 0x2402000a,
+0xa7420140, 0x96020002, 0x24040009, 0x30420007,
+0x21023, 0x30420007, 0xa7420142, 0x96020002,
+0x2442fffe, 0xa7420144, 0xa7400146, 0x97420104,
+0xa7420148, 0x8f420108, 0x30420020, 0x50400001,
+0x24040001, 0x92020004, 0x30420010, 0x14400002,
+0x34830010, 0x801821, 0xa743014a, 0x0,
+0x0, 0x0, 0x0, 0xaf481000,
+0x0, 0x0, 0x0, 0x0,
+0x8f421000, 0x441fffe, 0x3102ffff, 0x10400007,
+0x0, 0x92020004, 0x30420040, 0x14400003,
+0x0, 0x8f421018, 0xacc20000, 0x96020006,
+0x3042ffff, 0x24420002, 0x21043, 0x21040,
+0x3628821, 0x96220000, 0x1120000d, 0x3044ffff,
+0xa71021, 0x8f83003c, 0x8f45101c, 0x21082,
+0x21080, 0x431021, 0xac450000, 0x30a6ffff,
+0xe0005b7, 0x52c02, 0x402021, 0xa6220000,
+0x92030004, 0x2402ff80, 0x431024, 0x304200ff,
+0x1040001f, 0x0, 0x92020005, 0x30420002,
+0x1040001b, 0x0, 0x9742100c, 0x2442fffe,
+0xa7421016, 0x0, 0x3c020400, 0x34420030,
+0xaf421000, 0x0, 0x0, 0x0,
+0x0, 0x8f421000, 0x441fffe, 0x0,
+0x9742100c, 0x8f45101c, 0x3042ffff, 0x24420030,
+0x21082, 0x21080, 0x5b1021, 0xac450000,
+0x30a6ffff, 0xe0005b7, 0x52c02, 0xa6220000,
+0x96040002, 0x24840008, 0xe0001e7, 0x3084ffff,
+0x97440104, 0xe0001f5, 0x3084ffff, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x3c021000, 0x27bd0020,
+0x3e00008, 0xaf420178, 0x3084ffff, 0x30820007,
+0x8f850024, 0x10400002, 0x24830007, 0x3064fff8,
+0xa41021, 0x30421fff, 0x3421821, 0x247b4000,
+0xaf850028, 0xaf820024, 0x3e00008, 0xaf420084,
+0x3084ffff, 0x3082000f, 0x8f85002c, 0x8f860034,
+0x10400002, 0x2483000f, 0x3064fff0, 0xa41021,
+0x46182b, 0xaf850030, 0x462023, 0x14600002,
+0xaf82002c, 0xaf84002c, 0x8f82002c, 0x34048000,
+0x3421821, 0x641821, 0xaf83003c, 0x3e00008,
+0xaf420080, 0x8f820014, 0x10400008, 0x8f820004,
+0x8f82ffe4, 0x14400005, 0x8f820004, 0x3c02ffbf,
+0x3442ffff, 0x822024, 0x8f820004, 0x30430006,
+0x24020002, 0x1062000f, 0x3c020101, 0x2c620003,
+0x50400005, 0x24020004, 0x1060000f, 0x3c020001,
+0xa00022e, 0x0, 0x10620005, 0x24020006,
+0x1462000c, 0x3c020111, 0xa000227, 0x821025,
+0x3c020011, 0x821025, 0xaf421000, 0x24020001,
+0xa00022e, 0xaf82000c, 0x821025, 0xaf421000,
+0xaf80000c, 0x0, 0x0, 0x0,
+0x3e00008, 0x0, 0x8f82000c, 0x10400004,
+0x0, 0x8f421000, 0x441fffe, 0x0,
+0x3e00008, 0x0, 0x8f820010, 0x229c2,
+0x24a3fff0, 0x31842, 0x2444f800, 0x31140,
+0x431021, 0x21080, 0x431021, 0x21080,
+0x3c030800, 0x24631800, 0x2c840301, 0x14800013,
+0x433021, 0x8f840018, 0xa4102b, 0x1440000f,
+0x3021, 0xa41023, 0x21940, 0x621821,
+0x31880, 0x621821, 0x8f82001c, 0x821021,
+0x2442ffff, 0x45102b, 0x14400004, 0x31880,
+0x3c020800, 0x24421a14, 0x623021, 0x3e00008,
+0xc01021, 0x27bdffe0, 0xafbf0018, 0xafb10014,
+0xafb00010, 0x3c046008, 0x8c825000, 0x2403ff7f,
+0x3c066000, 0x431024, 0x3442380c, 0xac825000,
+0x8cc24c1c, 0x3c1a8000, 0x21602, 0x3042000f,
+0x10400007, 0xaf82001c, 0x8cc34c1c, 0x3c02001f,
+0x3442fc00, 0x621824, 0x319c2, 0xaf830018,
+0x8f420008, 0x275b4000, 0x34420001, 0xaf420008,
+0xaf800024, 0x3c02601c, 0xaf400080, 0xaf400084,
+0x8c450008, 0x8cc30808, 0x34028000, 0x3422021,
+0x2402fff0, 0x621824, 0x3c020080, 0x3c010800,
+0xac220420, 0x3c025709, 0xaf84003c, 0x14620004,
+0xaf850034, 0x24020001, 0xa00028e, 0xaf820014,
+0xaf800014, 0x3c028000, 0x34440070, 0x8c830000,
+0x8f420000, 0x38420001, 0x30420001, 0x10400018,
+0xaf830038, 0x804021, 0x603021, 0x8d070000,
+0x3c050800, 0x8ca5045c, 0x3c040800, 0x8c840458,
+0xe63023, 0x1021, 0xa62821, 0xa6302b,
+0x822021, 0x862021, 0x3c010800, 0xac25045c,
+0x3c010800, 0xac240458, 0x8f420000, 0x38420001,
+0x30420001, 0x1440ffed, 0xe03021, 0xaf870038,
+0x3c028000, 0x34420070, 0x8c470000, 0x8f860038,
+0x3c050800, 0x8ca5045c, 0x3c040800, 0x8c840458,
+0xe63823, 0x1021, 0xa72821, 0x822021,
+0x8f820014, 0xa7302b, 0x862021, 0x3c010800,
+0xac25045c, 0x3c010800, 0xac240458, 0x10400016,
+0x0, 0x97420104, 0x10400005, 0x8f830000,
+0x14600007, 0x2462ffff, 0xa0002d0, 0x2c62000a,
+0x2c620010, 0x50400004, 0x8f830000, 0x24620001,
+0xaf820000, 0x8f830000, 0x2c62000a, 0x14400003,
+0x2c620007, 0xa0002d7, 0xaf80ffe4, 0x10400002,
+0x24020001, 0xaf82ffe4, 0x8f430108, 0x8f440100,
+0x30622000, 0xaf830004, 0x10400008, 0xaf840010,
+0x3c020800, 0x8c42042c, 0x24420001, 0x3c010800,
+0xac22042c, 0xa0005b3, 0x3c024000, 0x30650200,
+0x14a00003, 0x24020f00, 0x14820260, 0x24020d00,
+0x97420104, 0x104002c8, 0x3c024000, 0x30624000,
+0x144000ad, 0x8f82003c, 0x8c440008, 0x8f420178,
+0x440fffe, 0x24020800, 0xaf420178, 0x24020008,
+0xa7420140, 0xa7400142, 0x97420104, 0x8f840004,
+0x3051ffff, 0x30820001, 0x10400007, 0x2208021,
+0x2623fffe, 0x24020002, 0x3070ffff, 0xa7420146,
+0xa000304, 0xa7430148, 0xa7400146, 0x3c020800,
+0x8c42043c, 0x1440000d, 0x8f830010, 0x30820020,
+0x14400002, 0x24030009, 0x24030001, 0x602021,
+0x8f830010, 0x24020900, 0x50620001, 0x34840004,
+0xa744014a, 0xa00031f, 0x0, 0x24020f00,
+0x14620005, 0x30820020, 0x14400006, 0x2403000d,
+0xa00031e, 0x24030005, 0x14400002, 0x24030009,
+0x24030001, 0xa743014a, 0x3c020800, 0x8c420420,
+0x3c040048, 0xe00020a, 0x442025, 0xe000233,
+0x0, 0x8f82000c, 0x1040003e, 0x0,
+0x8f421000, 0x3c030020, 0x431024, 0x10400039,
+0x8f820004, 0x30420002, 0x10400036, 0x0,
+0x97421014, 0x14400033, 0x0, 0x97421008,
+0x8f88003c, 0x3042ffff, 0x24420006, 0x21882,
+0x33880, 0xe83021, 0x30430001, 0x8cc40000,
+0x10600004, 0x30420003, 0xd, 0xa000360,
+0xe81021, 0x54400010, 0x3084ffff, 0x3c05ffff,
+0x852024, 0x851826, 0x3182b, 0x4102b,
+0x431024, 0x10400005, 0x0, 0x0,
+0xd, 0x0, 0x240001cb, 0x8cc20000,
+0xa00035f, 0x452025, 0x3883ffff, 0x3182b,
+0x4102b, 0x431024, 0x10400005, 0x0,
+0x0, 0xd, 0x0, 0x240001d4,
+0x8cc20000, 0x3444ffff, 0xe81021, 0xac440000,
+0x3c020800, 0x8c420430, 0x24420001, 0x3c010800,
+0xac220430, 0x8f620000, 0x8f84003c, 0xaf820008,
+0x8c830000, 0x3402ffff, 0x1462000f, 0x1021,
+0x3c050800, 0x8ca50454, 0x3c040800, 0x8c840450,
+0xb02821, 0xb0302b, 0x822021, 0x862021,
+0x3c010800, 0xac250454, 0x3c010800, 0xac240450,
+0xa0005a9, 0x24040008, 0x8c820000, 0x30420100,
+0x1040000f, 0x1021, 0x3c050800, 0x8ca5044c,
+0x3c040800, 0x8c840448, 0xb02821, 0xb0302b,
+0x822021, 0x862021, 0x3c010800, 0xac25044c,
+0x3c010800, 0xac240448, 0xa0005a9, 0x24040008,
+0x3c050800, 0x8ca50444, 0x3c040800, 0x8c840440,
+0xb02821, 0xb0302b, 0x822021, 0x862021,
+0x3c010800, 0xac250444, 0x3c010800, 0xac240440,
+0xa0005a9, 0x24040008, 0x8f620008, 0x8f620000,
+0x21602, 0x304300f0, 0x24020030, 0x10620005,
+0x24020040, 0x106200e0, 0x8f820020, 0xa0005b1,
+0x24420001, 0x14a00005, 0x0, 0x0,
+0xd, 0x0, 0x240001fe, 0x8f420178,
+0x440fffe, 0x0, 0xe00023b, 0x0,
+0x14400005, 0x408021, 0x0, 0xd,
+0x0, 0x24000205, 0x8e020000, 0x10400005,
+0x0, 0x0, 0xd, 0x0,
+0x24000208, 0x8f62000c, 0x4430003, 0x24020001,
+0xa000457, 0xae000000, 0xae020000, 0x8f82003c,
+0x8c480008, 0xa2000007, 0x8f65000c, 0x8f640004,
+0x30a3ffff, 0x42402, 0x852023, 0x308200ff,
+0x431021, 0x24420005, 0x23083, 0x2cc20081,
+0xa605000a, 0x14400005, 0xa2040004, 0x0,
+0xd, 0x0, 0x24000220, 0x8f85003c,
+0xe0005d5, 0x26040014, 0x8f620004, 0x8f430108,
+0xa6020008, 0x3c021000, 0x621824, 0x10600008,
+0x0, 0x97420104, 0x92030007, 0x2442ffec,
+0x34630002, 0x3045ffff, 0xa0003ec, 0xa2030007,
+0x97420104, 0x2442fff0, 0x3045ffff, 0x96060008,
+0x2cc20013, 0x54400005, 0x92030007, 0x92020007,
+0x34420001, 0xa2020007, 0x92030007, 0x24020001,
+0x10620005, 0x24020003, 0x1062000b, 0x8f82003c,
+0xa000409, 0x30c6ffff, 0x8f82003c, 0x3c04ffff,
+0x8c43000c, 0x641824, 0x651825, 0xac43000c,
+0xa000409, 0x30c6ffff, 0x3c04ffff, 0x8c430010,
+0x641824, 0x651825, 0xac430010, 0x30c6ffff,
+0x24c20002, 0x21083, 0xa2020005, 0x8f83003c,
+0x304200ff, 0x21080, 0x432821, 0x8ca80000,
+0x8ca20000, 0x24030004, 0x21702, 0x14430012,
+0x0, 0x97420104, 0x3c03ffff, 0x1031824,
+0x3042ffff, 0x461023, 0x2442fffe, 0x624025,
+0xaca80000, 0x92030005, 0x306200ff, 0x21080,
+0x501021, 0x90420014, 0x3042000f, 0x431021,
+0xa00043e, 0xa2020006, 0x8ca40004, 0x97420104,
+0x9603000a, 0x3088ffff, 0x3042ffff, 0x461023,
+0x2442ffd6, 0x21400, 0x1024025, 0xaca80004,
+0x92020007, 0x92040005, 0x24630028, 0x31883,
+0x641821, 0x34420004, 0xa2030006, 0xa2020007,
+0x8f820004, 0x2403fffb, 0x34420002, 0x431024,
+0xaf820004, 0x92030006, 0x8f87003c, 0x31880,
+0x701021, 0x8c440020, 0x3c02fff6, 0x3442ffff,
+0x824024, 0x671821, 0xae04000c, 0xac68000c,
+0x92050006, 0x3c03ff7f, 0x8e02000c, 0x52880,
+0xb02021, 0x3463ffff, 0x1033024, 0x94880026,
+0xa72821, 0x431024, 0xae02000c, 0xac860020,
+0xac880024, 0xaca80010, 0x24020010, 0xa7420140,
+0x24020002, 0xa7400142, 0xa7400144, 0xa7420146,
+0x97420104, 0x3c040008, 0x2442fffe, 0xa7420148,
+0x24020001, 0xe00020a, 0xa742014a, 0x9603000a,
+0x92020004, 0x431021, 0x24420002, 0x30420007,
+0x21023, 0x30420007, 0xe000233, 0xae020010,
+0x8f620000, 0x3c030800, 0x8c630444, 0x24040010,
+0xaf820008, 0x97420104, 0x3042ffff, 0x2442fffe,
+0x403821, 0x237c3, 0x3c020800, 0x8c420440,
+0x671821, 0x67282b, 0x461021, 0x451021,
+0x3c010800, 0xac230444, 0x3c010800, 0xac220440,
+0xa00053e, 0x0, 0x14a00005, 0x0,
+0x0, 0xd, 0x0, 0x2400029e,
+0x8f420178, 0x440fffe, 0x0, 0xe00023b,
+0x0, 0x14400005, 0x408021, 0x0,
+0xd, 0x0, 0x240002a5, 0x8e020000,
+0x54400006, 0x92020007, 0x0, 0xd,
+0x0, 0x240002a8, 0x92020007, 0x30420004,
+0x10400005, 0x8f820004, 0x2403fffb, 0x34420002,
+0x431024, 0xaf820004, 0x8f620004, 0x4430008,
+0x92020007, 0x92020006, 0x8e03000c, 0xae000000,
+0x21080, 0x501021, 0xac430020, 0x92020007,
+0x30420004, 0x54400009, 0x9602000a, 0x92020005,
+0x3c030001, 0x21080, 0x501021, 0x8c460018,
+0xc33021, 0xac460018, 0x9602000a, 0x92060004,
+0x27710008, 0x2202021, 0xc23021, 0x24c60005,
+0x26050014, 0xe0005d5, 0x63082, 0x92040006,
+0x8f650004, 0x3c027fff, 0x42080, 0x912021,
+0x8c830004, 0x3442ffff, 0xa22824, 0x651821,
+0xac830004, 0x92020007, 0x92040005, 0x92030004,
+0x30420004, 0x10400014, 0x96070008, 0x308400ff,
+0x42080, 0x912021, 0x8c860004, 0x97420104,
+0x9605000a, 0x306300ff, 0x3042ffff, 0x431021,
+0x451021, 0x30e3ffff, 0x431023, 0x2442ffd8,
+0x30c6ffff, 0x21400, 0xc23025, 0xac860004,
+0xa0004f2, 0x92030007, 0x308500ff, 0x52880,
+0xb12821, 0x8ca40000, 0x97420104, 0x306300ff,
+0x3042ffff, 0x431021, 0x471023, 0x3c03ffff,
+0x832024, 0x3042ffff, 0x822025, 0xaca40000,
+0x92030007, 0x24020001, 0x10620006, 0x0,
+0x24020003, 0x10620011, 0x0, 0xa000515,
+0x8e030010, 0x97420104, 0x92030004, 0x9605000a,
+0x8e24000c, 0x431021, 0x451021, 0x2442fff2,
+0x3c03ffff, 0x832024, 0x3042ffff, 0x822025,
+0xae24000c, 0xa000515, 0x8e030010, 0x97420104,
+0x92030004, 0x9605000a, 0x8e240010, 0x431021,
+0x451021, 0x2442ffee, 0x3c03ffff, 0x832024,
+0x3042ffff, 0x822025, 0xae240010, 0x8e030010,
+0x2402000a, 0xa7420140, 0xa7430142, 0x9603000a,
+0x92020004, 0x3c040040, 0x431021, 0xa7420144,
+0xa7400146, 0x97420104, 0xa7420148, 0x24020001,
+0xe00020a, 0xa742014a, 0xe000233, 0x0,
+0x8f620000, 0x92030004, 0x2021, 0xaf820008,
+0x97420104, 0x9606000a, 0x3042ffff, 0x621821,
+0x602821, 0x3c030800, 0x8c630444, 0x3c020800,
+0x8c420440, 0x651821, 0x441021, 0x65382b,
+0x471021, 0x3c010800, 0xac230444, 0x3c010800,
+0xac220440, 0x92040004, 0x862021, 0x2484000a,
+0x3084ffff, 0xe0001e7, 0x0, 0x97440104,
+0x3084ffff, 0xe0001f5, 0x0, 0x3c021000,
+0xaf420178, 0xa0005b0, 0x8f820020, 0x14820027,
+0x30620006, 0x97420104, 0x10400067, 0x3c024000,
+0x30624000, 0x10400005, 0x0, 0x0,
+0xd, 0x0, 0x24000396, 0x8f420178,
+0x440fffe, 0x24020800, 0xaf420178, 0x24020008,
+0xa7420140, 0xa7400142, 0x8f820004, 0x97430104,
+0x30420001, 0x10400007, 0x3070ffff, 0x2603fffe,
+0x24020002, 0xa7420146, 0xa7430148, 0xa000568,
+0x2402000d, 0xa7400146, 0x2402000d, 0xa742014a,
+0x8f620000, 0x24040008, 0xaf820008, 0xe0001e7,
+0x0, 0xa000542, 0x2002021, 0x10400042,
+0x3c024000, 0x93620000, 0x304300f0, 0x24020010,
+0x10620005, 0x24020070, 0x10620035, 0x0,
+0xa0005b0, 0x8f820020, 0x8f620000, 0x97430104,
+0x3050ffff, 0x3071ffff, 0x8f420178, 0x440fffe,
+0x32020007, 0x21023, 0x30420007, 0x2403000a,
+0x2604fffe, 0xa7430140, 0xa7420142, 0xa7440144,
+0xa7400146, 0xa7510148, 0x8f420108, 0x30420020,
+0x14400002, 0x24030009, 0x24030001, 0xa743014a,
+0xe00020a, 0x3c040040, 0xe000233, 0x0,
+0x3c070800, 0x8ce70444, 0x2111021, 0x2442fffe,
+0x3c060800, 0x8cc60440, 0x401821, 0xe33821,
+0x1021, 0x8f650000, 0xe3402b, 0xc23021,
+0x26040008, 0xc83021, 0x3084ffff, 0xaf850008,
+0x3c010800, 0xac270444, 0x3c010800, 0xac260440,
+0xe0001e7, 0x0, 0xa000542, 0x2202021,
+0xe000139, 0x0, 0x8f820020, 0x24420001,
+0xaf820020, 0x3c024000, 0xaf420138, 0x0,
+0xa00028f, 0x3c028000, 0x3084ffff, 0x30c6ffff,
+0x52c00, 0xa62825, 0x3882ffff, 0x451021,
+0x45282b, 0x451021, 0x21c02, 0x3042ffff,
+0x431021, 0x21c02, 0x3042ffff, 0x431021,
+0x3842ffff, 0x3e00008, 0x3042ffff, 0x3084ffff,
+0x30a5ffff, 0x1821, 0x10800007, 0x0,
+0x30820001, 0x10400002, 0x42042, 0x651821,
+0xa0005cb, 0x52840, 0x3e00008, 0x601021,
+0x10c00006, 0x24c6ffff, 0x8ca20000, 0x24a50004,
+0xac820000, 0xa0005d5, 0x24840004, 0x3e00008,
+0x0, 0x10a00008, 0x24a3ffff, 0xac860000,
+0x0, 0x0, 0x2402ffff, 0x2463ffff,
+0x1462fffa, 0x24840004, 0x3e00008, 0x0,
+0x0 };
+u32 bce_TPAT_b09FwData[(0x0/4) + 1] = { 0x0 };
+u32 bce_TPAT_b09FwRodata[(0x4/4) + 1] = {
+0x1,
+0x0 };
+u32 bce_TPAT_b09FwBss[(0x12b4/4) + 1] = { 0x0 };
+u32 bce_TPAT_b09FwSbss[(0x40/4) + 1] = { 0x0 };
+u32 bce_TPAT_b09FwSdata[(0x0/4) + 1] = { 0x0 };
+
+
+int bce_COM_b09FwReleaseMajor = 0x1;
+int bce_COM_b09FwReleaseMinor = 0x0;
+int bce_COM_b09FwReleaseFix = 0x0;
+u32 bce_COM_b09FwStartAddr = 0x080000f8;
+u32 bce_COM_b09FwTextAddr = 0x08000000;
+int bce_COM_b09FwTextLen = 0x4ac8;
+u32 bce_COM_b09FwDataAddr = 0x00000000;
+int bce_COM_b09FwDataLen = 0x0;
+u32 bce_COM_b09FwRodataAddr = 0x08004ac8;
+int bce_COM_b09FwRodataLen = 0x30;
+u32 bce_COM_b09FwBssAddr = 0x08004b58;
+int bce_COM_b09FwBssLen = 0xc0;
+u32 bce_COM_b09FwSbssAddr = 0x08004b20;
+int bce_COM_b09FwSbssLen = 0x38;
+u32 bce_COM_b09FwSDataAddr = 0x00000000;
+int bce_COM_b09FwSDataLen = 0x0;
+u32 bce_COM_b09FwText[(0x4ac8/4) + 1] = {
+0xa00003e,
+0x0, 0x0, 0xd, 0x636f6d34,
+0x2e362e31, 0x36000000, 0x4061002, 0x0,
+0x3, 0x14, 0x32, 0x3,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x10, 0x136, 0xea60,
+0x1, 0x0, 0x0, 0x0,
+0x8, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x2, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x10,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x10000003, 0x0,
+0xd, 0xd, 0x3c020800, 0x24424b20,
+0x3c030800, 0x24634c18, 0xac400000, 0x43202b,
+0x1480fffd, 0x24420004, 0x3c1d0800, 0x37bd9ffc,
+0x3a0f021, 0x3c100800, 0x261000f8, 0x3c1c0800,
+0x279c4b20, 0xe000273, 0x0, 0xd,
+0x27bdffe8, 0x3c028000, 0xafb00010, 0xafbf0014,
+0x34500100, 0x92020009, 0x1040001a, 0x24030001,
+0x3c020800, 0x8c420020, 0x10400016, 0x1821,
+0xe000d71, 0x0, 0x96030008, 0x3c060800,
+0x94c64bfe, 0x8e040018, 0x8f82002c, 0x9605000c,
+0x31c00, 0x661825, 0xac440000, 0xac450004,
+0x24040001, 0xac400008, 0xac40000c, 0xac400010,
+0xac400014, 0xac400018, 0xe000d98, 0xac43001c,
+0x1821, 0x8fbf0014, 0x8fb00010, 0x601021,
+0x3e00008, 0x27bd0018, 0x27bdffe8, 0xafbf0010,
+0x3c028000, 0x94420108, 0x30437000, 0x24022000,
+0x1062000a, 0x28642001, 0x54800012, 0x8fbf0010,
+0x24024000, 0x10620008, 0x24026000, 0x1062000a,
+0x8fbf0010, 0xa000097, 0x1021, 0x8fbf0010,
+0xa000055, 0x27bd0018, 0xe000433, 0x0,
+0xa000096, 0x8fbf0010, 0xe000c81, 0x0,
+0x8fbf0010, 0x1021, 0x3e00008, 0x27bd0018,
+0x3c020800, 0x8c420020, 0x27bdffe8, 0x10400028,
+0xafbf0010, 0xe000d71, 0x0, 0x3c058000,
+0x94a20108, 0x94a3010c, 0x8f86002c, 0x3042003e,
+0x3063ffff, 0x21400, 0x431025, 0xacc20000,
+0x8ca20100, 0x3c070800, 0x94e74bfe, 0x8fbf0010,
+0xacc20004, 0x94a30116, 0x94a4010e, 0x3c022000,
+0x31c00, 0x3084ffff, 0x641825, 0xacc30008,
+0xe23825, 0x94a20110, 0x94a30112, 0x24040001,
+0x21400, 0x3063ffff, 0x431025, 0xacc2000c,
+0x94a20114, 0x27bd0018, 0x3042ffff, 0xacc20010,
+0xacc00014, 0xacc00018, 0xa000d98, 0xacc7001c,
+0x8fbf0010, 0x3e00008, 0x27bd0018, 0x3c068000,
+0x8cc202b8, 0x24030001, 0x4410008, 0x802821,
+0x3c020800, 0x8c420060, 0x24420001, 0x3c010800,
+0xac220060, 0x3e00008, 0x601021, 0x8c830020,
+0x94820016, 0xacc30280, 0x2442fffc, 0xa4c20284,
+0x3c020800, 0x8c42005c, 0x8c840004, 0x94a3000e,
+0x24420001, 0x3c010800, 0xac22005c, 0x3c021000,
+0xa4c30286, 0xacc40288, 0x1821, 0xacc202b8,
+0x3e00008, 0x601021, 0x3c020800, 0x8c420020,
+0x27bdffe8, 0x1040002b, 0xafbf0010, 0xe000d71,
+0x0, 0x3c058000, 0x94a20108, 0x94a3010c,
+0x8f86002c, 0x3042003e, 0x3063ffff, 0x21400,
+0x431025, 0xacc20000, 0x8ca20100, 0x3c070800,
+0x94e74bfe, 0x8fbf0010, 0xacc20004, 0x94a30116,
+0x94a4010e, 0x3c022000, 0x31c00, 0x3084ffff,
+0x641825, 0xacc30008, 0xe23825, 0x94a20110,
+0x94a30112, 0x24040001, 0x21400, 0x3063ffff,
+0x431025, 0xacc2000c, 0x94a20114, 0x27bd0018,
+0x3042ffff, 0xacc20010, 0x8ca20118, 0xacc20014,
+0x90a2010b, 0x304200ff, 0xacc20018, 0xa000d98,
+0xacc7001c, 0x8fbf0010, 0x3e00008, 0x27bd0018,
+0x27bdffe0, 0xafb00010, 0x3c108000, 0xafb20018,
+0xafbf001c, 0xafb10014, 0x36120100, 0x9243000b,
+0x2402001a, 0x96510008, 0x1462005b, 0x2821,
+0x32220001, 0x10400018, 0x0, 0x8e420000,
+0x22340, 0x3c02003f, 0x3442ffff, 0x44102b,
+0x10400004, 0x3c030040, 0x96420014, 0xa00013b,
+0x832021, 0x8e030100, 0x24020100, 0x54620006,
+0x96420014, 0x3c028008, 0x94420004, 0x3042000f,
+0x22500, 0x96420014, 0x821025, 0xae020080,
+0xa00016f, 0x0, 0x3c020800, 0x8c420020,
+0x10400028, 0x0, 0xe000d71, 0x0,
+0x96020108, 0x9603010c, 0x8f85002c, 0x3042003e,
+0x3063ffff, 0x21400, 0x431025, 0xaca20000,
+0x8e020100, 0x3c060800, 0x94c64bfe, 0xaca20004,
+0x96030116, 0x9604010e, 0x3c022000, 0x31c00,
+0x3084ffff, 0x641825, 0xaca30008, 0xc23025,
+0x96020110, 0x96030112, 0x24040001, 0x21400,
+0x3063ffff, 0x431025, 0xaca2000c, 0x96020114,
+0x3042ffff, 0xaca20010, 0x8e020118, 0xaca20014,
+0x9202010b, 0x304200ff, 0xaca20018, 0xe000d98,
+0xaca6001c, 0x3c020800, 0x8c420040, 0x24420001,
+0x3c010800, 0xac220040, 0x3c030800, 0x8c630044,
+0x32220002, 0x32240004, 0x24630001, 0x3c010800,
+0xac230044, 0x10800008, 0x2282b, 0x2402021,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0xa0000c8, 0x27bd0020, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0xa01021, 0x3e00008,
+0x27bd0020, 0x27bdffe0, 0x3c058000, 0xafb10014,
+0xafbf0018, 0xafb00010, 0x34b10100, 0x9223000b,
+0x24020003, 0x14620043, 0x96300008, 0x32020001,
+0x10400016, 0x3c02003f, 0x8e230000, 0x3442ffff,
+0x32340, 0x44102b, 0x50400005, 0x24020100,
+0x96220014, 0x3c030040, 0xa0001a4, 0x832021,
+0x54620006, 0x96220014, 0x3c028008, 0x94420004,
+0x3042000f, 0x22500, 0x96220014, 0x821025,
+0xaca20080, 0xa0001af, 0x0, 0xe000099,
+0x0, 0x3c020800, 0x8c420040, 0x24420001,
+0x3c010800, 0xac220040, 0x3c020800, 0x8c420044,
+0x32030004, 0x24420001, 0x3c010800, 0xac220044,
+0x10600007, 0x32020002, 0x2202021, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0xa0000c8, 0x27bd0020,
+0x10400015, 0x8fbf0018, 0x3c048000, 0x8c830104,
+0x3c026020, 0xac430014, 0x8c420004, 0x240301fe,
+0x304203ff, 0x1443000c, 0x8fbf0018, 0x8c820100,
+0x219c2, 0x2462fffc, 0x2c420008, 0x10400003,
+0x24040002, 0x2462fffd, 0x442004, 0x3c026000,
+0xac446914, 0x8fbf0018, 0x8fb10014, 0x8fb00010,
+0x1021, 0x3e00008, 0x27bd0020, 0x3c048000,
+0x8c830100, 0x24020100, 0x50620003, 0x3c028008,
+0xd, 0x3c028008, 0x94430004, 0x1021,
+0x3063000f, 0x31d00, 0x3e00008, 0xac830080,
+0x3c028008, 0x34420080, 0x90420000, 0x3e00008,
+0xaf800000, 0x3e00008, 0x1021, 0x27bdffe8,
+0x3c028000, 0xafbf0014, 0xafb00010, 0x8c430100,
+0xac430020, 0x8c430104, 0xac4300a8, 0x9050010b,
+0xe0001e5, 0x321000ff, 0x3c020800, 0x24424b58,
+0x101880, 0x2e10001d, 0x16000005, 0x621021,
+0xe0001ea, 0x401821, 0xa000205, 0x0,
+0x8c420000, 0x40f809, 0x0, 0x401821,
+0x3c020800, 0x8c420034, 0x10600005, 0x24440001,
+0x3c028000, 0x8c430104, 0x3c026020, 0xac430014,
+0x8fbf0014, 0x8fb00010, 0x3c034000, 0x3c028000,
+0x27bd0018, 0xac430138, 0x3c010800, 0xac240034,
+0x3e00008, 0x0, 0x27bdffe8, 0xafbf0014,
+0xafb00010, 0x3c108000, 0x8e020140, 0xe0001e5,
+0xae020020, 0xe000399, 0x0, 0x3c040800,
+0x24840038, 0x8c820000, 0x3c034000, 0xae030178,
+0x8fbf0014, 0x8fb00010, 0x24420001, 0x27bd0018,
+0x3e00008, 0xac820000, 0x27bdffe8, 0xafb00010,
+0xafbf0014, 0x3c108000, 0x8e020180, 0xe0001e5,
+0xae020020, 0x8e030180, 0x24020f00, 0x54620008,
+0x3c028008, 0x8e020188, 0x3c0300e0, 0x3042ffff,
+0x431025, 0xae020080, 0xa00024a, 0x3c028000,
+0x34420080, 0x90420000, 0x24030050, 0x304200ff,
+0x14430008, 0x3c028000, 0xe000379, 0x0,
+0x14400004, 0x3c028000, 0xe000967, 0x0,
+0x3c028000, 0x3c034000, 0xac4301b8, 0x3c020800,
+0x8c42003c, 0x8fbf0014, 0x8fb00010, 0x24420001,
+0x3c010800, 0xac22003c, 0x3e00008, 0x27bd0018,
+0x3e00008, 0x1021, 0x3c058000, 0x34a40100,
+0x94820008, 0x30430002, 0x30420004, 0x10400003,
+0x0, 0xa0000c8, 0x0, 0x10600005,
+0x24040001, 0x3c020800, 0x8c420084, 0xa00026f,
+0x24420001, 0x8ca30104, 0x8f82000c, 0x10430008,
+0x2021, 0x8ca30104, 0x3c020800, 0x8c420084,
+0xaf83000c, 0x24420001, 0x3c010800, 0xac220084,
+0x3e00008, 0x801021, 0x27bdffe8, 0x3c036010,
+0xafbf0014, 0xafb00010, 0x8c655000, 0x2402ff7f,
+0x3c048000, 0xa22824, 0x34a5380c, 0x24020037,
+0xac655000, 0xac820008, 0x24020c80, 0xac820024,
+0x3c060800, 0x24c607a8, 0x3c020800, 0x24424b58,
+0x2405001c, 0x24a5ffff, 0xac460000, 0x4a1fffd,
+0x24420004, 0x3c020800, 0x244201ec, 0x3c010800,
+0xac224b60, 0x3c020800, 0x24420618, 0x3c010800,
+0xac224b64, 0x3c020800, 0x24420d10, 0x3c010800,
+0xac224ba0, 0x3c020800, 0x24420464, 0x3c030800,
+0x24630954, 0x3c040800, 0x2484095c, 0x3c050800,
+0x24a52c94, 0x3c010800, 0xac224bc0, 0x3c020800,
+0x24420760, 0x3c010800, 0xac264ba8, 0x3c010800,
+0xac254bb4, 0x3c010800, 0xac234bbc, 0x3c010800,
+0xac244bc4, 0x3c010800, 0xac224bc8, 0x3c010800,
+0xac234b5c, 0x3c010800, 0xac204b68, 0x3c010800,
+0xac204b6c, 0x3c010800, 0xac204b70, 0x3c010800,
+0xac204b74, 0x3c010800, 0xac204b78, 0x3c010800,
+0xac204b7c, 0x3c010800, 0xac204b80, 0x3c010800,
+0xac244b84, 0x3c010800, 0xac204b88, 0x3c010800,
+0xac204b8c, 0x3c010800, 0xac204b90, 0x3c010800,
+0xac204b94, 0x3c010800, 0xac204b98, 0x3c010800,
+0xac264b9c, 0x3c010800, 0xac264ba4, 0x3c010800,
+0xac204bac, 0x3c010800, 0xac254bb0, 0x3c010800,
+0xac234bb8, 0xe00055a, 0x0, 0x3c028000,
+0x34420070, 0x8c420000, 0xaf820010, 0x3c030800,
+0x8c630020, 0x8f820004, 0x10430004, 0x3c058000,
+0xe000d37, 0xaf830004, 0x3c058000, 0x34a90070,
+0x8d280000, 0x8f840010, 0x3c070800, 0x8ce700bc,
+0x3c060800, 0x8cc600b8, 0x1042023, 0x1021,
+0xe43821, 0xc23021, 0xe4202b, 0xc43021,
+0x3c010800, 0xac2700bc, 0x3c010800, 0xac2600b8,
+0x8cb00000, 0x32020007, 0x1040ffe4, 0xaf880010,
+0x8d260000, 0x3c050800, 0x8ca500bc, 0x3c040800,
+0x8c8400b8, 0xc83023, 0xa62821, 0x1021,
+0xa6302b, 0x822021, 0x862021, 0x32070001,
+0x3c010800, 0xac2500bc, 0x3c010800, 0xac2400b8,
+0x10e00004, 0x32020002, 0xe0001ec, 0x0,
+0x32020002, 0x10400004, 0x32020004, 0xe000217,
+0x0, 0x32020004, 0x5040ffc5, 0x3c028000,
+0xe00022b, 0x0, 0xa0002d5, 0x3c028000,
+0x3c029000, 0x34420001, 0x822025, 0x3c028000,
+0xac440020, 0x3c038000, 0x8c620020, 0x440fffe,
+0x0, 0x3e00008, 0x0, 0x3c028000,
+0x34430001, 0x832025, 0x3e00008, 0xac440020,
+0x27bdffe0, 0xafb10014, 0xafb00010, 0x808821,
+0xafbf0018, 0xe000315, 0x30b000ff, 0x8f83ffac,
+0x2202021, 0x90620025, 0x2028025, 0xa0700025,
+0x8c700018, 0x3c028000, 0xe000320, 0x2028024,
+0x1600000a, 0x8fbf0018, 0x3c038000, 0x8c6201f8,
+0x440fffe, 0x24020002, 0xac7101c0, 0xa06201c4,
+0x3c021000, 0xac6201f8, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x3e00008, 0x27bd0020, 0x27bdffb8,
+0xafbf0044, 0xafb00040, 0x3c078000, 0x8ce60104,
+0x8f82ffa8, 0xafa60028, 0x8c450020, 0xafa5002c,
+0x8c44003c, 0xafa40030, 0x8c430040, 0xafa30034,
+0x8c42004c, 0xafa60010, 0xafa50014, 0xafa20020,
+0xafa20038, 0x3c020800, 0x8c420020, 0xafa40018,
+0xafa3001c, 0x8cf00100, 0x10400019, 0x8fbf0044,
+0xe000d71, 0x0, 0x8f83002c, 0x3c050800,
+0x94a54bfe, 0x3c024018, 0xac700000, 0xa22825,
+0x8fa20010, 0x24040001, 0xac620004, 0x8fa20014,
+0xac620008, 0x8fa20018, 0xac62000c, 0x8fa2001c,
+0xac620010, 0x8fa20020, 0xac620014, 0x8fa20024,
+0xac620018, 0xe000d98, 0xac65001c, 0x8fbf0044,
+0x8fb00040, 0x1021, 0x3e00008, 0x27bd0048,
+0x27bdffe8, 0xafbf0010, 0x3c038000, 0x94620184,
+0x30420200, 0x10400005, 0x2021, 0xe000fe3,
+0x0, 0xa00038f, 0x24040001, 0x8c620188,
+0x440000a, 0x8fbf0010, 0x8c620188, 0x3c03ff00,
+0x431024, 0x3c030400, 0x14430004, 0x24040001,
+0x8f82ffac, 0x90420008, 0x8fbf0010, 0x801021,
+0x3e00008, 0x27bd0018, 0x8f82ffb0, 0x24050001,
+0xa040001a, 0x3c028000, 0xa000325, 0x8c440140,
+0x27bdffe0, 0xafb10014, 0x8f91ffac, 0xafbf001c,
+0xafb20018, 0xafb00010, 0x92220000, 0x24030020,
+0x304200ff, 0x1043000c, 0x3c028000, 0x92220000,
+0x24030030, 0x304200ff, 0x10430007, 0x3c028000,
+0x92220000, 0x24030050, 0x304200ff, 0x14430081,
+0x8fbf001c, 0x3c028000, 0x90420148, 0x304200ff,
+0x2443ffff, 0x2c620005, 0x1040007a, 0x8fbf001c,
+0x31080, 0x3c030800, 0x24634ad8, 0x431021,
+0x8c420000, 0x400008, 0x0, 0x3c118000,
+0x8e240140, 0xe000315, 0x8f92ffac, 0x8e50000c,
+0x8e220144, 0x16020002, 0x24020001, 0xae42000c,
+0xe000320, 0x8e240140, 0x8e220144, 0x14500006,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0xa000f51, 0x27bd0020, 0x8e42000c, 0xa000427,
+0x0, 0x96220010, 0x3c048000, 0x8c830144,
+0x3042ffff, 0x14620009, 0x0, 0x24020001,
+0xa6220010, 0x8c820140, 0xac820200, 0x3c021000,
+0xac820238, 0xa00042e, 0x8fbf001c, 0x96220010,
+0xa000427, 0x0, 0x92220000, 0x24030020,
+0x304200ff, 0x1443000b, 0x3c128000, 0x96220012,
+0x3c038000, 0x8c630144, 0x3042ffff, 0x14620018,
+0x0, 0x24020001, 0xa6220012, 0xa000400,
+0x8fbf001c, 0x8e440140, 0xe000315, 0x0,
+0x96220012, 0x8e430144, 0x3050ffff, 0x16030002,
+0x24020001, 0xa6220012, 0xe000320, 0x8e440140,
+0x8e420144, 0x16020006, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0xa000393, 0x27bd0020,
+0x96220012, 0xa000427, 0x0, 0x96220014,
+0x3c038000, 0x8c630144, 0x3042ffff, 0x14620009,
+0x0, 0x24020001, 0xa6220014, 0x8fbf001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0xa001268,
+0x27bd0020, 0x96220014, 0xa000427, 0x0,
+0x96220016, 0x3c038000, 0x8c630144, 0x3042ffff,
+0x14620008, 0x24020001, 0xa6220016, 0x8fbf001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0xa000b0b,
+0x27bd0020, 0x96220016, 0x14400006, 0x8fbf001c,
+0x3c020800, 0x8c420070, 0x24420001, 0x3c010800,
+0xac220070, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0x27bdffe0, 0x3c028000,
+0xafb10014, 0xafbf001c, 0xafb20018, 0xafb00010,
+0x34510100, 0x92230009, 0x8c500100, 0x2402001f,
+0x106200aa, 0x28620020, 0x10400018, 0x24020038,
+0x2862000a, 0x1040000c, 0x2402000b, 0x28620008,
+0x1040002c, 0x0, 0x4600100, 0x28620002,
+0x14400028, 0x24020006, 0x10620026, 0x8fbf001c,
+0xa00054a, 0x8fb20018, 0x10620060, 0x2862000b,
+0x144000f7, 0x8fbf001c, 0x2402000e, 0x10620077,
+0x8fb20018, 0xa00054a, 0x0, 0x106200d3,
+0x28620039, 0x1040000a, 0x24020080, 0x24020036,
+0x106200e3, 0x28620037, 0x104000c5, 0x24020035,
+0x106200d8, 0x8fbf001c, 0xa00054a, 0x8fb20018,
+0x1062002d, 0x28620081, 0x10400006, 0x240200c8,
+0x24020039, 0x106200c9, 0x8fbf001c, 0xa00054a,
+0x8fb20018, 0x106200a2, 0x8fbf001c, 0xa00054a,
+0x8fb20018, 0x3c020800, 0x8c420020, 0x104000d4,
+0x8fbf001c, 0xe000d71, 0x0, 0x3c028000,
+0x34420100, 0x8c440000, 0x8f83002c, 0x94470008,
+0x3c050800, 0x94a54bfe, 0xac640000, 0x8c440004,
+0x73c00, 0xe53825, 0xac640004, 0x8c440018,
+0x9446000c, 0xac640008, 0x8c45001c, 0x63400,
+0x24040001, 0xac65000c, 0x9042000a, 0xc23025,
+0xac660010, 0xac600014, 0xac600018, 0xac67001c,
+0xa00050c, 0x8fbf001c, 0x3c020800, 0x8c420020,
+0x104000b3, 0x8fbf001c, 0xe000d71, 0x0,
+0x96240008, 0x3c030800, 0x94634bfe, 0x9625000c,
+0x42202, 0x9626000e, 0x8f82002c, 0x42600,
+0x832025, 0x52c00, 0x3c030080, 0xa62825,
+0x832025, 0xac400000, 0xac400004, 0xac400008,
+0xac40000c, 0xac450010, 0xac400014, 0xac400018,
+0xac44001c, 0xa00050b, 0x24040001, 0x9622000c,
+0x14400017, 0x8f91ffac, 0x92220005, 0x30420010,
+0x14400013, 0x0, 0xe000315, 0x2002021,
+0x92220005, 0x2002021, 0x34420010, 0xe000320,
+0xa2220005, 0x92220000, 0x24030020, 0x304200ff,
+0x10430086, 0x2002021, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0xa00104c, 0x27bd0020,
+0xd, 0xa000549, 0x8fbf001c, 0x3c020800,
+0x8c420020, 0x1040007a, 0x8fbf001c, 0xe000d71,
+0x0, 0x8e220004, 0x8f83002c, 0x9624000c,
+0x3c050800, 0x94a54bfe, 0xac620000, 0x3c028008,
+0x9442002c, 0x42400, 0x3042ffff, 0x822025,
+0x3c02400e, 0xa22825, 0xac640004, 0xac600008,
+0xac60000c, 0xac600010, 0xac600014, 0xac600018,
+0xac65001c, 0xa00050b, 0x24040001, 0xe000315,
+0x2002021, 0x8f92ffb0, 0x2002021, 0xe000320,
+0xa640000c, 0x2002021, 0xe000325, 0x24050001,
+0x3c020800, 0x8c420020, 0x10400055, 0x8fbf001c,
+0xe000d71, 0x0, 0x9622000c, 0x8f83002c,
+0x8f84ffac, 0x21400, 0xac700000, 0xac620004,
+0xac600008, 0x8c820038, 0x3c050800, 0x94a54bfe,
+0xac62000c, 0x8c86003c, 0x3c02401f, 0xa22825,
+0xac660010, 0x8e420004, 0x24040001, 0xac620014,
+0xac600018, 0xac65001c, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0xa000d98, 0x27bd0020,
+0x8f82ffac, 0x24030020, 0x90420000, 0x304200ff,
+0x10430033, 0x8fbf001c, 0xe000f37, 0x0,
+0x1040002f, 0x8fbf001c, 0x3c038000, 0x8c6201f8,
+0x440fffe, 0x24020002, 0xac7001c0, 0xa06201c4,
+0x3c021000, 0xac6201f8, 0xa000549, 0x8fbf001c,
+0x2002021, 0x8fbf001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0xa000e80, 0x27bd0020, 0x9625000c,
+0x2002021, 0x8fbf001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0xa000ea5, 0x27bd0020, 0x2002021,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0xa000ed0,
+0x27bd0020, 0x9225000d, 0x2002021, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0xa000f21, 0x27bd0020,
+0x2002021, 0x8fbf001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0xa000ef8, 0x27bd0020, 0x8fbf001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0020, 0x3c038000, 0x8c620278, 0x440fffe,
+0x24020002, 0xac640240, 0xa0620244, 0x3c021000,
+0x3e00008, 0xac620278, 0x411c0, 0x3e00008,
+0x24420240, 0xa3800018, 0x3e00008, 0xa3800019,
+0x3c038000, 0x8c620278, 0x440fffe, 0x8f82001c,
+0xac620240, 0x24020002, 0xa0620244, 0x3c021000,
+0x3e00008, 0xac620278, 0x3e00008, 0x0,
+0x90830030, 0x24020005, 0x804021, 0x3063003f,
+0x4821, 0x14620005, 0x5021, 0x9082004c,
+0x9483004e, 0x304900ff, 0x306affff, 0xad00000c,
+0xad000010, 0xad000024, 0x95020014, 0x8d05001c,
+0x8d040018, 0x3042ffff, 0x491023, 0x21100,
+0x237c3, 0x403821, 0x862023, 0xa2102b,
+0x822023, 0xa72823, 0xad05001c, 0xad040018,
+0xa5090014, 0xa5090020, 0xa50a0016, 0x3e00008,
+0xa50a0022, 0x3e00008, 0x0, 0x27bdffd8,
+0xafb20018, 0x3c128008, 0xafb40020, 0xafb3001c,
+0xafb10014, 0xafbf0024, 0xafb00010, 0x36510100,
+0x9222000c, 0x3c140800, 0x929400f7, 0x304300ff,
+0x24020001, 0x10620031, 0x809821, 0x24020002,
+0x14620034, 0x36500080, 0xe001242, 0x0,
+0x9204004c, 0xe000557, 0x3084007f, 0x2621021,
+0x2403ff80, 0x431824, 0x3c048000, 0xac830094,
+0x92450008, 0x9204004c, 0x3042007f, 0x3c038006,
+0x14850007, 0x438021, 0x2402ffff, 0xa2220011,
+0x2402ffff, 0xa6220012, 0xa0005ba, 0x2402ffff,
+0x96020020, 0xa2220011, 0x96020022, 0xa6220012,
+0x8e020024, 0x3c048008, 0xae220014, 0x34850080,
+0x90a2004c, 0x34830100, 0xa0620010, 0x8ca2003c,
+0xac620018, 0x8c820068, 0xac6200e4, 0x8c820064,
+0xac6200e0, 0x8c82006c, 0xac6200e8, 0x24020001,
+0xa0a20068, 0xa0005d6, 0x3c048008, 0xe00125b,
+0x0, 0x36420080, 0xa0400068, 0xa0005d6,
+0x3c048008, 0xa2000068, 0xa2000069, 0xa000612,
+0x3c028008, 0x34830080, 0x8c620038, 0x34850100,
+0xac62006c, 0x24020001, 0xa0620069, 0x90a200c5,
+0x90830008, 0x305100ff, 0x3072007f, 0x1232001b,
+0x3c088008, 0xe000557, 0x2202021, 0x2621021,
+0x2403ff80, 0x431824, 0x3c048000, 0xac830094,
+0x3042007f, 0x3c038006, 0x438021, 0x8e02000c,
+0x1040000d, 0x2002021, 0xe000569, 0x0,
+0x26220001, 0x305100ff, 0x9203003c, 0x2341026,
+0x2102b, 0x21023, 0x3063007f, 0x2228824,
+0xa0005e0, 0xa203003c, 0x3c088008, 0x35040100,
+0x8c8200d0, 0x35070080, 0xace2003c, 0x8c8200d0,
+0xad020000, 0x90e5004c, 0x908600c5, 0x90e3004c,
+0x908400c5, 0x2402ff80, 0xa22824, 0x3063007f,
+0x308400ff, 0xa62825, 0x64182a, 0x10600002,
+0x30a500ff, 0x38a50080, 0xa0e5004c, 0xa1050009,
+0x3c028008, 0x9043000e, 0x34440080, 0x3c058000,
+0xa043000a, 0x8c830018, 0x3c027fff, 0x3442ffff,
+0x621824, 0xac830018, 0x8ca201f8, 0x440fffe,
+0x0, 0xacb301c0, 0x8fbf0024, 0x8fb40020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x24020002, 0xa0a201c4, 0x27bd0028, 0x3c021000,
+0x3e00008, 0xaca201f8, 0x90a20000, 0x27bdffe0,
+0xafb20018, 0x24420001, 0xa0a20000, 0x3c030800,
+0x8c6300f4, 0x304200ff, 0xafb10014, 0xafbf001c,
+0xafb00010, 0xa08821, 0x14430002, 0x809021,
+0xa0a00000, 0xe000557, 0x92240000, 0x8f90001c,
+0x2403ff80, 0x2021021, 0x431024, 0x3c038000,
+0xac620024, 0xe000557, 0x92240000, 0x2028021,
+0x3210007f, 0x3c02800a, 0x2028021, 0xae500000,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0x94820006, 0x90830005,
+0x8c85000c, 0x8c860010, 0x8c870018, 0x8c88001c,
+0x8c840020, 0x3c010800, 0xa4224bd2, 0x3c010800,
+0xa0234bd1, 0x3c010800, 0xac254bd8, 0x3c010800,
+0xac264bdc, 0x3c010800, 0xac274be4, 0x3c010800,
+0xac284be8, 0x3c010800, 0xac244bec, 0x3e00008,
+0x0, 0x3c028008, 0x34420100, 0x8c440034,
+0x3c038000, 0x34650400, 0xac640038, 0x8c420038,
+0xaf850030, 0xac62003c, 0x3c020005, 0xac620030,
+0x0, 0x0, 0x3e00008, 0x0,
+0x3c020006, 0x308400ff, 0x822025, 0x3c028000,
+0xac440030, 0x0, 0x0, 0x0,
+0x3c038000, 0x8c620000, 0x30420010, 0x1040fffd,
+0x34620400, 0x3e00008, 0xaf820030, 0x94c20000,
+0x3c080800, 0x950800ca, 0x30e7ffff, 0x804821,
+0x1021021, 0xa4c20000, 0x94c20000, 0x3042ffff,
+0xe2102b, 0x54400001, 0xa4c70000, 0x94a20000,
+0x3c030800, 0x8c6300cc, 0x24420001, 0xa4a20000,
+0x94a20000, 0x3042ffff, 0x14430007, 0x3c028008,
+0x107102b, 0xa4a00000, 0x54400001, 0x1003821,
+0xa4c70000, 0x3c028008, 0x34460100, 0x8cc30028,
+0x94a20000, 0x3c048000, 0x3042fffe, 0x210c0,
+0x621021, 0xac82003c, 0x8c82003c, 0x621823,
+0x18600004, 0x0, 0x8cc20024, 0xa0006af,
+0x24420001, 0x8cc20024, 0xac820038, 0x3c020050,
+0x34420010, 0x3c038000, 0xac620030, 0x0,
+0x0, 0x0, 0x8c620000, 0x30420020,
+0x1040fffd, 0x0, 0x94a20000, 0x3c048000,
+0x30420001, 0x210c0, 0x441021, 0x8c430400,
+0xad230000, 0x8c420404, 0xad220004, 0x3c020020,
+0x3e00008, 0xac820030, 0x27bdffe0, 0xafb20018,
+0xafb10014, 0xafb00010, 0xafbf001c, 0x94c20000,
+0xc08021, 0x3c120800, 0x965200c6, 0x24420001,
+0xa6020000, 0x96030000, 0x94e20000, 0xe03021,
+0x14430005, 0x8fb10030, 0xe000684, 0x2403821,
+0xa0006e6, 0x0, 0x8c830004, 0x8c820004,
+0x24420040, 0x4610007, 0xac820004, 0x8c820004,
+0x4400004, 0x0, 0x8c820000, 0x24420001,
+0xac820000, 0x96020000, 0x3042ffff, 0x50520001,
+0xa6000000, 0x96220000, 0x24420001, 0xa6220000,
+0x3c028008, 0x34420100, 0x96230000, 0x9442003c,
+0x14430004, 0x8fbf001c, 0x24020001, 0xa6220000,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0x27bdffe0, 0x3c028008,
+0xafbf0018, 0x34420100, 0x8c480034, 0x3c038000,
+0x34690400, 0xac680038, 0x8c420038, 0x30e700ff,
+0xaf890030, 0xac62003c, 0x3c020005, 0xac620030,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x8c82000c, 0x8c82000c,
+0x97830016, 0xad220000, 0x8c820010, 0x604021,
+0xad220004, 0x8c820018, 0xad220008, 0x8c82001c,
+0xad22000c, 0x8ca20014, 0xad220010, 0x8c820020,
+0xad220014, 0x90820005, 0x304200ff, 0x21200,
+0xad220018, 0x8ca20018, 0xad22001c, 0x8ca2000c,
+0xad220020, 0x8ca20010, 0xad220024, 0x8ca2001c,
+0xad220028, 0x8ca20020, 0xad22002c, 0x3402ffff,
+0xad260030, 0xad200034, 0x50620001, 0x3408ffff,
+0xad280038, 0x50e00011, 0x3c028008, 0x3c048008,
+0x34840100, 0x94820050, 0x3042ffff, 0xad22003c,
+0x94830044, 0x94850044, 0x24020001, 0x3063ffff,
+0x318c2, 0x641821, 0x90640054, 0x30a50007,
+0xa21004, 0xa000751, 0x441025, 0x34420100,
+0xad20003c, 0x94430044, 0x94440044, 0x3063ffff,
+0x318c2, 0x621821, 0x30840007, 0x90650054,
+0x24020001, 0x821004, 0x21027, 0x451024,
+0xa0620054, 0x0, 0x0, 0x0,
+0x3c020006, 0x34420040, 0x3c038000, 0xac620030,
+0x0, 0x0, 0x0, 0x8c620000,
+0x30420010, 0x1040fffd, 0x3c068008, 0x34c20150,
+0x34630400, 0x34c7014a, 0x34c40134, 0x34c50140,
+0x34c60144, 0xafa20010, 0xe0006c7, 0xaf830030,
+0x8fbf0018, 0x3e00008, 0x27bd0020, 0x8f830014,
+0x3c050800, 0x8ca500e8, 0x8f82001c, 0x30633fff,
+0x31980, 0x451021, 0x431021, 0x2403ff80,
+0x431824, 0x3c058000, 0xaca30028, 0x3042007f,
+0x3c03800c, 0x433021, 0x90c2000d, 0x3821,
+0x34420010, 0xa0c2000d, 0x8f890014, 0x3c028008,
+0x34420100, 0x94430044, 0x91382, 0x30480003,
+0x24020001, 0xa4c3000e, 0x1102000b, 0x29020002,
+0x10400005, 0x24020002, 0x1100000c, 0x24030001,
+0xa000798, 0x1821, 0x11020006, 0x0,
+0xa000798, 0x1821, 0x8cc2002c, 0xa000798,
+0x24430001, 0x8cc20014, 0x24430001, 0x8cc20018,
+0x43102b, 0x14400003, 0x3c038008, 0xa0007a2,
+0x24070001, 0x34630100, 0x9462004c, 0x24420001,
+0xa462004c, 0x91382, 0x30430003, 0x2c620002,
+0x10400009, 0x802821, 0x14600004, 0x0,
+0x94c20034, 0xa0007b2, 0x3046ffff, 0x8cc60038,
+0xa0007b2, 0x802821, 0x3021, 0x3c040800,
+0x24844bcc, 0xa0006fb, 0x0, 0x27bdff90,
+0xafb60068, 0xafb50064, 0xafb40060, 0xafb3005c,
+0xafb20058, 0xafb10054, 0xafbf006c, 0xafb00050,
+0x8c900000, 0x80b021, 0x3c020800, 0x8c4200e8,
+0x96040032, 0x8f83001c, 0x2414ff80, 0x30843fff,
+0x621821, 0x42180, 0x641821, 0x741024,
+0x3c138000, 0xa09021, 0x90a50000, 0xae620028,
+0x92040032, 0x3c02800c, 0x3063007f, 0x628821,
+0x308400c0, 0x24020040, 0x1482002d, 0xa821,
+0x8e350038, 0x8e220018, 0x14400002, 0x24020001,
+0xae220018, 0x9202003c, 0x30420020, 0x1440000f,
+0x0, 0xe000557, 0xa02021, 0x8f83001c,
+0x621821, 0x30640078, 0x3c020080, 0x822025,
+0x741824, 0xae630800, 0xae640810, 0x8e220018,
+0x8e030008, 0x431021, 0xae220018, 0x8e22002c,
+0x8e230018, 0x24420001, 0x62182b, 0x1060003d,
+0x0, 0x92420000, 0x24420001, 0xa2420000,
+0x3c030800, 0x8c6300f4, 0x304200ff, 0x50430001,
+0xa2400000, 0xe000557, 0x92440000, 0x8f90001c,
+0x2021021, 0x541024, 0xa0008b8, 0xae620024,
+0x92030032, 0x2402ffc0, 0x431024, 0x304200ff,
+0x14400005, 0x24020001, 0xae220018, 0x96220034,
+0xa00082e, 0x3055ffff, 0x8e220014, 0x24420001,
+0xae220018, 0x92020030, 0x21600, 0x21603,
+0x441001c, 0x0, 0x96020032, 0x27a40010,
+0x802821, 0xa7a20016, 0x96020032, 0x3021,
+0x24070001, 0x3042ffff, 0xaf820014, 0xe0006fb,
+0xafa0001c, 0x96020032, 0x8f83001c, 0x3c040800,
+0x8c8400e8, 0x30423fff, 0x21180, 0x641821,
+0x621821, 0x741024, 0xae62002c, 0x3063007f,
+0x3c02800e, 0x621821, 0x9062000d, 0x3042007f,
+0xa062000d, 0x9222000d, 0x30420010, 0x50400078,
+0x92420000, 0x3c028008, 0x34440100, 0x9482004c,
+0x8ec30000, 0x3c130800, 0x967300c6, 0x2442ffff,
+0xa482004c, 0x94620032, 0x9623000e, 0x3054ffff,
+0x3070ffff, 0x3c030800, 0x8c6300d0, 0x701807,
+0xa7a30038, 0x9482003e, 0x3063ffff, 0x3042ffff,
+0x14620007, 0x0, 0x8c820030, 0x3c038000,
+0x24420030, 0xac62003c, 0xa000856, 0x8c82002c,
+0x94820040, 0x3042ffff, 0x54620009, 0x27a40040,
+0x8c820038, 0x3c038000, 0x24420030, 0xac62003c,
+0x8c820034, 0xac620038, 0xa000865, 0x3c038000,
+0x27a50038, 0x27a60048, 0x2603821, 0xe000684,
+0xa7a00048, 0x8fa30040, 0x3c028000, 0x24630030,
+0xac430038, 0x8fa30044, 0xac43003c, 0x3c038000,
+0x3c020005, 0xac620030, 0x3c028008, 0x34440100,
+0x94820042, 0x34630400, 0x3042ffff, 0x202102b,
+0x14400007, 0xaf830030, 0x9482004e, 0x94830042,
+0x2021021, 0x431023, 0xa00087b, 0x3043ffff,
+0x9483004e, 0x94820042, 0x2631821, 0x501023,
+0x621823, 0x3063ffff, 0x3c028008, 0x34440100,
+0x9482003c, 0x3042ffff, 0x14430003, 0x0,
+0xa00088b, 0x24030001, 0x9482003c, 0x3042ffff,
+0x62102b, 0x14400005, 0x8f820030, 0x9482003c,
+0x621023, 0x3043ffff, 0x8f820030, 0xac550000,
+0xac400004, 0xac540008, 0xac43000c, 0x3c020006,
+0x34420010, 0x3c038000, 0xac620030, 0x0,
+0x0, 0x0, 0x8c620000, 0x30420010,
+0x1040fffd, 0x3c048008, 0x34840100, 0x1018c2,
+0x641821, 0x90650054, 0x32020007, 0x24060001,
+0x461004, 0x451025, 0xa0620054, 0x94830042,
+0x9622000e, 0x50430001, 0xa3860018, 0x92420000,
+0x24420001, 0xa2420000, 0x3c030800, 0x8c6300f4,
+0x304200ff, 0x50430001, 0xa2400000, 0xe000557,
+0x92440000, 0x8f90001c, 0x2403ff80, 0x2021021,
+0x431024, 0x3c038000, 0xac620024, 0xe000557,
+0x92440000, 0x2028021, 0x3210007f, 0x3c02800a,
+0x2028021, 0xaed00000, 0x8fbf006c, 0x8fb60068,
+0x8fb50064, 0x8fb40060, 0x8fb3005c, 0x8fb20058,
+0x8fb10054, 0x8fb00050, 0x3e00008, 0x27bd0070,
+0x27bdffd8, 0xafb3001c, 0xafb20018, 0xafb10014,
+0xafb00010, 0xafbf0020, 0x809821, 0xe08021,
+0x30b1ffff, 0xe000d71, 0x30d200ff, 0x0,
+0x0, 0x0, 0x8f82002c, 0xac510000,
+0xac520004, 0xac530008, 0xac40000c, 0xac400010,
+0xac400014, 0xac400018, 0x3c030800, 0x94634bfe,
+0x2038025, 0xac50001c, 0x0, 0x0,
+0x0, 0x24040001, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0xa000d98,
+0x27bd0028, 0x30a5ffff, 0x30c600ff, 0x24030c80,
+0x3c028000, 0xac430024, 0x0, 0x0,
+0x0, 0x0, 0x0, 0xa0008c9,
+0x0, 0x3c028008, 0x34430100, 0x9462000e,
+0x3c080800, 0x950800c6, 0x3046ffff, 0x14c00004,
+0x3402ffff, 0x946500da, 0xa00091f, 0x8f84001c,
+0x10c20027, 0x0, 0x9462004e, 0x9464003c,
+0x3045ffff, 0xa61023, 0xa6182b, 0x3087ffff,
+0x10600004, 0x3044ffff, 0xc51023, 0xe21023,
+0x3044ffff, 0x88102b, 0x1040000e, 0xe81023,
+0x3c028008, 0x34440100, 0x24030001, 0x34420080,
+0xa4430016, 0x2402ffff, 0xa482000e, 0x948500da,
+0x8f84001c, 0x3021, 0x30a5ffff, 0xa0008ee,
+0x3c076020, 0x44102a, 0x10400009, 0x3c028008,
+0x34430080, 0x94620016, 0x30420001, 0x10400004,
+0x3c028000, 0x9442007e, 0x24420014, 0xa4620016,
+0x3e00008, 0x0, 0x27bdffe0, 0x3c028008,
+0xafbf001c, 0xafb00018, 0x34420100, 0x94430042,
+0x9442004c, 0x10400019, 0x3068ffff, 0x93830018,
+0x24020001, 0x14620029, 0x8fbf001c, 0x3c068008,
+0x34d00100, 0x810c2, 0x501021, 0x90420054,
+0x31030007, 0x34c70148, 0x304200ff, 0x621007,
+0x30420001, 0x34c9014e, 0x34c4012c, 0x34c5013e,
+0x10400016, 0x34c60142, 0xe0006c7, 0xafa90010,
+0x96020042, 0xa00093c, 0x3048ffff, 0x3c028008,
+0x34440100, 0x94830044, 0x94820042, 0x1043000f,
+0x8fbf001c, 0x94820044, 0xa4820042, 0x94820050,
+0xa482004e, 0x8c820038, 0xac820030, 0x94820040,
+0xa482003e, 0x9482004a, 0xa4820048, 0x8fbf001c,
+0x8fb00018, 0xa0008fa, 0x27bd0020, 0x8fb00018,
+0x3e00008, 0x27bd0020, 0x27bdffa0, 0xafb1004c,
+0x3c118000, 0xafbf0058, 0xafb30054, 0xafb20050,
+0xafb00048, 0x36260188, 0x90c20003, 0x3044007f,
+0xa3a40010, 0x8e320180, 0x90c20000, 0x3043007f,
+0x24020003, 0x1062003b, 0xaf92001c, 0x28620004,
+0x10400006, 0x24020004, 0x24020002, 0x10620009,
+0x8fbf0058, 0xa000b03, 0x8fb30054, 0x1062004b,
+0x24020005, 0x1062014c, 0x8fbf0058, 0xa000b03,
+0x8fb30054, 0x411c0, 0x2421021, 0x2404ff80,
+0x24420240, 0x441024, 0x26430040, 0xae220024,
+0x3063007f, 0x3c02800a, 0x621821, 0x9062003c,
+0xafa3003c, 0x441025, 0xa062003c, 0x8fa3003c,
+0x9062003c, 0x30420040, 0x1040016a, 0x8fbf0058,
+0x3c108008, 0xa3800018, 0x36100100, 0x8e0200d0,
+0x8c630034, 0x27a4003c, 0x27a50010, 0x431021,
+0xe0007b4, 0xae0200d0, 0x93a20010, 0x3c038000,
+0xa20200c5, 0x8c620278, 0x440fffe, 0x8f82001c,
+0xac620240, 0x24020002, 0xa0620244, 0x3c021000,
+0xac620278, 0xe00092f, 0x0, 0xa000b02,
+0x8fbf0058, 0x3c058008, 0x90c30001, 0x90a2000b,
+0x1443014c, 0x8fbf0058, 0x34a40080, 0x8c820018,
+0x9082004c, 0x90a20008, 0x8c830018, 0x3c027fff,
+0x3442ffff, 0x621824, 0x3c020800, 0x8c4200b4,
+0xac830018, 0x3c038000, 0x24420001, 0x3c010800,
+0xac2200b4, 0x8c6201f8, 0x440fffe, 0x8f82001c,
+0xac6201c0, 0xa000aca, 0x24020002, 0x3c108008,
+0x90c30001, 0x9202000b, 0x14430132, 0x8fbf0058,
+0x36050110, 0x27a40018, 0xe000e20, 0x24060003,
+0x27a40028, 0x360501e0, 0xe000e20, 0x24060003,
+0x8fa20028, 0x36030100, 0xae020064, 0x8fa2002c,
+0xae020068, 0x8fa20030, 0xae02006c, 0x93a40018,
+0x906300c5, 0x2402ff80, 0x821024, 0x431025,
+0x305000ff, 0x3084007f, 0x3202007f, 0x82102a,
+0x54400001, 0x3a100080, 0xe000557, 0x0,
+0x2421021, 0x2403ff80, 0x431024, 0xae220094,
+0x93a40018, 0x3c130800, 0x927300f7, 0xe000557,
+0x3084007f, 0x2421021, 0x3042007f, 0x3c038006,
+0x434021, 0x8fa3001c, 0x2402ffff, 0x10620034,
+0xafa80040, 0x93a20019, 0x95030014, 0x304400ff,
+0x3063ffff, 0x64182b, 0x10600010, 0x0,
+0x95040014, 0x8d07001c, 0x8d060018, 0x3084ffff,
+0x442023, 0x42100, 0xe43821, 0x1021,
+0xe4202b, 0xc23021, 0xc43021, 0xad07001c,
+0xad060018, 0xa000a23, 0x93a20019, 0x95040014,
+0x8d07001c, 0x8d060018, 0x3084ffff, 0x822023,
+0x42100, 0x1021, 0x801821, 0xc23023,
+0xe4202b, 0xc43023, 0xe33823, 0xad07001c,
+0xad060018, 0x93a20019, 0x8fa30040, 0xa4620014,
+0x97a2001a, 0xa4620016, 0x8fa2001c, 0xac620010,
+0x8fa2001c, 0xac62000c, 0x93a20019, 0xa4620020,
+0x97a2001a, 0xa4620022, 0x8fa2001c, 0xac620024,
+0x3c048008, 0x34830080, 0x8c620038, 0x8fa20020,
+0x2008821, 0xac62003c, 0x8fa20020, 0xac820000,
+0x93a20018, 0xa062004c, 0x93a20018, 0xa0820009,
+0xa0600068, 0x93a20018, 0x10510052, 0x93a40018,
+0x3230007f, 0xe000557, 0x2002021, 0x2421021,
+0x2407ff80, 0x3046007f, 0x3c038000, 0x471024,
+0xac620094, 0x3c028006, 0xc23021, 0x90c2003c,
+0xafa60040, 0x2021, 0x471025, 0xa0c2003c,
+0x8fa80040, 0x95020002, 0x95030014, 0x8d07001c,
+0x3042ffff, 0x3063ffff, 0x8d060018, 0x431023,
+0x21100, 0xe23821, 0xe2102b, 0xc43021,
+0xc23021, 0xad07001c, 0xad060018, 0x95020002,
+0xa5020014, 0xa5000016, 0x8d020008, 0xad020010,
+0x8d020008, 0xad02000c, 0x95020002, 0xa5020020,
+0xa5000022, 0x8d020008, 0xad020024, 0x9102003c,
+0x30420040, 0x1040001a, 0x26220001, 0xa3b00038,
+0x3c108008, 0xa3800018, 0x36100100, 0x8e0200d0,
+0x8d030034, 0x27a40040, 0x27a50038, 0x431021,
+0xe0007b4, 0xae0200d0, 0x93a20038, 0x3c038000,
+0xa20200c5, 0x8c620278, 0x440fffe, 0x8f82001c,
+0xac620240, 0x24020002, 0xa0620244, 0x3c021000,
+0xac620278, 0xe00092f, 0x0, 0x26220001,
+0x3043007f, 0x14730004, 0x402021, 0x2403ff80,
+0x2231024, 0x432026, 0x93a20018, 0xa000a3f,
+0x309100ff, 0x8fa3001c, 0x2402ffff, 0x1062000a,
+0x309000ff, 0x24820001, 0x24830001, 0x3042007f,
+0x14530005, 0x307000ff, 0x2403ff80, 0x831024,
+0x431026, 0x305000ff, 0x3c028008, 0x90420008,
+0x2008821, 0x305000ff, 0x12300019, 0x3222007f,
+0x211c0, 0x2421021, 0x24420240, 0x2403ff80,
+0x431824, 0x3c048000, 0xac830094, 0x3042007f,
+0x3c038006, 0x431021, 0x8c43000c, 0x402021,
+0x1060000b, 0xafa20040, 0xe000569, 0x0,
+0x26230001, 0x2405ff80, 0x3062007f, 0x14530002,
+0x2252024, 0x851826, 0xa000aa3, 0x307100ff,
+0x3c048008, 0x34840080, 0x8c830018, 0x3c027fff,
+0x3442ffff, 0x621824, 0xac830018, 0x3c038000,
+0x8c6201f8, 0x440fffe, 0x0, 0xac7201c0,
+0x24020002, 0xa06201c4, 0x3c021000, 0xac6201f8,
+0xa000b02, 0x8fbf0058, 0x3c048008, 0x90c30001,
+0x9082000b, 0x1443002f, 0x8fbf0058, 0x34900080,
+0x92020008, 0x30420040, 0x10400020, 0x0,
+0x92020008, 0x21600, 0x21603, 0x4410005,
+0x2402021, 0xe000ea5, 0x24050093, 0xa000b02,
+0x8fbf0058, 0x92020009, 0x24030018, 0x304200ff,
+0x1443000d, 0x2402021, 0x24050039, 0xe000e3d,
+0x3021, 0xe000315, 0x8f84001c, 0x8f82ffac,
+0x24030012, 0xa0430009, 0xe000320, 0x8f84001c,
+0xa000b02, 0x8fbf0058, 0x24050036, 0xe000e3d,
+0x3021, 0xa000b02, 0x8fbf0058, 0xe000315,
+0x2402021, 0x92020005, 0x8f84001c, 0x34420020,
+0xe000320, 0xa2020005, 0xe00104c, 0x8f84001c,
+0x8fbf0058, 0x8fb30054, 0x8fb20050, 0x8fb1004c,
+0x8fb00048, 0x24030c80, 0x3c028000, 0x27bd0060,
+0x3e00008, 0xac430024, 0x27bdffe8, 0x3c028008,
+0xafb00010, 0xafbf0014, 0x34450100, 0x3c108000,
+0x8e020140, 0x94a3000e, 0x3021, 0x402021,
+0xaf82001c, 0x3063ffff, 0x3402ffff, 0x10620006,
+0x3c076020, 0x2402ffff, 0xa4a2000e, 0x94a500da,
+0xe0008ee, 0x30a5ffff, 0x24020c80, 0xae020024,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x27bdffc0, 0x3c098000, 0x3c058008, 0xafb70034,
+0xafb20020, 0xafbf0038, 0xafb60030, 0xafb5002c,
+0xafb40028, 0xafb30024, 0xafb1001c, 0xafb00018,
+0x35320100, 0x34a80100, 0x8d270100, 0x8e420014,
+0x8d0300d4, 0xb821, 0xa3800018, 0x431023,
+0x18400055, 0xaf87001c, 0x8e420014, 0x2403ff80,
+0x24e40040, 0xad0200d4, 0x90a60008, 0x910500c5,
+0x3084007f, 0x30d3007f, 0x30a200ff, 0x211c0,
+0xe21021, 0x24420240, 0xa3a50010, 0x431024,
+0x8d1400d0, 0x8d1500d4, 0xad220024, 0x93a30010,
+0x3c02800a, 0x822021, 0xafa40014, 0x10730033,
+0xb021, 0x8fa30014, 0x27a40014, 0x27a50010,
+0x8c620034, 0x2828021, 0x2b01023, 0x440002b,
+0x2411ff80, 0x9062003c, 0x2221024, 0x304200ff,
+0x1440001b, 0x200a021, 0x9062003c, 0x34420040,
+0xa062003c, 0x93a20010, 0x24420001, 0x304300ff,
+0xa3a20010, 0x3c020800, 0x8c4200f4, 0x50620001,
+0xa3a00010, 0xe000557, 0x93a40010, 0x8f90001c,
+0x3c038000, 0x2021021, 0x511024, 0xac620024,
+0xe000557, 0x93a40010, 0x2028021, 0x3210007f,
+0x3c02800a, 0x2028021, 0xa000b81, 0xafb00014,
+0xe0007b4, 0x0, 0x3c028008, 0x34420100,
+0xac5000d0, 0x93a30010, 0x24160001, 0xa04300c5,
+0x93a20010, 0x1453ffd0, 0x8fa30014, 0x24020001,
+0x16c20009, 0x3c038000, 0x8c620278, 0x440fffe,
+0x8f82001c, 0xac620240, 0x24020002, 0xa0620244,
+0x3c021000, 0xac620278, 0x9242000b, 0x24030002,
+0x304200ff, 0x14430072, 0x0, 0x96420008,
+0x304300ff, 0x24020082, 0x14620040, 0x24020084,
+0x3c028000, 0x34490100, 0x8d22000c, 0x95230006,
+0x21602, 0x3063ffff, 0x3044003f, 0x24020027,
+0x1082000f, 0xaf830014, 0x28820028, 0x10400008,
+0x24020031, 0x24020021, 0x10820009, 0x24020025,
+0x10820007, 0x93820019, 0xa000bc0, 0x0,
+0x10820007, 0x93820019, 0xa000bc0, 0x0,
+0xe00076c, 0x1202021, 0xa000c40, 0x0,
+0x3c038000, 0x8c620278, 0x440fffe, 0x8f82001c,
+0xac620240, 0x24020002, 0xa0620244, 0x3c021000,
+0xac620278, 0xa000c40, 0x0, 0x95230006,
+0x91240005, 0x8d25000c, 0x8d260010, 0x8d270018,
+0x8d28001c, 0x8d290020, 0x24420001, 0x3c010800,
+0xa4234bd2, 0x3c010800, 0xa0244bd1, 0x3c010800,
+0xac254bd8, 0x3c010800, 0xac264bdc, 0x3c010800,
+0xac274be4, 0x3c010800, 0xac284be8, 0x3c010800,
+0xac294bec, 0xa000c40, 0xa3820019, 0x1462000a,
+0x24020081, 0x3c028008, 0x34420100, 0x944500da,
+0x92460005, 0x8f84001c, 0x30a5ffff, 0x30c600ff,
+0xa000c01, 0x3c076021, 0x1462005c, 0x0,
+0x9242000a, 0x304300ff, 0x30620020, 0x10400007,
+0x30620040, 0x3c028008, 0x34420100, 0x944500da,
+0x8f84001c, 0xa000bff, 0x24060040, 0x10400007,
+0x31600, 0x3c028008, 0x34420100, 0x944500da,
+0x8f84001c, 0xa000bff, 0x24060041, 0x21603,
+0x4410046, 0x3c028008, 0x34420100, 0x944500da,
+0x8f84001c, 0x24060042, 0x30a5ffff, 0x3c076019,
+0xe0008ee, 0x0, 0xa000c40, 0x0,
+0x9242000b, 0x24040016, 0x304200ff, 0x10440006,
+0x3c068000, 0x9242000b, 0x24030017, 0x304200ff,
+0x14430032, 0x0, 0x34c50100, 0x90a2000b,
+0x304200ff, 0x1444000b, 0x8021, 0x8ca20020,
+0x8ca40020, 0x2403ff80, 0x431024, 0x21140,
+0x3084007f, 0x441025, 0x3c032000, 0x431025,
+0xacc20830, 0x94a20008, 0x21400, 0x21403,
+0x4420001, 0x24100001, 0x94a20008, 0x30420080,
+0x5040001a, 0x200b821, 0x94a20008, 0x30422000,
+0x50400016, 0x200b821, 0x8ca30018, 0x3c021c2d,
+0x344219ed, 0x10620011, 0x200b821, 0x3c020800,
+0x8c4200d4, 0x10400005, 0x3c028008, 0x24030004,
+0x34420100, 0xa04300ec, 0x3c028008, 0x34420100,
+0x944500da, 0x8f84001c, 0x24060006, 0x30a5ffff,
+0xe0008ee, 0x3c076021, 0x200b821, 0xe00092f,
+0x0, 0x9242000a, 0x30420008, 0x10400004,
+0x3c028000, 0xe00121f, 0x0, 0x3c028000,
+0x24030c80, 0xac430024, 0x8fbf0038, 0x2e01021,
+0x8fb60030, 0x8fb70034, 0x8fb5002c, 0x8fb40028,
+0x8fb30024, 0x8fb20020, 0x8fb1001c, 0x8fb00018,
+0x3e00008, 0x27bd0040, 0x2402ff80, 0x822024,
+0x3c029000, 0x34420007, 0x822025, 0x3c028000,
+0xac440020, 0x3c038000, 0x8c620020, 0x440fffe,
+0x0, 0x3e00008, 0x0, 0x3c038000,
+0x2402ff80, 0x822024, 0x34620007, 0x822025,
+0xac640020, 0x8c620020, 0x440fffe, 0x0,
+0x3e00008, 0x0, 0x3c028008, 0x24030005,
+0x34420100, 0xa04300ec, 0x3c028000, 0x8c420100,
+0x3c038000, 0xaf82001c, 0x8c620278, 0x440fffe,
+0x8f82001c, 0xac620240, 0x24020002, 0xa0620244,
+0x3c021000, 0xac620278, 0x3e00008, 0x0,
+0x27bdffe8, 0x3c068000, 0xafbf0010, 0x34c50100,
+0x94a20008, 0x304400ff, 0x38830082, 0x38820084,
+0x2c630001, 0x2c420001, 0x621825, 0x10600030,
+0x24020083, 0x93820019, 0x50400039, 0x8fbf0010,
+0x3c020800, 0x90424bd8, 0x8cc40100, 0x3c070800,
+0x94e74bd2, 0x3046003f, 0x38c30032, 0x38c2003f,
+0x2c630001, 0x2c420001, 0x621825, 0xaf84001c,
+0xaf870014, 0xa3800019, 0x14600006, 0xa02021,
+0x24020020, 0x14c20011, 0x3402ffff, 0x14e2000f,
+0x0, 0x24020020, 0x14c20005, 0x0,
+0x8ca30014, 0x2402ffff, 0x1062000a, 0x0,
+0x3c040800, 0x24844bcc, 0x3021, 0xe0006fb,
+0x24070001, 0xa000cb6, 0x0, 0xe00076c,
+0x0, 0xe00092f, 0x0, 0x24030c80,
+0x3c028000, 0xac430024, 0xa000cef, 0x8fbf0010,
+0x14820006, 0x2482ff80, 0x8cc30104, 0x3c026020,
+0xac430014, 0xa000cef, 0x8fbf0010, 0x304200ff,
+0x2c420002, 0x10400004, 0x24020022, 0x8fbf0010,
+0xa000b25, 0x27bd0018, 0x14820003, 0x8fbf0010,
+0xa000c6f, 0x27bd0018, 0x3c020800, 0x8c420020,
+0x1040001d, 0x24020018, 0x90a30009, 0x14620003,
+0x24020016, 0xa000cdb, 0x24030008, 0x14620007,
+0x24020017, 0x24030012, 0x3c028008, 0x34420080,
+0xa0430009, 0xa000ce8, 0x94a70008, 0x54620007,
+0x94a70008, 0x8f82ffac, 0x2404fffe, 0x90430005,
+0x641824, 0xa0430005, 0x94a70008, 0x90a6001b,
+0x8ca40000, 0x94a50006, 0x8fbf0010, 0x73c00,
+0xa0008c9, 0x27bd0018, 0x3e00008, 0x27bd0018,
+0x3c050800, 0x94a54c0a, 0x3c030800, 0x8c634c14,
+0x3c048000, 0x30a2ffff, 0x230c0, 0x2402fff0,
+0xc21024, 0x621821, 0xac83003c, 0x3c020800,
+0x8c424c10, 0x3c038000, 0xac820038, 0x3c020050,
+0x34420010, 0xac620030, 0x0, 0x0,
+0x0, 0x8c620000, 0x30420020, 0x1040fffd,
+0x30c20008, 0x10400009, 0x3c028000, 0x8c620408,
+0x8c63040c, 0x3c010800, 0xac224c00, 0x3c010800,
+0xac234c04, 0xa000d1b, 0x3c030020, 0x8c430400,
+0x8c420404, 0x3c010800, 0xac234c00, 0x3c010800,
+0xac224c04, 0x3c030020, 0x3c028000, 0xac430030,
+0x3c078000, 0x8ce20030, 0x431024, 0x1440fffd,
+0x0, 0x3c030800, 0x94634c08, 0x3c020800,
+0x94424c0c, 0x3c060800, 0x94c64c0e, 0x24a50001,
+0x621821, 0x30a4ffff, 0x3c020040, 0xace20030,
+0x3c010800, 0xa4234c08, 0x3c010800, 0xa4254c0a,
+0x14860003, 0x0, 0x3c010800, 0xa4204c0a,
+0x3e00008, 0x0, 0x27bdffe8, 0x3c040800,
+0x24844bf0, 0x3c05800a, 0xafbf0010, 0xe000e20,
+0x2406000a, 0x3c020800, 0x94424bf2, 0x3c030800,
+0x94634c0e, 0x3042000f, 0x24420003, 0x431804,
+0x24027fff, 0x43102b, 0x10400002, 0xaf830028,
+0xd, 0xe000cf1, 0x0, 0x3c020800,
+0x94424bf4, 0x3c030800, 0x94634bfa, 0x8fbf0010,
+0x3042000f, 0x21500, 0x621825, 0x27bd0018,
+0x3c028000, 0x3e00008, 0xac4300a0, 0x3c02800a,
+0x94430006, 0x3c020800, 0x94424bfa, 0x3c010800,
+0xa4234bf6, 0x431023, 0x8f830028, 0x3042ffff,
+0x43102b, 0x3e00008, 0x38420001, 0x27bdffe8,
+0xafbf0010, 0x3c02800a, 0x94420006, 0x3c010800,
+0xa4224bf6, 0xe000d58, 0x0, 0x5440fffa,
+0x3c02800a, 0x8fbf0010, 0x3e00008, 0x27bd0018,
+0x27bdffe8, 0xafbf0010, 0xe000d58, 0x0,
+0x10400003, 0x0, 0xe000d64, 0x0,
+0x3c020800, 0x8c424c00, 0x3c038000, 0x8fbf0010,
+0xac620038, 0x3c020800, 0x8c424c04, 0x34640400,
+0x27bd0018, 0xac62003c, 0x3c020005, 0xac620030,
+0xaf84002c, 0x3e00008, 0xaf800024, 0x8f820024,
+0x3c030006, 0x21140, 0x431025, 0x3c038000,
+0xac620030, 0x0, 0x0, 0x0,
+0x8c620000, 0x30420010, 0x1040fffd, 0x34620400,
+0xaf82002c, 0x3e00008, 0xaf800024, 0x3c060800,
+0x8cc64c04, 0x8f850024, 0x8f83002c, 0x3c020800,
+0x94424bfa, 0x27bdffe0, 0x24a50001, 0x24630020,
+0x24420001, 0x24c70020, 0xafb10014, 0xafb00010,
+0xafbf0018, 0xaf850024, 0xaf83002c, 0x3c010800,
+0xa4224bfa, 0x309000ff, 0x3c010800, 0xac274c04,
+0x4c10008, 0x8821, 0x4e00006, 0x0,
+0x3c020800, 0x8c424c00, 0x24420001, 0x3c010800,
+0xac224c00, 0x3c040800, 0x94844c08, 0x3c020800,
+0x94424bfa, 0x2e030001, 0x441026, 0x2c440001,
+0x831824, 0x10600004, 0x10102b, 0x24020001,
+0xaf820020, 0x10102b, 0x821025, 0x14400006,
+0x8f820020, 0x14400004, 0x8f830024, 0x24020010,
+0x1462000f, 0x0, 0xe000d88, 0x24110001,
+0x3c030800, 0x94634bfa, 0x3c020800, 0x94424c08,
+0x14620003, 0x0, 0xe000cf1, 0x0,
+0x16000003, 0x0, 0xe000d71, 0x0,
+0x3c030800, 0x94634bfe, 0x3c020800, 0x94424bfc,
+0x24630001, 0x3064ffff, 0x3c010800, 0xa4234bfe,
+0x14820003, 0x0, 0x3c010800, 0xa4204bfe,
+0x1200000b, 0x0, 0x3c020800, 0x94424bf4,
+0x3c030800, 0x94634bfa, 0x21500, 0x621825,
+0x3c028000, 0xac4300a0, 0xa000df7, 0xaf800020,
+0xe000d58, 0x0, 0x10400004, 0x2201021,
+0xe000d64, 0x0, 0x2201021, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x3e00008, 0x27bd0020,
+0x3e00008, 0x0, 0x8f820034, 0x3c030006,
+0x21140, 0x431025, 0x3c038000, 0xac620030,
+0x0, 0x0, 0x0, 0x8c620000,
+0x30420010, 0x1040fffd, 0x34620400, 0xaf820030,
+0x3e00008, 0xaf800034, 0x3e00008, 0x1021,
+0x3e00008, 0x0, 0x3084ffff, 0x30a5ffff,
+0x1821, 0x10800007, 0x0, 0x30820001,
+0x10400002, 0x42042, 0x651821, 0xa000e16,
+0x52840, 0x3e00008, 0x601021, 0x10c00006,
+0x24c6ffff, 0x8ca20000, 0x24a50004, 0xac820000,
+0xa000e20, 0x24840004, 0x3e00008, 0x0,
+0x10a00008, 0x24a3ffff, 0xac860000, 0x0,
+0x0, 0x2402ffff, 0x2463ffff, 0x1462fffa,
+0x24840004, 0x3e00008, 0x0, 0x3c028008,
+0x34420080, 0x24030001, 0xac43000c, 0xa4430010,
+0xa4430012, 0xa4430014, 0x3e00008, 0xa4430016,
+0x27bdffd8, 0x24820080, 0x2407ff80, 0x3043007f,
+0xafb00010, 0x808021, 0x472024, 0x3c020800,
+0x8c420020, 0x3c08800e, 0xafb3001c, 0xafb20018,
+0xafb10014, 0xafbf0020, 0x3c098000, 0x681821,
+0x30b100ff, 0x30d200ff, 0x10400029, 0x9821,
+0x26020100, 0xad24002c, 0x472824, 0x3042007f,
+0x482021, 0x90620000, 0x24030050, 0x304200ff,
+0x14430004, 0x0, 0xad25002c, 0x948200da,
+0x3053ffff, 0xe000d71, 0x0, 0x3c030800,
+0x94634bfe, 0x8f82002c, 0x112c00, 0xa32825,
+0x122400, 0x3c034000, 0x34840001, 0xa32825,
+0xac500000, 0x8fbf0020, 0xac400004, 0x8fb20018,
+0xac530008, 0x8fb10014, 0xac40000c, 0x8fb3001c,
+0xac440010, 0x8fb00010, 0xac400014, 0x24040001,
+0xac400018, 0x27bd0028, 0xa000d98, 0xac45001c,
+0x8fbf0020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x3e00008, 0x27bd0028, 0x3c068000,
+0x34c20100, 0x9043000f, 0x24020010, 0x1062000e,
+0x28650011, 0x10a00007, 0x24020012, 0x24020008,
+0x2405003a, 0x10620006, 0x3021, 0x3e00008,
+0x0, 0x24050035, 0x1462fffc, 0x3021,
+0xa000e3d, 0x0, 0x8cc20074, 0x8f83ffac,
+0x24420fa0, 0x3e00008, 0xac62000c, 0x27bdffe8,
+0xafbf0010, 0xe000325, 0x24050001, 0x3c048008,
+0x8fbf0010, 0x24020001, 0x34830080, 0xa4620012,
+0x27bd0018, 0x24020001, 0x3e00008, 0xa080001a,
+0x27bdffe0, 0xafb20018, 0xafb10014, 0xafb00010,
+0xafbf001c, 0x30b2ffff, 0xe000315, 0x808821,
+0x3c028008, 0x34500080, 0x92020009, 0x24030004,
+0x304200ff, 0x1443000c, 0x3c028008, 0x12400008,
+0x2402000a, 0xe000e34, 0x0, 0x92020005,
+0x2403fffe, 0x431024, 0xa2020005, 0x24020012,
+0xa2020009, 0x3c028008, 0x34420080, 0x2202021,
+0xe000320, 0xa0400027, 0x16400003, 0x2202021,
+0xe000e98, 0x0, 0x2202021, 0x324600ff,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x24050038, 0xa000e3d, 0x27bd0020, 0x27bdffe0,
+0xafbf001c, 0xafb20018, 0xafb10014, 0xafb00010,
+0xe000315, 0x808021, 0xe000e34, 0x0,
+0x3c028008, 0x34450080, 0x90a20009, 0x24120018,
+0x305100ff, 0x12320003, 0x2002021, 0x24020012,
+0xa0a20009, 0x90a20005, 0x2403fffe, 0x431024,
+0xe000320, 0xa0a20005, 0x2002021, 0x24050020,
+0x16320007, 0x3021, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0xa000325, 0x27bd0020,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x24050039, 0xa000e3d, 0x27bd0020, 0x27bdffe8,
+0x3c028000, 0xafb00010, 0xafbf0014, 0x34420100,
+0x9442000c, 0x24050036, 0x808021, 0x14400012,
+0x304600ff, 0xe000315, 0x0, 0x3c028008,
+0x34420080, 0x24030012, 0xa0430009, 0x90430005,
+0x34630010, 0xe000e34, 0xa0430005, 0xe000320,
+0x2002021, 0x2002021, 0xe000325, 0x24050020,
+0xa000f15, 0x0, 0xe000e3d, 0x0,
+0xe000315, 0x2002021, 0x3c028008, 0x9043001b,
+0x2405ff9f, 0x2002021, 0x651824, 0x8fbf0014,
+0x8fb00010, 0xa043001b, 0xa000320, 0x27bd0018,
+0x27bdffe0, 0xafbf0018, 0xafb10014, 0xafb00010,
+0x30b100ff, 0xe000315, 0x808021, 0x3c028008,
+0x24030012, 0x34420080, 0xe000e34, 0xa0430009,
+0xe000320, 0x2002021, 0x2002021, 0x2203021,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x24050035,
+0xa000e3d, 0x27bd0020, 0x3c048008, 0x9083000e,
+0x9082000a, 0x1443000b, 0x2821, 0x8f82ffac,
+0x24030050, 0x24050001, 0x90420000, 0x304200ff,
+0x14430004, 0x0, 0x9082000e, 0x24420001,
+0xa082000e, 0x3e00008, 0xa01021, 0x3c038000,
+0x8c6201f8, 0x440fffe, 0x24020002, 0xac6401c0,
+0xa06201c4, 0x3c021000, 0x3e00008, 0xac6201f8,
+0x27bdffe0, 0xafb20018, 0x3c128008, 0xafb10014,
+0xafbf001c, 0xafb00010, 0x36510080, 0x92220009,
+0x2403000a, 0x304200ff, 0x1443003a, 0x0,
+0x8e430004, 0x8e220038, 0x5062007e, 0x8fbf001c,
+0x92220000, 0x24030050, 0x304200ff, 0x14430025,
+0x3c028000, 0x8c420140, 0x8e430004, 0x36420100,
+0x2202821, 0xac43001c, 0x9622005c, 0x8e230038,
+0x3042ffff, 0x21040, 0x621821, 0xae23001c,
+0x8e430004, 0x8e240038, 0x9622005c, 0x641823,
+0x3042ffff, 0x31843, 0x21040, 0x43102a,
+0x10400006, 0x0, 0x8e420004, 0x8e230038,
+0x431023, 0xa000f83, 0x22043, 0x9622005c,
+0x3042ffff, 0x22040, 0x3c028008, 0x34430100,
+0x34420080, 0xaca4002c, 0xa0400024, 0x24020001,
+0xa062000c, 0xe000f37, 0x0, 0x10400051,
+0x8fbf001c, 0x3c028000, 0x8c440140, 0x8fbf001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0xa000f48,
+0x27bd0020, 0x92220009, 0x24030010, 0x304200ff,
+0x14430004, 0x3c028000, 0x8c440140, 0xa000fc5,
+0x2821, 0x92220009, 0x24030016, 0x304200ff,
+0x14430006, 0x24020014, 0xa2220009, 0x3c028000,
+0x8c440140, 0xa000fd8, 0x8fbf001c, 0x8e220038,
+0x8e23003c, 0x431023, 0x4410032, 0x8fbf001c,
+0x92220027, 0x24420001, 0xa2220027, 0x92220027,
+0x3c030800, 0x8c630048, 0x304200ff, 0x14430016,
+0x3c108000, 0x92220009, 0x24030004, 0x304200ff,
+0x14430009, 0x3c028000, 0x8c440140, 0x8fbf001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x24050093,
+0xa000ea5, 0x27bd0020, 0x8c440140, 0x24050093,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0xa000f21, 0x27bd0020, 0x8e040140, 0xe000315,
+0x0, 0x8e420004, 0x2442ffff, 0xae420004,
+0x8e22003c, 0x2442ffff, 0xae22003c, 0xe000320,
+0x8e040140, 0x8e040140, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x24050004, 0xa000325,
+0x27bd0020, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0x3c068000, 0x8cc20188,
+0x3c038008, 0x34650080, 0x9063000e, 0x21402,
+0x304400ff, 0x306300ff, 0x1464000e, 0x3c028008,
+0x90a20026, 0x304200ff, 0x10440009, 0x8f82ffac,
+0xa0a40026, 0x24030050, 0x90420000, 0x304200ff,
+0x14430006, 0x0, 0xa00058c, 0x8cc40180,
+0x3c028008, 0x34420080, 0xa0440026, 0x3e00008,
+0x0, 0x27bdffe0, 0x30e700ff, 0xafb20018,
+0xafbf001c, 0xafb10014, 0xafb00010, 0x809021,
+0x14e00006, 0x30c600ff, 0x0, 0xd,
+0x0, 0xa001037, 0x24000117, 0x3c038008,
+0x9062000e, 0x304200ff, 0x14460023, 0x34620080,
+0x90420026, 0x304200ff, 0x1446001f, 0x0,
+0x9062000f, 0x304200ff, 0x1446001b, 0x0,
+0x9062000a, 0x304200ff, 0x14460003, 0x8f90ffac,
+0xd, 0x8f90ffac, 0x8f82ffb0, 0x3c118000,
+0xae05003c, 0xac450000, 0xa066000a, 0xe000315,
+0x8e240100, 0xa2000024, 0xe000320, 0x8e240100,
+0x3c038000, 0x8c6201f8, 0x440fffe, 0x24020002,
+0xac7201c0, 0xa06201c4, 0x3c021000, 0xac6201f8,
+0xa001038, 0x8fbf001c, 0x0, 0xd,
+0x0, 0x24000140, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x3e00008, 0x27bd0020,
+0x8f83ffac, 0x3c028000, 0x8c440100, 0x34420100,
+0x8c65003c, 0x9046001b, 0xa000ffe, 0x24070001,
+0x3c028008, 0x9043000e, 0x9042000a, 0x431026,
+0x304200ff, 0x3e00008, 0x2102b, 0x27bdffe0,
+0x3c028008, 0xafb10014, 0xafb00010, 0xafbf0018,
+0x34500080, 0x92020005, 0x24030030, 0x30420030,
+0x14430084, 0x808821, 0x3c020800, 0x8c420020,
+0x10400081, 0x8fbf0018, 0xe000d71, 0x0,
+0x8f86002c, 0xacd10000, 0x92020008, 0x92030009,
+0x304200ff, 0x21200, 0x306300ff, 0x431025,
+0xacc20004, 0x9202004d, 0x21600, 0x21603,
+0x4410005, 0x0, 0x3c030800, 0x8c630048,
+0xa001076, 0x3c108008, 0x92020008, 0x30420040,
+0x14400003, 0x1821, 0x92020027, 0x304300ff,
+0x3c108008, 0x36110080, 0x9222004d, 0x31e00,
+0x3c050800, 0x94a54bfe, 0x304200ff, 0x21400,
+0x621825, 0xacc30008, 0x8e230030, 0x3c02c00b,
+0xa22825, 0xacc3000c, 0x8e220034, 0x2021,
+0xacc20010, 0x8e220038, 0xacc20014, 0x8e22003c,
+0xacc20018, 0xe000d98, 0xacc5001c, 0x8e020004,
+0x8f84002c, 0x3c058000, 0xac820000, 0x8e220020,
+0xac820004, 0x8e22001c, 0xac820008, 0x8e220058,
+0x8ca30074, 0x431021, 0xac82000c, 0x8e22002c,
+0xac820010, 0x8e220040, 0x8e230044, 0x21400,
+0x431025, 0xac820014, 0x9222004d, 0x24030080,
+0x304200ff, 0x14430003, 0x0, 0xa0010b8,
+0xac800018, 0x8e23000c, 0x24020001, 0x1062000e,
+0x2402ffff, 0x92220008, 0x30420040, 0x1440000a,
+0x2402ffff, 0x8e23000c, 0x8ca20074, 0x621823,
+0x3c020800, 0x621024, 0x14400002, 0x2821,
+0x602821, 0x51043, 0xac820018, 0x3c020800,
+0x94424bfe, 0x3c03c00c, 0x2021, 0x431025,
+0x8f83002c, 0xe000d98, 0xac62001c, 0x3c048008,
+0x34820100, 0x8c420000, 0x8f83002c, 0x34840080,
+0x3c060800, 0x94c64bfe, 0xac620000, 0xac600004,
+0x8c850048, 0x3c02400d, 0xc23025, 0xac650008,
+0xac60000c, 0xac600010, 0x90820005, 0x8fbf0018,
+0x8fb10014, 0x21600, 0xac620014, 0x8fb00010,
+0xac600018, 0x24040001, 0xac66001c, 0xa000d98,
+0x27bd0020, 0x8fbf0018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0x3c028000, 0x9443007c,
+0x3c028008, 0x34460100, 0x308400ff, 0x3065ffff,
+0x24020005, 0x24a34650, 0xa0c4000c, 0x5482000c,
+0x3065ffff, 0x90c2000d, 0x2c420007, 0x10400007,
+0x24a30a00, 0x90c3000d, 0x24020014, 0x621004,
+0xa21021, 0xa0010f5, 0x3045ffff, 0x3065ffff,
+0x3c028008, 0x34420080, 0x3e00008, 0xa4450014,
+0x3c038008, 0x34680080, 0xad050038, 0x34670100,
+0x8ce2001c, 0x308400ff, 0xa21023, 0x18400003,
+0x30c600ff, 0x24a2fffc, 0xace2001c, 0x30820001,
+0x50400008, 0x3c038008, 0x8d02003c, 0xa21023,
+0x4410012, 0x24040005, 0x8c620004, 0x10a2000f,
+0x3c038008, 0x8c620004, 0x14a20018, 0x0,
+0x3c020800, 0x8c4200d8, 0x30420020, 0x10400009,
+0x3c028008, 0x34620080, 0x90630008, 0x9042004c,
+0x14430004, 0x3c028008, 0x24040004, 0xa0010df,
+0x0, 0x34430080, 0x34420100, 0xa040000c,
+0x24020001, 0xa4620014, 0x10c00004, 0x3c028000,
+0x8c440100, 0xa000f48, 0x0, 0x3e00008,
+0x0, 0x27bdffe8, 0xa61823, 0xafbf0010,
+0x1860004e, 0x308800ff, 0x3c028008, 0x34470080,
+0xa0e00024, 0x34440100, 0xa0e00027, 0x8c82001c,
+0xa21023, 0x440002b, 0x0, 0x8ce2003c,
+0x94e3005c, 0x8ce4002c, 0x453023, 0x3063ffff,
+0xc31821, 0x83202b, 0x10800004, 0xe01821,
+0x8ce2002c, 0xa001148, 0xa21021, 0x94e2005c,
+0x3042ffff, 0xc21021, 0xa21021, 0xac62001c,
+0x3c028008, 0x34470080, 0x94e2005c, 0x8ce3001c,
+0x3042ffff, 0x21040, 0xa21021, 0x43102b,
+0x10400003, 0x0, 0xa001159, 0x8ce2001c,
+0x94e2005c, 0x3042ffff, 0x21040, 0xa21021,
+0xace2001c, 0x3c028008, 0x34420100, 0x8fbf0010,
+0x1002021, 0x24060001, 0xa040000c, 0xa0010f9,
+0x27bd0018, 0x8ce2001c, 0x461023, 0x43102b,
+0x54400001, 0xace5001c, 0x94e2005c, 0x3042ffff,
+0x62102b, 0x14400007, 0x24020002, 0x94e2005c,
+0x8ce3001c, 0x3042ffff, 0x621821, 0xace3001c,
+0x24020002, 0xace50038, 0xe000f37, 0xa082000c,
+0x10400018, 0x8fbf0010, 0x3c028000, 0x8c440100,
+0x8fbf0010, 0xa000f48, 0x27bd0018, 0x31020010,
+0x10400010, 0x8fbf0010, 0x3c028008, 0x34450080,
+0x8ca3001c, 0x94a2005c, 0x661823, 0x3042ffff,
+0x621821, 0x3c023fff, 0x3444ffff, 0x83102b,
+0x54400001, 0x801821, 0xc31021, 0xaca2001c,
+0x8fbf0010, 0x3e00008, 0x27bd0018, 0x27bdffe8,
+0xc04021, 0xa63023, 0xafbf0010, 0x18c00026,
+0x308a00ff, 0x3c028008, 0x34490080, 0x8d24001c,
+0x8d23002c, 0x882023, 0x64182b, 0x1060000f,
+0x34470100, 0x8ce20020, 0x461021, 0xace20020,
+0x8ce20020, 0x44102b, 0x1440000b, 0x3c023fff,
+0x8ce20020, 0x441023, 0xace20020, 0x9522005c,
+0x3042ffff, 0xa0011ae, 0x822021, 0xace00020,
+0x862021, 0x3c023fff, 0x3443ffff, 0x64102b,
+0x54400001, 0x602021, 0x3c028008, 0x34420080,
+0x851821, 0xac43001c, 0xa0400024, 0xa0400027,
+0xa0011fd, 0x8fbf0010, 0x31420010, 0x10400040,
+0x8fbf0010, 0x3c068008, 0x34c40080, 0x8c82003c,
+0x481023, 0x5840003b, 0x1402021, 0x90820024,
+0x24420001, 0xa0820024, 0x90820024, 0x3c030800,
+0x8c630024, 0x304200ff, 0x43102b, 0x54400034,
+0x8fbf0010, 0x34c20100, 0x8c42001c, 0xa21023,
+0x1840002f, 0x8fbf0010, 0x8cc30004, 0x9482005c,
+0x681823, 0x3042ffff, 0x31843, 0x21040,
+0x43102a, 0x10400005, 0x0, 0x8cc20004,
+0x481023, 0xa0011e3, 0x21043, 0x9482005c,
+0x3042ffff, 0x21040, 0x3c068008, 0xac82002c,
+0x34c50080, 0x94a2005c, 0x8ca4002c, 0x94a3005c,
+0x3042ffff, 0x21040, 0x822021, 0x3063ffff,
+0x832021, 0x1041021, 0xaca2001c, 0x8cc20004,
+0x34c60100, 0xacc2001c, 0x24020002, 0xe000f37,
+0xa0c2000c, 0x1040000a, 0x8fbf0010, 0x3c028000,
+0x8c440100, 0x8fbf0010, 0xa000f48, 0x27bd0018,
+0x1402021, 0x24060001, 0xa0010f9, 0x27bd0018,
+0x3e00008, 0x27bd0018, 0x3c098008, 0x352a0080,
+0x8d42003c, 0x308300ff, 0x352b0100, 0x461023,
+0x30e700ff, 0x18400006, 0x602021, 0x24020001,
+0xa160000c, 0xa160000d, 0xa001190, 0xa5420014,
+0x24020005, 0x35290100, 0x3021, 0x14e20008,
+0xa1400027, 0x9122000d, 0x2c420006, 0x10400004,
+0x0, 0x9122000d, 0x24420001, 0xa122000d,
+0xa0010f9, 0x0, 0x3c038008, 0x3c028000,
+0x34420100, 0x34640080, 0x34630100, 0x9045000a,
+0x8c480014, 0x8c890038, 0x9062000c, 0x30aa00ff,
+0x1281823, 0x304700ff, 0x1c60000e, 0x2ce40006,
+0x24020001, 0xe21004, 0x1080000a, 0x30430003,
+0x1402021, 0x1002821, 0x1203021, 0x14600007,
+0x304b000c, 0x15600007, 0x30420030, 0x14400007,
+0x0, 0x3e00008, 0x0, 0xa001190,
+0x0, 0xa00112a, 0x0, 0xa001203,
+0x0, 0x3c038008, 0x34640100, 0x24020003,
+0xa082000c, 0x8c620004, 0x3e00008, 0xac82001c,
+0x3c058008, 0x34a30080, 0x90620027, 0x34a50100,
+0x24060043, 0x24420001, 0xa0620027, 0x90630027,
+0x3c020800, 0x8c420048, 0x306300ff, 0x14620004,
+0x3c076021, 0x94a500da, 0xa0008ee, 0x30a5ffff,
+0x3e00008, 0x0, 0x27bdffe8, 0xafbf0010,
+0x3c028000, 0xe001249, 0x8c440180, 0x3c028008,
+0x34430100, 0xa060000c, 0x8c420004, 0x8fbf0010,
+0x27bd0018, 0x3e00008, 0xac62001c, 0x27bdffe0,
+0x3c028008, 0xafbf0018, 0xafb10014, 0xafb00010,
+0x34450080, 0x34460100, 0x3c088000, 0x8d090140,
+0x90c3000c, 0x8ca4003c, 0x8ca20038, 0x14820038,
+0x306700ff, 0x9502007c, 0x90a30027, 0x14600009,
+0x3045ffff, 0x24020005, 0x54e20008, 0x3c048008,
+0x90c2000d, 0x24420001, 0xa0c2000d, 0xa001284,
+0x3c048008, 0xa0c0000d, 0x3c048008, 0x34820100,
+0x9042000c, 0x24030005, 0x304200ff, 0x1443000a,
+0x24a205dc, 0x34830080, 0x90620027, 0x2c420007,
+0x50400005, 0x24a20a00, 0x90630027, 0x24020014,
+0x621004, 0xa21021, 0x3c108008, 0x36100080,
+0x3045ffff, 0x1202021, 0xe001249, 0xa6050014,
+0x9602005c, 0x8e030038, 0x3c118000, 0x3042ffff,
+0x21040, 0x621821, 0xae03001c, 0xe000315,
+0x8e240140, 0x92020025, 0x34420040, 0xa2020025,
+0xe000320, 0x8e240140, 0x8e240140, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0xa000f48, 0x27bd0020,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0020, 0x0 };
+u32 bce_COM_b09FwData[(0x0/4) + 1] = { 0x0 };
+u32 bce_COM_b09FwRodata[(0x30/4) + 1] = {
+0x80080100, 0x80080080, 0x80080000,
+0x80080240, 0x8000ef0, 0x8000f48, 0x8000f8c,
+0x8001020, 0x8001064, 0x80080100, 0x80080080,
+0x80080000, 0x0 };
+u32 bce_COM_b09FwBss[(0xc0/4) + 1] = { 0x0 };
+u32 bce_COM_b09FwSbss[(0x38/4) + 1] = { 0x0 };
+u32 bce_COM_b09FwSdata[(0x0/4) + 1] = { 0x0 };
+
+
+int bce_RXP_b09FwReleaseMajor = 0x1;
+int bce_RXP_b09FwReleaseMinor = 0x0;
+int bce_RXP_b09FwReleaseFix = 0x0;
+u32 bce_RXP_b09FwStartAddr = 0x080031d8;
+u32 bce_RXP_b09FwTextAddr = 0x08000000;
+int bce_RXP_b09FwTextLen = 0x7908;
+u32 bce_RXP_b09FwDataAddr = 0x00000000;
+int bce_RXP_b09FwDataLen = 0x0;
+u32 bce_RXP_b09FwRodataAddr = 0x08007908;
+int bce_RXP_b09FwRodataLen = 0x124;
+u32 bce_RXP_b09FwBssAddr = 0x08007ab8;
+int bce_RXP_b09FwBssLen = 0x20;
+u32 bce_RXP_b09FwSbssAddr = 0x08007a60;
+int bce_RXP_b09FwSbssLen = 0x58;
+u32 bce_RXP_b09FwSDataAddr = 0x00000000;
+int bce_RXP_b09FwSDataLen = 0x0;
+u32 bce_RXP_b09FwText[(0x7908/4) + 1] = {
+0xa000c76,
+0x0, 0x0, 0xd, 0x72787034,
+0x2e362e31, 0x36000000, 0x4061003, 0x0,
+0x1, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x10000003, 0x0,
+0xd, 0xd, 0x3c020800, 0x24427a60,
+0x3c030800, 0x24637ad8, 0xac400000, 0x43202b,
+0x1480fffd, 0x24420004, 0x3c1d0800, 0x37bd9ffc,
+0x3a0f021, 0x3c100800, 0x261031d8, 0x3c1c0800,
+0x279c7a60, 0xe001253, 0x0, 0xd,
+0x3c028000, 0x30a5ffff, 0x30c600ff, 0x34430180,
+0x3c088000, 0x8d0901b8, 0x520fffe, 0x0,
+0xac640000, 0x24040002, 0xa4650008, 0xa066000a,
+0xa064000b, 0xac670018, 0x3c031000, 0x3e00008,
+0xad0301b8, 0x3c056000, 0x8ca24ff8, 0x440fffe,
+0x0, 0xaca44fc0, 0x3c031000, 0x3c040200,
+0xaca44fc4, 0x3e00008, 0xaca34ff8, 0x27bdffe8,
+0xafbf0014, 0xafb00010, 0xe0012a5, 0x808021,
+0x3c048008, 0x34850080, 0x90a60005, 0x2403fffe,
+0x2002021, 0xc31024, 0x8fbf0014, 0x8fb00010,
+0xa0a20005, 0xa0012af, 0x27bd0018, 0x27bdffe8,
+0xafb00010, 0xafbf0014, 0xe000ed6, 0x808021,
+0x3c068008, 0x34c50080, 0x90a40000, 0x24020050,
+0x308300ff, 0x10620007, 0x3c098000, 0x2002021,
+0x8fbf0014, 0x8fb00010, 0xad200180, 0xa000fc5,
+0x27bd0018, 0x24080100, 0x3c078000, 0x2002021,
+0x8fbf0014, 0x8fb00010, 0xace80180, 0xa000fc5,
+0x27bd0018, 0x27bdff88, 0x3c088008, 0xafbe0070,
+0xafb60068, 0xafb40060, 0xafb00050, 0xafbf0074,
+0xafb7006c, 0xafb50064, 0xafb3005c, 0xafb20058,
+0xafb10054, 0x35050080, 0x3c078000, 0x8cf10128,
+0x90a40009, 0xace00084, 0x90a60005, 0x309000ff,
+0xa021, 0x61827, 0x30620001, 0xb021,
+0x14400067, 0xf021, 0x90a90000, 0x24050020,
+0x312400ff, 0x10850016, 0x240a0050, 0x108a008d,
+0x0, 0x3c0c0800, 0x8d8c00dc, 0x258b0001,
+0x3c010800, 0xac2b00dc, 0xe00139b, 0x0,
+0x8fbf0074, 0x8fbe0070, 0x8fb7006c, 0x8fb60068,
+0x8fb50064, 0x8fb40060, 0x8fb3005c, 0x8fb20058,
+0x8fb10054, 0x8fb00050, 0x3e00008, 0x27bd0078,
+0xd, 0x3c158000, 0xafa00030, 0x96a20116,
+0x8eb90104, 0x3c1f0020, 0x36b20c00, 0x33fc024,
+0x18b82b, 0x173140, 0xafa60030, 0x8eae0104,
+0x3053ffff, 0x3c0f0040, 0x2723821, 0x1cf6824,
+0x90f2000d, 0x11a00048, 0x34c40040, 0x32430020,
+0x14600002, 0x34860080, 0x803021, 0x14c00094,
+0xafa60030, 0x3c098008, 0x35250080, 0x90a80008,
+0x31060040, 0x50c00006, 0x3c088008, 0x240a0004,
+0x120a00a3, 0x240b0012, 0x120b0029, 0x3c088008,
+0x35150100, 0x3c178000, 0x96f3011a, 0x94ee000e,
+0x92af0008, 0x324c0004, 0x3275ffff, 0x1ee6804,
+0xafad003c, 0x8cf30004, 0x11800031, 0x8cf70008,
+0x35030080, 0x90780008, 0x33070040, 0x14e00028,
+0x0, 0x8c720050, 0x2728823, 0x6200006,
+0x3c068000, 0x8c7f0034, 0x27fc823, 0x7220084,
+0x8e820008, 0x3c068000, 0xacc00044, 0x24020001,
+0x8fbf0074, 0x8fbe0070, 0x8fb7006c, 0x8fb60068,
+0x8fb50064, 0x8fb40060, 0x8fb3005c, 0x8fb20058,
+0x8fb10054, 0x8fb00050, 0x3e00008, 0x27bd0078,
+0xe000cb8, 0x2021, 0x8fbf0074, 0x8fbe0070,
+0x8fb7006c, 0x8fb60068, 0x8fb50064, 0x8fb40060,
+0x8fb3005c, 0x8fb20058, 0x8fb10054, 0x8fb00050,
+0x3e00008, 0x27bd0078, 0xa000d18, 0xc02021,
+0xe00146c, 0x2602021, 0x1440ffdf, 0x3c068000,
+0x3c038008, 0x34630080, 0x8c640034, 0x2641023,
+0x4400018, 0x0, 0x3c140800, 0x8e943100,
+0x26900001, 0x3c010800, 0xac303100, 0xe0012a5,
+0x2202021, 0x3c048008, 0x349f0080, 0x93fe0025,
+0x2202021, 0x37c90004, 0xa3e90025, 0xe0012af,
+0x0, 0xe000c9e, 0x2202021, 0xa000d45,
+0x24020001, 0x3c140800, 0x26947ac8, 0xa000d07,
+0x3c158000, 0x8c680030, 0x2683023, 0x18c00008,
+0x240b000c, 0x3c090800, 0x8d293100, 0x325200fc,
+0xa821, 0x25250001, 0x3c010800, 0xac253100,
+0xafab0030, 0x8c6a0030, 0x1534023, 0x190000e0,
+0x2a8602a, 0x1580ffdd, 0x0, 0x12a8002a,
+0x2a87823, 0x2689821, 0x31f5ffff, 0x32470002,
+0x10e00034, 0x32590010, 0x3c138008, 0x36700080,
+0x921e0008, 0x33d60040, 0x52c000d3, 0x8e820008,
+0x2202021, 0xe0012a5, 0x24120018, 0xa2120009,
+0x92170005, 0x2418fffe, 0x2202021, 0x2f8a824,
+0xe0012af, 0xa2150005, 0x24040039, 0x2821,
+0xe001447, 0x24060018, 0xa000d45, 0x24020001,
+0x9296000c, 0x3c048008, 0x349e0080, 0x8fc70038,
+0x16a300, 0x36900081, 0x30c600ff, 0x2202021,
+0xe000c8d, 0x3205f081, 0x3c068000, 0xacc00044,
+0xa000d45, 0x24020001, 0x3a4e0001, 0x31cd0001,
+0x15a0ffae, 0x2689821, 0xa000d97, 0x0,
+0x40f809, 0x24040016, 0xa000d45, 0x24020001,
+0x2202021, 0xe001529, 0xe02821, 0xa000cfa,
+0x8fbf0074, 0x1320ff73, 0x3c048008, 0x34890080,
+0x8d230038, 0x8c820004, 0x2e2f823, 0x1fe0ff6e,
+0x3c068000, 0x2e33023, 0x4c20001, 0x60b821,
+0xafa80018, 0x3c198000, 0xafb30010, 0xafb50014,
+0x97260120, 0x8d2a0030, 0x9524005c, 0x8fb8003c,
+0x8fad0030, 0x3087ffff, 0x30dfffff, 0x3e87021,
+0x372f4000, 0x307282b, 0x8e820004, 0x1cf6021,
+0x1a55825, 0xafa90048, 0xafac0020, 0xafaa0028,
+0xafab0030, 0xafaa0024, 0xafa0002c, 0xafb70034,
+0x40f809, 0x27a40010, 0x8fa80030, 0x31030002,
+0x10600002, 0x8fa90048, 0x325200fe, 0x91230008,
+0x30690040, 0x51200013, 0x8fa40024, 0x3c028008,
+0x8c480004, 0x111700a4, 0x240a0014, 0x32580001,
+0x5300000c, 0x8fa40024, 0x2419000c, 0x121900c0,
+0x2a1f000d, 0x13e000ba, 0x2406000e, 0x2404000a,
+0x52040001, 0x24160008, 0x8fa90024, 0x25240001,
+0xafa40024, 0x3c188008, 0x37050080, 0x8fa70014,
+0x8caf0030, 0x340cffff, 0x877021, 0xacae0030,
+0xafaf0038, 0x90ad004e, 0x8cab0030, 0x8fa8003c,
+0x1ac1004, 0x1625021, 0xacaa0034, 0x8fa60030,
+0x2e82021, 0x30c30008, 0x1060000b, 0xafa40040,
+0x8cb90020, 0x1324008f, 0x30c600ff, 0x9289000c,
+0x8fa70034, 0x98300, 0x36040080, 0x3085f080,
+0xe000c8d, 0x2202021, 0x3c0a8008, 0x35500080,
+0x8e030030, 0x8fa80038, 0x683023, 0x18c00065,
+0x262f0080, 0x3c0e0800, 0x8dce3198, 0x2407ff80,
+0x1e76824, 0x31ec007f, 0x3c068000, 0x3c028004,
+0x31cb0010, 0xaccd0090, 0x1160003b, 0x1822821,
+0x90b8006b, 0x57000039, 0x3c048008, 0x241f0001,
+0xa0bf006b, 0x94c5007a, 0x24b9000a, 0xa6190012,
+0x3c0a8008, 0x35450080, 0x90a80008, 0x31100040,
+0x16000004, 0x3c038008, 0x324b0001, 0x1560006b,
+0x0, 0x34640080, 0x8c8c0020, 0x8fb20040,
+0x11920009, 0x34630100, 0x8c6d0000, 0x26d1023,
+0x18400012, 0x8fb80040, 0x241e0001, 0xac980020,
+0xac730000, 0xac770004, 0x16c0002d, 0x0,
+0x17c00027, 0x0, 0x12a00005, 0x1821,
+0x8fa50030, 0x30b50004, 0x52a0fe95, 0x601021,
+0x24030001, 0xa000cf9, 0x601021, 0x8c6e0000,
+0x15d3fff1, 0x0, 0x8c670004, 0x2e77823,
+0x5e1ffe9, 0x8fb80040, 0xa000e5b, 0x0,
+0xa000d98, 0x4021, 0x40f809, 0x24040017,
+0xa000d45, 0x24020001, 0x3c048008, 0x34900080,
+0x241e0001, 0x2202021, 0xe0012a5, 0xa61e0012,
+0x92090025, 0x2202021, 0x241e0001, 0x35220001,
+0xe0012af, 0xa2020025, 0xa000e46, 0x3c0a8008,
+0xe000c9e, 0x2202021, 0xa000e5f, 0x0,
+0xe0012a5, 0x2202021, 0x3c198008, 0x37370080,
+0x2202021, 0xe0012af, 0xa2f60009, 0x2c03021,
+0x24040037, 0xe001447, 0x2821, 0xa000e5d,
+0x0, 0x8fa60018, 0x58c0ffae, 0x3c0a8008,
+0xe0012a5, 0x2202021, 0x92030025, 0x2202021,
+0x241e0001, 0x34620004, 0xe0012af, 0xa2020025,
+0xa000e46, 0x3c0a8008, 0x120a0030, 0x2a0b0015,
+0x11600024, 0x240d0016, 0x240c000c, 0x560cff58,
+0x32580001, 0x3c058008, 0x90af001b, 0x2407ffbd,
+0x2416000e, 0x1e77024, 0xa0ae001b, 0xa000e01,
+0x32580001, 0x3c1f8000, 0x97e5011a, 0x50a0ff6f,
+0x34c60010, 0xa000e25, 0x9289000c, 0x8cb30030,
+0x8e960008, 0x24040018, 0x26740001, 0x2c0f809,
+0xacb40030, 0x8fb10030, 0xa000cf9, 0x32220004,
+0x1606ff4a, 0x8fa90024, 0xa000e0c, 0x24160010,
+0x2410000e, 0x52d0ff44, 0x24160010, 0xa000e0b,
+0x24160016, 0x560dff36, 0x32580001, 0x3c058008,
+0x90af001b, 0x2407ffbd, 0x24160010, 0x1e77024,
+0xa0ae001b, 0xa000e01, 0x32580001, 0xa000e00,
+0x24160012, 0x3c038000, 0x8c6201b8, 0x440fffe,
+0x24040800, 0xac6401b8, 0x3e00008, 0x0,
+0x3c058008, 0x94a20048, 0x3084ffff, 0x10400019,
+0x24840012, 0x94a90048, 0x3c038000, 0x3128ffff,
+0x104382a, 0x10e00013, 0x34660180, 0x946d0120,
+0x8f8c0004, 0x240b001a, 0x31aaffff, 0x31834000,
+0xa0cb000b, 0x10600010, 0x2544fffe, 0x94af0048,
+0x31eeffff, 0x1c4282b, 0x14a0000c, 0x8f98000c,
+0xa4c40014, 0x8f86000c, 0x34c20001, 0x3e00008,
+0xaf82000c, 0x3c078000, 0x24040003, 0x34e20180,
+0x3e00008, 0xa044000b, 0x8f98000c, 0x2419fffe,
+0x3191024, 0x3e00008, 0xaf82000c, 0x27bdffd8,
+0xafb40020, 0xafb3001c, 0xafb20018, 0xafb10014,
+0xafbf0024, 0xafb00010, 0x801821, 0x30b3ffff,
+0x30d2ffff, 0x30f4ffff, 0x3c118000, 0x8e2201b8,
+0x440fffe, 0x36300180, 0xae030000, 0x2402021,
+0xe000edd, 0xae230020, 0x8f86000c, 0x8f850004,
+0x8f830000, 0x30c48000, 0xa613000c, 0xa612000e,
+0xa6050010, 0xae030028, 0xa6140008, 0x1080000e,
+0x3c0f8000, 0x962c0116, 0x318bfffc, 0x256a0004,
+0x1514821, 0x8d284000, 0x3107ffff, 0x14e00007,
+0x2414bfff, 0x3c0effff, 0x35cd7fff, 0xcd3024,
+0xaf86000c, 0x3c0f8000, 0x2414bfff, 0x35f10180,
+0xd49824, 0xa6330026, 0x8df20104, 0xae32002c,
+0x3c061000, 0xade601b8, 0x8fbf0024, 0x8fb40020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0028, 0x27bdffd8, 0xafb10014,
+0x3c118000, 0x804021, 0xafb40020, 0xafb00010,
+0x30d4ffff, 0x36300180, 0x2802021, 0xae080000,
+0xae280020, 0xafb3001c, 0xafb20018, 0x30f3ffff,
+0xafbf0024, 0xe000edd, 0x30b2ffff, 0x8f85000c,
+0x8f830004, 0x2406bfff, 0xa62024, 0xa612000c,
+0xa614000e, 0xa6130008, 0xa6040026, 0xa6030010,
+0x3c021000, 0xae2201b8, 0x8fbf0024, 0x8fb40020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0028, 0x3c028000, 0x34450180,
+0x3c048000, 0x8c8301b8, 0x460fffe, 0x24072000,
+0x24060002, 0xa4a70008, 0xa0a6000b, 0xa4a00010,
+0x3c051000, 0xac8501b8, 0x3e00008, 0x0,
+0x3c058000, 0x34a40070, 0x8c8a0000, 0x90a60112,
+0x8f840004, 0x27bdfff0, 0x30c300ff, 0x31882,
+0x30820100, 0x3821, 0x10400039, 0x24660003,
+0x30874000, 0x50e00039, 0x30882000, 0x61080,
+0x45c821, 0x8f2f4000, 0x24780004, 0x187080,
+0xafaf0000, 0x1c56821, 0x8dac4000, 0xafac0004,
+0x94ab0116, 0x3169fffc, 0x1254021, 0x8d054000,
+0xafa50008, 0x8fa90008, 0x3021, 0x2821,
+0x3c070800, 0x24e70100, 0xa000f9e, 0x24080008,
+0x90420000, 0x24a50001, 0x2cad000c, 0x62c821,
+0x19c080, 0x3077821, 0x8dee0000, 0x11a00006,
+0xce3026, 0x3a51021, 0x14a8fff5, 0x51a00,
+0x5520fff4, 0x90420000, 0x3c048000, 0x34870070,
+0x3c050800, 0x8ca53104, 0x8ce30000, 0x2ca80020,
+0x11000009, 0x6a3823, 0x55880, 0x3c0c0800,
+0x258c3108, 0x16c4821, 0x24aa0001, 0xad270000,
+0x3c010800, 0xac2a3104, 0xaf860000, 0x24070001,
+0xe01021, 0x3e00008, 0x27bd0010, 0x1100fffc,
+0x3821, 0x66080, 0x1855821, 0x8d644000,
+0x24690004, 0x93880, 0xafa40000, 0xe51821,
+0x8c664000, 0xafa00008, 0xa000f8e, 0xafa60004,
+0x3c020800, 0x8c420038, 0x27bdffd8, 0xafb40020,
+0xafb20018, 0xafbf0024, 0xafb3001c, 0xafb10014,
+0xafb00010, 0x3c140800, 0x26940038, 0x14400002,
+0x2452ffff, 0x9021, 0x8f850004, 0x30a34000,
+0x1060000f, 0x30a98000, 0x3c060020, 0xa62024,
+0x1080000b, 0x8f87000c, 0x2408bfff, 0xa82824,
+0x34e31000, 0xaf850004, 0x30af2000, 0x15e0000a,
+0x3c110004, 0x2413ffbf, 0xa000fef, 0x731024,
+0x15200062, 0x3c0b0020, 0x30af2000, 0x11e0fff9,
+0x8f83000c, 0x3c110004, 0xb18024, 0x1200fff6,
+0x2413ffbf, 0x34620040, 0x30b80100, 0x1300000f,
+0xaf82000c, 0x3c1f0020, 0xbfc824, 0x13200005,
+0x3c0a8000, 0x3c030004, 0xa31024, 0x104000c8,
+0x0, 0x9549011e, 0x9548011c, 0x3126ffff,
+0x83c00, 0xc72025, 0xaf840000, 0x3c0d8000,
+0x95ac010c, 0x30ab1000, 0x11600008, 0x3186ffff,
+0x30ae0020, 0x15c00006, 0x24110005, 0x3c101000,
+0xb07824, 0x15e00073, 0x3c1f0c00, 0x24110001,
+0x30a20100, 0x54400009, 0x3c0c0001, 0x8f830014,
+0x54600006, 0x3c0c0001, 0x8f87000c, 0x30e44000,
+0x1080009a, 0x3c0a1f01, 0x3c0c0001, 0xac3024,
+0x14c0006c, 0x3c108000, 0x8f84000c, 0x30934000,
+0x12600006, 0x3c031000, 0x3c190f00, 0xb9c024,
+0x1300008b, 0x3c1f8000, 0x3c031000, 0xa31024,
+0x1040002c, 0x3c068000, 0x3c070800, 0x8ce70030,
+0x14e00073, 0x30884000, 0x30a60100, 0x10c00098,
+0x3c0e0f00, 0xae6824, 0x3c0c0200, 0x11ac0094,
+0x8f930000, 0x2728024, 0x2147821, 0x91f40004,
+0x26920004, 0x1221c0, 0x3c0e8000, 0x95c6010e,
+0x36270002, 0x24d40004, 0x3286ffff, 0x24050002,
+0xe000f04, 0x0, 0x8fbf0024, 0x8fb40020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x1021, 0x3e00008, 0x27bd0028, 0xab5024,
+0x1140ff9e, 0x30af2000, 0x8f8c000c, 0x3c0effff,
+0x35cd7fff, 0xad2824, 0x35838000, 0xa000fdf,
+0xaf850004, 0x8cd04000, 0x320f0100, 0x11e0003c,
+0x30b80100, 0x3c100800, 0x8e100024, 0x13000014,
+0x32330004, 0x3c020f00, 0xa2f824, 0x3c190200,
+0x13f9000f, 0x8f830000, 0x94c9010e, 0x2203821,
+0x725824, 0x1745021, 0x91480004, 0x25240004,
+0x3086ffff, 0x25140004, 0x1421c0, 0x24050002,
+0xe000f04, 0x2412fffe, 0x2128024, 0x3231fffb,
+0x24070001, 0x1207006f, 0x32060001, 0x14c00090,
+0x3c0e8000, 0x320f0004, 0x11e00004, 0x8f980004,
+0x33100800, 0x16000078, 0x3c1f8000, 0x5660ffc7,
+0x8fbf0024, 0xe000f63, 0x0, 0xa001040,
+0x8fbf0024, 0x3c190bff, 0xbfc024, 0x3733ffff,
+0x278882b, 0x5220ff8a, 0x24110001, 0xa00100d,
+0x24110005, 0x3c0e0800, 0x8dce00d8, 0x960f010e,
+0x24040080, 0x25cd0001, 0x31e6ffff, 0x24050002,
+0x3c010800, 0xac2d00d8, 0xa00103d, 0x24070003,
+0x3c120800, 0x8e520024, 0x32420001, 0x1040ffab,
+0x8fbf0024, 0x94c6010e, 0x36270002, 0x2021,
+0x24d40004, 0x3286ffff, 0xa00103d, 0x24050002,
+0x1100ff8e, 0x30a60100, 0x3c0b0f00, 0xab5024,
+0x3c090100, 0x12a202b, 0x1480ff88, 0x0,
+0x3c058000, 0x94a6010e, 0x36270002, 0x24040080,
+0x24d40004, 0x3286ffff, 0xa00103d, 0x24050002,
+0x97e30116, 0xa001024, 0x3c031000, 0xaa4824,
+0x3c081000, 0x1528ff65, 0x3c0c0001, 0x30cb0200,
+0x1560ff63, 0xac3024, 0x3c148000, 0x9692010e,
+0x36270002, 0x2021, 0x26450004, 0x30a6ffff,
+0xe000f3f, 0x24050002, 0xa001040, 0x8fbf0024,
+0xe000f71, 0x0, 0xa001000, 0x8f850004,
+0x0, 0x3c060800, 0x8cc600d0, 0x51602,
+0x3050000f, 0x38df0001, 0x2ff90001, 0x2e03000c,
+0x323c024, 0x1700ff68, 0x1021c0, 0x2608fffc,
+0x2d070004, 0x14e00007, 0x3c0e8000, 0x38ca0002,
+0x2d490001, 0x1232024, 0x5080000e, 0x53242,
+0x3c0e8000, 0x95c6010e, 0x2021, 0xa00103a,
+0x36270002, 0x32330004, 0x52600001, 0x36310002,
+0x3c0c8000, 0x9586010e, 0x2203821, 0xa001099,
+0x2021, 0x10182b, 0xc35824, 0x1560000f,
+0x3c058000, 0x1021c0, 0x3c0e8000, 0x95c6010e,
+0xa00103a, 0x36270002, 0x97f9010e, 0x2203821,
+0x24040100, 0x27310004, 0x3226ffff, 0xe000f04,
+0x24050002, 0xa001078, 0x0, 0x94ad010e,
+0x2021, 0x24050002, 0x25ac0004, 0x3186ffff,
+0xe000f04, 0x3227fffb, 0xa0010eb, 0x1021c0,
+0x95c5010e, 0x2203821, 0x2021, 0x24ad0004,
+0x31a6ffff, 0xe000f04, 0x24050002, 0xa001072,
+0x3231fffb, 0x3c058000, 0x8ca70148, 0x24030004,
+0x34a60180, 0x72402, 0x308200ff, 0x10430010,
+0x3c048000, 0x8c8901b8, 0x520fffe, 0x0,
+0x8c8f0148, 0x240d0002, 0x3c0a1000, 0xf7402,
+0xa4ce0008, 0xa0cd000b, 0x8c8c0148, 0xa4cc0010,
+0x8c8b0144, 0xaccb0024, 0x3e00008, 0xac8a01b8,
+0x8ca40140, 0x3c038000, 0xc02821, 0x8c6601b8,
+0x4c0fffe, 0x2408001c, 0xaca40000, 0xa0a8000b,
+0x3c051000, 0xac6501b8, 0x3e00008, 0x0,
+0x27bdffe8, 0xafb00010, 0xafbf0014, 0x3c10600c,
+0x8e0d5000, 0x240eff7f, 0x24060003, 0x1ae6024,
+0x3588380c, 0x3c058000, 0xae085000, 0xaca60008,
+0x3c010800, 0xac200020, 0xe001555, 0x0,
+0x3c086016, 0x8d0a0000, 0x3c0bffff, 0x3c090010,
+0x35238051, 0x3c046000, 0x14b3824, 0x3c025353,
+0xae03537c, 0x34842020, 0x3c050800, 0x24a57908,
+0x2406000a, 0x10e20009, 0x35037c00, 0x8c7f007c,
+0x8c790078, 0x8fb00010, 0xaf9f0010, 0x8fbf0014,
+0x27bd0018, 0xa0013b1, 0xaf990008, 0x8d0f0004,
+0x3c186000, 0x8fb00010, 0x1f81821, 0x8c7f007c,
+0x8c790078, 0xaf9f0010, 0x8fbf0014, 0x27bd0018,
+0xa0013b1, 0xaf990008, 0x3c048000, 0x8c834000,
+0x3402ffff, 0x1062003a, 0x0, 0x8c874000,
+0x30e50100, 0x10a00021, 0x0, 0x9487010e,
+0x3c020800, 0x8c4200ec, 0x9485010e, 0x3c0d0800,
+0x8dad31cc, 0x30e3ffff, 0x3c180800, 0x8f1800e8,
+0x3c090800, 0x8d2931c8, 0x436021, 0x30abffff,
+0x183782b, 0xc821, 0x1ab1821, 0x5021,
+0x3197021, 0x6b302b, 0x12a4021, 0x1cf2021,
+0x1061021, 0x3c010800, 0xac2c00ec, 0x3c010800,
+0xac2400e8, 0x3c010800, 0xac2331cc, 0x3c010800,
+0xac2231c8, 0x3e00008, 0x0, 0x8c884000,
+0x8f8c0008, 0x110c0032, 0x3c0d8000, 0x95ab010e,
+0x3c0a0800, 0x8d4a00e4, 0x3c080800, 0x8d0800e0,
+0x3169ffff, 0x1492821, 0x3021, 0xa9602b,
+0x1063821, 0xec1021, 0x3c010800, 0xac2500e4,
+0x3c010800, 0xac2200e0, 0x3e00008, 0x0,
+0x9483010e, 0x9482010e, 0x3c190800, 0x8f3900f4,
+0x3c090800, 0x8d2931cc, 0x3c0e0800, 0x8dce00f0,
+0x3c080800, 0x8d0831c8, 0x3078ffff, 0x304bffff,
+0x3382821, 0x12b1821, 0x7821, 0x5021,
+0xb8682b, 0x1cf6021, 0x6b302b, 0x10a3821,
+0x18d2021, 0xe61021, 0x3c010800, 0xac2500f4,
+0x3c010800, 0xac2400f0, 0x3c010800, 0xac2331cc,
+0x3c010800, 0xac2231c8, 0x3e00008, 0x0,
+0x8c894004, 0x8f860010, 0x1526ffcc, 0x3c0d8000,
+0x9483010e, 0x3c190800, 0x8f3931bc, 0x3c0e0800,
+0x8dce31b8, 0x3078ffff, 0x3385821, 0x7821,
+0x178202b, 0x1cf6821, 0x1a45021, 0x3c010800,
+0xac2b31bc, 0x3c010800, 0xac2a31b8, 0x3e00008,
+0x0, 0x27bdffe8, 0x3c058000, 0xafbf0014,
+0xafb00010, 0x8cb00128, 0xacb00020, 0x8ca30104,
+0x8ca40100, 0xaf830004, 0xe000ed6, 0xaf84000c,
+0xe00115f, 0x0, 0x3c020800, 0x8c4200c0,
+0x10400026, 0x8f840004, 0x3c070800, 0x8ce700c4,
+0x24e60001, 0x3c010800, 0xac2600c4, 0x3c028000,
+0x8c440124, 0x3c1f6020, 0xafe40014, 0x0,
+0x3c068000, 0x3c034000, 0xacc30138, 0x0,
+0x12000013, 0x8fbf0014, 0x260f0140, 0x26190080,
+0x2404ff80, 0x1e4c024, 0x324f824, 0x1f6940,
+0x332e007f, 0x185940, 0x31ec007f, 0x3c0a2000,
+0x35480002, 0x1ae3825, 0x16c4825, 0x1288025,
+0xe82825, 0xacc50830, 0xacd00830, 0x8fbf0014,
+0x8fb00010, 0x3e00008, 0x27bd0018, 0x3c090010,
+0x894024, 0x1100000f, 0x8f83000c, 0x240dbfff,
+0x6d6024, 0x11800007, 0x240f87ff, 0x6f7024,
+0x15c00013, 0x3c190060, 0x99c024, 0x13000010,
+0x0, 0xe000cd2, 0x0, 0xa001221,
+0x0, 0x3c0b0800, 0x8d6b0020, 0x256a0001,
+0x3c010800, 0xac2a0020, 0xe000fc5, 0x2021,
+0x1040ffcc, 0x3c068000, 0xa0011e9, 0x3c028000,
+0xe00128e, 0x0, 0xa001221, 0x0,
+0x27bdffe8, 0x3c028000, 0xafbf0010, 0x8c460140,
+0x3c037000, 0x3c054000, 0xac460020, 0x8c440148,
+0x832024, 0x10850013, 0xa4102b, 0x1040000b,
+0x3c072000, 0x3c086000, 0x10880017, 0x0,
+0x3c0a4000, 0x3c098000, 0xad2a0178, 0x0,
+0x8fbf0010, 0x3e00008, 0x27bd0018, 0x5487fff9,
+0x3c0a4000, 0xe00110a, 0x0, 0xa00123a,
+0x3c0a4000, 0xe0012b4, 0x0, 0x3c0a4000,
+0x3c098000, 0xad2a0178, 0x0, 0x8fbf0010,
+0x3e00008, 0x27bd0018, 0xe001d6f, 0x0,
+0xa00123a, 0x3c0a4000, 0x27bdffe0, 0xafb20018,
+0x3c128000, 0xafb10014, 0xafbf001c, 0xafb00010,
+0xe00112d, 0x36510070, 0x8e260000, 0xaf860018,
+0x8e280000, 0x3c0b0800, 0x8d6b00fc, 0x3c070800,
+0x8ce700f8, 0x1066023, 0x16c2821, 0x4821,
+0xac302b, 0xe91821, 0x662021, 0x3c010800,
+0xac2500fc, 0x3c010800, 0xac2400f8, 0x8e500000,
+0x32020003, 0x1040ffee, 0x1003021, 0x8e260000,
+0x3c050800, 0x8ca500fc, 0x3c1f0800, 0x8fff00f8,
+0xc81823, 0xa37821, 0x1021, 0x1e3c82b,
+0x3e2c021, 0x3197021, 0x320d0001, 0x3c010800,
+0xac2f00fc, 0xaf880018, 0x3c010800, 0xac2e00f8,
+0x15a00008, 0x0, 0x32080002, 0x1100ffd6,
+0x0, 0xe001229, 0x0, 0xa00125b,
+0x0, 0xe0011d2, 0x0, 0xa001284,
+0x32080002, 0x3c038000, 0x8c640100, 0x3082003e,
+0x14400008, 0x0, 0xac600048, 0x8c660100,
+0x30c507c0, 0x10a00005, 0x0, 0xac60004c,
+0xac600050, 0x3e00008, 0x24020001, 0xac600054,
+0xac600040, 0x8c680100, 0x31073800, 0x10e0fff9,
+0x0, 0x24020001, 0x3e00008, 0xac600044,
+0x3c039000, 0x34620001, 0x822025, 0x3c038000,
+0xac640020, 0x8c650020, 0x4a0fffe, 0x0,
+0x3e00008, 0x0, 0x3c028000, 0x34430001,
+0x832025, 0x3e00008, 0xac440020, 0x27bdffd8,
+0xafb10014, 0x3c048000, 0xafbf0020, 0xafb3001c,
+0xafb20018, 0xafb00010, 0x8c920140, 0x8c900148,
+0x2402000e, 0x108c02, 0x322300ff, 0x10620059,
+0x2042824, 0x2866000f, 0x10c00013, 0x286a0037,
+0x24070006, 0x1067008e, 0x28680007, 0x5100002d,
+0x24040009, 0x10600078, 0x3c068000, 0x24090001,
+0x106900b0, 0x0, 0xd, 0x8fbf0020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0028, 0x11400059, 0x240d0038,
+0x286b0035, 0x11600005, 0x3c058000, 0x240c001f,
+0x146cfff1, 0x0, 0x3c058000, 0x8cb801b8,
+0x700fffe, 0x34b90180, 0xaf320000, 0x241f0001,
+0x24120002, 0x3c021000, 0xaf200004, 0xa7310008,
+0xa33f000a, 0xa332000b, 0xa7300010, 0xaf200024,
+0xaf200028, 0xaca201b8, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0028, 0x10640023, 0x2405000b, 0x1465ffd6,
+0x3218ffff, 0x17000020, 0x3c058000, 0x8f93fed4,
+0x927f0005, 0x33f90004, 0x1720ffcf, 0x0,
+0xe0012a5, 0x2402021, 0x92690005, 0x2402021,
+0x35280004, 0xe0012af, 0xa2680005, 0x92670005,
+0x30e20004, 0x14400002, 0x0, 0xd,
+0x926b0000, 0x24060020, 0x316a00ff, 0x1546000a,
+0x3c058000, 0x8ca401b8, 0x480fffe, 0x34ad0180,
+0x240e0005, 0x3c0c1000, 0xadb20000, 0xa1ae000b,
+0xacac01b8, 0x3c058000, 0x8ca301b8, 0x460fffe,
+0x34af0180, 0x24130002, 0xade00000, 0xadf20004,
+0xa5f10008, 0xa1f3000a, 0xa1f3000b, 0xa5f00010,
+0xade00024, 0x8cb10144, 0x3c101000, 0xadf10028,
+0xacb001b8, 0x8fbf0020, 0x8fb3001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x3e00008, 0x27bd0028,
+0x106dffad, 0x240e0080, 0x146eff9b, 0x0,
+0x3c058000, 0x8ca301b8, 0x460fffe, 0x34af0180,
+0x24120002, 0xa1f2000b, 0xa5f10008, 0xa5f00010,
+0x8cb30144, 0x3c021000, 0xa5f30012, 0xaca201b8,
+0xa0012f0, 0x8fbf0020, 0x8cc301b8, 0x460fffe,
+0x34d30180, 0xae720000, 0xae600004, 0x24120001,
+0xa6710008, 0x24110002, 0xa272000a, 0xa271000b,
+0xa6700010, 0x8cd00144, 0x3c0f1000, 0xae700024,
+0xae600028, 0xaccf01b8, 0xa00132b, 0x8fbf0020,
+0x3c038000, 0x8c6601b8, 0x4c0fffe, 0x34620180,
+0x3c060800, 0x90c67ab8, 0xac520000, 0x10c00003,
+0x3821, 0x3c070800, 0x8ce77ac0, 0x3c058000,
+0x34aa0180, 0x24040002, 0x34cc0001, 0xac470004,
+0xa5510008, 0xa14c000a, 0xa144000b, 0xa5500010,
+0x8cab0144, 0x2021, 0x1402821, 0xad4b0024,
+0x10c00003, 0x8fbf0020, 0x3c040800, 0x8c847abc,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3c0e1000, 0x3c0d8000, 0x27bd0028, 0xaca40028,
+0xadae01b8, 0x3c010800, 0xa0207ab8, 0x3e00008,
+0x0, 0x10a0000b, 0x3c068000, 0x8c980144,
+0x24190002, 0x3c010800, 0xa0397ab8, 0x3c010800,
+0xac327ac0, 0x3c010800, 0xac387abc, 0xa00132b,
+0x8fbf0020, 0x8cdf01b8, 0x7e0fffe, 0x34c70180,
+0x24090002, 0xace00000, 0xacf20004, 0xa4f10008,
+0xa0e9000a, 0xa0e9000b, 0xa4f00010, 0xace00024,
+0x8cc80144, 0x3c021000, 0xace80028, 0xacc201b8,
+0xa00132b, 0x8fbf0020, 0x27bdffe8, 0xafbf0010,
+0xe000ed6, 0x0, 0x3c028000, 0x8fbf0010,
+0x2021, 0xac400180, 0xa000fc5, 0x27bd0018,
+0x3084ffff, 0x30a5ffff, 0x10800007, 0x1821,
+0x30820001, 0x10400002, 0x42042, 0x651821,
+0x1480fffb, 0x52840, 0x3e00008, 0x601021,
+0x10c00007, 0x0, 0x8ca20000, 0x24c6ffff,
+0x24a50004, 0xac820000, 0x14c0fffb, 0x24840004,
+0x3e00008, 0x0, 0x10a00008, 0x24a3ffff,
+0xac860000, 0x0, 0x0, 0x2402ffff,
+0x2463ffff, 0x1462fffa, 0x24840004, 0x3e00008,
+0x0, 0x27bdffe0, 0xafb20018, 0xafb10014,
+0xafb00010, 0xafbf001c, 0x9486000c, 0xa09021,
+0x24900014, 0x61b02, 0x31080, 0x448821,
+0x3021, 0xa02021, 0xe0013bb, 0x24050005,
+0x211202b, 0x10800012, 0x1021, 0x92030000,
+0x2c650009, 0x50a00009, 0x92020001, 0x34880,
+0x3c0a0800, 0x254a793c, 0x12a4021, 0x8d070000,
+0xe00008, 0x0, 0x92020001, 0x2028021,
+0x211202b, 0x5480fff2, 0x92030000, 0x1021,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0xa0013d5, 0x26100001,
+0x920c0001, 0x240b000c, 0x158b0040, 0x2307023,
+0x2dcd000a, 0x15a0003d, 0x26080006, 0x8e430000,
+0x26020002, 0x34640100, 0xae440000, 0x921f0002,
+0x90590001, 0x904e0002, 0x904b0003, 0x1f7e00,
+0x19c400, 0x1f86025, 0xe6a00, 0x18d5025,
+0x14b4825, 0xae490004, 0x92070006, 0x91050001,
+0x91040002, 0x91190003, 0x71e00, 0x53400,
+0x66f825, 0x41200, 0x3e2c025, 0x3197825,
+0x2610000a, 0xa0013d5, 0xae4f0008, 0x921f0001,
+0x26040002, 0x24100002, 0x57f00001, 0x2202021,
+0xa0013d5, 0x808021, 0x920e0001, 0x240d0003,
+0x15cdffcb, 0x24020001, 0x8e590000, 0x92180002,
+0x26100003, 0x372f0008, 0xa2580010, 0xa0013d5,
+0xae4f0000, 0x92050001, 0x24060004, 0x14a6ffc0,
+0x24020001, 0x920c0002, 0x920b0003, 0x8e490000,
+0xc5200, 0x14b4025, 0x35270004, 0x26100004,
+0xae48000c, 0xa0013d5, 0xae470000, 0xa0013e9,
+0x24020001, 0x27bdffe8, 0xafbf0014, 0xafb00010,
+0xe0012a5, 0x808021, 0x3c048008, 0x34830080,
+0x90650025, 0x2002021, 0x34a20020, 0xe0012af,
+0xa0620025, 0x2002021, 0x8fbf0014, 0x8fb00010,
+0xa000c9e, 0x27bd0018, 0x3c038000, 0x27bdfff8,
+0x34620180, 0xafa20000, 0x308c00ff, 0x30ad00ff,
+0x30ce00ff, 0x3c0b8000, 0x8d6401b8, 0x480fffe,
+0x0, 0x8fa90000, 0x8d680128, 0x8faa0000,
+0x8fa70000, 0x8fa40000, 0x24050001, 0x24020002,
+0xa085000a, 0x8fa30000, 0x35994000, 0x3c051000,
+0xa062000b, 0x8fb80000, 0x8fac0000, 0x8fa60000,
+0x8faf0000, 0x27bd0008, 0xad280000, 0xad400004,
+0xad800024, 0xacc00028, 0xa4f90008, 0xa70d0010,
+0xa5ee0012, 0x3e00008, 0xad6501b8, 0x3c068008,
+0x27bdffe8, 0x34c50080, 0xafbf0010, 0x90a70009,
+0x24020012, 0x30e300ff, 0x1062000b, 0x803021,
+0x8ca80050, 0x882023, 0x4800008, 0x8fbf0010,
+0x8caa0034, 0x24040039, 0x2821, 0xca4823,
+0x5200005, 0x24060012, 0x8fbf0010, 0x24020001,
+0x3e00008, 0x27bd0018, 0xe001447, 0x0,
+0x8fbf0010, 0x24020001, 0x3e00008, 0x27bd0018,
+0x27bdffc8, 0xafb1002c, 0xa08821, 0xafb20030,
+0x27a50010, 0x809021, 0x2202021, 0xafbf0034,
+0xe0013c6, 0xafb00028, 0x14400081, 0x3c0c8008,
+0x918b0011, 0x918a0012, 0x35860080, 0x8cc80054,
+0x316500ff, 0x314900ff, 0xa92821, 0xa8382b,
+0x14e0004f, 0x8fa30010, 0x94df005c, 0x30660004,
+0x10c00056, 0x33e4ffff, 0x8fa2001c, 0x82102b,
+0x54400005, 0x2c830080, 0x30670004, 0x14e0007e,
+0x24040218, 0x2c830080, 0x10600002, 0x808021,
+0x24100080, 0xe0012a5, 0x2402021, 0x3c038008,
+0x34660080, 0x24070001, 0xacc7000c, 0x90c20008,
+0x106040, 0x34670100, 0x305f007f, 0xa0df0008,
+0x8e390004, 0x27380001, 0xacd80030, 0xa4d0005c,
+0x8cce003c, 0x962f000e, 0x1cf6821, 0xaccd0020,
+0x8ccb003c, 0x16c5021, 0xacca001c, 0x8e290004,
+0xace90000, 0x8e250008, 0xace50004, 0x8fa80010,
+0x31040008, 0x5480002f, 0x93a60020, 0xa0c0004e,
+0x90c5004e, 0x2408ffdf, 0x3c188008, 0xa0e50008,
+0x90c40008, 0x370c0080, 0x24090050, 0x888024,
+0xa0d00008, 0x8e390008, 0xad990038, 0x8f0e0014,
+0x8d8f0030, 0x1cf6821, 0xad8d0034, 0x918b0000,
+0x316a00ff, 0x11490029, 0x26480100, 0xe0012af,
+0x2402021, 0x24040038, 0x2821, 0xe001447,
+0x2406000a, 0x8fbf0034, 0x8fb20030, 0x8fb1002c,
+0x8fb00028, 0x24020001, 0x3e00008, 0x27bd0038,
+0x94d8005c, 0x8cd00054, 0x330effff, 0x2057823,
+0x1cf682b, 0x15a0ffac, 0x8fa30010, 0x8cd90054,
+0x30660004, 0x14c0ffac, 0x3252023, 0xa0014a5,
+0x2c820218, 0x3c188008, 0x370c0080, 0xa0e60008,
+0x8e390008, 0x24090050, 0xad990038, 0x8f0e0014,
+0x8d8f0030, 0x1cf6821, 0xad8d0034, 0x918b0000,
+0x316a00ff, 0x1549ffd9, 0x26480100, 0x2406ff80,
+0x1062824, 0x3c048000, 0xac850028, 0x8e270008,
+0x3103007f, 0x3c10800c, 0x70f821, 0xafe700d0,
+0x8e220008, 0xaf9f0024, 0xa0014e0, 0xafe200d4,
+0x8e230008, 0x3c048008, 0x34820080, 0xac430054,
+0x2402021, 0xe001436, 0xac400030, 0x24040038,
+0x2405008d, 0xe001447, 0x24060012, 0x8fbf0034,
+0x8fb20030, 0x8fb1002c, 0x8fb00028, 0x24020001,
+0x3e00008, 0x27bd0038, 0xa0014aa, 0x8fa4001c,
+0x27bdffe8, 0xafbf0010, 0x90a6000d, 0x30c70010,
+0x10e0000c, 0x804021, 0x3c028008, 0x8c440004,
+0x8ca30008, 0x10640008, 0x30c90004, 0x30c50004,
+0x10a0001c, 0x8fbf0010, 0x24020001, 0x3e00008,
+0x27bd0018, 0x30c90004, 0x11200010, 0x30cb0012,
+0x10e0fff9, 0x8fbf0010, 0x3c088008, 0x8ca70008,
+0x8d060004, 0x14e6fff5, 0x24020001, 0x24040038,
+0x2405008d, 0xe001447, 0x24060012, 0x8fbf0010,
+0x24020001, 0x3e00008, 0x27bd0018, 0x240a0012,
+0x156affe9, 0x8fbf0010, 0x1002021, 0xa001489,
+0x27bd0018, 0x2021, 0xa000cb8, 0x27bd0018,
+0x3c050800, 0x24a55598, 0x3c040800, 0x24847358,
+0x3c020800, 0x244255a0, 0x24030006, 0x3c010800,
+0xac257ac8, 0x3c010800, 0xac247acc, 0x3c010800,
+0xac227ad0, 0x3c010800, 0xa0237ad4, 0x3e00008,
+0x0, 0x3e00008, 0x24020001, 0x3c028000,
+0x308800ff, 0x34470180, 0x3c068000, 0x8cc301b8,
+0x460fffe, 0x0, 0x8cc50128, 0x2418ff80,
+0x3c0d800a, 0x24af0100, 0x1f87024, 0x31ec007f,
+0xacce0024, 0x18d2021, 0xace50000, 0x948b00da,
+0x35096000, 0x24080002, 0x316affff, 0xacea0004,
+0x24020001, 0xa4e90008, 0xa0e8000b, 0xace00024,
+0x3c071000, 0xacc701b8, 0xaf840024, 0x3e00008,
+0xaf850054, 0x8c990004, 0x8f8d0024, 0x2409ffbf,
+0x325c023, 0xac980004, 0x91af00c4, 0x2403ffef,
+0x31ee007f, 0xa1ae00c4, 0x8c8c0020, 0x938b0030,
+0x8f860024, 0x358a0002, 0xaf8b0048, 0xa7800044,
+0xac8a0020, 0xa4c000ac, 0x90c800c4, 0x1093824,
+0xa0c700c4, 0x8f840024, 0xac8000dc, 0x908500c4,
+0xa31024, 0x3e00008, 0xa08200c4, 0x3c028000,
+0x34450180, 0x3c048000, 0x8c8301b8, 0x460fffe,
+0x8f890054, 0x24076083, 0x24060002, 0xaca90000,
+0x8c880124, 0xaca80004, 0xa4a70008, 0xa0a6000b,
+0x3c051000, 0x3e00008, 0xac8501b8, 0x93880030,
+0x8f890048, 0x8f820024, 0x30c600ff, 0x1093823,
+0x30e900ff, 0x1221821, 0x30a500ff, 0x24680078,
+0x10c00002, 0x1243821, 0x803821, 0x30e40003,
+0x14800003, 0x30aa0003, 0x1140000d, 0x312b0003,
+0x10a00009, 0x1021, 0x90ed0000, 0x244e0001,
+0x31c200ff, 0x45602b, 0xa10d0000, 0x24e70001,
+0x1580fff9, 0x25080001, 0x3e00008, 0x0,
+0x1560fff3, 0x0, 0x10a0fffb, 0x1021,
+0x8cf80000, 0x24590004, 0x332200ff, 0x45782b,
+0xad180000, 0x24e70004, 0x15e0fff9, 0x25080004,
+0x3e00008, 0x0, 0x93850030, 0x93880040,
+0x8f870048, 0x43200, 0x3103007f, 0xe5102b,
+0x30c47f00, 0x1040000f, 0x642825, 0x8f840024,
+0x3c098000, 0x8c8a00dc, 0xad2a00a4, 0x3c038000,
+0xa35825, 0xac6b00a0, 0x8c6c00a0, 0x580fffe,
+0x0, 0x8c6d00ac, 0xac8d00dc, 0x3e00008,
+0x8c6200a8, 0xa0015e8, 0x8f840024, 0x93880041,
+0x3c028000, 0x805021, 0x310300fe, 0xa3830041,
+0x30abffff, 0x30cc00ff, 0x30e7ffff, 0x34480180,
+0x3c098000, 0x8d2401b8, 0x480fffe, 0x8f8d0054,
+0x24180016, 0xad0d0000, 0x8d220124, 0x8f8d0024,
+0xad020004, 0x8d590020, 0xa5070008, 0x240201b4,
+0xa119000a, 0xa118000b, 0x952f0120, 0x8d4e0008,
+0x8d470004, 0x97830044, 0x8d590024, 0x1cf3021,
+0xc72821, 0xa32023, 0x2418ffff, 0xa504000c,
+0xa50b000e, 0xa5020010, 0xa50c0012, 0xad190018,
+0xad180024, 0x95af00d8, 0x3c0b1000, 0x2407fff7,
+0x31eeffff, 0xad0e0028, 0x8dac0074, 0xad0c002c,
+0xad2b01b8, 0x8d460020, 0xc72824, 0x3e00008,
+0xad450020, 0x8f880024, 0x805821, 0x30e7ffff,
+0x910900c6, 0x3c028000, 0x30a5ffff, 0x312400ff,
+0x41a00, 0x675025, 0x30c600ff, 0x34470180,
+0x3c098000, 0x8d2c01b8, 0x580fffe, 0x8f820054,
+0x240f0017, 0xace20000, 0x8d390124, 0xacf90004,
+0x8d780020, 0xa4ea0008, 0x241901b4, 0xa0f8000a,
+0xa0ef000b, 0x95230120, 0x8d6e0008, 0x8d6d0004,
+0x97840044, 0x1c35021, 0x14d6021, 0x1841023,
+0xa4e2000c, 0xa4e5000e, 0xa4f90010, 0xa4e60012,
+0xace00014, 0x8d780024, 0x240dffff, 0xacf80018,
+0x8d0f006c, 0xacef001c, 0x8d0e0068, 0x3c0f1000,
+0xacee0020, 0xaced0024, 0x950a00ae, 0x240dfff7,
+0x3146ffff, 0xace60028, 0x950c0070, 0x95040072,
+0x31837fff, 0x3ca00, 0x3082ffff, 0x322c021,
+0xacf8002c, 0xad2f01b8, 0x950e0072, 0x8d6a0020,
+0xae3021, 0x14d2824, 0xa5060072, 0x3e00008,
+0xad650020, 0x3c028000, 0x34460180, 0x3c058000,
+0x8ca301b8, 0x460fffe, 0x24090018, 0xacc40000,
+0xa0c9000b, 0x8f880024, 0x3c041000, 0x950700ae,
+0xa4c70010, 0xacc00030, 0x3e00008, 0xaca401b8,
+0x3c028000, 0x34450180, 0x3c048000, 0x8c8301b8,
+0x460fffe, 0x8f8a002c, 0x24060019, 0x9549001c,
+0x3128ffff, 0x839c0, 0xaca70000, 0xa0a6000b,
+0x3c051000, 0x3e00008, 0xac8501b8, 0x8f870034,
+0x804021, 0x30c400ff, 0x3c068000, 0x8cc201b8,
+0x440fffe, 0x8f890054, 0x93830050, 0x34996000,
+0xaca90000, 0xa0a30005, 0x8ce20010, 0x240f0002,
+0x2403fff7, 0xa4a20006, 0xa4b90008, 0x8d180020,
+0xa0b8000a, 0xa0af000b, 0x8cee0000, 0xacae0010,
+0x8ced0004, 0xacad0014, 0x8cec001c, 0xacac0024,
+0x8ceb0020, 0xacab0028, 0x8cea002c, 0x3c071000,
+0xacaa002c, 0x8d090024, 0xaca90018, 0xacc701b8,
+0x8d050020, 0xa32024, 0x3e00008, 0xad040020,
+0x93850050, 0x24030001, 0x27bdffe8, 0xa33004,
+0x2ca20020, 0xafb00010, 0xafbf0014, 0xc01821,
+0x10400013, 0x2410fffe, 0x3c070800, 0x8ce73190,
+0xe61024, 0x3c088000, 0x35050180, 0x14400005,
+0x24060084, 0x8f890024, 0x240a0004, 0x2410ffff,
+0xa12a00ec, 0xe001684, 0x0, 0x2001021,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x3c060800, 0x8cc63194, 0xa0016b6, 0xc31024,
+0x8f87002c, 0x27bdffe0, 0xafb20018, 0xafb10014,
+0xafb00010, 0xafbf001c, 0x30d000ff, 0x90e6000d,
+0xa08821, 0x809021, 0x30c5007f, 0xa0e5000d,
+0x8f850024, 0x8e230018, 0x8ca200c0, 0x1062002e,
+0x240a000e, 0xe0016a9, 0xa38a0050, 0x2409ffff,
+0x10490022, 0x2404ffff, 0x52000020, 0x2021,
+0x8e260000, 0x3c0c0010, 0xcc5824, 0x15600039,
+0x3c0e0008, 0xce6824, 0x55a0003f, 0x2402021,
+0x3c180002, 0xd88024, 0x1200001f, 0x3c0a0004,
+0x8f87002c, 0x8ce20014, 0x8ce30010, 0x8ce50014,
+0x43f823, 0x3e5c82b, 0x13200005, 0x2402021,
+0x8e24002c, 0x8cf10010, 0x10910031, 0x2402021,
+0x24020012, 0xa3820050, 0xe0016a9, 0x2412ffff,
+0x10520002, 0x2404ffff, 0x2021, 0x8fbf001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x801021,
+0x3e00008, 0x27bd0020, 0x90a800c4, 0x35040020,
+0xa0016df, 0xa0a400c4, 0xca4824, 0x1520000b,
+0x8f8b002c, 0x8f8d002c, 0x8dac0010, 0x1580000b,
+0x2402021, 0x8e2e002c, 0x51c0ffec, 0x2021,
+0x2402021, 0xa0016fa, 0x24020017, 0x8d660010,
+0x50c0ffe6, 0x2021, 0x2402021, 0xa0016fa,
+0x24020011, 0x2402021, 0x24020015, 0xe0016a9,
+0xa3820050, 0x240fffff, 0x104fffdc, 0x2404ffff,
+0xa0016e9, 0x8e260000, 0xa001720, 0x24020014,
+0x3c080004, 0xc83824, 0x50e0ffd4, 0x2021,
+0x2402021, 0xa0016fa, 0x24020013, 0x8f860024,
+0x27bdffe0, 0xafb10014, 0xafbf0018, 0xafb00010,
+0x90c300c4, 0x30a500ff, 0x30620020, 0x10400008,
+0x808821, 0x8ccb00c0, 0x2409ffdf, 0x256a0001,
+0xacca00c0, 0x90c800c4, 0x1093824, 0xa0c700c4,
+0x14a00040, 0x3c0c8000, 0x8f840024, 0x908700c4,
+0x2418ffbf, 0x2406ffef, 0x30e3007f, 0xa08300c4,
+0x979f0044, 0x8f820048, 0x8f8d0024, 0x3e2c823,
+0xa7990044, 0xa5a000ac, 0x91af00c4, 0x1f87024,
+0xa1ae00c4, 0x8f8c0024, 0xa18000c7, 0x8f8a0024,
+0xa5400072, 0xad4000dc, 0x914500c4, 0xa65824,
+0xa14b00c4, 0x8f900020, 0x8f840048, 0x97860044,
+0x2042821, 0x10c0000f, 0xaf850020, 0xa3800040,
+0x3c078000, 0x8e2c0008, 0x94ed0120, 0x8e2b0004,
+0x18d5021, 0x14b8021, 0x2062023, 0x3086ffff,
+0x30c8000f, 0x39090001, 0x31310001, 0x16200009,
+0xa3880040, 0x93860030, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0x27bd0020, 0xaf85004c, 0x3e00008,
+0xaf860048, 0xc87023, 0x8fbf0018, 0x93860030,
+0x8fb10014, 0x8fb00010, 0x34ef0c00, 0x10f2821,
+0x27bd0020, 0xacee0084, 0xaf85004c, 0x3e00008,
+0xaf860048, 0x35900180, 0x2002821, 0xe001684,
+0x24060082, 0x8f840024, 0x908600c4, 0x30c50040,
+0x50a0ffba, 0xa3800050, 0x8f850034, 0x3c068000,
+0x8ccd01b8, 0x5a0fffe, 0x8f890054, 0x24086082,
+0x24070002, 0xae090000, 0xa6080008, 0xa207000b,
+0x8ca30008, 0x3c0e1000, 0xae030010, 0x8ca2000c,
+0xae020014, 0x8cbf0014, 0xae1f0018, 0x8cb90018,
+0xae190024, 0x8cb80024, 0xae180028, 0x8caf0028,
+0xae0f002c, 0xacce01b8, 0xa001744, 0xa3800050,
+0x8f8a0024, 0x27bdffe0, 0xafb10014, 0xafb00010,
+0x8f880048, 0xafbf0018, 0x93890028, 0x954200ac,
+0x30d100ff, 0x109182b, 0x808021, 0x30ac00ff,
+0x3047ffff, 0x5821, 0x14600003, 0x310600ff,
+0x1203021, 0x1095823, 0x97830044, 0x68202b,
+0x1480001b, 0x0, 0x10680043, 0x240a0001,
+0x118a0048, 0x34e70880, 0x3165ffff, 0xe001626,
+0x2002021, 0xe001666, 0x8f840054, 0x8f840024,
+0x948d0070, 0x25ac0001, 0xa48c0070, 0x948b0070,
+0x3c060800, 0x8cc63188, 0x31677fff, 0x10e6004f,
+0x0, 0x2002021, 0x2202821, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0xa001730, 0x27bd0020,
+0x914400c4, 0x2406ff80, 0x868825, 0xa15100c4,
+0x97840044, 0x3088ffff, 0x1100001c, 0x93890028,
+0x8f8e0024, 0x2419efff, 0x8bf823, 0x95d800ac,
+0x168682b, 0x33e900ff, 0x3197824, 0xa5cf00ac,
+0x51a0002a, 0x1005821, 0x8e050020, 0x2408fffb,
+0x24030001, 0xa81024, 0xae020020, 0x11830025,
+0x34e78000, 0x2002021, 0x3165ffff, 0xe001626,
+0x1203021, 0x978b0044, 0x8f870048, 0xa7800044,
+0xeb8023, 0xaf900048, 0x93890028, 0x8f8c0024,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x27bd0020,
+0x3e00008, 0xa18900c7, 0x8e080020, 0x2409fffb,
+0x34e78000, 0x1092824, 0xae050020, 0x158affba,
+0x34e70880, 0x2002021, 0xe0015f4, 0x3165ffff,
+0x2002021, 0x2202821, 0x8fbf0018, 0x8fb10014,
+0x8fb00010, 0xa001730, 0x27bd0020, 0xa0017e7,
+0x4821, 0x2002021, 0x3165ffff, 0xe0015f4,
+0x1203021, 0x978b0044, 0x8f870048, 0xa7800044,
+0xeb8023, 0xa0017f7, 0xaf900048, 0x94890070,
+0x240a8000, 0x12a4024, 0xa4880070, 0x90850070,
+0x90990070, 0x30a200ff, 0x219c2, 0x3f827,
+0x1fc1c0, 0x332f007f, 0x1f87025, 0xa08e0070,
+0xa0017cf, 0x2002021, 0x8f880024, 0x24030001,
+0x910a0078, 0x910500c7, 0x25090078, 0x3147003f,
+0x24e6ffe0, 0xc31804, 0x2cc20020, 0x30670019,
+0xa3850028, 0x1040001a, 0xaf890034, 0x3c0a8000,
+0x354b0002, 0x24050001, 0x24060001, 0x14e00016,
+0x6b1024, 0x2821, 0x1440000f, 0x30630020,
+0x1060000f, 0x24050001, 0x8d060074, 0x8d190074,
+0x2403ff80, 0xc31024, 0x27940, 0x3338007f,
+0x1f86825, 0x3c0e1000, 0x1ae6025, 0xad4c0830,
+0x91280001, 0x31060001, 0xa0017a5, 0x0,
+0x3e00008, 0x0, 0x8d0f0074, 0x8d0d0074,
+0x2418ff80, 0x1f87024, 0xe4140, 0x31ac007f,
+0x10c5025, 0x3c0b1000, 0x14b3825, 0x3c098000,
+0xa0017a5, 0xad270830, 0x27bdffd8, 0xafb00010,
+0x8f900034, 0xafb40020, 0xafb10014, 0xafbf0024,
+0xafb3001c, 0xafb20018, 0x8e050010, 0x3c020800,
+0x8c4231b0, 0x8f860038, 0x30a73fff, 0xe2182b,
+0x8cd20014, 0x808821, 0x8cd30020, 0x10600007,
+0xa021, 0x90cb000d, 0x240aff80, 0x14b4824,
+0x312800ff, 0x1500000c, 0x56382, 0x2202021,
+0x2411000d, 0xa3910050, 0x8fbf0024, 0x8fb40020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0xa0016a9, 0x27bd0028, 0x31850003, 0x54a0fff4,
+0x2202021, 0x94cf001c, 0x8f8e0024, 0x8e070028,
+0xa5cf00d8, 0x8ccd0010, 0x24d3023, 0x10e6005c,
+0x2402001f, 0xe0016a9, 0xa3820050, 0x241fffff,
+0x105f004e, 0x2404ffff, 0x8f83003c, 0x8f88002c,
+0x2639821, 0x8d090010, 0x1231023, 0x8f83001c,
+0xad020010, 0xad130020, 0x8c670074, 0xf3202b,
+0x14800062, 0x2202021, 0x8f860038, 0x8e0c0024,
+0x8cc50024, 0x11850007, 0x2202021, 0x240e001c,
+0xe0016a9, 0xa38e0050, 0x240dffff, 0x104d0037,
+0x2404ffff, 0x8f84002c, 0x8c980024, 0x270f0001,
+0xac8f0024, 0x12720044, 0x8f99001c, 0x8f320074,
+0x12530041, 0x3c0a0080, 0x8e090000, 0x12a1024,
+0x1440003a, 0x0, 0x8e040014, 0x2412ffff,
+0x10920006, 0x240b001b, 0x2202021, 0xe0016a9,
+0xa38b0050, 0x10520021, 0x2404ffff, 0x8e030000,
+0x3c0c0001, 0x6c2824, 0x10a00013, 0x3c060080,
+0x66a024, 0x16800009, 0x2002821, 0x2202021,
+0x240e001a, 0xe0016a9, 0xa38e0050, 0x240dffff,
+0x104d0012, 0x2404ffff, 0x2002821, 0x2202021,
+0xe0016c9, 0x24060001, 0x2410ffff, 0x2404ffff,
+0x1050000a, 0x24140001, 0x8f8f002c, 0x2202021,
+0x2803021, 0x95f20034, 0x24050001, 0x26580001,
+0xe0017a5, 0xa5f80034, 0x2021, 0x8fbf0024,
+0x8fb40020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x801021, 0x3e00008, 0x27bd0028,
+0x8f83003c, 0xe3c821, 0x259c02b, 0x1300ffa8,
+0x8f88002c, 0xa00188e, 0x24020018, 0xac800020,
+0xa0018b8, 0x8e040014, 0x8e1f0000, 0x3c070080,
+0x3e79824, 0x1660fff9, 0x2408001a, 0x2202021,
+0xe0016a9, 0xa3880050, 0x2403ffff, 0x1443ffba,
+0x2404ffff, 0xa0018e1, 0x8fbf0024, 0x240b001d,
+0xe0016a9, 0xa38b0050, 0x240affff, 0x144aff9a,
+0x2404ffff, 0xa0018e1, 0x8fbf0024, 0x8f850024,
+0x27bdffd8, 0xafb3001c, 0xafb20018, 0xafb10014,
+0xafb00010, 0xafbf0020, 0x90a700c4, 0x8f900034,
+0x2412ffff, 0x34e20040, 0x92060000, 0xa0a200c4,
+0x8e030010, 0x809821, 0x10720006, 0x30d1003f,
+0x2408000d, 0xe0016a9, 0xa3880050, 0x10520026,
+0x2406ffff, 0x8f8a0024, 0x8e090018, 0x8d4400c0,
+0x11240007, 0x240c000e, 0x2602021, 0xe0016a9,
+0xa38c0050, 0x240bffff, 0x104b001b, 0x2406ffff,
+0x24040020, 0x12240004, 0x8f8d0024, 0x91af00c4,
+0x35ee0020, 0xa1ae00c4, 0x8f85003c, 0x10a0001a,
+0x0, 0x1224004b, 0x8f980024, 0x8f92fed4,
+0x2406fffd, 0x97100070, 0x9651000a, 0x1230000b,
+0x8fbf0020, 0x3c1f0800, 0x8fff318c, 0x3e5c82b,
+0x1720001e, 0x2602021, 0x2821, 0xe0017a5,
+0x24060001, 0x3021, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0xc01021,
+0x3e00008, 0x27bd0028, 0x5224002a, 0x8e030014,
+0x8f840024, 0x94890070, 0x25280001, 0xa4880070,
+0x94870070, 0x3c050800, 0x8ca53188, 0x30e27fff,
+0x1045000e, 0x0, 0x2602021, 0xe001730,
+0x24050001, 0xa001943, 0x3021, 0x2402002d,
+0xa3820050, 0xe0016a9, 0x2413ffff, 0x1453ffe1,
+0x2406ffff, 0xa001944, 0x8fbf0020, 0x94980070,
+0x24198000, 0x24050001, 0x3199024, 0xa4920070,
+0x90910070, 0x908d0070, 0x323000ff, 0x1079c2,
+0xf7027, 0xe61c0, 0x31ab007f, 0x16c5025,
+0xa08a0070, 0xe001730, 0x2602021, 0xa001943,
+0x3021, 0x2406ffff, 0x1466ffd6, 0x8f840024,
+0x2602021, 0xe001730, 0x24050001, 0xa001943,
+0x3021, 0x2602021, 0xa00195d, 0x2402000a,
+0x8f880024, 0x27bdffe8, 0xafb00010, 0xafbf0014,
+0x910a00c4, 0x8f870034, 0x808021, 0x35490040,
+0x8ce60010, 0xa10900c4, 0x3c020800, 0x8c4231b0,
+0x30c53fff, 0xa2182b, 0x10600007, 0x8f850038,
+0x240dff80, 0x90ae000d, 0x1ae6024, 0x318b00ff,
+0x15600008, 0x6c382, 0x2002021, 0x2403000d,
+0x8fbf0014, 0x8fb00010, 0x27bd0018, 0xa0016a9,
+0xa3830050, 0x33060003, 0x240f0002, 0x54cffff7,
+0x2002021, 0x94a2001c, 0x8f850024, 0x24190023,
+0xa4a200d8, 0x8ce80000, 0x81e02, 0x307f003f,
+0x13f90035, 0x3c0a0083, 0x8ce80018, 0x8ca600c0,
+0x11060008, 0x0, 0x2405000e, 0xe0016a9,
+0xa3850050, 0x2407ffff, 0x10470018, 0x2404ffff,
+0x8f850024, 0x90a900c4, 0x35240020, 0xa0a400c4,
+0x8f8c002c, 0x918e000d, 0x31cd007f, 0xa18d000d,
+0x8f83003c, 0x1060001c, 0x2002021, 0x8f840038,
+0x8c980010, 0x303782b, 0x11e0000d, 0x24190018,
+0x2002021, 0xa3990050, 0xe0016a9, 0x2410ffff,
+0x10500002, 0x2404ffff, 0x2021, 0x8fbf0014,
+0x8fb00010, 0x801021, 0x3e00008, 0x27bd0018,
+0x8c860010, 0x8f9f002c, 0x2002021, 0xc31023,
+0xafe20010, 0x24050001, 0xe0017a5, 0x24060001,
+0xa0019cc, 0x2021, 0xe001730, 0x24050001,
+0xa0019cc, 0x2021, 0x10a5824, 0x156affd9,
+0x8f8c002c, 0xa0a600ec, 0xa0019b9, 0xa3860042,
+0x27bdffd8, 0xafb00010, 0x8f900034, 0xafb20018,
+0xafbf0020, 0xafb3001c, 0xafb10014, 0x8e110010,
+0x3c030800, 0x8c6331b0, 0x32253fff, 0xa3102b,
+0x10400008, 0x809021, 0x8f860038, 0x2409ff80,
+0x90ca000d, 0x12a4024, 0x310700ff, 0x14e0000b,
+0x116b82, 0x2402021, 0x2412000d, 0xa3920050,
+0x8fbf0020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0xa0016a9, 0x27bd0028, 0x31ac0003,
+0x240b0001, 0x558bfff4, 0x2402021, 0x90cf000d,
+0x31ee0008, 0x11c00060, 0x8f93003c, 0x16600009,
+0x24020027, 0x8e19000c, 0x8cd80020, 0x17380005,
+0x24020020, 0x8e020008, 0x8cdf0024, 0x105f0040,
+0x24020020, 0xe0016a9, 0xa3820050, 0x2406ffff,
+0x10460033, 0x2404ffff, 0x8f99002c, 0x240afff7,
+0x3c13800e, 0x9329000d, 0x2404ff80, 0x3c0d8000,
+0x12af824, 0xa33f000d, 0x8f99001c, 0x3c080800,
+0x8d0831ac, 0x8f830054, 0x97270078, 0x8f9f002c,
+0x1031021, 0x30e57fff, 0x53040, 0x467821,
+0x31f8007f, 0x3136021, 0x1e47024, 0xadae002c,
+0xa5910000, 0x8feb0028, 0x256a0001, 0xafea0028,
+0x8fe3002c, 0x8e09002c, 0x694021, 0xafe8002c,
+0x8e07002c, 0xafe70030, 0x8e050014, 0xafe50034,
+0x97e6003a, 0x24c20001, 0xa7e2003a, 0x97330078,
+0x3c100800, 0x8e1031b0, 0x26630001, 0x30717fff,
+0x12300027, 0x603021, 0x8f8f001c, 0x2402021,
+0x24050001, 0xe001730, 0xa5e60078, 0x2021,
+0x8fbf0020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x801021, 0x3e00008, 0x27bd0028,
+0x8e050014, 0x2413ffff, 0x10b3001d, 0x8f830024,
+0x8e080018, 0x8c6700c0, 0x15070009, 0x2402000e,
+0x8e0a0024, 0x8cc90028, 0x15490005, 0x24020021,
+0x8e070028, 0x8ccb002c, 0x10eb0013, 0x2402001f,
+0xe0016a9, 0xa3820050, 0x1453ffb3, 0x2404ffff,
+0xa001a4e, 0x8fbf0020, 0xa001a16, 0x24020024,
+0x240e8000, 0x6e6824, 0x31acffff, 0xc5bc2,
+0x317100ff, 0x118027, 0xa001a47, 0x1033c0,
+0xa001a65, 0x24020025, 0x8e05002c, 0x10a0ffec,
+0x24020023, 0x8f8e001c, 0x8dcd0074, 0x1a5602b,
+0x1580ffe7, 0x24020026, 0x8ccf0014, 0xa7c021,
+0x1f8202b, 0x1080ff99, 0x8f99002c, 0x2402021,
+0xa001a65, 0x24020022, 0x27bdffe0, 0xafb00010,
+0x8f900034, 0xafb10014, 0xafbf0018, 0x8e050010,
+0x3c030800, 0x8c6331b0, 0x808821, 0x30a43fff,
+0x83102b, 0x10400007, 0x8f860038, 0x2409ff80,
+0x90ca000d, 0x12a4024, 0x310700ff, 0x14e00009,
+0x8f8b003c, 0x2410000d, 0x2202021, 0xa3900050,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0xa0016a9,
+0x27bd0020, 0x11600008, 0x5c382, 0x8f8f0024,
+0x8f8efed4, 0x2407fffd, 0x95ec0070, 0x95cd000a,
+0x11ac0038, 0x8fbf0018, 0x33050003, 0x14a00010,
+0x0, 0x92190002, 0x13200041, 0x0,
+0x8e060024, 0x50c0000f, 0x92040003, 0x2202021,
+0x2402000f, 0xe0016a9, 0xa3820050, 0x2408ffff,
+0x14480007, 0x2407ffff, 0xa001ae2, 0x8fbf0018,
+0x90c3000d, 0x30640008, 0x10800037, 0x2202021,
+0x92040003, 0x24070002, 0x308900ff, 0x15270005,
+0x308f00ff, 0x8f8a003c, 0x11400031, 0x240c002c,
+0x308f00ff, 0x39e50010, 0x2cad0001, 0x2dee0001,
+0x2002821, 0x1cd3025, 0xe0016c9, 0x2202021,
+0x2410ffff, 0x1050000e, 0x2407ffff, 0x8f83003c,
+0x10600017, 0x2202021, 0x3c190800, 0x8f39318c,
+0x323c02b, 0x5700000c, 0x2411002d, 0x2202021,
+0x2821, 0xe0017a5, 0x24060001, 0x3821,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0xe01021,
+0x3e00008, 0x27bd0020, 0xe0016a9, 0xa3910050,
+0x1450fff6, 0x2407ffff, 0xa001ae2, 0x8fbf0018,
+0xe001730, 0x24050001, 0xa001ae1, 0x3821,
+0x8cdf0024, 0x8e020024, 0x545fffc1, 0x2202021,
+0xa001ac2, 0x92040003, 0xa001ab6, 0x24020010,
+0x2202021, 0xe0016a9, 0xa38c0050, 0x240bffff,
+0x104bffe3, 0x2407ffff, 0xa001ac9, 0x92040003,
+0x30a500ff, 0x24060001, 0x24a90001, 0xc9102b,
+0x1040000c, 0x4021, 0x240a0001, 0xa61823,
+0x308b0001, 0x24c60001, 0x6a3804, 0x42042,
+0x11600002, 0xc9182b, 0x1074025, 0x1460fff8,
+0xa61823, 0x3e00008, 0x1001021, 0x27bdffd8,
+0xafb00018, 0x8f900034, 0xafb1001c, 0xafbf0020,
+0x2403ffff, 0x2411002f, 0xafa30010, 0x92060000,
+0x24050008, 0x26100001, 0x662026, 0xe001b01,
+0x308400ff, 0x21e00, 0x3c021edc, 0x34466f41,
+0xa001b29, 0x1021, 0x10a00009, 0x801821,
+0x24450001, 0x30a2ffff, 0x2c450008, 0x461fffa,
+0x32040, 0x862026, 0x14a0fff9, 0x801821,
+0xe001b01, 0x24050020, 0x8fa30010, 0x2629ffff,
+0x313100ff, 0x34202, 0x240700ff, 0x1627ffe2,
+0x1021826, 0x35027, 0xafaa0014, 0xafaa0010,
+0x3021, 0x27a80010, 0x27a70014, 0xe67823,
+0x91ed0003, 0x24ce0001, 0xc86021, 0x31c600ff,
+0x2ccb0004, 0x1560fff9, 0xa18d0000, 0x8fa20010,
+0x8fbf0020, 0x8fb1001c, 0x8fb00018, 0x3e00008,
+0x27bd0028, 0x93830030, 0x27bdffe0, 0x24020034,
+0xafb10014, 0xafb00010, 0xafbf001c, 0xafb20018,
+0x808821, 0x10620062, 0xa08021, 0x92040004,
+0x14800045, 0x8f880024, 0xa3800028, 0x8e050004,
+0x8d0600c8, 0x3c0700ff, 0x34e3ffff, 0xa32824,
+0xc5102b, 0x1440004d, 0xaf85003c, 0x978a0044,
+0x8f870048, 0x1471023, 0x10a00032, 0xa7820044,
+0x8f98001c, 0x304cffff, 0x9312007c, 0x127882,
+0x31f10001, 0x117080, 0x1c56821, 0x18d582b,
+0x11600061, 0x8f860024, 0x8f890020, 0x8f84004c,
+0x1089005e, 0x3c023f01, 0x8e1f0000, 0x3c102500,
+0x3e2c824, 0x1730007a, 0x8f840034, 0x8f870034,
+0x8f860024, 0x8ce30000, 0xacc30078, 0x8ce50010,
+0xacc50088, 0x8f870048, 0x8f85003c, 0x938d0028,
+0x30ae0003, 0xe4023, 0x310a0003, 0x14d4021,
+0xa3880028, 0x94cb00ac, 0x1276021, 0xaf8c0020,
+0x35691000, 0xa4c900ac, 0x16200051, 0x1452021,
+0xaf840048, 0x2021, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x801021, 0x3e00008,
+0x27bd0020, 0x8f840020, 0xaf800048, 0x873021,
+0xa001b92, 0xaf860020, 0x241f000c, 0xa39f0050,
+0xe0016a9, 0x2202021, 0x2419ffff, 0x1059ffee,
+0x2404ffff, 0x8f880024, 0xa3800028, 0x8e050004,
+0x8d0600c8, 0x3c0700ff, 0x34e3ffff, 0xa32824,
+0xc5102b, 0x1040ffb5, 0xaf85003c, 0x2202021,
+0x24090019, 0xa3890050, 0xe0016a9, 0x2411ffff,
+0x1051ffdd, 0x2404ffff, 0xa001b64, 0x8f85003c,
+0x8f840024, 0x8f870034, 0x8cf20030, 0x908600c4,
+0x30c50010, 0x14a00010, 0x8f830048, 0x2c680005,
+0x15000028, 0x0, 0x908a00c4, 0x246bfffc,
+0x31490010, 0x15200008, 0x316400ff, 0x8f8d004c,
+0x8f8c0020, 0x11ac0004, 0x388f0001, 0x31ee0001,
+0x15c0002f, 0x0, 0xe001b14, 0x0,
+0xa001beb, 0x0, 0x8f890020, 0x938d0028,
+0x30ae0003, 0xe4023, 0x310a0003, 0x14d4021,
+0xa3880028, 0x94cb00ac, 0x1276021, 0xaf8c0020,
+0x35691000, 0xa4c900ac, 0x1220ffb1, 0x1452021,
+0x25180004, 0xa3980028, 0x94cf00ac, 0x24920004,
+0xaf920048, 0x35f12000, 0xa4d100ac, 0xa001b93,
+0x2021, 0x8c8200dc, 0x1242ff6c, 0x2202021,
+0x24180005, 0xa3980050, 0xe0016a9, 0x2412ffff,
+0x1452ff66, 0x2404ffff, 0xa001b94, 0x8fbf001c,
+0x30e500ff, 0xe0015b0, 0x3021, 0x8f860024,
+0x8f870048, 0x8f890020, 0xa001b84, 0x8f85003c,
+0xe0015db, 0x0, 0xa001beb, 0x0,
+0x93830042, 0x27bdffe0, 0x24020002, 0xafb20018,
+0xafb10014, 0xafbf001c, 0x808821, 0xafb00010,
+0x9021, 0x10620055, 0x2404fffd, 0x97830044,
+0x8f850048, 0x3066ffff, 0xc5202b, 0x1480005b,
+0x93870030, 0x3c088000, 0x95040120, 0x10e50052,
+0x8f8a0020, 0x8f84004c, 0x30a500ff, 0xe0015b0,
+0x24060001, 0x8f9f0054, 0x3c058000, 0x3c194080,
+0x27ed0178, 0x31b00078, 0x240eff80, 0x2195825,
+0x34af0900, 0x31b80007, 0x1ae6024, 0xacac0800,
+0x30f8021, 0xacab0810, 0x2202021, 0x2002821,
+0xe001b4e, 0xaf900034, 0x2403ffff, 0x10430033,
+0x2404ffff, 0x8e0c0010, 0x3c070800, 0x8ce731b0,
+0x92060000, 0x31843fff, 0x87102b, 0x10400023,
+0x30cd003f, 0x8f980054, 0x47180, 0x3c040800,
+0x8c8431a8, 0x2409ff80, 0x93900041, 0x984021,
+0x10e2021, 0x897024, 0xe5140, 0x3c098000,
+0x3099007f, 0x3c0f0080, 0x8f880024, 0x35250940,
+0x35e20001, 0x1593825, 0x308b0078, 0x30860007,
+0x3c031000, 0x3c1f800c, 0xc5c021, 0x1625825,
+0xe35025, 0x33f7821, 0x36050001, 0xad2e0804,
+0xaf980038, 0xad2b0814, 0xaf8f002c, 0xad2e0028,
+0xad040074, 0xad2a0830, 0xa3850041, 0x93830042,
+0x24100003, 0x50700027, 0x25a3ffe0, 0x240c0001,
+0x106c001c, 0x24060023, 0x2402021, 0x8fbf001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x801021,
+0x3e00008, 0x27bd0020, 0x31490003, 0x5520ffae,
+0x8f84004c, 0xa001c27, 0x8f90004c, 0x8f84004c,
+0x306500ff, 0xe0015b0, 0x24060001, 0x938b0030,
+0x24050034, 0x11650018, 0x97830044, 0x8f850048,
+0x3062ffff, 0xa25823, 0xaf8b0048, 0xa001c5f,
+0xa7800044, 0x11a60037, 0x0, 0x2202021,
+0x2411000b, 0xe0016a9, 0xa3910050, 0xa001c5f,
+0x409021, 0x2c720020, 0x1240fff8, 0x3f880,
+0x3c070800, 0x24e77960, 0x3e7c821, 0x8f2d0000,
+0x1a00008, 0x0, 0x8f850048, 0x2ca20005,
+0x5440001d, 0xa7800044, 0x978a0044, 0x3148ffff,
+0xa84823, 0x2d2f0005, 0x11e00003, 0x314400ff,
+0x24aefffc, 0x31c400ff, 0x8f90004c, 0x8f980020,
+0x12180004, 0x38990001, 0x332d0001, 0x15a00029,
+0x0, 0x8f910024, 0x922500c4, 0x34a30010,
+0xa22300c4, 0x97830044, 0x8f850048, 0x8f840024,
+0x3062ffff, 0xa25823, 0xac8000dc, 0xa7800044,
+0xa001c5f, 0xaf8b0048, 0x3062ffff, 0xa25823,
+0xa001c5f, 0xaf8b0048, 0x2403ffff, 0x11830005,
+0x0, 0xe001981, 0x2202021, 0xa001c5f,
+0x409021, 0xe001908, 0x2202021, 0xa001c5f,
+0x409021, 0xe0019e5, 0x2202021, 0xa001c5f,
+0x409021, 0xe00185f, 0x2202021, 0xa001c5f,
+0x409021, 0xe001a87, 0x2202021, 0xa001c5f,
+0x409021, 0xe0015db, 0x0, 0x97830044,
+0x8f850048, 0x306cffff, 0xac3823, 0x2cff0005,
+0x53e0ffa8, 0x3062ffff, 0x8f860024, 0xa7800044,
+0xacc200dc, 0x3062ffff, 0xa25823, 0xa001c5f,
+0xaf8b0048, 0x27bdffd0, 0xafb20018, 0xafb00010,
+0xafbf0028, 0xafb50024, 0xafb40020, 0xafb3001c,
+0xafb10014, 0x3c0c8000, 0x8d880128, 0x240fff80,
+0x3c07800a, 0x25100100, 0x250b0080, 0x20f6824,
+0x3205007f, 0x16f7024, 0xad8e0090, 0xa72821,
+0xad8d0024, 0x90a700ec, 0x3169007f, 0x3c0a8004,
+0x12a1821, 0xa3870042, 0x9066007c, 0x809021,
+0xaf83001c, 0x30c20002, 0xaf880054, 0xaf850024,
+0xa01821, 0x14400002, 0x24040034, 0x24040030,
+0xa3840030, 0x8c6600cc, 0x30f100ff, 0x24040004,
+0xaf860048, 0x12240004, 0xa3800050, 0x8e530004,
+0x1660001d, 0x3c088000, 0x93870041, 0x30f20001,
+0x1240000f, 0x8fbf0028, 0x8cb80074, 0x8ca40074,
+0x2419ff80, 0x3198824, 0x117140, 0x308f007f,
+0x1cf6025, 0x3c0d2000, 0x18d5825, 0x30f500fe,
+0x3c0a8000, 0xad4b0830, 0xa3950041, 0x8fbf0028,
+0x8fb50024, 0x8fb40020, 0x8fb3001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x24020001, 0x27bd0030,
+0x3e00008, 0xaca600cc, 0x8e590008, 0x951f0120,
+0x8e460010, 0x33fc021, 0x3307ffff, 0x30f5000f,
+0x32b40001, 0xaf860020, 0x1680003b, 0xa3950040,
+0x35060c00, 0x2a61021, 0xf51823, 0xad030084,
+0xaf82004c, 0x8e490004, 0x3128ffff, 0x1100002b,
+0xa7890044, 0x2410ff80, 0x3c158000, 0x3c142000,
+0xa001d4d, 0x2413fffe, 0x90ae00c4, 0x20e6824,
+0x31ac00ff, 0x1580002a, 0x2402021, 0x93840041,
+0x97860044, 0x308f0001, 0x11e0000b, 0x2642824,
+0x8f890024, 0x8d230074, 0x8d280074, 0xa3850041,
+0x701024, 0x2c940, 0x311f007f, 0x33fc025,
+0x3148825, 0xaeb10830, 0x10c00010, 0x8f850024,
+0x90a700c4, 0x2075824, 0x316a00ff, 0x1540ffe6,
+0x2402021, 0xe001c01, 0x97910044, 0x1040ffe8,
+0x93840041, 0x2405fffd, 0x54450005, 0x8e430020,
+0x2202821, 0xe001586, 0x2402021, 0x8e430020,
+0x30700004, 0x1600000a, 0x2414fffb, 0x8f850024,
+0xa001d03, 0x8f860048, 0xa001d2e, 0xaf86004c,
+0xe00182b, 0x0, 0xa001d3d, 0x93840041,
+0x749824, 0xe0015a0, 0xae530020, 0x8f850024,
+0xa001d03, 0x8f860048, 0x27bdffd8, 0xafb3001c,
+0xafb10014, 0xafbf0020, 0xafb20018, 0xafb00010,
+0x3c028000, 0x8c520140, 0x8c4b0148, 0x3c048000,
+0xb8c02, 0x322300ff, 0x317300ff, 0x8c8501b8,
+0x4a0fffe, 0x34900180, 0xae120000, 0x8c870144,
+0x2464fff0, 0x24060002, 0x2c830013, 0xae070004,
+0xa6110008, 0xa206000b, 0xae130024, 0x1060004f,
+0x8fbf0020, 0x44880, 0x3c0a0800, 0x254a79e0,
+0x12a4021, 0x8d040000, 0x800008, 0x0,
+0x3c100800, 0x8e1031a8, 0x31733fff, 0x138980,
+0x2122821, 0x240cff80, 0xb12021, 0x264d0100,
+0x26470080, 0x3c0f8000, 0x3c038004, 0x31a8007f,
+0x30e9007f, 0x308a007f, 0x3c0e800a, 0x3c02800c,
+0x8cc024, 0x1ac3024, 0xecc824, 0x1239821,
+0x1428021, 0xade60024, 0x10ef821, 0xadf90090,
+0xadf80028, 0xaf90002c, 0xaf9f0024, 0xaf93001c,
+0xe001675, 0x1608021, 0x3c038000, 0x8c6b01b8,
+0x560fffe, 0x8f87002c, 0x8f860024, 0x34650180,
+0x90f9000d, 0xacb20000, 0x24c20078, 0x19c600,
+0x187e03, 0xf9027, 0x1227c2, 0xa4b00006,
+0x10800070, 0x240e6082, 0xa4ae0008, 0xa0a00005,
+0x240f0002, 0xa0af000b, 0x4c400, 0x8f8b001c,
+0x3c192700, 0x3199025, 0xacb20010, 0xaca00014,
+0xaca00024, 0xaca00028, 0xaca0002c, 0x8d730038,
+0x2411ff80, 0xacb30018, 0x90f0000d, 0x2302824,
+0x30a400ff, 0x10800005, 0x8fbf0020, 0x90ec000d,
+0x319f007f, 0xa0ff000d, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3c0a1000,
+0x3c0d8000, 0x27bd0028, 0x3e00008, 0xadaa01b8,
+0x265f0100, 0x2405ff80, 0x33f8007f, 0x3c068000,
+0x3e57824, 0x3c19800a, 0x3192021, 0xaccf0024,
+0x908e00c4, 0xae6824, 0x31ac00ff, 0x1180ffea,
+0xaf840024, 0x248e0078, 0x95cd0012, 0x3c0c0800,
+0x8d8c31a8, 0x3c03800c, 0x31ab3fff, 0x1924821,
+0xb5180, 0x12a4021, 0x3104007f, 0x1051024,
+0x833821, 0xacc20028, 0xe001675, 0xaf87002c,
+0x3c038000, 0x8c6501b8, 0x4a0fffe, 0x0,
+0xae120000, 0x8c720144, 0xae120004, 0xa6110008,
+0x24110002, 0xa211000b, 0xae130024, 0xa001dd8,
+0x8fbf0020, 0x3c126000, 0x8e452c08, 0x3c03f003,
+0x3462ffff, 0xa2f824, 0xae5f2c08, 0x8e582c08,
+0x3c1901b0, 0x3199825, 0xae532c08, 0xa001dd8,
+0x8fbf0020, 0x264d0100, 0x31af007f, 0x3c10800a,
+0x240eff80, 0x1f02821, 0x1ae6024, 0x3c0b8000,
+0xad6c0024, 0x1660ffb8, 0xaf850024, 0x24110003,
+0xa0b100ec, 0xa001dd8, 0x8fbf0020, 0x26480100,
+0x310a007f, 0x3c0b800a, 0x2409ff80, 0x14b3021,
+0x1092024, 0x3c078000, 0xace40024, 0xa001dd7,
+0xaf860024, 0x944d0012, 0x321f3fff, 0x31ac3fff,
+0x159fff8d, 0x240e6082, 0x90c300c4, 0x2409ff80,
+0x1231024, 0x304a00ff, 0x1140ff87, 0x0,
+0x24070004, 0xa0c700ec, 0x8f87002c, 0x24086084,
+0x2406000d, 0xa4a80008, 0xa0a60005, 0xa001dc2,
+0x240f0002, 0x0 };
+u32 bce_RXP_b09FwData[(0x0/4) + 1] = { 0x0 };
+u32 bce_RXP_b09FwRodata[(0x124/4) + 1] = {
+0x5f865437, 0xe4ac62cc, 0x50103a45,
+0x36621985, 0xbf14c0e8, 0x1bc27a1e, 0x84f4b556,
+0x94ea6fe, 0x7dda01e7, 0xc04d7481, 0x80080100,
+0x80080080, 0x80080000, 0x8004fbc, 0x8004fbc,
+0x8005098, 0x800506c, 0x8005050, 0x8004f8c,
+0x8004f8c, 0x8004f8c, 0x8004fc4, 0x80072bc,
+0x8007308, 0x80072c8, 0x80071f0, 0x80072c8,
+0x80072f8, 0x80072c8, 0x80071f0, 0x80071f0,
+0x80071f0, 0x80071f0, 0x80071f0, 0x80071f0,
+0x80071f0, 0x80071f0, 0x80071f0, 0x80071f0,
+0x80072e8, 0x80072d8, 0x80071f0, 0x80071f0,
+0x80071f0, 0x80071f0, 0x80071f0, 0x80071f0,
+0x80071f0, 0x80071f0, 0x80071f0, 0x80071f0,
+0x80071f0, 0x80071f0, 0x80072d8, 0x8007890,
+0x800775c, 0x8007858, 0x800775c, 0x8007828,
+0x8007644, 0x800775c, 0x800775c, 0x800775c,
+0x800775c, 0x800775c, 0x800775c, 0x800775c,
+0x800775c, 0x800775c, 0x800775c, 0x800775c,
+0x800775c, 0x8007784, 0x0 };
+u32 bce_RXP_b09FwBss[(0x20/4) + 1] = { 0x0 };
+u32 bce_RXP_b09FwSbss[(0x58/4) + 1] = { 0x0 };
+u32 bce_RXP_b09FwSdata[(0x0/4) + 1] = { 0x0 };
+
+
+int bce_CP_b09FwReleaseMajor = 0x1;
+int bce_CP_b09FwReleaseMinor = 0x0;
+int bce_CP_b09FwReleaseFix = 0x0;
+u32 bce_CP_b09FwStartAddr = 0x08000080;
+u32 bce_CP_b09FwTextAddr = 0x08000000;
+int bce_CP_b09FwTextLen = 0x5418;
+u32 bce_CP_b09FwDataAddr = 0x080055a0;
+int bce_CP_b09FwDataLen = 0x84;
+u32 bce_CP_b09FwRodataAddr = 0x08005418;
+int bce_CP_b09FwRodataLen = 0x16c;
+u32 bce_CP_b09FwBssAddr = 0x080056b8;
+int bce_CP_b09FwBssLen = 0x19c;
+u32 bce_CP_b09FwSbssAddr = 0x08005624;
+int bce_CP_b09FwSbssLen = 0x91;
+u32 bce_CP_b09FwSDataAddr = 0x00000000;
+int bce_CP_b09FwSDataLen = 0x0;
+u32 bce_CP_b09FwText[(0x5418/4) + 1] = {
+0xa000020,
+0x0, 0x0, 0xd, 0x6370342e,
+0x362e3136, 0x0, 0x4061004, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x38003c00, 0x0, 0x0, 0x0,
+0x0, 0x20, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x21003800, 0x1, 0x2b, 0x0,
+0x10000003, 0x0, 0xd, 0xd,
+0x3c020800, 0x24425624, 0x3c030800, 0x24635854,
+0xac400000, 0x43202b, 0x1480fffd, 0x24420004,
+0x3c1d0800, 0x37bd9ffc, 0x3a0f021, 0x3c100800,
+0x26100080, 0x3c1c0800, 0x279c5624, 0xe000286,
+0x0, 0xd, 0xa01821, 0x801021,
+0x802821, 0x3c046000, 0x3c076000, 0x24060008,
+0x10600006, 0x34842078, 0x8c420000, 0xace22008,
+0x8c630000, 0x3e00008, 0xace3200c, 0xa000e38,
+0x0, 0x24030040, 0x3c026000, 0x3e00008,
+0xac432000, 0x3c076000, 0x8f860000, 0x8ce52074,
+0x861021, 0xa2182b, 0x14600007, 0x2821,
+0x8f8afdfc, 0x24050001, 0xa1440013, 0x8f890000,
+0x1244021, 0xaf880000, 0x3e00008, 0xa01021,
+0x8f84fdfc, 0x8f850000, 0x90860013, 0x30c300ff,
+0xa31023, 0xaf820000, 0x3e00008, 0xa0800013,
+0x8f84fdfc, 0x27bdffe8, 0xafb00010, 0xafbf0014,
+0x90890011, 0x90870011, 0x24020028, 0x312800ff,
+0x39060028, 0x30e300ff, 0x2485002c, 0x2cd00001,
+0x10620016, 0x2484001c, 0xe000037, 0x0,
+0x8f8ffdfc, 0x3c056000, 0x24020204, 0x95ee003e,
+0x95ed003c, 0xe5c00, 0x31acffff, 0x16c5025,
+0xacaa2010, 0x52000001, 0x24020004, 0xaca22000,
+0x0, 0x0, 0x0, 0x8fbf0014,
+0x8fb00010, 0x3e00008, 0x27bd0018, 0xa00006f,
+0x2821, 0x8f85fdfc, 0x27bdffd8, 0xafbf0020,
+0xafb3001c, 0xafb20018, 0xafb10014, 0xafb00010,
+0x809821, 0x90a40011, 0x24b0001c, 0x24b1002c,
+0x308300ff, 0x38620028, 0xe000059, 0x2c520001,
+0xe000061, 0x0, 0x2002021, 0x12400002,
+0x2202821, 0x2821, 0xe000037, 0x0,
+0x8f8dfdfc, 0x3c088000, 0x3c056000, 0x95ac003e,
+0x95ab003c, 0x2683025, 0xc4c00, 0x316affff,
+0x12a3825, 0xaca72010, 0x24020202, 0xaca62014,
+0x52400001, 0x24020002, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x27bd0028,
+0x3e00008, 0xaca22000, 0x27bdffe0, 0xafb20018,
+0xafb10014, 0xafb00010, 0xafbf001c, 0x3c116000,
+0x8e232074, 0x8f820000, 0x30d0ffff, 0x30f2ffff,
+0x1062000c, 0x2406008f, 0xe000037, 0x0,
+0x3c06801f, 0x104400, 0x34c5ff00, 0x1123825,
+0x24040002, 0xae272010, 0x3021, 0xae252014,
+0xae242000, 0x8fbf001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0xc01021, 0x3e00008, 0x27bd0020,
+0x27bdffe0, 0xafb00010, 0x30d0ffff, 0xafbf0018,
+0xafb10014, 0xe000037, 0x30f1ffff, 0x102400,
+0x918025, 0x3c036000, 0xac702010, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x24020004, 0xac622000,
+0x27bd0020, 0x3e00008, 0x1021, 0x27bdffe8,
+0x3c0c6018, 0xafbf0010, 0x8d985000, 0x2419ff7f,
+0x3c088000, 0x3197824, 0x35ee380c, 0x340d8071,
+0x240a0031, 0x24090c00, 0xad8e5000, 0x3c0b800a,
+0xad8d53bc, 0xad0a0008, 0xad090024, 0xe0004a9,
+0xaf8b002c, 0xe000467, 0x0, 0xe000046,
+0x0, 0x3c076000, 0x8ce50808, 0x2406fff0,
+0x3c035709, 0xa62024, 0x3462f000, 0x10820043,
+0x241f0001, 0xe000bca, 0xaf800038, 0x3c066016,
+0x3c086014, 0x8cc70000, 0x8d0500a0, 0x3c03ffff,
+0xe32024, 0x3c025353, 0x52fc2, 0x10820044,
+0x34c87c00, 0x950201f2, 0xa7800050, 0x10400003,
+0xa7800060, 0x384c1e1e, 0xa78c0050, 0x950201f8,
+0x10400004, 0x8f8e0038, 0x384d1e1e, 0xa78d0060,
+0x8f8e0038, 0x11c00004, 0x97870060, 0x240f0020,
+0xa78f0050, 0x97870060, 0x30e4ffff, 0x2c980081,
+0x17000003, 0x97860050, 0x24070080, 0x24040080,
+0x2cd90401, 0x53200001, 0x24060400, 0x3c036000,
+0x8c650438, 0x241f103c, 0x30a2ffff, 0x505f002a,
+0xa3800062, 0x5480000c, 0xa3800062, 0x24020050,
+0xa3820062, 0x93880062, 0x1100000a, 0x8fbf0010,
+0x27bd0018, 0xa7800060, 0xa7800050, 0xa7800058,
+0x3e00008, 0xa7800076, 0x93880062, 0x1500fff8,
+0x8fbf0010, 0x27bd0018, 0xa7870060, 0xa7860050,
+0xa7800058, 0x3e00008, 0xa7800076, 0xaf9f0038,
+0xe000bca, 0x0, 0x3c066016, 0x3c086014,
+0x8cc70000, 0x8d0500a0, 0x3c03ffff, 0xe32024,
+0x3c025353, 0x52fc2, 0x1482ffbe, 0x34c87c00,
+0x55880, 0x1665021, 0x8d490004, 0x3c066000,
+0xa00010e, 0x1264021, 0x8d0a003c, 0x31490001,
+0x11200009, 0x0, 0x1080ffd5, 0x24020050,
+0x8d0b00c8, 0x31640001, 0x1480ffd3, 0x93880062,
+0xa000131, 0x24020051, 0x1480ffcf, 0x93880062,
+0xa000131, 0x24020050, 0x3083ffff, 0x8f88002c,
+0x8f870028, 0x32140, 0x3c058000, 0x3c020050,
+0x824825, 0x3c066000, 0x3c0a0100, 0x34ac0400,
+0x8ccd08e0, 0x1aa5824, 0x11600005, 0x0,
+0x8ccf08e0, 0x24e70001, 0x1ea7025, 0xacce08e0,
+0x8d190010, 0x1805821, 0xacb90038, 0x8d180014,
+0xacb8003c, 0xaca90030, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x3c038000, 0x8c640000,
+0x30820020, 0x1040fffd, 0x3c0f6000, 0x8ded08e0,
+0x3c0e0100, 0x1ae1824, 0x1460ffe1, 0x0,
+0xaf870028, 0x3e00008, 0xaf8b003c, 0x8f85002c,
+0x240bfff0, 0x3c068000, 0x94a7001a, 0x8ca90024,
+0x30ecffff, 0xc38c0, 0xeb5024, 0x12a4021,
+0xacc8003c, 0x8ca40024, 0x8cc3003c, 0x831023,
+0x18400033, 0x0, 0x8cad0020, 0x25a20001,
+0x3c0f0050, 0xacc20038, 0x35ee0010, 0x3c068000,
+0xacce0030, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x3c048000, 0x8c990000, 0x33380020,
+0x1300fffd, 0x30e20008, 0x10400017, 0x3c098000,
+0x8c880408, 0xaca80010, 0x8c83040c, 0xaca30014,
+0x3c190020, 0x3c188000, 0xaf190030, 0x94ae0018,
+0x94af001c, 0x1cf3021, 0xa4a60018, 0x94ad001a,
+0x25a70001, 0xa4a7001a, 0x94ab001a, 0x94ac001e,
+0x118b0003, 0x0, 0x3e00008, 0x0,
+0x3e00008, 0xa4a0001a, 0x8d2a0400, 0xacaa0010,
+0x8d240404, 0xaca40014, 0xa0001be, 0x3c190020,
+0x8ca20020, 0xa0001a6, 0x3c0f0050, 0xa000194,
+0x0, 0x3c030800, 0x8c630020, 0x8f820034,
+0x27bdffe8, 0x10620008, 0xafbf0010, 0xe0001d8,
+0xaf830034, 0x3c030800, 0x8c630020, 0x24040001,
+0x10640004, 0x8f8c002c, 0x8fbf0010, 0x3e00008,
+0x27bd0018, 0x8fbf0010, 0x3c058000, 0xa580000a,
+0x958b000a, 0x958a0004, 0x27bd0018, 0x3167ffff,
+0x3149000f, 0x94500, 0xe83025, 0x3e00008,
+0xaca60080, 0x3c020800, 0x8c420020, 0x27bdffc8,
+0xafbf0034, 0xafbe0030, 0xafb7002c, 0xafb60028,
+0xafb50024, 0xafb40020, 0xafb3001c, 0xafb20018,
+0xafb10014, 0x10400053, 0xafb00010, 0x8f84002c,
+0x94860006, 0x9483000a, 0xc32823, 0x30b6ffff,
+0x12c0004d, 0x8fbf0034, 0x94890018, 0x948a000a,
+0x12a4023, 0x3102ffff, 0x2c2382b, 0x14e00002,
+0x2c02021, 0x402021, 0x2c8c0005, 0x15800002,
+0x80a021, 0x24140004, 0xe000167, 0x2802021,
+0x8f87002c, 0x2809821, 0xaf800030, 0x94ed000a,
+0x2808821, 0x12800051, 0x31b2ffff, 0x3c177000,
+0x3c154000, 0x3c1e6000, 0x8f8f003c, 0x8dee0000,
+0x1d71824, 0x50750053, 0x2202021, 0x2a3802b,
+0x16000038, 0x3c182000, 0x1078004a, 0x0,
+0x24100001, 0x8f830030, 0x1460003c, 0x2915823,
+0x230f823, 0x250c821, 0x33f1ffff, 0x1620ffee,
+0x3332ffff, 0x8f87002c, 0x3c120020, 0x3c118000,
+0xae320030, 0x94ea000a, 0x3c178000, 0x26a4821,
+0xa4e9000a, 0x94e3000a, 0x94e80004, 0x3065ffff,
+0x3106000f, 0x61500, 0xa2f025, 0xaefe0080,
+0x94f4000a, 0x94f50018, 0x12b4003a, 0x13c940,
+0x8cf80014, 0x8cee0010, 0x3195821, 0x7821,
+0x179682b, 0x1cf6021, 0x18d2021, 0xaceb0014,
+0xace40010, 0x2d33823, 0x30f6ffff, 0x16c0ffb6,
+0x8f84002c, 0x8fbf0034, 0x8fbe0030, 0x8fb7002c,
+0x8fb60028, 0x8fb50024, 0x8fb40020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0038, 0x107e001b, 0x0, 0x1477ffc9,
+0x24100001, 0xe0014fc, 0x0, 0x8f830030,
+0x1060ffc8, 0x230f823, 0x2915823, 0x8f87002c,
+0x1702021, 0xa000271, 0x3093ffff, 0x8f830030,
+0x1460ffc8, 0x3c120020, 0x3c118000, 0xa00023a,
+0xae320030, 0xe0003ea, 0x2202021, 0xa00022e,
+0x408021, 0xe0007e2, 0x2402821, 0xa00022e,
+0x408021, 0xe000d99, 0x2202021, 0xa00022e,
+0x408021, 0xe000194, 0x0, 0xa000253,
+0x2d33823, 0x27bdffd0, 0xafb50024, 0xafb40020,
+0xafb3001c, 0xafb20018, 0xafb10014, 0xafb00010,
+0xafbf0028, 0xe0000e4, 0x3c148000, 0x3c028008,
+0x3c032000, 0x3c010800, 0xac200070, 0x34550080,
+0x34720003, 0x24130001, 0x36900070, 0x2411ff80,
+0xa0002a1, 0x8e060000, 0x3c198000, 0x8f380000,
+0x3b0f0001, 0x31e20001, 0x10400025, 0x8f860084,
+0x8e070000, 0x3c0d0800, 0x8dad003c, 0x3c0a0800,
+0x8d4a0038, 0xe67023, 0x1ae4021, 0x5821,
+0x10e302b, 0x14b4821, 0x1262021, 0x3c010800,
+0xac28003c, 0xaf870084, 0x3c010800, 0xac240038,
+0xe0001da, 0x0, 0x3c050800, 0x8ca50070,
+0x10a0ffe5, 0xa02021, 0x3c050800, 0x8ca50068,
+0x3c060800, 0x8cc6006c, 0xe00149f, 0x0,
+0x3c010800, 0xac200070, 0x3c198000, 0x8f380000,
+0x3b0f0001, 0x31e20001, 0x1440ffdd, 0x8f860084,
+0x8e0c0000, 0x8f8d0084, 0x3c070800, 0x8ce7003c,
+0x3c060800, 0x8cc60038, 0x18d5823, 0xeb2821,
+0xab202b, 0xc24821, 0x1241021, 0x3c010800,
+0xac25003c, 0x3c088000, 0x3c010800, 0xac220038,
+0x8d030100, 0x241f0c00, 0x107f0026, 0x0,
+0x8d180100, 0x240e0020, 0xad180020, 0x92af0000,
+0x31e300ff, 0x106e0023, 0x24190050, 0x10790026,
+0x0, 0x3c048000, 0x8c880100, 0x15000003,
+0x0, 0x56600014, 0x3c044000, 0x8c990100,
+0x8c8f0100, 0x9821, 0x331c024, 0x186940,
+0x31ee007f, 0x1ae6025, 0x1925825, 0xac8b0830,
+0x8c870100, 0x8c890100, 0x24ea0100, 0x1513024,
+0x62940, 0x3123007f, 0xa31025, 0x52f825,
+0xac9f0830, 0x3c044000, 0xae840138, 0xa000299,
+0x0, 0xe0001f6, 0x0, 0xa0002e3,
+0x3c048000, 0x8d040100, 0xe00079b, 0x0,
+0xa0002e3, 0x3c048000, 0x8d040100, 0xe0013b7,
+0x0, 0xa0002e3, 0x3c048000, 0xa4102b,
+0x24030001, 0x10400009, 0x3021, 0x52840,
+0xa4102b, 0x4a00003, 0x31840, 0x5440fffc,
+0x52840, 0x5060000a, 0x4182b, 0x85382b,
+0x54e00004, 0x31842, 0xc33025, 0x852023,
+0x31842, 0x1460fff9, 0x52842, 0x4182b,
+0x3e00008, 0xc31021, 0x3084ffff, 0x30c600ff,
+0x3c078000, 0x8ce201b8, 0x440fffe, 0x64c00,
+0x1243025, 0x3c082000, 0xc82025, 0x3c031000,
+0xace00180, 0xace50184, 0xace40188, 0x3e00008,
+0xace301b8, 0x3c066000, 0x8cc5201c, 0x2402fff0,
+0x30830200, 0x30860100, 0x1060000e, 0xa22824,
+0x34a50001, 0x30873000, 0x10e00005, 0x30830c00,
+0x34a50004, 0x3c046000, 0x3e00008, 0xac85201c,
+0x1060fffd, 0x3c046000, 0x34a50008, 0x3e00008,
+0xac85201c, 0x54c0fff3, 0x34a50002, 0xa00033b,
+0x30873000, 0x27bdffe8, 0xafb00010, 0xafbf0014,
+0x3c076000, 0x24060002, 0x10800011, 0xa08021,
+0x8f83003c, 0xe000332, 0x8c640018, 0x8f82003c,
+0x2021, 0x24060001, 0x8c45000c, 0xe000323,
+0x0, 0x16000002, 0x24020003, 0x1021,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x8ce8201c, 0x2409fff0, 0x1092824, 0xace5201c,
+0x8f87003c, 0xa000358, 0x8ce5000c, 0x3c02600e,
+0x804021, 0x34460100, 0x24090018, 0x0,
+0x0, 0x0, 0x3c0a0050, 0x3c038000,
+0x35470200, 0xac680038, 0x34640400, 0xac65003c,
+0xac670030, 0x8c6c0000, 0x318b0020, 0x1160fffd,
+0x2407ffff, 0x2403007f, 0x8c8d0000, 0x2463ffff,
+0x24840004, 0xaccd0000, 0x1467fffb, 0x24c60004,
+0x0, 0x0, 0x0, 0x24a40200,
+0x85282b, 0x3c030020, 0x3c0e8000, 0x2529ffff,
+0x1054021, 0xadc30030, 0x1520ffe0, 0x802821,
+0x3e00008, 0x0, 0x8f82003c, 0x27bdffd8,
+0xafb3001c, 0xafbf0020, 0xafb20018, 0xafb10014,
+0xafb00010, 0x94460002, 0x809821, 0x8c520018,
+0x2cc30081, 0x8c480004, 0x8c470008, 0x8c51000c,
+0x8c490010, 0x10600007, 0x8c4a0014, 0x2cc40004,
+0x14800013, 0x30eb0007, 0x30c50003, 0x10a00010,
+0x0, 0x2410008b, 0x2002021, 0x2202821,
+0xe000323, 0x24060003, 0x16600002, 0x24020003,
+0x1021, 0x8fbf0020, 0x8fb3001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x3e00008, 0x27bd0028,
+0x1560fff1, 0x2410008b, 0x3c0c8000, 0x3c030020,
+0x241f0001, 0xad830030, 0xaf9f0030, 0x0,
+0x0, 0x0, 0x2419fff0, 0x24d8000f,
+0x3197824, 0x3c1000d0, 0xad880038, 0x1f07025,
+0x24cd0003, 0x3c08600e, 0xad87003c, 0x35850400,
+0xad8e0030, 0xd3882, 0x3504003c, 0x3c038000,
+0x8c6b0000, 0x31620020, 0x1040fffd, 0x0,
+0x10e00008, 0x24e3ffff, 0x2407ffff, 0x8ca80000,
+0x2463ffff, 0x24a50004, 0xac880000, 0x1467fffb,
+0x24840004, 0x3c04600e, 0xac860038, 0x0,
+0x0, 0x0, 0x3c070020, 0x3c068000,
+0x1202021, 0x1402821, 0xacc70030, 0xe000368,
+0x8021, 0xe000332, 0x2402021, 0xa0003a8,
+0x2002021, 0x27bdffd8, 0xafb20018, 0x3092ffff,
+0xafb10014, 0xafbf0020, 0xafb3001c, 0xafb00010,
+0x1240002d, 0x8821, 0xa0003fe, 0x24130003,
+0x50b30042, 0x8ce5000c, 0xd, 0x26390001,
+0x3331ffff, 0x24f80020, 0x232382b, 0x10e00022,
+0xaf98003c, 0x8f820030, 0x1440001f, 0x8f87003c,
+0x3c067000, 0x3c032000, 0x8ce40000, 0x862824,
+0x14a30019, 0x8f850044, 0x44402, 0x3c098000,
+0x898024, 0x14a0ffea, 0x310600ff, 0x240a0002,
+0x10ca0030, 0x28cb0003, 0x11600017, 0x0,
+0x24040001, 0x14c4ffe6, 0x26390001, 0x2002821,
+0xe00034a, 0x24040001, 0x8f87003c, 0xaf820044,
+0x26390001, 0x3331ffff, 0x24f80020, 0x232382b,
+0x14e0ffe0, 0xaf98003c, 0x2201021, 0x8fbf0020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0028, 0x10d3001b, 0x240c0004,
+0x14ccffcf, 0x26390001, 0x308dffff, 0xd19c0,
+0x3c048000, 0x8c8e01b8, 0x5c0fffe, 0x3c0f1000,
+0x3c102004, 0xac830180, 0xac800184, 0xac900188,
+0xac8f01b8, 0xa0003f9, 0x26390001, 0xe000323,
+0x24040084, 0x1600ffbd, 0x8f87003c, 0xa0003f8,
+0xaf800044, 0x2002821, 0xe00034a, 0x2021,
+0xa000418, 0x8f87003c, 0xe00038f, 0x2002021,
+0x8f87003c, 0xa000419, 0xaf820044, 0x449c2,
+0x3127003f, 0x44342, 0x3c028000, 0x82040,
+0x24031680, 0x2ce60020, 0xac43002c, 0x24eaffe0,
+0x24820001, 0x14c00003, 0x30a900ff, 0x801021,
+0x314700ff, 0x26080, 0x3c0d8000, 0x240a0001,
+0x18d2021, 0x3c0b000e, 0xea2804, 0x8b3021,
+0x11200005, 0x53827, 0x8cce0000, 0x1c53825,
+0x3e00008, 0xacc70000, 0x8cd80000, 0x3077824,
+0x3e00008, 0xaccf0000, 0x27bdffe0, 0xafb10014,
+0xafb00010, 0xafbf0018, 0x3c076000, 0x8ce40808,
+0x3402f000, 0x3c116000, 0x3083f000, 0x240501c0,
+0x3c04800e, 0x3021, 0x10620006, 0x24100001,
+0x8cea0808, 0x3149f000, 0x3928e000, 0x8382b,
+0x78040, 0x3c0d0200, 0xae2d0814, 0x240c1680,
+0x3c0b8000, 0x8e274400, 0xe000e42, 0xad6c002c,
+0x12000004, 0x3c021691, 0x24050001, 0x12050010,
+0x3c023d6c, 0x345800e0, 0xae384408, 0x3c110800,
+0x8e31007c, 0x8fbf0018, 0x3c066000, 0x118540,
+0x360f1680, 0x8fb10014, 0x8fb00010, 0x3c0e0200,
+0x27bd0020, 0xaccf4420, 0x3e00008, 0xacce0810,
+0x3c0218da, 0x345800e0, 0xae384408, 0x3c110800,
+0x8e31007c, 0x8fbf0018, 0x3c066000, 0x118540,
+0x360f1680, 0x8fb10014, 0x8fb00010, 0x3c0e0200,
+0x27bd0020, 0xaccf4420, 0x3e00008, 0xacce0810,
+0xa000448, 0x24050001, 0xa000448, 0x2821,
+0x24020400, 0xa782000c, 0xa7800004, 0x2021,
+0x3c060800, 0x24c656b8, 0x2405ffff, 0x24890001,
+0x44080, 0x3124ffff, 0x1061821, 0x2c870020,
+0x14e0fffa, 0xac650000, 0x24040400, 0xa784000e,
+0xa7800006, 0x2021, 0x3c060800, 0x24c65738,
+0x2405ffff, 0x248d0001, 0x46080, 0x31a4ffff,
+0x1865821, 0x2c8a0020, 0x1540fffa, 0xad650000,
+0xa7800010, 0xa7800008, 0xa780000a, 0x2021,
+0x3c060800, 0x24c657b8, 0x2405ffff, 0x24990001,
+0x4c080, 0x3324ffff, 0x3067821, 0x2c8e0004,
+0x15c0fffa, 0xade50000, 0x3c056000, 0x8ca73d00,
+0x2403e08f, 0xe31024, 0x34460140, 0x3e00008,
+0xaca63d00, 0x2487007f, 0x731c2, 0x24c5ffff,
+0x518c2, 0x24640001, 0x3082ffff, 0x238c0,
+0xa7840018, 0x3c010800, 0xac270030, 0xaf800014,
+0x2821, 0x2021, 0x3021, 0x24890001,
+0xa72821, 0x3124ffff, 0x2ca81701, 0x11000003,
+0x2c830080, 0x1460fff9, 0x24c60001, 0xc02821,
+0xaf860014, 0x10c0001d, 0xa7860012, 0x24caffff,
+0xa1142, 0x3c080800, 0x250857b8, 0x1040000a,
+0x2021, 0x403021, 0x2407ffff, 0x248e0001,
+0x46880, 0x31c4ffff, 0x1a86021, 0x86582b,
+0x1560fffa, 0xad870000, 0x30a2001f, 0x50400008,
+0x43080, 0x24030001, 0x43c804, 0x41080,
+0x487821, 0x2738ffff, 0x3e00008, 0xadf80000,
+0xc82021, 0x2405ffff, 0xac850000, 0x3e00008,
+0x0, 0x30a5ffff, 0x30c6ffff, 0x30a8001f,
+0x806021, 0x30e700ff, 0x52942, 0x5021,
+0x10c0001d, 0x24090001, 0x240b0001, 0x25180001,
+0x10b2004, 0x330800ff, 0x1267826, 0x390e0020,
+0x2ded0001, 0x2dc20001, 0x1a21825, 0x1060000d,
+0x1445025, 0x5c880, 0x32c4021, 0x1001821,
+0x10e0000f, 0xa2027, 0x8d040000, 0x8a1825,
+0xad030000, 0x24ad0001, 0x4021, 0x5021,
+0x31a5ffff, 0x252e0001, 0x31c9ffff, 0xc9102b,
+0x1040ffe7, 0x25180001, 0x3e00008, 0x0,
+0x8d0a0000, 0x1444024, 0xa00052e, 0xac680000,
+0x27bdffe8, 0x30a5ffff, 0x30c6ffff, 0xafb00010,
+0xafbf0014, 0x30e7ffff, 0x5021, 0x3410ffff,
+0x6021, 0x24af001f, 0xc04821, 0x24180001,
+0x24190020, 0x5e00016, 0x1e01021, 0x2f943,
+0x19f682a, 0x9702b, 0x1ae4024, 0x11000017,
+0xc1880, 0x641021, 0x10e00005, 0x8c4b0000,
+0xf84004, 0x83823, 0x1675824, 0x3821,
+0x15400041, 0x4021, 0x55600016, 0x3169ffff,
+0x258b0001, 0x316cffff, 0x5e1ffec, 0x1e01021,
+0x24a2003e, 0x2f943, 0x19f682a, 0x9702b,
+0x1ae4024, 0x1500ffeb, 0xc1880, 0x15460005,
+0x3402ffff, 0x2002821, 0xe000512, 0x3821,
+0x2001021, 0x8fbf0014, 0x8fb00010, 0x3e00008,
+0x27bd0018, 0x15200003, 0x1601821, 0xb1c02,
+0x24080010, 0x306a00ff, 0x15400005, 0x306e000f,
+0x250d0008, 0x31a02, 0x31a800ff, 0x306e000f,
+0x15c00005, 0x307f0003, 0x25100004, 0x31902,
+0x320800ff, 0x307f0003, 0x17e00005, 0x38690001,
+0x25020002, 0x31882, 0x304800ff, 0x38690001,
+0x31230001, 0x10600004, 0x310300ff, 0x250a0001,
+0x314800ff, 0x310300ff, 0xc6940, 0x1a34021,
+0x240a0001, 0x10caffd5, 0x3110ffff, 0x246e0001,
+0x31c800ff, 0x1119ffc6, 0x38c90001, 0x2d1f0020,
+0x53e0001c, 0x258b0001, 0x240d0001, 0xa0005a5,
+0x240e0020, 0x51460017, 0x258b0001, 0x25090001,
+0x312800ff, 0x2d090020, 0x51200012, 0x258b0001,
+0x25430001, 0x10d5004, 0x14b1024, 0x25090001,
+0x1440fff4, 0x306affff, 0x3127ffff, 0x10ee000c,
+0x2582ffff, 0x304cffff, 0x5021, 0x3410ffff,
+0x312800ff, 0x2d090020, 0x5520fff2, 0x25430001,
+0x258b0001, 0x1464826, 0xa00055f, 0x316cffff,
+0x3821, 0x5021, 0xa0005b1, 0x3410ffff,
+0x27bdffd8, 0xafb00010, 0x30f0ffff, 0xafb10014,
+0x103942, 0x3211ffe0, 0x71080, 0xafb3001c,
+0xb12823, 0x30d3ffff, 0xafb20018, 0x30a5ffff,
+0x809021, 0x2603021, 0x442021, 0xafbf0020,
+0xe00053d, 0x3207001f, 0x2228821, 0x3403ffff,
+0x2402021, 0x2002821, 0x2603021, 0x3821,
+0x10430009, 0x3231ffff, 0x2201021, 0x8fbf0020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0028, 0xe00053d, 0x0,
+0x408821, 0x2201021, 0x8fbf0020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0028, 0x42400, 0x3c036000, 0xac603d08,
+0x10a00002, 0x34821006, 0x34821016, 0x3e00008,
+0xac623d04, 0x27bdffe0, 0xafb00010, 0x309000ff,
+0x2e020006, 0xafbf0018, 0x10400008, 0xafb10014,
+0x103080, 0x3c030800, 0x24635424, 0xc32821,
+0x8ca40000, 0x800008, 0x0, 0x2021,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x801021,
+0x3e00008, 0x27bd0020, 0x97910012, 0x16200051,
+0x2021, 0x3c020800, 0x90420033, 0xa000618,
+0x0, 0x978d000e, 0x15a00031, 0x2021,
+0xa000618, 0x24020008, 0x9787000c, 0x14e0001a,
+0x1821, 0x602021, 0x24020001, 0x1080ffe9,
+0x8fbf0018, 0x429c2, 0x453021, 0xa6582b,
+0x1160ffe4, 0x3c088000, 0x3c072000, 0x569c0,
+0x1a76025, 0xad0c0020, 0x3c038008, 0x2402001f,
+0x2442ffff, 0xac600000, 0x441fffd, 0x24630004,
+0x24a50001, 0xa6702b, 0x15c0fff5, 0x569c0,
+0xa000602, 0x8fbf0018, 0x97870004, 0x3c040800,
+0x248456b8, 0x24050400, 0xe0005bd, 0x24060001,
+0x978b000c, 0x24440001, 0x308affff, 0x2569ffff,
+0x2d480400, 0x402821, 0x15000040, 0xa789000c,
+0x24ac3800, 0xc19c0, 0xa000616, 0xa7800004,
+0x97870006, 0x3c040800, 0x24845738, 0x24050400,
+0xe0005bd, 0x24060001, 0x9799000e, 0x24440001,
+0x3098ffff, 0x272fffff, 0x2f0e0400, 0x408821,
+0x15c0002c, 0xa78f000e, 0xa7800006, 0x3a020003,
+0x26240100, 0x3084ffff, 0xe0005ea, 0x2c450001,
+0x11f8c0, 0x27f00100, 0x1021c0, 0xa000618,
+0x24020008, 0x97850016, 0x9787000a, 0x3c040800,
+0x248457b8, 0xe0005bd, 0x24060001, 0x97870012,
+0x8f890014, 0x24450001, 0x30a8ffff, 0x24e3ffff,
+0x109302b, 0x408021, 0x14c00018, 0xa7830012,
+0xa780000a, 0x97850018, 0xe000e2c, 0x2002021,
+0x244a0500, 0x3144ffff, 0xe0005ea, 0x24050001,
+0x3c050800, 0x94a50032, 0xe000e2c, 0x2002021,
+0x24452100, 0x3c020800, 0x90420033, 0xa000618,
+0x521c0, 0xa000650, 0xa7840006, 0x24ac3800,
+0xc19c0, 0xa000616, 0xa7840004, 0xa00066a,
+0xa785000a, 0x308400ff, 0x27bdffe8, 0x2c820006,
+0xafbf0014, 0xafb00010, 0x10400015, 0xa03821,
+0x44080, 0x3c030800, 0x2463543c, 0x1032821,
+0x8ca40000, 0x800008, 0x0, 0x24cc007f,
+0x751c2, 0xc59c2, 0x3170ffff, 0x2547c400,
+0x30e5ffff, 0x27840004, 0x2003021, 0xe000512,
+0x24070001, 0x97860010, 0x2062021, 0xa7840010,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x3c050800, 0x8ca50030, 0x779c2, 0xe00030c,
+0x25e4df00, 0x3045ffff, 0x3c040800, 0x248457b8,
+0x24060001, 0xe000512, 0x24070001, 0x978e0012,
+0x8fbf0014, 0x8fb00010, 0x25cd0001, 0x27bd0018,
+0x3e00008, 0xa78d0012, 0x7c9c2, 0x2738ff00,
+0x1878c2, 0x31f0ffff, 0x3c040800, 0x24845738,
+0x2002821, 0x24060001, 0xe000512, 0x24070001,
+0x978d000e, 0x260e0100, 0xe8400, 0x25ac0001,
+0x3c0b6000, 0xa78c000e, 0xad603d08, 0x36040006,
+0x3021, 0x3c076000, 0x8ce23d04, 0x305f0006,
+0x17e0fffd, 0x24c90001, 0x61b00, 0x312600ff,
+0x644025, 0x2cc50004, 0xace83d04, 0x14a0fff6,
+0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018,
+0x751c2, 0x2549c800, 0x24060001, 0x24070001,
+0x3c040800, 0x248456b8, 0xe000512, 0x3125ffff,
+0x9787000c, 0x8fbf0014, 0x8fb00010, 0x24e60001,
+0x27bd0018, 0x3e00008, 0xa786000c, 0x3084ffff,
+0x30a5ffff, 0x3c068000, 0x8cc201b8, 0x440fffe,
+0x3c084080, 0x883825, 0x3c031000, 0xacc00180,
+0xacc50184, 0xacc70188, 0x3e00008, 0xacc301b8,
+0x3084ffff, 0x3c068000, 0x8cc201b8, 0x440fffe,
+0x3c084038, 0x8ca70000, 0x882825, 0x3c031000,
+0xacc70180, 0xacc50188, 0x3e00008, 0xacc301b8,
+0x8f83005c, 0x8f860054, 0x1066000b, 0x804021,
+0x3c070800, 0x24e757c8, 0x328c0, 0xa71021,
+0x8c440000, 0x24630001, 0x10880005, 0x3063000f,
+0x5466fffa, 0x328c0, 0x3e00008, 0x1021,
+0x3c070800, 0x24e757cc, 0xa73021, 0x3e00008,
+0x8cc20000, 0x3c039000, 0x34620001, 0x822025,
+0x3c038000, 0xac640020, 0x8c650020, 0x4a0fffe,
+0x0, 0x3e00008, 0x0, 0x3c028000,
+0x34430001, 0x832025, 0x3e00008, 0xac440020,
+0x27bdffe0, 0xafb10014, 0x3091ffff, 0xafb00010,
+0xafbf0018, 0x12200012, 0xa08021, 0x8ca50000,
+0x14a00011, 0x24040002, 0x3c068000, 0x8cc201b8,
+0x440fffe, 0x3c074000, 0x2272025, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x3c031000, 0x27bd0020,
+0xacc50180, 0xacc40188, 0x3e00008, 0xacc301b8,
+0xa00072b, 0x8ca50000, 0xe000682, 0x24060200,
+0x2821, 0xa00072b, 0xae000000, 0x3087ffff,
+0x3c068000, 0x8cc201b8, 0x440fffe, 0x3c0a4006,
+0x8ca90000, 0xea4025, 0xacc90180, 0x8ca40004,
+0x3c031000, 0xacc40184, 0xacc80188, 0x3e00008,
+0xacc301b8, 0x8f83fdf8, 0x27bdffe8, 0xafbf0014,
+0xafb00010, 0x90670008, 0x801021, 0x802821,
+0x30e60040, 0x2021, 0x10c00008, 0x8c500000,
+0xe000086, 0x2002021, 0x2002021, 0x8fbf0014,
+0x8fb00010, 0xa0004a5, 0x27bd0018, 0xe000740,
+0x0, 0xe000086, 0x2002021, 0x2002021,
+0x8fbf0014, 0x8fb00010, 0xa0004a5, 0x27bd0018,
+0x27bdffe0, 0xafb00010, 0x8f90fdf8, 0xafbf001c,
+0xafb20018, 0xafb10014, 0x92060001, 0x808821,
+0xe000712, 0x30d20004, 0x92040005, 0x1129c2,
+0xa6050000, 0x34830040, 0xa2030005, 0xe00071c,
+0x2202021, 0xe0004a7, 0x2202021, 0x24020001,
+0xae02000c, 0x2202821, 0xa6020010, 0x24040002,
+0xa6020012, 0x24060200, 0xa6020014, 0xe000682,
+0xa6020016, 0x1640000f, 0x8fbf001c, 0x978c0058,
+0x3c0b0800, 0x8d6b0078, 0x2588ffff, 0x3109ffff,
+0x256a0001, 0x12a382b, 0x10e00006, 0xa7880058,
+0x3c0f6006, 0x240e0016, 0x35ed0010, 0xadae0050,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0020, 0x27bdffe0, 0xafbf0018,
+0xafb10014, 0xafb00010, 0xe000712, 0x808821,
+0x8f85fdf8, 0x2202021, 0x90a30005, 0xe00071c,
+0x307000ff, 0x2402003e, 0x12020005, 0x8fbf0018,
+0x8fb10014, 0x8fb00010, 0x3e00008, 0x27bd0020,
+0x3c058000, 0x8ca40178, 0x480fffe, 0x24070007,
+0x3c061000, 0xacb10140, 0x2202021, 0xa0a70144,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0xaca60178,
+0xa000769, 0x27bd0020, 0x27bdffe0, 0xafb00010,
+0xafbf0018, 0xafb10014, 0x3c108000, 0x8e110020,
+0x0, 0xe0004a7, 0xae040020, 0xae110020,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x3e00008,
+0x27bd0020, 0x3084ffff, 0x3c068000, 0x8cc201b8,
+0x440fffe, 0x3c084035, 0x883825, 0x3c031000,
+0xacc50180, 0xacc00184, 0xacc70188, 0x3e00008,
+0xacc301b8, 0x3084ffff, 0x3c068000, 0x8cc201b8,
+0x440fffe, 0x3c084036, 0x883825, 0x3c031000,
+0xacc50180, 0xacc00184, 0xacc70188, 0x3e00008,
+0xacc301b8, 0x27bdffd0, 0xafb50024, 0x3095ffff,
+0xafb60028, 0xafb40020, 0xafbf002c, 0xafb3001c,
+0xafb20018, 0xafb10014, 0xafb00010, 0x30b6ffff,
+0x12a00027, 0xa021, 0x8f92003c, 0x8e430000,
+0x3c068000, 0x24020040, 0x33e02, 0x32c02,
+0x30e4007f, 0x669824, 0x1482001d, 0x30a500ff,
+0x8f83004c, 0x2c68000a, 0x51000010, 0x8f860030,
+0x35880, 0x3c0c0800, 0x258c5458, 0x16c5021,
+0x8d490000, 0x1200008, 0x0, 0x2d44821,
+0x3125ffff, 0xe0006e4, 0x24040084, 0x16600002,
+0x8f92003c, 0xaf80004c, 0x8f860030, 0x26580020,
+0x268f0001, 0x3009021, 0x31f4ffff, 0x14c00004,
+0xaf98003c, 0x295282b, 0x14a0ffdc, 0x0,
+0x2801021, 0x8fbf002c, 0x8fb60028, 0x8fb50024,
+0x8fb40020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x3e00008, 0x27bd0030, 0x24070034,
+0x14a70146, 0x0, 0x9247000e, 0x8f99fdfc,
+0x8f90fdf8, 0x24181600, 0xa3270019, 0x924a000d,
+0x3c088000, 0x3c07800c, 0xa32a0018, 0x96440012,
+0x3c0f6000, 0x3c117fff, 0xa604005c, 0x965f0010,
+0x3622ffff, 0x240a0005, 0x33e5ffff, 0xae050054,
+0x8e46001c, 0xad180028, 0x8ce90000, 0x8dee4448,
+0x1266826, 0x1cd3021, 0xae060038, 0x8e030038,
+0x24cb0001, 0x3c0e7f00, 0xae03003c, 0x8e0c003c,
+0xaf2c0004, 0xae0b0020, 0x8e130020, 0xae13001c,
+0xa320001b, 0xae02002c, 0xa32a0012, 0x8e440014,
+0x24130050, 0xae040034, 0x8e1f0034, 0xaf3f0014,
+0x8e450018, 0xae050048, 0x9258000c, 0xa218004e,
+0x920f0008, 0x35e90020, 0xa2090008, 0x8e0d0018,
+0x1ae1824, 0x346c4000, 0xae0c0018, 0x920b0000,
+0x317200ff, 0x125302ad, 0x2413ff80, 0x3c040800,
+0x24845848, 0xe00074e, 0x0, 0x24030004,
+0x24080001, 0x3c050800, 0x8ca55848, 0x3c048000,
+0xa2030025, 0xa2080005, 0x8c900178, 0x600fffe,
+0x8f92003c, 0x240e0002, 0x3c0d1000, 0xac850140,
+0xa08e0144, 0xac8d0178, 0xa00080b, 0xaf80004c,
+0x2cad0037, 0x11a0ff99, 0x8f860030, 0x58080,
+0x3c110800, 0x26315480, 0x2117821, 0x8dee0000,
+0x1c00008, 0x0, 0x24100004, 0x14b0008e,
+0x3c078000, 0x3c0c0800, 0x8d8c5848, 0x8f86fdf8,
+0xacec0020, 0x8e4b0008, 0x8f98fdfc, 0x24090050,
+0xaccb0030, 0x8e430008, 0xacc30050, 0x8e42000c,
+0xacc20034, 0x8e4a0010, 0xacca0038, 0x8e440010,
+0xacc40054, 0x8e5f0014, 0xacdf003c, 0x8e590018,
+0xaf190004, 0x8e4f001c, 0xaccf0020, 0x90d10000,
+0x322500ff, 0x10a9027d, 0x0, 0x8cd10034,
+0x8ccf0030, 0x22f3023, 0x4c000f3, 0x2404008c,
+0x126000f0, 0x24020003, 0xa00080b, 0xaf82004c,
+0x24180005, 0x14b80068, 0x3c0b8000, 0x3c0c0800,
+0x8d8c5848, 0x8f86fdf8, 0xad6c0020, 0x8e430004,
+0x8f9ffdfc, 0x24072000, 0xacc3001c, 0x92420008,
+0x24120008, 0xa3e20019, 0x8f8a003c, 0x91440009,
+0xa3e40018, 0x8f85003c, 0x90b9000a, 0x332400ff,
+0x10920010, 0x28880009, 0x150000bc, 0x240d0002,
+0x24090020, 0x1089000b, 0x34078000, 0x28910021,
+0x16200008, 0x24074000, 0x240f0040, 0x108f0005,
+0x3c070001, 0x24180080, 0x10980002, 0x3c070002,
+0x24074000, 0x8cc40018, 0x3c0aff00, 0x8af824,
+0x3e7c825, 0xacd90018, 0x90b2000b, 0xa0d20027,
+0x8f83003c, 0x9465000c, 0x10a00231, 0x0,
+0x9467000c, 0x3c1f8000, 0xa4c7005c, 0x9062000e,
+0x2403ffbf, 0x24070004, 0xa0c20008, 0x8f8a003c,
+0x9144000f, 0xa0c40009, 0x8f88003c, 0x8d120010,
+0x8ff90074, 0x2592823, 0xacc50058, 0x8d180014,
+0xacd8002c, 0x950f0018, 0x31f1ffff, 0xacd10040,
+0x9509001a, 0x3130ffff, 0xacd00044, 0x8d0e001c,
+0xacce0048, 0x950d0002, 0xa4cd0078, 0x910c000e,
+0xa0cc0008, 0x90cb0008, 0x1631024, 0x126001d7,
+0xa0c20008, 0x8f92003c, 0xa00080b, 0xaf87004c,
+0x24060006, 0x14a60014, 0x3c0e8000, 0x3c100800,
+0x8e105848, 0x8f8cfdf4, 0xadd00020, 0x8e4d0018,
+0x8f86fdf8, 0x8f8bfdfc, 0xad8d0000, 0x8cc80038,
+0x24040005, 0xad880004, 0x8cc3003c, 0x12600081,
+0xad630000, 0xa00080b, 0xaf84004c, 0x24090007,
+0x10a9004b, 0x24040006, 0x3c050800, 0x24a55848,
+0xe000721, 0x24040081, 0x8f92003c, 0x13102b,
+0xa00080b, 0xaf82004c, 0x241f0023, 0x14bffff6,
+0x3c0c8000, 0x3c030800, 0x8c635848, 0x8f8bfdfc,
+0xad830020, 0x8f91fdf8, 0x8e460004, 0x25640020,
+0x26450014, 0xae260028, 0x24060003, 0xe000e38,
+0x25700030, 0x8f87003c, 0x2002021, 0x24060003,
+0xe000e38, 0x24e50008, 0x3c040800, 0x24845848,
+0xe00074e, 0x0, 0x92220000, 0x24040050,
+0x304a00ff, 0x5544ffe1, 0x8f92003c, 0xe000e23,
+0x0, 0xa000910, 0x8f92003c, 0x24080033,
+0x14a80032, 0x3c028000, 0x3c110800, 0x8e315848,
+0x8f89fdfc, 0xac510020, 0x8e4a0008, 0x240f0028,
+0x8f8dfdf8, 0xad2a0030, 0x8e44000c, 0x24060009,
+0xad240034, 0x8e5f0010, 0xad3f0038, 0x8e590014,
+0xad390020, 0x8e450018, 0xad250024, 0x8e58001c,
+0xad380028, 0xa12f0011, 0x8e4e0004, 0x12600031,
+0xadae0028, 0x8f92003c, 0xa00080b, 0xaf86004c,
+0x24110022, 0x14b1ffb8, 0x0, 0x24040007,
+0x3c180800, 0x8f185848, 0x3c0f8000, 0xadf80020,
+0x5660feb1, 0xaf84004c, 0x3c040800, 0x24845848,
+0xe00074e, 0x24130050, 0x8f99fdf8, 0x93320000,
+0x324500ff, 0x10b3016c, 0x0, 0x8f92003c,
+0x2021, 0xa00080b, 0xaf84004c, 0x3c050800,
+0x24a55848, 0xe0006f1, 0x24040081, 0xa000910,
+0x8f92003c, 0x2d49821, 0x3265ffff, 0xe0006e4,
+0x24040084, 0xa00080b, 0x8f92003c, 0x108dff51,
+0x24070400, 0x28870003, 0x10e001aa, 0x24100004,
+0x240e0001, 0x548eff4b, 0x24074000, 0xa0008c6,
+0x24070100, 0x3c050800, 0x24a55848, 0xe000740,
+0x24040082, 0x8f92003c, 0x3021, 0xa00080b,
+0xaf86004c, 0x3c040800, 0x24845848, 0x8cc20038,
+0xe00074e, 0x8cc3003c, 0x8f92003c, 0xa000966,
+0x2021, 0x24040082, 0x3c050800, 0x24a55848,
+0xe000740, 0x0, 0x8f92003c, 0x1021,
+0xa00080b, 0xaf82004c, 0x8e500004, 0x8f91fdf8,
+0x3c0a8000, 0xad500020, 0x92220005, 0x2002821,
+0x30460002, 0x14c00187, 0x2404008a, 0x8f92fdfc,
+0x2002821, 0x2404008d, 0x924b001b, 0x31630020,
+0x14600180, 0x0, 0x922d0009, 0x240c0012,
+0x31a800ff, 0x110c017b, 0x24040081, 0xe000712,
+0x2002021, 0x9245001b, 0x240e0004, 0x2002021,
+0x34a90042, 0xa249001b, 0xe00071c, 0xa22e0025,
+0x3c048000, 0x8c910178, 0x620fffe, 0x24180002,
+0xac900140, 0xa0980144, 0x8f92003c, 0x3c0f1000,
+0xac8f0178, 0xa000911, 0x13102b, 0x8e500004,
+0x8f91fdf8, 0x3c1f8000, 0xaff00020, 0x92390005,
+0x2002821, 0x33270002, 0x14e0001a, 0x2404008a,
+0x92260009, 0x24120012, 0x30c400ff, 0x10920111,
+0x0, 0x92230009, 0x240a0004, 0x306200ff,
+0x104a010c, 0x0, 0xe000712, 0x2002021,
+0x8f88fdfc, 0x240cfffe, 0x2002021, 0x910e001b,
+0x35cd0020, 0xa10d001b, 0xa2320009, 0x922b0005,
+0x16c9024, 0xe00071c, 0xa2320005, 0x2002821,
+0x2021, 0xe0007d6, 0x0, 0xa000910,
+0x8f92003c, 0x8e510004, 0x3c028000, 0x3c100800,
+0x26105848, 0xac510020, 0x3c010800, 0xac315848,
+0x92460003, 0x30c40004, 0x10800169, 0x8f84fdf8,
+0x24020006, 0xa0820009, 0x924d001b, 0x2408ffc0,
+0x31ac003f, 0x1885825, 0xa08b0008, 0x92430003,
+0x306a0001, 0x15400160, 0x0, 0x8e420008,
+0xae020008, 0x3c020800, 0x8c425850, 0x1040015f,
+0x8f8efdfc, 0x281c2, 0x8f85fdf8, 0xa5d0000c,
+0x8e5f000c, 0x240f0001, 0x24090014, 0xaddf002c,
+0x8e590010, 0xadd9001c, 0x96470016, 0xa5c7003c,
+0x96580014, 0xa5d8003e, 0xacaf000c, 0xa4af0010,
+0xa4af0012, 0xa4af0014, 0xa4af0016, 0x12600163,
+0xa1c90011, 0x92440003, 0x30920002, 0x2e530001,
+0x8f92003c, 0x26620008, 0xa00080b, 0xaf82004c,
+0x8e460004, 0x3c058000, 0x3c048008, 0xaca60020,
+0x8e470008, 0x90890000, 0x24110050, 0x312200ff,
+0x105100bc, 0x24050088, 0x3c048000, 0x8c8f01b8,
+0x5e0fffe, 0x13802b, 0x3c184009, 0xb81025,
+0xaf90004c, 0x3c101000, 0xac860180, 0xac870184,
+0xac820188, 0xac9001b8, 0xa00080c, 0x8f860030,
+0x8e450004, 0x3c068000, 0x3c098008, 0xacc50020,
+0x913f0000, 0x24040050, 0x33f900ff, 0x132400b4,
+0x24060088, 0x3c048000, 0x8c8a01b8, 0x540fffe,
+0x3c0e400e, 0xce6825, 0x3c081000, 0xac850180,
+0xac800184, 0xac8d0188, 0xac8801b8, 0x912b0000,
+0x240cff80, 0x24040004, 0x16c1825, 0x24060030,
+0xe000682, 0xa1230000, 0xa000910, 0x8f92003c,
+0x8e500004, 0x8f91fdfc, 0x3c0f8000, 0xadf00020,
+0x9225001b, 0x30a90010, 0x1120007c, 0x24030081,
+0x3c048000, 0x8c8701b8, 0x4e0fffe, 0x3c1f401f,
+0xac900180, 0x7f1025, 0x13c82b, 0x3c101000,
+0xac800184, 0xaf99004c, 0xac820188, 0xac9001b8,
+0xa00080c, 0x8f860030, 0x8e44001c, 0xe0006fd,
+0x0, 0x104000fc, 0x403821, 0x8f92003c,
+0x24060089, 0x3c058000, 0x8cae01b8, 0x5c0fffe,
+0x0, 0xaca70180, 0x8e50001c, 0x3c114001,
+0x13782b, 0xd13825, 0x3c131000, 0xacb00184,
+0xaf8f004c, 0xaca70188, 0xacb301b8, 0xa00080c,
+0x8f860030, 0x96590002, 0x3c100800, 0x26105848,
+0x33380004, 0x130000a7, 0x3c046000, 0x8e5f001c,
+0x3c068000, 0xacdf0020, 0x3c010800, 0xac3f5848,
+0x964f0002, 0x31e70001, 0x14e000e7, 0x0,
+0x8e420004, 0xae020008, 0x3c100800, 0x8e105850,
+0x120000dd, 0x3c068000, 0x8f85fdf8, 0x24100001,
+0x8cbf0018, 0x8f91fdfc, 0x8f89fdf4, 0x3e6c825,
+0xacb90018, 0xa0a00005, 0xacb0000c, 0x3c180800,
+0x8f185850, 0x8f87003c, 0xa4b00010, 0x1879c2,
+0xa4b00012, 0xa4b00014, 0xa4b00016, 0xa62f000c,
+0x8cee0008, 0x8f8d003c, 0x8f8c003c, 0xae2e002c,
+0x8da8000c, 0x24070002, 0xae28001c, 0x918b0010,
+0xa22b0011, 0x8f83003c, 0x906a0011, 0xa12a0008,
+0x8f82003c, 0x90440012, 0xa0a4004e, 0x8f92003c,
+0x92460013, 0xa2260012, 0x8f92003c, 0x965f0014,
+0xa63f003c, 0x96590016, 0xa639003e, 0x8e580018,
+0xae380014, 0x5660fd4c, 0xaf87004c, 0x3c050800,
+0x24a55848, 0xe000721, 0x2021, 0x8f92003c,
+0x3821, 0xa00080b, 0xaf87004c, 0x3c050800,
+0x24a55848, 0xe000740, 0x24040082, 0x8f92003c,
+0xa0008f3, 0x3821, 0xe000e23, 0x0,
+0x8f92003c, 0xa000966, 0x2021, 0xe000712,
+0x2002021, 0x9232001b, 0x2002021, 0x36580010,
+0xe00071c, 0xa238001b, 0x8f92003c, 0xa000a59,
+0x1821, 0xe0007d6, 0x24040081, 0xa000910,
+0x8f92003c, 0x9243000c, 0x306a0001, 0x11400003,
+0x0, 0x964b000e, 0xa48b002c, 0x9248000c,
+0x310c0002, 0x1180ff3c, 0x2821, 0x964e0012,
+0x8e4d0014, 0xa48e001a, 0xa000a27, 0xac8d001c,
+0x8f83005c, 0x8f870054, 0x1067ff4a, 0x3021,
+0x3c080800, 0x250857cc, 0x320c0, 0x883021,
+0x8cd10000, 0x122500c8, 0x24620001, 0x3043000f,
+0x1467fffa, 0x320c0, 0xa000a3e, 0x3021,
+0x3c050800, 0x24a55848, 0xe000740, 0x2404008b,
+0x8f92003c, 0xa0008f3, 0x13382b, 0x3c0c0800,
+0x8d8c5848, 0x24d9fffe, 0x25910100, 0x322b007f,
+0x1679021, 0x2331024, 0xad020028, 0xae4600d0,
+0xae4000d4, 0xa00085c, 0xae59001c, 0xacc00054,
+0x3c090800, 0x8d295848, 0x3c05800c, 0x34a80100,
+0xace90028, 0x8e500014, 0xad1000d0, 0x8e4e0014,
+0xad0e00d4, 0x8e4d0010, 0x25a7fffe, 0xa000898,
+0xad07001c, 0x5490fda3, 0x24074000, 0xa0008c6,
+0x24071000, 0xe0007ca, 0x0, 0xa000910,
+0x8f92003c, 0x8c83442c, 0x3c05dead, 0x34b2beef,
+0x3c010800, 0xac205848, 0x1072004f, 0x0,
+0x3c046c62, 0x34827970, 0x14620008, 0x24040002,
+0x978a0058, 0x97830050, 0x2002821, 0x143482b,
+0x11200019, 0x24040092, 0x24040002, 0xe0005f2,
+0x24050200, 0x3c0b8000, 0xad620020, 0x3c010800,
+0xac225848, 0x1040000d, 0x8f8e003c, 0x240c0028,
+0x24040003, 0x91cd0010, 0x31a800ff, 0x550c0001,
+0x24040001, 0xe00004a, 0x0, 0x10400004,
+0x24040083, 0xa000a89, 0x8f92003c, 0x24040083,
+0x3c050800, 0x24a55848, 0xe000721, 0x0,
+0x8f92003c, 0x13382b, 0xa00080b, 0xaf87004c,
+0xa0009f2, 0x24020012, 0x8e440008, 0xe0006fd,
+0x0, 0xa0009fe, 0xae020008, 0x3c050800,
+0x24a55848, 0xe0006f1, 0x24040087, 0x8f92003c,
+0xa000a1b, 0x13102b, 0x24040004, 0xe0005f2,
+0x24050030, 0x14400017, 0x403821, 0x8f92003c,
+0xa000a6e, 0x24060083, 0x3c050800, 0x24a55848,
+0xa000b53, 0x24040087, 0x8e440004, 0xe0006fd,
+0x0, 0xa000a8f, 0xae020008, 0x3c050800,
+0x24a55848, 0xe000740, 0x24040082, 0x8f92003c,
+0xa000a1b, 0x1021, 0x8c83442c, 0xa000b32,
+0x3c046c62, 0x8f92003c, 0x3c088008, 0x3c0c8000,
+0x240b0050, 0x240a0001, 0xad820020, 0xa10b0000,
+0xa10a0001, 0x92490004, 0xa1090018, 0x92440005,
+0xa1040019, 0x92430006, 0x3c040800, 0x248457cc,
+0xa103001a, 0x92420007, 0x3c030800, 0x246357c8,
+0xa102001b, 0x92450008, 0xa105001c, 0x92460009,
+0xa106001d, 0x925f000a, 0xa11f001e, 0x9259000b,
+0xa119001f, 0x9258000c, 0xa1180020, 0x9251000d,
+0xa1110021, 0x9250000e, 0xa1100022, 0x924f000f,
+0xa10f0023, 0x924e0010, 0xa10e0024, 0x924d0011,
+0xa10d0025, 0x964c0014, 0xa50c0028, 0x964b0016,
+0x8f8a0054, 0x8f98005c, 0xa50b002a, 0x96490018,
+0xa10c0, 0x25450001, 0xa509002c, 0x8e46001c,
+0x44c821, 0x43f821, 0x30a5000f, 0xafe60000,
+0xaf270000, 0x10b80003, 0xaf850054, 0xa000a6e,
+0x3021, 0x24ad0001, 0x31a8000f, 0x3021,
+0xa000a6e, 0xaf88005c, 0x3c070800, 0x24e757c8,
+0x879021, 0xacc00000, 0x3021, 0xa000a3e,
+0xae400000, 0x3c048201, 0x3c036000, 0x34820e02,
+0xac603d68, 0xaf80007c, 0x3e00008, 0xac623d6c,
+0x27bdffe8, 0xafb00010, 0x3090ffff, 0x101842,
+0x2c620041, 0xafbf0014, 0x14400002, 0x24040080,
+0x24030040, 0x3c010800, 0xac300060, 0x3c010800,
+0xac230064, 0xe000e2c, 0x602821, 0x244802bf,
+0x2409ff80, 0x1092824, 0x103980, 0x103040,
+0x8fbf0014, 0x8fb00010, 0xa72021, 0x861821,
+0xaf830064, 0x3c010800, 0xac250058, 0x3c010800,
+0xac24005c, 0x3e00008, 0x27bd0018, 0x308300ff,
+0x30c6ffff, 0x30e400ff, 0x3c088000, 0x8d0201b8,
+0x440fffe, 0x35400, 0x1443825, 0x3c096000,
+0xe92025, 0x3c031000, 0xad050180, 0xad060184,
+0xad040188, 0x3e00008, 0xad0301b8, 0x8f86003c,
+0x3c096012, 0x35270010, 0x8ccb0004, 0x3c0c600e,
+0x35850010, 0x316a0006, 0x2d480001, 0xace800c4,
+0x8cc40004, 0xaca43180, 0x8cc20008, 0x94c30002,
+0xaca23184, 0x3e00008, 0xa7830074, 0x8f85003c,
+0x8f87ff50, 0x8f86ff58, 0x8cae0004, 0x3c0f6012,
+0x35e80010, 0xacee0068, 0x8cad0008, 0xaced006c,
+0x8cac0010, 0xaccc004c, 0x8cab000c, 0xaccb0048,
+0x94ca0054, 0x3c020800, 0x8c420044, 0x25490001,
+0xa4c90054, 0x94c40054, 0x3083ffff, 0x10620017,
+0x0, 0x3c020800, 0x8c420040, 0xa4c20052,
+0x8ca30018, 0xace30030, 0x8ca20014, 0xace2002c,
+0x8cb90018, 0xacf90038, 0x8cb80014, 0x24050001,
+0xacf80034, 0x8d0600bc, 0x50c50019, 0x8d0200b4,
+0x8d0200b8, 0xa4e20048, 0x94e40048, 0xa4e4004a,
+0x94e800da, 0x3e00008, 0x3102ffff, 0x3c020800,
+0x8c420024, 0xa4c00054, 0xa4c20052, 0x8ca30018,
+0xace30030, 0x8ca20014, 0xace2002c, 0x8cb90018,
+0xacf90038, 0x8cb80014, 0x24050001, 0xacf80034,
+0x8d0600bc, 0x54c5ffeb, 0x8d0200b8, 0x8d0200b4,
+0xa4e20048, 0x94e40048, 0xa4e4004a, 0x94e800da,
+0x3e00008, 0x3102ffff, 0x8f86003c, 0x3c048000,
+0x8cc90008, 0x8cc80008, 0x929c0, 0x839c0,
+0xac870020, 0x90c30007, 0x30620004, 0x1040003a,
+0xaf850078, 0x90cb0007, 0x316a0008, 0x11400039,
+0x8f87ff54, 0x8ccd000c, 0x8cce0014, 0x1ae602b,
+0x11800032, 0x0, 0x8cc2000c, 0xace20070,
+0x8ccb0018, 0x8f85ff50, 0x8f88ff58, 0xaceb0074,
+0x8cca0010, 0x2402fff8, 0xacaa00c8, 0x8cc9000c,
+0xad090060, 0x8cc4001c, 0xaca400c0, 0x90e3007c,
+0x62c824, 0xa0f9007c, 0x90d80007, 0x330f0008,
+0x11e00004, 0x0, 0x90ed007c, 0x35ac0001,
+0xa0ec007c, 0x90cf0007, 0x31ee0001, 0x11c00009,
+0x0, 0x90e4007c, 0x24180002, 0x34820002,
+0xa0e2007c, 0x90a300ec, 0x307900ff, 0x13380013,
+0x24080034, 0x90c90007, 0x31260002, 0x10c00004,
+0x0, 0x90eb007c, 0x356a0004, 0xa0ea007c,
+0x90ed007d, 0x31ac003f, 0xa0ec007d, 0x94a700da,
+0x3e00008, 0x30e2ffff, 0x8f87ff54, 0xa000c68,
+0x8cc20014, 0xa000c69, 0xace00070, 0xa000c8a,
+0xaca800cc, 0x8f8c003c, 0x27bdffd8, 0xafb3001c,
+0xafb20018, 0xafb00010, 0xafbf0020, 0xafb10014,
+0x918f0015, 0x3c13600e, 0x36730010, 0x31eb000f,
+0xa38b0080, 0x8d8f0004, 0x8d8b0008, 0x959f0012,
+0x95990010, 0x9584001a, 0x9598001e, 0x958e001c,
+0x33edffff, 0x332affff, 0x3089ffff, 0x3308ffff,
+0x31c7ffff, 0x3c010800, 0xac2d0024, 0x3c010800,
+0xac290044, 0x3c010800, 0xac2a0040, 0xae683178,
+0xae67317c, 0x91850015, 0x95910016, 0x3c126012,
+0x36520010, 0x30a200ff, 0x3230ffff, 0xae623188,
+0xae5000b4, 0x91830014, 0x959f0018, 0x24060001,
+0x66c804, 0x33f8ffff, 0xae5900b8, 0xae5800bc,
+0x918e0014, 0xaf8f0068, 0x3c086006, 0x31cd00ff,
+0xae4d00c0, 0x918a0015, 0x9584000e, 0x3c07600a,
+0x314900ff, 0xaf8b006c, 0x3084ffff, 0xae4900c8,
+0x35110010, 0xe000bd1, 0x34f00410, 0x3c020800,
+0x8c420060, 0x3c030800, 0x8c630064, 0x3c060800,
+0x8cc60058, 0x3c050800, 0x8ca5005c, 0x8f840064,
+0x8fbf0020, 0xae23004c, 0xae65319c, 0xae030054,
+0xae4500dc, 0xae6231a0, 0xae6331a4, 0xae663198,
+0xae220048, 0x8fb3001c, 0xae020050, 0x8fb10014,
+0xae4200e0, 0xae4300e4, 0xae4600d8, 0x8fb00010,
+0x8fb20018, 0xa0004da, 0x27bd0028, 0x97850076,
+0x97830060, 0x27bdffe8, 0xafb00010, 0xa3102b,
+0xafbf0014, 0x24040005, 0x8f90003c, 0x10400055,
+0x24090002, 0xe0005f2, 0x8f850064, 0xaf820078,
+0x24040003, 0x1040004f, 0x24090002, 0x3c068000,
+0xe00004a, 0xacc20020, 0x24070001, 0x24082000,
+0x1040004d, 0x24040005, 0x978e0076, 0x8f8aff54,
+0x24090050, 0x25c50001, 0xa7850076, 0xa1490000,
+0x3c0d0800, 0x8dad0064, 0x24038000, 0x8f84ff50,
+0xd6600, 0xad4c0018, 0xa5400006, 0x954b000a,
+0x8f85ff58, 0x2402ff80, 0x1633024, 0xa546000a,
+0x915f000a, 0x4821, 0x3e2c825, 0xa159000a,
+0xa0a00008, 0xa140004c, 0xa08000c5, 0x96180002,
+0x97830074, 0x3c020004, 0xa49800da, 0x960f0002,
+0x2418ffbf, 0x25ee2401, 0xa48e00ae, 0x8e0d0004,
+0xacad0044, 0x8e0c0008, 0xacac0040, 0xa4a00050,
+0xa4a00054, 0x8e0b000c, 0x240c0030, 0xac8b0028,
+0x8e060010, 0xac860024, 0xa480003e, 0xa487004e,
+0xa4870050, 0xa483003c, 0xad420074, 0xac8800c8,
+0xaca80060, 0xa08700ec, 0x909f00c4, 0x33f9007f,
+0xa09900c4, 0x909000c4, 0x2187824, 0xa08f00c4,
+0x914e007c, 0x35cd0001, 0xa14d007c, 0x938b0080,
+0xad480070, 0xac8c00cc, 0xa08b00c6, 0x8f88006c,
+0x8f870068, 0xac8800b4, 0xac8700b8, 0xa5400078,
+0xa540007a, 0x8fbf0014, 0x8fb00010, 0x1201021,
+0x3e00008, 0x27bd0018, 0x8f850078, 0xe000682,
+0x8f860064, 0xa000d56, 0x24090002, 0x27bdffe0,
+0xafb00010, 0x8f90003c, 0xafb10014, 0xafbf0018,
+0x8e090004, 0xe0004a7, 0x921c0, 0x8e080004,
+0x8f84ff50, 0x8f82ff58, 0x839c0, 0x3c068000,
+0xacc70020, 0x948500da, 0x90430013, 0x1460001c,
+0x30b1ffff, 0x8f8cff54, 0x918b0008, 0x316a0040,
+0x1540000b, 0x0, 0x8e0d0004, 0x2203021,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x24040022,
+0x3821, 0xd29c0, 0xa000bf0, 0x27bd0020,
+0xe000061, 0x0, 0x8e0d0004, 0x2203021,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x24040022,
+0x3821, 0xd29c0, 0xa000bf0, 0x27bd0020,
+0xe000059, 0x0, 0x8e0d0004, 0x2203021,
+0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x24040022,
+0x3821, 0xd29c0, 0xa000bf0, 0x27bd0020,
+0x27bdffe0, 0xafb20018, 0x3092ffff, 0xafb00010,
+0xafbf001c, 0xafb10014, 0x1240001e, 0x8021,
+0x8f86003c, 0x8cc50000, 0x24030006, 0x53f02,
+0x51402, 0x30e40007, 0x14830016, 0x304500ff,
+0x2ca80006, 0x11000040, 0x55880, 0x3c0c0800,
+0x258c555c, 0x16c5021, 0x8d490000, 0x1200008,
+0x0, 0x8f8e007c, 0x240d0001, 0x11cd0050,
+0x24020002, 0xaf82007c, 0x26090001, 0x3130ffff,
+0x24c80020, 0x212202b, 0x1003021, 0x1480ffe5,
+0xaf88003c, 0x2001021, 0x8fbf001c, 0x8fb20018,
+0x8fb10014, 0x8fb00010, 0x3e00008, 0x27bd0020,
+0x93870062, 0x54e00034, 0x3021, 0xe000c9e,
+0x0, 0x8f86003c, 0xa000db6, 0x24020001,
+0x8f87007c, 0x24050002, 0x10e50031, 0x24040013,
+0x2821, 0x3021, 0x24070001, 0xe000bf0,
+0x0, 0xa000db7, 0x8f86003c, 0x8f83007c,
+0x24020002, 0x1462fff6, 0x24040012, 0xe000c53,
+0x0, 0x8f850078, 0x403021, 0x24040012,
+0xe000bf0, 0x3821, 0xa000db7, 0x8f86003c,
+0x8f83007c, 0x24110003, 0x10710029, 0x241f0002,
+0x107fffce, 0x26090001, 0x24040010, 0x2821,
+0x3021, 0xa000dd4, 0x24070001, 0x8f91007c,
+0x24060002, 0x1626fff9, 0x24040010, 0xe000cf8,
+0x0, 0x14400023, 0x8f98003c, 0x8f86003c,
+0xa000db6, 0x24020003, 0x24040014, 0xe000bf0,
+0x2821, 0x8f86003c, 0xa000db6, 0x24020002,
+0xe000d60, 0x0, 0xa000db7, 0x8f86003c,
+0xe000c00, 0x0, 0x24190002, 0x24040014,
+0x2821, 0x3021, 0x3821, 0xaf99007c,
+0xe000bf0, 0x0, 0xa000db7, 0x8f86003c,
+0xe000c10, 0x0, 0x8f850078, 0x24190002,
+0x403021, 0x24040010, 0x3821, 0xa000e0d,
+0xaf99007c, 0x403821, 0x24040010, 0x970f0002,
+0x2821, 0xe000bf0, 0x31e6ffff, 0x8f86003c,
+0xa000db7, 0xaf91007c, 0x8f84ff54, 0x3c077fff,
+0x34e6ffff, 0x8c850018, 0x24020001, 0xa61824,
+0xac830018, 0x3e00008, 0xa0820005, 0x3084ffff,
+0x30a5ffff, 0x10800007, 0x1821, 0x30820001,
+0x10400002, 0x42042, 0x651821, 0x1480fffb,
+0x52840, 0x3e00008, 0x601021, 0x10c00007,
+0x0, 0x8ca20000, 0x24c6ffff, 0x24a50004,
+0xac820000, 0x14c0fffb, 0x24840004, 0x3e00008,
+0x0, 0x10a00008, 0x24a3ffff, 0xac860000,
+0x0, 0x0, 0x2402ffff, 0x2463ffff,
+0x1462fffa, 0x24840004, 0x3e00008, 0x0,
+0x411c0, 0x3e00008, 0x24420240, 0x27bdffe8,
+0xafb00010, 0x808021, 0xafbf0014, 0xe000e4d,
+0xa02021, 0x504821, 0x240aff80, 0x8fbf0014,
+0x8fb00010, 0x12a3024, 0x3127007f, 0x3c08800a,
+0x3c042100, 0xe81021, 0xc42825, 0x3c038000,
+0x27bd0018, 0xac650024, 0xaf820020, 0xac400000,
+0xac650024, 0x3e00008, 0xac400040, 0x3c0d0800,
+0x8dad0058, 0x56180, 0x240aff80, 0x1a45821,
+0x16c4821, 0x12a3024, 0x3127007f, 0x3c08800c,
+0x3c042100, 0xe81021, 0xc42825, 0x3c038000,
+0xac650028, 0xaf82001c, 0x3e00008, 0xac400024,
+0x30a5ffff, 0x3c068000, 0x8cc201b8, 0x440fffe,
+0x3c086015, 0xa83825, 0x3c031000, 0xacc40180,
+0xacc00184, 0xacc70188, 0x3e00008, 0xacc301b8,
+0x3c0d0800, 0x8dad0058, 0x56180, 0x240aff80,
+0x1a45821, 0x16c4021, 0x10a4824, 0x93140,
+0x3107007f, 0xc72825, 0x3c042000, 0xa41825,
+0x3c028000, 0xac430830, 0x3e00008, 0xaf80001c,
+0x27bdffe8, 0xafb00010, 0x808021, 0xafbf0014,
+0xe000e4d, 0xa02021, 0x504821, 0x240bff80,
+0x12b5024, 0xa3940, 0x3128007f, 0x3c062000,
+0x8fbf0014, 0x8fb00010, 0xe82825, 0x34c20001,
+0xa21825, 0x3c048000, 0x27bd0018, 0xac830830,
+0x3e00008, 0xaf800020, 0x3c058008, 0x8ca70060,
+0x3c068008, 0x87102b, 0x14400011, 0x2c834000,
+0x8ca80060, 0x2d034000, 0x1060000f, 0x24034000,
+0x8cc90060, 0x89282b, 0x14a00002, 0x801821,
+0x8cc30060, 0x35a42, 0xb3080, 0x3c0a0800,
+0x254a55a0, 0xca2021, 0x3e00008, 0x8c820000,
+0x1460fff3, 0x24034000, 0x35a42, 0xb3080,
+0x3c0a0800, 0x254a55a0, 0xca2021, 0x3e00008,
+0x8c820000, 0x3c058008, 0x90a60008, 0x93840090,
+0x24c20001, 0x304200ff, 0x3043007f, 0x1064000c,
+0x23827, 0xa0a20008, 0x3c048000, 0x8c850178,
+0x4a0fffe, 0x8f8a0088, 0x24090002, 0x3c081000,
+0xac8a0140, 0xa0890144, 0x3e00008, 0xac880178,
+0xa000ed2, 0x30e20080, 0x27bdffc8, 0x3c058008,
+0x34a40080, 0xafbf0034, 0xafbe0030, 0xafb7002c,
+0xafb60028, 0xafb50024, 0xafb40020, 0xafb3001c,
+0xafb20018, 0xafb10014, 0xafb00010, 0x94830078,
+0x9482007a, 0x104300cd, 0x2405ffff, 0x3c1e8008,
+0x80b821, 0xa000fae, 0x3c168000, 0x108a00c8,
+0x8fbf0034, 0x8f840088, 0x3c0b0800, 0x8d6b005c,
+0x240aff80, 0x3c07800e, 0x1644021, 0x10a4824,
+0xaec9002c, 0x96e6007a, 0x3102007f, 0x471821,
+0x30c57fff, 0x58040, 0x203a821, 0x96bf0000,
+0x3c190800, 0x8f390058, 0x240fff80, 0x33f53fff,
+0x3248821, 0x15c180, 0x2389021, 0x24f5824,
+0x3c0c0100, 0x16c5025, 0x324e007f, 0x3c0d800c,
+0x1cd9021, 0x2802821, 0xe000e50, 0xaeca0028,
+0x8e480010, 0x8e490030, 0x8f860020, 0x24020002,
+0x1093823, 0xae470010, 0xa0c20000, 0x96e3005c,
+0x8e440030, 0x8f910020, 0xe000eab, 0x3070ffff,
+0x22b80, 0x205c825, 0x3c1f4200, 0x33fc025,
+0xae380004, 0x8e510004, 0x8f870020, 0x8e4f0000,
+0x24080008, 0xacf1001c, 0xacef0018, 0xace0000c,
+0xace00010, 0x9250000a, 0x24060005, 0x2405c000,
+0x320e00ff, 0xa4ee0014, 0x964d0008, 0x2e09821,
+0xa4ed0016, 0x924c000a, 0x3c0d8008, 0x318b00ff,
+0xa4eb0020, 0x96440008, 0x35ac0100, 0xa4e40022,
+0xace00024, 0x924a000b, 0x314900ff, 0xa4e90002,
+0xa0e80001, 0x8e420030, 0x8f830020, 0x2408ffbf,
+0xac620008, 0xa0660030, 0x8f8e0020, 0x2403ffdf,
+0x95df0032, 0x3e5c824, 0x335c025, 0xa5d80032,
+0x91d10032, 0x322f003f, 0x35f00040, 0xa1d00032,
+0x8f890020, 0xad200034, 0x8d8b00c0, 0xad2b0038,
+0x9124003c, 0x3c0b7fff, 0x308a007f, 0xa12a003c,
+0x8f860020, 0x3564ffff, 0x90c7003c, 0xe81024,
+0xa0c2003c, 0x8f990020, 0x9325003c, 0xa3f824,
+0xa33f003c, 0x8e580034, 0x8f8c0020, 0xad980040,
+0x8e4f002c, 0x8e510030, 0x1f18023, 0xad900044,
+0x918e0048, 0x31cd007f, 0xa18d0048, 0x8f850020,
+0x8e4a0030, 0x8ca90048, 0x1444024, 0x1363824,
+0xe83025, 0xaca60048, 0x9242000a, 0xa0a2004c,
+0x96430008, 0x8f9f0020, 0xa7e3004e, 0x8e500030,
+0x8e440030, 0xe00030c, 0x8fc50060, 0x92f1007c,
+0x2c140, 0x2c900, 0x3197821, 0x322e0002,
+0x402821, 0x11c00003, 0x20f8021, 0x22080,
+0x2048021, 0x926d007c, 0x31ac0004, 0x11800002,
+0x57080, 0x20e8021, 0x8e440030, 0x8f870020,
+0x24058000, 0x308b0003, 0xb5023, 0x31490003,
+0x2094021, 0xace80034, 0x9664007a, 0x9662007a,
+0x9670007a, 0x30467fff, 0x24c30001, 0x307f7fff,
+0x205c824, 0x33fc025, 0xa678007a, 0x9671007a,
+0x3c120800, 0x8e520060, 0x322f7fff, 0x11f20028,
+0x0, 0x8f840088, 0xe000e85, 0x2a02821,
+0x8f840088, 0xe000e95, 0x2802821, 0xe000eca,
+0x0, 0x96f30078, 0x96f4007a, 0x1293000f,
+0x2821, 0x3c098008, 0x35240100, 0x93c80008,
+0x908700c5, 0x3114007f, 0x30e400ff, 0x284302b,
+0x14c0ff3e, 0x268a0001, 0x938d0090, 0x268b0001,
+0x8d6021, 0x158bff3c, 0x8f840088, 0x8fbf0034,
+0x8fbe0030, 0x8fb7002c, 0x8fb60028, 0x8fb50024,
+0x8fb40020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0xa01021, 0x3e00008, 0x27bd0038,
+0x967f007a, 0x3e5c824, 0xa679007a, 0x9278007a,
+0x926e007a, 0x331100ff, 0x1179c2, 0xf9027,
+0x1269c0, 0x31cc007f, 0x18d2825, 0xa265007a,
+0xa000fa3, 0x8f840088, 0x3c038000, 0x3084ffff,
+0x30a5ffff, 0xac640018, 0xac65001c, 0x3e00008,
+0x8c620014, 0x27bdffa8, 0x3c068008, 0xafbf0054,
+0xafbe0050, 0xafb7004c, 0xafb60048, 0xafb50044,
+0xafb40040, 0xafb3003c, 0xafb20038, 0xafb10034,
+0xafb00030, 0x34c80100, 0x910500c5, 0x90c70008,
+0x3084ffff, 0x30a500ff, 0x30e2007f, 0x45182a,
+0xafa40010, 0xa7a00018, 0x1060009c, 0xafa00014,
+0x90ca0008, 0x3149007f, 0xa93023, 0x24d4ffff,
+0x14882b, 0x8fb30010, 0x13902b, 0x2328024,
+0x52000085, 0x8fb40014, 0x3c038008, 0x94790052,
+0x947e0050, 0x8fb60010, 0x33ec023, 0x18bc00,
+0x171403, 0x16fc00, 0x2c2a82a, 0x16a00002,
+0x1f2c03, 0x402821, 0x143c00, 0x72403,
+0xa4102a, 0x54400001, 0xa02021, 0x28850009,
+0x14a00002, 0x80b021, 0x24160008, 0x3c0c8008,
+0x8d860048, 0x165980, 0x8d88004c, 0x3c038000,
+0x3169ffff, 0x3c0a0010, 0x12a2025, 0x34700400,
+0xac660038, 0xaf90008c, 0xac68003c, 0xac640030,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x8c6e0000, 0x31cd0020, 0x11a0fffd, 0x16902a,
+0x2517824, 0x11e00036, 0xb821, 0x3c158000,
+0x3c118008, 0x92220008, 0x8ea40100, 0x8821,
+0x305e007f, 0xe000e50, 0x3c02821, 0x8e1f0010,
+0x8ea40100, 0x33f93fff, 0x3202821, 0xe000e68,
+0xafb9001c, 0x92180000, 0x3302003f, 0x2c530008,
+0x5260000d, 0x8021, 0x24050001, 0x451804,
+0x3067005d, 0x14e000b1, 0x8f92008c, 0x30640002,
+0x1480014d, 0x8f86008c, 0x30680080, 0x5500004a,
+0x96180012, 0x8021, 0x8ea40100, 0xe000e85,
+0x8fa5001c, 0x8ea40100, 0xe000e95, 0x3c02821,
+0x1200004f, 0x3c078008, 0x26e40001, 0x8f8c008c,
+0x4bc00, 0x291a023, 0x17bc03, 0x2f6302a,
+0x14882b, 0x259f0040, 0x24120001, 0xd1f024,
+0x3e08021, 0xaf9f008c, 0x17c0ffcd, 0xafb20014,
+0x3c078008, 0x94e80050, 0x8fb30010, 0x3c058000,
+0x2e81021, 0x3c0d0020, 0xa4e20050, 0xacad0030,
+0x94f50050, 0x94f60052, 0x2775023, 0x3149ffff,
+0x12d50041, 0xafa90010, 0x8cf6004c, 0x174980,
+0x8cf70048, 0x2c9f821, 0x2021, 0x3e9302b,
+0x2e46021, 0x1868021, 0xacff004c, 0xacf00048,
+0x8fb30010, 0x13902b, 0x2328024, 0x1600ff7f,
+0x3c038008, 0x8fb40014, 0x8fbf0054, 0x8fbe0050,
+0x3a820001, 0x8fb7004c, 0x8fb60048, 0x8fb50044,
+0x8fb40040, 0x8fb3003c, 0x8fb20038, 0x8fb10034,
+0x8fb00030, 0x3e00008, 0x27bd0058, 0x90cf0008,
+0x938c0090, 0x31ee007f, 0xae6823, 0x18d5821,
+0xa000ff9, 0x2574ffff, 0x8f840088, 0x24100001,
+0xa7b80018, 0xe000e79, 0x97a50018, 0x8ea40100,
+0xe000e85, 0x8fa5001c, 0x8ea40100, 0xe000e95,
+0x3c02821, 0x1600ffb5, 0x26e40001, 0x3c078008,
+0x94e80050, 0x8fb30010, 0x3c058000, 0x2e81021,
+0x3c0d0020, 0xa4e20050, 0xacad0030, 0x94f50050,
+0x94f60052, 0x2775023, 0x3149ffff, 0x14882b,
+0x16d5ffc1, 0xafa90010, 0x94fe0054, 0x8cf00044,
+0x33d8fffe, 0x1878c0, 0x20f7021, 0xacae003c,
+0x8cf90044, 0x8ca3003c, 0x3235823, 0x196002ea,
+0x0, 0x8cf20040, 0x26420001, 0xaca20038,
+0x3c050050, 0x34a70010, 0x3c038000, 0xac670030,
+0x0, 0x0, 0x0, 0x0,
+0x0, 0x0, 0x0, 0x0,
+0x8c7f0000, 0x33e60020, 0x10c0fffd, 0x3c108008,
+0x960d0054, 0x3c178000, 0x3c068008, 0x31b30001,
+0x1350c0, 0x157b021, 0x8ec90400, 0x3c070800,
+0x8ce70044, 0x3c040020, 0xacc90048, 0x8ed50404,
+0x240c0001, 0xacd5004c, 0x10ec02d0, 0xaee40030,
+0x96180052, 0x3c050800, 0x8ca50040, 0xb87821,
+0xa60f0052, 0x960e0054, 0x25c30001, 0xa6030054,
+0x96190054, 0x3324ffff, 0x5487ff0f, 0x8fb30010,
+0x30a5ffff, 0xe000fd7, 0xa6000054, 0x3c050800,
+0x8ca50024, 0x96120052, 0x453823, 0x247f023,
+0xa61e0052, 0xa000ffb, 0x8fb30010, 0x8f93001c,
+0x3c070080, 0x8e440028, 0x3c1fffef, 0x37f9ffff,
+0xae640000, 0x8e420024, 0xa260000a, 0x3c0fff9f,
+0xae620004, 0x9245002c, 0x35eeffff, 0x3c0c0040,
+0xa265000c, 0x8e71000c, 0xa265000b, 0x3c0600ff,
+0x227c025, 0x3196824, 0x1ae5824, 0x16c5025,
+0xae6a000c, 0x8e490004, 0xae600018, 0x34d0ffff,
+0xae690014, 0x8e48002c, 0x8f820088, 0xa6600008,
+0x1102024, 0xae640010, 0x8e510008, 0x96470012,
+0xae710020, 0x8e58000c, 0x30e33fff, 0x32980,
+0xae780024, 0x8e4c0014, 0xa2f821, 0x30f90001,
+0xae6c0028, 0x8e4b0018, 0x1f71c2, 0x197b80,
+0xae6b002c, 0x8e49001c, 0x1cf6821, 0xa66d001c,
+0xae690030, 0x964a0002, 0x8e460020, 0xa66a001e,
+0xae660034, 0x92430033, 0x30700004, 0x56000006,
+0x924b0000, 0x3c068008, 0x34d00100, 0x8e0800c0,
+0xae680030, 0x924b0000, 0x8f8a0020, 0xa14b0030,
+0x92490033, 0x31230002, 0x50600007, 0x92440001,
+0x8f8c0020, 0x240fff80, 0x918e0030, 0x1cf6825,
+0xa18d0030, 0x92440001, 0x8f820020, 0x2418ffbf,
+0x240affdf, 0xa0440031, 0x8f990020, 0x3c088008,
+0x35040080, 0x9331003c, 0x323f007f, 0xa33f003c,
+0x8f8d0020, 0x91af003c, 0x1f87024, 0xa1ae003c,
+0x8f870020, 0x8e6c0014, 0x90e3003c, 0x2d8b0001,
+0xb4940, 0x6a3024, 0xc98025, 0xa0f0003c,
+0x96450012, 0x8f870020, 0xa4e50032, 0x8e450004,
+0x909f007c, 0x30a20003, 0x28823, 0x32390003,
+0xb91021, 0x33f80002, 0x17000002, 0x24440034,
+0x24440030, 0x3c038008, 0x34660080, 0x90c9007c,
+0xa98024, 0x32080004, 0x15000002, 0x24830004,
+0x801821, 0x8f840020, 0x24080002, 0xace30034,
+0xa0880000, 0x9242003f, 0x8f9f0020, 0x3c188008,
+0x370f0080, 0xa3e20001, 0x8f910020, 0x9259003f,
+0x8e440004, 0xa6390002, 0x95ee005c, 0xe000eab,
+0x31d0ffff, 0x26b80, 0x20d5825, 0x3c0c4200,
+0x16c2825, 0xae250004, 0x8e4a0038, 0x8f850020,
+0xacaa0018, 0x8e470034, 0xaca7001c, 0xaca0000c,
+0xaca00010, 0xa4a00014, 0xa4a00016, 0xa4a00020,
+0xa4a00022, 0xaca00024, 0x8e620014, 0x50400001,
+0x24020001, 0xaca20008, 0xe000eca, 0x24110001,
+0xa00104f, 0x24100001, 0x90d30001, 0x32720020,
+0x1240018a, 0x24100001, 0x3c0a8008, 0x35470080,
+0x90e3007c, 0x8f93001c, 0xafa00024, 0x30690001,
+0x11200011, 0xafb00020, 0x3c058008, 0x8ccb0014,
+0x8cac0060, 0x16c882b, 0x16200003, 0x1602821,
+0x3c108008, 0x8e050060, 0x3c0f8008, 0x35e30080,
+0x8c6e0070, 0xae682b, 0x15a00002, 0xa02021,
+0x8c640070, 0xafa40024, 0x8f82ff5c, 0x8cc40014,
+0x8c590070, 0x99c02b, 0x53000001, 0x8c440070,
+0x8fa20024, 0x82f823, 0x13e00003, 0xafbf0028,
+0x24040002, 0xafa40020, 0x8fb20020, 0x292402b,
+0x1500015b, 0x1821, 0x8cc50038, 0x8e6b000c,
+0x3c0c0080, 0xae650000, 0x8cc90034, 0x3c11ff9f,
+0x16c5025, 0xae690004, 0x90c8003f, 0x3623ffff,
+0x1431024, 0x3c120020, 0x3c04ffef, 0xa268000b,
+0x523825, 0x349fffff, 0xffc024, 0x3c190008,
+0x8f87008c, 0x3197825, 0xae6f000c, 0x8ced0014,
+0xae600018, 0x8fb10024, 0xae6d0014, 0x8cf00018,
+0x8fae0028, 0xae70001c, 0x8ce50008, 0x22e6021,
+0xae650024, 0x8ceb000c, 0xa6600038, 0xa660003a,
+0xae6c002c, 0xae600028, 0xae6b0020, 0x8cea0014,
+0x8fa30028, 0x1514823, 0x1233023, 0x10c00011,
+0xae660010, 0x90e9003d, 0x8e620004, 0x8e7f0000,
+0x99100, 0x527821, 0x2021, 0x1f2c82b,
+0x3e4c021, 0x3197021, 0xae6f0004, 0xae6e0000,
+0x90ed003d, 0xa26d000a, 0x8f90008c, 0x96060006,
+0xa6660008, 0x8f980020, 0x24190002, 0x3c0f8008,
+0x8fa40024, 0x35ee0080, 0xa3190000, 0x95cd005c,
+0x8f920020, 0xe000eab, 0x31b0ffff, 0x22b80,
+0x2056025, 0x3c064200, 0x8f85008c, 0x1865825,
+0xae4b0004, 0x8f840020, 0x8cb10038, 0xac910018,
+0x8ca30034, 0xac83001c, 0xac80000c, 0xac800010,
+0xa4800014, 0xa4800016, 0xa4800020, 0xa4800022,
+0xac800024, 0x90aa003f, 0x8fa70024, 0xa48a0002,
+0x10e0000c, 0x24090001, 0x8fbf0028, 0x53e00188,
+0x90a2003d, 0x90a2003e, 0x24480001, 0xa0880001,
+0x8f850020, 0x8fa40024, 0xaca40008, 0xa00122f,
+0x3c118008, 0xa0890001, 0x8f850020, 0x24020001,
+0xaca20008, 0x3c118008, 0x36230080, 0x906a007c,
+0x31470002, 0x14e00002, 0x24060034, 0x24060030,
+0x8f8d008c, 0x3c0f8008, 0x35ee0080, 0x91ac0000,
+0x91c8007c, 0x8fb00024, 0xa0ac0030, 0x8f91008c,
+0x8f820020, 0x8faa0024, 0x92270001, 0x32120003,
+0x240b0004, 0xa0470031, 0x1721823, 0x8f84008c,
+0x8f8b0020, 0x241fc000, 0x94980012, 0x95790032,
+0x30690003, 0x330f3fff, 0x33f7024, 0x1cf6825,
+0xa56d0032, 0x91650032, 0xca3021, 0xc93021,
+0x30b0003f, 0x360c0040, 0xa16c0032, 0x8fb20024,
+0x31070004, 0x12400002, 0x8f850020, 0xc73021,
+0x3c048008, 0xaca60034, 0x34880100, 0x8d1900c0,
+0x8fbf0024, 0x240dffbf, 0xacb90038, 0x90af003c,
+0x2ff80001, 0x2412ffdf, 0x31ee007f, 0xa0ae003c,
+0x8f8b0020, 0x188940, 0x9170003c, 0x20d6024,
+0xa16c003c, 0x8f870020, 0x90e3003c, 0x725024,
+0x1511025, 0xa0e2003c, 0x8f88008c, 0x8f990020,
+0x8d090020, 0xaf290040, 0x8d060024, 0xaf260044,
+0x8d040028, 0xaf240048, 0x8d1f002c, 0xaf3f004c,
+0xe000eca, 0x0, 0x8fb80020, 0x24050002,
+0x5705009f, 0x8fa30020, 0x3c1f8000, 0x3c128008,
+0x8fe40100, 0x92580008, 0x8f92ff5c, 0xe000e50,
+0x3305007f, 0x8f8e0020, 0x8faf0020, 0x8fa40028,
+0xa1cf0000, 0x9659005c, 0x8f910020, 0xe000eab,
+0x3330ffff, 0x25b80, 0x20b6825, 0x3c084200,
+0x8f8b008c, 0x1a83025, 0xae260004, 0x8d700038,
+0x8f860020, 0x2821, 0x51100, 0xacd00018,
+0x8d6c0034, 0x3c047fff, 0x3488ffff, 0xaccc001c,
+0x9171003e, 0x8cca001c, 0x8cdf0018, 0x113900,
+0x111f02, 0x1477021, 0x434825, 0x1c7c02b,
+0x3e97821, 0x1f8c821, 0xacce001c, 0xacd90018,
+0xacc0000c, 0xacc00010, 0x916d003e, 0x8faa0028,
+0x24070005, 0xa4cd0014, 0x95700004, 0x2418c000,
+0x148c824, 0xa4d00016, 0x916c003e, 0x1402021,
+0xa4cc0020, 0x95650004, 0xa4c50022, 0xacc00024,
+0x9163003f, 0xa4c30002, 0x9171003d, 0x26220001,
+0xa0c20001, 0x8f890020, 0x3c028008, 0x34460100,
+0xad2a0008, 0xa1270030, 0x8f910020, 0x8f9f008c,
+0x2402ff80, 0x962f0032, 0x97ee0012, 0x30f8024,
+0x31cd3fff, 0x20d6025, 0xa62c0032, 0x92250032,
+0x2418ffbf, 0x2410ffdf, 0x30ab003f, 0x35630040,
+0xa2230032, 0x8f9f0020, 0x2403ffff, 0xafe00034,
+0x8cca00c0, 0xafea0038, 0x93e7003c, 0x30e9007f,
+0xa3e9003c, 0x8f8d0020, 0x3c098000, 0x91af003c,
+0x1f87024, 0xa1ae003c, 0x8f8b0020, 0x916c003c,
+0x1902824, 0xa165003c, 0x8f870020, 0xace30040,
+0x8fb10024, 0x3c038008, 0xacf10044, 0x90ea0048,
+0x1423025, 0xa0e60048, 0x8f900020, 0x8f8e008c,
+0x8e1f0048, 0x3e9c024, 0x3197825, 0xae0f0048,
+0x91cd003e, 0xa20d004c, 0x8f8c008c, 0x8f8b0020,
+0x95850004, 0xa565004e, 0xe00030c, 0x8c650060,
+0x924a007c, 0x402821, 0x8fa60028, 0x21140,
+0x58900, 0x513821, 0x31490002, 0x11200003,
+0xc71821, 0x52080, 0x641821, 0x3c028008,
+0x344a0080, 0x9147007c, 0x30e90004, 0x11200003,
+0x8fb90028, 0x56080, 0x6c1821, 0x240b0004,
+0x8f910020, 0x33300003, 0x1704023, 0x310d0003,
+0x6d3021, 0xae260034, 0x3c038008, 0xa6650038,
+0x3c058000, 0x8ca40100, 0x90730008, 0xe000e95,
+0x3265007f, 0xe000eca, 0x0, 0x8fa30020,
+0x3782b, 0xf8023, 0x290a024, 0x608021,
+0x608821, 0xa00104f, 0x10802b, 0x8f91001c,
+0x8cd80038, 0x24190003, 0xa6200008, 0xae380000,
+0x8ccf0034, 0xa220000a, 0x8f8e008c, 0xae2f0004,
+0x3c050080, 0x91cb003f, 0xa239000c, 0x8e28000c,
+0x3c0dff9f, 0xa22b000b, 0x1051025, 0x35a3ffff,
+0x3c13ffef, 0x8f8e008c, 0x433824, 0x366affff,
+0xea4824, 0xae29000c, 0x8dc40014, 0x95d80012,
+0x8f860088, 0xae240010, 0x8dcc0014, 0xae200018,
+0xae200020, 0xae2c0014, 0xae200024, 0x8ddf0018,
+0x330c3fff, 0xc9180, 0xae3f0028, 0x8dcf0008,
+0x246c821, 0x330b0001, 0xae2f0030, 0x8dc3000c,
+0x8f930020, 0x1941c2, 0xb2b80, 0x1056821,
+0x24020002, 0x3c0a8008, 0xa62d001c, 0xa6200034,
+0xae23002c, 0x35470080, 0xa2620000, 0x94e9005c,
+0x8f990020, 0x3c044200, 0x313fffff, 0x3e43025,
+0xaf260004, 0x8f98008c, 0x240e0001, 0x2402c000,
+0x8f120038, 0x24060034, 0xaf320018, 0x8f0f0034,
+0x3c128008, 0x36580080, 0xaf2f001c, 0xaf20000c,
+0xaf200010, 0xa7200014, 0xa7200016, 0xa7200020,
+0xa7200022, 0xaf200024, 0xa7300002, 0xa32e0001,
+0x8f8d0020, 0x8f8b008c, 0xadb00008, 0x91680000,
+0xa1a80030, 0x8f91008c, 0x8f830020, 0x92250001,
+0xa0650031, 0x8f9f0020, 0x97f30032, 0x2625024,
+0x14c3825, 0xa7e70032, 0x93e90032, 0x3124003f,
+0xa3e40032, 0x930f007c, 0x31ee0002, 0x15c00002,
+0x8f840020, 0x24060030, 0x3c0e8008, 0xac860034,
+0x35d10100, 0x8e3900c0, 0x2403ffbf, 0x2008821,
+0xac990038, 0x908b003c, 0x10802b, 0x3165007f,
+0xa085003c, 0x8f8d0020, 0x91a8003c, 0x1031024,
+0xa1a2003c, 0x8f870020, 0x90f3003c, 0x366a0020,
+0xa0ea003c, 0x8f9f008c, 0x8f920020, 0x8fe90020,
+0xae490040, 0x8fe40024, 0xae440044, 0x8fec0028,
+0xae4c0048, 0x8fe6002c, 0xe000eca, 0xae46004c,
+0xa00104f, 0x0, 0xa0010c0, 0x8ce20040,
+0x24480001, 0xa0880001, 0x8f850020, 0x8fa40024,
+0xaca40008, 0xa00122f, 0x3c118008, 0x94cb0052,
+0x3c080800, 0x8d080024, 0x10b1021, 0xa4c20052,
+0xa000ffb, 0x8fb30010, 0x27bdffe0, 0x3c0d8008,
+0xafb20018, 0xafb00010, 0xafbf001c, 0xafb10014,
+0x35b20080, 0x8e4c0018, 0x35a80100, 0x964b0006,
+0x95a70050, 0x910900ec, 0xc5602, 0x1672823,
+0x3143007f, 0x312600ff, 0x24020003, 0xa3830090,
+0xaf840088, 0x10c2001b, 0x30b0ffff, 0x910600ec,
+0x24120005, 0x30c200ff, 0x10520033, 0x0,
+0x16000009, 0x8fbf001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x240d0c00, 0x3c0c8000, 0x27bd0020,
+0x3e00008, 0xad8d0024, 0xe000fde, 0x2002021,
+0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x240d0c00, 0x3c0c8000, 0x27bd0020, 0x3e00008,
+0xad8d0024, 0x96580078, 0x9651007a, 0x924e007d,
+0x2387826, 0x31e8ffff, 0x31c400c0, 0x14800009,
+0x2d110001, 0x16000037, 0x0, 0x5620ffe2,
+0x8fbf001c, 0xe000edf, 0x0, 0xa0013d3,
+0x8fbf001c, 0x1620ffda, 0x0, 0xe000edf,
+0x0, 0x1440ffd8, 0x8fbf001c, 0x16000022,
+0x0, 0x925f007d, 0x33e2003f, 0xa242007d,
+0xa0013d3, 0x8fbf001c, 0x950900da, 0x8f860064,
+0x802821, 0x24040005, 0xe000682, 0x3130ffff,
+0x97830076, 0x3c048000, 0x2465ffff, 0xa7850076,
+0x8c8a01b8, 0x540fffe, 0x0, 0xac800180,
+0x8fbf001c, 0xac900184, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x3c076013, 0x3c0b1000, 0x240d0c00,
+0x3c0c8000, 0x27bd0020, 0xac870188, 0xac8b01b8,
+0x3e00008, 0xad8d0024, 0xe000fde, 0x2002021,
+0x5040ffb1, 0x8fbf001c, 0x925f007d, 0xa001400,
+0x33e2003f, 0xe000fde, 0x2002021, 0x1440ffaa,
+0x8fbf001c, 0x12200007, 0x0, 0x9259007d,
+0x3330003f, 0x36020040, 0xa242007d, 0xa0013d3,
+0x8fbf001c, 0xe000edf, 0x0, 0x5040ff9e,
+0x8fbf001c, 0x9259007d, 0x3330003f, 0xa00142f,
+0x36020040, 0x411c0, 0x3e00008, 0x24420240,
+0x3c050006, 0x851025, 0x3c038000, 0xac620030,
+0x0, 0x0, 0x0, 0x3c058000,
+0x8ca70000, 0x30e60010, 0x10c0fffd, 0x0,
+0x8cab003c, 0x8caa003c, 0x1644821, 0x12a402b,
+0x11000004, 0x3c068000, 0x8cad0038, 0x25ac0001,
+0xacac0038, 0x8ccf003c, 0x1e47021, 0x3e00008,
+0xacce003c, 0x27bdffd0, 0xafb20018, 0xafb00010,
+0xafbf0028, 0xafb50024, 0xafb40020, 0xafb3001c,
+0xafb10014, 0xa09021, 0x14a00012, 0x808021,
+0x8f820024, 0x21880, 0x14600037, 0x24040010,
+0xe00143d, 0x0, 0x8fbf0028, 0x8fb50024,
+0x8fb40020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
+0x8fb00010, 0x1021, 0x27bd0030, 0x3e00008,
+0xaf800024, 0x10a0001e, 0x8821, 0x3c138000,
+0x24140020, 0xa00147c, 0x3c150005, 0x26310004,
+0x232502b, 0x11400017, 0x2401021, 0x8f880024,
+0x8e070000, 0x24040080, 0x84880, 0x1331821,
+0x25060001, 0xac670400, 0x26100004, 0x14d4fff3,
+0xaf860024, 0xe00143d, 0x0, 0xae750030,
+0x0, 0x0, 0x0, 0x0,
+0x26310004, 0x232502b, 0x1540ffec, 0xaf800024,
+0x2401021, 0x8fbf0028, 0x8fb50024, 0x8fb40020,
+0x8fb3001c, 0x8fb20018, 0x8fb10014, 0x8fb00010,
+0x3e00008, 0x27bd0030, 0x32023, 0x3085000f,
+0xa001465, 0x652021, 0x27bdffd8, 0x3c038000,
+0xa03821, 0xac670038, 0xafb10014, 0xac66003c,
+0x808821, 0x3c060022, 0xac660030, 0xafb00010,
+0xac710028, 0x3c10800c, 0x3c04800c, 0x24050070,
+0xafbf0024, 0xafb40020, 0xafb3001c, 0xe001456,
+0xafb20018, 0x26040080, 0xe001456, 0x24050080,
+0x26040100, 0xe001456, 0x240500f0, 0x3c020800,
+0x8c420064, 0x10400013, 0x8021, 0x3c148000,
+0x2413ff80, 0x3c12800c, 0xe00143a, 0x2002021,
+0x514821, 0x312a007f, 0x1334024, 0x1522021,
+0x24050050, 0xae880028, 0xe001456, 0x26100001,
+0x3c050800, 0x8ca50064, 0x205202b, 0x1480fff2,
+0x0, 0x3c060800, 0x8cc60060, 0x10c00015,
+0x8021, 0x3c148000, 0x2413ff80, 0x3c12800c,
+0x3c190800, 0x8f390058, 0x10c180, 0x24050040,
+0x3317821, 0x1f86821, 0x31ae007f, 0x1b36024,
+0x1d22021, 0xae8c0028, 0xe001456, 0x26100001,
+0x3c060800, 0x8cc60060, 0x206582b, 0x1560fff0,
+0x0, 0x3c100800, 0x8e10005c, 0x2414ff80,
+0x3c1f800c, 0x2119821, 0x2749024, 0x3262007f,
+0x3c118000, 0x5f2021, 0xae320028, 0xe001456,
+0x62840, 0x8fbf0024, 0x8fb40020, 0x8fb3001c,
+0x8fb20018, 0x8fb10014, 0x8fb00010, 0x2021,
+0x2821, 0xa001456, 0x27bd0028, 0x8f83003c,
+0x8c620004, 0x10400003, 0x0, 0x3e00008,
+0x0, 0x8c640010, 0x8c650008, 0xa00149f,
+0x8c66000c, 0x0 };
+u32 bce_CP_b09FwData[(0x84/4) + 1] = {
+0x0,
+0x1b, 0xf, 0xa, 0x8,
+0x6, 0x5, 0x5, 0x4,
+0x4, 0x3, 0x3, 0x3,
+0x3, 0x3, 0x2, 0x2,
+0x2, 0x2, 0x2, 0x2,
+0x2, 0x2, 0x2, 0x2,
+0x2, 0x2, 0x2, 0x2,
+0x2, 0x1, 0x1, 0x1,
+0x0 };
+u32 bce_CP_b09FwRodata[(0x16c/4) + 1] = {
+0x80080100,
+0x80080080, 0x80080000, 0x8001800, 0x8001800,
+0x8001838, 0x8001838, 0x800184c, 0x800181c,
+0x8001a74, 0x8001a40, 0x8001acc, 0x8001acc,
+0x8001b54, 0x8001a84, 0x80080240, 0x80021c4,
+0x8002010, 0x80021ec, 0x8002284, 0x80023d4,
+0x8002420, 0x8002544, 0x800244c, 0x80024d0,
+0x8002080, 0x80029f8, 0x800299c, 0x800202c,
+0x800202c, 0x800202c, 0x80025b8, 0x80025b8,
+0x800202c, 0x800202c, 0x8002874, 0x800202c,
+0x800202c, 0x800202c, 0x800202c, 0x80028d4,
+0x800202c, 0x800202c, 0x800202c, 0x800202c,
+0x800202c, 0x800202c, 0x800202c, 0x800202c,
+0x800202c, 0x800202c, 0x800202c, 0x800202c,
+0x800202c, 0x800202c, 0x8002440, 0x800202c,
+0x800202c, 0x8002944, 0x800202c, 0x800202c,
+0x800202c, 0x800202c, 0x800202c, 0x800202c,
+0x800202c, 0x800202c, 0x800202c, 0x800202c,
+0x800202c, 0x800202c, 0x800202c, 0x800202c,
+0x800202c, 0x800202c, 0x800202c, 0x8002798,
+0x800202c, 0x800202c, 0x8002700, 0x800265c,
+0x80037c0, 0x8003794, 0x8003760, 0x8003734,
+0x8003714, 0x80036c8, 0x80080100, 0x80080080,
+0x80080000, 0x80080080, 0x0 };
+u32 bce_CP_b09FwBss[(0x19c/4) + 1] = { 0x0 };
+u32 bce_CP_b09FwSbss[(0x91/4) + 1] = { 0x0 };
+u32 bce_CP_b09FwSdata[(0x0/4) + 1] = { 0x0 };
+
+
+u32 bce_xi_rv2p_proc1[] = {
+ 0x00000010, 0xb1800002,
+ 0x0000001f, 0x05030100,
+ 0x00000008, 0xac000001,
+ 0x00000000, 0x05000000,
+ 0x0000000c, 0x2f800001,
+ 0x00000000, 0x2b000000,
+ 0x00000000, 0x2b800000,
+ 0x00000010, 0x203f006c,
+ 0x00000010, 0x213f0003,
+ 0x00000010, 0x20bf003b,
+ 0x00000018, 0x8000fffd,
+ 0x00000010, 0xb1b8b015,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x03d80000,
+ 0x00000000, 0x2c380000,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000007c,
+ 0x00000008, 0x2d80011c,
+ 0x00000008, 0x02000001,
+ 0x00000010, 0x91de0000,
+ 0x0000000f, 0x42e0001c,
+ 0x00000010, 0x91840a17,
+ 0x00000010, 0x08660016,
+ 0x0000000c, 0x29800002,
+ 0x0000000c, 0x1f800002,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a00000f,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ffe8,
+ 0x00000008, 0x02000001,
+ 0x0000000f, 0x42e0001c,
+ 0x00000010, 0x91840a19,
+ 0x00000008, 0x2c800006,
+ 0x00000008, 0x2d000006,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800106,
+ 0x00000018, 0x80000070,
+ 0x00000010, 0x08660013,
+ 0x00000018, 0x8000fff1,
+ 0x00000008, 0xb1000001,
+ 0x00000008, 0x2c80010c,
+ 0x00000008, 0x2d000008,
+ 0x00000008, 0x2d800001,
+ 0x00000018, 0x80000069,
+ 0x0000000b, 0x2fdf0002,
+ 0x0000000c, 0x1f800002,
+ 0x00000000, 0x2c070000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffd3,
+ 0x0000000b, 0x2fdf0002,
+ 0x0000000c, 0x1f800000,
+ 0x00000000, 0x2c070000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffcd,
+ 0x0000000c, 0x1f800002,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffca,
+ 0x0000000c, 0x29800002,
+ 0x0000000c, 0x1f800002,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a000005,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ffc4,
+ 0x00000008, 0x02240045,
+ 0x00000018, 0x00040000,
+ 0x00000018, 0x8000001c,
+ 0x00000018, 0x8000001e,
+ 0x00000018, 0x80000052,
+ 0x00000018, 0x8000009e,
+ 0x00000018, 0x8000009d,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x800000e4,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000015,
+ 0x00000018, 0x8000001b,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x800000b4,
+ 0x00000018, 0x8000002e,
+ 0x00000018, 0x800000e4,
+ 0x00000018, 0x8000010f,
+ 0x00000018, 0x800000da,
+ 0x00000018, 0x80000133,
+ 0x00000018, 0x8000003b,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000071,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffa3,
+ 0x00000010, 0x91d40000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a000002,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ff9d,
+ 0x00000010, 0x91d40000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x29420000,
+ 0x00000008, 0x2a000002,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ff96,
+ 0x00000018, 0x8000ff95,
+ 0x00000010, 0xb1bcb00a,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x03d80000,
+ 0x00000000, 0x2c3c0000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x80000016,
+ 0x00000018, 0x800000ac,
+ 0x00000010, 0x2c6201ba,
+ 0x00000018, 0x80000005,
+ 0x00000008, 0x2c80010d,
+ 0x00000008, 0x2d000009,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800107,
+ 0x0000000c, 0x29800000,
+ 0x0000000c, 0x1f800000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a000006,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ff80,
+ 0x00000010, 0x91d40000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a00000b,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ff7a,
+ 0x00000018, 0x00020000,
+ 0x00000000, 0x06820000,
+ 0x00000010, 0xb18a0006,
+ 0x00000000, 0x860c1400,
+ 0x00000010, 0xb18c0004,
+ 0x00000000, 0x05000000,
+ 0x00000008, 0x2a000001,
+ 0x00000010, 0x91d40000,
+ 0x00000018, 0x000d0000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x000a0000,
+ 0x00000010, 0xb1a0b013,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c200000,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000ffee,
+ 0x00000008, 0x2d80011c,
+ 0x00000010, 0x001f0000,
+ 0x00000010, 0x91de0000,
+ 0x0000000f, 0x47600008,
+ 0x0000000f, 0x060e0001,
+ 0x00000000, 0x0f580000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0d610000,
+ 0x00000018, 0x80000013,
+ 0x0000000f, 0x47600008,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d80011c,
+ 0x0000000f, 0x060e0001,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x0f580000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0d610000,
+ 0x00000000, 0x02620000,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x31040000,
+ 0x00000000, 0x309a0000,
+ 0x00000000, 0x0c961800,
+ 0x00000009, 0x0c99ffff,
+ 0x00000004, 0xcc993400,
+ 0x00000010, 0xb1963202,
+ 0x00000008, 0x0f800000,
+ 0x0000000c, 0x29800001,
+ 0x00000010, 0x00220002,
+ 0x0000000c, 0x29520001,
+ 0x0000000c, 0x29520000,
+ 0x00000008, 0x0200000e,
+ 0x00000008, 0x0280001a,
+ 0x00000010, 0xb1c40a02,
+ 0x00000008, 0x02000003,
+ 0x00000008, 0x22000001,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x2adf0000,
+ 0x00000000, 0x2a000800,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ff36,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2a000001,
+ 0x00000000, 0x2c200000,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d80011c,
+ 0x00000010, 0x91d40000,
+ 0x00000010, 0x91de0000,
+ 0x00000008, 0x2c800006,
+ 0x00000008, 0x2d000006,
+ 0x00000000, 0x30800000,
+ 0x00000000, 0x31000000,
+ 0x00000008, 0x2d800006,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a000010,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ff21,
+ 0x00000010, 0x91a0b009,
+ 0x00000008, 0x2c80010d,
+ 0x00000008, 0x2d000009,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800107,
+ 0x00000018, 0x8000ffab,
+ 0x00000018, 0x80000010,
+ 0x00000008, 0xac000001,
+ 0x00000018, 0x8000000b,
+ 0x00000000, 0x0380b000,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c004000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000ff9a,
+ 0x00000018, 0x80000030,
+ 0x00000018, 0x80000006,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c000e00,
+ 0x00000008, 0x2a000007,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ff0b,
+ 0x00000000, 0x06820000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x0ce70007,
+ 0x00000009, 0x0562ffff,
+ 0x00000010, 0xba6c1405,
+ 0x00000000, 0x2adf0000,
+ 0x00000000, 0x21000000,
+ 0x00000008, 0x2a000005,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2c80010c,
+ 0x00000008, 0x2d000008,
+ 0x0000000c, 0x31620018,
+ 0x00000008, 0x2d800001,
+ 0x00000018, 0x8000ff8c,
+ 0x00000018, 0x000d0000,
+ 0x00000010, 0xb1a0b00e,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x03d80000,
+ 0x00000000, 0x2c200000,
+ 0x00000010, 0x91d40000,
+ 0x00000018, 0x80000014,
+ 0x00000010, 0x2c620002,
+ 0x00000018, 0x8000000b,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c070000,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000feed,
+ 0x00000008, 0x2c80010d,
+ 0x00000008, 0x2d000009,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800107,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a00000a,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000fee2,
+ 0x00000000, 0x05020000,
+ 0x00000008, 0x2c80010c,
+ 0x00000008, 0x2d000008,
+ 0x00000008, 0x2d800134,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x205f0000,
+ 0x00000008, 0x2c800140,
+ 0x00000008, 0x2d00003c,
+ 0x00000008, 0x2d80011c,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x205f0000,
+ 0x00000008, 0x2c800080,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d800108,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x000a0000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x0600aaaa,
+ 0x00000018, 0x8000ff56,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a000009,
+ 0x00000008, 0x0500aaaa,
+ 0x00000018, 0x8000fec9,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000ff4e,
+ 0x00000010, 0x91a03c02,
+ 0x00000010, 0xb1e66207,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c310000,
+ 0x00000009, 0x2cb1007f,
+ 0x00000008, 0x2cd90000,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d80010d,
+ 0x00000010, 0xb1a80006,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c200000,
+ 0x00000000, 0x2ca70000,
+ 0x00000008, 0x2d000010,
+ 0x00000008, 0x2d800108,
+ 0x00000018, 0x8000ff47,
+ 0x00000010, 0xb1a60010,
+ 0x00000010, 0x001f0000,
+ 0x0000000f, 0x0f300007,
+ 0x00000000, 0x0a600000,
+ 0x00000000, 0x0ae10000,
+ 0x0000000f, 0x4b620008,
+ 0x00000009, 0x0b1600ff,
+ 0x00000000, 0x0d620000,
+ 0x00000009, 0x0d1a00ff,
+ 0x00000010, 0x07300003,
+ 0x0000000c, 0x0d1a0008,
+ 0x0000000c, 0x0b160008,
+ 0x0000000f, 0x4ce30018,
+ 0x00000000, 0x0c992c00,
+ 0x00000004, 0xcc993400,
+ 0x00000008, 0x0f800000,
+ 0x0000000c, 0x29800001,
+ 0x00000000, 0x33310000,
+ 0x00000008, 0x22000016,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a00000c,
+ 0x00000010, 0x009f0000,
+ 0x00000000, 0x0f200000,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000fe9d,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x0600aaaa,
+ 0x00000018, 0x8000ff22,
+ 0x0000000f, 0x47220008,
+ 0x00000009, 0x070e000f,
+ 0x00000008, 0x070e0008,
+ 0x00000008, 0x02800001,
+ 0x00000007, 0x02851c00,
+ 0x00000008, 0x82850001,
+ 0x00000000, 0x02854c00,
+ 0x00000007, 0x42851c00,
+ 0x00000003, 0xc3aa5200,
+ 0x00000000, 0x03b10e00,
+ 0x00000007, 0x4b071c00,
+ 0x0000000f, 0x0f300007,
+ 0x0000000f, 0x0a960003,
+ 0x00000000, 0x0a955c00,
+ 0x00000000, 0x4a005a00,
+ 0x00000000, 0x0c960a00,
+ 0x00000009, 0x0c99ffff,
+ 0x00000008, 0x0d00ffff,
+ 0x00000010, 0xb1963202,
+ 0x00000008, 0x0f800005,
+ 0x00000010, 0xb1a80008,
+ 0x00000010, 0x205f0000,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c200000,
+ 0x00000000, 0x2ca70000,
+ 0x00000008, 0x2d000010,
+ 0x00000008, 0x2d800108,
+ 0x00000018, 0x8000ff0e,
+ 0x0000000c, 0x29800001,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a00000d,
+ 0x00000008, 0x0500aaaa,
+ 0x00000018, 0x8000fe77,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000fefc,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a000007,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000fe6f,
+ 0x00000008, 0x03050004,
+ 0x00000006, 0x83040c00,
+ 0x00000008, 0x02850200,
+ 0x00000000, 0x86050c00,
+ 0x00000001, 0x860c0e00,
+ 0x00000008, 0x02040004,
+ 0x00000000, 0x02041800,
+ 0x00000000, 0x83871800,
+ 0x00000018, 0x00020000,
+};
+
+
+u32 bce_xi_rv2p_proc2[] = {
+ 0x00000010, 0xb1800004,
+ 0x0000001f, 0x05030100,
+ 0x00000008, 0x050000ff,
+ 0x00000018, 0x00020000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0xb1d40000,
+ 0x0000000c, 0x29800001,
+ 0x00000008, 0x02540009,
+ 0x00000009, 0x2952003f,
+ 0x00000018, 0x00040000,
+ 0x00000018, 0x80000010,
+ 0x00000018, 0x80000011,
+ 0x00000018, 0x8000003a,
+ 0x00000018, 0x8000010f,
+ 0x00000018, 0x8000010e,
+ 0x00000018, 0x8000010d,
+ 0x00000018, 0x8000010d,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x8000011f,
+ 0x00000018, 0x80000109,
+ 0x00000018, 0x8000000c,
+ 0x00000018, 0x80000123,
+ 0x00000018, 0x80000175,
+ 0x00000018, 0x80000067,
+ 0x00000018, 0x800000da,
+ 0x00000018, 0x800000e8,
+ 0x00000000, 0x2a000000,
+ 0x00000018, 0x8000ffea,
+ 0x00000000, 0x2a000000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000ffe6,
+ 0x00000000, 0x2a000000,
+ 0x00000018, 0x8000ffe4,
+ 0x00000018, 0x00020000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91963421,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c1e0000,
+ 0x00000008, 0x2c800006,
+ 0x00000008, 0x2d000006,
+ 0x00000008, 0x2d800102,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0d610000,
+ 0x00000018, 0x000a0000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91963416,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x09d80000,
+ 0x00000000, 0x2c1e0000,
+ 0x00000008, 0x2c80010e,
+ 0x00000008, 0x2d00000a,
+ 0x00000008, 0x2d800102,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0d620000,
+ 0x00000000, 0x2c130000,
+ 0x00000018, 0x000a0000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91963409,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c1e0000,
+ 0x00000008, 0x2c800006,
+ 0x00000008, 0x2d00006a,
+ 0x00000008, 0x2d800102,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0d7a0000,
+ 0x00000018, 0x000a0000,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x2f80aa00,
+ 0x00000000, 0x2a000000,
+ 0x00000000, 0x0d610000,
+ 0x00000000, 0x03620000,
+ 0x00000000, 0x2c400000,
+ 0x00000000, 0x02638c00,
+ 0x00000000, 0x26460000,
+ 0x00000008, 0x02040012,
+ 0x00000010, 0xb9060827,
+ 0x00000000, 0x0f580000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0c000000,
+ 0x00000000, 0x0b800000,
+ 0x00000008, 0x0cc60012,
+ 0x00000018, 0x8000ffcb,
+ 0x00000008, 0x0f800003,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x009f0000,
+ 0x00000008, 0x27110012,
+ 0x00000000, 0x66900000,
+ 0x00000008, 0xa31b0012,
+ 0x00000010, 0xb1980003,
+ 0x00000010, 0x001f0000,
+ 0x00000008, 0x0f800004,
+ 0x00000008, 0x22000003,
+ 0x00000008, 0x2c80000c,
+ 0x00000008, 0x2d00000c,
+ 0x00000010, 0x009f0000,
+ 0x00000000, 0x25960000,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x06660000,
+ 0x00000000, 0x86611800,
+ 0x00000009, 0x0260000f,
+ 0x0000000f, 0x02040002,
+ 0x00000010, 0xb60c0803,
+ 0x0000000c, 0x1fbf0000,
+ 0x0000000c, 0x33660010,
+ 0x00000000, 0x32140000,
+ 0x00000000, 0x32950000,
+ 0x00000005, 0x73662c00,
+ 0x00000000, 0x31e32e00,
+ 0x00000008, 0x2d800010,
+ 0x00000010, 0x20530000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x8000ff8f,
+ 0x00000000, 0x23000000,
+ 0x00000009, 0x25e6ffff,
+ 0x00000008, 0x2200000b,
+ 0x0000000c, 0x69520000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000ff88,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x2f80aa00,
+ 0x00000000, 0x2a000000,
+ 0x00000000, 0x2c400000,
+ 0x00000008, 0x2c800040,
+ 0x00000008, 0x2d000020,
+ 0x00000008, 0x2d80011c,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x0000000f, 0x42ea0010,
+ 0x00000010, 0x004f0004,
+ 0x00000010, 0xb7469200,
+ 0x00000008, 0x02490012,
+ 0x00000010, 0xb5840a00,
+ 0x00000000, 0x0d610000,
+ 0x00000010, 0xba66345a,
+ 0x00000000, 0x03620000,
+ 0x00000010, 0xb8630c58,
+ 0x00000008, 0x83050012,
+ 0x00000010, 0x004f0002,
+ 0x00000000, 0x03490000,
+ 0x00000001, 0x83068c00,
+ 0x00000000, 0x83c60c00,
+ 0x00000010, 0xb1870010,
+ 0x00000000, 0x0b6e0000,
+ 0x00000018, 0x8000ff6a,
+ 0x00000001, 0x06691400,
+ 0x00000010, 0x918c0002,
+ 0x00000008, 0xb4e90001,
+ 0x00000010, 0xb1e92c4c,
+ 0x00000000, 0x86692c00,
+ 0x00000000, 0x02000000,
+ 0x00000009, 0x02eaffff,
+ 0x00000010, 0x000c0002,
+ 0x00000000, 0x02040a00,
+ 0x0000000f, 0x460c0001,
+ 0x0000000f, 0x02850001,
+ 0x00000010, 0x918c01fc,
+ 0x00000010, 0xb7040e43,
+ 0x00000000, 0x2c400000,
+ 0x00000000, 0x0f400000,
+ 0x00000000, 0x0d610000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0c000000,
+ 0x00000000, 0x0b800000,
+ 0x00000008, 0x0c860012,
+ 0x00000008, 0x0f800003,
+ 0x0000000c, 0x29520000,
+ 0x00000010, 0x009f0000,
+ 0x00000008, 0x27110012,
+ 0x00000000, 0x66900000,
+ 0x00000000, 0x26460000,
+ 0x00000000, 0x23060000,
+ 0x00000010, 0xb1980005,
+ 0x00000010, 0x001f0000,
+ 0x00000008, 0x0f800004,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x32140000,
+ 0x00000000, 0x32950000,
+ 0x00000000, 0x31e32e00,
+ 0x00000005, 0x73662c00,
+ 0x00000000, 0x25960000,
+ 0x00000010, 0xb1870016,
+ 0x0000000c, 0x29800000,
+ 0x0000000f, 0x0f6b0007,
+ 0x00000000, 0x0d690000,
+ 0x00000000, 0x0a6c0000,
+ 0x00000000, 0x0aed0000,
+ 0x00000000, 0x0b6e0000,
+ 0x00000000, 0x0b800000,
+ 0x00000000, 0x0c870000,
+ 0x00000008, 0x0f800003,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x69520001,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x22c58c00,
+ 0x00000000, 0x231b0000,
+ 0x00000000, 0x27110000,
+ 0x00000000, 0x26900000,
+ 0x00000010, 0xb8170e03,
+ 0x0000000c, 0x29800000,
+ 0x00000018, 0x8000fff6,
+ 0x00000010, 0xb1980002,
+ 0x00000008, 0x0f800004,
+ 0x00000008, 0x2200001a,
+ 0x00000008, 0x2c80000c,
+ 0x00000008, 0x2d00000c,
+ 0x00000008, 0x2d800010,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x0d6e0000,
+ 0x00000003, 0xe7cf3400,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0xb1870007,
+ 0x00000000, 0x36140000,
+ 0x00000000, 0x36950000,
+ 0x00000000, 0x37160000,
+ 0x00000008, 0x2c800050,
+ 0x00000008, 0x2d000030,
+ 0x00000008, 0x2d80000c,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000ff1e,
+ 0x00000000, 0x26460000,
+ 0x00000000, 0x23000000,
+ 0x00000009, 0x25e6ffff,
+ 0x00000000, 0x0b6e0000,
+ 0x00000003, 0xe7cf2c00,
+ 0x00000008, 0x2200001b,
+ 0x0000000c, 0x69520000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000ff14,
+ 0x00000000, 0x2fd50000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0x003f000c,
+ 0x00000000, 0x06660000,
+ 0x00000000, 0x86611800,
+ 0x00000009, 0x026000f0,
+ 0x00000010, 0xb70c0808,
+ 0x00000000, 0x2c400000,
+ 0x0000000c, 0x73660010,
+ 0x00000008, 0x2c800018,
+ 0x00000008, 0x2d000018,
+ 0x00000008, 0x2d800002,
+ 0x0000000c, 0x5fbf0000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x8000ff05,
+ 0x00000000, 0x2fd50000,
+ 0x00000000, 0x2a000000,
+ 0x00000000, 0x2c400000,
+ 0x0000000c, 0x73660010,
+ 0x00000008, 0x2c800018,
+ 0x00000008, 0x2d000018,
+ 0x00000008, 0x2d800002,
+ 0x0000000c, 0x5fbf0000,
+ 0x00000010, 0x91de0000,
+ 0x00000008, 0x2c800003,
+ 0x00000008, 0x2d000003,
+ 0x00000009, 0x3060fff0,
+ 0x00000008, 0x2d800001,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x91de0000,
+ 0x00000008, 0x2c80001a,
+ 0x00000008, 0x2d00001a,
+ 0x00000000, 0x33000000,
+ 0x00000008, 0x2d800002,
+ 0x00000000, 0x31800000,
+ 0x00000010, 0x91de0000,
+ 0x00000008, 0x2c80000c,
+ 0x00000008, 0x2d00000c,
+ 0x00000008, 0x2d800004,
+ 0x00000010, 0x20530000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x8000feea,
+ 0x00000018, 0x8000fee9,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x0f008000,
+ 0x00000008, 0x0f800007,
+ 0x00000018, 0x80000014,
+ 0x00000000, 0x05020000,
+ 0x00000008, 0x22000009,
+ 0x00000000, 0x286d0000,
+ 0x00000000, 0x29000000,
+ 0x0000000f, 0x65680010,
+ 0x00000003, 0xf66c9400,
+ 0x00000010, 0xb972a004,
+ 0x0000000c, 0x73e70019,
+ 0x0000000c, 0x21420004,
+ 0x00000000, 0x3bf60000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000008, 0x22000008,
+ 0x0000000c, 0x61420004,
+ 0x00000018, 0x000a0000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0x001f0000,
+ 0x0000000f, 0x0f470007,
+ 0x00000008, 0x0f800008,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000fece,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2fd50000,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x33510000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0xb1c60023,
+ 0x0000000f, 0x0f500007,
+ 0x00000000, 0x0a600000,
+ 0x00000000, 0x0ae10000,
+ 0x0000000f, 0x4b620008,
+ 0x00000009, 0x0b1600ff,
+ 0x0000000f, 0x4c620010,
+ 0x00000000, 0x0d620000,
+ 0x00000009, 0x0d1a00ff,
+ 0x00000010, 0x07500003,
+ 0x0000000c, 0x0d1a0008,
+ 0x0000000c, 0x0b160008,
+ 0x00000000, 0x0cc60000,
+ 0x00000000, 0x0b800000,
+ 0x00000000, 0x06980000,
+ 0x00000008, 0x0f800003,
+ 0x00000010, 0x06c20004,
+ 0x0000000c, 0x29000002,
+ 0x00000010, 0x26420002,
+ 0x0000000c, 0x29520003,
+ 0x00000008, 0x22000001,
+ 0x00000010, 0x009f0000,
+ 0x00000000, 0x231b0000,
+ 0x00000000, 0x27111a00,
+ 0x00000000, 0x66900000,
+ 0x0000000c, 0x29520000,
+ 0x00000010, 0xb1973209,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x06980000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520003,
+ 0x00000000, 0x22c58c00,
+ 0x00000010, 0x001f0000,
+ 0x00000008, 0x0f800003,
+ 0x00000018, 0x8000fff3,
+ 0x00000010, 0xb1c80013,
+ 0x00000010, 0xb1c60003,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520000,
+ 0x0000000c, 0x29520003,
+ 0x00000010, 0x06c20002,
+ 0x0000000c, 0x29520002,
+ 0x00000000, 0x22c58c00,
+ 0x00000000, 0x27650000,
+ 0x00000000, 0x26e40000,
+ 0x00000008, 0x22000016,
+ 0x00000010, 0xb1c60003,
+ 0x00000000, 0x23480000,
+ 0x00000010, 0xb1800005,
+ 0x00000000, 0x23480000,
+ 0x0000000c, 0x29800000,
+ 0x0000000f, 0x0f500007,
+ 0x00000018, 0x80000012,
+ 0x00000008, 0x22000016,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x30140000,
+ 0x00000000, 0x30950000,
+ 0x00000010, 0x07500003,
+ 0x00000009, 0x0b1600ff,
+ 0x00000009, 0x0d1a00ff,
+ 0x0000000f, 0x31160008,
+ 0x00000000, 0x31623400,
+ 0x00000003, 0xf1623000,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c510000,
+ 0x00000009, 0x2cd1007f,
+ 0x00000008, 0x2cd90000,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d80000c,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0x05c20003,
+ 0x00000000, 0x33000000,
+ 0x00000008, 0x0f800007,
+ 0x00000010, 0x20530000,
+ 0x00000010, 0x009f0000,
+ 0x00000018, 0x8000fe7b,
+ 0x00000000, 0x2fd50000,
+ 0x00000000, 0x2a000000,
+ 0x0000000f, 0x0f500007,
+ 0x00000010, 0xb1c6002d,
+ 0x0000000f, 0x47420008,
+ 0x00000009, 0x070e000f,
+ 0x00000008, 0x070e0008,
+ 0x00000010, 0x001f0000,
+ 0x00000008, 0x09000001,
+ 0x00000007, 0x09121c00,
+ 0x00000003, 0xcbca9200,
+ 0x00000000, 0x0b97a200,
+ 0x00000007, 0x42171c00,
+ 0x00000000, 0x0b040000,
+ 0x0000000f, 0x0a840003,
+ 0x00000000, 0x0a959c00,
+ 0x00000000, 0x4a009a00,
+ 0x00000008, 0x82120001,
+ 0x00000001, 0x0c170800,
+ 0x00000000, 0x0c978c00,
+ 0x00000000, 0x02180000,
+ 0x00000008, 0x0d00ffff,
+ 0x00000008, 0x0f800006,
+ 0x0000000c, 0x29000000,
+ 0x00000010, 0x06c20004,
+ 0x0000000c, 0x29520002,
+ 0x00000010, 0x26420002,
+ 0x0000000c, 0x29520003,
+ 0x00000008, 0x22000001,
+ 0x00000010, 0x009f0000,
+ 0x00000010, 0xb197320c,
+ 0x00000000, 0x231b0000,
+ 0x00000000, 0x27110800,
+ 0x00000000, 0x66900000,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x02180000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520003,
+ 0x00000000, 0x22c53600,
+ 0x00000010, 0x001f0000,
+ 0x00000008, 0x0f800006,
+ 0x00000018, 0x8000fff4,
+ 0x00000000, 0x231b0000,
+ 0x00000000, 0x27110800,
+ 0x00000000, 0x66900000,
+ 0x00000010, 0xb1c8000b,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520000,
+ 0x0000000c, 0x29520003,
+ 0x00000010, 0x06c20002,
+ 0x0000000c, 0x29520002,
+ 0x00000000, 0x22c58c00,
+ 0x00000000, 0x27650000,
+ 0x00000000, 0x26e40000,
+ 0x00000000, 0x23480000,
+ 0x00000008, 0x22000017,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x001f0000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000fe3e,
+};
+
+
+u32 bce_xi90_rv2p_proc1[] = {
+ 0x00000010, 0xb1800002,
+ 0x0000001f, 0x03030100,
+ 0x00000008, 0xac000001,
+ 0x00000000, 0x05000000,
+ 0x0000000c, 0x2f800001,
+ 0x00000000, 0x2b000000,
+ 0x00000000, 0x2b800000,
+ 0x00000010, 0x203f006c,
+ 0x00000010, 0x213f0003,
+ 0x00000010, 0x20bf003b,
+ 0x00000018, 0x8000fffd,
+ 0x00000010, 0xb1b8b015,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x03d80000,
+ 0x00000000, 0x2c380000,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000008f,
+ 0x00000008, 0x2d80011c,
+ 0x00000008, 0x02000001,
+ 0x00000010, 0x91de0000,
+ 0x0000000f, 0x42e0001c,
+ 0x00000010, 0x91840a17,
+ 0x00000010, 0x08660016,
+ 0x0000000c, 0x29800002,
+ 0x0000000c, 0x1f800002,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a00000f,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ffe8,
+ 0x00000008, 0x02000001,
+ 0x0000000f, 0x42e0001c,
+ 0x00000010, 0x91840a19,
+ 0x00000008, 0x2c800006,
+ 0x00000008, 0x2d000006,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800106,
+ 0x00000018, 0x80000083,
+ 0x00000010, 0x08660013,
+ 0x00000018, 0x8000fff1,
+ 0x00000008, 0xb1000001,
+ 0x00000008, 0x2c80010c,
+ 0x00000008, 0x2d000008,
+ 0x00000008, 0x2d800001,
+ 0x00000018, 0x8000007c,
+ 0x0000000b, 0x2fdf0002,
+ 0x0000000c, 0x1f800002,
+ 0x00000000, 0x2c070000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffd3,
+ 0x0000000b, 0x2fdf0002,
+ 0x0000000c, 0x1f800000,
+ 0x00000000, 0x2c070000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffcd,
+ 0x0000000c, 0x1f800002,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffca,
+ 0x0000000c, 0x29800002,
+ 0x0000000c, 0x1f800002,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a000005,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ffc4,
+ 0x00000008, 0x02240045,
+ 0x00000018, 0x00040000,
+ 0x00000018, 0x8000001c,
+ 0x00000018, 0x8000001e,
+ 0x00000018, 0x80000065,
+ 0x00000018, 0x800000ad,
+ 0x00000018, 0x800000ac,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x800000f3,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000015,
+ 0x00000018, 0x8000001b,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x800000c3,
+ 0x00000018, 0x8000002e,
+ 0x00000018, 0x800000f3,
+ 0x00000018, 0x8000011e,
+ 0x00000018, 0x800000e9,
+ 0x00000018, 0x80000142,
+ 0x00000018, 0x8000004e,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x80000080,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ffa3,
+ 0x00000010, 0x91d40000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a000002,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ff9d,
+ 0x00000010, 0x91d40000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x29420000,
+ 0x00000008, 0x2a000002,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ff96,
+ 0x00000018, 0x8000ff95,
+ 0x00000010, 0xb1bcb00a,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x03d80000,
+ 0x00000000, 0x2c3c0000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x80000029,
+ 0x00000018, 0x800000bb,
+ 0x00000010, 0x2c6201ba,
+ 0x00000018, 0x80000005,
+ 0x00000008, 0x2c80010d,
+ 0x00000008, 0x2d000009,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800107,
+ 0x0000000c, 0x29800000,
+ 0x0000000c, 0x1f800000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a000006,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ff80,
+ 0x00000010, 0x91d40000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a00000b,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ff7a,
+ 0x00000000, 0x02020000,
+ 0x00000000, 0x029a0000,
+ 0x00000000, 0x060c2c00,
+ 0x00000004, 0xc60c3400,
+ 0x00000010, 0x001f0000,
+ 0x00000010, 0xb196180c,
+ 0x00000008, 0x06960004,
+ 0x00000009, 0x068dfffc,
+ 0x00000004, 0xcd051a00,
+ 0x00000004, 0xcc9a1800,
+ 0x00000010, 0x20d70000,
+ 0x0000000c, 0x2b560000,
+ 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x20d70000,
+ 0x00000008, 0x0f800001,
+ 0x00000010, 0xb18001f4,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6b560000,
+ 0x00000018, 0x00040000,
+ 0x00000000, 0x06820000,
+ 0x00000010, 0xb18a0006,
+ 0x00000000, 0x860c1400,
+ 0x00000010, 0xb18c0004,
+ 0x00000000, 0x05000000,
+ 0x00000008, 0x2a000001,
+ 0x00000010, 0x91d40000,
+ 0x00000018, 0x000d0000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x000a0000,
+ 0x00000010, 0xb1a0b013,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c200000,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000ffee,
+ 0x00000008, 0x2d80011c,
+ 0x00000010, 0x001f0000,
+ 0x00000010, 0x91de0000,
+ 0x0000000f, 0x47600008,
+ 0x0000000f, 0x060e0001,
+ 0x00000000, 0x0f580000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0d610000,
+ 0x00000018, 0x80000013,
+ 0x0000000f, 0x47600008,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d80011c,
+ 0x0000000f, 0x060e0001,
+ 0x00000010, 0x001f0000,
+ 0x00000000, 0x0f580000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0d610000,
+ 0x00000000, 0x02620000,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x31040000,
+ 0x00000000, 0x309a0000,
+ 0x00000018, 0x8000ffbc,
+ 0x0000000c, 0x29800001,
+ 0x00000010, 0x00220002,
+ 0x0000000c, 0x29520001,
+ 0x0000000c, 0x29520000,
+ 0x00000008, 0x0200000e,
+ 0x00000008, 0x0280001a,
+ 0x00000010, 0xb1c40a02,
+ 0x00000008, 0x02000003,
+ 0x00000008, 0x22000001,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x2adf0000,
+ 0x00000000, 0x2a000800,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000ff27,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2a000001,
+ 0x00000000, 0x2c200000,
+ 0x00000008, 0x2c800000,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d80011c,
+ 0x00000010, 0x91d40000,
+ 0x00000010, 0x91de0000,
+ 0x00000008, 0x2c800006,
+ 0x00000008, 0x2d000006,
+ 0x00000000, 0x30800000,
+ 0x00000000, 0x31000000,
+ 0x00000008, 0x2d800006,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a000010,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000ff12,
+ 0x00000010, 0x91a0b009,
+ 0x00000008, 0x2c80010d,
+ 0x00000008, 0x2d000009,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800107,
+ 0x00000018, 0x8000ffaf,
+ 0x00000018, 0x80000010,
+ 0x00000008, 0xac000001,
+ 0x00000018, 0x8000000b,
+ 0x00000000, 0x0380b000,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c004000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000ff9e,
+ 0x00000018, 0x80000030,
+ 0x00000018, 0x80000006,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c000e00,
+ 0x00000008, 0x2a000007,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000fefc,
+ 0x00000000, 0x06820000,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x0ce70007,
+ 0x00000009, 0x0562ffff,
+ 0x00000010, 0xba6c1405,
+ 0x00000000, 0x2adf0000,
+ 0x00000000, 0x21000000,
+ 0x00000008, 0x2a000005,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2c80010c,
+ 0x00000008, 0x2d000008,
+ 0x0000000c, 0x31620018,
+ 0x00000008, 0x2d800001,
+ 0x00000018, 0x8000ff90,
+ 0x00000018, 0x000d0000,
+ 0x00000010, 0xb1a0b00e,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x03d80000,
+ 0x00000000, 0x2c200000,
+ 0x00000010, 0x91d40000,
+ 0x00000018, 0x80000014,
+ 0x00000010, 0x2c620002,
+ 0x00000018, 0x8000000b,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c070000,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000fede,
+ 0x00000008, 0x2c80010d,
+ 0x00000008, 0x2d000009,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x2d800107,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a00000a,
+ 0x00000000, 0x05000000,
+ 0x00000018, 0x8000fed3,
+ 0x00000000, 0x05020000,
+ 0x00000008, 0x2c80010c,
+ 0x00000008, 0x2d000008,
+ 0x00000008, 0x2d800134,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x205f0000,
+ 0x00000008, 0x2c800140,
+ 0x00000008, 0x2d00003c,
+ 0x00000008, 0x2d80011c,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x205f0000,
+ 0x00000008, 0x2c800080,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d800108,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x000a0000,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x0600aaaa,
+ 0x00000018, 0x8000ff5a,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a000009,
+ 0x00000008, 0x0500aaaa,
+ 0x00000018, 0x8000feba,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000ff52,
+ 0x00000010, 0x91a03c02,
+ 0x00000010, 0xb1e66207,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c310000,
+ 0x00000009, 0x2cb1007f,
+ 0x00000008, 0x2cd90000,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d80010d,
+ 0x00000010, 0xb1a80006,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c200000,
+ 0x00000000, 0x2ca70000,
+ 0x00000008, 0x2d000010,
+ 0x00000008, 0x2d800108,
+ 0x00000018, 0x8000ff4b,
+ 0x00000010, 0xb1a60010,
+ 0x00000010, 0x001f0000,
+ 0x0000000f, 0x0f300007,
+ 0x00000000, 0x0a600000,
+ 0x00000000, 0x0ae10000,
+ 0x0000000f, 0x4b620008,
+ 0x00000009, 0x0b1600ff,
+ 0x00000000, 0x0d620000,
+ 0x00000009, 0x0d1a00ff,
+ 0x00000010, 0x07300003,
+ 0x0000000c, 0x0d1a0008,
+ 0x0000000c, 0x0b160008,
+ 0x0000000f, 0x4ce30018,
+ 0x00000000, 0x0c992c00,
+ 0x00000004, 0xcc993400,
+ 0x00000008, 0x0f800000,
+ 0x0000000c, 0x29800001,
+ 0x00000000, 0x33310000,
+ 0x00000008, 0x22000016,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a00000c,
+ 0x00000010, 0x009f0000,
+ 0x00000000, 0x0f200000,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000fe8e,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x0600aaaa,
+ 0x00000018, 0x8000ff26,
+ 0x0000000f, 0x47220008,
+ 0x00000009, 0x070e000f,
+ 0x00000008, 0x070e0008,
+ 0x00000008, 0x02800001,
+ 0x00000007, 0x02851c00,
+ 0x00000008, 0x82850001,
+ 0x00000000, 0x02854c00,
+ 0x00000007, 0x42851c00,
+ 0x00000003, 0xc3aa5200,
+ 0x00000000, 0x03b10e00,
+ 0x00000007, 0x4b071c00,
+ 0x0000000f, 0x0f300007,
+ 0x0000000f, 0x0a960003,
+ 0x00000000, 0x0a955c00,
+ 0x00000000, 0x4a005a00,
+ 0x00000000, 0x0c960a00,
+ 0x00000009, 0x0c99ffff,
+ 0x00000008, 0x0d00ffff,
+ 0x00000010, 0xb1963202,
+ 0x00000008, 0x0f800005,
+ 0x00000010, 0xb1a80008,
+ 0x00000010, 0x205f0000,
+ 0x0000000b, 0x2fdf0002,
+ 0x00000000, 0x2c200000,
+ 0x00000000, 0x2ca70000,
+ 0x00000008, 0x2d000010,
+ 0x00000008, 0x2d800108,
+ 0x00000018, 0x8000ff12,
+ 0x0000000c, 0x29800001,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x1f800001,
+ 0x00000000, 0x2adf0000,
+ 0x00000008, 0x2a00000d,
+ 0x00000008, 0x0500aaaa,
+ 0x00000018, 0x8000fe68,
+ 0x00000010, 0x91d40000,
+ 0x00000008, 0x06005555,
+ 0x00000018, 0x8000ff00,
+ 0x0000000c, 0x29800001,
+ 0x0000000c, 0x1f800001,
+ 0x00000008, 0x2a000007,
+ 0x00000008, 0x05005555,
+ 0x00000018, 0x8000fe60,
+ 0x00000008, 0x03050004,
+ 0x00000006, 0x83040c00,
+ 0x00000008, 0x02850200,
+ 0x00000000, 0x86050c00,
+ 0x00000001, 0x860c0e00,
+ 0x00000008, 0x02040004,
+ 0x00000000, 0x02041800,
+ 0x00000000, 0x83871800,
+ 0x00000018, 0x00020000,
+};
+
+
+u32 bce_xi90_rv2p_proc2[] = {
+ 0x00000010, 0xb1800004,
+ 0x0000001f, 0x03030100,
+ 0x00000008, 0x050000ff,
+ 0x00000018, 0x00020000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0xb1d40000,
+ 0x0000000c, 0x29800001,
+ 0x00000008, 0x02540009,
+ 0x00000009, 0x2952003f,
+ 0x00000018, 0x00040000,
+ 0x00000018, 0x80000010,
+ 0x00000018, 0x80000011,
+ 0x00000018, 0x8000004b,
+ 0x00000018, 0x8000013c,
+ 0x00000018, 0x8000013b,
+ 0x00000018, 0x8000013a,
+ 0x00000018, 0x8000013a,
+ 0x00000018, 0x80000000,
+ 0x00000018, 0x8000014d,
+ 0x00000018, 0x80000136,
+ 0x00000018, 0x8000000c,
+ 0x00000018, 0x80000152,
+ 0x00000018, 0x800001ac,
+ 0x00000018, 0x80000080,
+ 0x00000018, 0x80000107,
+ 0x00000018, 0x80000115,
+ 0x00000000, 0x2a000000,
+ 0x00000018, 0x8000ffea,
+ 0x00000000, 0x2a000000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000ffe6,
+ 0x00000000, 0x2a000000,
+ 0x00000018, 0x8000ffe4,
+ 0x00000000, 0x03820000,
+ 0x00000018, 0x8000ffdf,
+ 0x00000001, 0x0c161400,
+ 0x00000000, 0x8c181400,
+ 0x00000010, 0x91980003,
+ 0x00000008, 0x0c960002,
+ 0x00000010, 0xb1800003,
+ 0x00000008, 0x0c960001,
+ 0x00000000, 0x0c000000,
+ 0x00000000, 0x0d190000,
+ 0x00000010, 0x20560000,
+ 0x0000000c, 0x2bd70001,
+ 0x00000008, 0x0f800001,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000010, 0x011301f1,
+ 0x00000018, 0x00070000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91963421,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c1e0000,
+ 0x00000008, 0x2c800006,
+ 0x00000008, 0x2d000006,
+ 0x00000008, 0x2d800102,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0d610000,
+ 0x00000018, 0x000a0000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91963416,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x09d80000,
+ 0x00000000, 0x2c1e0000,
+ 0x00000008, 0x2c80010e,
+ 0x00000008, 0x2d00000a,
+ 0x00000008, 0x2d800102,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0d620000,
+ 0x00000000, 0x2c130000,
+ 0x00000018, 0x000a0000,
+ 0x00000000, 0x05020000,
+ 0x00000010, 0x91963409,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c1e0000,
+ 0x00000008, 0x2c800006,
+ 0x00000008, 0x2d00006a,
+ 0x00000008, 0x2d800102,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x0d7a0000,
+ 0x00000018, 0x000a0000,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000000, 0x2f80aa00,
+ 0x00000000, 0x2a000000,
+ 0x00000000, 0x0d610000,
+ 0x00000000, 0x03620000,
+ 0x00000000, 0x2c400000,
+ 0x00000000, 0x02638c00,
+ 0x00000000, 0x26460000,
+ 0x00000008, 0x02040012,
+ 0x00000010, 0xb906082e,
+ 0x00000000, 0x0f580000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0c000000,
+ 0x00000000, 0x0b800000,
+ 0x00000008, 0x0cc60012,
+ 0x00000018, 0x8000ffca,
+ 0x00000010, 0x20560000,
+ 0x0000000c, 0x2bd70001,
+ 0x00000008, 0x0f800003,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000008, 0x27110012,
+ 0x00000000, 0x66900000,
+ 0x00000008, 0xa31b0012,
+ 0x00000010, 0xb1980006,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000010, 0x20560000,
+ 0x0000000c, 0x2bd70001,
+ 0x00000008, 0x0f800004,
+ 0x00000008, 0x22000003,
+ 0x00000008, 0x2c80000c,
+ 0x00000008, 0x2d00000c,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000000, 0x25960000,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x06660000,
+ 0x00000000, 0x86611800,
+ 0x00000009, 0x0260000f,
+ 0x0000000f, 0x02040002,
+ 0x00000010, 0xb60c0803,
+ 0x0000000c, 0x1fbf0000,
+ 0x0000000c, 0x33660010,
+ 0x00000000, 0x32140000,
+ 0x00000000, 0x32950000,
+ 0x00000005, 0x73662c00,
+ 0x00000000, 0x31e32e00,
+ 0x00000008, 0x2d800010,
+ 0x00000010, 0x20530000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x8000ff76,
+ 0x00000000, 0x23000000,
+ 0x00000009, 0x25e6ffff,
+ 0x00000008, 0x2200000b,
+ 0x0000000c, 0x69520000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000ff6f,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000000, 0x2f80aa00,
+ 0x00000000, 0x2a000000,
+ 0x00000000, 0x2c400000,
+ 0x00000008, 0x2c800040,
+ 0x00000008, 0x2d000020,
+ 0x00000008, 0x2d80011c,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x0000000f, 0x42ea0010,
+ 0x00000010, 0x004f0004,
+ 0x00000010, 0xb7469200,
+ 0x00000008, 0x02490012,
+ 0x00000010, 0xb5840a00,
+ 0x00000000, 0x0d610000,
+ 0x00000010, 0xba66346d,
+ 0x00000000, 0x03620000,
+ 0x00000010, 0xb8630c6b,
+ 0x00000008, 0x83050012,
+ 0x00000010, 0x004f0002,
+ 0x00000000, 0x03490000,
+ 0x00000001, 0x83068c00,
+ 0x00000000, 0x83c60c00,
+ 0x00000010, 0xb1870010,
+ 0x00000000, 0x0b6e0000,
+ 0x00000018, 0x8000ff50,
+ 0x00000001, 0x06691400,
+ 0x00000010, 0x918c0002,
+ 0x00000008, 0xb4e90001,
+ 0x00000010, 0xb1e92c5f,
+ 0x00000000, 0x86692c00,
+ 0x00000000, 0x02000000,
+ 0x00000009, 0x02eaffff,
+ 0x00000010, 0x000c0002,
+ 0x00000000, 0x02040a00,
+ 0x0000000f, 0x460c0001,
+ 0x0000000f, 0x02850001,
+ 0x00000010, 0x918c01fc,
+ 0x00000010, 0xb7040e56,
+ 0x00000000, 0x2c400000,
+ 0x00000000, 0x0f400000,
+ 0x00000000, 0x0d610000,
+ 0x00000000, 0x0a640000,
+ 0x00000000, 0x0ae50000,
+ 0x00000009, 0x0b66ffff,
+ 0x00000000, 0x0c000000,
+ 0x00000000, 0x0b800000,
+ 0x00000008, 0x0c860012,
+ 0x00000010, 0x20560000,
+ 0x0000000c, 0x2bd70001,
+ 0x00000008, 0x0f800003,
+ 0x0000000c, 0x29520000,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000008, 0x27110012,
+ 0x00000000, 0x66900000,
+ 0x00000000, 0x26460000,
+ 0x00000000, 0x23060000,
+ 0x00000010, 0xb1980009,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000010, 0x20560000,
+ 0x0000000c, 0x2bd70001,
+ 0x00000008, 0x0f800004,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000000, 0x32140000,
+ 0x00000000, 0x32950000,
+ 0x00000000, 0x31e32e00,
+ 0x00000005, 0x73662c00,
+ 0x00000000, 0x25960000,
+ 0x00000010, 0xb1870021,
+ 0x0000000c, 0x29800000,
+ 0x0000000f, 0x0f6b0007,
+ 0x00000000, 0x0d690000,
+ 0x00000000, 0x0a6c0000,
+ 0x00000000, 0x0aed0000,
+ 0x00000000, 0x0b6e0000,
+ 0x00000000, 0x0b800000,
+ 0x00000000, 0x0c870000,
+ 0x00000018, 0x8000ff18,
+ 0x00000001, 0x0c161400,
+ 0x00000000, 0x8c181400,
+ 0x00000008, 0x0c960001,
+ 0x00000010, 0x91980002,
+ 0x00000008, 0x0c990001,
+ 0x00000000, 0x0d190000,
+ 0x00000000, 0x0c000000,
+ 0x00000010, 0x20560000,
+ 0x0000000c, 0x2bd70001,
+ 0x00000008, 0x0f800001,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x69520001,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000000, 0x22c58c00,
+ 0x00000000, 0x23120000,
+ 0x00000000, 0x27110000,
+ 0x00000000, 0x26900000,
+ 0x00000010, 0xb8170e03,
+ 0x0000000c, 0x29800000,
+ 0x00000018, 0x8000ffeb,
+ 0x00000000, 0x82970e00,
+ 0x00000000, 0xa3120a00,
+ 0x00000008, 0x2200001a,
+ 0x00000008, 0x2c80000c,
+ 0x00000008, 0x2d00000c,
+ 0x00000008, 0x2d800010,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000000, 0x0d6e0000,
+ 0x00000003, 0xe7cf3400,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0xb1870007,
+ 0x00000000, 0x36140000,
+ 0x00000000, 0x36950000,
+ 0x00000000, 0x37160000,
+ 0x00000008, 0x2c800050,
+ 0x00000008, 0x2d000030,
+ 0x00000008, 0x2d80000c,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000fef1,
+ 0x00000000, 0x26460000,
+ 0x00000000, 0x23000000,
+ 0x00000009, 0x25e6ffff,
+ 0x00000000, 0x0b6e0000,
+ 0x00000003, 0xe7cf2c00,
+ 0x00000008, 0x2200001b,
+ 0x0000000c, 0x69520000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000fee7,
+ 0x00000000, 0x2fd50000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0x003f000c,
+ 0x00000000, 0x06660000,
+ 0x00000000, 0x86611800,
+ 0x00000009, 0x026000f0,
+ 0x00000010, 0xb70c0808,
+ 0x00000000, 0x2c400000,
+ 0x0000000c, 0x73660010,
+ 0x00000008, 0x2c800018,
+ 0x00000008, 0x2d000018,
+ 0x00000008, 0x2d800002,
+ 0x0000000c, 0x5fbf0000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x8000fed8,
+ 0x00000000, 0x2fd50000,
+ 0x00000000, 0x2a000000,
+ 0x00000000, 0x2c400000,
+ 0x0000000c, 0x73660010,
+ 0x00000008, 0x2c800018,
+ 0x00000008, 0x2d000018,
+ 0x00000008, 0x2d800002,
+ 0x0000000c, 0x5fbf0000,
+ 0x00000010, 0x91de0000,
+ 0x00000008, 0x2c800003,
+ 0x00000008, 0x2d000003,
+ 0x00000009, 0x3060fff0,
+ 0x00000008, 0x2d800001,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x91de0000,
+ 0x00000008, 0x2c80001a,
+ 0x00000008, 0x2d00001a,
+ 0x00000000, 0x33000000,
+ 0x00000008, 0x2d800002,
+ 0x00000000, 0x31800000,
+ 0x00000010, 0x91de0000,
+ 0x00000008, 0x2c80000c,
+ 0x00000008, 0x2d00000c,
+ 0x00000008, 0x2d800004,
+ 0x00000010, 0x20530000,
+ 0x00000010, 0x91de0000,
+ 0x00000018, 0x8000febd,
+ 0x00000018, 0x8000febc,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000000, 0x0f008000,
+ 0x00000008, 0x0f800007,
+ 0x00000018, 0x80000015,
+ 0x00000000, 0x05020000,
+ 0x00000008, 0x22000009,
+ 0x00000000, 0x286d0000,
+ 0x00000000, 0x29000000,
+ 0x0000000f, 0x65680010,
+ 0x00000003, 0xf66c9400,
+ 0x00000010, 0xb972a004,
+ 0x0000000c, 0x73e70019,
+ 0x0000000c, 0x21420004,
+ 0x00000000, 0x3bf60000,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000008, 0x22000008,
+ 0x0000000c, 0x61420004,
+ 0x00000018, 0x000a0000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x0000000f, 0x0f470007,
+ 0x00000008, 0x0f800008,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000fe9f,
+ 0x00000010, 0x91de0000,
+ 0x00000000, 0x2fd50000,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000000, 0x33510000,
+ 0x00000000, 0x2a000000,
+ 0x00000010, 0xb1c60029,
+ 0x0000000f, 0x0f500007,
+ 0x00000000, 0x0a600000,
+ 0x00000000, 0x0ae10000,
+ 0x0000000f, 0x4b620008,
+ 0x00000009, 0x0b1600ff,
+ 0x0000000f, 0x4c620010,
+ 0x00000000, 0x0d620000,
+ 0x00000009, 0x0d1a00ff,
+ 0x00000010, 0x07500003,
+ 0x0000000c, 0x0d1a0008,
+ 0x0000000c, 0x0b160008,
+ 0x00000000, 0x0cc60000,
+ 0x00000000, 0x0b800000,
+ 0x00000000, 0x06980000,
+ 0x00000010, 0x20560000,
+ 0x0000000c, 0x2bd70001,
+ 0x00000008, 0x0f800003,
+ 0x00000010, 0x06c20004,
+ 0x0000000c, 0x29000002,
+ 0x00000010, 0x26420002,
+ 0x0000000c, 0x29520003,
+ 0x00000008, 0x22000001,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000000, 0x231b0000,
+ 0x00000000, 0x27111a00,
+ 0x00000000, 0x66900000,
+ 0x0000000c, 0x29520000,
+ 0x00000010, 0xb197320c,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x06980000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520003,
+ 0x00000000, 0x22c58c00,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000010, 0x20560000,
+ 0x0000000c, 0x2bd70001,
+ 0x00000008, 0x0f800003,
+ 0x00000018, 0x8000ffef,
+ 0x00000010, 0xb1c80013,
+ 0x00000010, 0xb1c60003,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520000,
+ 0x0000000c, 0x29520003,
+ 0x00000010, 0x06c20002,
+ 0x0000000c, 0x29520002,
+ 0x00000000, 0x22c58c00,
+ 0x00000000, 0x27650000,
+ 0x00000000, 0x26e40000,
+ 0x00000008, 0x22000016,
+ 0x00000010, 0xb1c60003,
+ 0x00000000, 0x23480000,
+ 0x00000010, 0xb1800005,
+ 0x00000000, 0x23480000,
+ 0x0000000c, 0x29800000,
+ 0x0000000f, 0x0f500007,
+ 0x00000018, 0x80000012,
+ 0x00000008, 0x22000016,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x30140000,
+ 0x00000000, 0x30950000,
+ 0x00000010, 0x07500003,
+ 0x00000009, 0x0b1600ff,
+ 0x00000009, 0x0d1a00ff,
+ 0x0000000f, 0x31160008,
+ 0x00000000, 0x31623400,
+ 0x00000003, 0xf1623000,
+ 0x00000010, 0x205f0000,
+ 0x00000000, 0x2c510000,
+ 0x00000009, 0x2cd1007f,
+ 0x00000008, 0x2cd90000,
+ 0x00000008, 0x2d000000,
+ 0x00000008, 0x2d80000c,
+ 0x00000000, 0x00000000,
+ 0x00000010, 0x91de0000,
+ 0x00000010, 0x05c20003,
+ 0x00000000, 0x33000000,
+ 0x00000008, 0x0f800007,
+ 0x00000010, 0x20530000,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000018, 0x8000fe44,
+ 0x00000000, 0x2fd50000,
+ 0x00000000, 0x2a000000,
+ 0x0000000f, 0x0f500007,
+ 0x00000010, 0xb1c60030,
+ 0x0000000f, 0x47420008,
+ 0x00000009, 0x070e000f,
+ 0x00000008, 0x070e0008,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000008, 0x09000001,
+ 0x00000007, 0x09121c00,
+ 0x00000003, 0xcbca9200,
+ 0x00000000, 0x0b97a200,
+ 0x00000007, 0x42171c00,
+ 0x00000000, 0x0b040000,
+ 0x0000000f, 0x0a840003,
+ 0x00000000, 0x0a959c00,
+ 0x00000000, 0x4a009a00,
+ 0x00000008, 0x82120001,
+ 0x00000001, 0x0c170800,
+ 0x00000000, 0x0c978c00,
+ 0x00000000, 0x02180000,
+ 0x00000008, 0x0d00ffff,
+ 0x00000008, 0x0f800006,
+ 0x0000000c, 0x29000000,
+ 0x00000010, 0x06c20004,
+ 0x0000000c, 0x29520002,
+ 0x00000010, 0x26420002,
+ 0x0000000c, 0x29520003,
+ 0x00000008, 0x22000001,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000010, 0xb197320d,
+ 0x00000000, 0x231b0000,
+ 0x00000000, 0x27110800,
+ 0x00000000, 0x66900000,
+ 0x0000000c, 0x29800000,
+ 0x00000000, 0x02180000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520003,
+ 0x00000000, 0x22c53600,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000008, 0x0f800006,
+ 0x00000018, 0x8000fff2,
+ 0x00000000, 0x231b0000,
+ 0x00000000, 0x27110800,
+ 0x00000000, 0x66900000,
+ 0x00000010, 0xb1c8000b,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x20530000,
+ 0x0000000c, 0x29520000,
+ 0x0000000c, 0x29520003,
+ 0x00000010, 0x06c20002,
+ 0x0000000c, 0x29520002,
+ 0x00000000, 0x22c58c00,
+ 0x00000000, 0x27650000,
+ 0x00000000, 0x26e40000,
+ 0x00000000, 0x23480000,
+ 0x00000008, 0x22000017,
+ 0x0000000c, 0x29800000,
+ 0x00000010, 0x001f0000,
+ 0x0000000c, 0x6bd70001,
+ 0x00000010, 0x20530000,
+ 0x00000018, 0x8000fe03,
+};
+
+
+/*
+ * The RV2P block must be configured for the system
+ * page size, or more specifically, the number of
+ * usable rx_bd's per page, and should be called
+ * as follows prior to loading the RV2P firmware:
+ *
+ * BCE_RV2P_PROC2_CHG_MAX_BD_PAGE(USABLE_RX_BD_PER_PAGE)
+ *
+ * The default value is 0xFF.
+ */
+#define BCE_RV2P_PROC2_MAX_BD_PAGE_LOC 5
+#define BCE_RV2P_PROC2_CHG_MAX_BD_PAGE(value) { \
+ bce_rv2p_proc2[BCE_RV2P_PROC2_MAX_BD_PAGE_LOC] = \
+ (bce_rv2p_proc2[BCE_RV2P_PROC2_MAX_BD_PAGE_LOC] & ~0xFFFF) | (value); \
+}
+
+
+
diff --git a/freebsd/sys/dev/bce/if_bcereg.h b/freebsd/sys/dev/bce/if_bcereg.h
new file mode 100644
index 00000000..4ed5fdda
--- /dev/null
+++ b/freebsd/sys/dev/bce/if_bcereg.h
@@ -0,0 +1,6796 @@
+/*-
+ * Copyright (c) 2006-2010 Broadcom Corporation
+ * David Christensen <davidch@broadcom.com>. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of Broadcom Corporation nor the name of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written consent.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS'
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _BCEREG_HH_DEFINED
+#define _BCEREG_HH_DEFINED
+
+#ifdef HAVE_KERNEL_OPTION_HEADERS
+#include <freebsd/local/opt_device_polling.h>
+#endif
+
+#include <freebsd/sys/param.h>
+#include <freebsd/sys/endian.h>
+#include <freebsd/sys/systm.h>
+#include <freebsd/sys/sockio.h>
+#include <freebsd/sys/mbuf.h>
+#include <freebsd/sys/malloc.h>
+#include <freebsd/sys/kernel.h>
+#include <freebsd/sys/module.h>
+#include <freebsd/sys/socket.h>
+#include <freebsd/sys/sysctl.h>
+#include <freebsd/sys/queue.h>
+
+#include <freebsd/net/bpf.h>
+#include <freebsd/net/ethernet.h>
+#include <freebsd/net/if.h>
+#include <freebsd/net/if_arp.h>
+#include <freebsd/net/if_dl.h>
+#include <freebsd/net/if_media.h>
+
+#include <freebsd/net/if_types.h>
+#include <freebsd/net/if_vlan_var.h>
+
+#include <freebsd/netinet/in_systm.h>
+#include <freebsd/netinet/in.h>
+#include <freebsd/netinet/if_ether.h>
+#include <freebsd/netinet/ip.h>
+#include <freebsd/netinet/ip6.h>
+#include <freebsd/netinet/tcp.h>
+#include <freebsd/netinet/udp.h>
+
+#include <freebsd/machine/bus.h>
+#include <freebsd/machine/resource.h>
+#include <freebsd/sys/bus.h>
+#include <freebsd/sys/rman.h>
+
+#include <freebsd/dev/mii/mii.h>
+#include <freebsd/dev/mii/miivar.h>
+#include <freebsd/local/miidevs.h>
+#include <freebsd/dev/mii/brgphyreg.h>
+
+#include <freebsd/dev/pci/pcireg.h>
+#include <freebsd/dev/pci/pcivar.h>
+
+#include <freebsd/local/miibus_if.h>
+
+/****************************************************************************/
+/* Conversion to FreeBSD type definitions. */
+/****************************************************************************/
+#define u64 uint64_t
+#define u32 uint32_t
+#define u16 uint16_t
+#define u8 uint8_t
+
+#if BYTE_ORDER == BIG_ENDIAN
+#define __BIG_ENDIAN 1
+#undef __LITTLE_ENDIAN
+#else
+#undef __BIG_ENDIAN
+#define __LITTLE_ENDIAN 1
+#endif
+
+#define BCE_DWORD_PRINTFB \
+ "\020" \
+ "\40b31" \
+ "\37b30" \
+ "\36b29" \
+ "\35b28" \
+ "\34b27" \
+ "\33b26" \
+ "\32b25" \
+ "\31b24" \
+ "\30b23" \
+ "\27b22" \
+ "\26b21" \
+ "\25b20" \
+ "\24b19" \
+ "\23b18" \
+ "\22b17" \
+ "\21b16" \
+ "\20b15" \
+ "\17b14" \
+ "\16b13" \
+ "\15b12" \
+ "\14b11" \
+ "\13b10" \
+ "\12b9" \
+ "\11b8" \
+ "\10b7" \
+ "\07b6" \
+ "\06b5" \
+ "\05b4" \
+ "\04b3" \
+ "\03b2" \
+ "\02b1" \
+ "\01b0"
+
+/* MII Control Register 0x0 */
+#define BCE_BMCR_PRINTFB \
+ "\020" \
+ "\20Reset" \
+ "\17Loopback" \
+ "\16Spd0" \
+ "\15AnegEna" \
+ "\14PwrDn" \
+ "\13Isolate" \
+ "\12RstrtAneg" \
+ "\11FD" \
+ "\10CollTst" \
+ "\07Spd1" \
+ "\06Rsrvd" \
+ "\05Rsrvd" \
+ "\04Rsrvd" \
+ "\03Rsrvd" \
+ "\02Rsrvd" \
+ "\01Rsrvd"
+
+/* MII Status Register 0x1 */
+#define BCE_BMSR_PRINTFB \
+ "\020" \
+ "\20Cap100T4" \
+ "\17Cap100XFD" \
+ "\16Cap100XHD" \
+ "\15Cap10FD" \
+ "\14Cap10HD" \
+ "\13Cap100T2FD" \
+ "\12Cap100T2HD" \
+ "\11ExtStsPrsnt" \
+ "\10Rsrvd" \
+ "\07PrmblSupp" \
+ "\06AnegCmpl" \
+ "\05RemFaultDet" \
+ "\04AnegCap" \
+ "\03LnkUp" \
+ "\02JabberDet" \
+ "\01ExtCapSupp"
+
+/* MII Autoneg Advertisement Register 0x4 */
+#define BCE_ANAR_PRINTFB \
+ "\020" \
+ "\20AdvNxtPg" \
+ "\17Rsrvd" \
+ "\16AdvRemFault" \
+ "\15Rsrvd" \
+ "\14AdvAsymPause" \
+ "\13AdvPause" \
+ "\12Adv100T4" \
+ "\11Adv100FD" \
+ "\10Adv100HD" \
+ "\07Adv10FD" \
+ "\06Adv10HD" \
+ "\05Rsrvd" \
+ "\04Rsrvd" \
+ "\03Rsrvd" \
+ "\02Rsrvd" \
+ "\01Adv802.3"
+
+/* MII Autoneg Link Partner Ability Register 0x5 */
+#define BCE_ANLPAR_PRINTFB \
+ "\020" \
+ "\20CapNxtPg" \
+ "\17Ack" \
+ "\16CapRemFault" \
+ "\15Rsrvd" \
+ "\14CapAsymPause" \
+ "\13CapPause" \
+ "\12Cap100T4" \
+ "\11Cap100FD" \
+ "\10Cap100HD" \
+ "\07Cap10FD" \
+ "\06Cap10HD" \
+ "\05Rsrvd" \
+ "\04Rsrvd" \
+ "\03Rsrvd" \
+ "\02Rsrvd" \
+ "\01Cap802.3"
+
+/* 1000Base-T Control Register 0x09 */
+#define BCE_1000CTL_PRINTFB \
+ "\020" \
+ "\20Test3" \
+ "\17Test2" \
+ "\16Test1" \
+ "\15MasterSlave" \
+ "\14ForceMaster" \
+ "\13SwitchDev" \
+ "\12Adv1000TFD" \
+ "\11Adv1000THD" \
+ "\10Rsrvd" \
+ "\07Rsrvd" \
+ "\06Rsrvd" \
+ "\05Rsrvd" \
+ "\04Rsrvd" \
+ "\03Rsrvd" \
+ "\02Rsrvd" \
+ "\01Rsrvd"
+
+/* MII 1000Base-T Status Register 0x0a */
+#define BCE_1000STS_PRINTFB \
+ "\020" \
+ "\20MstrSlvFault" \
+ "\17Master" \
+ "\16LclRcvrOk" \
+ "\15RemRcvrOk" \
+ "\14Cap1000FD" \
+ "\13Cpa1000HD" \
+ "\12Rsrvd" \
+ "\11Rsrvd"
+
+/* MII Extended Status Register 0x0f */
+#define BCE_EXTSTS_PRINTFB \
+ "\020" \
+ "\20b15" \
+ "\17b14" \
+ "\16b13" \
+ "\15b12" \
+ "\14Rsrvd" \
+ "\13Rsrvd" \
+ "\12Rsrvd" \
+ "\11Rsrvd" \
+ "\10Rsrvd" \
+ "\07Rsrvd" \
+ "\06Rsrvd" \
+ "\05Rsrvd" \
+ "\04Rsrvd" \
+ "\03Rsrvd" \
+ "\02Rsrvd" \
+ "\01Rsrvd"
+
+/* MII Autoneg Link Partner Ability Register 0x19 */
+#define BCE_AUXSTS_PRINTFB \
+ "\020" \
+ "\20AnegCmpl" \
+ "\17AnegCmplAck" \
+ "\16AnegAckDet" \
+ "\15AnegAblDet" \
+ "\14AnegNextPgWait" \
+ "\13HCD" \
+ "\12HCD" \
+ "\11HCD" \
+ "\10PrlDetFault" \
+ "\07RemFault" \
+ "\06PgRcvd" \
+ "\05LnkPrtnrAnegAbl" \
+ "\04LnkPrtnrNPAbl" \
+ "\03LnkUp" \
+ "\02EnaPauseRcv" \
+ "\01EnaPausXmit"
+
+/*
+ * Remove before release:
+ *
+ * #define BCE_DEBUG
+ * #define BCE_NVRAM_WRITE_SUPPORT
+ * #define BCE_JUMBO_HDRSPLIT
+ */
+
+/****************************************************************************/
+/* Debugging macros and definitions. */
+/****************************************************************************/
+
+#define BCE_CP_LOAD 0x00000001
+#define BCE_CP_SEND 0x00000002
+#define BCE_CP_RECV 0x00000004
+#define BCE_CP_INTR 0x00000008
+#define BCE_CP_UNLOAD 0x00000010
+#define BCE_CP_RESET 0x00000020
+#define BCE_CP_PHY 0x00000040
+#define BCE_CP_NVRAM 0x00000080
+#define BCE_CP_FIRMWARE 0x00000100
+#define BCE_CP_CTX 0x00000200
+#define BCE_CP_REG 0x00000400
+#define BCE_CP_MISC 0x00400000
+#define BCE_CP_SPECIAL 0x00800000
+#define BCE_CP_ALL 0x00FFFFFF
+
+#define BCE_CP_MASK 0x00FFFFFF
+
+#define BCE_LEVEL_FATAL 0x00000000
+#define BCE_LEVEL_WARN 0x01000000
+#define BCE_LEVEL_INFO 0x02000000
+#define BCE_LEVEL_VERBOSE 0x03000000
+#define BCE_LEVEL_EXTREME 0x04000000
+#define BCE_LEVEL_INSANE 0x05000000
+
+#define BCE_LEVEL_MASK 0xFF000000
+
+#define BCE_WARN_LOAD (BCE_CP_LOAD | BCE_LEVEL_WARN)
+#define BCE_INFO_LOAD (BCE_CP_LOAD | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_LOAD (BCE_CP_LOAD | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_LOAD (BCE_CP_LOAD | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_LOAD (BCE_CP_LOAD | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_SEND (BCE_CP_SEND | BCE_LEVEL_WARN)
+#define BCE_INFO_SEND (BCE_CP_SEND | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_SEND (BCE_CP_SEND | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_SEND (BCE_CP_SEND | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_SEND (BCE_CP_SEND | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_RECV (BCE_CP_RECV | BCE_LEVEL_WARN)
+#define BCE_INFO_RECV (BCE_CP_RECV | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_RECV (BCE_CP_RECV | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_RECV (BCE_CP_RECV | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_RECV (BCE_CP_RECV | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_INTR (BCE_CP_INTR | BCE_LEVEL_WARN)
+#define BCE_INFO_INTR (BCE_CP_INTR | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_INTR (BCE_CP_INTR | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_INTR (BCE_CP_INTR | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_INTR (BCE_CP_INTR | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_UNLOAD (BCE_CP_UNLOAD | BCE_LEVEL_WARN)
+#define BCE_INFO_UNLOAD (BCE_CP_UNLOAD | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_UNLOAD (BCE_CP_UNLOAD | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_UNLOAD (BCE_CP_UNLOAD | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_UNLOAD (BCE_CP_UNLOAD | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_RESET (BCE_CP_RESET | BCE_LEVEL_WARN)
+#define BCE_INFO_RESET (BCE_CP_RESET | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_RESET (BCE_CP_RESET | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_RESET (BCE_CP_RESET | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_RESET (BCE_CP_RESET | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_PHY (BCE_CP_PHY | BCE_LEVEL_WARN)
+#define BCE_INFO_PHY (BCE_CP_PHY | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_PHY (BCE_CP_PHY | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_PHY (BCE_CP_PHY | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_PHY (BCE_CP_PHY | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_NVRAM (BCE_CP_NVRAM | BCE_LEVEL_WARN)
+#define BCE_INFO_NVRAM (BCE_CP_NVRAM | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_NVRAM (BCE_CP_NVRAM | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_NVRAM (BCE_CP_NVRAM | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_NVRAM (BCE_CP_NVRAM | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_FIRMWARE (BCE_CP_FIRMWARE | BCE_LEVEL_WARN)
+#define BCE_INFO_FIRMWARE (BCE_CP_FIRMWARE | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_FIRMWARE (BCE_CP_FIRMWARE | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_FIRMWARE (BCE_CP_FIRMWARE | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_FIRMWARE (BCE_CP_FIRMWARE | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_CTX (BCE_CP_CTX | BCE_LEVEL_WARN)
+#define BCE_INFO_CTX (BCE_CP_CTX | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_CTX (BCE_CP_CTX | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_CTX (BCE_CP_CTX | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_CTX (BCE_CP_CTX | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_REG (BCE_CP_REG | BCE_LEVEL_WARN)
+#define BCE_INFO_REG (BCE_CP_REG | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_REG (BCE_CP_REG | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_REG (BCE_CP_REG | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_REG (BCE_CP_REG | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_MISC (BCE_CP_MISC | BCE_LEVEL_WARN)
+#define BCE_INFO_MISC (BCE_CP_MISC | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_MISC (BCE_CP_MISC | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_MISC (BCE_CP_MISC | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_MISC (BCE_CP_MISC | BCE_LEVEL_INSANE)
+
+#define BCE_WARN_SPECIAL (BCE_CP_SPECIAL | BCE_LEVEL_WARN)
+#define BCE_INFO_SPECIAL (BCE_CP_SPECIAL | BCE_LEVEL_INFO)
+#define BCE_VERBOSE_SPECIAL (BCE_CP_SPECIAL | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME_SPECIAL (BCE_CP_SPECIAL | BCE_LEVEL_EXTREME)
+#define BCE_INSANE_SPECIAL (BCE_CP_SPECIAL | BCE_LEVEL_INSANE)
+
+#define BCE_FATAL (BCE_CP_ALL | BCE_LEVEL_FATAL)
+#define BCE_WARN (BCE_CP_ALL | BCE_LEVEL_WARN)
+#define BCE_INFO (BCE_CP_ALL | BCE_LEVEL_INFO)
+#define BCE_VERBOSE (BCE_CP_ALL | BCE_LEVEL_VERBOSE)
+#define BCE_EXTREME (BCE_CP_ALL | BCE_LEVEL_EXTREME)
+#define BCE_INSANE (BCE_CP_ALL | BCE_LEVEL_INSANE)
+
+#define BCE_CODE_PATH(cp) ((cp & BCE_CP_MASK) & bce_debug)
+#define BCE_MSG_LEVEL(lv) \
+ ((lv & BCE_LEVEL_MASK) <= (bce_debug & BCE_LEVEL_MASK))
+#define BCE_LOG_MSG(m) (BCE_CODE_PATH(m) && BCE_MSG_LEVEL(m))
+
+#ifdef BCE_DEBUG
+
+/* Print a message based on the logging level and code path. */
+#define DBPRINT(sc, level, format, args...) \
+ if (BCE_LOG_MSG(level)) { \
+ device_printf(sc->bce_dev, format, ## args); \
+ }
+
+/* Runs a particular command when debugging is enabled. */
+#define DBRUN(args...) \
+ do { \
+ args; \
+ } while (0)
+
+/* Runs a particular command based on the logging level and code path. */
+#define DBRUNMSG(msg, args...) \
+ if (BCE_LOG_MSG(msg)) { \
+ args; \
+ }
+
+/* Runs a particular command based on the logging level. */
+#define DBRUNLV(level, args...) \
+ if (BCE_MSG_LEVEL(level)) { \
+ args; \
+ }
+
+/* Runs a particular command based on the code path. */
+#define DBRUNCP(cp, args...) \
+ if (BCE_CODE_PATH(cp)) { \
+ args; \
+ }
+
+/* Runs a particular command based on a condition. */
+#define DBRUNIF(cond, args...) \
+ if (cond) { \
+ args; \
+ }
+
+/* Announces function entry. */
+#define DBENTER(cond) \
+ DBPRINT(sc, (cond), "%s(enter)\n", __FUNCTION__)
+
+/* Announces function exit. */
+#define DBEXIT(cond) \
+ DBPRINT(sc, (cond), "%s(exit)\n", __FUNCTION__)
+
+/* Temporarily override the debug level. */
+#define DBPUSH(cond) \
+ u32 bce_debug_temp = bce_debug; \
+ bce_debug |= cond;
+
+/* Restore the previously overriden debug level. */
+#define DBPOP() \
+ bce_debug = bce_debug_temp;
+
+/* Needed for random() function which is only used in debugging. */
+#include <freebsd/sys/random.h>
+
+/* Returns FALSE in "defects" per 2^31 - 1 calls, otherwise returns TRUE. */
+#define DB_RANDOMFALSE(defects) (random() > defects)
+#define DB_OR_RANDOMFALSE(defects) || (random() > defects)
+#define DB_AND_RANDOMFALSE(defects) && (random() > ddfects)
+
+/* Returns TRUE in "defects" per 2^31 - 1 calls, otherwise returns FALSE. */
+#define DB_RANDOMTRUE(defects) (random() < defects)
+#define DB_OR_RANDOMTRUE(defects) || (random() < defects)
+#define DB_AND_RANDOMTRUE(defects) && (random() < defects)
+
+#define DB_PRINT_PHY_REG(reg, val) \
+switch(reg) { \
+case 0x00: DBPRINT(sc, BCE_INSANE_PHY, \
+ "%s(): phy = %d, reg = 0x%04X (BMCR ), val = 0x%b\n", \
+ __FUNCTION__, phy, (u16) reg & 0xffff, (u16) val & 0xffff, \
+ BCE_BMCR_PRINTFB); break; \
+case 0x01: DBPRINT(sc, BCE_INSANE_PHY, \
+ "%s(): phy = %d, reg = 0x%04X (BMSR ), val = 0x%b\n", \
+ __FUNCTION__, phy, (u16) reg & 0xffff, (u16) val & 0xffff, \
+ BCE_BMSR_PRINTFB); break; \
+case 0x04: DBPRINT(sc, BCE_INSANE_PHY, \
+ "%s(): phy = %d, reg = 0x%04X (ANAR ), val = 0x%b\n", \
+ __FUNCTION__, phy, (u16) reg & 0xffff, (u16) val & 0xffff, \
+ BCE_ANAR_PRINTFB); break; \
+case 0x05: DBPRINT(sc, BCE_INSANE_PHY, \
+ "%s(): phy = %d, reg = 0x%04X (ANLPAR ), val = 0x%b\n", \
+ __FUNCTION__, phy, (u16) reg & 0xffff, (u16) val & 0xffff, \
+ BCE_ANLPAR_PRINTFB); break; \
+case 0x09: DBPRINT(sc, BCE_INSANE_PHY, \
+ "%s(): phy = %d, reg = 0x%04X (1000CTL), val = 0x%b\n", \
+ __FUNCTION__, phy, (u16) reg & 0xffff, (u16) val & 0xffff, \
+ BCE_1000CTL_PRINTFB); break; \
+case 0x0a: DBPRINT(sc, BCE_INSANE_PHY, \
+ "%s(): phy = %d, reg = 0x%04X (1000STS), val = 0x%b\n", \
+ __FUNCTION__, phy, (u16) reg & 0xffff, (u16) val & 0xffff, \
+ BCE_1000STS_PRINTFB); break; \
+case 0x0f: DBPRINT(sc, BCE_INSANE_PHY, \
+ "%s(): phy = %d, reg = 0x%04X (EXTSTS ), val = 0x%b\n", \
+ __FUNCTION__, phy, (u16) reg & 0xffff, (u16) val & 0xffff, \
+ BCE_EXTSTS_PRINTFB); break; \
+case 0x19: DBPRINT(sc, BCE_INSANE_PHY, \
+ "%s(): phy = %d, reg = 0x%04X (AUXSTS ), val = 0x%b\n", \
+ __FUNCTION__, phy, (u16) reg & 0xffff, (u16) val & 0xffff, \
+ BCE_AUXSTS_PRINTFB); break; \
+default: DBPRINT(sc, BCE_INSANE_PHY, \
+ "%s(): phy = %d, reg = 0x%04X, val = 0x%04X\n", \
+ __FUNCTION__, phy, (u16) reg & 0xffff, (u16) val & 0xffff); \
+ }
+
+#else
+
+#define DBPRINT(level, format, args...)
+#define DBRUN(args...)
+#define DBRUNMSG(msg, args...)
+#define DBRUNLV(level, args...)
+#define DBRUNCP(cp, args...)
+#define DBRUNIF(cond, args...)
+#define DBENTER(cond)
+#define DBEXIT(cond)
+#define DBPUSH(cond)
+#define DBPOP()
+#define DB_RANDOMFALSE(defects)
+#define DB_OR_RANDOMFALSE(percent)
+#define DB_AND_RANDOMFALSE(percent)
+#define DB_RANDOMTRUE(defects)
+#define DB_OR_RANDOMTRUE(percent)
+#define DB_AND_RANDOMTRUE(percent)
+#define DB_PRINT_PHY_REG(reg, val)
+
+#endif /* BCE_DEBUG */
+
+
+#if __FreeBSD_version < 800054
+#if defined(__i386__) || defined(__amd64__)
+#define mb() __asm volatile("mfence" ::: "memory")
+#define wmb() __asm volatile("sfence" ::: "memory")
+#define rmb() __asm volatile("lfence" ::: "memory")
+#else
+#define mb()
+#define rmb()
+#define wmb()
+#endif
+#endif
+
+/****************************************************************************/
+/* Device identification definitions. */
+/****************************************************************************/
+#define BRCM_VENDORID 0x14E4
+#define BRCM_DEVICEID_BCM5706 0x164A
+#define BRCM_DEVICEID_BCM5706S 0x16AA
+#define BRCM_DEVICEID_BCM5708 0x164C
+#define BRCM_DEVICEID_BCM5708S 0x16AC
+#define BRCM_DEVICEID_BCM5709 0x1639
+#define BRCM_DEVICEID_BCM5709S 0x163A
+#define BRCM_DEVICEID_BCM5716 0x163B
+
+#define HP_VENDORID 0x103C
+
+#define PCI_ANY_ID (u_int16_t) (~0U)
+
+/* chip num:16-31, rev:12-15, metal:4-11, bond_id:0-3 */
+
+#define BCE_CHIP_NUM(sc) (((sc)->bce_chipid) & 0xffff0000)
+#define BCE_CHIP_NUM_5706 0x57060000
+#define BCE_CHIP_NUM_5708 0x57080000
+#define BCE_CHIP_NUM_5709 0x57090000
+#define BCE_CHIP_NUM_5716 0x57160000
+
+#define BCE_CHIP_REV(sc) (((sc)->bce_chipid) & 0x0000f000)
+#define BCE_CHIP_REV_Ax 0x00000000
+#define BCE_CHIP_REV_Bx 0x00001000
+#define BCE_CHIP_REV_Cx 0x00002000
+
+#define BCE_CHIP_METAL(sc) (((sc)->bce_chipid) & 0x00000ff0)
+#define BCE_CHIP_BOND(bp) (((sc)->bce_chipid) & 0x0000000f)
+
+#define BCE_CHIP_ID(sc) (((sc)->bce_chipid) & 0xfffffff0)
+#define BCE_CHIP_ID_5706_A0 0x57060000
+#define BCE_CHIP_ID_5706_A1 0x57060010
+#define BCE_CHIP_ID_5706_A2 0x57060020
+#define BCE_CHIP_ID_5706_A3 0x57060030
+#define BCE_CHIP_ID_5708_A0 0x57080000
+#define BCE_CHIP_ID_5708_B0 0x57081000
+#define BCE_CHIP_ID_5708_B1 0x57081010
+#define BCE_CHIP_ID_5708_B2 0x57081020
+#define BCE_CHIP_ID_5709_A0 0x57090000
+#define BCE_CHIP_ID_5709_A1 0x57090010
+#define BCE_CHIP_ID_5709_B0 0x57091000
+#define BCE_CHIP_ID_5709_B1 0x57091010
+#define BCE_CHIP_ID_5709_B2 0x57091020
+#define BCE_CHIP_ID_5709_C0 0x57092000
+#define BCE_CHIP_ID_5716_C0 0x57162000
+
+#define BCE_CHIP_BOND_ID(sc) (((sc)->bce_chipid) & 0xf)
+
+/* A serdes chip will have the first bit of the bond id set. */
+#define BCE_CHIP_BOND_ID_SERDES_BIT 0x01
+
+
+/* shorthand one */
+#define BCE_ASICREV(x) ((x) >> 28)
+#define BCE_ASICREV_BCM5700 0x06
+
+/* chip revisions */
+#define BCE_CHIPREV(x) ((x) >> 24)
+#define BCE_CHIPREV_5700_AX 0x70
+#define BCE_CHIPREV_5700_BX 0x71
+#define BCE_CHIPREV_5700_CX 0x72
+#define BCE_CHIPREV_5701_AX 0x00
+
+struct bce_type {
+ u_int16_t bce_vid;
+ u_int16_t bce_did;
+ u_int16_t bce_svid;
+ u_int16_t bce_sdid;
+ char *bce_name;
+};
+
+/****************************************************************************/
+/* Byte order conversions. */
+/****************************************************************************/
+#if __FreeBSD_version >= 500000
+#define bce_htobe16(x) htobe16(x)
+#define bce_htobe32(x) htobe32(x)
+#define bce_htobe64(x) htobe64(x)
+#define bce_htole16(x) htole16(x)
+#define bce_htole32(x) htole32(x)
+#define bce_htole64(x) htole64(x)
+
+#define bce_be16toh(x) be16toh(x)
+#define bce_be32toh(x) be32toh(x)
+#define bce_be64toh(x) be64toh(x)
+#define bce_le16toh(x) le16toh(x)
+#define bce_le32toh(x) le32toh(x)
+#define bce_le64toh(x) le64toh(x)
+#else
+#define bce_htobe16(x) (x)
+#define bce_htobe32(x) (x)
+#define bce_htobe64(x) (x)
+#define bce_htole16(x) (x)
+#define bce_htole32(x) (x)
+#define bce_htole64(x) (x)
+
+#define bce_be16toh(x) (x)
+#define bce_be32toh(x) (x)
+#define bce_be64toh(x) (x)
+#define bce_le16toh(x) (x)
+#define bce_le32toh(x) (x)
+#define bce_le64toh(x) (x)
+#endif
+
+
+/****************************************************************************/
+/* NVRAM Access */
+/****************************************************************************/
+
+/* Buffered flash (Atmel: AT45DB011B) specific information */
+#define SEEPROM_PAGE_BITS 2
+#define SEEPROM_PHY_PAGE_SIZE (1 << SEEPROM_PAGE_BITS)
+#define SEEPROM_BYTE_ADDR_MASK (SEEPROM_PHY_PAGE_SIZE-1)
+#define SEEPROM_PAGE_SIZE 4
+#define SEEPROM_TOTAL_SIZE 65536
+
+#define BUFFERED_FLASH_PAGE_BITS 9
+#define BUFFERED_FLASH_PHY_PAGE_SIZE (1 << BUFFERED_FLASH_PAGE_BITS)
+#define BUFFERED_FLASH_BYTE_ADDR_MASK (BUFFERED_FLASH_PHY_PAGE_SIZE-1)
+#define BUFFERED_FLASH_PAGE_SIZE 264
+#define BUFFERED_FLASH_TOTAL_SIZE 0x21000
+
+#define SAIFUN_FLASH_PAGE_BITS 8
+#define SAIFUN_FLASH_PHY_PAGE_SIZE (1 << SAIFUN_FLASH_PAGE_BITS)
+#define SAIFUN_FLASH_BYTE_ADDR_MASK (SAIFUN_FLASH_PHY_PAGE_SIZE-1)
+#define SAIFUN_FLASH_PAGE_SIZE 256
+#define SAIFUN_FLASH_BASE_TOTAL_SIZE 65536
+
+#define ST_MICRO_FLASH_PAGE_BITS 8
+#define ST_MICRO_FLASH_PHY_PAGE_SIZE (1 << ST_MICRO_FLASH_PAGE_BITS)
+#define ST_MICRO_FLASH_BYTE_ADDR_MASK (ST_MICRO_FLASH_PHY_PAGE_SIZE-1)
+#define ST_MICRO_FLASH_PAGE_SIZE 256
+#define ST_MICRO_FLASH_BASE_TOTAL_SIZE 65536
+
+#define BCM5709_FLASH_PAGE_BITS 8
+#define BCM5709_FLASH_PHY_PAGE_SIZE (1 << BCM5709_FLASH_PAGE_BITS)
+#define BCM5709_FLASH_BYTE_ADDR_MASK (BCM5709_FLASH_PHY_PAGE_SIZE-1)
+#define BCM5709_FLASH_PAGE_SIZE 256
+
+#define NVRAM_TIMEOUT_COUNT 30000
+#define BCE_FLASHDESC_MAX 64
+
+#define FLASH_STRAP_MASK (BCE_NVM_CFG1_FLASH_MODE | \
+ BCE_NVM_CFG1_BUFFER_MODE | BCE_NVM_CFG1_PROTECT_MODE | \
+ BCE_NVM_CFG1_FLASH_SIZE)
+
+#define FLASH_BACKUP_STRAP_MASK (0xf << 26)
+
+struct flash_spec {
+ u32 strapping;
+ u32 config1;
+ u32 config2;
+ u32 config3;
+ u32 write1;
+#define BCE_NV_BUFFERED 0x00000001
+#define BCE_NV_TRANSLATE 0x00000002
+#define BCE_NV_WREN 0x00000004
+ u32 flags;
+ u32 page_bits;
+ u32 page_size;
+ u32 addr_mask;
+ u32 total_size;
+ u8 *name;
+};
+
+
+/****************************************************************************/
+/* Shared Memory layout */
+/* The BCE bootcode will initialize this data area with port configurtion */
+/* information which can be accessed by the driver. */
+/****************************************************************************/
+
+/*
+ * This value (in milliseconds) determines the frequency of the driver
+ * issuing the PULSE message code. The firmware monitors this periodic
+ * pulse to determine when to switch to an OS-absent mode.
+ */
+#define DRV_PULSE_PERIOD_MS 250
+
+/*
+ * This value (in milliseconds) determines how long the driver should
+ * wait for an acknowledgement from the firmware before timing out. Once
+ * the firmware has timed out, the driver will assume there is no firmware
+ * running and there won't be any firmware-driver synchronization during a
+ * driver reset.
+ */
+#define FW_ACK_TIME_OUT_MS 1000
+
+
+#define BCE_DRV_RESET_SIGNATURE 0x00000000
+#define BCE_DRV_RESET_SIGNATURE_MAGIC 0x4841564b /* HAVK */
+
+#define BCE_DRV_MB 0x00000004
+#define BCE_DRV_MSG_CODE 0xff000000
+#define BCE_DRV_MSG_CODE_RESET 0x01000000
+#define BCE_DRV_MSG_CODE_UNLOAD 0x02000000
+#define BCE_DRV_MSG_CODE_SHUTDOWN 0x03000000
+#define BCE_DRV_MSG_CODE_SUSPEND_WOL 0x04000000
+#define BCE_DRV_MSG_CODE_FW_TIMEOUT 0x05000000
+#define BCE_DRV_MSG_CODE_PULSE 0x06000000
+#define BCE_DRV_MSG_CODE_DIAG 0x07000000
+#define BCE_DRV_MSG_CODE_SUSPEND_NO_WOL 0x09000000
+#define BCE_DRV_MSG_CODE_UNLOAD_LNK_DN 0x0b000000
+#define BCE_DRV_MSG_CODE_CMD_SET_LINK 0x10000000
+
+#define BCE_DRV_MSG_DATA 0x00ff0000
+#define BCE_DRV_MSG_DATA_WAIT0 0x00010000
+#define BCE_DRV_MSG_DATA_WAIT1 0x00020000
+#define BCE_DRV_MSG_DATA_WAIT2 0x00030000
+#define BCE_DRV_MSG_DATA_WAIT3 0x00040000
+
+#define BCE_DRV_MSG_SEQ 0x0000ffff
+
+#define BCE_FW_MB 0x00000008
+#define BCE_FW_MSG_ACK 0x0000ffff
+#define BCE_FW_MSG_STATUS_MASK 0x00ff0000
+#define BCE_FW_MSG_STATUS_OK 0x00000000
+#define BCE_FW_MSG_STATUS_INVALID_ARGS 0x00010000
+#define BCE_FW_MSG_STATUS_DRV_PRSNT 0x00020000
+#define BCE_FW_MSG_STATUS_FAILURE 0x00ff0000
+
+#define BCE_LINK_STATUS 0x0000000c
+#define BCE_LINK_STATUS_INIT_VALUE 0xffffffff
+#define BCE_LINK_STATUS_LINK_UP 0x1
+#define BCE_LINK_STATUS_LINK_DOWN 0x0
+#define BCE_LINK_STATUS_SPEED_MASK 0x1e
+#define BCE_LINK_STATUS_AN_INCOMPLETE (0<<1)
+#define BCE_LINK_STATUS_10HALF (1<<1)
+#define BCE_LINK_STATUS_10FULL (2<<1)
+#define BCE_LINK_STATUS_100HALF (3<<1)
+#define BCE_LINK_STATUS_100BASE_T4 (4<<1)
+#define BCE_LINK_STATUS_100FULL (5<<1)
+#define BCE_LINK_STATUS_1000HALF (6<<1)
+#define BCE_LINK_STATUS_1000FULL (7<<1)
+#define BCE_LINK_STATUS_2500HALF (8<<1)
+#define BCE_LINK_STATUS_2500FULL (9<<1)
+#define BCE_LINK_STATUS_AN_ENABLED (1<<5)
+#define BCE_LINK_STATUS_AN_COMPLETE (1<<6)
+#define BCE_LINK_STATUS_PARALLEL_DET (1<<7)
+#define BCE_LINK_STATUS_RESERVED (1<<8)
+#define BCE_LINK_STATUS_PARTNER_AD_1000FULL (1<<9)
+#define BCE_LINK_STATUS_PARTNER_AD_1000HALF (1<<10)
+#define BCE_LINK_STATUS_PARTNER_AD_100BT4 (1<<11)
+#define BCE_LINK_STATUS_PARTNER_AD_100FULL (1<<12)
+#define BCE_LINK_STATUS_PARTNER_AD_100HALF (1<<13)
+#define BCE_LINK_STATUS_PARTNER_AD_10FULL (1<<14)
+#define BCE_LINK_STATUS_PARTNER_AD_10HALF (1<<15)
+#define BCE_LINK_STATUS_TX_FC_ENABLED (1<<16)
+#define BCE_LINK_STATUS_RX_FC_ENABLED (1<<17)
+#define BCE_LINK_STATUS_PARTNER_SYM_PAUSE_CAP (1<<18)
+#define BCE_LINK_STATUS_PARTNER_ASYM_PAUSE_CAP (1<<19)
+#define BCE_LINK_STATUS_SERDES_LINK (1<<20)
+#define BCE_LINK_STATUS_PARTNER_AD_2500FULL (1<<21)
+#define BCE_LINK_STATUS_PARTNER_AD_2500HALF (1<<22)
+
+#define BCE_DRV_PULSE_MB 0x00000010
+#define BCE_DRV_PULSE_SEQ_MASK 0x00007fff
+
+#define BCE_MB_ARGS_0 0x00000014
+#define BCE_MB_ARGS_1 0x00000018
+
+/* Indicate to the firmware not to go into the
+ * OS absent when it is not getting driver pulse.
+ * This is used for debugging. */
+#define BCE_DRV_MSG_DATA_PULSE_CODE_ALWAYS_ALIVE 0x00080000
+
+#define BCE_DEV_INFO_SIGNATURE 0x00000020
+#define BCE_DEV_INFO_SIGNATURE_MAGIC 0x44564900
+#define BCE_DEV_INFO_SIGNATURE_MAGIC_MASK 0xffffff00
+#define BCE_DEV_INFO_FEATURE_CFG_VALID 0x01
+#define BCE_DEV_INFO_SECONDARY_PORT 0x80
+#define BCE_DEV_INFO_DRV_ALWAYS_ALIVE 0x40
+
+#define BCE_SHARED_HW_CFG_PART_NUM 0x00000024
+
+#define BCE_SHARED_HW_CFG_POWER_DISSIPATED 0x00000034
+#define BCE_SHARED_HW_CFG_POWER_STATE_D3_MASK 0xff000000
+#define BCE_SHARED_HW_CFG_POWER_STATE_D2_MASK 0xff0000
+#define BCE_SHARED_HW_CFG_POWER_STATE_D1_MASK 0xff00
+#define BCE_SHARED_HW_CFG_POWER_STATE_D0_MASK 0xff
+
+#define BCE_SHARED_HW_CFG_POWER_CONSUMED 0x00000038
+#define BCE_SHARED_HW_CFG_CONFIG 0x0000003c
+#define BCE_SHARED_HW_CFG_DESIGN_NIC 0
+#define BCE_SHARED_HW_CFG_DESIGN_LOM 0x1
+#define BCE_SHARED_HW_CFG_PHY_COPPER 0
+#define BCE_SHARED_HW_CFG_PHY_FIBER 0x2
+#define BCE_SHARED_HW_CFG_PHY_2_5G 0x20
+#define BCE_SHARED_HW_CFG_PHY_BACKPLANE 0x40
+#define BCE_SHARED_HW_CFG_LED_MODE_SHIFT_BITS 8
+#define BCE_SHARED_HW_CFG_LED_MODE_MASK 0x300
+#define BCE_SHARED_HW_CFG_LED_MODE_MAC 0
+#define BCE_SHARED_HW_CFG_LED_MODE_GPHY1 0x100
+#define BCE_SHARED_HW_CFG_LED_MODE_GPHY2 0x200
+
+#define BCE_SHARED_HW_CFG_CONFIG2 0x00000040
+#define BCE_SHARED_HW_CFG2_NVM_SIZE_MASK 0x00fff000
+
+#define BCE_DEV_INFO_BC_REV 0x0000004c
+
+#define BCE_PORT_HW_CFG_MAC_UPPER 0x00000050
+#define BCE_PORT_HW_CFG_UPPERMAC_MASK 0xffff
+
+#define BCE_PORT_HW_CFG_MAC_LOWER 0x00000054
+#define BCE_PORT_HW_CFG_CONFIG 0x00000058
+#define BCE_PORT_HW_CFG_CFG_TXCTL3_MASK 0x0000ffff
+#define BCE_PORT_HW_CFG_CFG_DFLT_LINK_MASK 0x001f0000
+#define BCE_PORT_HW_CFG_CFG_DFLT_LINK_AN 0x00000000
+#define BCE_PORT_HW_CFG_CFG_DFLT_LINK_1G 0x00030000
+#define BCE_PORT_HW_CFG_CFG_DFLT_LINK_2_5G 0x00040000
+
+#define BCE_PORT_HW_CFG_IMD_MAC_A_UPPER 0x00000068
+#define BCE_PORT_HW_CFG_IMD_MAC_A_LOWER 0x0000006c
+#define BCE_PORT_HW_CFG_IMD_MAC_B_UPPER 0x00000070
+#define BCE_PORT_HW_CFG_IMD_MAC_B_LOWER 0x00000074
+#define BCE_PORT_HW_CFG_ISCSI_MAC_UPPER 0x00000078
+#define BCE_PORT_HW_CFG_ISCSI_MAC_LOWER 0x0000007c
+
+#define BCE_DEV_INFO_PER_PORT_HW_CONFIG2 0x000000b4
+
+#define BCE_DEV_INFO_FORMAT_REV 0x000000c4
+#define BCE_DEV_INFO_FORMAT_REV_MASK 0xff000000
+#define BCE_DEV_INFO_FORMAT_REV_ID ('A' << 24)
+
+#define BCE_SHARED_FEATURE 0x000000c8
+#define BCE_SHARED_FEATURE_MASK 0xffffffff
+
+#define BCE_PORT_FEATURE 0x000000d8
+#define BCE_PORT2_FEATURE 0x00000014c
+#define BCE_PORT_FEATURE_WOL_ENABLED 0x01000000
+#define BCE_PORT_FEATURE_MBA_ENABLED 0x02000000
+#define BCE_PORT_FEATURE_ASF_ENABLED 0x04000000
+#define BCE_PORT_FEATURE_IMD_ENABLED 0x08000000
+#define BCE_PORT_FEATURE_BAR1_SIZE_MASK 0xf
+#define BCE_PORT_FEATURE_BAR1_SIZE_DISABLED 0x0
+#define BCE_PORT_FEATURE_BAR1_SIZE_64K 0x1
+#define BCE_PORT_FEATURE_BAR1_SIZE_128K 0x2
+#define BCE_PORT_FEATURE_BAR1_SIZE_256K 0x3
+#define BCE_PORT_FEATURE_BAR1_SIZE_512K 0x4
+#define BCE_PORT_FEATURE_BAR1_SIZE_1M 0x5
+#define BCE_PORT_FEATURE_BAR1_SIZE_2M 0x6
+#define BCE_PORT_FEATURE_BAR1_SIZE_4M 0x7
+#define BCE_PORT_FEATURE_BAR1_SIZE_8M 0x8
+#define BCE_PORT_FEATURE_BAR1_SIZE_16M 0x9
+#define BCE_PORT_FEATURE_BAR1_SIZE_32M 0xa
+#define BCE_PORT_FEATURE_BAR1_SIZE_64M 0xb
+#define BCE_PORT_FEATURE_BAR1_SIZE_128M 0xc
+#define BCE_PORT_FEATURE_BAR1_SIZE_256M 0xd
+#define BCE_PORT_FEATURE_BAR1_SIZE_512M 0xe
+#define BCE_PORT_FEATURE_BAR1_SIZE_1G 0xf
+
+#define BCE_PORT_FEATURE_WOL 0xdc
+#define BCE_PORT2_FEATURE_WOL 0x150
+#define BCE_PORT_FEATURE_WOL_DEFAULT_SHIFT_BITS 4
+#define BCE_PORT_FEATURE_WOL_DEFAULT_MASK 0x30
+#define BCE_PORT_FEATURE_WOL_DEFAULT_DISABLE 0
+#define BCE_PORT_FEATURE_WOL_DEFAULT_MAGIC 0x10
+#define BCE_PORT_FEATURE_WOL_DEFAULT_ACPI 0x20
+#define BCE_PORT_FEATURE_WOL_DEFAULT_MAGIC_AND_ACPI 0x30
+#define BCE_PORT_FEATURE_WOL_LINK_SPEED_MASK 0xf
+#define BCE_PORT_FEATURE_WOL_LINK_SPEED_AUTONEG 0
+#define BCE_PORT_FEATURE_WOL_LINK_SPEED_10HALF 1
+#define BCE_PORT_FEATURE_WOL_LINK_SPEED_10FULL 2
+#define BCE_PORT_FEATURE_WOL_LINK_SPEED_100HALF 3
+#define BCE_PORT_FEATURE_WOL_LINK_SPEED_100FULL 4
+#define BCE_PORT_FEATURE_WOL_LINK_SPEED_1000HALF 5
+#define BCE_PORT_FEATURE_WOL_LINK_SPEED_1000FULL 6
+#define BCE_PORT_FEATURE_WOL_AUTONEG_ADVERTISE_1000 0x40
+#define BCE_PORT_FEATURE_WOL_RESERVED_PAUSE_CAP 0x400
+#define BCE_PORT_FEATURE_WOL_RESERVED_ASYM_PAUSE_CAP 0x800
+
+#define BCE_PORT_FEATURE_MBA 0xe0
+#define BCE_PORT2_FEATURE_MBA 0x154
+#define BCE_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_SHIFT_BITS 0
+#define BCE_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_MASK 0x3
+#define BCE_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_PXE 0
+#define BCE_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_RPL 1
+#define BCE_PORT_FEATURE_MBA_BOOT_AGENT_TYPE_BOOTP 2
+#define BCE_PORT_FEATURE_MBA_LINK_SPEED_SHIFT_BITS 2
+#define BCE_PORT_FEATURE_MBA_LINK_SPEED_MASK 0x3c
+#define BCE_PORT_FEATURE_MBA_LINK_SPEED_AUTONEG 0
+#define BCE_PORT_FEATURE_MBA_LINK_SPEED_10HALF 0x4
+#define BCE_PORT_FEATURE_MBA_LINK_SPEED_10FULL 0x8
+#define BCE_PORT_FEATURE_MBA_LINK_SPEED_100HALF 0xc
+#define BCE_PORT_FEATURE_MBA_LINK_SPEED_100FULL 0x10
+#define BCE_PORT_FEATURE_MBA_LINK_SPEED_1000HALF 0x14
+#define BCE_PORT_FEATURE_MBA_LINK_SPEED_1000FULL 0x18
+#define BCE_PORT_FEATURE_MBA_SETUP_PROMPT_ENABLE 0x40
+#define BCE_PORT_FEATURE_MBA_HOTKEY_CTRL_S 0
+#define BCE_PORT_FEATURE_MBA_HOTKEY_CTRL_B 0x80
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_SHIFT_BITS 8
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_MASK 0xff00
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_DISABLED 0
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_1K 0x100
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_2K 0x200
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_4K 0x300
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_8K 0x400
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_16K 0x500
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_32K 0x600
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_64K 0x700
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_128K 0x800
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_256K 0x900
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_512K 0xa00
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_1M 0xb00
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_2M 0xc00
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_4M 0xd00
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_8M 0xe00
+#define BCE_PORT_FEATURE_MBA_EXP_ROM_SIZE_16M 0xf00
+#define BCE_PORT_FEATURE_MBA_MSG_TIMEOUT_SHIFT_BITS 16
+#define BCE_PORT_FEATURE_MBA_MSG_TIMEOUT_MASK 0xf0000
+#define BCE_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_SHIFT_BITS 20
+#define BCE_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_MASK 0x300000
+#define BCE_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_AUTO 0
+#define BCE_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_BBS 0x100000
+#define BCE_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_INT18H 0x200000
+#define BCE_PORT_FEATURE_MBA_BIOS_BOOTSTRAP_INT19H 0x300000
+
+#define BCE_PORT_FEATURE_IMD 0xe4
+#define BCE_PORT2_FEATURE_IMD 0x158
+#define BCE_PORT_FEATURE_IMD_LINK_OVERRIDE_DEFAULT 0
+#define BCE_PORT_FEATURE_IMD_LINK_OVERRIDE_ENABLE 1
+
+#define BCE_PORT_FEATURE_VLAN 0xe8
+#define BCE_PORT2_FEATURE_VLAN 0x15c
+#define BCE_PORT_FEATURE_MBA_VLAN_TAG_MASK 0xffff
+#define BCE_PORT_FEATURE_MBA_VLAN_ENABLE 0x10000
+
+#define BCE_MFW_VER_PTR 0x00000014c
+
+#define BCE_BC_STATE_RESET_TYPE 0x000001c0
+#define BCE_BC_STATE_RESET_TYPE_SIG 0x00005254
+#define BCE_BC_STATE_RESET_TYPE_SIG_MASK 0x0000ffff
+
+#define BCE_BC_STATE_RESET_TYPE_NONE \
+ (BCE_BC_STATE_RESET_TYPE_SIG | 0x00010000)
+#define BCE_BC_STATE_RESET_TYPE_PCI \
+ (BCE_BC_STATE_RESET_TYPE_SIG | 0x00020000)
+#define BCE_BC_STATE_RESET_TYPE_VAUX \
+ (BCE_BC_STATE_RESET_TYPE_SIG | 0x00030000)
+#define BCE_BC_STATE_RESET_TYPE_DRV_MASK DRV_MSG_CODE
+#define BCE_BC_STATE_RESET_TYPE_DRV_RESET \
+ (BCE_BC_STATE_RESET_TYPE_SIG | DRV_MSG_CODE_RESET)
+#define BCE_BC_STATE_RESET_TYPE_DRV_UNLOAD \
+ (BCE_BC_STATE_RESET_TYPE_SIG | DRV_MSG_CODE_UNLOAD)
+#define BCE_BC_STATE_RESET_TYPE_DRV_SHUTDOWN \
+ (BCE_BC_STATE_RESET_TYPE_SIG | DRV_MSG_CODE_SHUTDOWN)
+#define BCE_BC_STATE_RESET_TYPE_DRV_WOL \
+ (BCE_BC_STATE_RESET_TYPE_SIG | DRV_MSG_CODE_WOL)
+#define BCE_BC_STATE_RESET_TYPE_DRV_DIAG \
+ (BCE_BC_STATE_RESET_TYPE_SIG | DRV_MSG_CODE_DIAG)
+#define BCE_BC_STATE_RESET_TYPE_VALUE(msg) \
+ (BCE_BC_STATE_RESET_TYPE_SIG | (msg))
+
+#define BCE_BC_RESET_TYPE 0x000001c0
+
+#define BCE_BC_STATE 0x000001c4
+#define BCE_BC_STATE_ERR_MASK 0x0000ff00
+#define BCE_BC_STATE_SIGN 0x42530000
+#define BCE_BC_STATE_SIGN_MASK 0xffff0000
+#define BCE_BC_STATE_BC1_START (BCE_BC_STATE_SIGN | 0x1)
+#define BCE_BC_STATE_GET_NVM_CFG1 (BCE_BC_STATE_SIGN | 0x2)
+#define BCE_BC_STATE_PROG_BAR (BCE_BC_STATE_SIGN | 0x3)
+#define BCE_BC_STATE_INIT_VID (BCE_BC_STATE_SIGN | 0x4)
+#define BCE_BC_STATE_GET_NVM_CFG2 (BCE_BC_STATE_SIGN | 0x5)
+#define BCE_BC_STATE_APPLY_WKARND (BCE_BC_STATE_SIGN | 0x6)
+#define BCE_BC_STATE_LOAD_BC2 (BCE_BC_STATE_SIGN | 0x7)
+#define BCE_BC_STATE_GOING_BC2 (BCE_BC_STATE_SIGN | 0x8)
+#define BCE_BC_STATE_GOING_DIAG (BCE_BC_STATE_SIGN | 0x9)
+#define BCE_BC_STATE_RT_FINAL_INIT (BCE_BC_STATE_SIGN | 0x81)
+#define BCE_BC_STATE_RT_WKARND (BCE_BC_STATE_SIGN | 0x82)
+#define BCE_BC_STATE_RT_DRV_PULSE (BCE_BC_STATE_SIGN | 0x83)
+#define BCE_BC_STATE_RT_FIOEVTS (BCE_BC_STATE_SIGN | 0x84)
+#define BCE_BC_STATE_RT_DRV_CMD (BCE_BC_STATE_SIGN | 0x85)
+#define BCE_BC_STATE_RT_LOW_POWER (BCE_BC_STATE_SIGN | 0x86)
+#define BCE_BC_STATE_RT_SET_WOL (BCE_BC_STATE_SIGN | 0x87)
+#define BCE_BC_STATE_RT_OTHER_FW (BCE_BC_STATE_SIGN | 0x88)
+#define BCE_BC_STATE_RT_GOING_D3 (BCE_BC_STATE_SIGN | 0x89)
+#define BCE_BC_STATE_ERR_BAD_VERSION (BCE_BC_STATE_SIGN | 0x0100)
+#define BCE_BC_STATE_ERR_BAD_BC2_CRC (BCE_BC_STATE_SIGN | 0x0200)
+#define BCE_BC_STATE_ERR_BC1_LOOP (BCE_BC_STATE_SIGN | 0x0300)
+#define BCE_BC_STATE_ERR_UNKNOWN_CMD (BCE_BC_STATE_SIGN | 0x0400)
+#define BCE_BC_STATE_ERR_DRV_DEAD (BCE_BC_STATE_SIGN | 0x0500)
+#define BCE_BC_STATE_ERR_NO_RXP (BCE_BC_STATE_SIGN | 0x0600)
+#define BCE_BC_STATE_ERR_TOO_MANY_RBUF (BCE_BC_STATE_SIGN | 0x0700)
+
+#define BCE_BC_STATE_CONDITION 0x000001c8
+#define BCE_CONDITION_INIT_POR 0x00000001
+#define BCE_CONDITION_INIT_VAUX_AVAIL 0x00000002
+#define BCE_CONDITION_INIT_PCI_AVAIL 0x00000004
+#define BCE_CONDITION_INIT_PCI_RESET 0x00000008
+#define BCE_CONDITION_INIT_HD_RESET 0x00000010 /* 5709/16 only */
+#define BCE_CONDITION_DRV_PRESENT 0x00000100
+#define BCE_CONDITION_LOW_POWER_LINK 0x00000200
+#define BCE_CONDITION_CORE_RST_OCCURRED 0x00000400 /* 5709/16 only */
+#define BCE_CONDITION_UNUSED 0x00000800
+#define BCE_CONDITION_BUSY_EXPROM 0x00001000 /* 5706/08 only */
+
+#define BCE_CONDITION_MFW_RUN_UNKNOWN 0x00000000
+#define BCE_CONDITION_MFW_RUN_IPMI 0x00002000
+#define BCE_CONDITION_MFW_RUN_UMP 0x00004000
+#define BCE_CONDITION_MFW_RUN_NCSI 0x00006000
+#define BCE_CONDITION_MFW_RUN_NONE 0x0000e000
+#define BCE_CONDITION_MFW_RUN_MASK 0x0000e000
+
+/* 5709/16 only */
+#define BCE_CONDITION_PM_STATE_MASK 0x00030000
+#define BCE_CONDITION_PM_STATE_FULL 0x00030000
+#define BCE_CONDITION_PM_STATE_PREP 0x00020000
+#define BCE_CONDITION_PM_STATE_UNPREP 0x00010000
+#define BCE_CONDITION_PM_RESERVED 0x00000000
+
+/* 5709/16 only */
+#define BCE_CONDITION_RXMODE_KEEP_VLAN 0x00040000
+#define BCE_CONDITION_DRV_WOL_ENABLED 0x00080000
+#define BCE_CONDITION_PORT_DISABLED 0x00100000
+#define BCE_CONDITION_DRV_MAYBE_OUT 0x00200000
+#define BCE_CONDITION_DPFW_DEAD 0x00400000
+
+#define BCE_BC_STATE_DEBUG_CMD 0x000001dc
+#define BCE_BC_STATE_BC_DBG_CMD_SIGNATURE 0x42440000
+#define BCE_BC_STATE_BC_DBG_CMD_SIGNATURE_MASK 0xffff0000
+#define BCE_BC_STATE_BC_DBG_CMD_LOOP_CNT_MASK 0xffff
+#define BCE_BC_STATE_BC_DBG_CMD_LOOP_INFINITE 0xffff
+
+#define HOST_VIEW_SHMEM_BASE 0x167c00
+
+/*
+ * PCI registers defined in the PCI 2.2 spec.
+ */
+#define BCE_PCI_PCIX_CMD 0x42
+
+
+/****************************************************************************/
+/* Convenience definitions. */
+/****************************************************************************/
+#define BCE_PRINTF(fmt, args...) \
+ device_printf(sc->bce_dev, fmt, ##args)
+
+#define BCE_LOCK_INIT(_sc, _name) \
+ mtx_init(&(_sc)->bce_mtx, _name, MTX_NETWORK_LOCK, MTX_DEF)
+#define BCE_LOCK(_sc) mtx_lock(&(_sc)->bce_mtx)
+#define BCE_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->bce_mtx, MA_OWNED)
+#define BCE_UNLOCK(_sc) mtx_unlock(&(_sc)->bce_mtx)
+#define BCE_LOCK_DESTROY(_sc) mtx_destroy(&(_sc)->bce_mtx)
+
+#ifdef BCE_DEBUG
+#define REG_WR(sc, offset, val) bce_reg_wr(sc, offset, val)
+#define REG_WR16(sc, offset, val) bce_reg_wr16(sc, offset, val)
+#define REG_RD(sc, offset) bce_reg_rd(sc, offset)
+#else
+#define REG_WR(sc, offset, val) \
+ bus_space_write_4(sc->bce_btag, sc->bce_bhandle, offset, val)
+#define REG_WR16(sc, offset, val) \
+ bus_space_write_2(sc->bce_btag, sc->bce_bhandle, offset, val)
+#define REG_RD(sc, offset) \
+ bus_space_read_4(sc->bce_btag, sc->bce_bhandle, offset)
+#endif
+
+#define REG_RD_IND(sc, offset) bce_reg_rd_ind(sc, offset)
+#define REG_WR_IND(sc, offset, val) bce_reg_wr_ind(sc, offset, val)
+#define CTX_WR(sc, cid_addr, offset, val)bce_ctx_wr(sc, cid_addr, offset, val)
+#define CTX_RD(sc, cid_addr, offset) bce_ctx_rd(sc, cid_addr, offset)
+
+#define BCE_SETBIT(sc, reg, x) \
+ REG_WR(sc, reg, (REG_RD(sc, reg) | (x)))
+#define BCE_CLRBIT(sc, reg, x) \
+ REG_WR(sc, reg, (REG_RD(sc, reg) & ~(x)))
+#define PCI_SETBIT(dev, reg, x, s) \
+ pci_write_config(dev, reg, (pci_read_config(dev, reg, s) | (x)), s)
+#define PCI_CLRBIT(dev, reg, x, s) \
+ pci_write_config(dev, reg, (pci_read_config(dev, reg, s) & ~(x)), s)
+
+#define BCE_STATS(x) (u_long) stats->stat_ ## x ## _lo
+
+#if (BUS_SPACE_MAXADDR > 0xFFFFFFFF)
+#define BCE_ADDR_LO(y) ((u64) (y) & 0xFFFFFFFF)
+#define BCE_ADDR_HI(y) ((u64) (y) >> 32)
+#else
+#define BCE_ADDR_LO(y) ((u32)y)
+#define BCE_ADDR_HI(y) (0)
+#endif
+
+
+/****************************************************************************/
+/* Do not modify any of the following data structures, they are generated */
+/* from RTL code. */
+/* */
+/* Begin machine generated definitions. */
+/****************************************************************************/
+
+/*
+ * tx_bd definition
+ */
+struct tx_bd {
+ u32 tx_bd_haddr_hi;
+ u32 tx_bd_haddr_lo;
+ u32 tx_bd_mss_nbytes;
+ u16 tx_bd_flags;
+ u16 tx_bd_vlan_tag;
+ #define TX_BD_FLAGS_CONN_FAULT (1<<0)
+ #define TX_BD_FLAGS_TCP_UDP_CKSUM (1<<1)
+ #define TX_BD_FLAGS_IP_CKSUM (1<<2)
+ #define TX_BD_FLAGS_VLAN_TAG (1<<3)
+ #define TX_BD_FLAGS_COAL_NOW (1<<4)
+ #define TX_BD_FLAGS_DONT_GEN_CRC (1<<5)
+ #define TX_BD_FLAGS_END (1<<6)
+ #define TX_BD_FLAGS_START (1<<7)
+ #define TX_BD_FLAGS_SW_OPTION_WORD (0x1f<<8)
+ #define TX_BD_FLAGS_SW_FLAGS (1<<13)
+ #define TX_BD_FLAGS_SW_SNAP (1<<14)
+ #define TX_BD_FLAGS_SW_LSO (1<<15)
+
+};
+
+
+/*
+ * rx_bd definition
+ */
+struct rx_bd {
+ u32 rx_bd_haddr_hi;
+ u32 rx_bd_haddr_lo;
+ u32 rx_bd_len;
+ u32 rx_bd_flags;
+ #define RX_BD_FLAGS_NOPUSH (1<<0)
+ #define RX_BD_FLAGS_DUMMY (1<<1)
+ #define RX_BD_FLAGS_END (1<<2)
+ #define RX_BD_FLAGS_START (1<<3)
+
+};
+
+
+/*
+ * status_block definition
+ */
+struct status_block {
+ u32 status_attn_bits;
+ #define STATUS_ATTN_BITS_LINK_STATE (1L<<0)
+ #define STATUS_ATTN_BITS_TX_SCHEDULER_ABORT (1L<<1)
+ #define STATUS_ATTN_BITS_TX_BD_READ_ABORT (1L<<2)
+ #define STATUS_ATTN_BITS_TX_BD_CACHE_ABORT (1L<<3)
+ #define STATUS_ATTN_BITS_TX_PROCESSOR_ABORT (1L<<4)
+ #define STATUS_ATTN_BITS_TX_DMA_ABORT (1L<<5)
+ #define STATUS_ATTN_BITS_TX_PATCHUP_ABORT (1L<<6)
+ #define STATUS_ATTN_BITS_TX_ASSEMBLER_ABORT (1L<<7)
+ #define STATUS_ATTN_BITS_RX_PARSER_MAC_ABORT (1L<<8)
+ #define STATUS_ATTN_BITS_RX_PARSER_CATCHUP_ABORT (1L<<9)
+ #define STATUS_ATTN_BITS_RX_MBUF_ABORT (1L<<10)
+ #define STATUS_ATTN_BITS_RX_LOOKUP_ABORT (1L<<11)
+ #define STATUS_ATTN_BITS_RX_PROCESSOR_ABORT (1L<<12)
+ #define STATUS_ATTN_BITS_RX_V2P_ABORT (1L<<13)
+ #define STATUS_ATTN_BITS_RX_BD_CACHE_ABORT (1L<<14)
+ #define STATUS_ATTN_BITS_RX_DMA_ABORT (1L<<15)
+ #define STATUS_ATTN_BITS_COMPLETION_ABORT (1L<<16)
+ #define STATUS_ATTN_BITS_HOST_COALESCE_ABORT (1L<<17)
+ #define STATUS_ATTN_BITS_MAILBOX_QUEUE_ABORT (1L<<18)
+ #define STATUS_ATTN_BITS_CONTEXT_ABORT (1L<<19)
+ #define STATUS_ATTN_BITS_CMD_SCHEDULER_ABORT (1L<<20)
+ #define STATUS_ATTN_BITS_CMD_PROCESSOR_ABORT (1L<<21)
+ #define STATUS_ATTN_BITS_MGMT_PROCESSOR_ABORT (1L<<22)
+ #define STATUS_ATTN_BITS_MAC_ABORT (1L<<23)
+ #define STATUS_ATTN_BITS_TIMER_ABORT (1L<<24)
+ #define STATUS_ATTN_BITS_DMAE_ABORT (1L<<25)
+ #define STATUS_ATTN_BITS_FLSH_ABORT (1L<<26)
+ #define STATUS_ATTN_BITS_GRC_ABORT (1L<<27)
+ #define STATUS_ATTN_BITS_PARITY_ERROR (1L<<31)
+
+ u32 status_attn_bits_ack;
+#if defined(__BIG_ENDIAN)
+ u16 status_tx_quick_consumer_index0;
+ u16 status_tx_quick_consumer_index1;
+ u16 status_tx_quick_consumer_index2;
+ u16 status_tx_quick_consumer_index3;
+ u16 status_rx_quick_consumer_index0;
+ u16 status_rx_quick_consumer_index1;
+ u16 status_rx_quick_consumer_index2;
+ u16 status_rx_quick_consumer_index3;
+ u16 status_rx_quick_consumer_index4;
+ u16 status_rx_quick_consumer_index5;
+ u16 status_rx_quick_consumer_index6;
+ u16 status_rx_quick_consumer_index7;
+ u16 status_rx_quick_consumer_index8;
+ u16 status_rx_quick_consumer_index9;
+ u16 status_rx_quick_consumer_index10;
+ u16 status_rx_quick_consumer_index11;
+ u16 status_rx_quick_consumer_index12;
+ u16 status_rx_quick_consumer_index13;
+ u16 status_rx_quick_consumer_index14;
+ u16 status_rx_quick_consumer_index15;
+ u16 status_completion_producer_index;
+ u16 status_cmd_consumer_index;
+ u16 status_idx;
+ u16 status_unused;
+#elif defined(__LITTLE_ENDIAN)
+ u16 status_tx_quick_consumer_index1;
+ u16 status_tx_quick_consumer_index0;
+ u16 status_tx_quick_consumer_index3;
+ u16 status_tx_quick_consumer_index2;
+ u16 status_rx_quick_consumer_index1;
+ u16 status_rx_quick_consumer_index0;
+ u16 status_rx_quick_consumer_index3;
+ u16 status_rx_quick_consumer_index2;
+ u16 status_rx_quick_consumer_index5;
+ u16 status_rx_quick_consumer_index4;
+ u16 status_rx_quick_consumer_index7;
+ u16 status_rx_quick_consumer_index6;
+ u16 status_rx_quick_consumer_index9;
+ u16 status_rx_quick_consumer_index8;
+ u16 status_rx_quick_consumer_index11;
+ u16 status_rx_quick_consumer_index10;
+ u16 status_rx_quick_consumer_index13;
+ u16 status_rx_quick_consumer_index12;
+ u16 status_rx_quick_consumer_index15;
+ u16 status_rx_quick_consumer_index14;
+ u16 status_cmd_consumer_index;
+ u16 status_completion_producer_index;
+ u16 status_unused;
+ u16 status_idx;
+#endif
+};
+
+
+/*
+ * statistics_block definition
+ */
+struct statistics_block {
+ u32 stat_IfHCInOctets_hi;
+ u32 stat_IfHCInOctets_lo;
+ u32 stat_IfHCInBadOctets_hi;
+ u32 stat_IfHCInBadOctets_lo;
+ u32 stat_IfHCOutOctets_hi;
+ u32 stat_IfHCOutOctets_lo;
+ u32 stat_IfHCOutBadOctets_hi;
+ u32 stat_IfHCOutBadOctets_lo;
+ u32 stat_IfHCInUcastPkts_hi;
+ u32 stat_IfHCInUcastPkts_lo;
+ u32 stat_IfHCInMulticastPkts_hi;
+ u32 stat_IfHCInMulticastPkts_lo;
+ u32 stat_IfHCInBroadcastPkts_hi;
+ u32 stat_IfHCInBroadcastPkts_lo;
+ u32 stat_IfHCOutUcastPkts_hi;
+ u32 stat_IfHCOutUcastPkts_lo;
+ u32 stat_IfHCOutMulticastPkts_hi;
+ u32 stat_IfHCOutMulticastPkts_lo;
+ u32 stat_IfHCOutBroadcastPkts_hi;
+ u32 stat_IfHCOutBroadcastPkts_lo;
+ u32 stat_emac_tx_stat_dot3statsinternalmactransmiterrors;
+ u32 stat_Dot3StatsCarrierSenseErrors;
+ u32 stat_Dot3StatsFCSErrors;
+ u32 stat_Dot3StatsAlignmentErrors;
+ u32 stat_Dot3StatsSingleCollisionFrames;
+ u32 stat_Dot3StatsMultipleCollisionFrames;
+ u32 stat_Dot3StatsDeferredTransmissions;
+ u32 stat_Dot3StatsExcessiveCollisions;
+ u32 stat_Dot3StatsLateCollisions;
+ u32 stat_EtherStatsCollisions;
+ u32 stat_EtherStatsFragments;
+ u32 stat_EtherStatsJabbers;
+ u32 stat_EtherStatsUndersizePkts;
+ u32 stat_EtherStatsOversizePkts;
+ u32 stat_EtherStatsPktsRx64Octets;
+ u32 stat_EtherStatsPktsRx65Octetsto127Octets;
+ u32 stat_EtherStatsPktsRx128Octetsto255Octets;
+ u32 stat_EtherStatsPktsRx256Octetsto511Octets;
+ u32 stat_EtherStatsPktsRx512Octetsto1023Octets;
+ u32 stat_EtherStatsPktsRx1024Octetsto1522Octets;
+ u32 stat_EtherStatsPktsRx1523Octetsto9022Octets;
+ u32 stat_EtherStatsPktsTx64Octets;
+ u32 stat_EtherStatsPktsTx65Octetsto127Octets;
+ u32 stat_EtherStatsPktsTx128Octetsto255Octets;
+ u32 stat_EtherStatsPktsTx256Octetsto511Octets;
+ u32 stat_EtherStatsPktsTx512Octetsto1023Octets;
+ u32 stat_EtherStatsPktsTx1024Octetsto1522Octets;
+ u32 stat_EtherStatsPktsTx1523Octetsto9022Octets;
+ u32 stat_XonPauseFramesReceived;
+ u32 stat_XoffPauseFramesReceived;
+ u32 stat_OutXonSent;
+ u32 stat_OutXoffSent;
+ u32 stat_FlowControlDone;
+ u32 stat_MacControlFramesReceived;
+ u32 stat_XoffStateEntered;
+ u32 stat_IfInFramesL2FilterDiscards;
+ u32 stat_IfInRuleCheckerDiscards;
+ u32 stat_IfInFTQDiscards;
+ u32 stat_IfInMBUFDiscards;
+ u32 stat_IfInRuleCheckerP4Hit;
+ u32 stat_CatchupInRuleCheckerDiscards;
+ u32 stat_CatchupInFTQDiscards;
+ u32 stat_CatchupInMBUFDiscards;
+ u32 stat_CatchupInRuleCheckerP4Hit;
+ u32 stat_GenStat00;
+ u32 stat_GenStat01;
+ u32 stat_GenStat02;
+ u32 stat_GenStat03;
+ u32 stat_GenStat04;
+ u32 stat_GenStat05;
+ u32 stat_GenStat06;
+ u32 stat_GenStat07;
+ u32 stat_GenStat08;
+ u32 stat_GenStat09;
+ u32 stat_GenStat10;
+ u32 stat_GenStat11;
+ u32 stat_GenStat12;
+ u32 stat_GenStat13;
+ u32 stat_GenStat14;
+ u32 stat_GenStat15;
+};
+
+
+/*
+ * l2_fhdr definition
+ */
+struct l2_fhdr {
+ u32 l2_fhdr_status;
+ #define L2_FHDR_STATUS_RULE_CLASS (0x7<<0)
+ #define L2_FHDR_STATUS_RULE_P2 (1<<3)
+ #define L2_FHDR_STATUS_RULE_P3 (1<<4)
+ #define L2_FHDR_STATUS_RULE_P4 (1<<5)
+ #define L2_FHDR_STATUS_L2_VLAN_TAG (1<<6)
+ #define L2_FHDR_STATUS_L2_LLC_SNAP (1<<7)
+ #define L2_FHDR_STATUS_RSS_HASH (1<<8)
+ #define L2_FHDR_STATUS_IP_DATAGRAM (1<<13)
+ #define L2_FHDR_STATUS_TCP_SEGMENT (1<<14)
+ #define L2_FHDR_STATUS_UDP_DATAGRAM (1<<15)
+
+ #define L2_FHDR_STATUS_SPLIT (1<<16)
+ #define L2_FHDR_ERRORS_BAD_CRC (1<<17)
+ #define L2_FHDR_ERRORS_PHY_DECODE (1<<18)
+ #define L2_FHDR_ERRORS_ALIGNMENT (1<<19)
+ #define L2_FHDR_ERRORS_TOO_SHORT (1<<20)
+ #define L2_FHDR_ERRORS_GIANT_FRAME (1<<21)
+ #define L2_FHDR_ERRORS_TCP_XSUM (1<<28)
+ #define L2_FHDR_ERRORS_UDP_XSUM (1<<31)
+
+ u32 l2_fhdr_hash;
+#if defined(__BIG_ENDIAN)
+ u16 l2_fhdr_pkt_len;
+ u16 l2_fhdr_vlan_tag;
+ u16 l2_fhdr_ip_xsum;
+ u16 l2_fhdr_tcp_udp_xsum;
+#elif defined(__LITTLE_ENDIAN)
+ u16 l2_fhdr_vlan_tag;
+ u16 l2_fhdr_pkt_len;
+ u16 l2_fhdr_tcp_udp_xsum;
+ u16 l2_fhdr_ip_xsum;
+#endif
+};
+
+#define BCE_L2FHDR_PRINTFB \
+ "\20" \
+ "\40UDP_XSUM_ERR" \
+ "\37b30" \
+ "\36b29" \
+ "\35TCP_XSUM_ERR" \
+ "\34b27" \
+ "\33b26" \
+ "\32b25" \
+ "\31b24" \
+ "\30b23" \
+ "\27b22" \
+ "\26GIANT_ERR" \
+ "\25SHORT_ERR" \
+ "\24ALIGN_ERR" \
+ "\23PHY_ERR" \
+ "\22CRC_ERR" \
+ "\21SPLIT" \
+ "\20UDP" \
+ "\17TCP" \
+ "\16IP" \
+ "\15b12" \
+ "\14b11" \
+ "\13b10" \
+ "\12b09" \
+ "\11RSS" \
+ "\10SNAP" \
+ "\07VLAN" \
+ "\06P4" \
+ "\05P3" \
+ "\04P2"
+
+
+/*
+ * l2_tx_context definition (5706 and 5708)
+ */
+#define BCE_L2CTX_TX_TYPE 0x00000000
+#define BCE_L2CTX_TX_TYPE_SIZE_L2 ((0xc0/0x20)<<16)
+#define BCE_L2CTX_TX_TYPE_TYPE (0xf<<28)
+#define BCE_L2CTX_TX_TYPE_TYPE_EMPTY (0<<28)
+#define BCE_L2CTX_TX_TYPE_TYPE_L2 (1<<28)
+
+#define BCE_L2CTX_TX_HOST_BIDX 0x00000088
+#define BCE_L2CTX_TX_EST_NBD 0x00000088
+#define BCE_L2CTX_TX_CMD_TYPE 0x00000088
+#define BCE_L2CTX_TX_CMD_TYPE_TYPE (0xf<<24)
+#define BCE_L2CTX_TX_CMD_TYPE_TYPE_L2 (0<<24)
+#define BCE_L2CTX_TX_CMD_TYPE_TYPE_TCP (1<<24)
+
+#define BCE_L2CTX_TX_HOST_BSEQ 0x00000090
+#define BCE_L2CTX_TX_TSCH_BSEQ 0x00000094
+#define BCE_L2CTX_TX_TBDR_BSEQ 0x00000098
+#define BCE_L2CTX_TX_TBDR_BOFF 0x0000009c
+#define BCE_L2CTX_TX_TBDR_BIDX 0x0000009c
+#define BCE_L2CTX_TX_TBDR_BHADDR_HI 0x000000a0
+#define BCE_L2CTX_TX_TBDR_BHADDR_LO 0x000000a4
+#define BCE_L2CTX_TX_TXP_BOFF 0x000000a8
+#define BCE_L2CTX_TX_TXP_BIDX 0x000000a8
+#define BCE_L2CTX_TX_TXP_BSEQ 0x000000ac
+
+/*
+ * l2_tx_context definition (5709 and 5716)
+ */
+#define BCE_L2CTX_TX_TYPE_XI 0x00000080
+#define BCE_L2CTX_TX_TYPE_SIZE_L2_XI ((0xc0/0x20)<<16)
+#define BCE_L2CTX_TX_TYPE_TYPE_XI (0xf<<28)
+#define BCE_L2CTX_TX_TYPE_TYPE_EMPTY_XI (0<<28)
+#define BCE_L2CTX_TX_TYPE_TYPE_L2_XI (1<<28)
+
+#define BCE_L2CTX_TX_CMD_TYPE_XI 0x00000240
+#define BCE_L2CTX_TX_CMD_TYPE_TYPE_XI (0xf<<24)
+#define BCE_L2CTX_TX_CMD_TYPE_TYPE_L2_XI (0<<24)
+#define BCE_L2CTX_TX_CMD_TYPE_TYPE_TCP_XI (1<<24)
+
+#define BCE_L2CTX_TX_HOST_BIDX_XI 0x00000240
+#define BCE_L2CTX_TX_HOST_BSEQ_XI 0x00000248
+#define BCE_L2CTX_TX_TBDR_BHADDR_HI_XI 0x00000258
+#define BCE_L2CTX_TX_TBDR_BHADDR_LO_XI 0x0000025c
+
+
+/*
+ * l2_rx_context definition (5706, 5708, 5709, and 5716)
+ */
+#define BCE_L2CTX_RX_WATER_MARK 0x00000000
+#define BCE_L2CTX_RX_LO_WATER_MARK_SHIFT 0
+#define BCE_L2CTX_RX_LO_WATER_MARK_DEFAULT 32
+#define BCE_L2CTX_RX_LO_WATER_MARK_SCALE 4
+#define BCE_L2CTX_RX_LO_WATER_MARK_DIS 0
+#define BCE_L2CTX_RX_HI_WATER_MARK_SHIFT 4
+#define BCE_L2CTX_RX_HI_WATER_MARK_SCALE 16
+#define BCE_L2CTX_RX_WATER_MARKS_MSK 0x000000ff
+
+#define BCE_L2CTX_RX_BD_PRE_READ 0x00000000
+#define BCE_L2CTX_RX_BD_PRE_READ_SHIFT 8
+
+#define BCE_L2CTX_RX_CTX_SIZE 0x00000000
+#define BCE_L2CTX_RX_CTX_SIZE_SHIFT 16
+#define BCE_L2CTX_RX_CTX_TYPE_SIZE_L2 \
+ ((0x20/20)<<BCE_L2CTX_RX_CTX_SIZE_SHIFT)
+
+#define BCE_L2CTX_RX_CTX_TYPE 0x00000000
+#define BCE_L2CTX_RX_CTX_TYPE_SHIFT 24
+
+#define BCE_L2CTX_RX_CTX_TYPE_CTX_BD_CHN_TYPE (0xf<<28)
+#define BCE_L2CTX_RX_CTX_TYPE_CTX_BD_CHN_TYPE_UNDEFINED (0<<28)
+#define BCE_L2CTX_RX_CTX_TYPE_CTX_BD_CHN_TYPE_VALUE (1<<28)
+
+#define BCE_L2CTX_RX_HOST_BDIDX 0x00000004
+#define BCE_L2CTX_RX_HOST_BSEQ 0x00000008
+#define BCE_L2CTX_RX_NX_BSEQ 0x0000000c
+#define BCE_L2CTX_RX_NX_BDHADDR_HI 0x00000010
+#define BCE_L2CTX_RX_NX_BDHADDR_LO 0x00000014
+#define BCE_L2CTX_RX_NX_BDIDX 0x00000018
+
+#define BCE_L2CTX_RX_HOST_PG_BDIDX 0x00000044
+#define BCE_L2CTX_RX_PG_BUF_SIZE 0x00000048
+#define BCE_L2CTX_RX_RBDC_KEY 0x0000004c
+#define BCE_L2CTX_RX_RBDC_JUMBO_KEY 0x3ffe
+#define BCE_L2CTX_RX_NX_PG_BDHADDR_HI 0x00000050
+#define BCE_L2CTX_RX_NX_PG_BDHADDR_LO 0x00000054
+#define BCE_L2CTX_RX_NX_PG_BDIDX 0x00000058
+
+
+/*
+ * l2_mq definitions (5706, 5708, 5709, and 5716)
+ */
+
+#define BCE_L2MQ_RX_HOST_BDIDX 0x00000004
+#define BCE_L2MQ_RX_HOST_BSEQ 0x00000008
+#define BCE_L2MQ_RX_HOST_PG_BDIDX 0x00000044
+
+#define BCE_L2MQ_TX_HOST_BIDX 0x00000088
+#define BCE_L2MQ_TX_HOST_BSEQ 0x00000090
+
+/*
+ * pci_config_l definition
+ * offset: 0000
+ */
+#define BCE_PCICFG_MISC_CONFIG 0x00000068
+#define BCE_PCICFG_MISC_CONFIG_TARGET_BYTE_SWAP (1L<<2)
+#define BCE_PCICFG_MISC_CONFIG_TARGET_MB_WORD_SWAP (1L<<3)
+#define BCE_PCICFG_MISC_CONFIG_CLOCK_CTL_ENA (1L<<5)
+#define BCE_PCICFG_MISC_CONFIG_TARGET_GRC_WORD_SWAP (1L<<6)
+#define BCE_PCICFG_MISC_CONFIG_REG_WINDOW_ENA (1L<<7)
+#define BCE_PCICFG_MISC_CONFIG_CORE_RST_REQ (1L<<8)
+#define BCE_PCICFG_MISC_CONFIG_CORE_RST_BSY (1L<<9)
+#define BCE_PCICFG_MISC_CONFIG_ASIC_METAL_REV (0xffL<<16)
+#define BCE_PCICFG_MISC_CONFIG_ASIC_BASE_REV (0xfL<<24)
+#define BCE_PCICFG_MISC_CONFIG_ASIC_ID (0xfL<<28)
+#define BCE_PCICFG_MISC_CONFIG_ASIC_REV (0xffffL<<16)
+
+#define BCE_PCICFG_MISC_STATUS 0x0000006c
+#define BCE_PCICFG_MISC_STATUS_INTA_VALUE (1L<<0)
+#define BCE_PCICFG_MISC_STATUS_32BIT_DET (1L<<1)
+#define BCE_PCICFG_MISC_STATUS_M66EN (1L<<2)
+#define BCE_PCICFG_MISC_STATUS_PCIX_DET (1L<<3)
+#define BCE_PCICFG_MISC_STATUS_PCIX_SPEED (0x3L<<4)
+#define BCE_PCICFG_MISC_STATUS_PCIX_SPEED_66 (0L<<4)
+#define BCE_PCICFG_MISC_STATUS_PCIX_SPEED_100 (1L<<4)
+#define BCE_PCICFG_MISC_STATUS_PCIX_SPEED_133 (2L<<4)
+#define BCE_PCICFG_MISC_STATUS_PCIX_SPEED_PCI_MODE (3L<<4)
+
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS 0x00000070
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET (0xfL<<0)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_32MHZ (0L<<0)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_38MHZ (1L<<0)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_48MHZ (2L<<0)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_55MHZ (3L<<0)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_66MHZ (4L<<0)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_80MHZ (5L<<0)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_95MHZ (6L<<0)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_133MHZ (7L<<0)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_LOW (0xfL<<0)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_DISABLE (1L<<6)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT (1L<<7)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC (0x7L<<8)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_UNDEF (0L<<8)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_12 (1L<<8)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_6 (2L<<8)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_62 (4L<<8)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PLAY_DEAD (1L<<11)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED (0xfL<<12)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_100 (0L<<12)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_80 (1L<<12)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_50 (2L<<12)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_40 (4L<<12)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_25 (8L<<12)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_CORE_CLK_PLL_STOP (1L<<16)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_PCI_PLL_STOP (1L<<17)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_RESERVED_18 (1L<<18)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_USE_SPD_DET (1L<<19)
+#define BCE_PCICFG_PCI_CLOCK_CONTROL_BITS_RESERVED (0xfffL<<20)
+
+#define BCE_PCICFG_REG_WINDOW_ADDRESS 0x00000078
+#define BCE_PCICFG_REG_WINDOW 0x00000080
+#define BCE_PCICFG_INT_ACK_CMD 0x00000084
+#define BCE_PCICFG_INT_ACK_CMD_INDEX (0xffffL<<0)
+#define BCE_PCICFG_INT_ACK_CMD_INDEX_VALID (1L<<16)
+#define BCE_PCICFG_INT_ACK_CMD_USE_INT_HC_PARAM (1L<<17)
+#define BCE_PCICFG_INT_ACK_CMD_MASK_INT (1L<<18)
+
+#define BCE_PCICFG_STATUS_BIT_SET_CMD 0x00000088
+#define BCE_PCICFG_STATUS_BIT_CLEAR_CMD 0x0000008c
+#define BCE_PCICFG_MAILBOX_QUEUE_ADDR 0x00000090
+#define BCE_PCICFG_MAILBOX_QUEUE_DATA 0x00000094
+
+
+/*
+ * pci_reg definition
+ * offset: 0x400
+ */
+#define BCE_PCI_GRC_WINDOW_ADDR 0x00000400
+#define BCE_PCI_GRC_WINDOW_ADDR_PCI_GRC_WINDOW_ADDR_VALUE (0x3ffffL<<8)
+
+#define BCE_PCI_CONFIG_1 0x00000404
+#define BCE_PCI_CONFIG_1_READ_BOUNDARY (0x7L<<8)
+#define BCE_PCI_CONFIG_1_READ_BOUNDARY_OFF (0L<<8)
+#define BCE_PCI_CONFIG_1_READ_BOUNDARY_16 (1L<<8)
+#define BCE_PCI_CONFIG_1_READ_BOUNDARY_32 (2L<<8)
+#define BCE_PCI_CONFIG_1_READ_BOUNDARY_64 (3L<<8)
+#define BCE_PCI_CONFIG_1_READ_BOUNDARY_128 (4L<<8)
+#define BCE_PCI_CONFIG_1_READ_BOUNDARY_256 (5L<<8)
+#define BCE_PCI_CONFIG_1_READ_BOUNDARY_512 (6L<<8)
+#define BCE_PCI_CONFIG_1_READ_BOUNDARY_1024 (7L<<8)
+#define BCE_PCI_CONFIG_1_WRITE_BOUNDARY (0x7L<<11)
+#define BCE_PCI_CONFIG_1_WRITE_BOUNDARY_OFF (0L<<11)
+#define BCE_PCI_CONFIG_1_WRITE_BOUNDARY_16 (1L<<11)
+#define BCE_PCI_CONFIG_1_WRITE_BOUNDARY_32 (2L<<11)
+#define BCE_PCI_CONFIG_1_WRITE_BOUNDARY_64 (3L<<11)
+#define BCE_PCI_CONFIG_1_WRITE_BOUNDARY_128 (4L<<11)
+#define BCE_PCI_CONFIG_1_WRITE_BOUNDARY_256 (5L<<11)
+#define BCE_PCI_CONFIG_1_WRITE_BOUNDARY_512 (6L<<11)
+#define BCE_PCI_CONFIG_1_WRITE_BOUNDARY_1024 (7L<<11)
+
+#define BCE_PCI_CONFIG_2 0x00000408
+#define BCE_PCI_CONFIG_2_BAR1_SIZE (0xfL<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_DISABLED (0L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_64K (1L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_128K (2L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_256K (3L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_512K (4L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_1M (5L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_2M (6L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_4M (7L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_8M (8L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_16M (9L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_32M (10L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_64M (11L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_128M (12L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_256M (13L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_512M (14L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_SIZE_1G (15L<<0)
+#define BCE_PCI_CONFIG_2_BAR1_64ENA (1L<<4)
+#define BCE_PCI_CONFIG_2_EXP_ROM_RETRY (1L<<5)
+#define BCE_PCI_CONFIG_2_CFG_CYCLE_RETRY (1L<<6)
+#define BCE_PCI_CONFIG_2_FIRST_CFG_DONE (1L<<7)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE (0xffL<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_DISABLED (0L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_1K (1L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_2K (2L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_4K (3L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_8K (4L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_16K (5L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_32K (6L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_64K (7L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_128K (8L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_256K (9L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_512K (10L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_1M (11L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_2M (12L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_4M (13L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_8M (14L<<8)
+#define BCE_PCI_CONFIG_2_EXP_ROM_SIZE_16M (15L<<8)
+#define BCE_PCI_CONFIG_2_MAX_SPLIT_LIMIT (0x1fL<<16)
+#define BCE_PCI_CONFIG_2_MAX_READ_LIMIT (0x3L<<21)
+#define BCE_PCI_CONFIG_2_MAX_READ_LIMIT_512 (0L<<21)
+#define BCE_PCI_CONFIG_2_MAX_READ_LIMIT_1K (1L<<21)
+#define BCE_PCI_CONFIG_2_MAX_READ_LIMIT_2K (2L<<21)
+#define BCE_PCI_CONFIG_2_MAX_READ_LIMIT_4K (3L<<21)
+#define BCE_PCI_CONFIG_2_FORCE_32_BIT_MSTR (1L<<23)
+#define BCE_PCI_CONFIG_2_FORCE_32_BIT_TGT (1L<<24)
+#define BCE_PCI_CONFIG_2_KEEP_REQ_ASSERT (1L<<25)
+
+#define BCE_PCI_CONFIG_3 0x0000040c
+#define BCE_PCI_CONFIG_3_STICKY_BYTE (0xffL<<0)
+#define BCE_PCI_CONFIG_3_FORCE_PME (1L<<24)
+#define BCE_PCI_CONFIG_3_PME_STATUS (1L<<25)
+#define BCE_PCI_CONFIG_3_PME_ENABLE (1L<<26)
+#define BCE_PCI_CONFIG_3_PM_STATE (0x3L<<27)
+#define BCE_PCI_CONFIG_3_VAUX_PRESET (1L<<30)
+#define BCE_PCI_CONFIG_3_PCI_POWER (1L<<31)
+
+#define BCE_PCI_PM_DATA_A 0x00000410
+#define BCE_PCI_PM_DATA_A_PM_DATA_0_PRG (0xffL<<0)
+#define BCE_PCI_PM_DATA_A_PM_DATA_1_PRG (0xffL<<8)
+#define BCE_PCI_PM_DATA_A_PM_DATA_2_PRG (0xffL<<16)
+#define BCE_PCI_PM_DATA_A_PM_DATA_3_PRG (0xffL<<24)
+
+#define BCE_PCI_PM_DATA_B 0x00000414
+#define BCE_PCI_PM_DATA_B_PM_DATA_4_PRG (0xffL<<0)
+#define BCE_PCI_PM_DATA_B_PM_DATA_5_PRG (0xffL<<8)
+#define BCE_PCI_PM_DATA_B_PM_DATA_6_PRG (0xffL<<16)
+#define BCE_PCI_PM_DATA_B_PM_DATA_7_PRG (0xffL<<24)
+
+#define BCE_PCI_SWAP_DIAG0 0x00000418
+#define BCE_PCI_SWAP_DIAG1 0x0000041c
+#define BCE_PCI_EXP_ROM_ADDR 0x00000420
+#define BCE_PCI_EXP_ROM_ADDR_ADDRESS (0x3fffffL<<2)
+#define BCE_PCI_EXP_ROM_ADDR_REQ (1L<<31)
+
+#define BCE_PCI_EXP_ROM_DATA 0x00000424
+#define BCE_PCI_VPD_INTF 0x00000428
+#define BCE_PCI_VPD_INTF_INTF_REQ (1L<<0)
+
+#define BCE_PCI_VPD_ADDR_FLAG 0x0000042c
+#define BCE_PCI_VPD_ADDR_FLAG_ADDRESS (0x1fff<<2)
+#define BCE_PCI_VPD_ADDR_FLAG_WR (1<<15)
+
+#define BCE_PCI_VPD_DATA 0x00000430
+#define BCE_PCI_ID_VAL1 0x00000434
+#define BCE_PCI_ID_VAL1_DEVICE_ID (0xffffL<<0)
+#define BCE_PCI_ID_VAL1_VENDOR_ID (0xffffL<<16)
+
+#define BCE_PCI_ID_VAL2 0x00000438
+#define BCE_PCI_ID_VAL2_SUBSYSTEM_VENDOR_ID (0xffffL<<0)
+#define BCE_PCI_ID_VAL2_SUBSYSTEM_ID (0xffffL<<16)
+
+#define BCE_PCI_ID_VAL3 0x0000043c
+#define BCE_PCI_ID_VAL3_CLASS_CODE (0xffffffL<<0)
+#define BCE_PCI_ID_VAL3_REVISION_ID (0xffL<<24)
+
+#define BCE_PCI_ID_VAL4 0x00000440
+#define BCE_PCI_ID_VAL4_CAP_ENA (0xfL<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_0 (0L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_1 (1L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_2 (2L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_3 (3L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_4 (4L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_5 (5L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_6 (6L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_7 (7L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_8 (8L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_9 (9L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_10 (10L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_11 (11L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_12 (12L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_13 (13L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_14 (14L<<0)
+#define BCE_PCI_ID_VAL4_CAP_ENA_15 (15L<<0)
+#define BCE_PCI_ID_VAL4_PM_SCALE_PRG (0x3L<<6)
+#define BCE_PCI_ID_VAL4_PM_SCALE_PRG_0 (0L<<6)
+#define BCE_PCI_ID_VAL4_PM_SCALE_PRG_1 (1L<<6)
+#define BCE_PCI_ID_VAL4_PM_SCALE_PRG_2 (2L<<6)
+#define BCE_PCI_ID_VAL4_PM_SCALE_PRG_3 (3L<<6)
+#define BCE_PCI_ID_VAL4_MSI_LIMIT (0x7L<<9)
+#define BCE_PCI_ID_VAL4_MSI_ADVERTIZE (0x7L<<12)
+#define BCE_PCI_ID_VAL4_MSI_ENABLE (1L<<15)
+#define BCE_PCI_ID_VAL4_MAX_64_ADVERTIZE (1L<<16)
+#define BCE_PCI_ID_VAL4_MAX_133_ADVERTIZE (1L<<17)
+#define BCE_PCI_ID_VAL4_MAX_MEM_READ_SIZE (0x3L<<21)
+#define BCE_PCI_ID_VAL4_MAX_SPLIT_SIZE (0x7L<<23)
+#define BCE_PCI_ID_VAL4_MAX_CUMULATIVE_SIZE (0x7L<<26)
+
+#define BCE_PCI_ID_VAL5 0x00000444
+#define BCE_PCI_ID_VAL5_D1_SUPPORT (1L<<0)
+#define BCE_PCI_ID_VAL5_D2_SUPPORT (1L<<1)
+#define BCE_PCI_ID_VAL5_PME_IN_D0 (1L<<2)
+#define BCE_PCI_ID_VAL5_PME_IN_D1 (1L<<3)
+#define BCE_PCI_ID_VAL5_PME_IN_D2 (1L<<4)
+#define BCE_PCI_ID_VAL5_PME_IN_D3_HOT (1L<<5)
+
+#define BCE_PCI_PCIX_EXTENDED_STATUS 0x00000448
+#define BCE_PCI_PCIX_EXTENDED_STATUS_NO_SNOOP (1L<<8)
+#define BCE_PCI_PCIX_EXTENDED_STATUS_LONG_BURST (1L<<9)
+#define BCE_PCI_PCIX_EXTENDED_STATUS_SPLIT_COMP_MSG_CLASS (0xfL<<16)
+#define BCE_PCI_PCIX_EXTENDED_STATUS_SPLIT_COMP_MSG_IDX (0xffL<<24)
+
+#define BCE_PCI_ID_VAL6 0x0000044c
+#define BCE_PCI_ID_VAL6_MAX_LAT (0xffL<<0)
+#define BCE_PCI_ID_VAL6_MIN_GNT (0xffL<<8)
+#define BCE_PCI_ID_VAL6_BIST (0xffL<<16)
+
+#define BCE_PCI_MSI_DATA 0x00000450
+#define BCE_PCI_MSI_DATA_PCI_MSI_DATA (0xffffL<<0)
+
+#define BCE_PCI_MSI_ADDR_H 0x00000454
+#define BCE_PCI_MSI_ADDR_L 0x00000458
+
+
+/*
+ * misc_reg definition
+ * offset: 0x800
+ */
+#define BCE_MISC_COMMAND 0x00000800
+#define BCE_MISC_COMMAND_ENABLE_ALL (1L<<0)
+#define BCE_MISC_COMMAND_DISABLE_ALL (1L<<1)
+#define BCE_MISC_COMMAND_SW_RESET (1L<<4)
+#define BCE_MISC_COMMAND_POR_RESET (1L<<5)
+#define BCE_MISC_COMMAND_HD_RESET (1L<<6)
+#define BCE_MISC_COMMAND_CMN_SW_RESET (1L<<7)
+#define BCE_MISC_COMMAND_PAR_ERROR (1L<<8)
+#define BCE_MISC_COMMAND_CS16_ERR (1L<<9)
+#define BCE_MISC_COMMAND_CS16_ERR_LOC (0xfL<<12)
+#define BCE_MISC_COMMAND_PAR_ERR_RAM (0x7fL<<16)
+#define BCE_MISC_COMMAND_POWERDOWN_EVENT (1L<<23)
+#define BCE_MISC_COMMAND_SW_SHUTDOWN (1L<<24)
+#define BCE_MISC_COMMAND_SHUTDOWN_EN (1L<<25)
+#define BCE_MISC_COMMAND_DINTEG_ATTN_EN (1L<<26)
+#define BCE_MISC_COMMAND_PCIE_LINK_IN_L23 (1L<<27)
+#define BCE_MISC_COMMAND_PCIE_DIS (1L<<28)
+
+#define BCE_MISC_CFG 0x00000804
+#define BCE_MISC_CFG_GRC_TMOUT (1L<<0)
+#define BCE_MISC_CFG_NVM_WR_EN (0x3L<<1)
+#define BCE_MISC_CFG_NVM_WR_EN_PROTECT (0L<<1)
+#define BCE_MISC_CFG_NVM_WR_EN_PCI (1L<<1)
+#define BCE_MISC_CFG_NVM_WR_EN_ALLOW (2L<<1)
+#define BCE_MISC_CFG_NVM_WR_EN_ALLOW2 (3L<<1)
+#define BCE_MISC_CFG_BIST_EN (1L<<3)
+#define BCE_MISC_CFG_CK25_OUT_ALT_SRC (1L<<4)
+#define BCE_MISC_CFG_RESERVED5_TE (1L<<5)
+#define BCE_MISC_CFG_RESERVED6_TE (1L<<6)
+#define BCE_MISC_CFG_CLK_CTL_OVERRIDE (1L<<7)
+#define BCE_MISC_CFG_LEDMODE (0x7L<<8)
+#define BCE_MISC_CFG_LEDMODE_MAC (0L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY1_TE (1L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY2_TE (2L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY3_TE (3L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY4_TE (4L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY5_TE (5L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY6_TE (6L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY7_TE (7L<<8)
+#define BCE_MISC_CFG_MCP_GRC_TMOUT_TE (1L<<11)
+#define BCE_MISC_CFG_DBU_GRC_TMOUT_TE (1L<<12)
+#define BCE_MISC_CFG_LEDMODE_XI (0xfL<<8)
+#define BCE_MISC_CFG_LEDMODE_MAC_XI (0L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY1_XI (1L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY2_XI (2L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY3_XI (3L<<8)
+#define BCE_MISC_CFG_LEDMODE_MAC2_XI (4L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY4_XI (5L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY5_XI (6L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY6_XI (7L<<8)
+#define BCE_MISC_CFG_LEDMODE_MAC3_XI (8L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY7_XI (9L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY8_XI (10L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY9_XI (11L<<8)
+#define BCE_MISC_CFG_LEDMODE_MAC4_XI (12L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY10_XI (13L<<8)
+#define BCE_MISC_CFG_LEDMODE_PHY11_XI (14L<<8)
+#define BCE_MISC_CFG_LEDMODE_UNUSED_XI (15L<<8)
+#define BCE_MISC_CFG_PORT_SELECT_XI (1L<<13)
+#define BCE_MISC_CFG_PARITY_MODE_XI (1L<<14)
+
+#define BCE_MISC_ID 0x00000808
+#define BCE_MISC_ID_BOND_ID (0xfL<<0)
+#define BCE_MISC_ID_BOND_ID_X (0L<<0)
+#define BCE_MISC_ID_BOND_ID_C (3L<<0)
+#define BCE_MISC_ID_BOND_ID_S (12L<<0)
+#define BCE_MISC_ID_CHIP_METAL (0xffL<<4)
+#define BCE_MISC_ID_CHIP_REV (0xfL<<12)
+#define BCE_MISC_ID_CHIP_NUM (0xffffL<<16)
+
+#define BCE_MISC_ENABLE_STATUS_BITS 0x0000080c
+#define BCE_MISC_ENABLE_STATUS_BITS_TX_SCHEDULER_ENABLE (1L<<0)
+#define BCE_MISC_ENABLE_STATUS_BITS_TX_BD_READ_ENABLE (1L<<1)
+#define BCE_MISC_ENABLE_STATUS_BITS_TX_BD_CACHE_ENABLE (1L<<2)
+#define BCE_MISC_ENABLE_STATUS_BITS_TX_PROCESSOR_ENABLE (1L<<3)
+#define BCE_MISC_ENABLE_STATUS_BITS_TX_DMA_ENABLE (1L<<4)
+#define BCE_MISC_ENABLE_STATUS_BITS_TX_PATCHUP_ENABLE (1L<<5)
+#define BCE_MISC_ENABLE_STATUS_BITS_TX_PAYLOAD_Q_ENABLE (1L<<6)
+#define BCE_MISC_ENABLE_STATUS_BITS_TX_HEADER_Q_ENABLE (1L<<7)
+#define BCE_MISC_ENABLE_STATUS_BITS_TX_ASSEMBLER_ENABLE (1L<<8)
+#define BCE_MISC_ENABLE_STATUS_BITS_EMAC_ENABLE (1L<<9)
+#define BCE_MISC_ENABLE_STATUS_BITS_RX_PARSER_MAC_ENABLE (1L<<10)
+#define BCE_MISC_ENABLE_STATUS_BITS_RX_PARSER_CATCHUP_ENABLE (1L<<11)
+#define BCE_MISC_ENABLE_STATUS_BITS_RX_MBUF_ENABLE (1L<<12)
+#define BCE_MISC_ENABLE_STATUS_BITS_RX_LOOKUP_ENABLE (1L<<13)
+#define BCE_MISC_ENABLE_STATUS_BITS_RX_PROCESSOR_ENABLE (1L<<14)
+#define BCE_MISC_ENABLE_STATUS_BITS_RX_V2P_ENABLE (1L<<15)
+#define BCE_MISC_ENABLE_STATUS_BITS_RX_BD_CACHE_ENABLE (1L<<16)
+#define BCE_MISC_ENABLE_STATUS_BITS_RX_DMA_ENABLE (1L<<17)
+#define BCE_MISC_ENABLE_STATUS_BITS_COMPLETION_ENABLE (1L<<18)
+#define BCE_MISC_ENABLE_STATUS_BITS_HOST_COALESCE_ENABLE (1L<<19)
+#define BCE_MISC_ENABLE_STATUS_BITS_MAILBOX_QUEUE_ENABLE (1L<<20)
+#define BCE_MISC_ENABLE_STATUS_BITS_CONTEXT_ENABLE (1L<<21)
+#define BCE_MISC_ENABLE_STATUS_BITS_CMD_SCHEDULER_ENABLE (1L<<22)
+#define BCE_MISC_ENABLE_STATUS_BITS_CMD_PROCESSOR_ENABLE (1L<<23)
+#define BCE_MISC_ENABLE_STATUS_BITS_MGMT_PROCESSOR_ENABLE (1L<<24)
+#define BCE_MISC_ENABLE_STATUS_BITS_TIMER_ENABLE (1L<<25)
+#define BCE_MISC_ENABLE_STATUS_BITS_DMA_ENGINE_ENABLE (1L<<26)
+#define BCE_MISC_ENABLE_STATUS_BITS_UMP_ENABLE (1L<<27)
+#define BCE_MISC_ENABLE_STATUS_BITS_RV2P_CMD_SCHEDULER_ENABLE (1L<<28)
+#define BCE_MISC_ENABLE_STATUS_BITS_RSVD_FUTURE_ENABLE (0x7L<<29)
+
+#define BCE_MISC_ENABLE_SET_BITS 0x00000810
+#define BCE_MISC_ENABLE_SET_BITS_TX_SCHEDULER_ENABLE (1L<<0)
+#define BCE_MISC_ENABLE_SET_BITS_TX_BD_READ_ENABLE (1L<<1)
+#define BCE_MISC_ENABLE_SET_BITS_TX_BD_CACHE_ENABLE (1L<<2)
+#define BCE_MISC_ENABLE_SET_BITS_TX_PROCESSOR_ENABLE (1L<<3)
+#define BCE_MISC_ENABLE_SET_BITS_TX_DMA_ENABLE (1L<<4)
+#define BCE_MISC_ENABLE_SET_BITS_TX_PATCHUP_ENABLE (1L<<5)
+#define BCE_MISC_ENABLE_SET_BITS_TX_PAYLOAD_Q_ENABLE (1L<<6)
+#define BCE_MISC_ENABLE_SET_BITS_TX_HEADER_Q_ENABLE (1L<<7)
+#define BCE_MISC_ENABLE_SET_BITS_TX_ASSEMBLER_ENABLE (1L<<8)
+#define BCE_MISC_ENABLE_SET_BITS_EMAC_ENABLE (1L<<9)
+#define BCE_MISC_ENABLE_SET_BITS_RX_PARSER_MAC_ENABLE (1L<<10)
+#define BCE_MISC_ENABLE_SET_BITS_RX_PARSER_CATCHUP_ENABLE (1L<<11)
+#define BCE_MISC_ENABLE_SET_BITS_RX_MBUF_ENABLE (1L<<12)
+#define BCE_MISC_ENABLE_SET_BITS_RX_LOOKUP_ENABLE (1L<<13)
+#define BCE_MISC_ENABLE_SET_BITS_RX_PROCESSOR_ENABLE (1L<<14)
+#define BCE_MISC_ENABLE_SET_BITS_RX_V2P_ENABLE (1L<<15)
+#define BCE_MISC_ENABLE_SET_BITS_RX_BD_CACHE_ENABLE (1L<<16)
+#define BCE_MISC_ENABLE_SET_BITS_RX_DMA_ENABLE (1L<<17)
+#define BCE_MISC_ENABLE_SET_BITS_COMPLETION_ENABLE (1L<<18)
+#define BCE_MISC_ENABLE_SET_BITS_HOST_COALESCE_ENABLE (1L<<19)
+#define BCE_MISC_ENABLE_SET_BITS_MAILBOX_QUEUE_ENABLE (1L<<20)
+#define BCE_MISC_ENABLE_SET_BITS_CONTEXT_ENABLE (1L<<21)
+#define BCE_MISC_ENABLE_SET_BITS_CMD_SCHEDULER_ENABLE (1L<<22)
+#define BCE_MISC_ENABLE_SET_BITS_CMD_PROCESSOR_ENABLE (1L<<23)
+#define BCE_MISC_ENABLE_SET_BITS_MGMT_PROCESSOR_ENABLE (1L<<24)
+#define BCE_MISC_ENABLE_SET_BITS_TIMER_ENABLE (1L<<25)
+#define BCE_MISC_ENABLE_SET_BITS_DMA_ENGINE_ENABLE (1L<<26)
+#define BCE_MISC_ENABLE_SET_BITS_UMP_ENABLE (1L<<27)
+#define BCE_MISC_ENABLE_SET_BITS_RV2P_CMD_SCHEDULER_ENABLE (1L<<28)
+#define BCE_MISC_ENABLE_SET_BITS_RSVD_FUTURE_ENABLE (0x7L<<29)
+
+#define BCE_MISC_ENABLE_DEFAULT 0x05ffffff
+#define BCE_MISC_ENABLE_DEFAULT_XI 0x17ffffff
+
+#define BCE_MISC_ENABLE_CLR_BITS 0x00000814
+#define BCE_MISC_ENABLE_CLR_BITS_TX_SCHEDULER_ENABLE (1L<<0)
+#define BCE_MISC_ENABLE_CLR_BITS_TX_BD_READ_ENABLE (1L<<1)
+#define BCE_MISC_ENABLE_CLR_BITS_TX_BD_CACHE_ENABLE (1L<<2)
+#define BCE_MISC_ENABLE_CLR_BITS_TX_PROCESSOR_ENABLE (1L<<3)
+#define BCE_MISC_ENABLE_CLR_BITS_TX_DMA_ENABLE (1L<<4)
+#define BCE_MISC_ENABLE_CLR_BITS_TX_PATCHUP_ENABLE (1L<<5)
+#define BCE_MISC_ENABLE_CLR_BITS_TX_PAYLOAD_Q_ENABLE (1L<<6)
+#define BCE_MISC_ENABLE_CLR_BITS_TX_HEADER_Q_ENABLE (1L<<7)
+#define BCE_MISC_ENABLE_CLR_BITS_TX_ASSEMBLER_ENABLE (1L<<8)
+#define BCE_MISC_ENABLE_CLR_BITS_EMAC_ENABLE (1L<<9)
+#define BCE_MISC_ENABLE_CLR_BITS_RX_PARSER_MAC_ENABLE (1L<<10)
+#define BCE_MISC_ENABLE_CLR_BITS_RX_PARSER_CATCHUP_ENABLE (1L<<11)
+#define BCE_MISC_ENABLE_CLR_BITS_RX_MBUF_ENABLE (1L<<12)
+#define BCE_MISC_ENABLE_CLR_BITS_RX_LOOKUP_ENABLE (1L<<13)
+#define BCE_MISC_ENABLE_CLR_BITS_RX_PROCESSOR_ENABLE (1L<<14)
+#define BCE_MISC_ENABLE_CLR_BITS_RX_V2P_ENABLE (1L<<15)
+#define BCE_MISC_ENABLE_CLR_BITS_RX_BD_CACHE_ENABLE (1L<<16)
+#define BCE_MISC_ENABLE_CLR_BITS_RX_DMA_ENABLE (1L<<17)
+#define BCE_MISC_ENABLE_CLR_BITS_COMPLETION_ENABLE (1L<<18)
+#define BCE_MISC_ENABLE_CLR_BITS_HOST_COALESCE_ENABLE (1L<<19)
+#define BCE_MISC_ENABLE_CLR_BITS_MAILBOX_QUEUE_ENABLE (1L<<20)
+#define BCE_MISC_ENABLE_CLR_BITS_CONTEXT_ENABLE (1L<<21)
+#define BCE_MISC_ENABLE_CLR_BITS_CMD_SCHEDULER_ENABLE (1L<<22)
+#define BCE_MISC_ENABLE_CLR_BITS_CMD_PROCESSOR_ENABLE (1L<<23)
+#define BCE_MISC_ENABLE_CLR_BITS_MGMT_PROCESSOR_ENABLE (1L<<24)
+#define BCE_MISC_ENABLE_CLR_BITS_TIMER_ENABLE (1L<<25)
+#define BCE_MISC_ENABLE_CLR_BITS_DMA_ENGINE_ENABLE (1L<<26)
+#define BCE_MISC_ENABLE_CLR_BITS_UMP_ENABLE (1L<<27)
+#define BCE_MISC_ENABLE_CLR_BITS_RV2P_CMD_SCHEDULER_ENABLE (1L<<28)
+#define BCE_MISC_ENABLE_CLR_BITS_RSVD_FUTURE_ENABLE (0x7L<<29)
+
+#define BCE_MISC_ENABLE_CLR_DEFAULT 0x17ffffff
+
+#define BCE_MISC_CLOCK_CONTROL_BITS 0x00000818
+#define BCE_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET (0xfL<<0)
+#define BCE_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_32MHZ (0L<<0)
+#define BCE_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_38MHZ (1L<<0)
+#define BCE_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_48MHZ (2L<<0)
+#define BCE_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_55MHZ (3L<<0)
+#define BCE_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_66MHZ (4L<<0)
+#define BCE_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_80MHZ (5L<<0)
+#define BCE_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_95MHZ (6L<<0)
+#define BCE_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_133MHZ (7L<<0)
+#define BCE_MISC_CLOCK_CONTROL_BITS_PCI_CLK_SPD_DET_LOW (0xfL<<0)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_DISABLE (1L<<6)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT (1L<<7)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC (0x7L<<8)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_UNDEF (0L<<8)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_12 (1L<<8)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_6 (2L<<8)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_SRC_62 (4L<<8)
+#define BCE_MISC_CLOCK_CONTROL_BITS_RESERVED0_XI (0x7L<<8)
+#define BCE_MISC_CLOCK_CONTROL_BITS_MIN_POWER (1L<<11)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED (0xfL<<12)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_100 (0L<<12)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_80 (1L<<12)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_50 (2L<<12)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_40 (4L<<12)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_25 (8L<<12)
+#define BCE_MISC_CLOCK_CONTROL_BITS_RESERVED1_XI (0xfL<<12)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_STOP (1L<<16)
+#define BCE_MISC_CLOCK_CONTROL_BITS_RESERVED_17_TE (1L<<17)
+#define BCE_MISC_CLOCK_CONTROL_BITS_RESERVED_18_TE (1L<<18)
+#define BCE_MISC_CLOCK_CONTROL_BITS_RESERVED_19_TE (1L<<19)
+#define BCE_MISC_CLOCK_CONTROL_BITS_RESERVED_TE (0xfffL<<20)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_ALT_MGMT_XI (1L<<17)
+#define BCE_MISC_CLOCK_CONTROL_BITS_RESERVED2_XI (0x3fL<<18)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_VCO_XI (0x7L<<24)
+#define BCE_MISC_CLOCK_CONTROL_BITS_RESERVED3_XI (1L<<27)
+#define BCE_MISC_CLOCK_CONTROL_BITS_CORE_CLK_PLL_SPEED_XI (0xfL<<28)
+
+#define BCE_MISC_SPIO 0x0000081c
+#define BCE_MISC_SPIO_VALUE (0xffL<<0)
+#define BCE_MISC_SPIO_SET (0xffL<<8)
+#define BCE_MISC_SPIO_CLR (0xffL<<16)
+#define BCE_MISC_SPIO_FLOAT (0xffL<<24)
+
+#define BCE_MISC_SPIO_INT 0x00000820
+#define BCE_MISC_SPIO_INT_INT_STATE_TE (0xfL<<0)
+#define BCE_MISC_SPIO_INT_OLD_VALUE_TE (0xfL<<8)
+#define BCE_MISC_SPIO_INT_OLD_SET_TE (0xfL<<16)
+#define BCE_MISC_SPIO_INT_OLD_CLR_TE (0xfL<<24)
+#define BCE_MISC_SPIO_INT_INT_STATE_XI (0xffL<<0)
+#define BCE_MISC_SPIO_INT_OLD_VALUE_XI (0xffL<<8)
+#define BCE_MISC_SPIO_INT_OLD_SET_XI (0xffL<<16)
+#define BCE_MISC_SPIO_INT_OLD_CLR_XI (0xffL<<24)
+
+#define BCE_MISC_CONFIG_LFSR 0x00000824
+#define BCE_MISC_CONFIG_LFSR_DIV (0xffffL<<0)
+
+#define BCE_MISC_LFSR_MASK_BITS 0x00000828
+#define BCE_MISC_LFSR_MASK_BITS_TX_SCHEDULER_ENABLE (1L<<0)
+#define BCE_MISC_LFSR_MASK_BITS_TX_BD_READ_ENABLE (1L<<1)
+#define BCE_MISC_LFSR_MASK_BITS_TX_BD_CACHE_ENABLE (1L<<2)
+#define BCE_MISC_LFSR_MASK_BITS_TX_PROCESSOR_ENABLE (1L<<3)
+#define BCE_MISC_LFSR_MASK_BITS_TX_DMA_ENABLE (1L<<4)
+#define BCE_MISC_LFSR_MASK_BITS_TX_PATCHUP_ENABLE (1L<<5)
+#define BCE_MISC_LFSR_MASK_BITS_TX_PAYLOAD_Q_ENABLE (1L<<6)
+#define BCE_MISC_LFSR_MASK_BITS_TX_HEADER_Q_ENABLE (1L<<7)
+#define BCE_MISC_LFSR_MASK_BITS_TX_ASSEMBLER_ENABLE (1L<<8)
+#define BCE_MISC_LFSR_MASK_BITS_EMAC_ENABLE (1L<<9)
+#define BCE_MISC_LFSR_MASK_BITS_RX_PARSER_MAC_ENABLE (1L<<10)
+#define BCE_MISC_LFSR_MASK_BITS_RX_PARSER_CATCHUP_ENABLE (1L<<11)
+#define BCE_MISC_LFSR_MASK_BITS_RX_MBUF_ENABLE (1L<<12)
+#define BCE_MISC_LFSR_MASK_BITS_RX_LOOKUP_ENABLE (1L<<13)
+#define BCE_MISC_LFSR_MASK_BITS_RX_PROCESSOR_ENABLE (1L<<14)
+#define BCE_MISC_LFSR_MASK_BITS_RX_V2P_ENABLE (1L<<15)
+#define BCE_MISC_LFSR_MASK_BITS_RX_BD_CACHE_ENABLE (1L<<16)
+#define BCE_MISC_LFSR_MASK_BITS_RX_DMA_ENABLE (1L<<17)
+#define BCE_MISC_LFSR_MASK_BITS_COMPLETION_ENABLE (1L<<18)
+#define BCE_MISC_LFSR_MASK_BITS_HOST_COALESCE_ENABLE (1L<<19)
+#define BCE_MISC_LFSR_MASK_BITS_MAILBOX_QUEUE_ENABLE (1L<<20)
+#define BCE_MISC_LFSR_MASK_BITS_CONTEXT_ENABLE (1L<<21)
+#define BCE_MISC_LFSR_MASK_BITS_CMD_SCHEDULER_ENABLE (1L<<22)
+#define BCE_MISC_LFSR_MASK_BITS_CMD_PROCESSOR_ENABLE (1L<<23)
+#define BCE_MISC_LFSR_MASK_BITS_MGMT_PROCESSOR_ENABLE (1L<<24)
+#define BCE_MISC_LFSR_MASK_BITS_TIMER_ENABLE (1L<<25)
+#define BCE_MISC_LFSR_MASK_BITS_DMA_ENGINE_ENABLE (1L<<26)
+#define BCE_MISC_LFSR_MASK_BITS_UMP_ENABLE (1L<<27)
+#define BCE_MISC_LFSR_MASK_BITS_RV2P_CMD_SCHEDULER_ENABLE (1L<<28)
+#define BCE_MISC_LFSR_MASK_BITS_RSVD_FUTURE_ENABLE (0x7L<<29)
+
+#define BCE_MISC_ARB_REQ0 0x0000082c
+#define BCE_MISC_ARB_REQ1 0x00000830
+#define BCE_MISC_ARB_REQ2 0x00000834
+#define BCE_MISC_ARB_REQ3 0x00000838
+#define BCE_MISC_ARB_REQ4 0x0000083c
+#define BCE_MISC_ARB_FREE0 0x00000840
+#define BCE_MISC_ARB_FREE1 0x00000844
+#define BCE_MISC_ARB_FREE2 0x00000848
+#define BCE_MISC_ARB_FREE3 0x0000084c
+#define BCE_MISC_ARB_FREE4 0x00000850
+#define BCE_MISC_ARB_REQ_STATUS0 0x00000854
+#define BCE_MISC_ARB_REQ_STATUS1 0x00000858
+#define BCE_MISC_ARB_REQ_STATUS2 0x0000085c
+#define BCE_MISC_ARB_REQ_STATUS3 0x00000860
+#define BCE_MISC_ARB_REQ_STATUS4 0x00000864
+#define BCE_MISC_ARB_GNT0 0x00000868
+#define BCE_MISC_ARB_GNT0_0 (0x7L<<0)
+#define BCE_MISC_ARB_GNT0_1 (0x7L<<4)
+#define BCE_MISC_ARB_GNT0_2 (0x7L<<8)
+#define BCE_MISC_ARB_GNT0_3 (0x7L<<12)
+#define BCE_MISC_ARB_GNT0_4 (0x7L<<16)
+#define BCE_MISC_ARB_GNT0_5 (0x7L<<20)
+#define BCE_MISC_ARB_GNT0_6 (0x7L<<24)
+#define BCE_MISC_ARB_GNT0_7 (0x7L<<28)
+
+#define BCE_MISC_ARB_GNT1 0x0000086c
+#define BCE_MISC_ARB_GNT1_8 (0x7L<<0)
+#define BCE_MISC_ARB_GNT1_9 (0x7L<<4)
+#define BCE_MISC_ARB_GNT1_10 (0x7L<<8)
+#define BCE_MISC_ARB_GNT1_11 (0x7L<<12)
+#define BCE_MISC_ARB_GNT1_12 (0x7L<<16)
+#define BCE_MISC_ARB_GNT1_13 (0x7L<<20)
+#define BCE_MISC_ARB_GNT1_14 (0x7L<<24)
+#define BCE_MISC_ARB_GNT1_15 (0x7L<<28)
+
+#define BCE_MISC_ARB_GNT2 0x00000870
+#define BCE_MISC_ARB_GNT2_16 (0x7L<<0)
+#define BCE_MISC_ARB_GNT2_17 (0x7L<<4)
+#define BCE_MISC_ARB_GNT2_18 (0x7L<<8)
+#define BCE_MISC_ARB_GNT2_19 (0x7L<<12)
+#define BCE_MISC_ARB_GNT2_20 (0x7L<<16)
+#define BCE_MISC_ARB_GNT2_21 (0x7L<<20)
+#define BCE_MISC_ARB_GNT2_22 (0x7L<<24)
+#define BCE_MISC_ARB_GNT2_23 (0x7L<<28)
+
+#define BCE_MISC_ARB_GNT3 0x00000874
+#define BCE_MISC_ARB_GNT3_24 (0x7L<<0)
+#define BCE_MISC_ARB_GNT3_25 (0x7L<<4)
+#define BCE_MISC_ARB_GNT3_26 (0x7L<<8)
+#define BCE_MISC_ARB_GNT3_27 (0x7L<<12)
+#define BCE_MISC_ARB_GNT3_28 (0x7L<<16)
+#define BCE_MISC_ARB_GNT3_29 (0x7L<<20)
+#define BCE_MISC_ARB_GNT3_30 (0x7L<<24)
+#define BCE_MISC_ARB_GNT3_31 (0x7L<<28)
+
+#define BCE_MISC_RESERVED1 0x00000878
+#define BCE_MISC_RESERVED1_MISC_RESERVED1_VALUE (0x3fL<<0)
+
+#define BCE_MISC_RESERVED2 0x0000087c
+#define BCE_MISC_RESERVED2_PCIE_DIS (1L<<0)
+#define BCE_MISC_RESERVED2_LINK_IN_L23 (1L<<1)
+
+#define BCE_MISC_SM_ASF_CONTROL 0x00000880
+#define BCE_MISC_SM_ASF_CONTROL_ASF_RST (1L<<0)
+#define BCE_MISC_SM_ASF_CONTROL_TSC_EN (1L<<1)
+#define BCE_MISC_SM_ASF_CONTROL_WG_TO (1L<<2)
+#define BCE_MISC_SM_ASF_CONTROL_HB_TO (1L<<3)
+#define BCE_MISC_SM_ASF_CONTROL_PA_TO (1L<<4)
+#define BCE_MISC_SM_ASF_CONTROL_PL_TO (1L<<5)
+#define BCE_MISC_SM_ASF_CONTROL_RT_TO (1L<<6)
+#define BCE_MISC_SM_ASF_CONTROL_SMB_EVENT (1L<<7)
+#define BCE_MISC_SM_ASF_CONTROL_STRETCH_EN (1L<<8)
+#define BCE_MISC_SM_ASF_CONTROL_STRETCH_PULSE (1L<<9)
+#define BCE_MISC_SM_ASF_CONTROL_RES (0x3L<<10)
+#define BCE_MISC_SM_ASF_CONTROL_SMB_EN (1L<<12)
+#define BCE_MISC_SM_ASF_CONTROL_SMB_BB_EN (1L<<13)
+#define BCE_MISC_SM_ASF_CONTROL_SMB_NO_ADDR_FILT (1L<<14)
+#define BCE_MISC_SM_ASF_CONTROL_SMB_AUTOREAD (1L<<15)
+#define BCE_MISC_SM_ASF_CONTROL_NIC_SMB_ADDR1 (0x7fL<<16)
+#define BCE_MISC_SM_ASF_CONTROL_NIC_SMB_ADDR2 (0x7fL<<23)
+#define BCE_MISC_SM_ASF_CONTROL_EN_NIC_SMB_ADDR_0 (1L<<30)
+#define BCE_MISC_SM_ASF_CONTROL_SMB_EARLY_ATTN (1L<<31)
+
+#define BCE_MISC_SMB_IN 0x00000884
+#define BCE_MISC_SMB_IN_DAT_IN (0xffL<<0)
+#define BCE_MISC_SMB_IN_RDY (1L<<8)
+#define BCE_MISC_SMB_IN_DONE (1L<<9)
+#define BCE_MISC_SMB_IN_FIRSTBYTE (1L<<10)
+#define BCE_MISC_SMB_IN_STATUS (0x7L<<11)
+#define BCE_MISC_SMB_IN_STATUS_OK (0x0L<<11)
+#define BCE_MISC_SMB_IN_STATUS_PEC (0x1L<<11)
+#define BCE_MISC_SMB_IN_STATUS_OFLOW (0x2L<<11)
+#define BCE_MISC_SMB_IN_STATUS_STOP (0x3L<<11)
+#define BCE_MISC_SMB_IN_STATUS_TIMEOUT (0x4L<<11)
+
+#define BCE_MISC_SMB_OUT 0x00000888
+#define BCE_MISC_SMB_OUT_DAT_OUT (0xffL<<0)
+#define BCE_MISC_SMB_OUT_RDY (1L<<8)
+#define BCE_MISC_SMB_OUT_START (1L<<9)
+#define BCE_MISC_SMB_OUT_LAST (1L<<10)
+#define BCE_MISC_SMB_OUT_ACC_TYPE (1L<<11)
+#define BCE_MISC_SMB_OUT_ENB_PEC (1L<<12)
+#define BCE_MISC_SMB_OUT_GET_RX_LEN (1L<<13)
+#define BCE_MISC_SMB_OUT_SMB_READ_LEN (0x3fL<<14)
+#define BCE_MISC_SMB_OUT_SMB_OUT_STATUS (0xfL<<20)
+#define BCE_MISC_SMB_OUT_SMB_OUT_STATUS_OK (0L<<20)
+#define BCE_MISC_SMB_OUT_SMB_OUT_STATUS_FIRST_NACK (1L<<20)
+#define BCE_MISC_SMB_OUT_SMB_OUT_STATUS_UFLOW (2L<<20)
+#define BCE_MISC_SMB_OUT_SMB_OUT_STATUS_STOP (3L<<20)
+#define BCE_MISC_SMB_OUT_SMB_OUT_STATUS_TIMEOUT (4L<<20)
+#define BCE_MISC_SMB_OUT_SMB_OUT_STATUS_FIRST_LOST (5L<<20)
+#define BCE_MISC_SMB_OUT_SMB_OUT_STATUS_BADACK (6L<<20)
+#define BCE_MISC_SMB_OUT_SMB_OUT_STATUS_SUB_NACK (9L<<20)
+#define BCE_MISC_SMB_OUT_SMB_OUT_STATUS_SUB_LOST (0xdL<<20)
+#define BCE_MISC_SMB_OUT_SMB_OUT_SLAVEMODE (1L<<24)
+#define BCE_MISC_SMB_OUT_SMB_OUT_DAT_EN (1L<<25)
+#define BCE_MISC_SMB_OUT_SMB_OUT_DAT_IN (1L<<26)
+#define BCE_MISC_SMB_OUT_SMB_OUT_CLK_EN (1L<<27)
+#define BCE_MISC_SMB_OUT_SMB_OUT_CLK_IN (1L<<28)
+
+#define BCE_MISC_SMB_WATCHDOG 0x0000088c
+#define BCE_MISC_SMB_WATCHDOG_WATCHDOG (0xffffL<<0)
+
+#define BCE_MISC_SMB_HEARTBEAT 0x00000890
+#define BCE_MISC_SMB_HEARTBEAT_HEARTBEAT (0xffffL<<0)
+
+#define BCE_MISC_SMB_POLL_ASF 0x00000894
+#define BCE_MISC_SMB_POLL_ASF_POLL_ASF (0xffffL<<0)
+
+#define BCE_MISC_SMB_POLL_LEGACY 0x00000898
+#define BCE_MISC_SMB_POLL_LEGACY_POLL_LEGACY (0xffffL<<0)
+
+#define BCE_MISC_SMB_RETRAN 0x0000089c
+#define BCE_MISC_SMB_RETRAN_RETRAN (0xffL<<0)
+
+#define BCE_MISC_SMB_TIMESTAMP 0x000008a0
+#define BCE_MISC_SMB_TIMESTAMP_TIMESTAMP (0xffffffffL<<0)
+
+#define BCE_MISC_PERR_ENA0 0x000008a4
+#define BCE_MISC_PERR_ENA0_COM_MISC_CTXC (1L<<0)
+#define BCE_MISC_PERR_ENA0_COM_MISC_REGF (1L<<1)
+#define BCE_MISC_PERR_ENA0_COM_MISC_SCPAD (1L<<2)
+#define BCE_MISC_PERR_ENA0_CP_MISC_CTXC (1L<<3)
+#define BCE_MISC_PERR_ENA0_CP_MISC_REGF (1L<<4)
+#define BCE_MISC_PERR_ENA0_CP_MISC_SCPAD (1L<<5)
+#define BCE_MISC_PERR_ENA0_CS_MISC_TMEM (1L<<6)
+#define BCE_MISC_PERR_ENA0_CTX_MISC_ACCM0 (1L<<7)
+#define BCE_MISC_PERR_ENA0_CTX_MISC_ACCM1 (1L<<8)
+#define BCE_MISC_PERR_ENA0_CTX_MISC_ACCM2 (1L<<9)
+#define BCE_MISC_PERR_ENA0_CTX_MISC_ACCM3 (1L<<10)
+#define BCE_MISC_PERR_ENA0_CTX_MISC_ACCM4 (1L<<11)
+#define BCE_MISC_PERR_ENA0_CTX_MISC_ACCM5 (1L<<12)
+#define BCE_MISC_PERR_ENA0_CTX_MISC_PGTBL (1L<<13)
+#define BCE_MISC_PERR_ENA0_DMAE_MISC_DR0 (1L<<14)
+#define BCE_MISC_PERR_ENA0_DMAE_MISC_DR1 (1L<<15)
+#define BCE_MISC_PERR_ENA0_DMAE_MISC_DR2 (1L<<16)
+#define BCE_MISC_PERR_ENA0_DMAE_MISC_DR3 (1L<<17)
+#define BCE_MISC_PERR_ENA0_DMAE_MISC_DR4 (1L<<18)
+#define BCE_MISC_PERR_ENA0_DMAE_MISC_DW0 (1L<<19)
+#define BCE_MISC_PERR_ENA0_DMAE_MISC_DW1 (1L<<20)
+#define BCE_MISC_PERR_ENA0_DMAE_MISC_DW2 (1L<<21)
+#define BCE_MISC_PERR_ENA0_HC_MISC_DMA (1L<<22)
+#define BCE_MISC_PERR_ENA0_MCP_MISC_REGF (1L<<23)
+#define BCE_MISC_PERR_ENA0_MCP_MISC_SCPAD (1L<<24)
+#define BCE_MISC_PERR_ENA0_MQ_MISC_CTX (1L<<25)
+#define BCE_MISC_PERR_ENA0_RBDC_MISC (1L<<26)
+#define BCE_MISC_PERR_ENA0_RBUF_MISC_MB (1L<<27)
+#define BCE_MISC_PERR_ENA0_RBUF_MISC_PTR (1L<<28)
+#define BCE_MISC_PERR_ENA0_RDE_MISC_RPC (1L<<29)
+#define BCE_MISC_PERR_ENA0_RDE_MISC_RPM (1L<<30)
+#define BCE_MISC_PERR_ENA0_RV2P_MISC_CB0REGS (1L<<31)
+#define BCE_MISC_PERR_ENA0_COM_DMAE_PERR_EN_XI (1L<<0)
+#define BCE_MISC_PERR_ENA0_CP_DMAE_PERR_EN_XI (1L<<1)
+#define BCE_MISC_PERR_ENA0_RPM_ACPIBEMEM_PERR_EN_XI (1L<<2)
+#define BCE_MISC_PERR_ENA0_CTX_USAGE_CNT_PERR_EN_XI (1L<<3)
+#define BCE_MISC_PERR_ENA0_CTX_PGTBL_PERR_EN_XI (1L<<4)
+#define BCE_MISC_PERR_ENA0_CTX_CACHE_PERR_EN_XI (1L<<5)
+#define BCE_MISC_PERR_ENA0_CTX_MIRROR_PERR_EN_XI (1L<<6)
+#define BCE_MISC_PERR_ENA0_COM_CTXC_PERR_EN_XI (1L<<7)
+#define BCE_MISC_PERR_ENA0_COM_SCPAD_PERR_EN_XI (1L<<8)
+#define BCE_MISC_PERR_ENA0_CP_CTXC_PERR_EN_XI (1L<<9)
+#define BCE_MISC_PERR_ENA0_CP_SCPAD_PERR_EN_XI (1L<<10)
+#define BCE_MISC_PERR_ENA0_RXP_RBUFC_PERR_EN_XI (1L<<11)
+#define BCE_MISC_PERR_ENA0_RXP_CTXC_PERR_EN_XI (1L<<12)
+#define BCE_MISC_PERR_ENA0_RXP_SCPAD_PERR_EN_XI (1L<<13)
+#define BCE_MISC_PERR_ENA0_TPAT_SCPAD_PERR_EN_XI (1L<<14)
+#define BCE_MISC_PERR_ENA0_TXP_CTXC_PERR_EN_XI (1L<<15)
+#define BCE_MISC_PERR_ENA0_TXP_SCPAD_PERR_EN_XI (1L<<16)
+#define BCE_MISC_PERR_ENA0_CS_TMEM_PERR_EN_XI (1L<<17)
+#define BCE_MISC_PERR_ENA0_MQ_CTX_PERR_EN_XI (1L<<18)
+#define BCE_MISC_PERR_ENA0_RPM_DFIFOMEM_PERR_EN_XI (1L<<19)
+#define BCE_MISC_PERR_ENA0_RPC_DFIFOMEM_PERR_EN_XI (1L<<20)
+#define BCE_MISC_PERR_ENA0_RBUF_PTRMEM_PERR_EN_XI (1L<<21)
+#define BCE_MISC_PERR_ENA0_RBUF_DATAMEM_PERR_EN_XI (1L<<22)
+#define BCE_MISC_PERR_ENA0_RV2P_P2IRAM_PERR_EN_XI (1L<<23)
+#define BCE_MISC_PERR_ENA0_RV2P_P1IRAM_PERR_EN_XI (1L<<24)
+#define BCE_MISC_PERR_ENA0_RV2P_CB1REGS_PERR_EN_XI (1L<<25)
+#define BCE_MISC_PERR_ENA0_RV2P_CB0REGS_PERR_EN_XI (1L<<26)
+#define BCE_MISC_PERR_ENA0_TPBUF_PERR_EN_XI (1L<<27)
+#define BCE_MISC_PERR_ENA0_THBUF_PERR_EN_XI (1L<<28)
+#define BCE_MISC_PERR_ENA0_TDMA_PERR_EN_XI (1L<<29)
+#define BCE_MISC_PERR_ENA0_TBDC_PERR_EN_XI (1L<<30)
+#define BCE_MISC_PERR_ENA0_TSCH_LR_PERR_EN_XI (1L<<31)
+
+#define BCE_MISC_PERR_ENA1 0x000008a8
+#define BCE_MISC_PERR_ENA1_RV2P_MISC_CB1REGS (1L<<0)
+#define BCE_MISC_PERR_ENA1_RV2P_MISC_P1IRAM (1L<<1)
+#define BCE_MISC_PERR_ENA1_RV2P_MISC_P2IRAM (1L<<2)
+#define BCE_MISC_PERR_ENA1_RXP_MISC_CTXC (1L<<3)
+#define BCE_MISC_PERR_ENA1_RXP_MISC_REGF (1L<<4)
+#define BCE_MISC_PERR_ENA1_RXP_MISC_SCPAD (1L<<5)
+#define BCE_MISC_PERR_ENA1_RXP_MISC_RBUFC (1L<<6)
+#define BCE_MISC_PERR_ENA1_TBDC_MISC (1L<<7)
+#define BCE_MISC_PERR_ENA1_TDMA_MISC (1L<<8)
+#define BCE_MISC_PERR_ENA1_THBUF_MISC_MB0 (1L<<9)
+#define BCE_MISC_PERR_ENA1_THBUF_MISC_MB1 (1L<<10)
+#define BCE_MISC_PERR_ENA1_TPAT_MISC_REGF (1L<<11)
+#define BCE_MISC_PERR_ENA1_TPAT_MISC_SCPAD (1L<<12)
+#define BCE_MISC_PERR_ENA1_TPBUF_MISC_MB (1L<<13)
+#define BCE_MISC_PERR_ENA1_TSCH_MISC_LR (1L<<14)
+#define BCE_MISC_PERR_ENA1_TXP_MISC_CTXC (1L<<15)
+#define BCE_MISC_PERR_ENA1_TXP_MISC_REGF (1L<<16)
+#define BCE_MISC_PERR_ENA1_TXP_MISC_SCPAD (1L<<17)
+#define BCE_MISC_PERR_ENA1_UMP_MISC_FIORX (1L<<18)
+#define BCE_MISC_PERR_ENA1_UMP_MISC_FIOTX (1L<<19)
+#define BCE_MISC_PERR_ENA1_UMP_MISC_RX (1L<<20)
+#define BCE_MISC_PERR_ENA1_UMP_MISC_TX (1L<<21)
+#define BCE_MISC_PERR_ENA1_RDMAQ_MISC (1L<<22)
+#define BCE_MISC_PERR_ENA1_CSQ_MISC (1L<<23)
+#define BCE_MISC_PERR_ENA1_CPQ_MISC (1L<<24)
+#define BCE_MISC_PERR_ENA1_MCPQ_MISC (1L<<25)
+#define BCE_MISC_PERR_ENA1_RV2PMQ_MISC (1L<<26)
+#define BCE_MISC_PERR_ENA1_RV2PPQ_MISC (1L<<27)
+#define BCE_MISC_PERR_ENA1_RV2PTQ_MISC (1L<<28)
+#define BCE_MISC_PERR_ENA1_RXPQ_MISC (1L<<29)
+#define BCE_MISC_PERR_ENA1_RXPCQ_MISC (1L<<30)
+#define BCE_MISC_PERR_ENA1_RLUPQ_MISC (1L<<31)
+#define BCE_MISC_PERR_ENA1_RBDC_PERR_EN_XI (1L<<0)
+#define BCE_MISC_PERR_ENA1_RDMA_DFIFO_PERR_EN_XI (1L<<2)
+#define BCE_MISC_PERR_ENA1_HC_STATS_PERR_EN_XI (1L<<3)
+#define BCE_MISC_PERR_ENA1_HC_MSIX_PERR_EN_XI (1L<<4)
+#define BCE_MISC_PERR_ENA1_HC_PRODUCSTB_PERR_EN_XI (1L<<5)
+#define BCE_MISC_PERR_ENA1_HC_CONSUMSTB_PERR_EN_XI (1L<<6)
+#define BCE_MISC_PERR_ENA1_TPATQ_PERR_EN_XI (1L<<7)
+#define BCE_MISC_PERR_ENA1_MCPQ_PERR_EN_XI (1L<<8)
+#define BCE_MISC_PERR_ENA1_TDMAQ_PERR_EN_XI (1L<<9)
+#define BCE_MISC_PERR_ENA1_TXPQ_PERR_EN_XI (1L<<10)
+#define BCE_MISC_PERR_ENA1_COMTQ_PERR_EN_XI (1L<<11)
+#define BCE_MISC_PERR_ENA1_COMQ_PERR_EN_XI (1L<<12)
+#define BCE_MISC_PERR_ENA1_RLUPQ_PERR_EN_XI (1L<<13)
+#define BCE_MISC_PERR_ENA1_RXPQ_PERR_EN_XI (1L<<14)
+#define BCE_MISC_PERR_ENA1_RV2PPQ_PERR_EN_XI (1L<<15)
+#define BCE_MISC_PERR_ENA1_RDMAQ_PERR_EN_XI (1L<<16)
+#define BCE_MISC_PERR_ENA1_TASQ_PERR_EN_XI (1L<<17)
+#define BCE_MISC_PERR_ENA1_TBDRQ_PERR_EN_XI (1L<<18)
+#define BCE_MISC_PERR_ENA1_TSCHQ_PERR_EN_XI (1L<<19)
+#define BCE_MISC_PERR_ENA1_COMXQ_PERR_EN_XI (1L<<20)
+#define BCE_MISC_PERR_ENA1_RXPCQ_PERR_EN_XI (1L<<21)
+#define BCE_MISC_PERR_ENA1_RV2PTQ_PERR_EN_XI (1L<<22)
+#define BCE_MISC_PERR_ENA1_RV2PMQ_PERR_EN_XI (1L<<23)
+#define BCE_MISC_PERR_ENA1_CPQ_PERR_EN_XI (1L<<24)
+#define BCE_MISC_PERR_ENA1_CSQ_PERR_EN_XI (1L<<25)
+#define BCE_MISC_PERR_ENA1_RLUP_CID_PERR_EN_XI (1L<<26)
+#define BCE_MISC_PERR_ENA1_RV2PCS_TMEM_PERR_EN_XI (1L<<27)
+#define BCE_MISC_PERR_ENA1_RV2PCSQ_PERR_EN_XI (1L<<28)
+#define BCE_MISC_PERR_ENA1_MQ_IDX_PERR_EN_XI (1L<<29)
+
+#define BCE_MISC_PERR_ENA2 0x000008ac
+#define BCE_MISC_PERR_ENA2_COMQ_MISC (1L<<0)
+#define BCE_MISC_PERR_ENA2_COMXQ_MISC (1L<<1)
+#define BCE_MISC_PERR_ENA2_COMTQ_MISC (1L<<2)
+#define BCE_MISC_PERR_ENA2_TSCHQ_MISC (1L<<3)
+#define BCE_MISC_PERR_ENA2_TBDRQ_MISC (1L<<4)
+#define BCE_MISC_PERR_ENA2_TXPQ_MISC (1L<<5)
+#define BCE_MISC_PERR_ENA2_TDMAQ_MISC (1L<<6)
+#define BCE_MISC_PERR_ENA2_TPATQ_MISC (1L<<7)
+#define BCE_MISC_PERR_ENA2_TASQ_MISC (1L<<8)
+#define BCE_MISC_PERR_ENA2_TGT_FIFO_PERR_EN_XI (1L<<0)
+#define BCE_MISC_PERR_ENA2_UMP_TX_PERR_EN_XI (1L<<1)
+#define BCE_MISC_PERR_ENA2_UMP_RX_PERR_EN_XI (1L<<2)
+#define BCE_MISC_PERR_ENA2_MCP_ROM_PERR_EN_XI (1L<<3)
+#define BCE_MISC_PERR_ENA2_MCP_SCPAD_PERR_EN_XI (1L<<4)
+#define BCE_MISC_PERR_ENA2_HB_MEM_PERR_EN_XI (1L<<5)
+#define BCE_MISC_PERR_ENA2_PCIE_REPLAY_PERR_EN_XI (1L<<6)
+
+#define BCE_MISC_DEBUG_VECTOR_SEL 0x000008b0
+#define BCE_MISC_DEBUG_VECTOR_SEL_0 (0xfffL<<0)
+#define BCE_MISC_DEBUG_VECTOR_SEL_1 (0xfffL<<12)
+#define BCE_MISC_DEBUG_VECTOR_SEL_1_XI (0xfffL<<15)
+
+#define BCE_MISC_VREG_CONTROL 0x000008b4
+#define BCE_MISC_VREG_CONTROL_1_2 (0xfL<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_XI (0xfL<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_PLUS14_XI (0L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_PLUS12_XI (1L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_PLUS10_XI (2L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_PLUS8_XI (3L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_PLUS6_XI (4L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_PLUS4_XI (5L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_PLUS2_XI (6L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_NOM_XI (7L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_MINUS2_XI (8L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_MINUS4_XI (9L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_MINUS6_XI (10L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_MINUS8_XI (11L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_MINUS10_XI (12L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_MINUS12_XI (13L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_MINUS14_XI (14L<<0)
+#define BCE_MISC_VREG_CONTROL_1_0_MAIN_MINUS16_XI (15L<<0)
+#define BCE_MISC_VREG_CONTROL_2_5 (0xfL<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_PLUS14 (0L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_PLUS12 (1L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_PLUS10 (2L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_PLUS8 (3L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_PLUS6 (4L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_PLUS4 (5L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_PLUS2 (6L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_NOM (7L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_MINUS2 (8L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_MINUS4 (9L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_MINUS6 (10L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_MINUS8 (11L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_MINUS10 (12L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_MINUS12 (13L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_MINUS14 (14L<<4)
+#define BCE_MISC_VREG_CONTROL_2_5_MINUS16 (15L<<4)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT (0xfL<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_PLUS14 (0L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_PLUS12 (1L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_PLUS10 (2L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_PLUS8 (3L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_PLUS6 (4L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_PLUS4 (5L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_PLUS2 (6L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_NOM (7L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_MINUS2 (8L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_MINUS4 (9L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_MINUS6 (10L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_MINUS8 (11L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_MINUS10 (12L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_MINUS12 (13L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_MINUS14 (14L<<8)
+#define BCE_MISC_VREG_CONTROL_1_0_MGMT_MINUS16 (15L<<8)
+
+#define BCE_MISC_FINAL_CLK_CTL_VAL 0x000008b8
+#define BCE_MISC_FINAL_CLK_CTL_VAL_MISC_FINAL_CLK_CTL_VAL (0x3ffffffL<<6)
+
+#define BCE_MISC_GP_HW_CTL0 0x000008bc
+#define BCE_MISC_GP_HW_CTL0_TX_DRIVE (1L<<0)
+#define BCE_MISC_GP_HW_CTL0_RMII_MODE (1L<<1)
+#define BCE_MISC_GP_HW_CTL0_RMII_CRSDV_SEL (1L<<2)
+#define BCE_MISC_GP_HW_CTL0_RVMII_MODE (1L<<3)
+#define BCE_MISC_GP_HW_CTL0_FLASH_SAMP_SCLK_NEGEDGE_TE (1L<<4)
+#define BCE_MISC_GP_HW_CTL0_HIDDEN_REVISION_ID_TE (1L<<5)
+#define BCE_MISC_GP_HW_CTL0_HC_CNTL_TMOUT_CTR_RST_TE (1L<<6)
+#define BCE_MISC_GP_HW_CTL0_RESERVED1_XI (0x7L<<4)
+#define BCE_MISC_GP_HW_CTL0_ENA_CORE_RST_ON_MAIN_PWR_GOING_AWAY (1L<<7)
+#define BCE_MISC_GP_HW_CTL0_ENA_SEL_VAUX_B_IN_L2_TE (1L<<8)
+#define BCE_MISC_GP_HW_CTL0_GRC_BNK_FREE_FIX_TE (1L<<9)
+#define BCE_MISC_GP_HW_CTL0_LED_ACT_SEL_TE (1L<<10)
+#define BCE_MISC_GP_HW_CTL0_RESERVED2_XI (0x7L<<8)
+#define BCE_MISC_GP_HW_CTL0_UP1_DEF0 (1L<<11)
+#define BCE_MISC_GP_HW_CTL0_FIBER_MODE_DIS_DEF (1L<<12)
+#define BCE_MISC_GP_HW_CTL0_FORCE2500_DEF (1L<<13)
+#define BCE_MISC_GP_HW_CTL0_AUTODETECT_DIS_DEF (1L<<14)
+#define BCE_MISC_GP_HW_CTL0_PARALLEL_DETECT_DEF (1L<<15)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_DAI (0xfL<<16)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_DAI_3MA (0L<<16)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_DAI_2P5MA (1L<<16)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_DAI_2P0MA (3L<<16)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_DAI_1P5MA (5L<<16)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_DAI_1P0MA (7L<<16)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_DAI_PWRDN (15L<<16)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_PRE2DIS (1L<<20)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_PRE1DIS (1L<<21)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_CTAT (0x3L<<22)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_CTAT_M6P (0L<<22)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_CTAT_M0P (1L<<22)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_CTAT_P0P (2L<<22)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_CTAT_P6P (3L<<22)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_PTAT (0x3L<<24)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_PTAT_M6P (0L<<24)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_PTAT_M0P (1L<<24)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_PTAT_P0P (2L<<24)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_PTAT_P6P (3L<<24)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_IAMP_ADJ (0x3L<<26)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_IAMP_ADJ_240UA (0L<<26)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_IAMP_ADJ_160UA (1L<<26)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_IAMP_ADJ_400UA (2L<<26)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_IAMP_ADJ_320UA (3L<<26)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_ICBUF_ADJ (0x3L<<28)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_ICBUF_ADJ_240UA (0L<<28)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_ICBUF_ADJ_160UA (1L<<28)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_ICBUF_ADJ_400UA (2L<<28)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_ICBUF_ADJ_320UA (3L<<28)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_XTAL_ADJ (0x3L<<30)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_XTAL_ADJ_1P57 (0L<<30)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_XTAL_ADJ_1P45 (1L<<30)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_XTAL_ADJ_1P62 (2L<<30)
+#define BCE_MISC_GP_HW_CTL0_OSCCTRL_XTAL_ADJ_1P66 (3L<<30)
+
+#define BCE_MISC_GP_HW_CTL1 0x000008c0
+#define BCE_MISC_GP_HW_CTL1_1_ATTN_BTN_PRSNT_TE (1L<<0)
+#define BCE_MISC_GP_HW_CTL1_1_ATTN_IND_PRSNT_TE (1L<<1)
+#define BCE_MISC_GP_HW_CTL1_1_PWR_IND_PRSNT_TE (1L<<2)
+#define BCE_MISC_GP_HW_CTL1_0_PCIE_LOOPBACK_TE (1L<<3)
+#define BCE_MISC_GP_HW_CTL1_RESERVED_SOFT_XI (0xffffL<<0)
+#define BCE_MISC_GP_HW_CTL1_RESERVED_HARD_XI (0xffffL<<16)
+
+#define BCE_MISC_NEW_HW_CTL 0x000008c4
+#define BCE_MISC_NEW_HW_CTL_MAIN_POR_BYPASS (1L<<0)
+#define BCE_MISC_NEW_HW_CTL_RINGOSC_ENABLE (1L<<1)
+#define BCE_MISC_NEW_HW_CTL_RINGOSC_SEL0 (1L<<2)
+#define BCE_MISC_NEW_HW_CTL_RINGOSC_SEL1 (1L<<3)
+#define BCE_MISC_NEW_HW_CTL_RESERVED_SHARED (0xfffL<<4)
+#define BCE_MISC_NEW_HW_CTL_RESERVED_SPLIT (0xffffL<<16)
+
+#define BCE_MISC_NEW_CORE_CTL 0x000008c8
+#define BCE_MISC_NEW_CORE_CTL_LINK_HOLDOFF_SUCCESS (1L<<0)
+#define BCE_MISC_NEW_CORE_CTL_LINK_HOLDOFF_REQ (1L<<1)
+#define BCE_MISC_NEW_CORE_CTL_DMA_ENABLE (1L<<16)
+#define BCE_MISC_NEW_CORE_CTL_RESERVED_CMN (0x3fffL<<2)
+#define BCE_MISC_NEW_CORE_CTL_RESERVED_TC (0xffffL<<16)
+
+#define BCE_MISC_ECO_HW_CTL 0x000008cc
+#define BCE_MISC_ECO_HW_CTL_LARGE_GRC_TMOUT_EN (1L<<0)
+#define BCE_MISC_ECO_HW_CTL_RESERVED_SOFT (0x7fffL<<1)
+#define BCE_MISC_ECO_HW_CTL_RESERVED_HARD (0xffffL<<16)
+
+#define BCE_MISC_ECO_CORE_CTL 0x000008d0
+#define BCE_MISC_ECO_CORE_CTL_RESERVED_SOFT (0xffffL<<0)
+#define BCE_MISC_ECO_CORE_CTL_RESERVED_HARD (0xffffL<<16)
+
+#define BCE_MISC_PPIO 0x000008d4
+#define BCE_MISC_PPIO_VALUE (0xfL<<0)
+#define BCE_MISC_PPIO_SET (0xfL<<8)
+#define BCE_MISC_PPIO_CLR (0xfL<<16)
+#define BCE_MISC_PPIO_FLOAT (0xfL<<24)
+
+#define BCE_MISC_PPIO_INT 0x000008d8
+#define BCE_MISC_PPIO_INT_INT_STATE (0xfL<<0)
+#define BCE_MISC_PPIO_INT_OLD_VALUE (0xfL<<8)
+#define BCE_MISC_PPIO_INT_OLD_SET (0xfL<<16)
+#define BCE_MISC_PPIO_INT_OLD_CLR (0xfL<<24)
+
+#define BCE_MISC_RESET_NUMS 0x000008dc
+#define BCE_MISC_RESET_NUMS_NUM_HARD_RESETS (0x7L<<0)
+#define BCE_MISC_RESET_NUMS_NUM_PCIE_RESETS (0x7L<<4)
+#define BCE_MISC_RESET_NUMS_NUM_PERSTB_RESETS (0x7L<<8)
+#define BCE_MISC_RESET_NUMS_NUM_CMN_RESETS (0x7L<<12)
+#define BCE_MISC_RESET_NUMS_NUM_PORT_RESETS (0x7L<<16)
+
+#define BCE_MISC_CS16_ERR 0x000008e0
+#define BCE_MISC_CS16_ERR_ENA_PCI (1L<<0)
+#define BCE_MISC_CS16_ERR_ENA_RDMA (1L<<1)
+#define BCE_MISC_CS16_ERR_ENA_TDMA (1L<<2)
+#define BCE_MISC_CS16_ERR_ENA_EMAC (1L<<3)
+#define BCE_MISC_CS16_ERR_ENA_CTX (1L<<4)
+#define BCE_MISC_CS16_ERR_ENA_TBDR (1L<<5)
+#define BCE_MISC_CS16_ERR_ENA_RBDC (1L<<6)
+#define BCE_MISC_CS16_ERR_ENA_COM (1L<<7)
+#define BCE_MISC_CS16_ERR_ENA_CP (1L<<8)
+#define BCE_MISC_CS16_ERR_STA_PCI (1L<<16)
+#define BCE_MISC_CS16_ERR_STA_RDMA (1L<<17)
+#define BCE_MISC_CS16_ERR_STA_TDMA (1L<<18)
+#define BCE_MISC_CS16_ERR_STA_EMAC (1L<<19)
+#define BCE_MISC_CS16_ERR_STA_CTX (1L<<20)
+#define BCE_MISC_CS16_ERR_STA_TBDR (1L<<21)
+#define BCE_MISC_CS16_ERR_STA_RBDC (1L<<22)
+#define BCE_MISC_CS16_ERR_STA_COM (1L<<23)
+#define BCE_MISC_CS16_ERR_STA_CP (1L<<24)
+
+#define BCE_MISC_SPIO_EVENT 0x000008e4
+#define BCE_MISC_SPIO_EVENT_ENABLE (0xffL<<0)
+
+#define BCE_MISC_PPIO_EVENT 0x000008e8
+#define BCE_MISC_PPIO_EVENT_ENABLE (0xfL<<0)
+
+#define BCE_MISC_DUAL_MEDIA_CTRL 0x000008ec
+#define BCE_MISC_DUAL_MEDIA_CTRL_BOND_ID (0xffL<<0)
+#define BCE_MISC_DUAL_MEDIA_CTRL_BOND_ID_X (0L<<0)
+#define BCE_MISC_DUAL_MEDIA_CTRL_BOND_ID_C (3L<<0)
+#define BCE_MISC_DUAL_MEDIA_CTRL_BOND_ID_S (12L<<0)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PHY_CTRL_STRAP (0x7L<<8)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PORT_SWAP_PIN (1L<<11)
+#define BCE_MISC_DUAL_MEDIA_CTRL_SERDES1_SIGDET (1L<<12)
+#define BCE_MISC_DUAL_MEDIA_CTRL_SERDES0_SIGDET (1L<<13)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PHY1_SIGDET (1L<<14)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PHY0_SIGDET (1L<<15)
+#define BCE_MISC_DUAL_MEDIA_CTRL_LCPLL_RST (1L<<16)
+#define BCE_MISC_DUAL_MEDIA_CTRL_SERDES1_RST (1L<<17)
+#define BCE_MISC_DUAL_MEDIA_CTRL_SERDES0_RST (1L<<18)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PHY1_RST (1L<<19)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PHY0_RST (1L<<20)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PHY_CTRL (0x7L<<21)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PORT_SWAP (1L<<24)
+#define BCE_MISC_DUAL_MEDIA_CTRL_STRAP_OVERRIDE (1L<<25)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PHY_SERDES_IDDQ (0xfL<<26)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PHY_SERDES_IDDQ_SER1_IDDQ (1L<<26)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PHY_SERDES_IDDQ_SER0_IDDQ (2L<<26)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PHY_SERDES_IDDQ_PHY1_IDDQ (4L<<26)
+#define BCE_MISC_DUAL_MEDIA_CTRL_PHY_SERDES_IDDQ_PHY0_IDDQ (8L<<26)
+
+#define BCE_MISC_OTP_CMD1 0x000008f0
+#define BCE_MISC_OTP_CMD1_FMODE (0x7L<<0)
+#define BCE_MISC_OTP_CMD1_FMODE_IDLE (0L<<0)
+#define BCE_MISC_OTP_CMD1_FMODE_WRITE (1L<<0)
+#define BCE_MISC_OTP_CMD1_FMODE_INIT (2L<<0)
+#define BCE_MISC_OTP_CMD1_FMODE_SET (3L<<0)
+#define BCE_MISC_OTP_CMD1_FMODE_RST (4L<<0)
+#define BCE_MISC_OTP_CMD1_FMODE_VERIFY (5L<<0)
+#define BCE_MISC_OTP_CMD1_FMODE_RESERVED0 (6L<<0)
+#define BCE_MISC_OTP_CMD1_FMODE_RESERVED1 (7L<<0)
+#define BCE_MISC_OTP_CMD1_USEPINS (1L<<8)
+#define BCE_MISC_OTP_CMD1_PROGSEL (1L<<9)
+#define BCE_MISC_OTP_CMD1_PROGSTART (1L<<10)
+#define BCE_MISC_OTP_CMD1_PCOUNT (0x7L<<16)
+#define BCE_MISC_OTP_CMD1_PBYP (1L<<19)
+#define BCE_MISC_OTP_CMD1_VSEL (0xfL<<20)
+#define BCE_MISC_OTP_CMD1_TM (0x7L<<27)
+#define BCE_MISC_OTP_CMD1_SADBYP (1L<<30)
+#define BCE_MISC_OTP_CMD1_DEBUG (1L<<31)
+
+#define BCE_MISC_OTP_CMD2 0x000008f4
+#define BCE_MISC_OTP_CMD2_OTP_ROM_ADDR (0x3ffL<<0)
+#define BCE_MISC_OTP_CMD2_DOSEL (0x7fL<<16)
+#define BCE_MISC_OTP_CMD2_DOSEL_0 (0L<<16)
+#define BCE_MISC_OTP_CMD2_DOSEL_1 (1L<<16)
+#define BCE_MISC_OTP_CMD2_DOSEL_127 (127L<<16)
+
+#define BCE_MISC_OTP_STATUS 0x000008f8
+#define BCE_MISC_OTP_STATUS_DATA (0xffL<<0)
+#define BCE_MISC_OTP_STATUS_VALID (1L<<8)
+#define BCE_MISC_OTP_STATUS_BUSY (1L<<9)
+#define BCE_MISC_OTP_STATUS_BUSYSM (1L<<10)
+#define BCE_MISC_OTP_STATUS_DONE (1L<<11)
+
+#define BCE_MISC_OTP_SHIFT1_CMD 0x000008fc
+#define BCE_MISC_OTP_SHIFT1_CMD_RESET_MODE_N (1L<<0)
+#define BCE_MISC_OTP_SHIFT1_CMD_SHIFT_DONE (1L<<1)
+#define BCE_MISC_OTP_SHIFT1_CMD_SHIFT_START (1L<<2)
+#define BCE_MISC_OTP_SHIFT1_CMD_LOAD_DATA (1L<<3)
+#define BCE_MISC_OTP_SHIFT1_CMD_SHIFT_SELECT (0x1fL<<8)
+
+#define BCE_MISC_OTP_SHIFT1_DATA 0x00000900
+#define BCE_MISC_OTP_SHIFT2_CMD 0x00000904
+#define BCE_MISC_OTP_SHIFT2_CMD_RESET_MODE_N (1L<<0)
+#define BCE_MISC_OTP_SHIFT2_CMD_SHIFT_DONE (1L<<1)
+#define BCE_MISC_OTP_SHIFT2_CMD_SHIFT_START (1L<<2)
+#define BCE_MISC_OTP_SHIFT2_CMD_LOAD_DATA (1L<<3)
+#define BCE_MISC_OTP_SHIFT2_CMD_SHIFT_SELECT (0x1fL<<8)
+
+#define BCE_MISC_OTP_SHIFT2_DATA 0x00000908
+#define BCE_MISC_BIST_CS0 0x0000090c
+#define BCE_MISC_BIST_CS0_MBIST_EN (1L<<0)
+#define BCE_MISC_BIST_CS0_BIST_SETUP (0x3L<<1)
+#define BCE_MISC_BIST_CS0_MBIST_ASYNC_RESET (1L<<3)
+#define BCE_MISC_BIST_CS0_MBIST_DONE (1L<<8)
+#define BCE_MISC_BIST_CS0_MBIST_GO (1L<<9)
+#define BCE_MISC_BIST_CS0_BIST_OVERRIDE (1L<<31)
+
+#define BCE_MISC_BIST_MEMSTATUS0 0x00000910
+#define BCE_MISC_BIST_CS1 0x00000914
+#define BCE_MISC_BIST_CS1_MBIST_EN (1L<<0)
+#define BCE_MISC_BIST_CS1_BIST_SETUP (0x3L<<1)
+#define BCE_MISC_BIST_CS1_MBIST_ASYNC_RESET (1L<<3)
+#define BCE_MISC_BIST_CS1_MBIST_DONE (1L<<8)
+#define BCE_MISC_BIST_CS1_MBIST_GO (1L<<9)
+
+#define BCE_MISC_BIST_MEMSTATUS1 0x00000918
+#define BCE_MISC_BIST_CS2 0x0000091c
+#define BCE_MISC_BIST_CS2_MBIST_EN (1L<<0)
+#define BCE_MISC_BIST_CS2_BIST_SETUP (0x3L<<1)
+#define BCE_MISC_BIST_CS2_MBIST_ASYNC_RESET (1L<<3)
+#define BCE_MISC_BIST_CS2_MBIST_DONE (1L<<8)
+#define BCE_MISC_BIST_CS2_MBIST_GO (1L<<9)
+
+#define BCE_MISC_BIST_MEMSTATUS2 0x00000920
+#define BCE_MISC_BIST_CS3 0x00000924
+#define BCE_MISC_BIST_CS3_MBIST_EN (1L<<0)
+#define BCE_MISC_BIST_CS3_BIST_SETUP (0x3L<<1)
+#define BCE_MISC_BIST_CS3_MBIST_ASYNC_RESET (1L<<3)
+#define BCE_MISC_BIST_CS3_MBIST_DONE (1L<<8)
+#define BCE_MISC_BIST_CS3_MBIST_GO (1L<<9)
+
+#define BCE_MISC_BIST_MEMSTATUS3 0x00000928
+#define BCE_MISC_BIST_CS4 0x0000092c
+#define BCE_MISC_BIST_CS4_MBIST_EN (1L<<0)
+#define BCE_MISC_BIST_CS4_BIST_SETUP (0x3L<<1)
+#define BCE_MISC_BIST_CS4_MBIST_ASYNC_RESET (1L<<3)
+#define BCE_MISC_BIST_CS4_MBIST_DONE (1L<<8)
+#define BCE_MISC_BIST_CS4_MBIST_GO (1L<<9)
+
+#define BCE_MISC_BIST_MEMSTATUS4 0x00000930
+#define BCE_MISC_BIST_CS5 0x00000934
+#define BCE_MISC_BIST_CS5_MBIST_EN (1L<<0)
+#define BCE_MISC_BIST_CS5_BIST_SETUP (0x3L<<1)
+#define BCE_MISC_BIST_CS5_MBIST_ASYNC_RESET (1L<<3)
+#define BCE_MISC_BIST_CS5_MBIST_DONE (1L<<8)
+#define BCE_MISC_BIST_CS5_MBIST_GO (1L<<9)
+
+#define BCE_MISC_BIST_MEMSTATUS5 0x00000938
+#define BCE_MISC_MEM_TM0 0x0000093c
+#define BCE_MISC_MEM_TM0_PCIE_REPLAY_TM (0xfL<<0)
+#define BCE_MISC_MEM_TM0_MCP_SCPAD (0xfL<<8)
+#define BCE_MISC_MEM_TM0_UMP_TM (0xffL<<16)
+#define BCE_MISC_MEM_TM0_HB_MEM_TM (0xfL<<24)
+
+#define BCE_MISC_USPLL_CTRL 0x00000940
+#define BCE_MISC_USPLL_CTRL_PH_DET_DIS (1L<<0)
+#define BCE_MISC_USPLL_CTRL_FREQ_DET_DIS (1L<<1)
+#define BCE_MISC_USPLL_CTRL_LCPX (0x3fL<<2)
+#define BCE_MISC_USPLL_CTRL_RX (0x3L<<8)
+#define BCE_MISC_USPLL_CTRL_VC_EN (1L<<10)
+#define BCE_MISC_USPLL_CTRL_VCO_MG (0x3L<<11)
+#define BCE_MISC_USPLL_CTRL_KVCO_XF (0x7L<<13)
+#define BCE_MISC_USPLL_CTRL_KVCO_XS (0x7L<<16)
+#define BCE_MISC_USPLL_CTRL_TESTD_EN (1L<<19)
+#define BCE_MISC_USPLL_CTRL_TESTD_SEL (0x7L<<20)
+#define BCE_MISC_USPLL_CTRL_TESTA_EN (1L<<23)
+#define BCE_MISC_USPLL_CTRL_TESTA_SEL (0x3L<<24)
+#define BCE_MISC_USPLL_CTRL_ATTEN_FREF (1L<<26)
+#define BCE_MISC_USPLL_CTRL_DIGITAL_RST (1L<<27)
+#define BCE_MISC_USPLL_CTRL_ANALOG_RST (1L<<28)
+#define BCE_MISC_USPLL_CTRL_LOCK (1L<<29)
+
+#define BCE_MISC_PERR_STATUS0 0x00000944
+#define BCE_MISC_PERR_STATUS0_COM_DMAE_PERR (1L<<0)
+#define BCE_MISC_PERR_STATUS0_CP_DMAE_PERR (1L<<1)
+#define BCE_MISC_PERR_STATUS0_RPM_ACPIBEMEM_PERR (1L<<2)
+#define BCE_MISC_PERR_STATUS0_CTX_USAGE_CNT_PERR (1L<<3)
+#define BCE_MISC_PERR_STATUS0_CTX_PGTBL_PERR (1L<<4)
+#define BCE_MISC_PERR_STATUS0_CTX_CACHE_PERR (1L<<5)
+#define BCE_MISC_PERR_STATUS0_CTX_MIRROR_PERR (1L<<6)
+#define BCE_MISC_PERR_STATUS0_COM_CTXC_PERR (1L<<7)
+#define BCE_MISC_PERR_STATUS0_COM_SCPAD_PERR (1L<<8)
+#define BCE_MISC_PERR_STATUS0_CP_CTXC_PERR (1L<<9)
+#define BCE_MISC_PERR_STATUS0_CP_SCPAD_PERR (1L<<10)
+#define BCE_MISC_PERR_STATUS0_RXP_RBUFC_PERR (1L<<11)
+#define BCE_MISC_PERR_STATUS0_RXP_CTXC_PERR (1L<<12)
+#define BCE_MISC_PERR_STATUS0_RXP_SCPAD_PERR (1L<<13)
+#define BCE_MISC_PERR_STATUS0_TPAT_SCPAD_PERR (1L<<14)
+#define BCE_MISC_PERR_STATUS0_TXP_CTXC_PERR (1L<<15)
+#define BCE_MISC_PERR_STATUS0_TXP_SCPAD_PERR (1L<<16)
+#define BCE_MISC_PERR_STATUS0_CS_TMEM_PERR (1L<<17)
+#define BCE_MISC_PERR_STATUS0_MQ_CTX_PERR (1L<<18)
+#define BCE_MISC_PERR_STATUS0_RPM_DFIFOMEM_PERR (1L<<19)
+#define BCE_MISC_PERR_STATUS0_RPC_DFIFOMEM_PERR (1L<<20)
+#define BCE_MISC_PERR_STATUS0_RBUF_PTRMEM_PERR (1L<<21)
+#define BCE_MISC_PERR_STATUS0_RBUF_DATAMEM_PERR (1L<<22)
+#define BCE_MISC_PERR_STATUS0_RV2P_P2IRAM_PERR (1L<<23)
+#define BCE_MISC_PERR_STATUS0_RV2P_P1IRAM_PERR (1L<<24)
+#define BCE_MISC_PERR_STATUS0_RV2P_CB1REGS_PERR (1L<<25)
+#define BCE_MISC_PERR_STATUS0_RV2P_CB0REGS_PERR (1L<<26)
+#define BCE_MISC_PERR_STATUS0_TPBUF_PERR (1L<<27)
+#define BCE_MISC_PERR_STATUS0_THBUF_PERR (1L<<28)
+#define BCE_MISC_PERR_STATUS0_TDMA_PERR (1L<<29)
+#define BCE_MISC_PERR_STATUS0_TBDC_PERR (1L<<30)
+#define BCE_MISC_PERR_STATUS0_TSCH_LR_PERR (1L<<31)
+
+#define BCE_MISC_PERR_STATUS1 0x00000948
+#define BCE_MISC_PERR_STATUS1_RBDC_PERR (1L<<0)
+#define BCE_MISC_PERR_STATUS1_RDMA_DFIFO_PERR (1L<<2)
+#define BCE_MISC_PERR_STATUS1_HC_STATS_PERR (1L<<3)
+#define BCE_MISC_PERR_STATUS1_HC_MSIX_PERR (1L<<4)
+#define BCE_MISC_PERR_STATUS1_HC_PRODUCSTB_PERR (1L<<5)
+#define BCE_MISC_PERR_STATUS1_HC_CONSUMSTB_PERR (1L<<6)
+#define BCE_MISC_PERR_STATUS1_TPATQ_PERR (1L<<7)
+#define BCE_MISC_PERR_STATUS1_MCPQ_PERR (1L<<8)
+#define BCE_MISC_PERR_STATUS1_TDMAQ_PERR (1L<<9)
+#define BCE_MISC_PERR_STATUS1_TXPQ_PERR (1L<<10)
+#define BCE_MISC_PERR_STATUS1_COMTQ_PERR (1L<<11)
+#define BCE_MISC_PERR_STATUS1_COMQ_PERR (1L<<12)
+#define BCE_MISC_PERR_STATUS1_RLUPQ_PERR (1L<<13)
+#define BCE_MISC_PERR_STATUS1_RXPQ_PERR (1L<<14)
+#define BCE_MISC_PERR_STATUS1_RV2PPQ_PERR (1L<<15)
+#define BCE_MISC_PERR_STATUS1_RDMAQ_PERR (1L<<16)
+#define BCE_MISC_PERR_STATUS1_TASQ_PERR (1L<<17)
+#define BCE_MISC_PERR_STATUS1_TBDRQ_PERR (1L<<18)
+#define BCE_MISC_PERR_STATUS1_TSCHQ_PERR (1L<<19)
+#define BCE_MISC_PERR_STATUS1_COMXQ_PERR (1L<<20)
+#define BCE_MISC_PERR_STATUS1_RXPCQ_PERR (1L<<21)
+#define BCE_MISC_PERR_STATUS1_RV2PTQ_PERR (1L<<22)
+#define BCE_MISC_PERR_STATUS1_RV2PMQ_PERR (1L<<23)
+#define BCE_MISC_PERR_STATUS1_CPQ_PERR (1L<<24)
+#define BCE_MISC_PERR_STATUS1_CSQ_PERR (1L<<25)
+#define BCE_MISC_PERR_STATUS1_RLUP_CID_PERR (1L<<26)
+#define BCE_MISC_PERR_STATUS1_RV2PCS_TMEM_PERR (1L<<27)
+#define BCE_MISC_PERR_STATUS1_RV2PCSQ_PERR (1L<<28)
+#define BCE_MISC_PERR_STATUS1_MQ_IDX_PERR (1L<<29)
+
+#define BCE_MISC_PERR_STATUS2 0x0000094c
+#define BCE_MISC_PERR_STATUS2_TGT_FIFO_PERR (1L<<0)
+#define BCE_MISC_PERR_STATUS2_UMP_TX_PERR (1L<<1)
+#define BCE_MISC_PERR_STATUS2_UMP_RX_PERR (1L<<2)
+#define BCE_MISC_PERR_STATUS2_MCP_ROM_PERR (1L<<3)
+#define BCE_MISC_PERR_STATUS2_MCP_SCPAD_PERR (1L<<4)
+#define BCE_MISC_PERR_STATUS2_HB_MEM_PERR (1L<<5)
+#define BCE_MISC_PERR_STATUS2_PCIE_REPLAY_PERR (1L<<6)
+
+#define BCE_MISC_LCPLL_CTRL0 0x00000950
+#define BCE_MISC_LCPLL_CTRL0_OAC (0x7L<<0)
+#define BCE_MISC_LCPLL_CTRL0_OAC_NEGTWENTY (0L<<0)
+#define BCE_MISC_LCPLL_CTRL0_OAC_ZERO (1L<<0)
+#define BCE_MISC_LCPLL_CTRL0_OAC_TWENTY (3L<<0)
+#define BCE_MISC_LCPLL_CTRL0_OAC_FORTY (7L<<0)
+#define BCE_MISC_LCPLL_CTRL0_ICP_CTRL (0x7L<<3)
+#define BCE_MISC_LCPLL_CTRL0_ICP_CTRL_360 (0L<<3)
+#define BCE_MISC_LCPLL_CTRL0_ICP_CTRL_480 (1L<<3)
+#define BCE_MISC_LCPLL_CTRL0_ICP_CTRL_600 (3L<<3)
+#define BCE_MISC_LCPLL_CTRL0_ICP_CTRL_720 (7L<<3)
+#define BCE_MISC_LCPLL_CTRL0_BIAS_CTRL (0x3L<<6)
+#define BCE_MISC_LCPLL_CTRL0_PLL_OBSERVE (0x7L<<8)
+#define BCE_MISC_LCPLL_CTRL0_VTH_CTRL (0x3L<<11)
+#define BCE_MISC_LCPLL_CTRL0_VTH_CTRL_0 (0L<<11)
+#define BCE_MISC_LCPLL_CTRL0_VTH_CTRL_1 (1L<<11)
+#define BCE_MISC_LCPLL_CTRL0_VTH_CTRL_2 (2L<<11)
+#define BCE_MISC_LCPLL_CTRL0_PLLSEQSTART (1L<<13)
+#define BCE_MISC_LCPLL_CTRL0_RESERVED (1L<<14)
+#define BCE_MISC_LCPLL_CTRL0_CAPRETRY_EN (1L<<15)
+#define BCE_MISC_LCPLL_CTRL0_FREQMONITOR_EN (1L<<16)
+#define BCE_MISC_LCPLL_CTRL0_FREQDETRESTART_EN (1L<<17)
+#define BCE_MISC_LCPLL_CTRL0_FREQDETRETRY_EN (1L<<18)
+#define BCE_MISC_LCPLL_CTRL0_PLLFORCEFDONE_EN (1L<<19)
+#define BCE_MISC_LCPLL_CTRL0_PLLFORCEFDONE (1L<<20)
+#define BCE_MISC_LCPLL_CTRL0_PLLFORCEFPASS (1L<<21)
+#define BCE_MISC_LCPLL_CTRL0_PLLFORCECAPDONE_EN (1L<<22)
+#define BCE_MISC_LCPLL_CTRL0_PLLFORCECAPDONE (1L<<23)
+#define BCE_MISC_LCPLL_CTRL0_PLLFORCECAPPASS_EN (1L<<24)
+#define BCE_MISC_LCPLL_CTRL0_PLLFORCECAPPASS (1L<<25)
+#define BCE_MISC_LCPLL_CTRL0_CAPRESTART (1L<<26)
+#define BCE_MISC_LCPLL_CTRL0_CAPSELECTM_EN (1L<<27)
+
+#define BCE_MISC_LCPLL_CTRL1 0x00000954
+#define BCE_MISC_LCPLL_CTRL1_CAPSELECTM (0x1fL<<0)
+#define BCE_MISC_LCPLL_CTRL1_CAPFORCESLOWDOWN_EN (1L<<5)
+#define BCE_MISC_LCPLL_CTRL1_CAPFORCESLOWDOWN (1L<<6)
+#define BCE_MISC_LCPLL_CTRL1_SLOWDN_XOR (1L<<7)
+
+#define BCE_MISC_LCPLL_STATUS 0x00000958
+#define BCE_MISC_LCPLL_STATUS_FREQDONE_SM (1L<<0)
+#define BCE_MISC_LCPLL_STATUS_FREQPASS_SM (1L<<1)
+#define BCE_MISC_LCPLL_STATUS_PLLSEQDONE (1L<<2)
+#define BCE_MISC_LCPLL_STATUS_PLLSEQPASS (1L<<3)
+#define BCE_MISC_LCPLL_STATUS_PLLSTATE (0x7L<<4)
+#define BCE_MISC_LCPLL_STATUS_CAPSTATE (0x7L<<7)
+#define BCE_MISC_LCPLL_STATUS_CAPSELECT (0x1fL<<10)
+#define BCE_MISC_LCPLL_STATUS_SLOWDN_INDICATOR (1L<<15)
+#define BCE_MISC_LCPLL_STATUS_SLOWDN_INDICATOR_0 (0L<<15)
+#define BCE_MISC_LCPLL_STATUS_SLOWDN_INDICATOR_1 (1L<<15)
+
+#define BCE_MISC_OSCFUNDS_CTRL 0x0000095c
+#define BCE_MISC_OSCFUNDS_CTRL_FREQ_MON (1L<<5)
+#define BCE_MISC_OSCFUNDS_CTRL_FREQ_MON_OFF (0L<<5)
+#define BCE_MISC_OSCFUNDS_CTRL_FREQ_MON_ON (1L<<5)
+#define BCE_MISC_OSCFUNDS_CTRL_XTAL_ADJCM (0x3L<<6)
+#define BCE_MISC_OSCFUNDS_CTRL_XTAL_ADJCM_0 (0L<<6)
+#define BCE_MISC_OSCFUNDS_CTRL_XTAL_ADJCM_1 (1L<<6)
+#define BCE_MISC_OSCFUNDS_CTRL_XTAL_ADJCM_2 (2L<<6)
+#define BCE_MISC_OSCFUNDS_CTRL_XTAL_ADJCM_3 (3L<<6)
+#define BCE_MISC_OSCFUNDS_CTRL_ICBUF_ADJ (0x3L<<8)
+#define BCE_MISC_OSCFUNDS_CTRL_ICBUF_ADJ_0 (0L<<8)
+#define BCE_MISC_OSCFUNDS_CTRL_ICBUF_ADJ_1 (1L<<8)
+#define BCE_MISC_OSCFUNDS_CTRL_ICBUF_ADJ_2 (2L<<8)
+#define BCE_MISC_OSCFUNDS_CTRL_ICBUF_ADJ_3 (3L<<8)
+#define BCE_MISC_OSCFUNDS_CTRL_IAMP_ADJ (0x3L<<10)
+#define BCE_MISC_OSCFUNDS_CTRL_IAMP_ADJ_0 (0L<<10)
+#define BCE_MISC_OSCFUNDS_CTRL_IAMP_ADJ_1 (1L<<10)
+#define BCE_MISC_OSCFUNDS_CTRL_IAMP_ADJ_2 (2L<<10)
+#define BCE_MISC_OSCFUNDS_CTRL_IAMP_ADJ_3 (3L<<10)
+
+
+/*
+ * dma_reg definition
+ * offset: 0xc00
+ */
+#define BCE_DMA_COMMAND 0x00000c00
+#define BCE_DMA_COMMAND_ENABLE (1L<<0)
+
+#define BCE_DMA_STATUS 0x00000c04
+#define BCE_DMA_STATUS_PAR_ERROR_STATE (1L<<0)
+#define BCE_DMA_STATUS_READ_TRANSFERS_STAT (1L<<16)
+#define BCE_DMA_STATUS_READ_DELAY_PCI_CLKS_STAT (1L<<17)
+#define BCE_DMA_STATUS_BIG_READ_TRANSFERS_STAT (1L<<18)
+#define BCE_DMA_STATUS_BIG_READ_DELAY_PCI_CLKS_STAT (1L<<19)
+#define BCE_DMA_STATUS_BIG_READ_RETRY_AFTER_DATA_STAT (1L<<20)
+#define BCE_DMA_STATUS_WRITE_TRANSFERS_STAT (1L<<21)
+#define BCE_DMA_STATUS_WRITE_DELAY_PCI_CLKS_STAT (1L<<22)
+#define BCE_DMA_STATUS_BIG_WRITE_TRANSFERS_STAT (1L<<23)
+#define BCE_DMA_STATUS_BIG_WRITE_DELAY_PCI_CLKS_STAT (1L<<24)
+#define BCE_DMA_STATUS_BIG_WRITE_RETRY_AFTER_DATA_STAT (1L<<25)
+
+#define BCE_DMA_CONFIG 0x00000c08
+#define BCE_DMA_CONFIG_DATA_BYTE_SWAP (1L<<0)
+#define BCE_DMA_CONFIG_DATA_WORD_SWAP (1L<<1)
+#define BCE_DMA_CONFIG_CNTL_BYTE_SWAP (1L<<4)
+#define BCE_DMA_CONFIG_CNTL_WORD_SWAP (1L<<5)
+#define BCE_DMA_CONFIG_ONE_DMA (1L<<6)
+#define BCE_DMA_CONFIG_CNTL_TWO_DMA (1L<<7)
+#define BCE_DMA_CONFIG_CNTL_FPGA_MODE (1L<<8)
+#define BCE_DMA_CONFIG_CNTL_PING_PONG_DMA (1L<<10)
+#define BCE_DMA_CONFIG_CNTL_PCI_COMP_DLY (1L<<11)
+#define BCE_DMA_CONFIG_NO_RCHANS_IN_USE (0xfL<<12)
+#define BCE_DMA_CONFIG_NO_WCHANS_IN_USE (0xfL<<16)
+#define BCE_DMA_CONFIG_PCI_CLK_CMP_BITS (0x7L<<20)
+#define BCE_DMA_CONFIG_PCI_FAST_CLK_CMP (1L<<23)
+#define BCE_DMA_CONFIG_BIG_SIZE (0xfL<<24)
+#define BCE_DMA_CONFIG_BIG_SIZE_NONE (0x0L<<24)
+#define BCE_DMA_CONFIG_BIG_SIZE_64 (0x1L<<24)
+#define BCE_DMA_CONFIG_BIG_SIZE_128 (0x2L<<24)
+#define BCE_DMA_CONFIG_BIG_SIZE_256 (0x4L<<24)
+#define BCE_DMA_CONFIG_BIG_SIZE_512 (0x8L<<24)
+
+#define BCE_DMA_BLACKOUT 0x00000c0c
+#define BCE_DMA_BLACKOUT_RD_RETRY_BLACKOUT (0xffL<<0)
+#define BCE_DMA_BLACKOUT_2ND_RD_RETRY_BLACKOUT (0xffL<<8)
+#define BCE_DMA_BLACKOUT_WR_RETRY_BLACKOUT (0xffL<<16)
+
+#define BCE_DMA_RCHAN_STAT 0x00000c30
+#define BCE_DMA_RCHAN_STAT_COMP_CODE_0 (0x7L<<0)
+#define BCE_DMA_RCHAN_STAT_PAR_ERR_0 (1L<<3)
+#define BCE_DMA_RCHAN_STAT_COMP_CODE_1 (0x7L<<4)
+#define BCE_DMA_RCHAN_STAT_PAR_ERR_1 (1L<<7)
+#define BCE_DMA_RCHAN_STAT_COMP_CODE_2 (0x7L<<8)
+#define BCE_DMA_RCHAN_STAT_PAR_ERR_2 (1L<<11)
+#define BCE_DMA_RCHAN_STAT_COMP_CODE_3 (0x7L<<12)
+#define BCE_DMA_RCHAN_STAT_PAR_ERR_3 (1L<<15)
+#define BCE_DMA_RCHAN_STAT_COMP_CODE_4 (0x7L<<16)
+#define BCE_DMA_RCHAN_STAT_PAR_ERR_4 (1L<<19)
+#define BCE_DMA_RCHAN_STAT_COMP_CODE_5 (0x7L<<20)
+#define BCE_DMA_RCHAN_STAT_PAR_ERR_5 (1L<<23)
+#define BCE_DMA_RCHAN_STAT_COMP_CODE_6 (0x7L<<24)
+#define BCE_DMA_RCHAN_STAT_PAR_ERR_6 (1L<<27)
+#define BCE_DMA_RCHAN_STAT_COMP_CODE_7 (0x7L<<28)
+#define BCE_DMA_RCHAN_STAT_PAR_ERR_7 (1L<<31)
+
+#define BCE_DMA_WCHAN_STAT 0x00000c34
+#define BCE_DMA_WCHAN_STAT_COMP_CODE_0 (0x7L<<0)
+#define BCE_DMA_WCHAN_STAT_PAR_ERR_0 (1L<<3)
+#define BCE_DMA_WCHAN_STAT_COMP_CODE_1 (0x7L<<4)
+#define BCE_DMA_WCHAN_STAT_PAR_ERR_1 (1L<<7)
+#define BCE_DMA_WCHAN_STAT_COMP_CODE_2 (0x7L<<8)
+#define BCE_DMA_WCHAN_STAT_PAR_ERR_2 (1L<<11)
+#define BCE_DMA_WCHAN_STAT_COMP_CODE_3 (0x7L<<12)
+#define BCE_DMA_WCHAN_STAT_PAR_ERR_3 (1L<<15)
+#define BCE_DMA_WCHAN_STAT_COMP_CODE_4 (0x7L<<16)
+#define BCE_DMA_WCHAN_STAT_PAR_ERR_4 (1L<<19)
+#define BCE_DMA_WCHAN_STAT_COMP_CODE_5 (0x7L<<20)
+#define BCE_DMA_WCHAN_STAT_PAR_ERR_5 (1L<<23)
+#define BCE_DMA_WCHAN_STAT_COMP_CODE_6 (0x7L<<24)
+#define BCE_DMA_WCHAN_STAT_PAR_ERR_6 (1L<<27)
+#define BCE_DMA_WCHAN_STAT_COMP_CODE_7 (0x7L<<28)
+#define BCE_DMA_WCHAN_STAT_PAR_ERR_7 (1L<<31)
+
+#define BCE_DMA_RCHAN_ASSIGNMENT 0x00000c38
+#define BCE_DMA_RCHAN_ASSIGNMENT_0 (0xfL<<0)
+#define BCE_DMA_RCHAN_ASSIGNMENT_1 (0xfL<<4)
+#define BCE_DMA_RCHAN_ASSIGNMENT_2 (0xfL<<8)
+#define BCE_DMA_RCHAN_ASSIGNMENT_3 (0xfL<<12)
+#define BCE_DMA_RCHAN_ASSIGNMENT_4 (0xfL<<16)
+#define BCE_DMA_RCHAN_ASSIGNMENT_5 (0xfL<<20)
+#define BCE_DMA_RCHAN_ASSIGNMENT_6 (0xfL<<24)
+#define BCE_DMA_RCHAN_ASSIGNMENT_7 (0xfL<<28)
+
+#define BCE_DMA_WCHAN_ASSIGNMENT 0x00000c3c
+#define BCE_DMA_WCHAN_ASSIGNMENT_0 (0xfL<<0)
+#define BCE_DMA_WCHAN_ASSIGNMENT_1 (0xfL<<4)
+#define BCE_DMA_WCHAN_ASSIGNMENT_2 (0xfL<<8)
+#define BCE_DMA_WCHAN_ASSIGNMENT_3 (0xfL<<12)
+#define BCE_DMA_WCHAN_ASSIGNMENT_4 (0xfL<<16)
+#define BCE_DMA_WCHAN_ASSIGNMENT_5 (0xfL<<20)
+#define BCE_DMA_WCHAN_ASSIGNMENT_6 (0xfL<<24)
+#define BCE_DMA_WCHAN_ASSIGNMENT_7 (0xfL<<28)
+
+#define BCE_DMA_RCHAN_STAT_00 0x00000c40
+#define BCE_DMA_RCHAN_STAT_00_RCHAN_STA_HOST_ADDR_LOW (0xffffffffL<<0)
+
+#define BCE_DMA_RCHAN_STAT_01 0x00000c44
+#define BCE_DMA_RCHAN_STAT_01_RCHAN_STA_HOST_ADDR_HIGH (0xffffffffL<<0)
+
+#define BCE_DMA_RCHAN_STAT_02 0x00000c48
+#define BCE_DMA_RCHAN_STAT_02_LENGTH (0xffffL<<0)
+#define BCE_DMA_RCHAN_STAT_02_WORD_SWAP (1L<<16)
+#define BCE_DMA_RCHAN_STAT_02_BYTE_SWAP (1L<<17)
+#define BCE_DMA_RCHAN_STAT_02_PRIORITY_LVL (1L<<18)
+
+#define BCE_DMA_RCHAN_STAT_10 0x00000c4c
+#define BCE_DMA_RCHAN_STAT_11 0x00000c50
+#define BCE_DMA_RCHAN_STAT_12 0x00000c54
+#define BCE_DMA_RCHAN_STAT_20 0x00000c58
+#define BCE_DMA_RCHAN_STAT_21 0x00000c5c
+#define BCE_DMA_RCHAN_STAT_22 0x00000c60
+#define BCE_DMA_RCHAN_STAT_30 0x00000c64
+#define BCE_DMA_RCHAN_STAT_31 0x00000c68
+#define BCE_DMA_RCHAN_STAT_32 0x00000c6c
+#define BCE_DMA_RCHAN_STAT_40 0x00000c70
+#define BCE_DMA_RCHAN_STAT_41 0x00000c74
+#define BCE_DMA_RCHAN_STAT_42 0x00000c78
+#define BCE_DMA_RCHAN_STAT_50 0x00000c7c
+#define BCE_DMA_RCHAN_STAT_51 0x00000c80
+#define BCE_DMA_RCHAN_STAT_52 0x00000c84
+#define BCE_DMA_RCHAN_STAT_60 0x00000c88
+#define BCE_DMA_RCHAN_STAT_61 0x00000c8c
+#define BCE_DMA_RCHAN_STAT_62 0x00000c90
+#define BCE_DMA_RCHAN_STAT_70 0x00000c94
+#define BCE_DMA_RCHAN_STAT_71 0x00000c98
+#define BCE_DMA_RCHAN_STAT_72 0x00000c9c
+#define BCE_DMA_WCHAN_STAT_00 0x00000ca0
+#define BCE_DMA_WCHAN_STAT_00_WCHAN_STA_HOST_ADDR_LOW (0xffffffffL<<0)
+
+#define BCE_DMA_WCHAN_STAT_01 0x00000ca4
+#define BCE_DMA_WCHAN_STAT_01_WCHAN_STA_HOST_ADDR_HIGH (0xffffffffL<<0)
+
+#define BCE_DMA_WCHAN_STAT_02 0x00000ca8
+#define BCE_DMA_WCHAN_STAT_02_LENGTH (0xffffL<<0)
+#define BCE_DMA_WCHAN_STAT_02_WORD_SWAP (1L<<16)
+#define BCE_DMA_WCHAN_STAT_02_BYTE_SWAP (1L<<17)
+#define BCE_DMA_WCHAN_STAT_02_PRIORITY_LVL (1L<<18)
+
+#define BCE_DMA_WCHAN_STAT_10 0x00000cac
+#define BCE_DMA_WCHAN_STAT_11 0x00000cb0
+#define BCE_DMA_WCHAN_STAT_12 0x00000cb4
+#define BCE_DMA_WCHAN_STAT_20 0x00000cb8
+#define BCE_DMA_WCHAN_STAT_21 0x00000cbc
+#define BCE_DMA_WCHAN_STAT_22 0x00000cc0
+#define BCE_DMA_WCHAN_STAT_30 0x00000cc4
+#define BCE_DMA_WCHAN_STAT_31 0x00000cc8
+#define BCE_DMA_WCHAN_STAT_32 0x00000ccc
+#define BCE_DMA_WCHAN_STAT_40 0x00000cd0
+#define BCE_DMA_WCHAN_STAT_41 0x00000cd4
+#define BCE_DMA_WCHAN_STAT_42 0x00000cd8
+#define BCE_DMA_WCHAN_STAT_50 0x00000cdc
+#define BCE_DMA_WCHAN_STAT_51 0x00000ce0
+#define BCE_DMA_WCHAN_STAT_52 0x00000ce4
+#define BCE_DMA_WCHAN_STAT_60 0x00000ce8
+#define BCE_DMA_WCHAN_STAT_61 0x00000cec
+#define BCE_DMA_WCHAN_STAT_62 0x00000cf0
+#define BCE_DMA_WCHAN_STAT_70 0x00000cf4
+#define BCE_DMA_WCHAN_STAT_71 0x00000cf8
+#define BCE_DMA_WCHAN_STAT_72 0x00000cfc
+#define BCE_DMA_ARB_STAT_00 0x00000d00
+#define BCE_DMA_ARB_STAT_00_MASTER (0xffffL<<0)
+#define BCE_DMA_ARB_STAT_00_MASTER_ENC (0xffL<<16)
+#define BCE_DMA_ARB_STAT_00_CUR_BINMSTR (0xffL<<24)
+
+#define BCE_DMA_ARB_STAT_01 0x00000d04
+#define BCE_DMA_ARB_STAT_01_LPR_RPTR (0xfL<<0)
+#define BCE_DMA_ARB_STAT_01_LPR_WPTR (0xfL<<4)
+#define BCE_DMA_ARB_STAT_01_LPB_RPTR (0xfL<<8)
+#define BCE_DMA_ARB_STAT_01_LPB_WPTR (0xfL<<12)
+#define BCE_DMA_ARB_STAT_01_HPR_RPTR (0xfL<<16)
+#define BCE_DMA_ARB_STAT_01_HPR_WPTR (0xfL<<20)
+#define BCE_DMA_ARB_STAT_01_HPB_RPTR (0xfL<<24)
+#define BCE_DMA_ARB_STAT_01_HPB_WPTR (0xfL<<28)
+
+#define BCE_DMA_FUSE_CTRL0_CMD 0x00000f00
+#define BCE_DMA_FUSE_CTRL0_CMD_PWRUP_DONE (1L<<0)
+#define BCE_DMA_FUSE_CTRL0_CMD_SHIFT_DONE (1L<<1)
+#define BCE_DMA_FUSE_CTRL0_CMD_SHIFT (1L<<2)
+#define BCE_DMA_FUSE_CTRL0_CMD_LOAD (1L<<3)
+#define BCE_DMA_FUSE_CTRL0_CMD_SEL (0xfL<<8)
+
+#define BCE_DMA_FUSE_CTRL0_DATA 0x00000f04
+#define BCE_DMA_FUSE_CTRL1_CMD 0x00000f08
+#define BCE_DMA_FUSE_CTRL1_CMD_PWRUP_DONE (1L<<0)
+#define BCE_DMA_FUSE_CTRL1_CMD_SHIFT_DONE (1L<<1)
+#define BCE_DMA_FUSE_CTRL1_CMD_SHIFT (1L<<2)
+#define BCE_DMA_FUSE_CTRL1_CMD_LOAD (1L<<3)
+#define BCE_DMA_FUSE_CTRL1_CMD_SEL (0xfL<<8)
+
+#define BCE_DMA_FUSE_CTRL1_DATA 0x00000f0c
+#define BCE_DMA_FUSE_CTRL2_CMD 0x00000f10
+#define BCE_DMA_FUSE_CTRL2_CMD_PWRUP_DONE (1L<<0)
+#define BCE_DMA_FUSE_CTRL2_CMD_SHIFT_DONE (1L<<1)
+#define BCE_DMA_FUSE_CTRL2_CMD_SHIFT (1L<<2)
+#define BCE_DMA_FUSE_CTRL2_CMD_LOAD (1L<<3)
+#define BCE_DMA_FUSE_CTRL2_CMD_SEL (0xfL<<8)
+
+#define BCE_DMA_FUSE_CTRL2_DATA 0x00000f14
+
+
+/*
+ * context_reg definition
+ * offset: 0x1000
+ */
+#define BCE_CTX_COMMAND 0x00001000
+#define BCE_CTX_COMMAND_ENABLED (1L<<0)
+#define BCE_CTX_COMMAND_DISABLE_USAGE_CNT (1L<<1)
+#define BCE_CTX_COMMAND_DISABLE_PLRU (1L<<2)
+#define BCE_CTX_COMMAND_DISABLE_COMBINE_READ (1L<<3)
+#define BCE_CTX_COMMAND_FLUSH_AHEAD (0x1fL<<8)
+#define BCE_CTX_COMMAND_MEM_INIT (1L<<13)
+#define BCE_CTX_COMMAND_PAGE_SIZE (0xfL<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_256 (0L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_512 (1L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_1K (2L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_2K (3L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_4K (4L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_8K (5L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_16K (6L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_32K (7L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_64K (8L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_128K (9L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_256K (10L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_512K (11L<<16)
+#define BCE_CTX_COMMAND_PAGE_SIZE_1M (12L<<16)
+
+#define BCE_CTX_STATUS 0x00001004
+#define BCE_CTX_STATUS_LOCK_WAIT (1L<<0)
+#define BCE_CTX_STATUS_READ_STAT (1L<<16)
+#define BCE_CTX_STATUS_WRITE_STAT (1L<<17)
+#define BCE_CTX_STATUS_ACC_STALL_STAT (1L<<18)
+#define BCE_CTX_STATUS_LOCK_STALL_STAT (1L<<19)
+#define BCE_CTX_STATUS_EXT_READ_STAT (1L<<20)
+#define BCE_CTX_STATUS_EXT_WRITE_STAT (1L<<21)
+#define BCE_CTX_STATUS_MISS_STAT (1L<<22)
+#define BCE_CTX_STATUS_HIT_STAT (1L<<23)
+#define BCE_CTX_STATUS_DEAD_LOCK (1L<<24)
+#define BCE_CTX_STATUS_USAGE_CNT_ERR (1L<<25)
+#define BCE_CTX_STATUS_INVALID_PAGE (1L<<26)
+
+#define BCE_CTX_VIRT_ADDR 0x00001008
+#define BCE_CTX_VIRT_ADDR_VIRT_ADDR (0x7fffL<<6)
+
+#define BCE_CTX_PAGE_TBL 0x0000100c
+#define BCE_CTX_PAGE_TBL_PAGE_TBL (0x3fffL<<6)
+
+#define BCE_CTX_DATA_ADR 0x00001010
+#define BCE_CTX_DATA_ADR_DATA_ADR (0x7ffffL<<2)
+
+#define BCE_CTX_DATA 0x00001014
+#define BCE_CTX_LOCK 0x00001018
+#define BCE_CTX_LOCK_TYPE (0x7L<<0)
+#define BCE_CTX_LOCK_TYPE_LOCK_TYPE_VOID (0x0L<<0)
+#define BCE_CTX_LOCK_TYPE_LOCK_TYPE_PROTOCOL (0x1L<<0)
+#define BCE_CTX_LOCK_TYPE_LOCK_TYPE_TX (0x2L<<0)
+#define BCE_CTX_LOCK_TYPE_LOCK_TYPE_TIMER (0x4L<<0)
+#define BCE_CTX_LOCK_TYPE_LOCK_TYPE_COMPLETE (0x7L<<0)
+#define BCE_CTX_LOCK_TYPE_VOID_XI (0L<<0)
+#define BCE_CTX_LOCK_TYPE_PROTOCOL_XI (1L<<0)
+#define BCE_CTX_LOCK_TYPE_TX_XI (2L<<0)
+#define BCE_CTX_LOCK_TYPE_TIMER_XI (4L<<0)
+#define BCE_CTX_LOCK_TYPE_COMPLETE_XI (7L<<0)
+#define BCE_CTX_LOCK_CID_VALUE (0x3fffL<<7)
+#define BCE_CTX_LOCK_GRANTED (1L<<26)
+#define BCE_CTX_LOCK_MODE (0x7L<<27)
+#define BCE_CTX_LOCK_MODE_UNLOCK (0x0L<<27)
+#define BCE_CTX_LOCK_MODE_IMMEDIATE (0x1L<<27)
+#define BCE_CTX_LOCK_MODE_SURE (0x2L<<27)
+#define BCE_CTX_LOCK_STATUS (1L<<30)
+#define BCE_CTX_LOCK_REQ (1L<<31)
+
+#define BCE_CTX_CTX_CTRL 0x0000101c
+#define BCE_CTX_CTX_CTRL_CTX_ADDR (0x7ffffL<<2)
+#define BCE_CTX_CTX_CTRL_MOD_USAGE_CNT (0x3L<<21)
+#define BCE_CTX_CTX_CTRL_NO_RAM_ACC (1L<<23)
+#define BCE_CTX_CTX_CTRL_PREFETCH_SIZE (0x3L<<24)
+#define BCE_CTX_CTX_CTRL_ATTR (1L<<26)
+#define BCE_CTX_CTX_CTRL_WRITE_REQ (1L<<30)
+#define BCE_CTX_CTX_CTRL_READ_REQ (1L<<31)
+
+#define BCE_CTX_CTX_DATA 0x00001020
+#define BCE_CTX_ACCESS_STATUS 0x00001040
+#define BCE_CTX_ACCESS_STATUS_MASTERENCODED (0xfL<<0)
+#define BCE_CTX_ACCESS_STATUS_ACCESSMEMORYSM (0x3L<<10)
+#define BCE_CTX_ACCESS_STATUS_PAGETABLEINITSM (0x3L<<12)
+#define BCE_CTX_ACCESS_STATUS_ACCESSMEMORYINITSM (0x3L<<14)
+#define BCE_CTX_ACCESS_STATUS_QUALIFIED_REQUEST (0x7ffL<<17)
+#define BCE_CTX_ACCESS_STATUS_CAMMASTERENCODED_XI (0x1fL<<0)
+#define BCE_CTX_ACCESS_STATUS_CACHEMASTERENCODED_XI (0x1fL<<5)
+#define BCE_CTX_ACCESS_STATUS_REQUEST_XI (0x3fffffL<<10)
+
+#define BCE_CTX_DBG_LOCK_STATUS 0x00001044
+#define BCE_CTX_DBG_LOCK_STATUS_SM (0x3ffL<<0)
+#define BCE_CTX_DBG_LOCK_STATUS_MATCH (0x3ffL<<22)
+
+#define BCE_CTX_CACHE_CTRL_STATUS 0x00001048
+#define BCE_CTX_CACHE_CTRL_STATUS_RFIFO_OVERFLOW (1L<<0)
+#define BCE_CTX_CACHE_CTRL_STATUS_INVALID_READ_COMP (1L<<1)
+#define BCE_CTX_CACHE_CTRL_STATUS_FLUSH_START (1L<<6)
+#define BCE_CTX_CACHE_CTRL_STATUS_FREE_ENTRY_CNT (0x3fL<<7)
+#define BCE_CTX_CACHE_CTRL_STATUS_CACHE_ENTRY_NEEDED (0x3fL<<13)
+#define BCE_CTX_CACHE_CTRL_STATUS_RD_CHAN0_ACTIVE (1L<<19)
+#define BCE_CTX_CACHE_CTRL_STATUS_RD_CHAN1_ACTIVE (1L<<20)
+#define BCE_CTX_CACHE_CTRL_STATUS_RD_CHAN2_ACTIVE (1L<<21)
+#define BCE_CTX_CACHE_CTRL_STATUS_RD_CHAN3_ACTIVE (1L<<22)
+#define BCE_CTX_CACHE_CTRL_STATUS_RD_CHAN4_ACTIVE (1L<<23)
+#define BCE_CTX_CACHE_CTRL_STATUS_RD_CHAN5_ACTIVE (1L<<24)
+#define BCE_CTX_CACHE_CTRL_STATUS_RD_CHAN6_ACTIVE (1L<<25)
+#define BCE_CTX_CACHE_CTRL_STATUS_RD_CHAN7_ACTIVE (1L<<26)
+#define BCE_CTX_CACHE_CTRL_STATUS_RD_CHAN8_ACTIVE (1L<<27)
+#define BCE_CTX_CACHE_CTRL_STATUS_RD_CHAN9_ACTIVE (1L<<28)
+#define BCE_CTX_CACHE_CTRL_STATUS_RD_CHAN10_ACTIVE (1L<<29)
+
+#define BCE_CTX_CACHE_CTRL_SM_STATUS 0x0000104c
+#define BCE_CTX_CACHE_CTRL_SM_STATUS_CS_DWC (0x7L<<0)
+#define BCE_CTX_CACHE_CTRL_SM_STATUS_CS_WFIFOC (0x7L<<3)
+#define BCE_CTX_CACHE_CTRL_SM_STATUS_CS_RTAGC (0x7L<<6)
+#define BCE_CTX_CACHE_CTRL_SM_STATUS_CS_RFIFOC (0x7L<<9)
+#define BCE_CTX_CACHE_CTRL_SM_STATUS_INVALID_BLK_ADDR (0x7fffL<<16)
+
+#define BCE_CTX_CACHE_STATUS 0x00001050
+#define BCE_CTX_CACHE_STATUS_HELD_ENTRIES (0x3ffL<<0)
+#define BCE_CTX_CACHE_STATUS_MAX_HELD_ENTRIES (0x3ffL<<16)
+
+#define BCE_CTX_DMA_STATUS 0x00001054
+#define BCE_CTX_DMA_STATUS_RD_CHAN0_STATUS (0x3L<<0)
+#define BCE_CTX_DMA_STATUS_RD_CHAN1_STATUS (0x3L<<2)
+#define BCE_CTX_DMA_STATUS_RD_CHAN2_STATUS (0x3L<<4)
+#define BCE_CTX_DMA_STATUS_RD_CHAN3_STATUS (0x3L<<6)
+#define BCE_CTX_DMA_STATUS_RD_CHAN4_STATUS (0x3L<<8)
+#define BCE_CTX_DMA_STATUS_RD_CHAN5_STATUS (0x3L<<10)
+#define BCE_CTX_DMA_STATUS_RD_CHAN6_STATUS (0x3L<<12)
+#define BCE_CTX_DMA_STATUS_RD_CHAN7_STATUS (0x3L<<14)
+#define BCE_CTX_DMA_STATUS_RD_CHAN8_STATUS (0x3L<<16)
+#define BCE_CTX_DMA_STATUS_RD_CHAN9_STATUS (0x3L<<18)
+#define BCE_CTX_DMA_STATUS_RD_CHAN10_STATUS (0x3L<<20)
+
+#define BCE_CTX_REP_STATUS 0x00001058
+#define BCE_CTX_REP_STATUS_ERROR_ENTRY (0x3ffL<<0)
+#define BCE_CTX_REP_STATUS_ERROR_CLIENT_ID (0x1fL<<10)
+#define BCE_CTX_REP_STATUS_USAGE_CNT_MAX_ERR (1L<<16)
+#define BCE_CTX_REP_STATUS_USAGE_CNT_MIN_ERR (1L<<17)
+#define BCE_CTX_REP_STATUS_USAGE_CNT_MISS_ERR (1L<<18)
+
+#define BCE_CTX_CKSUM_ERROR_STATUS 0x0000105c
+#define BCE_CTX_CKSUM_ERROR_STATUS_CALCULATED (0xffffL<<0)
+#define BCE_CTX_CKSUM_ERROR_STATUS_EXPECTED (0xffffL<<16)
+
+#define BCE_CTX_CHNL_LOCK_STATUS_0 0x00001080
+#define BCE_CTX_CHNL_LOCK_STATUS_0_CID (0x3fffL<<0)
+#define BCE_CTX_CHNL_LOCK_STATUS_0_TYPE (0x3L<<14)
+#define BCE_CTX_CHNL_LOCK_STATUS_0_MODE (1L<<16)
+#define BCE_CTX_CHNL_LOCK_STATUS_0_MODE_XI (1L<<14)
+#define BCE_CTX_CHNL_LOCK_STATUS_0_TYPE_XI (0x7L<<15)
+
+#define BCE_CTX_CHNL_LOCK_STATUS_1 0x00001084
+#define BCE_CTX_CHNL_LOCK_STATUS_2 0x00001088
+#define BCE_CTX_CHNL_LOCK_STATUS_3 0x0000108c
+#define BCE_CTX_CHNL_LOCK_STATUS_4 0x00001090
+#define BCE_CTX_CHNL_LOCK_STATUS_5 0x00001094
+#define BCE_CTX_CHNL_LOCK_STATUS_6 0x00001098
+#define BCE_CTX_CHNL_LOCK_STATUS_7 0x0000109c
+#define BCE_CTX_CHNL_LOCK_STATUS_8 0x000010a0
+#define BCE_CTX_CHNL_LOCK_STATUS_9 0x000010a4
+
+#define BCE_CTX_CACHE_DATA 0x000010c4
+#define BCE_CTX_HOST_PAGE_TBL_CTRL 0x000010c8
+#define BCE_CTX_HOST_PAGE_TBL_CTRL_PAGE_TBL_ADDR (0x1ffL<<0)
+#define BCE_CTX_HOST_PAGE_TBL_CTRL_WRITE_REQ (1L<<30)
+#define BCE_CTX_HOST_PAGE_TBL_CTRL_READ_REQ (1L<<31)
+
+#define BCE_CTX_HOST_PAGE_TBL_DATA0 0x000010cc
+#define BCE_CTX_HOST_PAGE_TBL_DATA0_VALID (1L<<0)
+#define BCE_CTX_HOST_PAGE_TBL_DATA0_VALUE (0xffffffL<<8)
+
+#define BCE_CTX_HOST_PAGE_TBL_DATA1 0x000010d0
+#define BCE_CTX_CAM_CTRL 0x000010d4
+#define BCE_CTX_CAM_CTRL_CAM_ADDR (0x3ffL<<0)
+#define BCE_CTX_CAM_CTRL_RESET (1L<<27)
+#define BCE_CTX_CAM_CTRL_INVALIDATE (1L<<28)
+#define BCE_CTX_CAM_CTRL_SEARCH (1L<<29)
+#define BCE_CTX_CAM_CTRL_WRITE_REQ (1L<<30)
+#define BCE_CTX_CAM_CTRL_READ_REQ (1L<<31)
+
+
+/*
+ * emac_reg definition
+ * offset: 0x1400
+ */
+#define BCE_EMAC_MODE 0x00001400
+#define BCE_EMAC_MODE_RESET (1L<<0)
+#define BCE_EMAC_MODE_HALF_DUPLEX (1L<<1)
+#define BCE_EMAC_MODE_PORT (0x3L<<2)
+#define BCE_EMAC_MODE_PORT_NONE (0L<<2)
+#define BCE_EMAC_MODE_PORT_MII (1L<<2)
+#define BCE_EMAC_MODE_PORT_GMII (2L<<2)
+#define BCE_EMAC_MODE_PORT_MII_10 (3L<<2)
+#define BCE_EMAC_MODE_MAC_LOOP (1L<<4)
+#define BCE_EMAC_MODE_25G (1L<<5)
+#define BCE_EMAC_MODE_TAGGED_MAC_CTL (1L<<7)
+#define BCE_EMAC_MODE_TX_BURST (1L<<8)
+#define BCE_EMAC_MODE_MAX_DEFER_DROP_ENA (1L<<9)
+#define BCE_EMAC_MODE_EXT_LINK_POL (1L<<10)
+#define BCE_EMAC_MODE_FORCE_LINK (1L<<11)
+#define BCE_EMAC_MODE_MPKT (1L<<18)
+#define BCE_EMAC_MODE_MPKT_RCVD (1L<<19)
+#define BCE_EMAC_MODE_ACPI_RCVD (1L<<20)
+
+#define BCE_EMAC_STATUS 0x00001404
+#define BCE_EMAC_STATUS_LINK (1L<<11)
+#define BCE_EMAC_STATUS_LINK_CHANGE (1L<<12)
+#define BCE_EMAC_STATUS_MI_COMPLETE (1L<<22)
+#define BCE_EMAC_STATUS_MI_INT (1L<<23)
+#define BCE_EMAC_STATUS_AP_ERROR (1L<<24)
+#define BCE_EMAC_STATUS_PARITY_ERROR_STATE (1L<<31)
+
+#define BCE_EMAC_ATTENTION_ENA 0x00001408
+#define BCE_EMAC_ATTENTION_ENA_LINK (1L<<11)
+#define BCE_EMAC_ATTENTION_ENA_MI_COMPLETE (1L<<22)
+#define BCE_EMAC_ATTENTION_ENA_MI_INT (1L<<23)
+#define BCE_EMAC_ATTENTION_ENA_AP_ERROR (1L<<24)
+
+#define BCE_EMAC_LED 0x0000140c
+#define BCE_EMAC_LED_OVERRIDE (1L<<0)
+#define BCE_EMAC_LED_1000MB_OVERRIDE (1L<<1)
+#define BCE_EMAC_LED_100MB_OVERRIDE (1L<<2)
+#define BCE_EMAC_LED_10MB_OVERRIDE (1L<<3)
+#define BCE_EMAC_LED_TRAFFIC_OVERRIDE (1L<<4)
+#define BCE_EMAC_LED_BLNK_TRAFFIC (1L<<5)
+#define BCE_EMAC_LED_TRAFFIC (1L<<6)
+#define BCE_EMAC_LED_1000MB (1L<<7)
+#define BCE_EMAC_LED_100MB (1L<<8)
+#define BCE_EMAC_LED_10MB (1L<<9)
+#define BCE_EMAC_LED_TRAFFIC_STAT (1L<<10)
+#define BCE_EMAC_LED_BLNK_RATE (0xfffL<<19)
+#define BCE_EMAC_LED_BLNK_RATE_ENA (1L<<31)
+
+#define BCE_EMAC_MAC_MATCH0 0x00001410
+#define BCE_EMAC_MAC_MATCH1 0x00001414
+#define BCE_EMAC_MAC_MATCH2 0x00001418
+#define BCE_EMAC_MAC_MATCH3 0x0000141c
+#define BCE_EMAC_MAC_MATCH4 0x00001420
+#define BCE_EMAC_MAC_MATCH5 0x00001424
+#define BCE_EMAC_MAC_MATCH6 0x00001428
+#define BCE_EMAC_MAC_MATCH7 0x0000142c
+#define BCE_EMAC_MAC_MATCH8 0x00001430
+#define BCE_EMAC_MAC_MATCH9 0x00001434
+#define BCE_EMAC_MAC_MATCH10 0x00001438
+#define BCE_EMAC_MAC_MATCH11 0x0000143c
+#define BCE_EMAC_MAC_MATCH12 0x00001440
+#define BCE_EMAC_MAC_MATCH13 0x00001444
+#define BCE_EMAC_MAC_MATCH14 0x00001448
+#define BCE_EMAC_MAC_MATCH15 0x0000144c
+#define BCE_EMAC_MAC_MATCH16 0x00001450
+#define BCE_EMAC_MAC_MATCH17 0x00001454
+#define BCE_EMAC_MAC_MATCH18 0x00001458
+#define BCE_EMAC_MAC_MATCH19 0x0000145c
+#define BCE_EMAC_MAC_MATCH20 0x00001460
+#define BCE_EMAC_MAC_MATCH21 0x00001464
+#define BCE_EMAC_MAC_MATCH22 0x00001468
+#define BCE_EMAC_MAC_MATCH23 0x0000146c
+#define BCE_EMAC_MAC_MATCH24 0x00001470
+#define BCE_EMAC_MAC_MATCH25 0x00001474
+#define BCE_EMAC_MAC_MATCH26 0x00001478
+#define BCE_EMAC_MAC_MATCH27 0x0000147c
+#define BCE_EMAC_MAC_MATCH28 0x00001480
+#define BCE_EMAC_MAC_MATCH29 0x00001484
+#define BCE_EMAC_MAC_MATCH30 0x00001488
+#define BCE_EMAC_MAC_MATCH31 0x0000148c
+#define BCE_EMAC_BACKOFF_SEED 0x00001498
+#define BCE_EMAC_BACKOFF_SEED_EMAC_BACKOFF_SEED (0x3ffL<<0)
+
+#define BCE_EMAC_RX_MTU_SIZE 0x0000149c
+#define BCE_EMAC_RX_MTU_SIZE_MTU_SIZE (0xffffL<<0)
+#define BCE_EMAC_RX_MTU_SIZE_JUMBO_ENA (1L<<31)
+
+#define BCE_EMAC_SERDES_CNTL 0x000014a4
+#define BCE_EMAC_SERDES_CNTL_RXR (0x7L<<0)
+#define BCE_EMAC_SERDES_CNTL_RXG (0x3L<<3)
+#define BCE_EMAC_SERDES_CNTL_RXCKSEL (1L<<6)
+#define BCE_EMAC_SERDES_CNTL_TXBIAS (0x7L<<7)
+#define BCE_EMAC_SERDES_CNTL_BGMAX (1L<<10)
+#define BCE_EMAC_SERDES_CNTL_BGMIN (1L<<11)
+#define BCE_EMAC_SERDES_CNTL_TXMODE (1L<<12)
+#define BCE_EMAC_SERDES_CNTL_TXEDGE (1L<<13)
+#define BCE_EMAC_SERDES_CNTL_SERDES_MODE (1L<<14)
+#define BCE_EMAC_SERDES_CNTL_PLLTEST (1L<<15)
+#define BCE_EMAC_SERDES_CNTL_CDET_EN (1L<<16)
+#define BCE_EMAC_SERDES_CNTL_TBI_LBK (1L<<17)
+#define BCE_EMAC_SERDES_CNTL_REMOTE_LBK (1L<<18)
+#define BCE_EMAC_SERDES_CNTL_REV_PHASE (1L<<19)
+#define BCE_EMAC_SERDES_CNTL_REGCTL12 (0x3L<<20)
+#define BCE_EMAC_SERDES_CNTL_REGCTL25 (0x3L<<22)
+
+#define BCE_EMAC_SERDES_STATUS 0x000014a8
+#define BCE_EMAC_SERDES_STATUS_RX_STAT (0xffL<<0)
+#define BCE_EMAC_SERDES_STATUS_COMMA_DET (1L<<8)
+
+#define BCE_EMAC_MDIO_COMM 0x000014ac
+#define BCE_EMAC_MDIO_COMM_DATA (0xffffL<<0)
+#define BCE_EMAC_MDIO_COMM_REG_ADDR (0x1fL<<16)
+#define BCE_EMAC_MDIO_COMM_PHY_ADDR (0x1fL<<21)
+#define BCE_EMAC_MDIO_COMM_COMMAND (0x3L<<26)
+#define BCE_EMAC_MDIO_COMM_COMMAND_UNDEFINED_0 (0L<<26)
+#define BCE_EMAC_MDIO_COMM_COMMAND_WRITE (1L<<26)
+#define BCE_EMAC_MDIO_COMM_COMMAND_READ (2L<<26)
+#define BCE_EMAC_MDIO_COMM_COMMAND_UNDEFINED_3 (3L<<26)
+#define BCE_EMAC_MDIO_COMM_FAIL (1L<<28)
+#define BCE_EMAC_MDIO_COMM_START_BUSY (1L<<29)
+#define BCE_EMAC_MDIO_COMM_DISEXT (1L<<30)
+
+#define BCE_EMAC_MDIO_STATUS 0x000014b0
+#define BCE_EMAC_MDIO_STATUS_LINK (1L<<0)
+#define BCE_EMAC_MDIO_STATUS_10MB (1L<<1)
+
+#define BCE_EMAC_MDIO_MODE 0x000014b4
+#define BCE_EMAC_MDIO_MODE_SHORT_PREAMBLE (1L<<1)
+#define BCE_EMAC_MDIO_MODE_AUTO_POLL (1L<<4)
+#define BCE_EMAC_MDIO_MODE_BIT_BANG (1L<<8)
+#define BCE_EMAC_MDIO_MODE_MDIO (1L<<9)
+#define BCE_EMAC_MDIO_MODE_MDIO_OE (1L<<10)
+#define BCE_EMAC_MDIO_MODE_MDC (1L<<11)
+#define BCE_EMAC_MDIO_MODE_MDINT (1L<<12)
+#define BCE_EMAC_MDIO_MODE_CLOCK_CNT (0x1fL<<16)
+
+#define BCE_EMAC_MDIO_AUTO_STATUS 0x000014b8
+#define BCE_EMAC_MDIO_AUTO_STATUS_AUTO_ERR (1L<<0)
+
+#define BCE_EMAC_TX_MODE 0x000014bc
+#define BCE_EMAC_TX_MODE_RESET (1L<<0)
+#define BCE_EMAC_TX_MODE_EXT_PAUSE_EN (1L<<3)
+#define BCE_EMAC_TX_MODE_FLOW_EN (1L<<4)
+#define BCE_EMAC_TX_MODE_BIG_BACKOFF (1L<<5)
+#define BCE_EMAC_TX_MODE_LONG_PAUSE (1L<<6)
+#define BCE_EMAC_TX_MODE_LINK_AWARE (1L<<7)
+
+#define BCE_EMAC_TX_STATUS 0x000014c0
+#define BCE_EMAC_TX_STATUS_XOFFED (1L<<0)
+#define BCE_EMAC_TX_STATUS_XOFF_SENT (1L<<1)
+#define BCE_EMAC_TX_STATUS_XON_SENT (1L<<2)
+#define BCE_EMAC_TX_STATUS_LINK_UP (1L<<3)
+#define BCE_EMAC_TX_STATUS_UNDERRUN (1L<<4)
+
+#define BCE_EMAC_TX_LENGTHS 0x000014c4
+#define BCE_EMAC_TX_LENGTHS_SLOT (0xffL<<0)
+#define BCE_EMAC_TX_LENGTHS_IPG (0xfL<<8)
+#define BCE_EMAC_TX_LENGTHS_IPG_CRS (0x3L<<12)
+
+#define BCE_EMAC_RX_MODE 0x000014c8
+#define BCE_EMAC_RX_MODE_RESET (1L<<0)
+#define BCE_EMAC_RX_MODE_FLOW_EN (1L<<2)
+#define BCE_EMAC_RX_MODE_KEEP_MAC_CONTROL (1L<<3)
+#define BCE_EMAC_RX_MODE_KEEP_PAUSE (1L<<4)
+#define BCE_EMAC_RX_MODE_ACCEPT_OVERSIZE (1L<<5)
+#define BCE_EMAC_RX_MODE_ACCEPT_RUNTS (1L<<6)
+#define BCE_EMAC_RX_MODE_LLC_CHK (1L<<7)
+#define BCE_EMAC_RX_MODE_PROMISCUOUS (1L<<8)
+#define BCE_EMAC_RX_MODE_NO_CRC_CHK (1L<<9)
+#define BCE_EMAC_RX_MODE_KEEP_VLAN_TAG (1L<<10)
+#define BCE_EMAC_RX_MODE_FILT_BROADCAST (1L<<11)
+#define BCE_EMAC_RX_MODE_SORT_MODE (1L<<12)
+
+#define BCE_EMAC_RX_STATUS 0x000014cc
+#define BCE_EMAC_RX_STATUS_FFED (1L<<0)
+#define BCE_EMAC_RX_STATUS_FF_RECEIVED (1L<<1)
+#define BCE_EMAC_RX_STATUS_N_RECEIVED (1L<<2)
+
+#define BCE_EMAC_MULTICAST_HASH0 0x000014d0
+#define BCE_EMAC_MULTICAST_HASH1 0x000014d4
+#define BCE_EMAC_MULTICAST_HASH2 0x000014d8
+#define BCE_EMAC_MULTICAST_HASH3 0x000014dc
+#define BCE_EMAC_MULTICAST_HASH4 0x000014e0
+#define BCE_EMAC_MULTICAST_HASH5 0x000014e4
+#define BCE_EMAC_MULTICAST_HASH6 0x000014e8
+#define BCE_EMAC_MULTICAST_HASH7 0x000014ec
+#define BCE_EMAC_RX_STAT_IFHCINOCTETS 0x00001500
+#define BCE_EMAC_RX_STAT_IFHCINBADOCTETS 0x00001504
+#define BCE_EMAC_RX_STAT_ETHERSTATSFRAGMENTS 0x00001508
+#define BCE_EMAC_RX_STAT_IFHCINUCASTPKTS 0x0000150c
+#define BCE_EMAC_RX_STAT_IFHCINMULTICASTPKTS 0x00001510
+#define BCE_EMAC_RX_STAT_IFHCINBROADCASTPKTS 0x00001514
+#define BCE_EMAC_RX_STAT_DOT3STATSFCSERRORS 0x00001518
+#define BCE_EMAC_RX_STAT_DOT3STATSALIGNMENTERRORS 0x0000151c
+#define BCE_EMAC_RX_STAT_DOT3STATSCARRIERSENSEERRORS 0x00001520
+#define BCE_EMAC_RX_STAT_XONPAUSEFRAMESRECEIVED 0x00001524
+#define BCE_EMAC_RX_STAT_XOFFPAUSEFRAMESRECEIVED 0x00001528
+#define BCE_EMAC_RX_STAT_MACCONTROLFRAMESRECEIVED 0x0000152c
+#define BCE_EMAC_RX_STAT_XOFFSTATEENTERED 0x00001530
+#define BCE_EMAC_RX_STAT_DOT3STATSFRAMESTOOLONG 0x00001534
+#define BCE_EMAC_RX_STAT_ETHERSTATSJABBERS 0x00001538
+#define BCE_EMAC_RX_STAT_ETHERSTATSUNDERSIZEPKTS 0x0000153c
+#define BCE_EMAC_RX_STAT_ETHERSTATSPKTS64OCTETS 0x00001540
+#define BCE_EMAC_RX_STAT_ETHERSTATSPKTS65OCTETSTO127OCTETS 0x00001544
+#define BCE_EMAC_RX_STAT_ETHERSTATSPKTS128OCTETSTO255OCTETS 0x00001548
+#define BCE_EMAC_RX_STAT_ETHERSTATSPKTS256OCTETSTO511OCTETS 0x0000154c
+#define BCE_EMAC_RX_STAT_ETHERSTATSPKTS512OCTETSTO1023OCTETS 0x00001550
+#define BCE_EMAC_RX_STAT_ETHERSTATSPKTS1024OCTETSTO1522OCTETS 0x00001554
+#define BCE_EMAC_RX_STAT_ETHERSTATSPKTS1523OCTETSTO9022OCTETS 0x00001558
+#define BCE_EMAC_RXMAC_DEBUG0 0x0000155c
+#define BCE_EMAC_RXMAC_DEBUG1 0x00001560
+#define BCE_EMAC_RXMAC_DEBUG1_LENGTH_NE_BYTE_COUNT (1L<<0)
+#define BCE_EMAC_RXMAC_DEBUG1_LENGTH_OUT_RANGE (1L<<1)
+#define BCE_EMAC_RXMAC_DEBUG1_BAD_CRC (1L<<2)
+#define BCE_EMAC_RXMAC_DEBUG1_RX_ERROR (1L<<3)
+#define BCE_EMAC_RXMAC_DEBUG1_ALIGN_ERROR (1L<<4)
+#define BCE_EMAC_RXMAC_DEBUG1_LAST_DATA (1L<<5)
+#define BCE_EMAC_RXMAC_DEBUG1_ODD_BYTE_START (1L<<6)
+#define BCE_EMAC_RXMAC_DEBUG1_BYTE_COUNT (0xffffL<<7)
+#define BCE_EMAC_RXMAC_DEBUG1_SLOT_TIME (0xffL<<23)
+
+#define BCE_EMAC_RXMAC_DEBUG2 0x00001564
+#define BCE_EMAC_RXMAC_DEBUG2_SM_STATE (0x7L<<0)
+#define BCE_EMAC_RXMAC_DEBUG2_SM_STATE_IDLE (0x0L<<0)
+#define BCE_EMAC_RXMAC_DEBUG2_SM_STATE_SFD (0x1L<<0)
+#define BCE_EMAC_RXMAC_DEBUG2_SM_STATE_DATA (0x2L<<0)
+#define BCE_EMAC_RXMAC_DEBUG2_SM_STATE_SKEEP (0x3L<<0)
+#define BCE_EMAC_RXMAC_DEBUG2_SM_STATE_EXT (0x4L<<0)
+#define BCE_EMAC_RXMAC_DEBUG2_SM_STATE_DROP (0x5L<<0)
+#define BCE_EMAC_RXMAC_DEBUG2_SM_STATE_SDROP (0x6L<<0)
+#define BCE_EMAC_RXMAC_DEBUG2_SM_STATE_FC (0x7L<<0)
+#define BCE_EMAC_RXMAC_DEBUG2_IDI_STATE (0xfL<<3)
+#define BCE_EMAC_RXMAC_DEBUG2_IDI_STATE_IDLE (0x0L<<3)
+#define BCE_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA0 (0x1L<<3)
+#define BCE_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA1 (0x2L<<3)
+#define BCE_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA2 (0x3L<<3)
+#define BCE_EMAC_RXMAC_DEBUG2_IDI_STATE_DATA3 (0x4L<<3)
+#define BCE_EMAC_RXMAC_DEBUG2_IDI_STATE_ABORT (0x5L<<3)
+#define BCE_EMAC_RXMAC_DEBUG2_IDI_STATE_WAIT (0x6L<<3)
+#define BCE_EMAC_RXMAC_DEBUG2_IDI_STATE_STATUS (0x7L<<3)
+#define BCE_EMAC_RXMAC_DEBUG2_IDI_STATE_LAST (0x8L<<3)
+#define BCE_EMAC_RXMAC_DEBUG2_BYTE_IN (0xffL<<7)
+#define BCE_EMAC_RXMAC_DEBUG2_FALSEC (1L<<15)
+#define BCE_EMAC_RXMAC_DEBUG2_TAGGED (1L<<16)
+#define BCE_EMAC_RXMAC_DEBUG2_PAUSE_STATE (1L<<18)
+#define BCE_EMAC_RXMAC_DEBUG2_PAUSE_STATE_IDLE (0L<<18)
+#define BCE_EMAC_RXMAC_DEBUG2_PAUSE_STATE_PAUSED (1L<<18)
+#define BCE_EMAC_RXMAC_DEBUG2_SE_COUNTER (0xfL<<19)
+#define BCE_EMAC_RXMAC_DEBUG2_QUANTA (0x1fL<<23)
+
+#define BCE_EMAC_RXMAC_DEBUG3 0x00001568
+#define BCE_EMAC_RXMAC_DEBUG3_PAUSE_CTR (0xffffL<<0)
+#define BCE_EMAC_RXMAC_DEBUG3_TMP_PAUSE_CTR (0xffffL<<16)
+
+#define BCE_EMAC_RXMAC_DEBUG4 0x0000156c
+#define BCE_EMAC_RXMAC_DEBUG4_TYPE_FIELD (0xffffL<<0)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE (0x3fL<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_IDLE (0x0L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_UMAC2 (0x1L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_UMAC3 (0x2L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_UNI (0x3L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_MMAC2 (0x7L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_MMAC3 (0x5L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_PSA1 (0x6L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_PSA2 (0x7L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_PSA3 (0x8L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_MC2 (0x9L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_MC3 (0xaL<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_MWAIT1 (0xeL<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_MWAIT2 (0xfL<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_MCHECK (0x10L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_MC (0x11L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_BC2 (0x12L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_BC3 (0x13L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_BSA1 (0x14L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_BSA2 (0x15L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_BSA3 (0x16L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_BTYPE (0x17L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_BC (0x18L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_PTYPE (0x19L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_CMD (0x1aL<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_MAC (0x1bL<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_LATCH (0x1cL<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_XOFF (0x1dL<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_XON (0x1eL<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_PAUSED (0x1fL<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_NPAUSED (0x20L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_TTYPE (0x21L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_TVAL (0x22L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_USA1 (0x23L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_USA2 (0x24L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_USA3 (0x25L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_UTYPE (0x26L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_UTTYPE (0x27L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_UTVAL (0x28L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_MTYPE (0x29L<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_FILT_STATE_DROP (0x2aL<<16)
+#define BCE_EMAC_RXMAC_DEBUG4_DROP_PKT (1L<<22)
+#define BCE_EMAC_RXMAC_DEBUG4_SLOT_FILLED (1L<<23)
+#define BCE_EMAC_RXMAC_DEBUG4_FALSE_CARRIER (1L<<24)
+#define BCE_EMAC_RXMAC_DEBUG4_LAST_DATA (1L<<25)
+#define BCE_EMAC_RXMAC_DEBUG4_sfd_FOUND (1L<<26)
+#define BCE_EMAC_RXMAC_DEBUG4_ADVANCE (1L<<27)
+#define BCE_EMAC_RXMAC_DEBUG4_START (1L<<28)
+
+#define BCE_EMAC_RXMAC_DEBUG5 0x00001570
+#define BCE_EMAC_RXMAC_DEBUG5_PS_IDISM (0x7L<<0)
+#define BCE_EMAC_RXMAC_DEBUG5_PS_IDISM_IDLE (0L<<0)
+#define BCE_EMAC_RXMAC_DEBUG5_PS_IDISM_WAIT_EOF (1L<<0)
+#define BCE_EMAC_RXMAC_DEBUG5_PS_IDISM_WAIT_STAT (2L<<0)
+#define BCE_EMAC_RXMAC_DEBUG5_PS_IDISM_SET_EOF4FCRC (3L<<0)
+#define BCE_EMAC_RXMAC_DEBUG5_PS_IDISM_SET_EOF4RDE (4L<<0)
+#define BCE_EMAC_RXMAC_DEBUG5_PS_IDISM_SET_EOF4ALL (5L<<0)
+#define BCE_EMAC_RXMAC_DEBUG5_PS_IDISM_1WD_WAIT_STAT (6L<<0)
+#define BCE_EMAC_RXMAC_DEBUG5_CCODE_BUF1 (0x7L<<4)
+#define BCE_EMAC_RXMAC_DEBUG5_CCODE_BUF1_VDW (0x0L<<4)
+#define BCE_EMAC_RXMAC_DEBUG5_CCODE_BUF1_STAT (0x1L<<4)
+#define BCE_EMAC_RXMAC_DEBUG5_CCODE_BUF1_AEOF (0x2L<<4)
+#define BCE_EMAC_RXMAC_DEBUG5_CCODE_BUF1_NEOF (0x3L<<4)
+#define BCE_EMAC_RXMAC_DEBUG5_CCODE_BUF1_SOF (0x4L<<4)
+#define BCE_EMAC_RXMAC_DEBUG5_CCODE_BUF1_SAEOF (0x6L<<4)
+#define BCE_EMAC_RXMAC_DEBUG5_CCODE_BUF1_SNEOF (0x7L<<4)
+#define BCE_EMAC_RXMAC_DEBUG5_EOF_DETECTED (1L<<7)
+#define BCE_EMAC_RXMAC_DEBUG5_CCODE_BUF0 (0x7L<<8)
+#define BCE_EMAC_RXMAC_DEBUG5_RPM_IDI_FIFO_FULL (1L<<11)
+#define BCE_EMAC_RXMAC_DEBUG5_LOAD_CCODE (1L<<12)
+#define BCE_EMAC_RXMAC_DEBUG5_LOAD_DATA (1L<<13)
+#define BCE_EMAC_RXMAC_DEBUG5_LOAD_STAT (1L<<14)
+#define BCE_EMAC_RXMAC_DEBUG5_CLR_STAT (1L<<15)
+#define BCE_EMAC_RXMAC_DEBUG5_IDI_RPM_CCODE (0x3L<<16)
+#define BCE_EMAC_RXMAC_DEBUG5_IDI_RPM_ACCEPT (1L<<19)
+#define BCE_EMAC_RXMAC_DEBUG5_FMLEN (0xfffL<<20)
+
+#define BCE_EMAC_RX_STAT_AC0 0x00001580
+#define BCE_EMAC_RX_STAT_AC1 0x00001584
+#define BCE_EMAC_RX_STAT_AC2 0x00001588
+#define BCE_EMAC_RX_STAT_AC3 0x0000158c
+#define BCE_EMAC_RX_STAT_AC4 0x00001590
+#define BCE_EMAC_RX_STAT_AC5 0x00001594
+#define BCE_EMAC_RX_STAT_AC6 0x00001598
+#define BCE_EMAC_RX_STAT_AC7 0x0000159c
+#define BCE_EMAC_RX_STAT_AC8 0x000015a0
+#define BCE_EMAC_RX_STAT_AC9 0x000015a4
+#define BCE_EMAC_RX_STAT_AC10 0x000015a8
+#define BCE_EMAC_RX_STAT_AC11 0x000015ac
+#define BCE_EMAC_RX_STAT_AC12 0x000015b0
+#define BCE_EMAC_RX_STAT_AC13 0x000015b4
+#define BCE_EMAC_RX_STAT_AC14 0x000015b8
+#define BCE_EMAC_RX_STAT_AC15 0x000015bc
+#define BCE_EMAC_RX_STAT_AC16 0x000015c0
+#define BCE_EMAC_RX_STAT_AC17 0x000015c4
+#define BCE_EMAC_RX_STAT_AC18 0x000015c8
+#define BCE_EMAC_RX_STAT_AC19 0x000015cc
+#define BCE_EMAC_RX_STAT_AC20 0x000015d0
+#define BCE_EMAC_RX_STAT_AC21 0x000015d4
+#define BCE_EMAC_RX_STAT_AC22 0x000015d8
+#define BCE_EMAC_RXMAC_SUC_DBG_OVERRUNVEC 0x000015dc
+#define BCE_EMAC_TX_STAT_IFHCOUTOCTETS 0x00001600
+#define BCE_EMAC_TX_STAT_IFHCOUTBADOCTETS 0x00001604
+#define BCE_EMAC_TX_STAT_ETHERSTATSCOLLISIONS 0x00001608
+#define BCE_EMAC_TX_STAT_OUTXONSENT 0x0000160c
+#define BCE_EMAC_TX_STAT_OUTXOFFSENT 0x00001610
+#define BCE_EMAC_TX_STAT_FLOWCONTROLDONE 0x00001614
+#define BCE_EMAC_TX_STAT_DOT3STATSSINGLECOLLISIONFRAMES 0x00001618
+#define BCE_EMAC_TX_STAT_DOT3STATSMULTIPLECOLLISIONFRAMES 0x0000161c
+#define BCE_EMAC_TX_STAT_DOT3STATSDEFERREDTRANSMISSIONS 0x00001620
+#define BCE_EMAC_TX_STAT_DOT3STATSEXCESSIVECOLLISIONS 0x00001624
+#define BCE_EMAC_TX_STAT_DOT3STATSLATECOLLISIONS 0x00001628
+#define BCE_EMAC_TX_STAT_IFHCOUTUCASTPKTS 0x0000162c
+#define BCE_EMAC_TX_STAT_IFHCOUTMULTICASTPKTS 0x00001630
+#define BCE_EMAC_TX_STAT_IFHCOUTBROADCASTPKTS 0x00001634
+#define BCE_EMAC_TX_STAT_ETHERSTATSPKTS64OCTETS 0x00001638
+#define BCE_EMAC_TX_STAT_ETHERSTATSPKTS65OCTETSTO127OCTETS 0x0000163c
+#define BCE_EMAC_TX_STAT_ETHERSTATSPKTS128OCTETSTO255OCTETS 0x00001640
+#define BCE_EMAC_TX_STAT_ETHERSTATSPKTS256OCTETSTO511OCTETS 0x00001644
+#define BCE_EMAC_TX_STAT_ETHERSTATSPKTS512OCTETSTO1023OCTETS 0x00001648
+#define BCE_EMAC_TX_STAT_ETHERSTATSPKTS1024OCTETSTO1522OCTETS 0x0000164c
+#define BCE_EMAC_TX_STAT_ETHERSTATSPKTS1523OCTETSTO9022OCTETS 0x00001650
+#define BCE_EMAC_TX_STAT_DOT3STATSINTERNALMACTRANSMITERRORS 0x00001654
+#define BCE_EMAC_TXMAC_DEBUG0 0x00001658
+#define BCE_EMAC_TXMAC_DEBUG1 0x0000165c
+#define BCE_EMAC_TXMAC_DEBUG1_ODI_STATE (0xfL<<0)
+#define BCE_EMAC_TXMAC_DEBUG1_ODI_STATE_IDLE (0x0L<<0)
+#define BCE_EMAC_TXMAC_DEBUG1_ODI_STATE_START0 (0x1L<<0)
+#define BCE_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA0 (0x4L<<0)
+#define BCE_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA1 (0x5L<<0)
+#define BCE_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA2 (0x6L<<0)
+#define BCE_EMAC_TXMAC_DEBUG1_ODI_STATE_DATA3 (0x7L<<0)
+#define BCE_EMAC_TXMAC_DEBUG1_ODI_STATE_WAIT0 (0x8L<<0)
+#define BCE_EMAC_TXMAC_DEBUG1_ODI_STATE_WAIT1 (0x9L<<0)
+#define BCE_EMAC_TXMAC_DEBUG1_CRS_ENABLE (1L<<4)
+#define BCE_EMAC_TXMAC_DEBUG1_BAD_CRC (1L<<5)
+#define BCE_EMAC_TXMAC_DEBUG1_SE_COUNTER (0xfL<<6)
+#define BCE_EMAC_TXMAC_DEBUG1_SEND_PAUSE (1L<<10)
+#define BCE_EMAC_TXMAC_DEBUG1_LATE_COLLISION (1L<<11)
+#define BCE_EMAC_TXMAC_DEBUG1_MAX_DEFER (1L<<12)
+#define BCE_EMAC_TXMAC_DEBUG1_DEFERRED (1L<<13)
+#define BCE_EMAC_TXMAC_DEBUG1_ONE_BYTE (1L<<14)
+#define BCE_EMAC_TXMAC_DEBUG1_IPG_TIME (0xfL<<15)
+#define BCE_EMAC_TXMAC_DEBUG1_SLOT_TIME (0xffL<<19)
+
+#define BCE_EMAC_TXMAC_DEBUG2 0x00001660
+#define BCE_EMAC_TXMAC_DEBUG2_BACK_OFF (0x3ffL<<0)
+#define BCE_EMAC_TXMAC_DEBUG2_BYTE_COUNT (0xffffL<<10)
+#define BCE_EMAC_TXMAC_DEBUG2_COL_COUNT (0x1fL<<26)
+#define BCE_EMAC_TXMAC_DEBUG2_COL_BIT (1L<<31)
+
+#define BCE_EMAC_TXMAC_DEBUG3 0x00001664
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE (0xfL<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_IDLE (0x0L<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_PRE1 (0x1L<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_PRE2 (0x2L<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_SFD (0x3L<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_DATA (0x4L<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_CRC1 (0x5L<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_CRC2 (0x6L<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_EXT (0x7L<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_STATB (0x8L<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_STATG (0x9L<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_JAM (0xaL<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_EJAM (0xbL<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_BJAM (0xcL<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_SWAIT (0xdL<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_SM_STATE_BACKOFF (0xeL<<0)
+#define BCE_EMAC_TXMAC_DEBUG3_FILT_STATE (0x7L<<4)
+#define BCE_EMAC_TXMAC_DEBUG3_FILT_STATE_IDLE (0x0L<<4)
+#define BCE_EMAC_TXMAC_DEBUG3_FILT_STATE_WAIT (0x1L<<4)
+#define BCE_EMAC_TXMAC_DEBUG3_FILT_STATE_UNI (0x2L<<4)
+#define BCE_EMAC_TXMAC_DEBUG3_FILT_STATE_MC (0x3L<<4)
+#define BCE_EMAC_TXMAC_DEBUG3_FILT_STATE_BC2 (0x4L<<4)
+#define BCE_EMAC_TXMAC_DEBUG3_FILT_STATE_BC3 (0x5L<<4)
+#define BCE_EMAC_TXMAC_DEBUG3_FILT_STATE_BC (0x6L<<4)
+#define BCE_EMAC_TXMAC_DEBUG3_CRS_DONE (1L<<7)
+#define BCE_EMAC_TXMAC_DEBUG3_XOFF (1L<<8)
+#define BCE_EMAC_TXMAC_DEBUG3_SE_COUNTER (0xfL<<9)
+#define BCE_EMAC_TXMAC_DEBUG3_QUANTA_COUNTER (0x1fL<<13)
+
+#define BCE_EMAC_TXMAC_DEBUG4 0x00001668
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_COUNTER (0xffffL<<0)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE (0xfL<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_IDLE (0x0L<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_MCA1 (0x2L<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_MCA2 (0x3L<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_MCA3 (0x6L<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_SRC1 (0x7L<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_SRC2 (0x5L<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_SRC3 (0x4L<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_TYPE (0xcL<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_CMD (0xeL<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_TIME (0xaL<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_CRC1 (0x8L<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_CRC2 (0x9L<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_PAUSE_STATE_WAIT (0xdL<<16)
+#define BCE_EMAC_TXMAC_DEBUG4_STATS0_VALID (1L<<20)
+#define BCE_EMAC_TXMAC_DEBUG4_APPEND_CRC (1L<<21)
+#define BCE_EMAC_TXMAC_DEBUG4_SLOT_FILLED (1L<<22)
+#define BCE_EMAC_TXMAC_DEBUG4_MAX_DEFER (1L<<23)
+#define BCE_EMAC_TXMAC_DEBUG4_SEND_EXTEND (1L<<24)
+#define BCE_EMAC_TXMAC_DEBUG4_SEND_PADDING (1L<<25)
+#define BCE_EMAC_TXMAC_DEBUG4_EOF_LOC (1L<<26)
+#define BCE_EMAC_TXMAC_DEBUG4_COLLIDING (1L<<27)
+#define BCE_EMAC_TXMAC_DEBUG4_COL_IN (1L<<28)
+#define BCE_EMAC_TXMAC_DEBUG4_BURSTING (1L<<29)
+#define BCE_EMAC_TXMAC_DEBUG4_ADVANCE (1L<<30)
+#define BCE_EMAC_TXMAC_DEBUG4_GO (1L<<31)
+
+#define BCE_EMAC_TX_STAT_AC0 0x00001680
+#define BCE_EMAC_TX_STAT_AC1 0x00001684
+#define BCE_EMAC_TX_STAT_AC2 0x00001688
+#define BCE_EMAC_TX_STAT_AC3 0x0000168c
+#define BCE_EMAC_TX_STAT_AC4 0x00001690
+#define BCE_EMAC_TX_STAT_AC5 0x00001694
+#define BCE_EMAC_TX_STAT_AC6 0x00001698
+#define BCE_EMAC_TX_STAT_AC7 0x0000169c
+#define BCE_EMAC_TX_STAT_AC8 0x000016a0
+#define BCE_EMAC_TX_STAT_AC9 0x000016a4
+#define BCE_EMAC_TX_STAT_AC10 0x000016a8
+#define BCE_EMAC_TX_STAT_AC11 0x000016ac
+#define BCE_EMAC_TX_STAT_AC12 0x000016b0
+#define BCE_EMAC_TX_STAT_AC13 0x000016b4
+#define BCE_EMAC_TX_STAT_AC14 0x000016b8
+#define BCE_EMAC_TX_STAT_AC15 0x000016bc
+#define BCE_EMAC_TX_STAT_AC16 0x000016c0
+#define BCE_EMAC_TX_STAT_AC17 0x000016c4
+#define BCE_EMAC_TX_STAT_AC18 0x000016c8
+#define BCE_EMAC_TX_STAT_AC19 0x000016cc
+#define BCE_EMAC_TX_STAT_AC20 0x000016d0
+#define BCE_EMAC_TX_STAT_AC21 0x000016d4
+#define BCE_EMAC_TXMAC_SUC_DBG_OVERRUNVEC 0x000016d8
+
+
+/*
+ * rpm_reg definition
+ * offset: 0x1800
+ */
+#define BCE_RPM_COMMAND 0x00001800
+#define BCE_RPM_COMMAND_ENABLED (1L<<0)
+#define BCE_RPM_COMMAND_OVERRUN_ABORT (1L<<4)
+
+#define BCE_RPM_STATUS 0x00001804
+#define BCE_RPM_STATUS_MBUF_WAIT (1L<<0)
+#define BCE_RPM_STATUS_FREE_WAIT (1L<<1)
+
+#define BCE_RPM_CONFIG 0x00001808
+#define BCE_RPM_CONFIG_NO_PSD_HDR_CKSUM (1L<<0)
+#define BCE_RPM_CONFIG_ACPI_ENA (1L<<1)
+#define BCE_RPM_CONFIG_ACPI_KEEP (1L<<2)
+#define BCE_RPM_CONFIG_MP_KEEP (1L<<3)
+#define BCE_RPM_CONFIG_SORT_VECT_VAL (0xfL<<4)
+#define BCE_RPM_CONFIG_IGNORE_VLAN (1L<<31)
+
+#define BCE_RPM_MGMT_PKT_CTRL 0x0000180c
+#define BCE_RPM_MGMT_PKT_CTRL_MGMT_DISCARD_EN (1L<<30)
+#define BCE_RPM_MGMT_PKT_CTRL_MGMT_EN (1L<<31)
+
+#define BCE_RPM_VLAN_MATCH0 0x00001810
+#define BCE_RPM_VLAN_MATCH0_RPM_VLAN_MTCH0_VALUE (0xfffL<<0)
+
+#define BCE_RPM_VLAN_MATCH1 0x00001814
+#define BCE_RPM_VLAN_MATCH1_RPM_VLAN_MTCH1_VALUE (0xfffL<<0)
+
+#define BCE_RPM_VLAN_MATCH2 0x00001818
+#define BCE_RPM_VLAN_MATCH2_RPM_VLAN_MTCH2_VALUE (0xfffL<<0)
+
+#define BCE_RPM_VLAN_MATCH3 0x0000181c
+#define BCE_RPM_VLAN_MATCH3_RPM_VLAN_MTCH3_VALUE (0xfffL<<0)
+
+#define BCE_RPM_SORT_USER0 0x00001820
+#define BCE_RPM_SORT_USER0_PM_EN (0xffffL<<0)
+#define BCE_RPM_SORT_USER0_BC_EN (1L<<16)
+#define BCE_RPM_SORT_USER0_MC_EN (1L<<17)
+#define BCE_RPM_SORT_USER0_MC_HSH_EN (1L<<18)
+#define BCE_RPM_SORT_USER0_PROM_EN (1L<<19)
+#define BCE_RPM_SORT_USER0_VLAN_EN (0xfL<<20)
+#define BCE_RPM_SORT_USER0_PROM_VLAN (1L<<24)
+#define BCE_RPM_SORT_USER0_ENA (1L<<31)
+
+#define BCE_RPM_SORT_USER1 0x00001824
+#define BCE_RPM_SORT_USER1_PM_EN (0xffffL<<0)
+#define BCE_RPM_SORT_USER1_BC_EN (1L<<16)
+#define BCE_RPM_SORT_USER1_MC_EN (1L<<17)
+#define BCE_RPM_SORT_USER1_MC_HSH_EN (1L<<18)
+#define BCE_RPM_SORT_USER1_PROM_EN (1L<<19)
+#define BCE_RPM_SORT_USER1_VLAN_EN (0xfL<<20)
+#define BCE_RPM_SORT_USER1_PROM_VLAN (1L<<24)
+#define BCE_RPM_SORT_USER1_ENA (1L<<31)
+
+#define BCE_RPM_SORT_USER2 0x00001828
+#define BCE_RPM_SORT_USER2_PM_EN (0xffffL<<0)
+#define BCE_RPM_SORT_USER2_BC_EN (1L<<16)
+#define BCE_RPM_SORT_USER2_MC_EN (1L<<17)
+#define BCE_RPM_SORT_USER2_MC_HSH_EN (1L<<18)
+#define BCE_RPM_SORT_USER2_PROM_EN (1L<<19)
+#define BCE_RPM_SORT_USER2_VLAN_EN (0xfL<<20)
+#define BCE_RPM_SORT_USER2_PROM_VLAN (1L<<24)
+#define BCE_RPM_SORT_USER2_ENA (1L<<31)
+
+#define BCE_RPM_SORT_USER3 0x0000182c
+#define BCE_RPM_SORT_USER3_PM_EN (0xffffL<<0)
+#define BCE_RPM_SORT_USER3_BC_EN (1L<<16)
+#define BCE_RPM_SORT_USER3_MC_EN (1L<<17)
+#define BCE_RPM_SORT_USER3_MC_HSH_EN (1L<<18)
+#define BCE_RPM_SORT_USER3_PROM_EN (1L<<19)
+#define BCE_RPM_SORT_USER3_VLAN_EN (0xfL<<20)
+#define BCE_RPM_SORT_USER3_PROM_VLAN (1L<<24)
+#define BCE_RPM_SORT_USER3_ENA (1L<<31)
+
+#define BCE_RPM_STAT_L2_FILTER_DISCARDS 0x00001840
+#define BCE_RPM_STAT_RULE_CHECKER_DISCARDS 0x00001844
+#define BCE_RPM_STAT_IFINFTQDISCARDS 0x00001848
+#define BCE_RPM_STAT_IFINMBUFDISCARD 0x0000184c
+#define BCE_RPM_STAT_RULE_CHECKER_P4_HIT 0x00001850
+#define BCE_RPM_STAT_AC0 0x00001880
+#define BCE_RPM_STAT_AC1 0x00001884
+#define BCE_RPM_STAT_AC2 0x00001888
+#define BCE_RPM_STAT_AC3 0x0000188c
+#define BCE_RPM_STAT_AC4 0x00001890
+#define BCE_RPM_RC_CNTL_0 0x00001900
+#define BCE_RPM_RC_CNTL_0_OFFSET (0xffL<<0)
+#define BCE_RPM_RC_CNTL_0_CLASS (0x7L<<8)
+#define BCE_RPM_RC_CNTL_0_PRIORITY (1L<<11)
+#define BCE_RPM_RC_CNTL_0_P4 (1L<<12)
+#define BCE_RPM_RC_CNTL_0_HDR_TYPE (0x7L<<13)
+#define BCE_RPM_RC_CNTL_0_HDR_TYPE_START (0L<<13)
+#define BCE_RPM_RC_CNTL_0_HDR_TYPE_IP (1L<<13)
+#define BCE_RPM_RC_CNTL_0_HDR_TYPE_TCP (2L<<13)
+#define BCE_RPM_RC_CNTL_0_HDR_TYPE_UDP (3L<<13)
+#define BCE_RPM_RC_CNTL_0_HDR_TYPE_DATA (4L<<13)
+#define BCE_RPM_RC_CNTL_0_COMP (0x3L<<16)
+#define BCE_RPM_RC_CNTL_0_COMP_EQUAL (0L<<16)
+#define BCE_RPM_RC_CNTL_0_COMP_NEQUAL (1L<<16)
+#define BCE_RPM_RC_CNTL_0_COMP_GREATER (2L<<16)
+#define BCE_RPM_RC_CNTL_0_COMP_LESS (3L<<16)
+#define BCE_RPM_RC_CNTL_0_SBIT (1L<<19)
+#define BCE_RPM_RC_CNTL_0_CMDSEL (0xfL<<20)
+#define BCE_RPM_RC_CNTL_0_MAP (1L<<24)
+#define BCE_RPM_RC_CNTL_0_DISCARD (1L<<25)
+#define BCE_RPM_RC_CNTL_0_MASK (1L<<26)
+#define BCE_RPM_RC_CNTL_0_P1 (1L<<27)
+#define BCE_RPM_RC_CNTL_0_P2 (1L<<28)
+#define BCE_RPM_RC_CNTL_0_P3 (1L<<29)
+#define BCE_RPM_RC_CNTL_0_NBIT (1L<<30)
+
+#define BCE_RPM_RC_VALUE_MASK_0 0x00001904
+#define BCE_RPM_RC_VALUE_MASK_0_VALUE (0xffffL<<0)
+#define BCE_RPM_RC_VALUE_MASK_0_MASK (0xffffL<<16)
+
+#define BCE_RPM_RC_CNTL_1 0x00001908
+#define BCE_RPM_RC_CNTL_1_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_1_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_1 0x0000190c
+#define BCE_RPM_RC_CNTL_2 0x00001910
+#define BCE_RPM_RC_CNTL_2_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_2_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_2 0x00001914
+#define BCE_RPM_RC_CNTL_3 0x00001918
+#define BCE_RPM_RC_CNTL_3_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_3_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_3 0x0000191c
+#define BCE_RPM_RC_CNTL_4 0x00001920
+#define BCE_RPM_RC_CNTL_4_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_4_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_4 0x00001924
+#define BCE_RPM_RC_CNTL_5 0x00001928
+#define BCE_RPM_RC_CNTL_5_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_5_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_5 0x0000192c
+#define BCE_RPM_RC_CNTL_6 0x00001930
+#define BCE_RPM_RC_CNTL_6_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_6_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_6 0x00001934
+#define BCE_RPM_RC_CNTL_7 0x00001938
+#define BCE_RPM_RC_CNTL_7_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_7_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_7 0x0000193c
+#define BCE_RPM_RC_CNTL_8 0x00001940
+#define BCE_RPM_RC_CNTL_8_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_8_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_8 0x00001944
+#define BCE_RPM_RC_CNTL_9 0x00001948
+#define BCE_RPM_RC_CNTL_9_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_9_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_9 0x0000194c
+#define BCE_RPM_RC_CNTL_10 0x00001950
+#define BCE_RPM_RC_CNTL_10_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_10_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_10 0x00001954
+#define BCE_RPM_RC_CNTL_11 0x00001958
+#define BCE_RPM_RC_CNTL_11_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_11_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_11 0x0000195c
+#define BCE_RPM_RC_CNTL_12 0x00001960
+#define BCE_RPM_RC_CNTL_12_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_12_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_12 0x00001964
+#define BCE_RPM_RC_CNTL_13 0x00001968
+#define BCE_RPM_RC_CNTL_13_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_13_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_13 0x0000196c
+#define BCE_RPM_RC_CNTL_14 0x00001970
+#define BCE_RPM_RC_CNTL_14_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_14_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_14 0x00001974
+#define BCE_RPM_RC_CNTL_15 0x00001978
+#define BCE_RPM_RC_CNTL_15_A (0x3ffffL<<0)
+#define BCE_RPM_RC_CNTL_15_B (0xfffL<<19)
+
+#define BCE_RPM_RC_VALUE_MASK_15 0x0000197c
+#define BCE_RPM_RC_CONFIG 0x00001980
+#define BCE_RPM_RC_CONFIG_RULE_ENABLE (0xffffL<<0)
+#define BCE_RPM_RC_CONFIG_DEF_CLASS (0x7L<<24)
+
+#define BCE_RPM_DEBUG0 0x00001984
+#define BCE_RPM_DEBUG0_FM_BCNT (0xffffL<<0)
+#define BCE_RPM_DEBUG0_T_DATA_OFST_VLD (1L<<16)
+#define BCE_RPM_DEBUG0_T_UDP_OFST_VLD (1L<<17)
+#define BCE_RPM_DEBUG0_T_TCP_OFST_VLD (1L<<18)
+#define BCE_RPM_DEBUG0_T_IP_OFST_VLD (1L<<19)
+#define BCE_RPM_DEBUG0_IP_MORE_FRGMT (1L<<20)
+#define BCE_RPM_DEBUG0_T_IP_NO_TCP_UDP_HDR (1L<<21)
+#define BCE_RPM_DEBUG0_LLC_SNAP (1L<<22)
+#define BCE_RPM_DEBUG0_FM_STARTED (1L<<23)
+#define BCE_RPM_DEBUG0_DONE (1L<<24)
+#define BCE_RPM_DEBUG0_WAIT_4_DONE (1L<<25)
+#define BCE_RPM_DEBUG0_USE_TPBUF_CKSUM (1L<<26)
+#define BCE_RPM_DEBUG0_RX_NO_PSD_HDR_CKSUM (1L<<27)
+#define BCE_RPM_DEBUG0_IGNORE_VLAN (1L<<28)
+#define BCE_RPM_DEBUG0_RP_ENA_ACTIVE (1L<<31)
+
+#define BCE_RPM_DEBUG1 0x00001988
+#define BCE_RPM_DEBUG1_FSM_CUR_ST (0xffffL<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_IDLE (0L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B6_ALL (1L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B2_IPLLC (2L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B6_IP (4L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_ETYPE_B2_IP (8L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_IP_START (16L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_IP (32L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_TCP (64L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_UDP (128L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_AH (256L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_ESP (512L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_ESP_PAYLOAD (1024L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_DATA (2048L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_ADD_CARRY (0x2000L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_ADD_CARRYOUT (0x4000L<<0)
+#define BCE_RPM_DEBUG1_FSM_CUR_ST_LATCH_RESULT (0x8000L<<0)
+#define BCE_RPM_DEBUG1_HDR_BCNT (0x7ffL<<16)
+#define BCE_RPM_DEBUG1_UNKNOWN_ETYPE_D (1L<<28)
+#define BCE_RPM_DEBUG1_VLAN_REMOVED_D2 (1L<<29)
+#define BCE_RPM_DEBUG1_VLAN_REMOVED_D1 (1L<<30)
+#define BCE_RPM_DEBUG1_EOF_0XTRA_WD (1L<<31)
+
+#define BCE_RPM_DEBUG2 0x0000198c
+#define BCE_RPM_DEBUG2_CMD_HIT_VEC (0xffffL<<0)
+#define BCE_RPM_DEBUG2_IP_BCNT (0xffL<<16)
+#define BCE_RPM_DEBUG2_THIS_CMD_M4 (1L<<24)
+#define BCE_RPM_DEBUG2_THIS_CMD_M3 (1L<<25)
+#define BCE_RPM_DEBUG2_THIS_CMD_M2 (1L<<26)
+#define BCE_RPM_DEBUG2_THIS_CMD_M1 (1L<<27)
+#define BCE_RPM_DEBUG2_IPIPE_EMPTY (1L<<28)
+#define BCE_RPM_DEBUG2_FM_DISCARD (1L<<29)
+#define BCE_RPM_DEBUG2_LAST_RULE_IN_FM_D2 (1L<<30)
+#define BCE_RPM_DEBUG2_LAST_RULE_IN_FM_D1 (1L<<31)
+
+#define BCE_RPM_DEBUG3 0x00001990
+#define BCE_RPM_DEBUG3_AVAIL_MBUF_PTR (0x1ffL<<0)
+#define BCE_RPM_DEBUG3_RDE_RLUPQ_WR_REQ_INT (1L<<9)
+#define BCE_RPM_DEBUG3_RDE_RBUF_WR_LAST_INT (1L<<10)
+#define BCE_RPM_DEBUG3_RDE_RBUF_WR_REQ_INT (1L<<11)
+#define BCE_RPM_DEBUG3_RDE_RBUF_FREE_REQ (1L<<12)
+#define BCE_RPM_DEBUG3_RDE_RBUF_ALLOC_REQ (1L<<13)
+#define BCE_RPM_DEBUG3_DFSM_MBUF_NOTAVAIL (1L<<14)
+#define BCE_RPM_DEBUG3_RBUF_RDE_SOF_DROP (1L<<15)
+#define BCE_RPM_DEBUG3_DFIFO_VLD_ENTRY_CT (0xfL<<16)
+#define BCE_RPM_DEBUG3_RDE_SRC_FIFO_ALMFULL (1L<<21)
+#define BCE_RPM_DEBUG3_DROP_NXT_VLD (1L<<22)
+#define BCE_RPM_DEBUG3_DROP_NXT (1L<<23)
+#define BCE_RPM_DEBUG3_FTQ_FSM (0x3L<<24)
+#define BCE_RPM_DEBUG3_FTQ_FSM_IDLE (0x0L<<24)
+#define BCE_RPM_DEBUG3_FTQ_FSM_WAIT_ACK (0x1L<<24)
+#define BCE_RPM_DEBUG3_FTQ_FSM_WAIT_FREE (0x2L<<24)
+#define BCE_RPM_DEBUG3_MBWRITE_FSM (0x3L<<26)
+#define BCE_RPM_DEBUG3_MBWRITE_FSM_WAIT_SOF (0x0L<<26)
+#define BCE_RPM_DEBUG3_MBWRITE_FSM_GET_MBUF (0x1L<<26)
+#define BCE_RPM_DEBUG3_MBWRITE_FSM_DMA_DATA (0x2L<<26)
+#define BCE_RPM_DEBUG3_MBWRITE_FSM_WAIT_DATA (0x3L<<26)
+#define BCE_RPM_DEBUG3_MBWRITE_FSM_WAIT_EOF (0x4L<<26)
+#define BCE_RPM_DEBUG3_MBWRITE_FSM_WAIT_MF_ACK (0x5L<<26)
+#define BCE_RPM_DEBUG3_MBWRITE_FSM_WAIT_DROP_NXT_VLD (0x6L<<26)
+#define BCE_RPM_DEBUG3_MBWRITE_FSM_DONE (0x7L<<26)
+#define BCE_RPM_DEBUG3_MBFREE_FSM (1L<<29)
+#define BCE_RPM_DEBUG3_MBFREE_FSM_IDLE (0L<<29)
+#define BCE_RPM_DEBUG3_MBFREE_FSM_WAIT_ACK (1L<<29)
+#define BCE_RPM_DEBUG3_MBALLOC_FSM (1L<<30)
+#define BCE_RPM_DEBUG3_MBALLOC_FSM_ET_MBUF (0x0L<<30)
+#define BCE_RPM_DEBUG3_MBALLOC_FSM_IVE_MBUF (0x1L<<30)
+#define BCE_RPM_DEBUG3_CCODE_EOF_ERROR (1L<<31)
+
+#define BCE_RPM_DEBUG4 0x00001994
+#define BCE_RPM_DEBUG4_DFSM_MBUF_CLUSTER (0x1ffffffL<<0)
+#define BCE_RPM_DEBUG4_DFIFO_CUR_CCODE (0x7L<<25)
+#define BCE_RPM_DEBUG4_MBWRITE_FSM (0x7L<<28)
+#define BCE_RPM_DEBUG4_DFIFO_EMPTY (1L<<31)
+
+#define BCE_RPM_DEBUG5 0x00001998
+#define BCE_RPM_DEBUG5_RDROP_WPTR (0x1fL<<0)
+#define BCE_RPM_DEBUG5_RDROP_ACPI_RPTR (0x1fL<<5)
+#define BCE_RPM_DEBUG5_RDROP_MC_RPTR (0x1fL<<10)
+#define BCE_RPM_DEBUG5_RDROP_RC_RPTR (0x1fL<<15)
+#define BCE_RPM_DEBUG5_RDROP_ACPI_EMPTY (1L<<20)
+#define BCE_RPM_DEBUG5_RDROP_MC_EMPTY (1L<<21)
+#define BCE_RPM_DEBUG5_RDROP_AEOF_VEC_AT_RDROP_MC_RPTR (1L<<22)
+#define BCE_RPM_DEBUG5_HOLDREG_WOL_DROP_INT (1L<<23)
+#define BCE_RPM_DEBUG5_HOLDREG_DISCARD (1L<<24)
+#define BCE_RPM_DEBUG5_HOLDREG_MBUF_NOTAVAIL (1L<<25)
+#define BCE_RPM_DEBUG5_HOLDREG_MC_EMPTY (1L<<26)
+#define BCE_RPM_DEBUG5_HOLDREG_RC_EMPTY (1L<<27)
+#define BCE_RPM_DEBUG5_HOLDREG_FC_EMPTY (1L<<28)
+#define BCE_RPM_DEBUG5_HOLDREG_ACPI_EMPTY (1L<<29)
+#define BCE_RPM_DEBUG5_HOLDREG_FULL_T (1L<<30)
+#define BCE_RPM_DEBUG5_HOLDREG_RD (1L<<31)
+
+#define BCE_RPM_DEBUG6 0x0000199c
+#define BCE_RPM_DEBUG6_ACPI_VEC (0xffffL<<0)
+#define BCE_RPM_DEBUG6_VEC (0xffffL<<16)
+
+#define BCE_RPM_DEBUG7 0x000019a0
+#define BCE_RPM_DEBUG7_RPM_DBG7_LAST_CRC (0xffffffffL<<0)
+
+#define BCE_RPM_DEBUG8 0x000019a4
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM (0xfL<<0)
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM_IDLE (0L<<0)
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM_SOF_W1_ADDR (1L<<0)
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM_SOF_W2_ADDR (2L<<0)
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM_SOF_W3_ADDR (3L<<0)
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM_SOF_WAIT_THBUF (4L<<0)
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM_W3_DATA (5L<<0)
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM_W0_ADDR (6L<<0)
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM_W1_ADDR (7L<<0)
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM_W2_ADDR (8L<<0)
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM_W3_ADDR (9L<<0)
+#define BCE_RPM_DEBUG8_PS_ACPI_FSM_WAIT_THBUF (10L<<0)
+#define BCE_RPM_DEBUG8_COMPARE_AT_W0 (1L<<4)
+#define BCE_RPM_DEBUG8_COMPARE_AT_W3_DATA (1L<<5)
+#define BCE_RPM_DEBUG8_COMPARE_AT_SOF_WAIT (1L<<6)
+#define BCE_RPM_DEBUG8_COMPARE_AT_SOF_W3 (1L<<7)
+#define BCE_RPM_DEBUG8_COMPARE_AT_SOF_W2 (1L<<8)
+#define BCE_RPM_DEBUG8_EOF_W_LTEQ6_VLDBYTES (1L<<9)
+#define BCE_RPM_DEBUG8_EOF_W_LTEQ4_VLDBYTES (1L<<10)
+#define BCE_RPM_DEBUG8_NXT_EOF_W_12_VLDBYTES (1L<<11)
+#define BCE_RPM_DEBUG8_EOF_DET (1L<<12)
+#define BCE_RPM_DEBUG8_SOF_DET (1L<<13)
+#define BCE_RPM_DEBUG8_WAIT_4_SOF (1L<<14)
+#define BCE_RPM_DEBUG8_ALL_DONE (1L<<15)
+#define BCE_RPM_DEBUG8_THBUF_ADDR (0x7fL<<16)
+#define BCE_RPM_DEBUG8_BYTE_CTR (0xffL<<24)
+
+#define BCE_RPM_DEBUG9 0x000019a8
+#define BCE_RPM_DEBUG9_OUTFIFO_COUNT (0x7L<<0)
+#define BCE_RPM_DEBUG9_RDE_ACPI_RDY (1L<<3)
+#define BCE_RPM_DEBUG9_VLD_RD_ENTRY_CT (0x7L<<4)
+#define BCE_RPM_DEBUG9_OUTFIFO_OVERRUN_OCCURRED (1L<<28)
+#define BCE_RPM_DEBUG9_INFIFO_OVERRUN_OCCURRED (1L<<29)
+#define BCE_RPM_DEBUG9_ACPI_MATCH_INT (1L<<30)
+#define BCE_RPM_DEBUG9_ACPI_ENABLE_SYN (1L<<31)
+
+#define BCE_RPM_ACPI_DBG_BUF_W00 0x000019c0
+#define BCE_RPM_ACPI_DBG_BUF_W01 0x000019c4
+#define BCE_RPM_ACPI_DBG_BUF_W02 0x000019c8
+#define BCE_RPM_ACPI_DBG_BUF_W03 0x000019cc
+#define BCE_RPM_ACPI_DBG_BUF_W10 0x000019d0
+#define BCE_RPM_ACPI_DBG_BUF_W11 0x000019d4
+#define BCE_RPM_ACPI_DBG_BUF_W12 0x000019d8
+#define BCE_RPM_ACPI_DBG_BUF_W13 0x000019dc
+#define BCE_RPM_ACPI_DBG_BUF_W20 0x000019e0
+#define BCE_RPM_ACPI_DBG_BUF_W21 0x000019e4
+#define BCE_RPM_ACPI_DBG_BUF_W22 0x000019e8
+#define BCE_RPM_ACPI_DBG_BUF_W23 0x000019ec
+#define BCE_RPM_ACPI_DBG_BUF_W30 0x000019f0
+#define BCE_RPM_ACPI_DBG_BUF_W31 0x000019f4
+#define BCE_RPM_ACPI_DBG_BUF_W32 0x000019f8
+#define BCE_RPM_ACPI_DBG_BUF_W33 0x000019fc
+
+
+/*
+ * rlup_reg definition
+ * offset: 0x2000
+ */
+#define BCE_RLUP_FTQ_CMD 0x000023f8
+#define BCE_RLUP_FTQ_CTL 0x000023fc
+#define BCE_RLUP_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_RLUP_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+
+/*
+ * rv2pcsr_reg definition
+ * offset: 0x2400
+ */
+#define BCE_RV2PCSR_FTQ_CMD 0x000027f8
+#define BCE_RV2PCSR_FTQ_CTL 0x000027fc
+#define BCE_RV2PCSR_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_RV2PCSR_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+
+/*
+ * rdma_reg definition
+ * offset: 0x2c00
+ */
+#define BCE_RDMA_FTQ_CMD 0x00002ff8
+#define BCE_RDMA_FTQ_CTL 0x00002ffc
+#define BCE_RDMA_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_RDMA_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+
+
+/*
+ * timer_reg definition
+ * offset: 0x4400
+ */
+
+#define BCE_TIMER_COMMAND 0x00004400
+#define BCE_TIMER_COMMAND_ENABLED (1L<<0)
+
+#define BCE_TIMER_STATUS 0x00004404
+#define BCE_TIMER_STATUS_CMP_FTQ_WAIT (1L<<0)
+#define BCE_TIMER_STATUS_POLL_PASS_CNT (1L<<8)
+#define BCE_TIMER_STATUS_TMR1_CNT (1L<<9)
+#define BCE_TIMER_STATUS_TMR2_CNT (1L<<10)
+#define BCE_TIMER_STATUS_TMR3_CNT (1L<<11)
+#define BCE_TIMER_STATUS_TMR4_CNT (1L<<12)
+#define BCE_TIMER_STATUS_TMR5_CNT (1L<<13)
+
+#define BCE_TIMER_25MHZ_FREE_RUN 0x00004448
+
+
+/*
+ * tsch_reg definition
+ * offset: 0x4c00
+ */
+
+#define BCE_TSCH_FTQ_CMD 0x00004ff8
+#define BCE_TSCH_FTQ_CTL 0x00004ffc
+#define BCE_TSCH_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_TSCH_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+
+
+/*
+ * rbuf_reg definition
+ * offset: 0x200000
+ */
+#define BCE_RBUF_COMMAND 0x00200000
+#define BCE_RBUF_COMMAND_ENABLED (1L<<0)
+#define BCE_RBUF_COMMAND_FREE_INIT (1L<<1)
+#define BCE_RBUF_COMMAND_RAM_INIT (1L<<2)
+#define BCE_RBUF_COMMAND_OVER_FREE (1L<<4)
+#define BCE_RBUF_COMMAND_ALLOC_REQ (1L<<5)
+
+#define BCE_RBUF_STATUS1 0x00200004
+#define BCE_RBUF_STATUS1_FREE_COUNT (0x3ffL<<0)
+
+#define BCE_RBUF_STATUS2 0x00200008
+#define BCE_RBUF_STATUS2_FREE_TAIL (0x3ffL<<0)
+#define BCE_RBUF_STATUS2_FREE_HEAD (0x3ffL<<16)
+
+#define BCE_RBUF_CONFIG 0x0020000c
+#define BCE_RBUF_CONFIG_XOFF_TRIP (0x3ffL<<0)
+#define BCE_RBUF_CONFIG_XON_TRIP (0x3ffL<<16)
+
+#define BCE_RBUF_FW_BUF_ALLOC 0x00200010
+#define BCE_RBUF_FW_BUF_ALLOC_VALUE (0x1ffL<<7)
+
+#define BCE_RBUF_FW_BUF_FREE 0x00200014
+#define BCE_RBUF_FW_BUF_FREE_COUNT (0x7fL<<0)
+#define BCE_RBUF_FW_BUF_FREE_TAIL (0x1ffL<<7)
+#define BCE_RBUF_FW_BUF_FREE_HEAD (0x1ffL<<16)
+
+#define BCE_RBUF_FW_BUF_SEL 0x00200018
+#define BCE_RBUF_FW_BUF_SEL_COUNT (0x7fL<<0)
+#define BCE_RBUF_FW_BUF_SEL_TAIL (0x1ffL<<7)
+#define BCE_RBUF_FW_BUF_SEL_HEAD (0x1ffL<<16)
+
+#define BCE_RBUF_CONFIG2 0x0020001c
+#define BCE_RBUF_CONFIG2_MAC_DROP_TRIP (0x3ffL<<0)
+#define BCE_RBUF_CONFIG2_MAC_KEEP_TRIP (0x3ffL<<16)
+
+#define BCE_RBUF_CONFIG3 0x00200020
+#define BCE_RBUF_CONFIG3_CU_DROP_TRIP (0x3ffL<<0)
+#define BCE_RBUF_CONFIG3_CU_KEEP_TRIP (0x3ffL<<16)
+
+#define BCE_RBUF_PKT_DATA 0x00208000
+#define BCE_RBUF_CLIST_DATA 0x00210000
+#define BCE_RBUF_BUF_DATA 0x00220000
+
+
+/*
+ * rv2p_reg definition
+ * offset: 0x2800
+ */
+#define BCE_RV2P_COMMAND 0x00002800
+#define BCE_RV2P_COMMAND_ENABLED (1L<<0)
+#define BCE_RV2P_COMMAND_PROC1_INTRPT (1L<<1)
+#define BCE_RV2P_COMMAND_PROC2_INTRPT (1L<<2)
+#define BCE_RV2P_COMMAND_ABORT0 (1L<<4)
+#define BCE_RV2P_COMMAND_ABORT1 (1L<<5)
+#define BCE_RV2P_COMMAND_ABORT2 (1L<<6)
+#define BCE_RV2P_COMMAND_ABORT3 (1L<<7)
+#define BCE_RV2P_COMMAND_ABORT4 (1L<<8)
+#define BCE_RV2P_COMMAND_ABORT5 (1L<<9)
+#define BCE_RV2P_COMMAND_PROC1_RESET (1L<<16)
+#define BCE_RV2P_COMMAND_PROC2_RESET (1L<<17)
+#define BCE_RV2P_COMMAND_CTXIF_RESET (1L<<18)
+
+#define BCE_RV2P_STATUS 0x00002804
+#define BCE_RV2P_STATUS_ALWAYS_0 (1L<<0)
+#define BCE_RV2P_STATUS_RV2P_GEN_STAT0_CNT (1L<<8)
+#define BCE_RV2P_STATUS_RV2P_GEN_STAT1_CNT (1L<<9)
+#define BCE_RV2P_STATUS_RV2P_GEN_STAT2_CNT (1L<<10)
+#define BCE_RV2P_STATUS_RV2P_GEN_STAT3_CNT (1L<<11)
+#define BCE_RV2P_STATUS_RV2P_GEN_STAT4_CNT (1L<<12)
+#define BCE_RV2P_STATUS_RV2P_GEN_STAT5_CNT (1L<<13)
+
+#define BCE_RV2P_CONFIG 0x00002808
+#define BCE_RV2P_CONFIG_STALL_PROC1 (1L<<0)
+#define BCE_RV2P_CONFIG_STALL_PROC2 (1L<<1)
+#define BCE_RV2P_CONFIG_PROC1_STALL_ON_ABORT0 (1L<<8)
+#define BCE_RV2P_CONFIG_PROC1_STALL_ON_ABORT1 (1L<<9)
+#define BCE_RV2P_CONFIG_PROC1_STALL_ON_ABORT2 (1L<<10)
+#define BCE_RV2P_CONFIG_PROC1_STALL_ON_ABORT3 (1L<<11)
+#define BCE_RV2P_CONFIG_PROC1_STALL_ON_ABORT4 (1L<<12)
+#define BCE_RV2P_CONFIG_PROC1_STALL_ON_ABORT5 (1L<<13)
+#define BCE_RV2P_CONFIG_PROC2_STALL_ON_ABORT0 (1L<<16)
+#define BCE_RV2P_CONFIG_PROC2_STALL_ON_ABORT1 (1L<<17)
+#define BCE_RV2P_CONFIG_PROC2_STALL_ON_ABORT2 (1L<<18)
+#define BCE_RV2P_CONFIG_PROC2_STALL_ON_ABORT3 (1L<<19)
+#define BCE_RV2P_CONFIG_PROC2_STALL_ON_ABORT4 (1L<<20)
+#define BCE_RV2P_CONFIG_PROC2_STALL_ON_ABORT5 (1L<<21)
+#define BCE_RV2P_CONFIG_PAGE_SIZE (0xfL<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_256 (0L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_512 (1L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_1K (2L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_2K (3L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_4K (4L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_8K (5L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_16K (6L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_32K (7L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_64K (8L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_128K (9L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_256K (10L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_512K (11L<<24)
+#define BCE_RV2P_CONFIG_PAGE_SIZE_1M (12L<<24)
+
+#define BCE_RV2P_GEN_BFR_ADDR_0 0x00002810
+#define BCE_RV2P_GEN_BFR_ADDR_0_VALUE (0xffffL<<16)
+
+#define BCE_RV2P_GEN_BFR_ADDR_1 0x00002814
+#define BCE_RV2P_GEN_BFR_ADDR_1_VALUE (0xffffL<<16)
+
+#define BCE_RV2P_GEN_BFR_ADDR_2 0x00002818
+#define BCE_RV2P_GEN_BFR_ADDR_2_VALUE (0xffffL<<16)
+
+#define BCE_RV2P_GEN_BFR_ADDR_3 0x0000281c
+#define BCE_RV2P_GEN_BFR_ADDR_3_VALUE (0xffffL<<16)
+
+#define BCE_RV2P_INSTR_HIGH 0x00002830
+#define BCE_RV2P_INSTR_HIGH_HIGH (0x1fL<<0)
+
+#define BCE_RV2P_INSTR_LOW 0x00002834
+#define BCE_RV2P_PROC1_ADDR_CMD 0x00002838
+#define BCE_RV2P_PROC1_ADDR_CMD_ADD (0x3ffL<<0)
+#define BCE_RV2P_PROC1_ADDR_CMD_RDWR (1L<<31)
+
+#define BCE_RV2P_PROC2_ADDR_CMD 0x0000283c
+#define BCE_RV2P_PROC2_ADDR_CMD_ADD (0x3ffL<<0)
+#define BCE_RV2P_PROC2_ADDR_CMD_RDWR (1L<<31)
+
+#define BCE_RV2P_PROC1_GRC_DEBUG 0x00002840
+#define BCE_RV2P_PROC2_GRC_DEBUG 0x00002844
+#define BCE_RV2P_GRC_PROC_DEBUG 0x00002848
+#define BCE_RV2P_DEBUG_VECT_PEEK 0x0000284c
+#define BCE_RV2P_DEBUG_VECT_PEEK_1_VALUE (0x7ffL<<0)
+#define BCE_RV2P_DEBUG_VECT_PEEK_1_PEEK_EN (1L<<11)
+#define BCE_RV2P_DEBUG_VECT_PEEK_1_SEL (0xfL<<12)
+#define BCE_RV2P_DEBUG_VECT_PEEK_2_VALUE (0x7ffL<<16)
+#define BCE_RV2P_DEBUG_VECT_PEEK_2_PEEK_EN (1L<<27)
+#define BCE_RV2P_DEBUG_VECT_PEEK_2_SEL (0xfL<<28)
+
+#define BCE_RV2P_PFTQ_DATA 0x00002b40
+#define BCE_RV2P_PFTQ_CMD 0x00002b78
+#define BCE_RV2P_PFTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_RV2P_PFTQ_CMD_WR_TOP (1L<<10)
+#define BCE_RV2P_PFTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_RV2P_PFTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_RV2P_PFTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_RV2P_PFTQ_CMD_RD_DATA (1L<<26)
+#define BCE_RV2P_PFTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_RV2P_PFTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_RV2P_PFTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_RV2P_PFTQ_CMD_POP (1L<<30)
+#define BCE_RV2P_PFTQ_CMD_BUSY (1L<<31)
+
+#define BCE_RV2P_PFTQ_CTL 0x00002b7c
+#define BCE_RV2P_PFTQ_CTL_INTERVENE (1L<<0)
+#define BCE_RV2P_PFTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_RV2P_PFTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_RV2P_PFTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_RV2P_PFTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+#define BCE_RV2P_TFTQ_DATA 0x00002b80
+#define BCE_RV2P_TFTQ_CMD 0x00002bb8
+#define BCE_RV2P_TFTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_RV2P_TFTQ_CMD_WR_TOP (1L<<10)
+#define BCE_RV2P_TFTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_RV2P_TFTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_RV2P_TFTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_RV2P_TFTQ_CMD_RD_DATA (1L<<26)
+#define BCE_RV2P_TFTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_RV2P_TFTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_RV2P_TFTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_RV2P_TFTQ_CMD_POP (1L<<30)
+#define BCE_RV2P_TFTQ_CMD_BUSY (1L<<31)
+
+#define BCE_RV2P_TFTQ_CTL 0x00002bbc
+#define BCE_RV2P_TFTQ_CTL_INTERVENE (1L<<0)
+#define BCE_RV2P_TFTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_RV2P_TFTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_RV2P_TFTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_RV2P_TFTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+#define BCE_RV2P_MFTQ_DATA 0x00002bc0
+#define BCE_RV2P_MFTQ_CMD 0x00002bf8
+#define BCE_RV2P_MFTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_RV2P_MFTQ_CMD_WR_TOP (1L<<10)
+#define BCE_RV2P_MFTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_RV2P_MFTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_RV2P_MFTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_RV2P_MFTQ_CMD_RD_DATA (1L<<26)
+#define BCE_RV2P_MFTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_RV2P_MFTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_RV2P_MFTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_RV2P_MFTQ_CMD_POP (1L<<30)
+#define BCE_RV2P_MFTQ_CMD_BUSY (1L<<31)
+
+#define BCE_RV2P_MFTQ_CTL 0x00002bfc
+#define BCE_RV2P_MFTQ_CTL_INTERVENE (1L<<0)
+#define BCE_RV2P_MFTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_RV2P_MFTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_RV2P_MFTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_RV2P_MFTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+
+/*
+ * mq_reg definition
+ * offset: 0x3c00
+ */
+#define BCE_MQ_COMMAND 0x00003c00
+#define BCE_MQ_COMMAND_ENABLED (1L<<0)
+#define BCE_MQ_COMMAND_INIT (1L<<1)
+#define BCE_MQ_COMMAND_OVERFLOW (1L<<4)
+#define BCE_MQ_COMMAND_WR_ERROR (1L<<5)
+#define BCE_MQ_COMMAND_RD_ERROR (1L<<6)
+#define BCE_MQ_COMMAND_IDB_CFG_ERROR (1L<<7)
+#define BCE_MQ_COMMAND_IDB_OVERFLOW (1L<<10)
+#define BCE_MQ_COMMAND_NO_BIN_ERROR (1L<<11)
+#define BCE_MQ_COMMAND_NO_MAP_ERROR (1L<<12)
+
+#define BCE_MQ_STATUS 0x00003c04
+#define BCE_MQ_STATUS_CTX_ACCESS_STAT (1L<<16)
+#define BCE_MQ_STATUS_CTX_ACCESS64_STAT (1L<<17)
+#define BCE_MQ_STATUS_PCI_STALL_STAT (1L<<18)
+#define BCE_MQ_STATUS_IDB_OFLOW_STAT (1L<<19)
+
+#define BCE_MQ_CONFIG 0x00003c08
+#define BCE_MQ_CONFIG_TX_HIGH_PRI (1L<<0)
+#define BCE_MQ_CONFIG_HALT_DIS (1L<<1)
+#define BCE_MQ_CONFIG_BIN_MQ_MODE (1L<<2)
+#define BCE_MQ_CONFIG_DIS_IDB_DROP (1L<<3)
+#define BCE_MQ_CONFIG_KNL_BYP_BLK_SIZE (0x7L<<4)
+#define BCE_MQ_CONFIG_KNL_BYP_BLK_SIZE_256 (0L<<4)
+#define BCE_MQ_CONFIG_KNL_BYP_BLK_SIZE_512 (1L<<4)
+#define BCE_MQ_CONFIG_KNL_BYP_BLK_SIZE_1K (2L<<4)
+#define BCE_MQ_CONFIG_KNL_BYP_BLK_SIZE_2K (3L<<4)
+#define BCE_MQ_CONFIG_KNL_BYP_BLK_SIZE_4K (4L<<4)
+#define BCE_MQ_CONFIG_MAX_DEPTH (0x7fL<<8)
+#define BCE_MQ_CONFIG_CUR_DEPTH (0x7fL<<20)
+
+#define BCE_MQ_ENQUEUE1 0x00003c0c
+#define BCE_MQ_ENQUEUE1_OFFSET (0x3fL<<2)
+#define BCE_MQ_ENQUEUE1_CID (0x3fffL<<8)
+#define BCE_MQ_ENQUEUE1_BYTE_MASK (0xfL<<24)
+#define BCE_MQ_ENQUEUE1_KNL_MODE (1L<<28)
+
+#define BCE_MQ_ENQUEUE2 0x00003c10
+#define BCE_MQ_BAD_WR_ADDR 0x00003c14
+#define BCE_MQ_BAD_RD_ADDR 0x00003c18
+#define BCE_MQ_KNL_BYP_WIND_START 0x00003c1c
+#define BCE_MQ_KNL_BYP_WIND_START_VALUE (0xfffffL<<12)
+
+#define BCE_MQ_KNL_WIND_END 0x00003c20
+#define BCE_MQ_KNL_WIND_END_VALUE (0xffffffL<<8)
+
+#define BCE_MQ_KNL_WRITE_MASK1 0x00003c24
+#define BCE_MQ_KNL_TX_MASK1 0x00003c28
+#define BCE_MQ_KNL_CMD_MASK1 0x00003c2c
+#define BCE_MQ_KNL_COND_ENQUEUE_MASK1 0x00003c30
+#define BCE_MQ_KNL_RX_V2P_MASK1 0x00003c34
+#define BCE_MQ_KNL_WRITE_MASK2 0x00003c38
+#define BCE_MQ_KNL_TX_MASK2 0x00003c3c
+#define BCE_MQ_KNL_CMD_MASK2 0x00003c40
+#define BCE_MQ_KNL_COND_ENQUEUE_MASK2 0x00003c44
+#define BCE_MQ_KNL_RX_V2P_MASK2 0x00003c48
+#define BCE_MQ_KNL_BYP_WRITE_MASK1 0x00003c4c
+#define BCE_MQ_KNL_BYP_TX_MASK1 0x00003c50
+#define BCE_MQ_KNL_BYP_CMD_MASK1 0x00003c54
+#define BCE_MQ_KNL_BYP_COND_ENQUEUE_MASK1 0x00003c58
+#define BCE_MQ_KNL_BYP_RX_V2P_MASK1 0x00003c5c
+#define BCE_MQ_KNL_BYP_WRITE_MASK2 0x00003c60
+#define BCE_MQ_KNL_BYP_TX_MASK2 0x00003c64
+#define BCE_MQ_KNL_BYP_CMD_MASK2 0x00003c68
+#define BCE_MQ_KNL_BYP_COND_ENQUEUE_MASK2 0x00003c6c
+#define BCE_MQ_KNL_BYP_RX_V2P_MASK2 0x00003c70
+#define BCE_MQ_MEM_WR_ADDR 0x00003c74
+#define BCE_MQ_MEM_WR_ADDR_VALUE (0x3fL<<0)
+
+#define BCE_MQ_MEM_WR_DATA0 0x00003c78
+#define BCE_MQ_MEM_WR_DATA0_VALUE (0xffffffffL<<0)
+
+#define BCE_MQ_MEM_WR_DATA1 0x00003c7c
+#define BCE_MQ_MEM_WR_DATA1_VALUE (0xffffffffL<<0)
+
+#define BCE_MQ_MEM_WR_DATA2 0x00003c80
+#define BCE_MQ_MEM_WR_DATA2_VALUE (0x3fffffffL<<0)
+#define BCE_MQ_MEM_WR_DATA2_VALUE_XI (0x7fffffffL<<0)
+
+#define BCE_MQ_MEM_RD_ADDR 0x00003c84
+#define BCE_MQ_MEM_RD_ADDR_VALUE (0x3fL<<0)
+
+#define BCE_MQ_MEM_RD_DATA0 0x00003c88
+#define BCE_MQ_MEM_RD_DATA0_VALUE (0xffffffffL<<0)
+
+#define BCE_MQ_MEM_RD_DATA1 0x00003c8c
+#define BCE_MQ_MEM_RD_DATA1_VALUE (0xffffffffL<<0)
+
+#define BCE_MQ_MEM_RD_DATA2 0x00003c90
+#define BCE_MQ_MEM_RD_DATA2_VALUE (0x3fffffffL<<0)
+#define BCE_MQ_MEM_RD_DATA2_VALUE_XI (0x7fffffffL<<0)
+
+#define BCE_MQ_CONFIG2 0x00003d00
+#define BCE_MQ_CONFIG2_CONT_SZ (0x7L<<4)
+#define BCE_MQ_CONFIG2_FIRST_L4L5 (0x1fL<<8)
+
+#define BCE_MQ_MAP_L2_3 0x00003d2c
+#define BCE_MQ_MAP_L2_3_MQ_OFFSET (0xffL<<0)
+#define BCE_MQ_MAP_L2_3_SZ (0x3L<<8)
+#define BCE_MQ_MAP_L2_3_CTX_OFFSET (0x2ffL<<10)
+#define BCE_MQ_MAP_L2_3_BIN_OFFSET (0x7L<<23)
+#define BCE_MQ_MAP_L2_3_ARM (0x3L<<26)
+#define BCE_MQ_MAP_L2_3_ENA (0x1L<<31)
+#define BCE_MQ_MAP_L2_3_DEFAULT 0x82004646
+
+#define BCE_MQ_MAP_L2_5 0x00003d34
+#define BCE_MQ_MAP_L2_5_MQ_OFFSET (0xffL<<0)
+#define BCE_MQ_MAP_L2_5_SZ (0x3L<<8)
+#define BCE_MQ_MAP_L2_5_CTX_OFFSET (0x2ffL<<10)
+#define BCE_MQ_MAP_L2_5_BIN_OFFSET (0x7L<<23)
+#define BCE_MQ_MAP_L2_5_ARM (0x3L<<26)
+#define BCE_MQ_MAP_L2_5_ENA (0x1L<<31)
+#define BCE_MQ_MAP_L2_5_DEFAULT 0x83000b08
+
+
+/*
+ * csch_reg definition
+ * offset: 0x4000
+ */
+#define BCE_CSCH_COMMAND 0x00004000
+#define BCE_CSCH_CH_FTQ_CMD 0x000043f8
+#define BCE_CSCH_CH_FTQ_CTL 0x000043fc
+#define BCE_CSCH_CH_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_CSCH_CH_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+
+/*
+ * tbdr_reg definition
+ * offset: 0x5000
+ */
+#define BCE_TBDR_COMMAND 0x00005000
+#define BCE_TBDR_COMMAND_ENABLE (1L<<0)
+#define BCE_TBDR_COMMAND_SOFT_RST (1L<<1)
+#define BCE_TBDR_COMMAND_MSTR_ABORT (1L<<4)
+
+#define BCE_TBDR_STATUS 0x00005004
+#define BCE_TBDR_STATUS_DMA_WAIT (1L<<0)
+#define BCE_TBDR_STATUS_FTQ_WAIT (1L<<1)
+#define BCE_TBDR_STATUS_FIFO_OVERFLOW (1L<<2)
+#define BCE_TBDR_STATUS_FIFO_UNDERFLOW (1L<<3)
+#define BCE_TBDR_STATUS_SEARCHMISS_ERROR (1L<<4)
+#define BCE_TBDR_STATUS_FTQ_ENTRY_CNT (1L<<5)
+#define BCE_TBDR_STATUS_BURST_CNT (1L<<6)
+
+#define BCE_TBDR_CONFIG 0x00005008
+#define BCE_TBDR_CONFIG_MAX_BDS (0xffL<<0)
+#define BCE_TBDR_CONFIG_SWAP_MODE (1L<<8)
+#define BCE_TBDR_CONFIG_PRIORITY (1L<<9)
+#define BCE_TBDR_CONFIG_CACHE_NEXT_PAGE_PTRS (1L<<10)
+#define BCE_TBDR_CONFIG_PAGE_SIZE (0xfL<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_256 (0L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_512 (1L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_1K (2L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_2K (3L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_4K (4L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_8K (5L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_16K (6L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_32K (7L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_64K (8L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_128K (9L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_256K (10L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_512K (11L<<24)
+#define BCE_TBDR_CONFIG_PAGE_SIZE_1M (12L<<24)
+
+#define BCE_TBDR_DEBUG_VECT_PEEK 0x0000500c
+#define BCE_TBDR_DEBUG_VECT_PEEK_1_VALUE (0x7ffL<<0)
+#define BCE_TBDR_DEBUG_VECT_PEEK_1_PEEK_EN (1L<<11)
+#define BCE_TBDR_DEBUG_VECT_PEEK_1_SEL (0xfL<<12)
+#define BCE_TBDR_DEBUG_VECT_PEEK_2_VALUE (0x7ffL<<16)
+#define BCE_TBDR_DEBUG_VECT_PEEK_2_PEEK_EN (1L<<27)
+#define BCE_TBDR_DEBUG_VECT_PEEK_2_SEL (0xfL<<28)
+
+#define BCE_TBDR_FTQ_DATA 0x000053c0
+#define BCE_TBDR_FTQ_CMD 0x000053f8
+#define BCE_TBDR_FTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_TBDR_FTQ_CMD_WR_TOP (1L<<10)
+#define BCE_TBDR_FTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_TBDR_FTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_TBDR_FTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_TBDR_FTQ_CMD_RD_DATA (1L<<26)
+#define BCE_TBDR_FTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_TBDR_FTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_TBDR_FTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_TBDR_FTQ_CMD_POP (1L<<30)
+#define BCE_TBDR_FTQ_CMD_BUSY (1L<<31)
+
+#define BCE_TBDR_FTQ_CTL 0x000053fc
+#define BCE_TBDR_FTQ_CTL_INTERVENE (1L<<0)
+#define BCE_TBDR_FTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_TBDR_FTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_TBDR_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_TBDR_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+
+/*
+ * tdma_reg definition
+ * offset: 0x5c00
+ */
+#define BCE_TDMA_COMMAND 0x00005c00
+#define BCE_TDMA_COMMAND_ENABLED (1L<<0)
+#define BCE_TDMA_COMMAND_MASTER_ABORT (1L<<4)
+#define BCE_TDMA_COMMAND_BAD_L2_LENGTH_ABORT (1L<<7)
+
+#define BCE_TDMA_STATUS 0x00005c04
+#define BCE_TDMA_STATUS_DMA_WAIT (1L<<0)
+#define BCE_TDMA_STATUS_PAYLOAD_WAIT (1L<<1)
+#define BCE_TDMA_STATUS_PATCH_FTQ_WAIT (1L<<2)
+#define BCE_TDMA_STATUS_LOCK_WAIT (1L<<3)
+#define BCE_TDMA_STATUS_FTQ_ENTRY_CNT (1L<<16)
+#define BCE_TDMA_STATUS_BURST_CNT (1L<<17)
+
+#define BCE_TDMA_CONFIG 0x00005c08
+#define BCE_TDMA_CONFIG_ONE_DMA (1L<<0)
+#define BCE_TDMA_CONFIG_ONE_RECORD (1L<<1)
+#define BCE_TDMA_CONFIG_LIMIT_SZ (0xfL<<4)
+#define BCE_TDMA_CONFIG_LIMIT_SZ_64 (0L<<4)
+#define BCE_TDMA_CONFIG_LIMIT_SZ_128 (0x4L<<4)
+#define BCE_TDMA_CONFIG_LIMIT_SZ_256 (0x6L<<4)
+#define BCE_TDMA_CONFIG_LIMIT_SZ_512 (0x8L<<4)
+#define BCE_TDMA_CONFIG_LINE_SZ (0xfL<<8)
+#define BCE_TDMA_CONFIG_LINE_SZ_64 (0L<<8)
+#define BCE_TDMA_CONFIG_LINE_SZ_128 (4L<<8)
+#define BCE_TDMA_CONFIG_LINE_SZ_256 (6L<<8)
+#define BCE_TDMA_CONFIG_LINE_SZ_512 (8L<<8)
+#define BCE_TDMA_CONFIG_ALIGN_ENA (1L<<15)
+#define BCE_TDMA_CONFIG_CHK_L2_BD (1L<<16)
+#define BCE_TDMA_CONFIG_FIFO_CMP (0xfL<<20)
+
+#define BCE_TDMA_PAYLOAD_PROD 0x00005c0c
+#define BCE_TDMA_PAYLOAD_PROD_VALUE (0x1fffL<<3)
+
+#define BCE_TDMA_DBG_WATCHDOG 0x00005c10
+#define BCE_TDMA_DBG_TRIGGER 0x00005c14
+#define BCE_TDMA_DMAD_FSM 0x00005c80
+#define BCE_TDMA_DMAD_FSM_BD_INVLD (1L<<0)
+#define BCE_TDMA_DMAD_FSM_PUSH (0xfL<<4)
+#define BCE_TDMA_DMAD_FSM_ARB_TBDC (0x3L<<8)
+#define BCE_TDMA_DMAD_FSM_ARB_CTX (1L<<12)
+#define BCE_TDMA_DMAD_FSM_DR_INTF (1L<<16)
+#define BCE_TDMA_DMAD_FSM_DMAD (0x7L<<20)
+#define BCE_TDMA_DMAD_FSM_BD (0xfL<<24)
+
+#define BCE_TDMA_DMAD_STATUS 0x00005c84
+#define BCE_TDMA_DMAD_STATUS_RHOLD_PUSH_ENTRY (0x3L<<0)
+#define BCE_TDMA_DMAD_STATUS_RHOLD_DMAD_ENTRY (0x3L<<4)
+#define BCE_TDMA_DMAD_STATUS_RHOLD_BD_ENTRY (0x3L<<8)
+#define BCE_TDMA_DMAD_STATUS_IFTQ_ENUM (0xfL<<12)
+
+#define BCE_TDMA_DR_INTF_FSM 0x00005c88
+#define BCE_TDMA_DR_INTF_FSM_L2_COMP (0x3L<<0)
+#define BCE_TDMA_DR_INTF_FSM_TPATQ (0x7L<<4)
+#define BCE_TDMA_DR_INTF_FSM_TPBUF (0x3L<<8)
+#define BCE_TDMA_DR_INTF_FSM_DR_BUF (0x7L<<12)
+#define BCE_TDMA_DR_INTF_FSM_DMAD (0x7L<<16)
+
+#define BCE_TDMA_DR_INTF_STATUS 0x00005c8c
+#define BCE_TDMA_DR_INTF_STATUS_HOLE_PHASE (0x7L<<0)
+#define BCE_TDMA_DR_INTF_STATUS_DATA_AVAIL (0x3L<<4)
+#define BCE_TDMA_DR_INTF_STATUS_SHIFT_ADDR (0x7L<<8)
+#define BCE_TDMA_DR_INTF_STATUS_NXT_PNTR (0xfL<<12)
+#define BCE_TDMA_DR_INTF_STATUS_BYTE_COUNT (0x7L<<16)
+
+#define BCE_TDMA_FTQ_DATA 0x00005fc0
+#define BCE_TDMA_FTQ_CMD 0x00005ff8
+#define BCE_TDMA_FTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_TDMA_FTQ_CMD_WR_TOP (1L<<10)
+#define BCE_TDMA_FTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_TDMA_FTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_TDMA_FTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_TDMA_FTQ_CMD_RD_DATA (1L<<26)
+#define BCE_TDMA_FTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_TDMA_FTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_TDMA_FTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_TDMA_FTQ_CMD_POP (1L<<30)
+#define BCE_TDMA_FTQ_CMD_BUSY (1L<<31)
+
+#define BCE_TDMA_FTQ_CTL 0x00005ffc
+#define BCE_TDMA_FTQ_CTL_INTERVENE (1L<<0)
+#define BCE_TDMA_FTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_TDMA_FTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_TDMA_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_TDMA_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+
+/*
+ * nvm_reg definition
+ * offset: 0x6400
+ */
+#define BCE_NVM_COMMAND 0x00006400
+#define BCE_NVM_COMMAND_RST (1L<<0)
+#define BCE_NVM_COMMAND_DONE (1L<<3)
+#define BCE_NVM_COMMAND_DOIT (1L<<4)
+#define BCE_NVM_COMMAND_WR (1L<<5)
+#define BCE_NVM_COMMAND_ERASE (1L<<6)
+#define BCE_NVM_COMMAND_FIRST (1L<<7)
+#define BCE_NVM_COMMAND_LAST (1L<<8)
+#define BCE_NVM_COMMAND_WREN (1L<<16)
+#define BCE_NVM_COMMAND_WRDI (1L<<17)
+#define BCE_NVM_COMMAND_EWSR (1L<<18)
+#define BCE_NVM_COMMAND_WRSR (1L<<19)
+
+#define BCE_NVM_STATUS 0x00006404
+#define BCE_NVM_STATUS_PI_FSM_STATE (0xfL<<0)
+#define BCE_NVM_STATUS_EE_FSM_STATE (0xfL<<4)
+#define BCE_NVM_STATUS_EQ_FSM_STATE (0xfL<<8)
+
+#define BCE_NVM_WRITE 0x00006408
+#define BCE_NVM_WRITE_NVM_WRITE_VALUE (0xffffffffL<<0)
+#define BCE_NVM_WRITE_NVM_WRITE_VALUE_BIT_BANG (0L<<0)
+#define BCE_NVM_WRITE_NVM_WRITE_VALUE_EECLK (1L<<0)
+#define BCE_NVM_WRITE_NVM_WRITE_VALUE_EEDATA (2L<<0)
+#define BCE_NVM_WRITE_NVM_WRITE_VALUE_SCLK (4L<<0)
+#define BCE_NVM_WRITE_NVM_WRITE_VALUE_CS_B (8L<<0)
+#define BCE_NVM_WRITE_NVM_WRITE_VALUE_SO (16L<<0)
+#define BCE_NVM_WRITE_NVM_WRITE_VALUE_SI (32L<<0)
+
+#define BCE_NVM_ADDR 0x0000640c
+#define BCE_NVM_ADDR_NVM_ADDR_VALUE (0xffffffL<<0)
+#define BCE_NVM_ADDR_NVM_ADDR_VALUE_BIT_BANG (0L<<0)
+#define BCE_NVM_ADDR_NVM_ADDR_VALUE_EECLK (1L<<0)
+#define BCE_NVM_ADDR_NVM_ADDR_VALUE_EEDATA (2L<<0)
+#define BCE_NVM_ADDR_NVM_ADDR_VALUE_SCLK (4L<<0)
+#define BCE_NVM_ADDR_NVM_ADDR_VALUE_CS_B (8L<<0)
+#define BCE_NVM_ADDR_NVM_ADDR_VALUE_SO (16L<<0)
+#define BCE_NVM_ADDR_NVM_ADDR_VALUE_SI (32L<<0)
+
+#define BCE_NVM_READ 0x00006410
+#define BCE_NVM_READ_NVM_READ_VALUE (0xffffffffL<<0)
+#define BCE_NVM_READ_NVM_READ_VALUE_BIT_BANG (0L<<0)
+#define BCE_NVM_READ_NVM_READ_VALUE_EECLK (1L<<0)
+#define BCE_NVM_READ_NVM_READ_VALUE_EEDATA (2L<<0)
+#define BCE_NVM_READ_NVM_READ_VALUE_SCLK (4L<<0)
+#define BCE_NVM_READ_NVM_READ_VALUE_CS_B (8L<<0)
+#define BCE_NVM_READ_NVM_READ_VALUE_SO (16L<<0)
+#define BCE_NVM_READ_NVM_READ_VALUE_SI (32L<<0)
+
+#define BCE_NVM_CFG1 0x00006414
+#define BCE_NVM_CFG1_FLASH_MODE (1L<<0)
+#define BCE_NVM_CFG1_BUFFER_MODE (1L<<1)
+#define BCE_NVM_CFG1_PASS_MODE (1L<<2)
+#define BCE_NVM_CFG1_BITBANG_MODE (1L<<3)
+#define BCE_NVM_CFG1_STATUS_BIT (0x7L<<4)
+#define BCE_NVM_CFG1_STATUS_BIT_FLASH_RDY (0L<<4)
+#define BCE_NVM_CFG1_STATUS_BIT_BUFFER_RDY (7L<<4)
+#define BCE_NVM_CFG1_SPI_CLK_DIV (0xfL<<7)
+#define BCE_NVM_CFG1_SEE_CLK_DIV (0x7ffL<<11)
+#define BCE_NVM_CFG1_PROTECT_MODE (1L<<24)
+#define BCE_NVM_CFG1_FLASH_SIZE (1L<<25)
+#define BCE_NVM_CFG1_COMPAT_BYPASSS (1L<<31)
+
+#define BCE_NVM_CFG2 0x00006418
+#define BCE_NVM_CFG2_ERASE_CMD (0xffL<<0)
+#define BCE_NVM_CFG2_DUMMY (0xffL<<8)
+#define BCE_NVM_CFG2_STATUS_CMD (0xffL<<16)
+
+#define BCE_NVM_CFG3 0x0000641c
+#define BCE_NVM_CFG3_BUFFER_RD_CMD (0xffL<<0)
+#define BCE_NVM_CFG3_WRITE_CMD (0xffL<<8)
+#define BCE_NVM_CFG3_BUFFER_WRITE_CMD (0xffL<<16)
+#define BCE_NVM_CFG3_READ_CMD (0xffL<<24)
+
+#define BCE_NVM_SW_ARB 0x00006420
+#define BCE_NVM_SW_ARB_ARB_REQ_SET0 (1L<<0)
+#define BCE_NVM_SW_ARB_ARB_REQ_SET1 (1L<<1)
+#define BCE_NVM_SW_ARB_ARB_REQ_SET2 (1L<<2)
+#define BCE_NVM_SW_ARB_ARB_REQ_SET3 (1L<<3)
+#define BCE_NVM_SW_ARB_ARB_REQ_CLR0 (1L<<4)
+#define BCE_NVM_SW_ARB_ARB_REQ_CLR1 (1L<<5)
+#define BCE_NVM_SW_ARB_ARB_REQ_CLR2 (1L<<6)
+#define BCE_NVM_SW_ARB_ARB_REQ_CLR3 (1L<<7)
+#define BCE_NVM_SW_ARB_ARB_ARB0 (1L<<8)
+#define BCE_NVM_SW_ARB_ARB_ARB1 (1L<<9)
+#define BCE_NVM_SW_ARB_ARB_ARB2 (1L<<10)
+#define BCE_NVM_SW_ARB_ARB_ARB3 (1L<<11)
+#define BCE_NVM_SW_ARB_REQ0 (1L<<12)
+#define BCE_NVM_SW_ARB_REQ1 (1L<<13)
+#define BCE_NVM_SW_ARB_REQ2 (1L<<14)
+#define BCE_NVM_SW_ARB_REQ3 (1L<<15)
+
+#define BCE_NVM_ACCESS_ENABLE 0x00006424
+#define BCE_NVM_ACCESS_ENABLE_EN (1L<<0)
+#define BCE_NVM_ACCESS_ENABLE_WR_EN (1L<<1)
+
+#define BCE_NVM_WRITE1 0x00006428
+#define BCE_NVM_WRITE1_WREN_CMD (0xffL<<0)
+#define BCE_NVM_WRITE1_WRDI_CMD (0xffL<<8)
+#define BCE_NVM_WRITE1_SR_DATA (0xffL<<16)
+
+
+/*
+ * hc_reg definition
+ * offset: 0x6800
+ */
+#define BCE_HC_COMMAND 0x00006800
+#define BCE_HC_COMMAND_ENABLE (1L<<0)
+#define BCE_HC_COMMAND_SKIP_ABORT (1L<<4)
+#define BCE_HC_COMMAND_COAL_NOW (1L<<16)
+#define BCE_HC_COMMAND_COAL_NOW_WO_INT (1L<<17)
+#define BCE_HC_COMMAND_STATS_NOW (1L<<18)
+#define BCE_HC_COMMAND_FORCE_INT (0x3L<<19)
+#define BCE_HC_COMMAND_FORCE_INT_NULL (0L<<19)
+#define BCE_HC_COMMAND_FORCE_INT_HIGH (1L<<19)
+#define BCE_HC_COMMAND_FORCE_INT_LOW (2L<<19)
+#define BCE_HC_COMMAND_FORCE_INT_FREE (3L<<19)
+#define BCE_HC_COMMAND_CLR_STAT_NOW (1L<<21)
+#define BCE_HC_COMMAND_MAIN_PWR_INT (1L<<22)
+#define BCE_HC_COMMAND_COAL_ON_NEXT_EVENT (1L<<27)
+
+#define BCE_HC_STATUS 0x00006804
+#define BCE_HC_STATUS_MASTER_ABORT (1L<<0)
+#define BCE_HC_STATUS_PARITY_ERROR_STATE (1L<<1)
+#define BCE_HC_STATUS_PCI_CLK_CNT_STAT (1L<<16)
+#define BCE_HC_STATUS_CORE_CLK_CNT_STAT (1L<<17)
+#define BCE_HC_STATUS_NUM_STATUS_BLOCKS_STAT (1L<<18)
+#define BCE_HC_STATUS_NUM_INT_GEN_STAT (1L<<19)
+#define BCE_HC_STATUS_NUM_INT_MBOX_WR_STAT (1L<<20)
+#define BCE_HC_STATUS_CORE_CLKS_TO_HW_INTACK_STAT (1L<<23)
+#define BCE_HC_STATUS_CORE_CLKS_TO_SW_INTACK_STAT (1L<<24)
+#define BCE_HC_STATUS_CORE_CLKS_DURING_SW_INTACK_STAT (1L<<25)
+
+#define BCE_HC_CONFIG 0x00006808
+#define BCE_HC_CONFIG_COLLECT_STATS (1L<<0)
+#define BCE_HC_CONFIG_RX_TMR_MODE (1L<<1)
+#define BCE_HC_CONFIG_TX_TMR_MODE (1L<<2)
+#define BCE_HC_CONFIG_COM_TMR_MODE (1L<<3)
+#define BCE_HC_CONFIG_CMD_TMR_MODE (1L<<4)
+#define BCE_HC_CONFIG_STATISTIC_PRIORITY (1L<<5)
+#define BCE_HC_CONFIG_STATUS_PRIORITY (1L<<6)
+#define BCE_HC_CONFIG_STAT_MEM_ADDR (0xffL<<8)
+#define BCE_HC_CONFIG_PER_MODE (1L<<16)
+#define BCE_HC_CONFIG_ONE_SHOT (1L<<17)
+#define BCE_HC_CONFIG_USE_INT_PARAM (1L<<18)
+#define BCE_HC_CONFIG_SET_MASK_AT_RD (1L<<19)
+#define BCE_HC_CONFIG_PER_COLLECT_LIMIT (0xfL<<20)
+#define BCE_HC_CONFIG_SB_ADDR_INC (0x7L<<24)
+#define BCE_HC_CONFIG_SB_ADDR_INC_64B (0L<<24)
+#define BCE_HC_CONFIG_SB_ADDR_INC_128B (1L<<24)
+#define BCE_HC_CONFIG_SB_ADDR_INC_256B (2L<<24)
+#define BCE_HC_CONFIG_SB_ADDR_INC_512B (3L<<24)
+#define BCE_HC_CONFIG_SB_ADDR_INC_1024B (4L<<24)
+#define BCE_HC_CONFIG_SB_ADDR_INC_2048B (5L<<24)
+#define BCE_HC_CONFIG_SB_ADDR_INC_4096B (6L<<24)
+#define BCE_HC_CONFIG_SB_ADDR_INC_8192B (7L<<24)
+#define BCE_HC_CONFIG_GEN_STAT_AVG_INTR (1L<<29)
+#define BCE_HC_CONFIG_UNMASK_ALL (1L<<30)
+#define BCE_HC_CONFIG_TX_SEL (1L<<31)
+
+#define BCE_HC_ATTN_BITS_ENABLE 0x0000680c
+#define BCE_HC_STATUS_ADDR_L 0x00006810
+#define BCE_HC_STATUS_ADDR_H 0x00006814
+#define BCE_HC_STATISTICS_ADDR_L 0x00006818
+#define BCE_HC_STATISTICS_ADDR_H 0x0000681c
+#define BCE_HC_TX_QUICK_CONS_TRIP 0x00006820
+#define BCE_HC_TX_QUICK_CONS_TRIP_VALUE (0xffL<<0)
+#define BCE_HC_TX_QUICK_CONS_TRIP_INT (0xffL<<16)
+
+#define BCE_HC_COMP_PROD_TRIP 0x00006824
+#define BCE_HC_COMP_PROD_TRIP_VALUE (0xffL<<0)
+#define BCE_HC_COMP_PROD_TRIP_INT (0xffL<<16)
+
+#define BCE_HC_RX_QUICK_CONS_TRIP 0x00006828
+#define BCE_HC_RX_QUICK_CONS_TRIP_VALUE (0xffL<<0)
+#define BCE_HC_RX_QUICK_CONS_TRIP_INT (0xffL<<16)
+
+#define BCE_HC_RX_TICKS 0x0000682c
+#define BCE_HC_RX_TICKS_VALUE (0x3ffL<<0)
+#define BCE_HC_RX_TICKS_INT (0x3ffL<<16)
+
+#define BCE_HC_TX_TICKS 0x00006830
+#define BCE_HC_TX_TICKS_VALUE (0x3ffL<<0)
+#define BCE_HC_TX_TICKS_INT (0x3ffL<<16)
+
+#define BCE_HC_COM_TICKS 0x00006834
+#define BCE_HC_COM_TICKS_VALUE (0x3ffL<<0)
+#define BCE_HC_COM_TICKS_INT (0x3ffL<<16)
+
+#define BCE_HC_CMD_TICKS 0x00006838
+#define BCE_HC_CMD_TICKS_VALUE (0x3ffL<<0)
+#define BCE_HC_CMD_TICKS_INT (0x3ffL<<16)
+
+#define BCE_HC_PERIODIC_TICKS 0x0000683c
+#define BCE_HC_PERIODIC_TICKS_HC_PERIODIC_TICKS (0xffffL<<0)
+#define BCE_HC_PERIODIC_TICKS_HC_INT_PERIODIC_TICKS (0xffffL<<16)
+
+#define BCE_HC_STAT_COLLECT_TICKS 0x00006840
+#define BCE_HC_STAT_COLLECT_TICKS_HC_STAT_COLL_TICKS (0xffL<<4)
+
+#define BCE_HC_STATS_TICKS 0x00006844
+#define BCE_HC_STATS_TICKS_HC_STAT_TICKS (0xffffL<<8)
+
+#define BCE_HC_STATS_INTERRUPT_STATUS 0x00006848
+#define BCE_HC_STATS_INTERRUPT_STATUS_SB_STATUS (0x1ffL<<0)
+#define BCE_HC_STATS_INTERRUPT_STATUS_INT_STATUS (0x1ffL<<16)
+
+#define BCE_HC_STAT_MEM_DATA 0x0000684c
+#define BCE_HC_STAT_GEN_SEL_0 0x00006850
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0 (0x7fL<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT0 (0L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT1 (1L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT2 (2L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT3 (3L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT4 (4L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT5 (5L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT6 (6L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT7 (7L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT8 (8L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT9 (9L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT10 (10L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXP_STAT11 (11L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT0 (12L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT1 (13L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT2 (14L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT3 (15L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT4 (16L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT5 (17L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT6 (18L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXP_STAT7 (19L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT0 (20L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT1 (21L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT2 (22L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT3 (23L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT4 (24L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT5 (25L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT6 (26L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT7 (27L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT8 (28L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT9 (29L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT10 (30L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COM_STAT11 (31L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT0 (32L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT1 (33L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT2 (34L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPAT_STAT3 (35L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT0 (36L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT1 (37L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT2 (38L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT3 (39L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT4 (40L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT5 (41L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT6 (42L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CP_STAT7 (43L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT0 (44L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT1 (45L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT2 (46L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT3 (47L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT4 (48L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT5 (49L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT6 (50L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MCP_STAT7 (51L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_PCI_CLK_CNT (52L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CORE_CLK_CNT (53L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_STATUS_BLOCKS (54L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_GEN (55L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_MBOX_WR (56L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_HW_INTACK (59L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_SW_INTACK (60L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_DURING_SW_INTACK (61L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TSCH_CMD_CNT (62L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TSCH_SLOT_CNT (63L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CSCH_CMD_CNT (64L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CSCH_SLOT_CNT (65L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RLUPQ_VALID_CNT (66L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXPQ_VALID_CNT (67L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RXPCQ_VALID_CNT (68L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PPQ_VALID_CNT (69L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PMQ_VALID_CNT (70L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PTQ_VALID_CNT (71L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RDMAQ_VALID_CNT (72L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TSCHQ_VALID_CNT (73L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TBDRQ_VALID_CNT (74L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TXPQ_VALID_CNT (75L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TDMAQ_VALID_CNT (76L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TPATQ_VALID_CNT (77L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TASQ_VALID_CNT (78L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CSQ_VALID_CNT (79L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CPQ_VALID_CNT (80L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMXQ_VALID_CNT (81L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMTQ_VALID_CNT (82L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_COMQ_VALID_CNT (83L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MGMQ_VALID_CNT (84L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_READ_TRANSFERS_CNT (85L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_READ_DELAY_PCI_CLKS_CNT (86L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_READ_TRANSFERS_CNT (87L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_READ_DELAY_PCI_CLKS_CNT (88L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_READ_RETRY_AFTER_DATA_CNT (89L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_WRITE_TRANSFERS_CNT (90L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_WRITE_DELAY_PCI_CLKS_CNT (91L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_WRITE_TRANSFERS_CNT (92L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_WRITE_DELAY_PCI_CLKS_CNT (93L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_DMAE_BIG_WRITE_RETRY_AFTER_DATA_CNT (94L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_WR_CNT64 (95L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_RD_CNT64 (96L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_ACC_STALL_CLKS (97L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_LOCK_STALL_CLKS (98L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MBQ_CTX_ACCESS_STAT (99L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MBQ_CTX_ACCESS64_STAT (100L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MBQ_PCI_STALL_STAT (101L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TBDR_FTQ_ENTRY_CNT (102L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TBDR_BURST_CNT (103L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TDMA_FTQ_ENTRY_CNT (104L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TDMA_BURST_CNT (105L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RDMA_FTQ_ENTRY_CNT (106L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RDMA_BURST_CNT (107L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RLUP_MATCH_CNT (108L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_POLL_PASS_CNT (109L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR1_CNT (110L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR2_CNT (111L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR3_CNT (112L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR4_CNT (113L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_TMR_TMR5_CNT (114L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT0 (115L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT1 (116L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT2 (117L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT3 (118L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT4 (119L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2P_STAT5 (120L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RBDC_PROC1_MISS (121L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RBDC_PROC2_MISS (122L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RBDC_BURST_CNT (127L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_1 (0x7fL<<8)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_2 (0x7fL<<16)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_3 (0x7fL<<24)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_XI (0xffL<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UMP_RX_FRAME_DROP_XI (52L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UNUSED_S0_XI (57L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UNUSED_S1_XI (58L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UNUSED_S2_XI (85L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UNUSED_S3_XI (86L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UNUSED_S4_XI (87L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UNUSED_S5_XI (88L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UNUSED_S6_XI (89L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UNUSED_S7_XI (90L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UNUSED_S8_XI (91L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UNUSED_S9_XI (92L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_UNUSED_S10_XI (93L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_MQ_IDB_OFLOW_XI (94L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_BLK_RD_CNT_XI (123L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_BLK_WR_CNT_XI (124L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_HITS_XI (125L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_CTX_MISSES_XI (126L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_STATUS_BLOCKS_VEC1_XI (128L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_GEN_VEC1_XI (129L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_MBOX_WR_VEC1_XI (130L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_HW_INTACK_VEC1_XI (131L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_SW_INTACK_VEC1_XI (132L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_DURING_SW_INTACK_VEC1_XI (133L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_STATUS_BLOCKS_VEC2_XI (134L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_GEN_VEC2_XI (135L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_MBOX_WR_VEC2_XI (136L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_HW_INTACK_VEC2_XI (137L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_SW_INTACK_VEC2_XI (138L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_DURING_SW_INTACK_VEC2_XI (139L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_STATUS_BLOCKS_VEC3_XI (140L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_GEN_VEC3_XI (141L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_MBOX_WR_VEC3_XI (142L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_HW_INTACK_VEC3_XI (143L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_SW_INTACK_VEC3_XI (144L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_DURING_SW_INTACK_VEC3_XI (145L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_STATUS_BLOCKS_VEC4_XI (146L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_GEN_VEC4_XI (147L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_MBOX_WR_VEC4_XI (148L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_HW_INTACK_VEC4_XI (149L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_SW_INTACK_VEC4_XI (150L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_DURING_SW_INTACK_VEC4_XI (151L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_STATUS_BLOCKS_VEC5_XI (152L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_GEN_VEC5_XI (153L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_MBOX_WR_VEC5_XI (154L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_HW_INTACK_VEC5_XI (155L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_SW_INTACK_VEC5_XI (156L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_DURING_SW_INTACK_VEC5_XI (157L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_STATUS_BLOCKS_VEC6_XI (158L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_GEN_VEC6_XI (159L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_MBOX_WR_VEC6_XI (160L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_HW_INTACK_VEC6_XI (161L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_SW_INTACK_VEC6_XI (162L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_DURING_SW_INTACK_VEC6_XI (163L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_STATUS_BLOCKS_VEC7_XI (164L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_GEN_VEC7_XI (165L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_MBOX_WR_VEC7_XI (166L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_HW_INTACK_VEC7_XI (167L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_SW_INTACK_VEC7_XI (168L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_DURING_SW_INTACK_VEC7_XI (169L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_STATUS_BLOCKS_VEC8_XI (170L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_GEN_VEC8_XI (171L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_NUM_INT_MBOX_WR_VEC8_XI (172L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_HW_INTACK_VEC8_XI (173L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_TO_SW_INTACK_VEC8_XI (174L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_HC_CORE_CLKS_DURING_SW_INTACK_VEC8_XI (175L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PCS_CMD_CNT_XI (176L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PCS_SLOT_CNT_XI (177L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_0_RV2PCSQ_VALID_CNT_XI (178L<<0)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_1_XI (0xffL<<8)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_2_XI (0xffL<<16)
+#define BCE_HC_STAT_GEN_SEL_0_GEN_SEL_3_XI (0xffL<<24)
+
+#define BCE_HC_STAT_GEN_SEL_1 0x00006854
+#define BCE_HC_STAT_GEN_SEL_1_GEN_SEL_4 (0x7fL<<0)
+#define BCE_HC_STAT_GEN_SEL_1_GEN_SEL_5 (0x7fL<<8)
+#define BCE_HC_STAT_GEN_SEL_1_GEN_SEL_6 (0x7fL<<16)
+#define BCE_HC_STAT_GEN_SEL_1_GEN_SEL_7 (0x7fL<<24)
+#define BCE_HC_STAT_GEN_SEL_1_GEN_SEL_4_XI (0xffL<<0)
+#define BCE_HC_STAT_GEN_SEL_1_GEN_SEL_5_XI (0xffL<<8)
+#define BCE_HC_STAT_GEN_SEL_1_GEN_SEL_6_XI (0xffL<<16)
+#define BCE_HC_STAT_GEN_SEL_1_GEN_SEL_7_XI (0xffL<<24)
+
+#define BCE_HC_STAT_GEN_SEL_2 0x00006858
+#define BCE_HC_STAT_GEN_SEL_2_GEN_SEL_8 (0x7fL<<0)
+#define BCE_HC_STAT_GEN_SEL_2_GEN_SEL_9 (0x7fL<<8)
+#define BCE_HC_STAT_GEN_SEL_2_GEN_SEL_10 (0x7fL<<16)
+#define BCE_HC_STAT_GEN_SEL_2_GEN_SEL_11 (0x7fL<<24)
+#define BCE_HC_STAT_GEN_SEL_2_GEN_SEL_8_XI (0xffL<<0)
+#define BCE_HC_STAT_GEN_SEL_2_GEN_SEL_9_XI (0xffL<<8)
+#define BCE_HC_STAT_GEN_SEL_2_GEN_SEL_10_XI (0xffL<<16)
+#define BCE_HC_STAT_GEN_SEL_2_GEN_SEL_11_XI (0xffL<<24)
+
+#define BCE_HC_STAT_GEN_SEL_3 0x0000685c
+#define BCE_HC_STAT_GEN_SEL_3_GEN_SEL_12 (0x7fL<<0)
+#define BCE_HC_STAT_GEN_SEL_3_GEN_SEL_13 (0x7fL<<8)
+#define BCE_HC_STAT_GEN_SEL_3_GEN_SEL_14 (0x7fL<<16)
+#define BCE_HC_STAT_GEN_SEL_3_GEN_SEL_15 (0x7fL<<24)
+#define BCE_HC_STAT_GEN_SEL_3_GEN_SEL_12_XI (0xffL<<0)
+#define BCE_HC_STAT_GEN_SEL_3_GEN_SEL_13_XI (0xffL<<8)
+#define BCE_HC_STAT_GEN_SEL_3_GEN_SEL_14_XI (0xffL<<16)
+#define BCE_HC_STAT_GEN_SEL_3_GEN_SEL_15_XI (0xffL<<24)
+
+#define BCE_HC_STAT_GEN_STAT0 0x00006888
+#define BCE_HC_STAT_GEN_STAT1 0x0000688c
+#define BCE_HC_STAT_GEN_STAT2 0x00006890
+#define BCE_HC_STAT_GEN_STAT3 0x00006894
+#define BCE_HC_STAT_GEN_STAT4 0x00006898
+#define BCE_HC_STAT_GEN_STAT5 0x0000689c
+#define BCE_HC_STAT_GEN_STAT6 0x000068a0
+#define BCE_HC_STAT_GEN_STAT7 0x000068a4
+#define BCE_HC_STAT_GEN_STAT8 0x000068a8
+#define BCE_HC_STAT_GEN_STAT9 0x000068ac
+#define BCE_HC_STAT_GEN_STAT10 0x000068b0
+#define BCE_HC_STAT_GEN_STAT11 0x000068b4
+#define BCE_HC_STAT_GEN_STAT12 0x000068b8
+#define BCE_HC_STAT_GEN_STAT13 0x000068bc
+#define BCE_HC_STAT_GEN_STAT14 0x000068c0
+#define BCE_HC_STAT_GEN_STAT15 0x000068c4
+#define BCE_HC_STAT_GEN_STAT_AC0 0x000068c8
+#define BCE_HC_STAT_GEN_STAT_AC1 0x000068cc
+#define BCE_HC_STAT_GEN_STAT_AC2 0x000068d0
+#define BCE_HC_STAT_GEN_STAT_AC3 0x000068d4
+#define BCE_HC_STAT_GEN_STAT_AC4 0x000068d8
+#define BCE_HC_STAT_GEN_STAT_AC5 0x000068dc
+#define BCE_HC_STAT_GEN_STAT_AC6 0x000068e0
+#define BCE_HC_STAT_GEN_STAT_AC7 0x000068e4
+#define BCE_HC_STAT_GEN_STAT_AC8 0x000068e8
+#define BCE_HC_STAT_GEN_STAT_AC9 0x000068ec
+#define BCE_HC_STAT_GEN_STAT_AC10 0x000068f0
+#define BCE_HC_STAT_GEN_STAT_AC11 0x000068f4
+#define BCE_HC_STAT_GEN_STAT_AC12 0x000068f8
+#define BCE_HC_STAT_GEN_STAT_AC13 0x000068fc
+#define BCE_HC_STAT_GEN_STAT_AC14 0x00006900
+#define BCE_HC_STAT_GEN_STAT_AC15 0x00006904
+#define BCE_HC_STAT_GEN_STAT_AC 0x000068c8
+#define BCE_HC_VIS 0x00006908
+#define BCE_HC_VIS_STAT_BUILD_STATE (0xfL<<0)
+#define BCE_HC_VIS_STAT_BUILD_STATE_IDLE (0L<<0)
+#define BCE_HC_VIS_STAT_BUILD_STATE_START (1L<<0)
+#define BCE_HC_VIS_STAT_BUILD_STATE_REQUEST (2L<<0)
+#define BCE_HC_VIS_STAT_BUILD_STATE_UPDATE64 (3L<<0)
+#define BCE_HC_VIS_STAT_BUILD_STATE_UPDATE32 (4L<<0)
+#define BCE_HC_VIS_STAT_BUILD_STATE_UPDATE_DONE (5L<<0)
+#define BCE_HC_VIS_STAT_BUILD_STATE_DMA (6L<<0)
+#define BCE_HC_VIS_STAT_BUILD_STATE_MSI_CONTROL (7L<<0)
+#define BCE_HC_VIS_STAT_BUILD_STATE_MSI_LOW (8L<<0)
+#define BCE_HC_VIS_STAT_BUILD_STATE_MSI_HIGH (9L<<0)
+#define BCE_HC_VIS_STAT_BUILD_STATE_MSI_DATA (10L<<0)
+#define BCE_HC_VIS_DMA_STAT_STATE (0xfL<<8)
+#define BCE_HC_VIS_DMA_STAT_STATE_IDLE (0L<<8)
+#define BCE_HC_VIS_DMA_STAT_STATE_STATUS_PARAM (1L<<8)
+#define BCE_HC_VIS_DMA_STAT_STATE_STATUS_DMA (2L<<8)
+#define BCE_HC_VIS_DMA_STAT_STATE_WRITE_COMP (3L<<8)
+#define BCE_HC_VIS_DMA_STAT_STATE_COMP (4L<<8)
+#define BCE_HC_VIS_DMA_STAT_STATE_STATISTIC_PARAM (5L<<8)
+#define BCE_HC_VIS_DMA_STAT_STATE_STATISTIC_DMA (6L<<8)
+#define BCE_HC_VIS_DMA_STAT_STATE_WRITE_COMP_1 (7L<<8)
+#define BCE_HC_VIS_DMA_STAT_STATE_WRITE_COMP_2 (8L<<8)
+#define BCE_HC_VIS_DMA_STAT_STATE_WAIT (9L<<8)
+#define BCE_HC_VIS_DMA_STAT_STATE_ABORT (15L<<8)
+#define BCE_HC_VIS_DMA_MSI_STATE (0x7L<<12)
+#define BCE_HC_VIS_STATISTIC_DMA_EN_STATE (0x3L<<15)
+#define BCE_HC_VIS_STATISTIC_DMA_EN_STATE_IDLE (0L<<15)
+#define BCE_HC_VIS_STATISTIC_DMA_EN_STATE_COUNT (1L<<15)
+#define BCE_HC_VIS_STATISTIC_DMA_EN_STATE_START (2L<<15)
+
+#define BCE_HC_VIS_1 0x0000690c
+#define BCE_HC_VIS_1_HW_INTACK_STATE (1L<<4)
+#define BCE_HC_VIS_1_HW_INTACK_STATE_IDLE (0L<<4)
+#define BCE_HC_VIS_1_HW_INTACK_STATE_COUNT (1L<<4)
+#define BCE_HC_VIS_1_SW_INTACK_STATE (1L<<5)
+#define BCE_HC_VIS_1_SW_INTACK_STATE_IDLE (0L<<5)
+#define BCE_HC_VIS_1_SW_INTACK_STATE_COUNT (1L<<5)
+#define BCE_HC_VIS_1_DURING_SW_INTACK_STATE (1L<<6)
+#define BCE_HC_VIS_1_DURING_SW_INTACK_STATE_IDLE (0L<<6)
+#define BCE_HC_VIS_1_DURING_SW_INTACK_STATE_COUNT (1L<<6)
+#define BCE_HC_VIS_1_MAILBOX_COUNT_STATE (1L<<7)
+#define BCE_HC_VIS_1_MAILBOX_COUNT_STATE_IDLE (0L<<7)
+#define BCE_HC_VIS_1_MAILBOX_COUNT_STATE_COUNT (1L<<7)
+#define BCE_HC_VIS_1_RAM_RD_ARB_STATE (0xfL<<17)
+#define BCE_HC_VIS_1_RAM_RD_ARB_STATE_IDLE (0L<<17)
+#define BCE_HC_VIS_1_RAM_RD_ARB_STATE_DMA (1L<<17)
+#define BCE_HC_VIS_1_RAM_RD_ARB_STATE_UPDATE (2L<<17)
+#define BCE_HC_VIS_1_RAM_RD_ARB_STATE_ASSIGN (3L<<17)
+#define BCE_HC_VIS_1_RAM_RD_ARB_STATE_WAIT (4L<<17)
+#define BCE_HC_VIS_1_RAM_RD_ARB_STATE_REG_UPDATE (5L<<17)
+#define BCE_HC_VIS_1_RAM_RD_ARB_STATE_REG_ASSIGN (6L<<17)
+#define BCE_HC_VIS_1_RAM_RD_ARB_STATE_REG_WAIT (7L<<17)
+#define BCE_HC_VIS_1_RAM_WR_ARB_STATE (0x3L<<21)
+#define BCE_HC_VIS_1_RAM_WR_ARB_STATE_NORMAL (0L<<21)
+#define BCE_HC_VIS_1_RAM_WR_ARB_STATE_CLEAR (1L<<21)
+#define BCE_HC_VIS_1_INT_GEN_STATE (1L<<23)
+#define BCE_HC_VIS_1_INT_GEN_STATE_DLE (0L<<23)
+#define BCE_HC_VIS_1_INT_GEN_STATE_NTERRUPT (1L<<23)
+#define BCE_HC_VIS_1_STAT_CHAN_ID (0x7L<<24)
+#define BCE_HC_VIS_1_INT_B (1L<<27)
+
+#define BCE_HC_DEBUG_VECT_PEEK 0x00006910
+#define BCE_HC_DEBUG_VECT_PEEK_1_VALUE (0x7ffL<<0)
+#define BCE_HC_DEBUG_VECT_PEEK_1_PEEK_EN (1L<<11)
+#define BCE_HC_DEBUG_VECT_PEEK_1_SEL (0xfL<<12)
+#define BCE_HC_DEBUG_VECT_PEEK_2_VALUE (0x7ffL<<16)
+#define BCE_HC_DEBUG_VECT_PEEK_2_PEEK_EN (1L<<27)
+#define BCE_HC_DEBUG_VECT_PEEK_2_SEL (0xfL<<28)
+
+#define BCE_HC_COALESCE_NOW 0x00006914
+#define BCE_HC_COALESCE_NOW_COAL_NOW (0x1ffL<<1)
+#define BCE_HC_COALESCE_NOW_COAL_NOW_WO_INT (0x1ffL<<11)
+#define BCE_HC_COALESCE_NOW_COAL_ON_NXT_EVENT (0x1ffL<<21)
+
+#define BCE_HC_MSIX_BIT_VECTOR 0x00006918
+#define BCE_HC_MSIX_BIT_VECTOR_VAL (0x1ffL<<0)
+
+#define BCE_HC_SB_CONFIG_1 0x00006a00
+#define BCE_HC_SB_CONFIG_1_RX_TMR_MODE (1L<<1)
+#define BCE_HC_SB_CONFIG_1_TX_TMR_MODE (1L<<2)
+#define BCE_HC_SB_CONFIG_1_COM_TMR_MODE (1L<<3)
+#define BCE_HC_SB_CONFIG_1_CMD_TMR_MODE (1L<<4)
+#define BCE_HC_SB_CONFIG_1_PER_MODE (1L<<16)
+#define BCE_HC_SB_CONFIG_1_ONE_SHOT (1L<<17)
+#define BCE_HC_SB_CONFIG_1_USE_INT_PARAM (1L<<18)
+#define BCE_HC_SB_CONFIG_1_PER_COLLECT_LIMIT (0xfL<<20)
+
+#define BCE_HC_TX_QUICK_CONS_TRIP_1 0x00006a04
+#define BCE_HC_TX_QUICK_CONS_TRIP_1_VALUE (0xffL<<0)
+#define BCE_HC_TX_QUICK_CONS_TRIP_1_INT (0xffL<<16)
+
+#define BCE_HC_COMP_PROD_TRIP_1 0x00006a08
+#define BCE_HC_COMP_PROD_TRIP_1_VALUE (0xffL<<0)
+#define BCE_HC_COMP_PROD_TRIP_1_INT (0xffL<<16)
+
+#define BCE_HC_RX_QUICK_CONS_TRIP_1 0x00006a0c
+#define BCE_HC_RX_QUICK_CONS_TRIP_1_VALUE (0xffL<<0)
+#define BCE_HC_RX_QUICK_CONS_TRIP_1_INT (0xffL<<16)
+
+#define BCE_HC_RX_TICKS_1 0x00006a10
+#define BCE_HC_RX_TICKS_1_VALUE (0x3ffL<<0)
+#define BCE_HC_RX_TICKS_1_INT (0x3ffL<<16)
+
+#define BCE_HC_TX_TICKS_1 0x00006a14
+#define BCE_HC_TX_TICKS_1_VALUE (0x3ffL<<0)
+#define BCE_HC_TX_TICKS_1_INT (0x3ffL<<16)
+
+#define BCE_HC_COM_TICKS_1 0x00006a18
+#define BCE_HC_COM_TICKS_1_VALUE (0x3ffL<<0)
+#define BCE_HC_COM_TICKS_1_INT (0x3ffL<<16)
+
+#define BCE_HC_CMD_TICKS_1 0x00006a1c
+#define BCE_HC_CMD_TICKS_1_VALUE (0x3ffL<<0)
+#define BCE_HC_CMD_TICKS_1_INT (0x3ffL<<16)
+
+#define BCE_HC_PERIODIC_TICKS_1 0x00006a20
+#define BCE_HC_PERIODIC_TICKS_1_HC_PERIODIC_TICKS (0xffffL<<0)
+#define BCE_HC_PERIODIC_TICKS_1_HC_INT_PERIODIC_TICKS (0xffffL<<16)
+
+#define BCE_HC_SB_CONFIG_2 0x00006a24
+#define BCE_HC_SB_CONFIG_2_RX_TMR_MODE (1L<<1)
+#define BCE_HC_SB_CONFIG_2_TX_TMR_MODE (1L<<2)
+#define BCE_HC_SB_CONFIG_2_COM_TMR_MODE (1L<<3)
+#define BCE_HC_SB_CONFIG_2_CMD_TMR_MODE (1L<<4)
+#define BCE_HC_SB_CONFIG_2_PER_MODE (1L<<16)
+#define BCE_HC_SB_CONFIG_2_ONE_SHOT (1L<<17)
+#define BCE_HC_SB_CONFIG_2_USE_INT_PARAM (1L<<18)
+#define BCE_HC_SB_CONFIG_2_PER_COLLECT_LIMIT (0xfL<<20)
+
+#define BCE_HC_TX_QUICK_CONS_TRIP_2 0x00006a28
+#define BCE_HC_TX_QUICK_CONS_TRIP_2_VALUE (0xffL<<0)
+#define BCE_HC_TX_QUICK_CONS_TRIP_2_INT (0xffL<<16)
+
+#define BCE_HC_COMP_PROD_TRIP_2 0x00006a2c
+#define BCE_HC_COMP_PROD_TRIP_2_VALUE (0xffL<<0)
+#define BCE_HC_COMP_PROD_TRIP_2_INT (0xffL<<16)
+
+#define BCE_HC_RX_QUICK_CONS_TRIP_2 0x00006a30
+#define BCE_HC_RX_QUICK_CONS_TRIP_2_VALUE (0xffL<<0)
+#define BCE_HC_RX_QUICK_CONS_TRIP_2_INT (0xffL<<16)
+
+#define BCE_HC_RX_TICKS_2 0x00006a34
+#define BCE_HC_RX_TICKS_2_VALUE (0x3ffL<<0)
+#define BCE_HC_RX_TICKS_2_INT (0x3ffL<<16)
+
+#define BCE_HC_TX_TICKS_2 0x00006a38
+#define BCE_HC_TX_TICKS_2_VALUE (0x3ffL<<0)
+#define BCE_HC_TX_TICKS_2_INT (0x3ffL<<16)
+
+#define BCE_HC_COM_TICKS_2 0x00006a3c
+#define BCE_HC_COM_TICKS_2_VALUE (0x3ffL<<0)
+#define BCE_HC_COM_TICKS_2_INT (0x3ffL<<16)
+
+#define BCE_HC_CMD_TICKS_2 0x00006a40
+#define BCE_HC_CMD_TICKS_2_VALUE (0x3ffL<<0)
+#define BCE_HC_CMD_TICKS_2_INT (0x3ffL<<16)
+
+#define BCE_HC_PERIODIC_TICKS_2 0x00006a44
+#define BCE_HC_PERIODIC_TICKS_2_HC_PERIODIC_TICKS (0xffffL<<0)
+#define BCE_HC_PERIODIC_TICKS_2_HC_INT_PERIODIC_TICKS (0xffffL<<16)
+
+#define BCE_HC_SB_CONFIG_3 0x00006a48
+#define BCE_HC_SB_CONFIG_3_RX_TMR_MODE (1L<<1)
+#define BCE_HC_SB_CONFIG_3_TX_TMR_MODE (1L<<2)
+#define BCE_HC_SB_CONFIG_3_COM_TMR_MODE (1L<<3)
+#define BCE_HC_SB_CONFIG_3_CMD_TMR_MODE (1L<<4)
+#define BCE_HC_SB_CONFIG_3_PER_MODE (1L<<16)
+#define BCE_HC_SB_CONFIG_3_ONE_SHOT (1L<<17)
+#define BCE_HC_SB_CONFIG_3_USE_INT_PARAM (1L<<18)
+#define BCE_HC_SB_CONFIG_3_PER_COLLECT_LIMIT (0xfL<<20)
+
+#define BCE_HC_TX_QUICK_CONS_TRIP_3 0x00006a4c
+#define BCE_HC_TX_QUICK_CONS_TRIP_3_VALUE (0xffL<<0)
+#define BCE_HC_TX_QUICK_CONS_TRIP_3_INT (0xffL<<16)
+
+#define BCE_HC_COMP_PROD_TRIP_3 0x00006a50
+#define BCE_HC_COMP_PROD_TRIP_3_VALUE (0xffL<<0)
+#define BCE_HC_COMP_PROD_TRIP_3_INT (0xffL<<16)
+
+#define BCE_HC_RX_QUICK_CONS_TRIP_3 0x00006a54
+#define BCE_HC_RX_QUICK_CONS_TRIP_3_VALUE (0xffL<<0)
+#define BCE_HC_RX_QUICK_CONS_TRIP_3_INT (0xffL<<16)
+
+#define BCE_HC_RX_TICKS_3 0x00006a58
+#define BCE_HC_RX_TICKS_3_VALUE (0x3ffL<<0)
+#define BCE_HC_RX_TICKS_3_INT (0x3ffL<<16)
+
+#define BCE_HC_TX_TICKS_3 0x00006a5c
+#define BCE_HC_TX_TICKS_3_VALUE (0x3ffL<<0)
+#define BCE_HC_TX_TICKS_3_INT (0x3ffL<<16)
+
+#define BCE_HC_COM_TICKS_3 0x00006a60
+#define BCE_HC_COM_TICKS_3_VALUE (0x3ffL<<0)
+#define BCE_HC_COM_TICKS_3_INT (0x3ffL<<16)
+
+#define BCE_HC_CMD_TICKS_3 0x00006a64
+#define BCE_HC_CMD_TICKS_3_VALUE (0x3ffL<<0)
+#define BCE_HC_CMD_TICKS_3_INT (0x3ffL<<16)
+
+#define BCE_HC_PERIODIC_TICKS_3 0x00006a68
+#define BCE_HC_PERIODIC_TICKS_3_HC_PERIODIC_TICKS (0xffffL<<0)
+#define BCE_HC_PERIODIC_TICKS_3_HC_INT_PERIODIC_TICKS (0xffffL<<16)
+
+#define BCE_HC_SB_CONFIG_4 0x00006a6c
+#define BCE_HC_SB_CONFIG_4_RX_TMR_MODE (1L<<1)
+#define BCE_HC_SB_CONFIG_4_TX_TMR_MODE (1L<<2)
+#define BCE_HC_SB_CONFIG_4_COM_TMR_MODE (1L<<3)
+#define BCE_HC_SB_CONFIG_4_CMD_TMR_MODE (1L<<4)
+#define BCE_HC_SB_CONFIG_4_PER_MODE (1L<<16)
+#define BCE_HC_SB_CONFIG_4_ONE_SHOT (1L<<17)
+#define BCE_HC_SB_CONFIG_4_USE_INT_PARAM (1L<<18)
+#define BCE_HC_SB_CONFIG_4_PER_COLLECT_LIMIT (0xfL<<20)
+
+#define BCE_HC_TX_QUICK_CONS_TRIP_4 0x00006a70
+#define BCE_HC_TX_QUICK_CONS_TRIP_4_VALUE (0xffL<<0)
+#define BCE_HC_TX_QUICK_CONS_TRIP_4_INT (0xffL<<16)
+
+#define BCE_HC_COMP_PROD_TRIP_4 0x00006a74
+#define BCE_HC_COMP_PROD_TRIP_4_VALUE (0xffL<<0)
+#define BCE_HC_COMP_PROD_TRIP_4_INT (0xffL<<16)
+
+#define BCE_HC_RX_QUICK_CONS_TRIP_4 0x00006a78
+#define BCE_HC_RX_QUICK_CONS_TRIP_4_VALUE (0xffL<<0)
+#define BCE_HC_RX_QUICK_CONS_TRIP_4_INT (0xffL<<16)
+
+#define BCE_HC_RX_TICKS_4 0x00006a7c
+#define BCE_HC_RX_TICKS_4_VALUE (0x3ffL<<0)
+#define BCE_HC_RX_TICKS_4_INT (0x3ffL<<16)
+
+#define BCE_HC_TX_TICKS_4 0x00006a80
+#define BCE_HC_TX_TICKS_4_VALUE (0x3ffL<<0)
+#define BCE_HC_TX_TICKS_4_INT (0x3ffL<<16)
+
+#define BCE_HC_COM_TICKS_4 0x00006a84
+#define BCE_HC_COM_TICKS_4_VALUE (0x3ffL<<0)
+#define BCE_HC_COM_TICKS_4_INT (0x3ffL<<16)
+
+#define BCE_HC_CMD_TICKS_4 0x00006a88
+#define BCE_HC_CMD_TICKS_4_VALUE (0x3ffL<<0)
+#define BCE_HC_CMD_TICKS_4_INT (0x3ffL<<16)
+
+#define BCE_HC_PERIODIC_TICKS_4 0x00006a8c
+#define BCE_HC_PERIODIC_TICKS_4_HC_PERIODIC_TICKS (0xffffL<<0)
+#define BCE_HC_PERIODIC_TICKS_4_HC_INT_PERIODIC_TICKS (0xffffL<<16)
+
+#define BCE_HC_SB_CONFIG_5 0x00006a90
+#define BCE_HC_SB_CONFIG_5_RX_TMR_MODE (1L<<1)
+#define BCE_HC_SB_CONFIG_5_TX_TMR_MODE (1L<<2)
+#define BCE_HC_SB_CONFIG_5_COM_TMR_MODE (1L<<3)
+#define BCE_HC_SB_CONFIG_5_CMD_TMR_MODE (1L<<4)
+#define BCE_HC_SB_CONFIG_5_PER_MODE (1L<<16)
+#define BCE_HC_SB_CONFIG_5_ONE_SHOT (1L<<17)
+#define BCE_HC_SB_CONFIG_5_USE_INT_PARAM (1L<<18)
+#define BCE_HC_SB_CONFIG_5_PER_COLLECT_LIMIT (0xfL<<20)
+
+#define BCE_HC_TX_QUICK_CONS_TRIP_5 0x00006a94
+#define BCE_HC_TX_QUICK_CONS_TRIP_5_VALUE (0xffL<<0)
+#define BCE_HC_TX_QUICK_CONS_TRIP_5_INT (0xffL<<16)
+
+#define BCE_HC_COMP_PROD_TRIP_5 0x00006a98
+#define BCE_HC_COMP_PROD_TRIP_5_VALUE (0xffL<<0)
+#define BCE_HC_COMP_PROD_TRIP_5_INT (0xffL<<16)
+
+#define BCE_HC_RX_QUICK_CONS_TRIP_5 0x00006a9c
+#define BCE_HC_RX_QUICK_CONS_TRIP_5_VALUE (0xffL<<0)
+#define BCE_HC_RX_QUICK_CONS_TRIP_5_INT (0xffL<<16)
+
+#define BCE_HC_RX_TICKS_5 0x00006aa0
+#define BCE_HC_RX_TICKS_5_VALUE (0x3ffL<<0)
+#define BCE_HC_RX_TICKS_5_INT (0x3ffL<<16)
+
+#define BCE_HC_TX_TICKS_5 0x00006aa4
+#define BCE_HC_TX_TICKS_5_VALUE (0x3ffL<<0)
+#define BCE_HC_TX_TICKS_5_INT (0x3ffL<<16)
+
+#define BCE_HC_COM_TICKS_5 0x00006aa8
+#define BCE_HC_COM_TICKS_5_VALUE (0x3ffL<<0)
+#define BCE_HC_COM_TICKS_5_INT (0x3ffL<<16)
+
+#define BCE_HC_CMD_TICKS_5 0x00006aac
+#define BCE_HC_CMD_TICKS_5_VALUE (0x3ffL<<0)
+#define BCE_HC_CMD_TICKS_5_INT (0x3ffL<<16)
+
+#define BCE_HC_PERIODIC_TICKS_5 0x00006ab0
+#define BCE_HC_PERIODIC_TICKS_5_HC_PERIODIC_TICKS (0xffffL<<0)
+#define BCE_HC_PERIODIC_TICKS_5_HC_INT_PERIODIC_TICKS (0xffffL<<16)
+
+#define BCE_HC_SB_CONFIG_6 0x00006ab4
+#define BCE_HC_SB_CONFIG_6_RX_TMR_MODE (1L<<1)
+#define BCE_HC_SB_CONFIG_6_TX_TMR_MODE (1L<<2)
+#define BCE_HC_SB_CONFIG_6_COM_TMR_MODE (1L<<3)
+#define BCE_HC_SB_CONFIG_6_CMD_TMR_MODE (1L<<4)
+#define BCE_HC_SB_CONFIG_6_PER_MODE (1L<<16)
+#define BCE_HC_SB_CONFIG_6_ONE_SHOT (1L<<17)
+#define BCE_HC_SB_CONFIG_6_USE_INT_PARAM (1L<<18)
+#define BCE_HC_SB_CONFIG_6_PER_COLLECT_LIMIT (0xfL<<20)
+
+#define BCE_HC_TX_QUICK_CONS_TRIP_6 0x00006ab8
+#define BCE_HC_TX_QUICK_CONS_TRIP_6_VALUE (0xffL<<0)
+#define BCE_HC_TX_QUICK_CONS_TRIP_6_INT (0xffL<<16)
+
+#define BCE_HC_COMP_PROD_TRIP_6 0x00006abc
+#define BCE_HC_COMP_PROD_TRIP_6_VALUE (0xffL<<0)
+#define BCE_HC_COMP_PROD_TRIP_6_INT (0xffL<<16)
+
+#define BCE_HC_RX_QUICK_CONS_TRIP_6 0x00006ac0
+#define BCE_HC_RX_QUICK_CONS_TRIP_6_VALUE (0xffL<<0)
+#define BCE_HC_RX_QUICK_CONS_TRIP_6_INT (0xffL<<16)
+
+#define BCE_HC_RX_TICKS_6 0x00006ac4
+#define BCE_HC_RX_TICKS_6_VALUE (0x3ffL<<0)
+#define BCE_HC_RX_TICKS_6_INT (0x3ffL<<16)
+
+#define BCE_HC_TX_TICKS_6 0x00006ac8
+#define BCE_HC_TX_TICKS_6_VALUE (0x3ffL<<0)
+#define BCE_HC_TX_TICKS_6_INT (0x3ffL<<16)
+
+#define BCE_HC_COM_TICKS_6 0x00006acc
+#define BCE_HC_COM_TICKS_6_VALUE (0x3ffL<<0)
+#define BCE_HC_COM_TICKS_6_INT (0x3ffL<<16)
+
+#define BCE_HC_CMD_TICKS_6 0x00006ad0
+#define BCE_HC_CMD_TICKS_6_VALUE (0x3ffL<<0)
+#define BCE_HC_CMD_TICKS_6_INT (0x3ffL<<16)
+
+#define BCE_HC_PERIODIC_TICKS_6 0x00006ad4
+#define BCE_HC_PERIODIC_TICKS_6_HC_PERIODIC_TICKS (0xffffL<<0)
+#define BCE_HC_PERIODIC_TICKS_6_HC_INT_PERIODIC_TICKS (0xffffL<<16)
+
+#define BCE_HC_SB_CONFIG_7 0x00006ad8
+#define BCE_HC_SB_CONFIG_7_RX_TMR_MODE (1L<<1)
+#define BCE_HC_SB_CONFIG_7_TX_TMR_MODE (1L<<2)
+#define BCE_HC_SB_CONFIG_7_COM_TMR_MODE (1L<<3)
+#define BCE_HC_SB_CONFIG_7_CMD_TMR_MODE (1L<<4)
+#define BCE_HC_SB_CONFIG_7_PER_MODE (1L<<16)
+#define BCE_HC_SB_CONFIG_7_ONE_SHOT (1L<<17)
+#define BCE_HC_SB_CONFIG_7_USE_INT_PARAM (1L<<18)
+#define BCE_HC_SB_CONFIG_7_PER_COLLECT_LIMIT (0xfL<<20)
+
+#define BCE_HC_TX_QUICK_CONS_TRIP_7 0x00006adc
+#define BCE_HC_TX_QUICK_CONS_TRIP_7_VALUE (0xffL<<0)
+#define BCE_HC_TX_QUICK_CONS_TRIP_7_INT (0xffL<<16)
+
+#define BCE_HC_COMP_PROD_TRIP_7 0x00006ae0
+#define BCE_HC_COMP_PROD_TRIP_7_VALUE (0xffL<<0)
+#define BCE_HC_COMP_PROD_TRIP_7_INT (0xffL<<16)
+
+#define BCE_HC_RX_QUICK_CONS_TRIP_7 0x00006ae4
+#define BCE_HC_RX_QUICK_CONS_TRIP_7_VALUE (0xffL<<0)
+#define BCE_HC_RX_QUICK_CONS_TRIP_7_INT (0xffL<<16)
+
+#define BCE_HC_RX_TICKS_7 0x00006ae8
+#define BCE_HC_RX_TICKS_7_VALUE (0x3ffL<<0)
+#define BCE_HC_RX_TICKS_7_INT (0x3ffL<<16)
+
+#define BCE_HC_TX_TICKS_7 0x00006aec
+#define BCE_HC_TX_TICKS_7_VALUE (0x3ffL<<0)
+#define BCE_HC_TX_TICKS_7_INT (0x3ffL<<16)
+
+#define BCE_HC_COM_TICKS_7 0x00006af0
+#define BCE_HC_COM_TICKS_7_VALUE (0x3ffL<<0)
+#define BCE_HC_COM_TICKS_7_INT (0x3ffL<<16)
+
+#define BCE_HC_CMD_TICKS_7 0x00006af4
+#define BCE_HC_CMD_TICKS_7_VALUE (0x3ffL<<0)
+#define BCE_HC_CMD_TICKS_7_INT (0x3ffL<<16)
+
+#define BCE_HC_PERIODIC_TICKS_7 0x00006af8
+#define BCE_HC_PERIODIC_TICKS_7_HC_PERIODIC_TICKS (0xffffL<<0)
+#define BCE_HC_PERIODIC_TICKS_7_HC_INT_PERIODIC_TICKS (0xffffL<<16)
+
+#define BCE_HC_SB_CONFIG_8 0x00006afc
+#define BCE_HC_SB_CONFIG_8_RX_TMR_MODE (1L<<1)
+#define BCE_HC_SB_CONFIG_8_TX_TMR_MODE (1L<<2)
+#define BCE_HC_SB_CONFIG_8_COM_TMR_MODE (1L<<3)
+#define BCE_HC_SB_CONFIG_8_CMD_TMR_MODE (1L<<4)
+#define BCE_HC_SB_CONFIG_8_PER_MODE (1L<<16)
+#define BCE_HC_SB_CONFIG_8_ONE_SHOT (1L<<17)
+#define BCE_HC_SB_CONFIG_8_USE_INT_PARAM (1L<<18)
+#define BCE_HC_SB_CONFIG_8_PER_COLLECT_LIMIT (0xfL<<20)
+
+#define BCE_HC_TX_QUICK_CONS_TRIP_8 0x00006b00
+#define BCE_HC_TX_QUICK_CONS_TRIP_8_VALUE (0xffL<<0)
+#define BCE_HC_TX_QUICK_CONS_TRIP_8_INT (0xffL<<16)
+
+#define BCE_HC_COMP_PROD_TRIP_8 0x00006b04
+#define BCE_HC_COMP_PROD_TRIP_8_VALUE (0xffL<<0)
+#define BCE_HC_COMP_PROD_TRIP_8_INT (0xffL<<16)
+
+#define BCE_HC_RX_QUICK_CONS_TRIP_8 0x00006b08
+#define BCE_HC_RX_QUICK_CONS_TRIP_8_VALUE (0xffL<<0)
+#define BCE_HC_RX_QUICK_CONS_TRIP_8_INT (0xffL<<16)
+
+#define BCE_HC_RX_TICKS_8 0x00006b0c
+#define BCE_HC_RX_TICKS_8_VALUE (0x3ffL<<0)
+#define BCE_HC_RX_TICKS_8_INT (0x3ffL<<16)
+
+#define BCE_HC_TX_TICKS_8 0x00006b10
+#define BCE_HC_TX_TICKS_8_VALUE (0x3ffL<<0)
+#define BCE_HC_TX_TICKS_8_INT (0x3ffL<<16)
+
+#define BCE_HC_COM_TICKS_8 0x00006b14
+#define BCE_HC_COM_TICKS_8_VALUE (0x3ffL<<0)
+#define BCE_HC_COM_TICKS_8_INT (0x3ffL<<16)
+
+#define BCE_HC_CMD_TICKS_8 0x00006b18
+#define BCE_HC_CMD_TICKS_8_VALUE (0x3ffL<<0)
+#define BCE_HC_CMD_TICKS_8_INT (0x3ffL<<16)
+
+#define BCE_HC_PERIODIC_TICKS_8 0x00006b1c
+#define BCE_HC_PERIODIC_TICKS_8_HC_PERIODIC_TICKS (0xffffL<<0)
+#define BCE_HC_PERIODIC_TICKS_8_HC_INT_PERIODIC_TICKS (0xffffL<<16)
+
+
+/*
+ * txp_reg definition
+ * offset: 0x40000
+ */
+#define BCE_TXP_CPU_MODE 0x00045000
+#define BCE_TXP_CPU_MODE_LOCAL_RST (1L<<0)
+#define BCE_TXP_CPU_MODE_STEP_ENA (1L<<1)
+#define BCE_TXP_CPU_MODE_PAGE_0_DATA_ENA (1L<<2)
+#define BCE_TXP_CPU_MODE_PAGE_0_INST_ENA (1L<<3)
+#define BCE_TXP_CPU_MODE_MSG_BIT1 (1L<<6)
+#define BCE_TXP_CPU_MODE_INTERRUPT_ENA (1L<<7)
+#define BCE_TXP_CPU_MODE_SOFT_HALT (1L<<10)
+#define BCE_TXP_CPU_MODE_BAD_DATA_HALT_ENA (1L<<11)
+#define BCE_TXP_CPU_MODE_BAD_INST_HALT_ENA (1L<<12)
+#define BCE_TXP_CPU_MODE_FIO_ABORT_HALT_ENA (1L<<13)
+#define BCE_TXP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA (1L<<15)
+
+#define BCE_TXP_CPU_STATE 0x00045004
+#define BCE_TXP_CPU_STATE_BREAKPOINT (1L<<0)
+#define BCE_TXP_CPU_STATE_BAD_INST_HALTED (1L<<2)
+#define BCE_TXP_CPU_STATE_PAGE_0_DATA_HALTED (1L<<3)
+#define BCE_TXP_CPU_STATE_PAGE_0_INST_HALTED (1L<<4)
+#define BCE_TXP_CPU_STATE_BAD_DATA_ADDR_HALTED (1L<<5)
+#define BCE_TXP_CPU_STATE_BAD_pc_HALTED (1L<<6)
+#define BCE_TXP_CPU_STATE_ALIGN_HALTED (1L<<7)
+#define BCE_TXP_CPU_STATE_FIO_ABORT_HALTED (1L<<8)
+#define BCE_TXP_CPU_STATE_SOFT_HALTED (1L<<10)
+#define BCE_TXP_CPU_STATE_SPAD_UNDERFLOW (1L<<11)
+#define BCE_TXP_CPU_STATE_INTERRRUPT (1L<<12)
+#define BCE_TXP_CPU_STATE_DATA_ACCESS_STALL (1L<<14)
+#define BCE_TXP_CPU_STATE_INST_FETCH_STALL (1L<<15)
+#define BCE_TXP_CPU_STATE_BLOCKED_READ (1L<<31)
+
+#define BCE_TXP_CPU_EVENT_MASK 0x00045008
+#define BCE_TXP_CPU_EVENT_MASK_BREAKPOINT_MASK (1L<<0)
+#define BCE_TXP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK (1L<<2)
+#define BCE_TXP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK (1L<<3)
+#define BCE_TXP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK (1L<<4)
+#define BCE_TXP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK (1L<<5)
+#define BCE_TXP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK (1L<<6)
+#define BCE_TXP_CPU_EVENT_MASK_ALIGN_HALTED_MASK (1L<<7)
+#define BCE_TXP_CPU_EVENT_MASK_FIO_ABORT_MASK (1L<<8)
+#define BCE_TXP_CPU_EVENT_MASK_SOFT_HALTED_MASK (1L<<10)
+#define BCE_TXP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK (1L<<11)
+#define BCE_TXP_CPU_EVENT_MASK_INTERRUPT_MASK (1L<<12)
+
+#define BCE_TXP_CPU_PROGRAM_COUNTER 0x0004501c
+#define BCE_TXP_CPU_INSTRUCTION 0x00045020
+#define BCE_TXP_CPU_DATA_ACCESS 0x00045024
+#define BCE_TXP_CPU_INTERRUPT_ENABLE 0x00045028
+#define BCE_TXP_CPU_INTERRUPT_VECTOR 0x0004502c
+#define BCE_TXP_CPU_INTERRUPT_SAVED_PC 0x00045030
+#define BCE_TXP_CPU_HW_BREAKPOINT 0x00045034
+#define BCE_TXP_CPU_HW_BREAKPOINT_DISABLE (1L<<0)
+#define BCE_TXP_CPU_HW_BREAKPOINT_ADDRESS (0x3fffffffL<<2)
+
+#define BCE_TXP_CPU_REG_FILE 0x00045200
+#define BCE_TXP_FTQ_DATA 0x000453c0
+#define BCE_TXP_FTQ_CMD 0x000453f8
+#define BCE_TXP_FTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_TXP_FTQ_CMD_WR_TOP (1L<<10)
+#define BCE_TXP_FTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_TXP_FTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_TXP_FTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_TXP_FTQ_CMD_RD_DATA (1L<<26)
+#define BCE_TXP_FTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_TXP_FTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_TXP_FTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_TXP_FTQ_CMD_POP (1L<<30)
+#define BCE_TXP_FTQ_CMD_BUSY (1L<<31)
+
+#define BCE_TXP_FTQ_CTL 0x000453fc
+#define BCE_TXP_FTQ_CTL_INTERVENE (1L<<0)
+#define BCE_TXP_FTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_TXP_FTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_TXP_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_TXP_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+#define BCE_TXP_SCRATCH 0x00060000
+
+
+/*
+ * tpat_reg definition
+ * offset: 0x80000
+ */
+#define BCE_TPAT_CPU_MODE 0x00085000
+#define BCE_TPAT_CPU_MODE_LOCAL_RST (1L<<0)
+#define BCE_TPAT_CPU_MODE_STEP_ENA (1L<<1)
+#define BCE_TPAT_CPU_MODE_PAGE_0_DATA_ENA (1L<<2)
+#define BCE_TPAT_CPU_MODE_PAGE_0_INST_ENA (1L<<3)
+#define BCE_TPAT_CPU_MODE_MSG_BIT1 (1L<<6)
+#define BCE_TPAT_CPU_MODE_INTERRUPT_ENA (1L<<7)
+#define BCE_TPAT_CPU_MODE_SOFT_HALT (1L<<10)
+#define BCE_TPAT_CPU_MODE_BAD_DATA_HALT_ENA (1L<<11)
+#define BCE_TPAT_CPU_MODE_BAD_INST_HALT_ENA (1L<<12)
+#define BCE_TPAT_CPU_MODE_FIO_ABORT_HALT_ENA (1L<<13)
+#define BCE_TPAT_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA (1L<<15)
+
+#define BCE_TPAT_CPU_STATE 0x00085004
+#define BCE_TPAT_CPU_STATE_BREAKPOINT (1L<<0)
+#define BCE_TPAT_CPU_STATE_BAD_INST_HALTED (1L<<2)
+#define BCE_TPAT_CPU_STATE_PAGE_0_DATA_HALTED (1L<<3)
+#define BCE_TPAT_CPU_STATE_PAGE_0_INST_HALTED (1L<<4)
+#define BCE_TPAT_CPU_STATE_BAD_DATA_ADDR_HALTED (1L<<5)
+#define BCE_TPAT_CPU_STATE_BAD_pc_HALTED (1L<<6)
+#define BCE_TPAT_CPU_STATE_ALIGN_HALTED (1L<<7)
+#define BCE_TPAT_CPU_STATE_FIO_ABORT_HALTED (1L<<8)
+#define BCE_TPAT_CPU_STATE_SOFT_HALTED (1L<<10)
+#define BCE_TPAT_CPU_STATE_SPAD_UNDERFLOW (1L<<11)
+#define BCE_TPAT_CPU_STATE_INTERRRUPT (1L<<12)
+#define BCE_TPAT_CPU_STATE_DATA_ACCESS_STALL (1L<<14)
+#define BCE_TPAT_CPU_STATE_INST_FETCH_STALL (1L<<15)
+#define BCE_TPAT_CPU_STATE_BLOCKED_READ (1L<<31)
+
+#define BCE_TPAT_CPU_EVENT_MASK 0x00085008
+#define BCE_TPAT_CPU_EVENT_MASK_BREAKPOINT_MASK (1L<<0)
+#define BCE_TPAT_CPU_EVENT_MASK_BAD_INST_HALTED_MASK (1L<<2)
+#define BCE_TPAT_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK (1L<<3)
+#define BCE_TPAT_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK (1L<<4)
+#define BCE_TPAT_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK (1L<<5)
+#define BCE_TPAT_CPU_EVENT_MASK_BAD_PC_HALTED_MASK (1L<<6)
+#define BCE_TPAT_CPU_EVENT_MASK_ALIGN_HALTED_MASK (1L<<7)
+#define BCE_TPAT_CPU_EVENT_MASK_FIO_ABORT_MASK (1L<<8)
+#define BCE_TPAT_CPU_EVENT_MASK_SOFT_HALTED_MASK (1L<<10)
+#define BCE_TPAT_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK (1L<<11)
+#define BCE_TPAT_CPU_EVENT_MASK_INTERRUPT_MASK (1L<<12)
+
+#define BCE_TPAT_CPU_PROGRAM_COUNTER 0x0008501c
+#define BCE_TPAT_CPU_INSTRUCTION 0x00085020
+#define BCE_TPAT_CPU_DATA_ACCESS 0x00085024
+#define BCE_TPAT_CPU_INTERRUPT_ENABLE 0x00085028
+#define BCE_TPAT_CPU_INTERRUPT_VECTOR 0x0008502c
+#define BCE_TPAT_CPU_INTERRUPT_SAVED_PC 0x00085030
+#define BCE_TPAT_CPU_HW_BREAKPOINT 0x00085034
+#define BCE_TPAT_CPU_HW_BREAKPOINT_DISABLE (1L<<0)
+#define BCE_TPAT_CPU_HW_BREAKPOINT_ADDRESS (0x3fffffffL<<2)
+#define BCE_TPAT_CPU_REG_FILE 0x00085200
+#define BCE_TPAT_FTQ_DATA 0x000853c0
+#define BCE_TPAT_FTQ_CMD 0x000853f8
+#define BCE_TPAT_FTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_TPAT_FTQ_CMD_WR_TOP (1L<<10)
+#define BCE_TPAT_FTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_TPAT_FTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_TPAT_FTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_TPAT_FTQ_CMD_RD_DATA (1L<<26)
+#define BCE_TPAT_FTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_TPAT_FTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_TPAT_FTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_TPAT_FTQ_CMD_POP (1L<<30)
+#define BCE_TPAT_FTQ_CMD_BUSY (1L<<31)
+
+#define BCE_TPAT_FTQ_CTL 0x000853fc
+#define BCE_TPAT_FTQ_CTL_INTERVENE (1L<<0)
+#define BCE_TPAT_FTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_TPAT_FTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_TPAT_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_TPAT_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+#define BCE_TPAT_SCRATCH 0x000a0000
+
+
+/*
+ * rxp_reg definition
+ * offset: 0xc0000
+ */
+#define BCE_RXP_CPU_MODE 0x000c5000
+#define BCE_RXP_CPU_MODE_LOCAL_RST (1L<<0)
+#define BCE_RXP_CPU_MODE_STEP_ENA (1L<<1)
+#define BCE_RXP_CPU_MODE_PAGE_0_DATA_ENA (1L<<2)
+#define BCE_RXP_CPU_MODE_PAGE_0_INST_ENA (1L<<3)
+#define BCE_RXP_CPU_MODE_MSG_BIT1 (1L<<6)
+#define BCE_RXP_CPU_MODE_INTERRUPT_ENA (1L<<7)
+#define BCE_RXP_CPU_MODE_SOFT_HALT (1L<<10)
+#define BCE_RXP_CPU_MODE_BAD_DATA_HALT_ENA (1L<<11)
+#define BCE_RXP_CPU_MODE_BAD_INST_HALT_ENA (1L<<12)
+#define BCE_RXP_CPU_MODE_FIO_ABORT_HALT_ENA (1L<<13)
+#define BCE_RXP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA (1L<<15)
+
+#define BCE_RXP_CPU_STATE 0x000c5004
+#define BCE_RXP_CPU_STATE_BREAKPOINT (1L<<0)
+#define BCE_RXP_CPU_STATE_BAD_INST_HALTED (1L<<2)
+#define BCE_RXP_CPU_STATE_PAGE_0_DATA_HALTED (1L<<3)
+#define BCE_RXP_CPU_STATE_PAGE_0_INST_HALTED (1L<<4)
+#define BCE_RXP_CPU_STATE_BAD_DATA_ADDR_HALTED (1L<<5)
+#define BCE_RXP_CPU_STATE_BAD_pc_HALTED (1L<<6)
+#define BCE_RXP_CPU_STATE_ALIGN_HALTED (1L<<7)
+#define BCE_RXP_CPU_STATE_FIO_ABORT_HALTED (1L<<8)
+#define BCE_RXP_CPU_STATE_SOFT_HALTED (1L<<10)
+#define BCE_RXP_CPU_STATE_SPAD_UNDERFLOW (1L<<11)
+#define BCE_RXP_CPU_STATE_INTERRRUPT (1L<<12)
+#define BCE_RXP_CPU_STATE_DATA_ACCESS_STALL (1L<<14)
+#define BCE_RXP_CPU_STATE_INST_FETCH_STALL (1L<<15)
+#define BCE_RXP_CPU_STATE_BLOCKED_READ (1L<<31)
+
+#define BCE_RXP_CPU_EVENT_MASK 0x000c5008
+#define BCE_RXP_CPU_EVENT_MASK_BREAKPOINT_MASK (1L<<0)
+#define BCE_RXP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK (1L<<2)
+#define BCE_RXP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK (1L<<3)
+#define BCE_RXP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK (1L<<4)
+#define BCE_RXP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK (1L<<5)
+#define BCE_RXP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK (1L<<6)
+#define BCE_RXP_CPU_EVENT_MASK_ALIGN_HALTED_MASK (1L<<7)
+#define BCE_RXP_CPU_EVENT_MASK_FIO_ABORT_MASK (1L<<8)
+#define BCE_RXP_CPU_EVENT_MASK_SOFT_HALTED_MASK (1L<<10)
+#define BCE_RXP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK (1L<<11)
+#define BCE_RXP_CPU_EVENT_MASK_INTERRUPT_MASK (1L<<12)
+
+#define BCE_RXP_CPU_PROGRAM_COUNTER 0x000c501c
+#define BCE_RXP_CPU_INSTRUCTION 0x000c5020
+#define BCE_RXP_CPU_DATA_ACCESS 0x000c5024
+#define BCE_RXP_CPU_INTERRUPT_ENABLE 0x000c5028
+#define BCE_RXP_CPU_INTERRUPT_VECTOR 0x000c502c
+#define BCE_RXP_CPU_INTERRUPT_SAVED_PC 0x000c5030
+#define BCE_RXP_CPU_HW_BREAKPOINT 0x000c5034
+#define BCE_RXP_CPU_HW_BREAKPOINT_DISABLE (1L<<0)
+#define BCE_RXP_CPU_HW_BREAKPOINT_ADDRESS (0x3fffffffL<<2)
+
+#define BCE_RXP_CPU_REG_FILE 0x000c5200
+#define BCE_RXP_CFTQ_DATA 0x000c5380
+#define BCE_RXP_CFTQ_CMD 0x000c53b8
+#define BCE_RXP_CFTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_RXP_CFTQ_CMD_WR_TOP (1L<<10)
+#define BCE_RXP_CFTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_RXP_CFTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_RXP_CFTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_RXP_CFTQ_CMD_RD_DATA (1L<<26)
+#define BCE_RXP_CFTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_RXP_CFTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_RXP_CFTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_RXP_CFTQ_CMD_POP (1L<<30)
+#define BCE_RXP_CFTQ_CMD_BUSY (1L<<31)
+
+#define BCE_RXP_CFTQ_CTL 0x000c53bc
+#define BCE_RXP_CFTQ_CTL_INTERVENE (1L<<0)
+#define BCE_RXP_CFTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_RXP_CFTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_RXP_CFTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_RXP_CFTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+#define BCE_RXP_FTQ_DATA 0x000c53c0
+#define BCE_RXP_FTQ_CMD 0x000c53f8
+#define BCE_RXP_FTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_RXP_FTQ_CMD_WR_TOP (1L<<10)
+#define BCE_RXP_FTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_RXP_FTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_RXP_FTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_RXP_FTQ_CMD_RD_DATA (1L<<26)
+#define BCE_RXP_FTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_RXP_FTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_RXP_FTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_RXP_FTQ_CMD_POP (1L<<30)
+#define BCE_RXP_FTQ_CMD_BUSY (1L<<31)
+
+#define BCE_RXP_FTQ_CTL 0x000c53fc
+#define BCE_RXP_FTQ_CTL_INTERVENE (1L<<0)
+#define BCE_RXP_FTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_RXP_FTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_RXP_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_RXP_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+#define BCE_RXP_SCRATCH 0x000e0000
+
+
+/*
+ * com_reg definition
+ * offset: 0x100000
+ */
+#define BCE_COM_CPU_MODE 0x00105000
+#define BCE_COM_CPU_MODE_LOCAL_RST (1L<<0)
+#define BCE_COM_CPU_MODE_STEP_ENA (1L<<1)
+#define BCE_COM_CPU_MODE_PAGE_0_DATA_ENA (1L<<2)
+#define BCE_COM_CPU_MODE_PAGE_0_INST_ENA (1L<<3)
+#define BCE_COM_CPU_MODE_MSG_BIT1 (1L<<6)
+#define BCE_COM_CPU_MODE_INTERRUPT_ENA (1L<<7)
+#define BCE_COM_CPU_MODE_SOFT_HALT (1L<<10)
+#define BCE_COM_CPU_MODE_BAD_DATA_HALT_ENA (1L<<11)
+#define BCE_COM_CPU_MODE_BAD_INST_HALT_ENA (1L<<12)
+#define BCE_COM_CPU_MODE_FIO_ABORT_HALT_ENA (1L<<13)
+#define BCE_COM_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA (1L<<15)
+
+#define BCE_COM_CPU_STATE 0x00105004
+#define BCE_COM_CPU_STATE_BREAKPOINT (1L<<0)
+#define BCE_COM_CPU_STATE_BAD_INST_HALTED (1L<<2)
+#define BCE_COM_CPU_STATE_PAGE_0_DATA_HALTED (1L<<3)
+#define BCE_COM_CPU_STATE_PAGE_0_INST_HALTED (1L<<4)
+#define BCE_COM_CPU_STATE_BAD_DATA_ADDR_HALTED (1L<<5)
+#define BCE_COM_CPU_STATE_BAD_pc_HALTED (1L<<6)
+#define BCE_COM_CPU_STATE_ALIGN_HALTED (1L<<7)
+#define BCE_COM_CPU_STATE_FIO_ABORT_HALTED (1L<<8)
+#define BCE_COM_CPU_STATE_SOFT_HALTED (1L<<10)
+#define BCE_COM_CPU_STATE_SPAD_UNDERFLOW (1L<<11)
+#define BCE_COM_CPU_STATE_INTERRRUPT (1L<<12)
+#define BCE_COM_CPU_STATE_DATA_ACCESS_STALL (1L<<14)
+#define BCE_COM_CPU_STATE_INST_FETCH_STALL (1L<<15)
+#define BCE_COM_CPU_STATE_BLOCKED_READ (1L<<31)
+
+#define BCE_COM_CPU_EVENT_MASK 0x00105008
+#define BCE_COM_CPU_EVENT_MASK_BREAKPOINT_MASK (1L<<0)
+#define BCE_COM_CPU_EVENT_MASK_BAD_INST_HALTED_MASK (1L<<2)
+#define BCE_COM_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK (1L<<3)
+#define BCE_COM_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK (1L<<4)
+#define BCE_COM_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK (1L<<5)
+#define BCE_COM_CPU_EVENT_MASK_BAD_PC_HALTED_MASK (1L<<6)
+#define BCE_COM_CPU_EVENT_MASK_ALIGN_HALTED_MASK (1L<<7)
+#define BCE_COM_CPU_EVENT_MASK_FIO_ABORT_MASK (1L<<8)
+#define BCE_COM_CPU_EVENT_MASK_SOFT_HALTED_MASK (1L<<10)
+#define BCE_COM_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK (1L<<11)
+#define BCE_COM_CPU_EVENT_MASK_INTERRUPT_MASK (1L<<12)
+
+#define BCE_COM_CPU_PROGRAM_COUNTER 0x0010501c
+#define BCE_COM_CPU_INSTRUCTION 0x00105020
+#define BCE_COM_CPU_DATA_ACCESS 0x00105024
+#define BCE_COM_CPU_INTERRUPT_ENABLE 0x00105028
+#define BCE_COM_CPU_INTERRUPT_VECTOR 0x0010502c
+#define BCE_COM_CPU_INTERRUPT_SAVED_PC 0x00105030
+#define BCE_COM_CPU_HW_BREAKPOINT 0x00105034
+#define BCE_COM_CPU_HW_BREAKPOINT_DISABLE (1L<<0)
+#define BCE_COM_CPU_HW_BREAKPOINT_ADDRESS (0x3fffffffL<<2)
+
+#define BCE_COM_CPU_REG_FILE 0x00105200
+#define BCE_COM_COMXQ_FTQ_DATA 0x00105340
+#define BCE_COM_COMXQ_FTQ_CMD 0x00105378
+#define BCE_COM_COMXQ_FTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_COM_COMXQ_FTQ_CMD_WR_TOP (1L<<10)
+#define BCE_COM_COMXQ_FTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_COM_COMXQ_FTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_COM_COMXQ_FTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_COM_COMXQ_FTQ_CMD_RD_DATA (1L<<26)
+#define BCE_COM_COMXQ_FTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_COM_COMXQ_FTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_COM_COMXQ_FTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_COM_COMXQ_FTQ_CMD_POP (1L<<30)
+#define BCE_COM_COMXQ_FTQ_CMD_BUSY (1L<<31)
+
+#define BCE_COM_COMXQ_FTQ_CTL 0x0010537c
+#define BCE_COM_COMXQ_FTQ_CTL_INTERVENE (1L<<0)
+#define BCE_COM_COMXQ_FTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_COM_COMXQ_FTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_COM_COMXQ_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_COM_COMXQ_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+#define BCE_COM_COMTQ_FTQ_DATA 0x00105380
+#define BCE_COM_COMTQ_FTQ_CMD 0x001053b8
+#define BCE_COM_COMTQ_FTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_COM_COMTQ_FTQ_CMD_WR_TOP (1L<<10)
+#define BCE_COM_COMTQ_FTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_COM_COMTQ_FTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_COM_COMTQ_FTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_COM_COMTQ_FTQ_CMD_RD_DATA (1L<<26)
+#define BCE_COM_COMTQ_FTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_COM_COMTQ_FTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_COM_COMTQ_FTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_COM_COMTQ_FTQ_CMD_POP (1L<<30)
+#define BCE_COM_COMTQ_FTQ_CMD_BUSY (1L<<31)
+
+#define BCE_COM_COMTQ_FTQ_CTL 0x001053bc
+#define BCE_COM_COMTQ_FTQ_CTL_INTERVENE (1L<<0)
+#define BCE_COM_COMTQ_FTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_COM_COMTQ_FTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_COM_COMTQ_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_COM_COMTQ_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+#define BCE_COM_COMQ_FTQ_DATA 0x001053c0
+#define BCE_COM_COMQ_FTQ_CMD 0x001053f8
+#define BCE_COM_COMQ_FTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_COM_COMQ_FTQ_CMD_WR_TOP (1L<<10)
+#define BCE_COM_COMQ_FTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_COM_COMQ_FTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_COM_COMQ_FTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_COM_COMQ_FTQ_CMD_RD_DATA (1L<<26)
+#define BCE_COM_COMQ_FTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_COM_COMQ_FTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_COM_COMQ_FTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_COM_COMQ_FTQ_CMD_POP (1L<<30)
+#define BCE_COM_COMQ_FTQ_CMD_BUSY (1L<<31)
+
+#define BCE_COM_COMQ_FTQ_CTL 0x001053fc
+#define BCE_COM_COMQ_FTQ_CTL_INTERVENE (1L<<0)
+#define BCE_COM_COMQ_FTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_COM_COMQ_FTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_COM_COMQ_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_COM_COMQ_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+#define BCE_COM_SCRATCH 0x00120000
+
+
+/*
+ * cp_reg definition
+ * offset: 0x180000
+ */
+#define BCE_CP_CPU_MODE 0x00185000
+#define BCE_CP_CPU_MODE_LOCAL_RST (1L<<0)
+#define BCE_CP_CPU_MODE_STEP_ENA (1L<<1)
+#define BCE_CP_CPU_MODE_PAGE_0_DATA_ENA (1L<<2)
+#define BCE_CP_CPU_MODE_PAGE_0_INST_ENA (1L<<3)
+#define BCE_CP_CPU_MODE_MSG_BIT1 (1L<<6)
+#define BCE_CP_CPU_MODE_INTERRUPT_ENA (1L<<7)
+#define BCE_CP_CPU_MODE_SOFT_HALT (1L<<10)
+#define BCE_CP_CPU_MODE_BAD_DATA_HALT_ENA (1L<<11)
+#define BCE_CP_CPU_MODE_BAD_INST_HALT_ENA (1L<<12)
+#define BCE_CP_CPU_MODE_FIO_ABORT_HALT_ENA (1L<<13)
+#define BCE_CP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA (1L<<15)
+
+#define BCE_CP_CPU_STATE 0x00185004
+#define BCE_CP_CPU_STATE_BREAKPOINT (1L<<0)
+#define BCE_CP_CPU_STATE_BAD_INST_HALTED (1L<<2)
+#define BCE_CP_CPU_STATE_PAGE_0_DATA_HALTED (1L<<3)
+#define BCE_CP_CPU_STATE_PAGE_0_INST_HALTED (1L<<4)
+#define BCE_CP_CPU_STATE_BAD_DATA_ADDR_HALTED (1L<<5)
+#define BCE_CP_CPU_STATE_BAD_pc_HALTED (1L<<6)
+#define BCE_CP_CPU_STATE_ALIGN_HALTED (1L<<7)
+#define BCE_CP_CPU_STATE_FIO_ABORT_HALTED (1L<<8)
+#define BCE_CP_CPU_STATE_SOFT_HALTED (1L<<10)
+#define BCE_CP_CPU_STATE_SPAD_UNDERFLOW (1L<<11)
+#define BCE_CP_CPU_STATE_INTERRRUPT (1L<<12)
+#define BCE_CP_CPU_STATE_DATA_ACCESS_STALL (1L<<14)
+#define BCE_CP_CPU_STATE_INST_FETCH_STALL (1L<<15)
+#define BCE_CP_CPU_STATE_BLOCKED_READ (1L<<31)
+
+#define BCE_CP_CPU_EVENT_MASK 0x00185008
+#define BCE_CP_CPU_EVENT_MASK_BREAKPOINT_MASK (1L<<0)
+#define BCE_CP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK (1L<<2)
+#define BCE_CP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK (1L<<3)
+#define BCE_CP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK (1L<<4)
+#define BCE_CP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK (1L<<5)
+#define BCE_CP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK (1L<<6)
+#define BCE_CP_CPU_EVENT_MASK_ALIGN_HALTED_MASK (1L<<7)
+#define BCE_CP_CPU_EVENT_MASK_FIO_ABORT_MASK (1L<<8)
+#define BCE_CP_CPU_EVENT_MASK_SOFT_HALTED_MASK (1L<<10)
+#define BCE_CP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK (1L<<11)
+#define BCE_CP_CPU_EVENT_MASK_INTERRUPT_MASK (1L<<12)
+
+#define BCE_CP_CPU_PROGRAM_COUNTER 0x0018501c
+#define BCE_CP_CPU_INSTRUCTION 0x00185020
+#define BCE_CP_CPU_DATA_ACCESS 0x00185024
+#define BCE_CP_CPU_INTERRUPT_ENABLE 0x00185028
+#define BCE_CP_CPU_INTERRUPT_VECTOR 0x0018502c
+#define BCE_CP_CPU_INTERRUPT_SAVED_PC 0x00185030
+#define BCE_CP_CPU_HW_BREAKPOINT 0x00185034
+#define BCE_CP_CPU_HW_BREAKPOINT_DISABLE (1L<<0)
+#define BCE_CP_CPU_HW_BREAKPOINT_ADDRESS (0x3fffffffL<<2)
+
+#define BCE_CP_CPU_REG_FILE 0x00185200
+#define BCE_CP_CPQ_FTQ_DATA 0x001853c0
+#define BCE_CP_CPQ_FTQ_CMD 0x001853f8
+#define BCE_CP_CPQ_FTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_CP_CPQ_FTQ_CMD_WR_TOP (1L<<10)
+#define BCE_CP_CPQ_FTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_CP_CPQ_FTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_CP_CPQ_FTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_CP_CPQ_FTQ_CMD_RD_DATA (1L<<26)
+#define BCE_CP_CPQ_FTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_CP_CPQ_FTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_CP_CPQ_FTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_CP_CPQ_FTQ_CMD_POP (1L<<30)
+#define BCE_CP_CPQ_FTQ_CMD_BUSY (1L<<31)
+
+#define BCE_CP_CPQ_FTQ_CTL 0x001853fc
+#define BCE_CP_CPQ_FTQ_CTL_INTERVENE (1L<<0)
+#define BCE_CP_CPQ_FTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_CP_CPQ_FTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_CP_CPQ_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_CP_CPQ_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+#define BCE_CP_SCRATCH 0x001a0000
+
+
+/*
+ * tas_reg definition
+ * offset: 0x1c0000
+ */
+#define BCE_TAS_FTQ_CMD 0x001c03f8
+#define BCE_TAS_FTQ_CTL 0x001c03fc
+#define BCE_TAS_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_TAS_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+
+/*
+ * mcp_reg definition
+ * offset: 0x140000
+ */
+#define BCE_MCP_CPU_MODE 0x00145000
+#define BCE_MCP_CPU_MODE_LOCAL_RST (1L<<0)
+#define BCE_MCP_CPU_MODE_STEP_ENA (1L<<1)
+#define BCE_MCP_CPU_MODE_PAGE_0_DATA_ENA (1L<<2)
+#define BCE_MCP_CPU_MODE_PAGE_0_INST_ENA (1L<<3)
+#define BCE_MCP_CPU_MODE_MSG_BIT1 (1L<<6)
+#define BCE_MCP_CPU_MODE_INTERRUPT_ENA (1L<<7)
+#define BCE_MCP_CPU_MODE_SOFT_HALT (1L<<10)
+#define BCE_MCP_CPU_MODE_BAD_DATA_HALT_ENA (1L<<11)
+#define BCE_MCP_CPU_MODE_BAD_INST_HALT_ENA (1L<<12)
+#define BCE_MCP_CPU_MODE_FIO_ABORT_HALT_ENA (1L<<13)
+#define BCE_MCP_CPU_MODE_SPAD_UNDERFLOW_HALT_ENA (1L<<15)
+
+#define BCE_MCP_CPU_STATE 0x00145004
+#define BCE_MCP_CPU_STATE_BREAKPOINT (1L<<0)
+#define BCE_MCP_CPU_STATE_BAD_INST_HALTED (1L<<2)
+#define BCE_MCP_CPU_STATE_PAGE_0_DATA_HALTED (1L<<3)
+#define BCE_MCP_CPU_STATE_PAGE_0_INST_HALTED (1L<<4)
+#define BCE_MCP_CPU_STATE_BAD_DATA_ADDR_HALTED (1L<<5)
+#define BCE_MCP_CPU_STATE_BAD_pc_HALTED (1L<<6)
+#define BCE_MCP_CPU_STATE_ALIGN_HALTED (1L<<7)
+#define BCE_MCP_CPU_STATE_FIO_ABORT_HALTED (1L<<8)
+#define BCE_MCP_CPU_STATE_SOFT_HALTED (1L<<10)
+#define BCE_MCP_CPU_STATE_SPAD_UNDERFLOW (1L<<11)
+#define BCE_MCP_CPU_STATE_INTERRRUPT (1L<<12)
+#define BCE_MCP_CPU_STATE_DATA_ACCESS_STALL (1L<<14)
+#define BCE_MCP_CPU_STATE_INST_FETCH_STALL (1L<<15)
+#define BCE_MCP_CPU_STATE_BLOCKED_READ (1L<<31)
+
+#define BCE_MCP_CPU_EVENT_MASK 0x00145008
+#define BCE_MCP_CPU_EVENT_MASK_BREAKPOINT_MASK (1L<<0)
+#define BCE_MCP_CPU_EVENT_MASK_BAD_INST_HALTED_MASK (1L<<2)
+#define BCE_MCP_CPU_EVENT_MASK_PAGE_0_DATA_HALTED_MASK (1L<<3)
+#define BCE_MCP_CPU_EVENT_MASK_PAGE_0_INST_HALTED_MASK (1L<<4)
+#define BCE_MCP_CPU_EVENT_MASK_BAD_DATA_ADDR_HALTED_MASK (1L<<5)
+#define BCE_MCP_CPU_EVENT_MASK_BAD_PC_HALTED_MASK (1L<<6)
+#define BCE_MCP_CPU_EVENT_MASK_ALIGN_HALTED_MASK (1L<<7)
+#define BCE_MCP_CPU_EVENT_MASK_FIO_ABORT_MASK (1L<<8)
+#define BCE_MCP_CPU_EVENT_MASK_SOFT_HALTED_MASK (1L<<10)
+#define BCE_MCP_CPU_EVENT_MASK_SPAD_UNDERFLOW_MASK (1L<<11)
+#define BCE_MCP_CPU_EVENT_MASK_INTERRUPT_MASK (1L<<12)
+
+#define BCE_MCP_CPU_PROGRAM_COUNTER 0x0014501c
+#define BCE_MCP_CPU_INSTRUCTION 0x00145020
+#define BCE_MCP_CPU_DATA_ACCESS 0x00145024
+#define BCE_MCP_CPU_INTERRUPT_ENABLE 0x00145028
+#define BCE_MCP_CPU_INTERRUPT_VECTOR 0x0014502c
+#define BCE_MCP_CPU_INTERRUPT_SAVED_PC 0x00145030
+#define BCE_MCP_CPU_HW_BREAKPOINT 0x00145034
+#define BCE_MCP_CPU_HW_BREAKPOINT_DISABLE (1L<<0)
+#define BCE_MCP_CPU_HW_BREAKPOINT_ADDRESS (0x3fffffffL<<2)
+
+#define BCE_MCP_CPU_REG_FILE 0x00145200
+#define BCE_MCP_MCPQ_FTQ_DATA 0x001453c0
+#define BCE_MCP_MCPQ_FTQ_CMD 0x001453f8
+#define BCE_MCP_MCPQ_FTQ_CMD_OFFSET (0x3ffL<<0)
+#define BCE_MCP_MCPQ_FTQ_CMD_WR_TOP (1L<<10)
+#define BCE_MCP_MCPQ_FTQ_CMD_WR_TOP_0 (0L<<10)
+#define BCE_MCP_MCPQ_FTQ_CMD_WR_TOP_1 (1L<<10)
+#define BCE_MCP_MCPQ_FTQ_CMD_SFT_RESET (1L<<25)
+#define BCE_MCP_MCPQ_FTQ_CMD_RD_DATA (1L<<26)
+#define BCE_MCP_MCPQ_FTQ_CMD_ADD_INTERVEN (1L<<27)
+#define BCE_MCP_MCPQ_FTQ_CMD_ADD_DATA (1L<<28)
+#define BCE_MCP_MCPQ_FTQ_CMD_INTERVENE_CLR (1L<<29)
+#define BCE_MCP_MCPQ_FTQ_CMD_POP (1L<<30)
+#define BCE_MCP_MCPQ_FTQ_CMD_BUSY (1L<<31)
+
+#define BCE_MCP_MCPQ_FTQ_CTL 0x001453fc
+#define BCE_MCP_MCPQ_FTQ_CTL_INTERVENE (1L<<0)
+#define BCE_MCP_MCPQ_FTQ_CTL_OVERFLOW (1L<<1)
+#define BCE_MCP_MCPQ_FTQ_CTL_FORCE_INTERVENE (1L<<2)
+#define BCE_MCP_MCPQ_FTQ_CTL_MAX_DEPTH (0x3ffL<<12)
+#define BCE_MCP_MCPQ_FTQ_CTL_CUR_DEPTH (0x3ffL<<22)
+
+#define BCE_MCP_ROM 0x00150000
+#define BCE_MCP_SCRATCH 0x00160000
+
+#define BCE_SHM_HDR_SIGNATURE BCE_MCP_SCRATCH
+#define BCE_SHM_HDR_SIGNATURE_SIG_MASK 0xffff0000
+#define BCE_SHM_HDR_SIGNATURE_SIG 0x53530000
+#define BCE_SHM_HDR_SIGNATURE_VER_MASK 0x000000ff
+#define BCE_SHM_HDR_SIGNATURE_VER_ONE 0x00000001
+
+#define BCE_SHM_HDR_ADDR_0 BCE_MCP_SCRATCH + 4
+#define BCE_SHM_HDR_ADDR_1 BCE_MCP_SCRATCH + 8
+
+/****************************************************************************/
+/* End machine generated definitions. */
+/****************************************************************************/
+
+/****************************************************************************/
+/* Begin firmware definitions. */
+/****************************************************************************/
+/* The following definitions refer to pre-defined locations in processor */
+/* memory space which allows the driver to enable particular functionality */
+/* within the firmware or read specfic information about the running */
+/* firmware. */
+/****************************************************************************/
+
+/*
+ * Perfect match control register.
+ * 0 = Default. All received unicst packets matching MAC address
+ * BCE_EMAC_MAC_MATCH[0:1,8:9,10:11,12:13,14:15] are sent to receive queue
+ * 0, all other perfect match registers are reserved.
+ * 1 = All received unicast packets matching MAC address
+ * BCE_EMAC_MAC_MATCH[0:1] are mapped to receive queue 0,
+ * BCE_EMAC_MAC_MATCH[2:3] is mapped to receive queue 1, etc.
+ * 2 = All received unicast packets matching any BCE_EMAC_MAC_MATCH[] register
+ * are sent to receive queue 0.
+ */
+#define BCE_RXP_PM_CTRL 0x0e00d0
+
+/*
+ * This firmware statistic records the number of frames that
+ * were dropped because there were no buffers available in the
+ * receive chain.
+ */
+#define BCE_COM_NO_BUFFERS 0x120084
+/****************************************************************************/
+/* End firmware definitions. */
+/****************************************************************************/
+
+#define NUM_MC_HASH_REGISTERS 8
+
+#define DMA_READ_CHANS 5
+#define DMA_WRITE_CHANS 3
+
+/* Use the natural page size of the host CPU. */
+/* XXX: This has only been tested on amd64/i386 systems using 4KB pages. */
+#define BCM_PAGE_BITS PAGE_SHIFT
+#define BCM_PAGE_SIZE PAGE_SIZE
+#define BCM_PAGE_MASK (BCM_PAGE_SIZE - 1)
+#define BCM_PAGES(x) ((((x) + BCM_PAGE_SIZE - 1) & \
+ BCM_PAGE_MASK) >> BCM_PAGE_BITS)
+
+/*
+ * Page count must remain a power of 2 for all
+ * of the math to work correctly.
+ */
+#define TX_PAGES 2
+#define TOTAL_TX_BD_PER_PAGE (BCM_PAGE_SIZE / sizeof(struct tx_bd))
+#define USABLE_TX_BD_PER_PAGE (TOTAL_TX_BD_PER_PAGE - 1)
+#define TOTAL_TX_BD (TOTAL_TX_BD_PER_PAGE * TX_PAGES)
+#define USABLE_TX_BD (USABLE_TX_BD_PER_PAGE * TX_PAGES)
+#define MAX_TX_BD (TOTAL_TX_BD - 1)
+
+/* Advance to the next tx_bd, skipping any next page pointers. */
+#define NEXT_TX_BD(x) (((x) & USABLE_TX_BD_PER_PAGE) == \
+ (USABLE_TX_BD_PER_PAGE - 1)) ? (x) + 2 : (x) + 1
+
+#define TX_CHAIN_IDX(x) ((x) & MAX_TX_BD)
+
+#define TX_PAGE(x) (((x) & ~USABLE_TX_BD_PER_PAGE) >> (BCM_PAGE_BITS - 4))
+#define TX_IDX(x) ((x) & USABLE_TX_BD_PER_PAGE)
+
+/*
+ * Page count must remain a power of 2 for all
+ * of the math to work correctly.
+ */
+#define RX_PAGES 2
+#define TOTAL_RX_BD_PER_PAGE (BCM_PAGE_SIZE / sizeof(struct rx_bd))
+#define USABLE_RX_BD_PER_PAGE (TOTAL_RX_BD_PER_PAGE - 1)
+#define TOTAL_RX_BD (TOTAL_RX_BD_PER_PAGE * RX_PAGES)
+#define USABLE_RX_BD (USABLE_RX_BD_PER_PAGE * RX_PAGES)
+#define MAX_RX_BD (TOTAL_RX_BD - 1)
+
+/* Advance to the next rx_bd, skipping any next page pointers. */
+#define NEXT_RX_BD(x) (((x) & USABLE_RX_BD_PER_PAGE) == \
+ (USABLE_RX_BD_PER_PAGE - 1)) ? (x) + 2 : (x) + 1
+
+#define RX_CHAIN_IDX(x) ((x) & MAX_RX_BD)
+
+#define RX_PAGE(x) (((x) & ~USABLE_RX_BD_PER_PAGE) >> (BCM_PAGE_BITS - 4))
+#define RX_IDX(x) ((x) & USABLE_RX_BD_PER_PAGE)
+
+#ifdef BCE_JUMBO_HDRSPLIT
+/*
+ * To accomodate jumbo frames, the page chain should
+ * be 4 times larger than the receive chain.
+ */
+#define PG_PAGES (RX_PAGES * 4)
+#define TOTAL_PG_BD_PER_PAGE (BCM_PAGE_SIZE / sizeof(struct rx_bd))
+#define USABLE_PG_BD_PER_PAGE (TOTAL_PG_BD_PER_PAGE - 1)
+#define TOTAL_PG_BD (TOTAL_PG_BD_PER_PAGE * PG_PAGES)
+#define USABLE_PG_BD (USABLE_PG_BD_PER_PAGE * PG_PAGES)
+#define MAX_PG_BD (TOTAL_PG_BD - 1)
+
+/* Advance to the next pg_bd, skipping any next page pointers. */
+#define NEXT_PG_BD(x) (((x) & USABLE_PG_BD_PER_PAGE) == \
+ (USABLE_PG_BD_PER_PAGE - 1)) ? (x) + 2 : (x) + 1
+
+#define PG_CHAIN_IDX(x) ((x) & MAX_PG_BD)
+
+#define PG_PAGE(x) (((x) & ~USABLE_PG_BD_PER_PAGE) >> (BCM_PAGE_BITS - 4))
+#define PG_IDX(x) ((x) & USABLE_PG_BD_PER_PAGE)
+
+#endif /* BCE_JUMBO_HDRSPLIT */
+
+#define CTX_INIT_RETRY_COUNT 10
+
+/* Context size. */
+#define CTX_SHIFT 7
+#define CTX_SIZE (1 << CTX_SHIFT)
+#define CTX_MASK (CTX_SIZE - 1)
+#define GET_CID_ADDR(_cid) ((_cid) << CTX_SHIFT)
+#define GET_CID(_cid_addr) ((_cid_addr) >> CTX_SHIFT)
+
+#define PHY_CTX_SHIFT 6
+#define PHY_CTX_SIZE (1 << PHY_CTX_SHIFT)
+#define PHY_CTX_MASK (PHY_CTX_SIZE - 1)
+#define GET_PCID_ADDR(_pcid) ((_pcid) << PHY_CTX_SHIFT)
+#define GET_PCID(_pcid_addr) ((_pcid_addr) >> PHY_CTX_SHIFT)
+
+#define MB_KERNEL_CTX_SHIFT 8
+#define MB_KERNEL_CTX_SIZE (1 << MB_KERNEL_CTX_SHIFT)
+#define MB_KERNEL_CTX_MASK (MB_KERNEL_CTX_SIZE - 1)
+#define MB_GET_CID_ADDR(_cid) (0x10000 + ((_cid) << MB_KERNEL_CTX_SHIFT))
+
+#define MAX_CID_CNT 0x4000
+#define MAX_CID_ADDR (GET_CID_ADDR(MAX_CID_CNT))
+#define INVALID_CID_ADDR 0xffffffff
+
+#define TX_CID 16
+#define RX_CID 0
+
+/****************************************************************************/
+/* BCE Processor Firmwware Load Definitions */
+/****************************************************************************/
+
+struct cpu_reg {
+ u32 mode;
+ u32 mode_value_halt;
+ u32 mode_value_sstep;
+
+ u32 state;
+ u32 state_value_clear;
+
+ u32 gpr0;
+ u32 evmask;
+ u32 pc;
+ u32 inst;
+ u32 bp;
+
+ u32 spad_base;
+
+ u32 mips_view_base;
+};
+
+struct fw_info {
+ u32 ver_major;
+ u32 ver_minor;
+ u32 ver_fix;
+
+ u32 start_addr;
+
+ /* Text section. */
+ u32 text_addr;
+ u32 text_len;
+ u32 text_index;
+ u32 *text;
+
+ /* Data section. */
+ u32 data_addr;
+ u32 data_len;
+ u32 data_index;
+ u32 *data;
+
+ /* SBSS section. */
+ u32 sbss_addr;
+ u32 sbss_len;
+ u32 sbss_index;
+ u32 *sbss;
+
+ /* BSS section. */
+ u32 bss_addr;
+ u32 bss_len;
+ u32 bss_index;
+ u32 *bss;
+
+ /* Read-only section. */
+ u32 rodata_addr;
+ u32 rodata_len;
+ u32 rodata_index;
+ u32 *rodata;
+};
+
+#define RV2P_PROC1 0
+#define RV2P_PROC2 1
+
+#define BCE_MIREG(x) ((x & 0x1F) << 16)
+#define BCE_MIPHY(x) ((x & 0x1F) << 21)
+#define BCE_PHY_TIMEOUT 50
+
+#define BCE_NVRAM_SIZE 0x200
+#define BCE_NVRAM_MAGIC 0x669955aa
+#define BCE_CRC32_RESIDUAL 0xdebb20e3
+
+#define BCE_TX_TIMEOUT 5
+
+#define BCE_MAX_SEGMENTS 32
+#define BCE_TSO_MAX_SIZE 65536
+#define BCE_TSO_MAX_SEG_SIZE 4096
+
+#define BCE_DMA_ALIGN 8
+#define BCE_DMA_BOUNDARY 0
+#define BCE_RX_BUF_ALIGN 16
+
+#define BCE_MAX_CONTEXT 4
+
+/* The BCM5708 has a problem with addresses greater that 40bits. */
+/* Handle the sizing issue in an architecture agnostic fashion. */
+#if (BUS_SPACE_MAXADDR < 0xFFFFFFFFFF)
+#define BCE_BUS_SPACE_MAXADDR BUS_SPACE_MAXADDR
+#else
+#define BCE_BUS_SPACE_MAXADDR 0xFFFFFFFFFF
+#endif
+
+/*
+ * XXX Checksum offload involving IP fragments seems to cause problems on
+ * transmit. Disable it for now, hopefully there will be a more elegant
+ * solution later.
+ */
+#ifdef BCE_IP_CSUM
+#define BCE_IF_HWASSIST (CSUM_IP | CSUM_TCP | CSUM_UDP)
+#else
+#define BCE_IF_HWASSIST (CSUM_TCP | CSUM_UDP)
+#endif
+
+#if __FreeBSD_version < 700000
+#define BCE_IF_CAPABILITIES (IFCAP_VLAN_MTU | \
+ IFCAP_VLAN_HWTAGGING | IFCAP_HWCSUM | IFCAP_JUMBO_MTU)
+#else
+#define BCE_IF_CAPABILITIES (IFCAP_VLAN_MTU | \
+ IFCAP_VLAN_HWTAGGING | IFCAP_HWCSUM | \
+ IFCAP_JUMBO_MTU | IFCAP_VLAN_HWCSUM)
+#endif
+
+#define BCE_MIN_MTU 60
+#define BCE_MIN_ETHER_MTU 64
+
+#define BCE_MAX_STD_MTU 1500
+#define BCE_MAX_STD_ETHER_MTU 1518
+#define BCE_MAX_STD_ETHER_MTU_VLAN 1522
+
+#define BCE_MAX_JUMBO_MTU 9000
+#define BCE_MAX_JUMBO_ETHER_MTU 9018
+#define BCE_MAX_JUMBO_ETHER_MTU_VLAN 9022
+
+// #define BCE_MAX_MTU ETHER_MAX_LEN_JUMBO + ETHER_VLAN_ENCAP_LEN /* 9022 */
+
+/****************************************************************************/
+/* BCE Device State Data Structure */
+/****************************************************************************/
+
+#define BCE_STATUS_BLK_SZ sizeof(struct status_block)
+#define BCE_STATS_BLK_SZ sizeof(struct statistics_block)
+#define BCE_TX_CHAIN_PAGE_SZ BCM_PAGE_SIZE
+#define BCE_RX_CHAIN_PAGE_SZ BCM_PAGE_SIZE
+#define BCE_PG_CHAIN_PAGE_SZ BCM_PAGE_SIZE
+
+struct bce_softc
+{
+ /* Interface info. Must be first!! */
+ struct ifnet *bce_ifp;
+
+ /* Parent device handle */
+ device_t bce_dev;
+
+ /* Interface number */
+ u_int8_t bce_unit;
+
+ /* Device resource handle */
+ struct resource *bce_res_mem;
+
+ /* TBI media info */
+ struct ifmedia bce_ifmedia;
+
+ /* Device bus tag */
+ bus_space_tag_t bce_btag;
+
+ /* Device bus handle */
+ bus_space_handle_t bce_bhandle;
+
+ /* Device virtual memory handle */
+ vm_offset_t bce_vhandle;
+
+ /* IRQ Resource Handle */
+ struct resource *bce_res_irq;
+
+ struct mtx bce_mtx;
+
+ /* Interrupt handler. */
+ driver_intr_t *bce_intr;
+ void *bce_intrhand;
+ int bce_irq_rid;
+ int bce_msi_count;
+
+ /* ASIC Chip ID. */
+ u32 bce_chipid;
+
+ /* General controller flags. */
+ u32 bce_flags;
+#define BCE_PCIX_FLAG 0x00000001
+#define BCE_PCI_32BIT_FLAG 0x00000002
+#define BCE_RESERVED_FLAG 0x00000004
+#define BCE_NO_WOL_FLAG 0x00000008
+#define BCE_USING_DAC_FLAG 0x00000010
+#define BCE_USING_MSI_FLAG 0x00000020
+#define BCE_MFW_ENABLE_FLAG 0x00000040
+#define BCE_ONE_SHOT_MSI_FLAG 0x00000080
+#define BCE_USING_MSIX_FLAG 0x00000100
+#define BCE_PCIE_FLAG 0x00000200
+#define BCE_USING_TX_FLOW_CONTROL 0x00000400
+
+ /* Controller capability flags. */
+ u32 bce_cap_flags;
+#define BCE_MSI_CAPABLE_FLAG 0x00000001
+#define BCE_MSIX_CAPABLE_FLAG 0x00000002
+#define BCE_PCIE_CAPABLE_FLAG 0x00000004
+#define BCE_PCIX_CAPABLE_FLAG 0x00000008
+
+ /* PHY specific flags. */
+ u32 bce_phy_flags;
+#define BCE_PHY_SERDES_FLAG 0x00000001
+#define BCE_PHY_CRC_FIX_FLAG 0x00000002
+#define BCE_PHY_PARALLEL_DETECT_FLAG 0x00000004
+#define BCE_PHY_2_5G_CAPABLE_FLAG 0x00000008
+#define BCE_PHY_INT_MODE_MASK_FLAG 0x00000300
+#define BCE_PHY_INT_MODE_AUTO_POLLING_FLAG 0x00000100
+#define BCE_PHY_INT_MODE_LINK_READY_FLAG 0x00000200
+#define BCE_PHY_IEEE_CLAUSE_45_FLAG 0x00000400
+
+ /* Values that need to be shared with the PHY driver. */
+ u32 bce_shared_hw_cfg;
+ u32 bce_port_hw_cfg;
+
+ bus_addr_t max_bus_addr;
+
+ /* PCI bus speed */
+ u16 bus_speed_mhz;
+
+ /* PCIe link width */
+ u16 link_width;
+
+ /* PCIe link speed */
+ u16 link_speed;
+
+ /* Flash NVRAM settings */
+ struct flash_spec *bce_flash_info;
+
+ /* Flash NVRAM size */
+ u32 bce_flash_size;
+
+ /* Shared Memory base address */
+ u32 bce_shmem_base;
+
+ /* Name string */
+ char *bce_name;
+
+ /* Tracks the version of bootcode firmware. */
+ char bce_bc_ver[32];
+
+ /* Tracks the version of management firmware. */
+ char bce_mfw_ver[32];
+
+ /*
+ * Tracks the state of the firmware. 0 = Running while any
+ * other value indicates that the firmware is not responding.
+ */
+ u16 bce_fw_timed_out;
+
+ /*
+ * An incrementing sequence used to coordinate messages passed
+ * from the driver to the firmware.
+ */
+ u16 bce_fw_wr_seq;
+
+ /*
+ * An incrementing sequence used to let the firmware know that
+ * the driver is still operating. Without the pulse, management
+ * firmware such as IPMI or UMP will operate in OS absent state.
+ */
+ u16 bce_fw_drv_pulse_wr_seq;
+
+ /* Tracks whether firmware has lost the driver's pulse. */
+ u16 bce_drv_cardiac_arrest;
+
+ /* Ethernet MAC address. */
+ u_char eaddr[6];
+
+ /*
+ * These setting are used by the host coalescing (HC) block to
+ * to control how often the status block, statistics block and
+ * interrupts are generated.
+ */
+ u16 bce_tx_quick_cons_trip_int;
+ u16 bce_tx_quick_cons_trip;
+ u16 bce_rx_quick_cons_trip_int;
+ u16 bce_rx_quick_cons_trip;
+ u16 bce_tx_ticks_int;
+ u16 bce_tx_ticks;
+ u16 bce_rx_ticks_int;
+ u16 bce_rx_ticks;
+ u32 bce_stats_ticks;
+
+ /* ToDo: Can these be removed? */
+ u16 bce_comp_prod_trip_int;
+ u16 bce_comp_prod_trip;
+ u16 bce_com_ticks_int;
+ u16 bce_com_ticks;
+ u16 bce_cmd_ticks_int;
+ u16 bce_cmd_ticks;
+
+ /* The address of the integrated PHY on the MII bus. */
+ int bce_phy_addr;
+
+ /* The device handle for the MII bus child device. */
+ device_t bce_miibus;
+
+ /* Driver maintained TX chain pointers and byte counter. */
+ u16 rx_prod;
+ u16 rx_cons;
+
+ /* Counts the bytes used in the RX chain. */
+ u32 rx_prod_bseq;
+ u16 tx_prod;
+ u16 tx_cons;
+
+ /* Counts the bytes used in the TX chain. */
+ u32 tx_prod_bseq;
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ u16 pg_prod;
+ u16 pg_cons;
+#endif
+
+ int bce_link_up;
+ struct callout bce_tick_callout;
+ struct callout bce_pulse_callout;
+
+ /* Ticks until chip reset */
+ int watchdog_timer;
+
+ /* Frame size and mbuf allocation size for RX frames. */
+ u32 max_frame_size;
+ int rx_bd_mbuf_alloc_size;
+ int rx_bd_mbuf_data_len;
+ int rx_bd_mbuf_align_pad;
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ int pg_bd_mbuf_alloc_size;
+#endif
+
+ /* Receive mode settings (i.e promiscuous, multicast, etc.). */
+ u32 rx_mode;
+
+ /* Bus tag for the bce controller. */
+ bus_dma_tag_t parent_tag;
+
+ /* H/W maintained TX buffer descriptor chain structure. */
+ bus_dma_tag_t tx_bd_chain_tag;
+ bus_dmamap_t tx_bd_chain_map[TX_PAGES];
+ struct tx_bd *tx_bd_chain[TX_PAGES];
+ bus_addr_t tx_bd_chain_paddr[TX_PAGES];
+
+ /* H/W maintained RX buffer descriptor chain structure. */
+ bus_dma_tag_t rx_bd_chain_tag;
+ bus_dmamap_t rx_bd_chain_map[RX_PAGES];
+ struct rx_bd *rx_bd_chain[RX_PAGES];
+ bus_addr_t rx_bd_chain_paddr[RX_PAGES];
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ /* H/W maintained page buffer descriptor chain structure. */
+ bus_dma_tag_t pg_bd_chain_tag;
+ bus_dmamap_t pg_bd_chain_map[PG_PAGES];
+ struct rx_bd *pg_bd_chain[PG_PAGES];
+ bus_addr_t pg_bd_chain_paddr[PG_PAGES];
+#endif
+
+ /* H/W maintained status block. */
+ bus_dma_tag_t status_tag;
+ bus_dmamap_t status_map;
+ struct status_block *status_block;
+ bus_addr_t status_block_paddr;
+
+ /* Driver maintained status block values. */
+ u16 last_status_idx;
+ u16 hw_rx_cons;
+ u16 hw_tx_cons;
+
+ /* H/W maintained statistics block. */
+ bus_dma_tag_t stats_tag;
+ bus_dmamap_t stats_map;
+ struct statistics_block *stats_block;
+ bus_addr_t stats_block_paddr;
+
+ /* H/W maintained context block. */
+ int ctx_pages;
+ bus_dma_tag_t ctx_tag;
+
+ /* BCM5709/16 use host memory for context. */
+ bus_dmamap_t ctx_map[BCE_MAX_CONTEXT];
+ void *ctx_block[BCE_MAX_CONTEXT];
+ bus_addr_t ctx_paddr[BCE_MAX_CONTEXT];
+
+ /* Bus tag for RX/TX mbufs. */
+ bus_dma_tag_t rx_mbuf_tag;
+ bus_dma_tag_t tx_mbuf_tag;
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ bus_dma_tag_t pg_mbuf_tag;
+#endif
+
+ /* S/W maintained mbuf TX chain structure. */
+ bus_dmamap_t tx_mbuf_map[TOTAL_TX_BD];
+ struct mbuf *tx_mbuf_ptr[TOTAL_TX_BD];
+
+ /* S/W maintained mbuf RX chain structure. */
+ bus_dmamap_t rx_mbuf_map[TOTAL_RX_BD];
+ struct mbuf *rx_mbuf_ptr[TOTAL_RX_BD];
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ /* S/W maintained mbuf page chain structure. */
+ bus_dmamap_t pg_mbuf_map[TOTAL_PG_BD];
+ struct mbuf *pg_mbuf_ptr[TOTAL_PG_BD];
+#endif
+
+ /* Track the number of buffer descriptors in use. */
+ u16 free_rx_bd;
+ u16 max_rx_bd;
+ u16 used_tx_bd;
+ u16 max_tx_bd;
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ u16 free_pg_bd;
+ u16 max_pg_bd;
+#endif
+
+ /* Provides access to hardware statistics through sysctl. */
+ u64 stat_IfHCInOctets;
+ u64 stat_IfHCInBadOctets;
+ u64 stat_IfHCOutOctets;
+ u64 stat_IfHCOutBadOctets;
+ u64 stat_IfHCInUcastPkts;
+ u64 stat_IfHCInMulticastPkts;
+ u64 stat_IfHCInBroadcastPkts;
+ u64 stat_IfHCOutUcastPkts;
+ u64 stat_IfHCOutMulticastPkts;
+ u64 stat_IfHCOutBroadcastPkts;
+
+ u32 stat_emac_tx_stat_dot3statsinternalmactransmiterrors;
+ u32 stat_Dot3StatsCarrierSenseErrors;
+ u32 stat_Dot3StatsFCSErrors;
+ u32 stat_Dot3StatsAlignmentErrors;
+ u32 stat_Dot3StatsSingleCollisionFrames;
+ u32 stat_Dot3StatsMultipleCollisionFrames;
+ u32 stat_Dot3StatsDeferredTransmissions;
+ u32 stat_Dot3StatsExcessiveCollisions;
+ u32 stat_Dot3StatsLateCollisions;
+ u32 stat_EtherStatsCollisions;
+ u32 stat_EtherStatsFragments;
+ u32 stat_EtherStatsJabbers;
+ u32 stat_EtherStatsUndersizePkts;
+ u32 stat_EtherStatsOversizePkts;
+ u32 stat_EtherStatsPktsRx64Octets;
+ u32 stat_EtherStatsPktsRx65Octetsto127Octets;
+ u32 stat_EtherStatsPktsRx128Octetsto255Octets;
+ u32 stat_EtherStatsPktsRx256Octetsto511Octets;
+ u32 stat_EtherStatsPktsRx512Octetsto1023Octets;
+ u32 stat_EtherStatsPktsRx1024Octetsto1522Octets;
+ u32 stat_EtherStatsPktsRx1523Octetsto9022Octets;
+ u32 stat_EtherStatsPktsTx64Octets;
+ u32 stat_EtherStatsPktsTx65Octetsto127Octets;
+ u32 stat_EtherStatsPktsTx128Octetsto255Octets;
+ u32 stat_EtherStatsPktsTx256Octetsto511Octets;
+ u32 stat_EtherStatsPktsTx512Octetsto1023Octets;
+ u32 stat_EtherStatsPktsTx1024Octetsto1522Octets;
+ u32 stat_EtherStatsPktsTx1523Octetsto9022Octets;
+ u32 stat_XonPauseFramesReceived;
+ u32 stat_XoffPauseFramesReceived;
+ u32 stat_OutXonSent;
+ u32 stat_OutXoffSent;
+ u32 stat_FlowControlDone;
+ u32 stat_MacControlFramesReceived;
+ u32 stat_XoffStateEntered;
+ u32 stat_IfInFramesL2FilterDiscards;
+ u32 stat_IfInRuleCheckerDiscards;
+ u32 stat_IfInFTQDiscards;
+ u32 stat_IfInMBUFDiscards;
+ u32 stat_IfInRuleCheckerP4Hit;
+ u32 stat_CatchupInRuleCheckerDiscards;
+ u32 stat_CatchupInFTQDiscards;
+ u32 stat_CatchupInMBUFDiscards;
+ u32 stat_CatchupInRuleCheckerP4Hit;
+
+ /* Provides access to certain firmware statistics. */
+ u32 com_no_buffers;
+
+ /* Recoverable failure counters. */
+ u32 mbuf_alloc_failed_count;
+ u32 mbuf_frag_count;
+ u32 unexpected_attention_count;
+ u32 l2fhdr_error_count;
+ u32 dma_map_addr_tx_failed_count;
+ u32 dma_map_addr_rx_failed_count;
+
+ /* Host coalescing block command register */
+ u32 hc_command;
+
+ /* Bootcode state */
+ u32 bc_state;
+
+#ifdef BCE_DEBUG
+ /* Simulated recoverable failure counters. */
+ u32 mbuf_alloc_failed_sim_count;
+ u32 unexpected_attention_sim_count;
+ u32 l2fhdr_error_sim_count;
+ u32 dma_map_addr_failed_sim_count;
+
+ /* Track the number of enqueued mbufs. */
+ int debug_tx_mbuf_alloc;
+ int debug_rx_mbuf_alloc;
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ int debug_pg_mbuf_alloc;
+#endif
+
+ /* Track how many and what type of interrupts are generated. */
+ u32 interrupts_generated;
+ u32 interrupts_handled;
+ u32 interrupts_rx;
+ u32 interrupts_tx;
+ u32 phy_interrupts;
+
+ /* Track interrupt time (25MHz clock). */
+ u64 rx_intr_time;
+ u64 tx_intr_time;
+
+ /* Lowest number of rx_bd's free. */
+ u32 rx_low_watermark;
+
+ /* Number of times the RX chain was empty. */
+ u32 rx_empty_count;
+
+#ifdef BCE_JUMBO_HDRSPLIT
+ /* Lowest number of pages free. */
+ u32 pg_low_watermark;
+
+ /* Number of times the page chain was empty. */
+ u32 pg_empty_count;
+#endif
+
+ /* Greatest number of tx_bd's used. */
+ u32 tx_hi_watermark;
+
+ /* Number of times the TX chain was full. */
+ u32 tx_full_count;
+
+ /* Number of TSO frames requested. */
+ u32 tso_frames_requested;
+
+ /* Number of TSO frames completed. */
+ u32 tso_frames_completed;
+
+ /* Number of TSO frames failed. */
+ u32 tso_frames_failed;
+
+ /* Number of IP checksum offload frames.*/
+ u32 csum_offload_ip;
+
+ /* Number of TCP/UDP checksum offload frames.*/
+ u32 csum_offload_tcp_udp;
+
+ /* Number of VLAN tagged frames received. */
+ u32 vlan_tagged_frames_rcvd;
+
+ /* Number of VLAN tagged frames stripped. */
+ u32 vlan_tagged_frames_stripped;
+#endif
+};
+
+#endif /* __BCEREG_HH_DEFINED */
+