lkml.org 
[lkml]   [2008]   [Dec]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH -net-next 3/4] firmware: convert tg3 driver to request_firmware()
    From
    Date
    Firmware blob looks like this...
    u8 firmware_major
    u8 firmware_minor
    u8 firmware_fix
    u8 pad
    __be32 start_address
    __be32 length (total, including BSS sections to be zeroed)
    data... (in __be32 words, which is native for the firmware)

    Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
    ---
    drivers/net/tg3.c | 792 +++++---------------------------------
    drivers/net/tg3.h | 4 +
    firmware/Makefile | 2 +
    firmware/WHENCE | 19 +
    firmware/tigon/tg3.bin.ihex | 175 +++++++++
    firmware/tigon/tg3_tso.bin.ihex | 446 +++++++++++++++++++++
    firmware/tigon/tg3_tso5.bin.ihex | 252 ++++++++++++
    7 files changed, 992 insertions(+), 698 deletions(-)
    create mode 100644 firmware/tigon/tg3.bin.ihex
    create mode 100644 firmware/tigon/tg3_tso.bin.ihex
    create mode 100644 firmware/tigon/tg3_tso5.bin.ihex

    diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
    index 04ae1e8..5e2dbae 100644
    --- a/drivers/net/tg3.c
    +++ b/drivers/net/tg3.c
    @@ -40,6 +40,7 @@
    #include <linux/workqueue.h>
    #include <linux/prefetch.h>
    #include <linux/dma-mapping.h>
    +#include <linux/firmware.h>

    #include <net/checksum.h>
    #include <net/ip.h>
    @@ -137,6 +138,10 @@

    #define TG3_NUM_TEST 6

    +#define FIRMWARE_TG3 "tigon/tg3.bin"
    +#define FIRMWARE_TG3TSO "tigon/tg3_tso.bin"
    +#define FIRMWARE_TG3TSO5 "tigon/tg3_tso5.bin"
    +
    static char version[] __devinitdata =
    DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";

    @@ -144,6 +149,10 @@ MODULE_AUTHOR("David S. Miller (davem@redhat.com) and Jeff Garzik (jgarzik@pobox
    MODULE_DESCRIPTION("Broadcom Tigon3 ethernet driver");
    MODULE_LICENSE("GPL");
    MODULE_VERSION(DRV_MODULE_VERSION);
    +MODULE_FIRMWARE(FIRMWARE_TG3);
    +MODULE_FIRMWARE(FIRMWARE_TG3TSO);
    +MODULE_FIRMWARE(FIRMWARE_TG3TSO5);
    +

    static int tg3_debug = -1; /* -1 == use TG3_DEF_MSG_ENABLE as value */
    module_param(tg3_debug, int, 0);
    @@ -6205,130 +6214,6 @@ static int tg3_halt(struct tg3 *tp, int kind, int silent)
    return 0;
    }

    -#define TG3_FW_RELEASE_MAJOR 0x0
    -#define TG3_FW_RELASE_MINOR 0x0
    -#define TG3_FW_RELEASE_FIX 0x0
    -#define TG3_FW_START_ADDR 0x08000000
    -#define TG3_FW_TEXT_ADDR 0x08000000
    -#define TG3_FW_TEXT_LEN 0x9c0
    -#define TG3_FW_RODATA_ADDR 0x080009c0
    -#define TG3_FW_RODATA_LEN 0x60
    -#define TG3_FW_DATA_ADDR 0x08000a40
    -#define TG3_FW_DATA_LEN 0x20
    -#define TG3_FW_SBSS_ADDR 0x08000a60
    -#define TG3_FW_SBSS_LEN 0xc
    -#define TG3_FW_BSS_ADDR 0x08000a70
    -#define TG3_FW_BSS_LEN 0x10
    -
    -static const u32 tg3FwText[(TG3_FW_TEXT_LEN / sizeof(u32)) + 1] = {
    - 0x00000000, 0x10000003, 0x00000000, 0x0000000d, 0x0000000d, 0x3c1d0800,
    - 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100000, 0x0e000018, 0x00000000,
    - 0x0000000d, 0x3c1d0800, 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100034,
    - 0x0e00021c, 0x00000000, 0x0000000d, 0x00000000, 0x00000000, 0x00000000,
    - 0x27bdffe0, 0x3c1cc000, 0xafbf0018, 0xaf80680c, 0x0e00004c, 0x241b2105,
    - 0x97850000, 0x97870002, 0x9782002c, 0x9783002e, 0x3c040800, 0x248409c0,
    - 0xafa00014, 0x00021400, 0x00621825, 0x00052c00, 0xafa30010, 0x8f860010,
    - 0x00e52825, 0x0e000060, 0x24070102, 0x3c02ac00, 0x34420100, 0x3c03ac01,
    - 0x34630100, 0xaf820490, 0x3c02ffff, 0xaf820494, 0xaf830498, 0xaf82049c,
    - 0x24020001, 0xaf825ce0, 0x0e00003f, 0xaf825d00, 0x0e000140, 0x00000000,
    - 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x2402ffff, 0xaf825404, 0x8f835400,
    - 0x34630400, 0xaf835400, 0xaf825404, 0x3c020800, 0x24420034, 0xaf82541c,
    - 0x03e00008, 0xaf805400, 0x00000000, 0x00000000, 0x3c020800, 0x34423000,
    - 0x3c030800, 0x34633000, 0x3c040800, 0x348437ff, 0x3c010800, 0xac220a64,
    - 0x24020040, 0x3c010800, 0xac220a68, 0x3c010800, 0xac200a60, 0xac600000,
    - 0x24630004, 0x0083102b, 0x5040fffd, 0xac600000, 0x03e00008, 0x00000000,
    - 0x00804821, 0x8faa0010, 0x3c020800, 0x8c420a60, 0x3c040800, 0x8c840a68,
    - 0x8fab0014, 0x24430001, 0x0044102b, 0x3c010800, 0xac230a60, 0x14400003,
    - 0x00004021, 0x3c010800, 0xac200a60, 0x3c020800, 0x8c420a60, 0x3c030800,
    - 0x8c630a64, 0x91240000, 0x00021140, 0x00431021, 0x00481021, 0x25080001,
    - 0xa0440000, 0x29020008, 0x1440fff4, 0x25290001, 0x3c020800, 0x8c420a60,
    - 0x3c030800, 0x8c630a64, 0x8f84680c, 0x00021140, 0x00431021, 0xac440008,
    - 0xac45000c, 0xac460010, 0xac470014, 0xac4a0018, 0x03e00008, 0xac4b001c,
    - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    - 0, 0, 0, 0, 0, 0,
    - 0x02000008, 0x00000000, 0x0a0001e3, 0x3c0a0001, 0x0a0001e3, 0x3c0a0002,
    - 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
    - 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
    - 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
    - 0x0a0001e3, 0x3c0a0007, 0x0a0001e3, 0x3c0a0008, 0x0a0001e3, 0x3c0a0009,
    - 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x3c0a000b,
    - 0x0a0001e3, 0x3c0a000c, 0x0a0001e3, 0x3c0a000d, 0x0a0001e3, 0x00000000,
    - 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x3c0a000e, 0x0a0001e3, 0x00000000,
    - 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
    - 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
    - 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x3c0a0013, 0x0a0001e3, 0x3c0a0014,
    - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    - 0x27bdffe0, 0x00001821, 0x00001021, 0xafbf0018, 0xafb10014, 0xafb00010,
    - 0x3c010800, 0x00220821, 0xac200a70, 0x3c010800, 0x00220821, 0xac200a74,
    - 0x3c010800, 0x00220821, 0xac200a78, 0x24630001, 0x1860fff5, 0x2442000c,
    - 0x24110001, 0x8f906810, 0x32020004, 0x14400005, 0x24040001, 0x3c020800,
    - 0x8c420a78, 0x18400003, 0x00002021, 0x0e000182, 0x00000000, 0x32020001,
    - 0x10400003, 0x00000000, 0x0e000169, 0x00000000, 0x0a000153, 0xaf915028,
    - 0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x03e00008, 0x27bd0020, 0x3c050800,
    - 0x8ca50a70, 0x3c060800, 0x8cc60a80, 0x3c070800, 0x8ce70a78, 0x27bdffe0,
    - 0x3c040800, 0x248409d0, 0xafbf0018, 0xafa00010, 0x0e000060, 0xafa00014,
    - 0x0e00017b, 0x00002021, 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x24020001,
    - 0x8f836810, 0x00821004, 0x00021027, 0x00621824, 0x03e00008, 0xaf836810,
    - 0x27bdffd8, 0xafbf0024, 0x1080002e, 0xafb00020, 0x8f825cec, 0xafa20018,
    - 0x8f825cec, 0x3c100800, 0x26100a78, 0xafa2001c, 0x34028000, 0xaf825cec,
    - 0x8e020000, 0x18400016, 0x00000000, 0x3c020800, 0x94420a74, 0x8fa3001c,
    - 0x000221c0, 0xac830004, 0x8fa2001c, 0x3c010800, 0x0e000201, 0xac220a74,
    - 0x10400005, 0x00000000, 0x8e020000, 0x24420001, 0x0a0001df, 0xae020000,
    - 0x3c020800, 0x8c420a70, 0x00021c02, 0x000321c0, 0x0a0001c5, 0xafa2001c,
    - 0x0e000201, 0x00000000, 0x1040001f, 0x00000000, 0x8e020000, 0x8fa3001c,
    - 0x24420001, 0x3c010800, 0xac230a70, 0x3c010800, 0xac230a74, 0x0a0001df,
    - 0xae020000, 0x3c100800, 0x26100a78, 0x8e020000, 0x18400028, 0x00000000,
    - 0x0e000201, 0x00000000, 0x14400024, 0x00000000, 0x8e020000, 0x3c030800,
    - 0x8c630a70, 0x2442ffff, 0xafa3001c, 0x18400006, 0xae020000, 0x00031402,
    - 0x000221c0, 0x8c820004, 0x3c010800, 0xac220a70, 0x97a2001e, 0x2442ff00,
    - 0x2c420300, 0x1440000b, 0x24024000, 0x3c040800, 0x248409dc, 0xafa00010,
    - 0xafa00014, 0x8fa6001c, 0x24050008, 0x0e000060, 0x00003821, 0x0a0001df,
    - 0x00000000, 0xaf825cf8, 0x3c020800, 0x8c420a40, 0x8fa3001c, 0x24420001,
    - 0xaf835cf8, 0x3c010800, 0xac220a40, 0x8fbf0024, 0x8fb00020, 0x03e00008,
    - 0x27bd0028, 0x27bdffe0, 0x3c040800, 0x248409e8, 0x00002821, 0x00003021,
    - 0x00003821, 0xafbf0018, 0xafa00010, 0x0e000060, 0xafa00014, 0x8fbf0018,
    - 0x03e00008, 0x27bd0020, 0x8f82680c, 0x8f85680c, 0x00021827, 0x0003182b,
    - 0x00031823, 0x00431024, 0x00441021, 0x00a2282b, 0x10a00006, 0x00000000,
    - 0x00401821, 0x8f82680c, 0x0043102b, 0x1440fffd, 0x00000000, 0x03e00008,
    - 0x00000000, 0x3c040800, 0x8c840000, 0x3c030800, 0x8c630a40, 0x0064102b,
    - 0x54400002, 0x00831023, 0x00641023, 0x2c420008, 0x03e00008, 0x38420001,
    - 0x27bdffe0, 0x00802821, 0x3c040800, 0x24840a00, 0x00003021, 0x00003821,
    - 0xafbf0018, 0xafa00010, 0x0e000060, 0xafa00014, 0x0a000216, 0x00000000,
    - 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x00000000, 0x27bdffe0, 0x3c1cc000,
    - 0xafbf0018, 0x0e00004c, 0xaf80680c, 0x3c040800, 0x24840a10, 0x03802821,
    - 0x00003021, 0x00003821, 0xafa00010, 0x0e000060, 0xafa00014, 0x2402ffff,
    - 0xaf825404, 0x3c0200aa, 0x0e000234, 0xaf825434, 0x8fbf0018, 0x03e00008,
    - 0x27bd0020, 0x00000000, 0x00000000, 0x00000000, 0x27bdffe8, 0xafb00010,
    - 0x24100001, 0xafbf0014, 0x3c01c003, 0xac200000, 0x8f826810, 0x30422000,
    - 0x10400003, 0x00000000, 0x0e000246, 0x00000000, 0x0a00023a, 0xaf905428,
    - 0x8fbf0014, 0x8fb00010, 0x03e00008, 0x27bd0018, 0x27bdfff8, 0x8f845d0c,
    - 0x3c0200ff, 0x3c030800, 0x8c630a50, 0x3442fff8, 0x00821024, 0x1043001e,
    - 0x3c0500ff, 0x34a5fff8, 0x3c06c003, 0x3c074000, 0x00851824, 0x8c620010,
    - 0x3c010800, 0xac230a50, 0x30420008, 0x10400005, 0x00871025, 0x8cc20000,
    - 0x24420001, 0xacc20000, 0x00871025, 0xaf825d0c, 0x8fa20000, 0x24420001,
    - 0xafa20000, 0x8fa20000, 0x8fa20000, 0x24420001, 0xafa20000, 0x8fa20000,
    - 0x8f845d0c, 0x3c030800, 0x8c630a50, 0x00851024, 0x1443ffe8, 0x00851824,
    - 0x27bd0008, 0x03e00008, 0x00000000, 0x00000000, 0x00000000
    -};
    -
    -static const u32 tg3FwRodata[(TG3_FW_RODATA_LEN / sizeof(u32)) + 1] = {
    - 0x35373031, 0x726c7341, 0x00000000, 0x00000000, 0x53774576, 0x656e7430,
    - 0x00000000, 0x726c7045, 0x76656e74, 0x31000000, 0x556e6b6e, 0x45766e74,
    - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x66617461, 0x6c457272,
    - 0x00000000, 0x00000000, 0x4d61696e, 0x43707542, 0x00000000, 0x00000000,
    - 0x00000000
    -};
    -
    -#if 0 /* All zeros, don't eat up space with it. */
    -u32 tg3FwData[(TG3_FW_DATA_LEN / sizeof(u32)) + 1] = {
    - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    - 0x00000000, 0x00000000, 0x00000000, 0x00000000
    -};
    -#endif
    -
    #define RX_CPU_SCRATCH_BASE 0x30000
    #define RX_CPU_SCRATCH_SIZE 0x04000
    #define TX_CPU_SCRATCH_BASE 0x34000
    @@ -6383,15 +6268,9 @@ static int tg3_halt_cpu(struct tg3 *tp, u32 offset)
    }

    struct fw_info {
    - unsigned int text_base;
    - unsigned int text_len;
    - const u32 *text_data;
    - unsigned int rodata_base;
    - unsigned int rodata_len;
    - const u32 *rodata_data;
    - unsigned int data_base;
    - unsigned int data_len;
    - const u32 *data_data;
    + unsigned int fw_base;
    + unsigned int fw_len;
    + const __be32 *fw_data;
    };

    /* tp->lock is held. */
    @@ -6428,24 +6307,11 @@ static int tg3_load_firmware_cpu(struct tg3 *tp, u32 cpu_base, u32 cpu_scratch_b
    write_op(tp, cpu_scratch_base + i, 0);
    tw32(cpu_base + CPU_STATE, 0xffffffff);
    tw32(cpu_base + CPU_MODE, tr32(cpu_base+CPU_MODE)|CPU_MODE_HALT);
    - for (i = 0; i < (info->text_len / sizeof(u32)); i++)
    - write_op(tp, (cpu_scratch_base +
    - (info->text_base & 0xffff) +
    - (i * sizeof(u32))),
    - (info->text_data ?
    - info->text_data[i] : 0));
    - for (i = 0; i < (info->rodata_len / sizeof(u32)); i++)
    - write_op(tp, (cpu_scratch_base +
    - (info->rodata_base & 0xffff) +
    - (i * sizeof(u32))),
    - (info->rodata_data ?
    - info->rodata_data[i] : 0));
    - for (i = 0; i < (info->data_len / sizeof(u32)); i++)
    + for (i = 0; i < (info->fw_len / sizeof(u32)); i++)
    write_op(tp, (cpu_scratch_base +
    - (info->data_base & 0xffff) +
    + (info->fw_base & 0xffff) +
    (i * sizeof(u32))),
    - (info->data_data ?
    - info->data_data[i] : 0));
    + be32_to_cpu(info->fw_data[i]));

    err = 0;

    @@ -6457,17 +6323,20 @@ out:
    static int tg3_load_5701_a0_firmware_fix(struct tg3 *tp)
    {
    struct fw_info info;
    + const __be32 *fw_data;
    int err, i;

    - info.text_base = TG3_FW_TEXT_ADDR;
    - info.text_len = TG3_FW_TEXT_LEN;
    - info.text_data = &tg3FwText[0];
    - info.rodata_base = TG3_FW_RODATA_ADDR;
    - info.rodata_len = TG3_FW_RODATA_LEN;
    - info.rodata_data = &tg3FwRodata[0];
    - info.data_base = TG3_FW_DATA_ADDR;
    - info.data_len = TG3_FW_DATA_LEN;
    - info.data_data = NULL;
    + fw_data = (void *)tp->fw->data;
    +
    + /* Firmware blob starts with version numbers, followed by
    + start address and length. We are setting complete length.
    + length = end_address_of_bss - start_address_of_text.
    + Remainder is the blob to be loaded contiguously
    + from start address. */
    +
    + info.fw_base = be32_to_cpu(fw_data[1]);
    + info.fw_len = tp->fw->size - 12;
    + info.fw_data = &fw_data[3];

    err = tg3_load_firmware_cpu(tp, RX_CPU_BASE,
    RX_CPU_SCRATCH_BASE, RX_CPU_SCRATCH_SIZE,
    @@ -6483,21 +6352,21 @@ static int tg3_load_5701_a0_firmware_fix(struct tg3 *tp)

    /* Now startup only the RX cpu. */
    tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff);
    - tw32_f(RX_CPU_BASE + CPU_PC, TG3_FW_TEXT_ADDR);
    + tw32_f(RX_CPU_BASE + CPU_PC, info.fw_base);

    for (i = 0; i < 5; i++) {
    - if (tr32(RX_CPU_BASE + CPU_PC) == TG3_FW_TEXT_ADDR)
    + if (tr32(RX_CPU_BASE + CPU_PC) == info.fw_base)
    break;
    tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff);
    tw32(RX_CPU_BASE + CPU_MODE, CPU_MODE_HALT);
    - tw32_f(RX_CPU_BASE + CPU_PC, TG3_FW_TEXT_ADDR);
    + tw32_f(RX_CPU_BASE + CPU_PC, info.fw_base);
    udelay(1000);
    }
    if (i >= 5) {
    printk(KERN_ERR PFX "tg3_load_firmware fails for %s "
    "to set RX CPU PC, is %08x should be %08x\n",
    tp->dev->name, tr32(RX_CPU_BASE + CPU_PC),
    - TG3_FW_TEXT_ADDR);
    + info.fw_base);
    return -ENODEV;
    }
    tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff);
    @@ -6506,547 +6375,36 @@ static int tg3_load_5701_a0_firmware_fix(struct tg3 *tp)
    return 0;
    }

    -
    -#define TG3_TSO_FW_RELEASE_MAJOR 0x1
    -#define TG3_TSO_FW_RELASE_MINOR 0x6
    -#define TG3_TSO_FW_RELEASE_FIX 0x0
    -#define TG3_TSO_FW_START_ADDR 0x08000000
    -#define TG3_TSO_FW_TEXT_ADDR 0x08000000
    -#define TG3_TSO_FW_TEXT_LEN 0x1aa0
    -#define TG3_TSO_FW_RODATA_ADDR 0x08001aa0
    -#define TG3_TSO_FW_RODATA_LEN 0x60
    -#define TG3_TSO_FW_DATA_ADDR 0x08001b20
    -#define TG3_TSO_FW_DATA_LEN 0x30
    -#define TG3_TSO_FW_SBSS_ADDR 0x08001b50
    -#define TG3_TSO_FW_SBSS_LEN 0x2c
    -#define TG3_TSO_FW_BSS_ADDR 0x08001b80
    -#define TG3_TSO_FW_BSS_LEN 0x894
    -
    -static const u32 tg3TsoFwText[(TG3_TSO_FW_TEXT_LEN / 4) + 1] = {
    - 0x0e000003, 0x00000000, 0x08001b24, 0x00000000, 0x10000003, 0x00000000,
    - 0x0000000d, 0x0000000d, 0x3c1d0800, 0x37bd4000, 0x03a0f021, 0x3c100800,
    - 0x26100000, 0x0e000010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe,
    - 0xafbf0018, 0x0e0005d8, 0x34840002, 0x0e000668, 0x00000000, 0x3c030800,
    - 0x90631b68, 0x24020002, 0x3c040800, 0x24841aac, 0x14620003, 0x24050001,
    - 0x3c040800, 0x24841aa0, 0x24060006, 0x00003821, 0xafa00010, 0x0e00067c,
    - 0xafa00014, 0x8f625c50, 0x34420001, 0xaf625c50, 0x8f625c90, 0x34420001,
    - 0xaf625c90, 0x2402ffff, 0x0e000034, 0xaf625404, 0x8fbf0018, 0x03e00008,
    - 0x27bd0020, 0x00000000, 0x00000000, 0x00000000, 0x27bdffe0, 0xafbf001c,
    - 0xafb20018, 0xafb10014, 0x0e00005b, 0xafb00010, 0x24120002, 0x24110001,
    - 0x8f706820, 0x32020100, 0x10400003, 0x00000000, 0x0e0000bb, 0x00000000,
    - 0x8f706820, 0x32022000, 0x10400004, 0x32020001, 0x0e0001f0, 0x24040001,
    - 0x32020001, 0x10400003, 0x00000000, 0x0e0000a3, 0x00000000, 0x3c020800,
    - 0x90421b98, 0x14520003, 0x00000000, 0x0e0004c0, 0x00000000, 0x0a00003c,
    - 0xaf715028, 0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010, 0x03e00008,
    - 0x27bd0020, 0x27bdffe0, 0x3c040800, 0x24841ac0, 0x00002821, 0x00003021,
    - 0x00003821, 0xafbf0018, 0xafa00010, 0x0e00067c, 0xafa00014, 0x3c040800,
    - 0x248423d8, 0xa4800000, 0x3c010800, 0xa0201b98, 0x3c010800, 0xac201b9c,
    - 0x3c010800, 0xac201ba0, 0x3c010800, 0xac201ba4, 0x3c010800, 0xac201bac,
    - 0x3c010800, 0xac201bb8, 0x3c010800, 0xac201bbc, 0x8f624434, 0x3c010800,
    - 0xac221b88, 0x8f624438, 0x3c010800, 0xac221b8c, 0x8f624410, 0xac80f7a8,
    - 0x3c010800, 0xac201b84, 0x3c010800, 0xac2023e0, 0x3c010800, 0xac2023c8,
    - 0x3c010800, 0xac2023cc, 0x3c010800, 0xac202400, 0x3c010800, 0xac221b90,
    - 0x8f620068, 0x24030007, 0x00021702, 0x10430005, 0x00000000, 0x8f620068,
    - 0x00021702, 0x14400004, 0x24020001, 0x3c010800, 0x0a000097, 0xac20240c,
    - 0xac820034, 0x3c040800, 0x24841acc, 0x3c050800, 0x8ca5240c, 0x00003021,
    - 0x00003821, 0xafa00010, 0x0e00067c, 0xafa00014, 0x8fbf0018, 0x03e00008,
    - 0x27bd0020, 0x27bdffe0, 0x3c040800, 0x24841ad8, 0x00002821, 0x00003021,
    - 0x00003821, 0xafbf0018, 0xafa00010, 0x0e00067c, 0xafa00014, 0x0e00005b,
    - 0x00000000, 0x0e0000b4, 0x00002021, 0x8fbf0018, 0x03e00008, 0x27bd0020,
    - 0x24020001, 0x8f636820, 0x00821004, 0x00021027, 0x00621824, 0x03e00008,
    - 0xaf636820, 0x27bdffd0, 0xafbf002c, 0xafb60028, 0xafb50024, 0xafb40020,
    - 0xafb3001c, 0xafb20018, 0xafb10014, 0xafb00010, 0x8f675c5c, 0x3c030800,
    - 0x24631bbc, 0x8c620000, 0x14470005, 0x3c0200ff, 0x3c020800, 0x90421b98,
    - 0x14400119, 0x3c0200ff, 0x3442fff8, 0x00e28824, 0xac670000, 0x00111902,
    - 0x306300ff, 0x30e20003, 0x000211c0, 0x00622825, 0x00a04021, 0x00071602,
    - 0x3c030800, 0x90631b98, 0x3044000f, 0x14600036, 0x00804821, 0x24020001,
    - 0x3c010800, 0xa0221b98, 0x00051100, 0x00821025, 0x3c010800, 0xac201b9c,
    - 0x3c010800, 0xac201ba0, 0x3c010800, 0xac201ba4, 0x3c010800, 0xac201bac,
    - 0x3c010800, 0xac201bb8, 0x3c010800, 0xac201bb0, 0x3c010800, 0xac201bb4,
    - 0x3c010800, 0xa42223d8, 0x9622000c, 0x30437fff, 0x3c010800, 0xa4222410,
    - 0x30428000, 0x3c010800, 0xa4231bc6, 0x10400005, 0x24020001, 0x3c010800,
    - 0xac2223f4, 0x0a000102, 0x2406003e, 0x24060036, 0x3c010800, 0xac2023f4,
    - 0x9622000a, 0x3c030800, 0x94631bc6, 0x3c010800, 0xac2023f0, 0x3c010800,
    - 0xac2023f8, 0x00021302, 0x00021080, 0x00c21021, 0x00621821, 0x3c010800,
    - 0xa42223d0, 0x3c010800, 0x0a000115, 0xa4231b96, 0x9622000c, 0x3c010800,
    - 0xa42223ec, 0x3c040800, 0x24841b9c, 0x8c820000, 0x00021100, 0x3c010800,
    - 0x00220821, 0xac311bc8, 0x8c820000, 0x00021100, 0x3c010800, 0x00220821,
    - 0xac271bcc, 0x8c820000, 0x25030001, 0x306601ff, 0x00021100, 0x3c010800,
    - 0x00220821, 0xac261bd0, 0x8c820000, 0x00021100, 0x3c010800, 0x00220821,
    - 0xac291bd4, 0x96230008, 0x3c020800, 0x8c421bac, 0x00432821, 0x3c010800,
    - 0xac251bac, 0x9622000a, 0x30420004, 0x14400018, 0x00061100, 0x8f630c14,
    - 0x3063000f, 0x2c620002, 0x1440000b, 0x3c02c000, 0x8f630c14, 0x3c020800,
    - 0x8c421b40, 0x3063000f, 0x24420001, 0x3c010800, 0xac221b40, 0x2c620002,
    - 0x1040fff7, 0x3c02c000, 0x00e21825, 0xaf635c5c, 0x8f625c50, 0x30420002,
    - 0x10400014, 0x00000000, 0x0a000147, 0x00000000, 0x3c030800, 0x8c631b80,
    - 0x3c040800, 0x94841b94, 0x01221025, 0x3c010800, 0xa42223da, 0x24020001,
    - 0x3c010800, 0xac221bb8, 0x24630001, 0x0085202a, 0x3c010800, 0x10800003,
    - 0xac231b80, 0x3c010800, 0xa4251b94, 0x3c060800, 0x24c61b9c, 0x8cc20000,
    - 0x24420001, 0xacc20000, 0x28420080, 0x14400005, 0x00000000, 0x0e000656,
    - 0x24040002, 0x0a0001e6, 0x00000000, 0x3c020800, 0x8c421bb8, 0x10400078,
    - 0x24020001, 0x3c050800, 0x90a51b98, 0x14a20072, 0x00000000, 0x3c150800,
    - 0x96b51b96, 0x3c040800, 0x8c841bac, 0x32a3ffff, 0x0083102a, 0x1440006c,
    - 0x00000000, 0x14830003, 0x00000000, 0x3c010800, 0xac2523f0, 0x1060005c,
    - 0x00009021, 0x24d60004, 0x0060a021, 0x24d30014, 0x8ec20000, 0x00028100,
    - 0x3c110800, 0x02308821, 0x0e000625, 0x8e311bc8, 0x00402821, 0x10a00054,
    - 0x00000000, 0x9628000a, 0x31020040, 0x10400005, 0x2407180c, 0x8e22000c,
    - 0x2407188c, 0x00021400, 0xaca20018, 0x3c030800, 0x00701821, 0x8c631bd0,
    - 0x3c020800, 0x00501021, 0x8c421bd4, 0x00031d00, 0x00021400, 0x00621825,
    - 0xaca30014, 0x8ec30004, 0x96220008, 0x00432023, 0x3242ffff, 0x3083ffff,
    - 0x00431021, 0x0282102a, 0x14400002, 0x02b23023, 0x00803021, 0x8e620000,
    - 0x30c4ffff, 0x00441021, 0xae620000, 0x8e220000, 0xaca20000, 0x8e220004,
    - 0x8e63fff4, 0x00431021, 0xaca20004, 0xa4a6000e, 0x8e62fff4, 0x00441021,
    - 0xae62fff4, 0x96230008, 0x0043102a, 0x14400005, 0x02469021, 0x8e62fff0,
    - 0xae60fff4, 0x24420001, 0xae62fff0, 0xaca00008, 0x3242ffff, 0x14540008,
    - 0x24020305, 0x31020080, 0x54400001, 0x34e70010, 0x24020905, 0xa4a2000c,
    - 0x0a0001cb, 0x34e70020, 0xa4a2000c, 0x3c020800, 0x8c4223f0, 0x10400003,
    - 0x3c024b65, 0x0a0001d3, 0x34427654, 0x3c02b49a, 0x344289ab, 0xaca2001c,
    - 0x30e2ffff, 0xaca20010, 0x0e0005a2, 0x00a02021, 0x3242ffff, 0x0054102b,
    - 0x1440ffa9, 0x00000000, 0x24020002, 0x3c010800, 0x0a0001e6, 0xa0221b98,
    - 0x8ec2083c, 0x24420001, 0x0a0001e6, 0xaec2083c, 0x0e0004c0, 0x00000000,
    - 0x8fbf002c, 0x8fb60028, 0x8fb50024, 0x8fb40020, 0x8fb3001c, 0x8fb20018,
    - 0x8fb10014, 0x8fb00010, 0x03e00008, 0x27bd0030, 0x27bdffd0, 0xafbf0028,
    - 0xafb30024, 0xafb20020, 0xafb1001c, 0xafb00018, 0x8f725c9c, 0x3c0200ff,
    - 0x3442fff8, 0x3c070800, 0x24e71bb4, 0x02428824, 0x9623000e, 0x8ce20000,
    - 0x00431021, 0xace20000, 0x8e220010, 0x30420020, 0x14400011, 0x00809821,
    - 0x0e00063b, 0x02202021, 0x3c02c000, 0x02421825, 0xaf635c9c, 0x8f625c90,
    - 0x30420002, 0x1040011e, 0x00000000, 0xaf635c9c, 0x8f625c90, 0x30420002,
    - 0x10400119, 0x00000000, 0x0a00020d, 0x00000000, 0x8e240008, 0x8e230014,
    - 0x00041402, 0x000231c0, 0x00031502, 0x304201ff, 0x2442ffff, 0x3042007f,
    - 0x00031942, 0x30637800, 0x00021100, 0x24424000, 0x00624821, 0x9522000a,
    - 0x3084ffff, 0x30420008, 0x104000b0, 0x000429c0, 0x3c020800, 0x8c422400,
    - 0x14400024, 0x24c50008, 0x94c20014, 0x3c010800, 0xa42223d0, 0x8cc40010,
    - 0x00041402, 0x3c010800, 0xa42223d2, 0x3c010800, 0xa42423d4, 0x94c2000e,
    - 0x3083ffff, 0x00431023, 0x3c010800, 0xac222408, 0x94c2001a, 0x3c010800,
    - 0xac262400, 0x3c010800, 0xac322404, 0x3c010800, 0xac2223fc, 0x3c02c000,
    - 0x02421825, 0xaf635c9c, 0x8f625c90, 0x30420002, 0x104000e5, 0x00000000,
    - 0xaf635c9c, 0x8f625c90, 0x30420002, 0x104000e0, 0x00000000, 0x0a000246,
    - 0x00000000, 0x94c2000e, 0x3c030800, 0x946323d4, 0x00434023, 0x3103ffff,
    - 0x2c620008, 0x1040001c, 0x00000000, 0x94c20014, 0x24420028, 0x00a22821,
    - 0x00031042, 0x1840000b, 0x00002021, 0x24e60848, 0x00403821, 0x94a30000,
    - 0x8cc20000, 0x24840001, 0x00431021, 0xacc20000, 0x0087102a, 0x1440fff9,
    - 0x24a50002, 0x31020001, 0x1040001f, 0x3c024000, 0x3c040800, 0x248423fc,
    - 0xa0a00001, 0x94a30000, 0x8c820000, 0x00431021, 0x0a000285, 0xac820000,
    - 0x8f626800, 0x3c030010, 0x00431024, 0x10400009, 0x00000000, 0x94c2001a,
    - 0x3c030800, 0x8c6323fc, 0x00431021, 0x3c010800, 0xac2223fc, 0x0a000286,
    - 0x3c024000, 0x94c2001a, 0x94c4001c, 0x3c030800, 0x8c6323fc, 0x00441023,
    - 0x00621821, 0x3c010800, 0xac2323fc, 0x3c024000, 0x02421825, 0xaf635c9c,
    - 0x8f625c90, 0x30420002, 0x1440fffc, 0x00000000, 0x9522000a, 0x30420010,
    - 0x1040009b, 0x00000000, 0x3c030800, 0x946323d4, 0x3c070800, 0x24e72400,
    - 0x8ce40000, 0x8f626800, 0x24630030, 0x00832821, 0x3c030010, 0x00431024,
    - 0x1440000a, 0x00000000, 0x94a20004, 0x3c040800, 0x8c842408, 0x3c030800,
    - 0x8c6323fc, 0x00441023, 0x00621821, 0x3c010800, 0xac2323fc, 0x3c040800,
    - 0x8c8423fc, 0x00041c02, 0x3082ffff, 0x00622021, 0x00041402, 0x00822021,
    - 0x00041027, 0xa4a20006, 0x3c030800, 0x8c632404, 0x3c0200ff, 0x3442fff8,
    - 0x00628824, 0x96220008, 0x24050001, 0x24034000, 0x000231c0, 0x00801021,
    - 0xa4c2001a, 0xa4c0001c, 0xace00000, 0x3c010800, 0xac251b60, 0xaf635cb8,
    - 0x8f625cb0, 0x30420002, 0x10400003, 0x00000000, 0x3c010800, 0xac201b60,
    - 0x8e220008, 0xaf625cb8, 0x8f625cb0, 0x30420002, 0x10400003, 0x00000000,
    - 0x3c010800, 0xac201b60, 0x3c020800, 0x8c421b60, 0x1040ffec, 0x00000000,
    - 0x3c040800, 0x0e00063b, 0x8c842404, 0x0a00032a, 0x00000000, 0x3c030800,
    - 0x90631b98, 0x24020002, 0x14620003, 0x3c034b65, 0x0a0002e1, 0x00008021,
    - 0x8e22001c, 0x34637654, 0x10430002, 0x24100002, 0x24100001, 0x00c02021,
    - 0x0e000350, 0x02003021, 0x24020003, 0x3c010800, 0xa0221b98, 0x24020002,
    - 0x1202000a, 0x24020001, 0x3c030800, 0x8c6323f0, 0x10620006, 0x00000000,
    - 0x3c020800, 0x944223d8, 0x00021400, 0x0a00031f, 0xae220014, 0x3c040800,
    - 0x248423da, 0x94820000, 0x00021400, 0xae220014, 0x3c020800, 0x8c421bbc,
    - 0x3c03c000, 0x3c010800, 0xa0201b98, 0x00431025, 0xaf625c5c, 0x8f625c50,
    - 0x30420002, 0x10400009, 0x00000000, 0x2484f7e2, 0x8c820000, 0x00431025,
    - 0xaf625c5c, 0x8f625c50, 0x30420002, 0x1440fffa, 0x00000000, 0x3c020800,
    - 0x24421b84, 0x8c430000, 0x24630001, 0xac430000, 0x8f630c14, 0x3063000f,
    - 0x2c620002, 0x1440000c, 0x3c024000, 0x8f630c14, 0x3c020800, 0x8c421b40,
    - 0x3063000f, 0x24420001, 0x3c010800, 0xac221b40, 0x2c620002, 0x1040fff7,
    - 0x00000000, 0x3c024000, 0x02421825, 0xaf635c9c, 0x8f625c90, 0x30420002,
    - 0x1440fffc, 0x00000000, 0x12600003, 0x00000000, 0x0e0004c0, 0x00000000,
    - 0x8fbf0028, 0x8fb30024, 0x8fb20020, 0x8fb1001c, 0x8fb00018, 0x03e00008,
    - 0x27bd0030, 0x8f634450, 0x3c040800, 0x24841b88, 0x8c820000, 0x00031c02,
    - 0x0043102b, 0x14400007, 0x3c038000, 0x8c840004, 0x8f624450, 0x00021c02,
    - 0x0083102b, 0x1040fffc, 0x3c038000, 0xaf634444, 0x8f624444, 0x00431024,
    - 0x1440fffd, 0x00000000, 0x8f624448, 0x03e00008, 0x3042ffff, 0x3c024000,
    - 0x00822025, 0xaf645c38, 0x8f625c30, 0x30420002, 0x1440fffc, 0x00000000,
    - 0x03e00008, 0x00000000, 0x27bdffe0, 0x00805821, 0x14c00011, 0x256e0008,
    - 0x3c020800, 0x8c4223f4, 0x10400007, 0x24020016, 0x3c010800, 0xa42223d2,
    - 0x2402002a, 0x3c010800, 0x0a000364, 0xa42223d4, 0x8d670010, 0x00071402,
    - 0x3c010800, 0xa42223d2, 0x3c010800, 0xa42723d4, 0x3c040800, 0x948423d4,
    - 0x3c030800, 0x946323d2, 0x95cf0006, 0x3c020800, 0x944223d0, 0x00832023,
    - 0x01e2c023, 0x3065ffff, 0x24a20028, 0x01c24821, 0x3082ffff, 0x14c0001a,
    - 0x01226021, 0x9582000c, 0x3042003f, 0x3c010800, 0xa42223d6, 0x95820004,
    - 0x95830006, 0x3c010800, 0xac2023e4, 0x3c010800, 0xac2023e8, 0x00021400,
    - 0x00431025, 0x3c010800, 0xac221bc0, 0x95220004, 0x3c010800, 0xa4221bc4,
    - 0x95230002, 0x01e51023, 0x0043102a, 0x10400010, 0x24020001, 0x3c010800,
    - 0x0a000398, 0xac2223f8, 0x3c030800, 0x8c6323e8, 0x3c020800, 0x94421bc4,
    - 0x00431021, 0xa5220004, 0x3c020800, 0x94421bc0, 0xa5820004, 0x3c020800,
    - 0x8c421bc0, 0xa5820006, 0x3c020800, 0x8c4223f0, 0x3c0d0800, 0x8dad23e4,
    - 0x3c0a0800, 0x144000e5, 0x8d4a23e8, 0x3c020800, 0x94421bc4, 0x004a1821,
    - 0x3063ffff, 0x0062182b, 0x24020002, 0x10c2000d, 0x01435023, 0x3c020800,
    - 0x944223d6, 0x30420009, 0x10400008, 0x00000000, 0x9582000c, 0x3042fff6,
    - 0xa582000c, 0x3c020800, 0x944223d6, 0x30420009, 0x01a26823, 0x3c020800,
    - 0x8c4223f8, 0x1040004a, 0x01203821, 0x3c020800, 0x944223d2, 0x00004021,
    - 0xa520000a, 0x01e21023, 0xa5220002, 0x3082ffff, 0x00021042, 0x18400008,
    - 0x00003021, 0x00401821, 0x94e20000, 0x25080001, 0x00c23021, 0x0103102a,
    - 0x1440fffb, 0x24e70002, 0x00061c02, 0x30c2ffff, 0x00623021, 0x00061402,
    - 0x00c23021, 0x00c02821, 0x00061027, 0xa522000a, 0x00003021, 0x2527000c,
    - 0x00004021, 0x94e20000, 0x25080001, 0x00c23021, 0x2d020004, 0x1440fffb,
    - 0x24e70002, 0x95220002, 0x00004021, 0x91230009, 0x00442023, 0x01803821,
    - 0x3082ffff, 0xa4e00010, 0x00621821, 0x00021042, 0x18400010, 0x00c33021,
    - 0x00404821, 0x94e20000, 0x24e70002, 0x00c23021, 0x30e2007f, 0x14400006,
    - 0x25080001, 0x8d630000, 0x3c02007f, 0x3442ff80, 0x00625824, 0x25670008,
    - 0x0109102a, 0x1440fff3, 0x00000000, 0x30820001, 0x10400005, 0x00061c02,
    - 0xa0e00001, 0x94e20000, 0x00c23021, 0x00061c02, 0x30c2ffff, 0x00623021,
    - 0x00061402, 0x00c23021, 0x0a00047d, 0x30c6ffff, 0x24020002, 0x14c20081,
    - 0x00000000, 0x3c020800, 0x8c42240c, 0x14400007, 0x00000000, 0x3c020800,
    - 0x944223d2, 0x95230002, 0x01e21023, 0x10620077, 0x00000000, 0x3c020800,
    - 0x944223d2, 0x01e21023, 0xa5220002, 0x3c020800, 0x8c42240c, 0x1040001a,
    - 0x31e3ffff, 0x8dc70010, 0x3c020800, 0x94421b96, 0x00e04021, 0x00072c02,
    - 0x00aa2021, 0x00431023, 0x00823823, 0x00072402, 0x30e2ffff, 0x00823821,
    - 0x00071027, 0xa522000a, 0x3102ffff, 0x3c040800, 0x948423d4, 0x00453023,
    - 0x00e02821, 0x00641823, 0x006d1821, 0x00c33021, 0x00061c02, 0x30c2ffff,
    - 0x0a00047d, 0x00623021, 0x01203821, 0x00004021, 0x3082ffff, 0x00021042,
    - 0x18400008, 0x00003021, 0x00401821, 0x94e20000, 0x25080001, 0x00c23021,
    - 0x0103102a, 0x1440fffb, 0x24e70002, 0x00061c02, 0x30c2ffff, 0x00623021,
    - 0x00061402, 0x00c23021, 0x00c02821, 0x00061027, 0xa522000a, 0x00003021,
    - 0x2527000c, 0x00004021, 0x94e20000, 0x25080001, 0x00c23021, 0x2d020004,
    - 0x1440fffb, 0x24e70002, 0x95220002, 0x00004021, 0x91230009, 0x00442023,
    - 0x01803821, 0x3082ffff, 0xa4e00010, 0x3c040800, 0x948423d4, 0x00621821,
    - 0x00c33021, 0x00061c02, 0x30c2ffff, 0x00623021, 0x00061c02, 0x3c020800,
    - 0x944223d0, 0x00c34821, 0x00441023, 0x00021fc2, 0x00431021, 0x00021043,
    - 0x18400010, 0x00003021, 0x00402021, 0x94e20000, 0x24e70002, 0x00c23021,
    - 0x30e2007f, 0x14400006, 0x25080001, 0x8d630000, 0x3c02007f, 0x3442ff80,
    - 0x00625824, 0x25670008, 0x0104102a, 0x1440fff3, 0x00000000, 0x3c020800,
    - 0x944223ec, 0x00c23021, 0x3122ffff, 0x00c23021, 0x00061c02, 0x30c2ffff,
    - 0x00623021, 0x00061402, 0x00c23021, 0x00c04021, 0x00061027, 0xa5820010,
    - 0xadc00014, 0x0a00049d, 0xadc00000, 0x8dc70010, 0x00e04021, 0x11400007,
    - 0x00072c02, 0x00aa3021, 0x00061402, 0x30c3ffff, 0x00433021, 0x00061402,
    - 0x00c22821, 0x00051027, 0xa522000a, 0x3c030800, 0x946323d4, 0x3102ffff,
    - 0x01e21021, 0x00433023, 0x00cd3021, 0x00061c02, 0x30c2ffff, 0x00623021,
    - 0x00061402, 0x00c23021, 0x00c04021, 0x00061027, 0xa5820010, 0x3102ffff,
    - 0x00051c00, 0x00431025, 0xadc20010, 0x3c020800, 0x8c4223f4, 0x10400005,
    - 0x2de205eb, 0x14400002, 0x25e2fff2, 0x34028870, 0xa5c20034, 0x3c030800,
    - 0x246323e8, 0x8c620000, 0x24420001, 0xac620000, 0x3c040800, 0x8c8423e4,
    - 0x3c020800, 0x8c421bc0, 0x3303ffff, 0x00832021, 0x00431821, 0x0062102b,
    - 0x3c010800, 0xac2423e4, 0x10400003, 0x2482ffff, 0x3c010800, 0xac2223e4,
    - 0x3c010800, 0xac231bc0, 0x03e00008, 0x27bd0020, 0x27bdffb8, 0x3c050800,
    - 0x24a51b96, 0xafbf0044, 0xafbe0040, 0xafb7003c, 0xafb60038, 0xafb50034,
    - 0xafb40030, 0xafb3002c, 0xafb20028, 0xafb10024, 0xafb00020, 0x94a90000,
    - 0x3c020800, 0x944223d0, 0x3c030800, 0x8c631bb0, 0x3c040800, 0x8c841bac,
    - 0x01221023, 0x0064182a, 0xa7a9001e, 0x106000be, 0xa7a20016, 0x24be0022,
    - 0x97b6001e, 0x24b3001a, 0x24b70016, 0x8fc20000, 0x14400008, 0x00000000,
    - 0x8fc2fff8, 0x97a30016, 0x8fc4fff4, 0x00431021, 0x0082202a, 0x148000b0,
    - 0x00000000, 0x97d50818, 0x32a2ffff, 0x104000a3, 0x00009021, 0x0040a021,
    - 0x00008821, 0x0e000625, 0x00000000, 0x00403021, 0x14c00007, 0x00000000,
    - 0x3c020800, 0x8c4223dc, 0x24420001, 0x3c010800, 0x0a000596, 0xac2223dc,
    - 0x3c100800, 0x02118021, 0x8e101bc8, 0x9608000a, 0x31020040, 0x10400005,
    - 0x2407180c, 0x8e02000c, 0x2407188c, 0x00021400, 0xacc20018, 0x31020080,
    - 0x54400001, 0x34e70010, 0x3c020800, 0x00511021, 0x8c421bd0, 0x3c030800,
    - 0x00711821, 0x8c631bd4, 0x00021500, 0x00031c00, 0x00431025, 0xacc20014,
    - 0x96040008, 0x3242ffff, 0x00821021, 0x0282102a, 0x14400002, 0x02b22823,
    - 0x00802821, 0x8e020000, 0x02459021, 0xacc20000, 0x8e020004, 0x00c02021,
    - 0x26310010, 0xac820004, 0x30e2ffff, 0xac800008, 0xa485000e, 0xac820010,
    - 0x24020305, 0x0e0005a2, 0xa482000c, 0x3242ffff, 0x0054102b, 0x1440ffc5,
    - 0x3242ffff, 0x0a00058e, 0x00000000, 0x8e620000, 0x8e63fffc, 0x0043102a,
    - 0x10400067, 0x00000000, 0x8e62fff0, 0x00028900, 0x3c100800, 0x02118021,
    - 0x0e000625, 0x8e101bc8, 0x00403021, 0x14c00005, 0x00000000, 0x8e62082c,
    - 0x24420001, 0x0a000596, 0xae62082c, 0x9608000a, 0x31020040, 0x10400005,
    - 0x2407180c, 0x8e02000c, 0x2407188c, 0x00021400, 0xacc20018, 0x3c020800,
    - 0x00511021, 0x8c421bd0, 0x3c030800, 0x00711821, 0x8c631bd4, 0x00021500,
    - 0x00031c00, 0x00431025, 0xacc20014, 0x8e63fff4, 0x96020008, 0x00432023,
    - 0x3242ffff, 0x3083ffff, 0x00431021, 0x02c2102a, 0x10400003, 0x00802821,
    - 0x97a9001e, 0x01322823, 0x8e620000, 0x30a4ffff, 0x00441021, 0xae620000,
    - 0xa4c5000e, 0x8e020000, 0xacc20000, 0x8e020004, 0x8e63fff4, 0x00431021,
    - 0xacc20004, 0x8e63fff4, 0x96020008, 0x00641821, 0x0062102a, 0x14400006,
    - 0x02459021, 0x8e62fff0, 0xae60fff4, 0x24420001, 0x0a000571, 0xae62fff0,
    - 0xae63fff4, 0xacc00008, 0x3242ffff, 0x10560003, 0x31020004, 0x10400006,
    - 0x24020305, 0x31020080, 0x54400001, 0x34e70010, 0x34e70020, 0x24020905,
    - 0xa4c2000c, 0x8ee30000, 0x8ee20004, 0x14620007, 0x3c02b49a, 0x8ee20860,
    - 0x54400001, 0x34e70400, 0x3c024b65, 0x0a000588, 0x34427654, 0x344289ab,
    - 0xacc2001c, 0x30e2ffff, 0xacc20010, 0x0e0005a2, 0x00c02021, 0x3242ffff,
    - 0x0056102b, 0x1440ff9b, 0x00000000, 0x8e620000, 0x8e63fffc, 0x0043102a,
    - 0x1440ff48, 0x00000000, 0x8fbf0044, 0x8fbe0040, 0x8fb7003c, 0x8fb60038,
    - 0x8fb50034, 0x8fb40030, 0x8fb3002c, 0x8fb20028, 0x8fb10024, 0x8fb00020,
    - 0x03e00008, 0x27bd0048, 0x27bdffe8, 0xafbf0014, 0xafb00010, 0x8f624450,
    - 0x8f634410, 0x0a0005b1, 0x00808021, 0x8f626820, 0x30422000, 0x10400003,
    - 0x00000000, 0x0e0001f0, 0x00002021, 0x8f624450, 0x8f634410, 0x3042ffff,
    - 0x0043102b, 0x1440fff5, 0x00000000, 0x8f630c14, 0x3063000f, 0x2c620002,
    - 0x1440000b, 0x00000000, 0x8f630c14, 0x3c020800, 0x8c421b40, 0x3063000f,
    - 0x24420001, 0x3c010800, 0xac221b40, 0x2c620002, 0x1040fff7, 0x00000000,
    - 0xaf705c18, 0x8f625c10, 0x30420002, 0x10400009, 0x00000000, 0x8f626820,
    - 0x30422000, 0x1040fff8, 0x00000000, 0x0e0001f0, 0x00002021, 0x0a0005c4,
    - 0x00000000, 0x8fbf0014, 0x8fb00010, 0x03e00008, 0x27bd0018, 0x00000000,
    - 0x00000000, 0x00000000, 0x27bdffe8, 0x3c1bc000, 0xafbf0014, 0xafb00010,
    - 0xaf60680c, 0x8f626804, 0x34420082, 0xaf626804, 0x8f634000, 0x24020b50,
    - 0x3c010800, 0xac221b54, 0x24020b78, 0x3c010800, 0xac221b64, 0x34630002,
    - 0xaf634000, 0x0e000605, 0x00808021, 0x3c010800, 0xa0221b68, 0x304200ff,
    - 0x24030002, 0x14430005, 0x00000000, 0x3c020800, 0x8c421b54, 0x0a0005f8,
    - 0xac5000c0, 0x3c020800, 0x8c421b54, 0xac5000bc, 0x8f624434, 0x8f634438,
    - 0x8f644410, 0x3c010800, 0xac221b5c, 0x3c010800, 0xac231b6c, 0x3c010800,
    - 0xac241b58, 0x8fbf0014, 0x8fb00010, 0x03e00008, 0x27bd0018, 0x3c040800,
    - 0x8c870000, 0x3c03aa55, 0x3463aa55, 0x3c06c003, 0xac830000, 0x8cc20000,
    - 0x14430007, 0x24050002, 0x3c0355aa, 0x346355aa, 0xac830000, 0x8cc20000,
    - 0x50430001, 0x24050001, 0x3c020800, 0xac470000, 0x03e00008, 0x00a01021,
    - 0x27bdfff8, 0x18800009, 0x00002821, 0x8f63680c, 0x8f62680c, 0x1043fffe,
    - 0x00000000, 0x24a50001, 0x00a4102a, 0x1440fff9, 0x00000000, 0x03e00008,
    - 0x27bd0008, 0x8f634450, 0x3c020800, 0x8c421b5c, 0x00031c02, 0x0043102b,
    - 0x14400008, 0x3c038000, 0x3c040800, 0x8c841b6c, 0x8f624450, 0x00021c02,
    - 0x0083102b, 0x1040fffc, 0x3c038000, 0xaf634444, 0x8f624444, 0x00431024,
    - 0x1440fffd, 0x00000000, 0x8f624448, 0x03e00008, 0x3042ffff, 0x3082ffff,
    - 0x2442e000, 0x2c422001, 0x14400003, 0x3c024000, 0x0a000648, 0x2402ffff,
    - 0x00822025, 0xaf645c38, 0x8f625c30, 0x30420002, 0x1440fffc, 0x00001021,
    - 0x03e00008, 0x00000000, 0x8f624450, 0x3c030800, 0x8c631b58, 0x0a000651,
    - 0x3042ffff, 0x8f624450, 0x3042ffff, 0x0043102b, 0x1440fffc, 0x00000000,
    - 0x03e00008, 0x00000000, 0x27bdffe0, 0x00802821, 0x3c040800, 0x24841af0,
    - 0x00003021, 0x00003821, 0xafbf0018, 0xafa00010, 0x0e00067c, 0xafa00014,
    - 0x0a000660, 0x00000000, 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x00000000,
    - 0x00000000, 0x00000000, 0x3c020800, 0x34423000, 0x3c030800, 0x34633000,
    - 0x3c040800, 0x348437ff, 0x3c010800, 0xac221b74, 0x24020040, 0x3c010800,
    - 0xac221b78, 0x3c010800, 0xac201b70, 0xac600000, 0x24630004, 0x0083102b,
    - 0x5040fffd, 0xac600000, 0x03e00008, 0x00000000, 0x00804821, 0x8faa0010,
    - 0x3c020800, 0x8c421b70, 0x3c040800, 0x8c841b78, 0x8fab0014, 0x24430001,
    - 0x0044102b, 0x3c010800, 0xac231b70, 0x14400003, 0x00004021, 0x3c010800,
    - 0xac201b70, 0x3c020800, 0x8c421b70, 0x3c030800, 0x8c631b74, 0x91240000,
    - 0x00021140, 0x00431021, 0x00481021, 0x25080001, 0xa0440000, 0x29020008,
    - 0x1440fff4, 0x25290001, 0x3c020800, 0x8c421b70, 0x3c030800, 0x8c631b74,
    - 0x8f64680c, 0x00021140, 0x00431021, 0xac440008, 0xac45000c, 0xac460010,
    - 0xac470014, 0xac4a0018, 0x03e00008, 0xac4b001c, 0x00000000, 0x00000000,
    -};
    -
    -static const u32 tg3TsoFwRodata[] = {
    - 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000,
    - 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x496e0000, 0x73746b6f,
    - 0x66662a2a, 0x00000000, 0x53774576, 0x656e7430, 0x00000000, 0x00000000,
    - 0x00000000, 0x00000000, 0x66617461, 0x6c457272, 0x00000000, 0x00000000,
    - 0x00000000,
    -};
    -
    -static const u32 tg3TsoFwData[] = {
    - 0x00000000, 0x73746b6f, 0x66666c64, 0x5f76312e, 0x362e3000, 0x00000000,
    - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    - 0x00000000,
    -};
    -
    /* 5705 needs a special version of the TSO firmware. */
    -#define TG3_TSO5_FW_RELEASE_MAJOR 0x1
    -#define TG3_TSO5_FW_RELASE_MINOR 0x2
    -#define TG3_TSO5_FW_RELEASE_FIX 0x0
    -#define TG3_TSO5_FW_START_ADDR 0x00010000
    -#define TG3_TSO5_FW_TEXT_ADDR 0x00010000
    -#define TG3_TSO5_FW_TEXT_LEN 0xe90
    -#define TG3_TSO5_FW_RODATA_ADDR 0x00010e90
    -#define TG3_TSO5_FW_RODATA_LEN 0x50
    -#define TG3_TSO5_FW_DATA_ADDR 0x00010f00
    -#define TG3_TSO5_FW_DATA_LEN 0x20
    -#define TG3_TSO5_FW_SBSS_ADDR 0x00010f20
    -#define TG3_TSO5_FW_SBSS_LEN 0x28
    -#define TG3_TSO5_FW_BSS_ADDR 0x00010f50
    -#define TG3_TSO5_FW_BSS_LEN 0x88
    -
    -static const u32 tg3Tso5FwText[(TG3_TSO5_FW_TEXT_LEN / 4) + 1] = {
    - 0x0c004003, 0x00000000, 0x00010f04, 0x00000000, 0x10000003, 0x00000000,
    - 0x0000000d, 0x0000000d, 0x3c1d0001, 0x37bde000, 0x03a0f021, 0x3c100001,
    - 0x26100000, 0x0c004010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe,
    - 0xafbf0018, 0x0c0042e8, 0x34840002, 0x0c004364, 0x00000000, 0x3c030001,
    - 0x90630f34, 0x24020002, 0x3c040001, 0x24840e9c, 0x14620003, 0x24050001,
    - 0x3c040001, 0x24840e90, 0x24060002, 0x00003821, 0xafa00010, 0x0c004378,
    - 0xafa00014, 0x0c00402c, 0x00000000, 0x8fbf0018, 0x03e00008, 0x27bd0020,
    - 0x00000000, 0x00000000, 0x27bdffe0, 0xafbf001c, 0xafb20018, 0xafb10014,
    - 0x0c0042d4, 0xafb00010, 0x3c128000, 0x24110001, 0x8f706810, 0x32020400,
    - 0x10400007, 0x00000000, 0x8f641008, 0x00921024, 0x14400003, 0x00000000,
    - 0x0c004064, 0x00000000, 0x3c020001, 0x90420f56, 0x10510003, 0x32020200,
    - 0x1040fff1, 0x00000000, 0x0c0041b4, 0x00000000, 0x08004034, 0x00000000,
    - 0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010, 0x03e00008, 0x27bd0020,
    - 0x27bdffe0, 0x3c040001, 0x24840eb0, 0x00002821, 0x00003021, 0x00003821,
    - 0xafbf0018, 0xafa00010, 0x0c004378, 0xafa00014, 0x0000d021, 0x24020130,
    - 0xaf625000, 0x3c010001, 0xa4200f50, 0x3c010001, 0xa0200f57, 0x8fbf0018,
    - 0x03e00008, 0x27bd0020, 0x00000000, 0x00000000, 0x3c030001, 0x24630f60,
    - 0x90620000, 0x27bdfff0, 0x14400003, 0x0080c021, 0x08004073, 0x00004821,
    - 0x3c022000, 0x03021024, 0x10400003, 0x24090002, 0x08004073, 0xa0600000,
    - 0x24090001, 0x00181040, 0x30431f80, 0x346f8008, 0x1520004b, 0x25eb0028,
    - 0x3c040001, 0x00832021, 0x8c848010, 0x3c050001, 0x24a50f7a, 0x00041402,
    - 0xa0a20000, 0x3c010001, 0xa0240f7b, 0x3c020001, 0x00431021, 0x94428014,
    - 0x3c010001, 0xa0220f7c, 0x3c0c0001, 0x01836021, 0x8d8c8018, 0x304200ff,
    - 0x24420008, 0x000220c3, 0x24020001, 0x3c010001, 0xa0220f60, 0x0124102b,
    - 0x1040000c, 0x00003821, 0x24a6000e, 0x01602821, 0x8ca20000, 0x8ca30004,
    - 0x24a50008, 0x24e70001, 0xacc20000, 0xacc30004, 0x00e4102b, 0x1440fff8,
    - 0x24c60008, 0x00003821, 0x3c080001, 0x25080f7b, 0x91060000, 0x3c020001,
    - 0x90420f7c, 0x2503000d, 0x00c32821, 0x00461023, 0x00021fc2, 0x00431021,
    - 0x00021043, 0x1840000c, 0x00002021, 0x91020001, 0x00461023, 0x00021fc2,
    - 0x00431021, 0x00021843, 0x94a20000, 0x24e70001, 0x00822021, 0x00e3102a,
    - 0x1440fffb, 0x24a50002, 0x00041c02, 0x3082ffff, 0x00622021, 0x00041402,
    - 0x00822021, 0x3c02ffff, 0x01821024, 0x3083ffff, 0x00431025, 0x3c010001,
    - 0x080040fa, 0xac220f80, 0x3c050001, 0x24a50f7c, 0x90a20000, 0x3c0c0001,
    - 0x01836021, 0x8d8c8018, 0x000220c2, 0x1080000e, 0x00003821, 0x01603021,
    - 0x24a5000c, 0x8ca20000, 0x8ca30004, 0x24a50008, 0x24e70001, 0xacc20000,
    - 0xacc30004, 0x00e4102b, 0x1440fff8, 0x24c60008, 0x3c050001, 0x24a50f7c,
    - 0x90a20000, 0x30430007, 0x24020004, 0x10620011, 0x28620005, 0x10400005,
    - 0x24020002, 0x10620008, 0x000710c0, 0x080040fa, 0x00000000, 0x24020006,
    - 0x1062000e, 0x000710c0, 0x080040fa, 0x00000000, 0x00a21821, 0x9463000c,
    - 0x004b1021, 0x080040fa, 0xa4430000, 0x000710c0, 0x00a21821, 0x8c63000c,
    - 0x004b1021, 0x080040fa, 0xac430000, 0x00a21821, 0x8c63000c, 0x004b2021,
    - 0x00a21021, 0xac830000, 0x94420010, 0xa4820004, 0x95e70006, 0x3c020001,
    - 0x90420f7c, 0x3c030001, 0x90630f7a, 0x00e2c823, 0x3c020001, 0x90420f7b,
    - 0x24630028, 0x01e34021, 0x24420028, 0x15200012, 0x01e23021, 0x94c2000c,
    - 0x3c010001, 0xa4220f78, 0x94c20004, 0x94c30006, 0x3c010001, 0xa4200f76,
    - 0x3c010001, 0xa4200f72, 0x00021400, 0x00431025, 0x3c010001, 0xac220f6c,
    - 0x95020004, 0x3c010001, 0x08004124, 0xa4220f70, 0x3c020001, 0x94420f70,
    - 0x3c030001, 0x94630f72, 0x00431021, 0xa5020004, 0x3c020001, 0x94420f6c,
    - 0xa4c20004, 0x3c020001, 0x8c420f6c, 0xa4c20006, 0x3c040001, 0x94840f72,
    - 0x3c020001, 0x94420f70, 0x3c0a0001, 0x954a0f76, 0x00441821, 0x3063ffff,
    - 0x0062182a, 0x24020002, 0x1122000b, 0x00832023, 0x3c030001, 0x94630f78,
    - 0x30620009, 0x10400006, 0x3062fff6, 0xa4c2000c, 0x3c020001, 0x94420f78,
    - 0x30420009, 0x01425023, 0x24020001, 0x1122001b, 0x29220002, 0x50400005,
    - 0x24020002, 0x11200007, 0x31a2ffff, 0x08004197, 0x00000000, 0x1122001d,
    - 0x24020016, 0x08004197, 0x31a2ffff, 0x3c0e0001, 0x95ce0f80, 0x10800005,
    - 0x01806821, 0x01c42021, 0x00041c02, 0x3082ffff, 0x00627021, 0x000e1027,
    - 0xa502000a, 0x3c030001, 0x90630f7b, 0x31a2ffff, 0x00e21021, 0x0800418d,
    - 0x00432023, 0x3c020001, 0x94420f80, 0x00442021, 0x00041c02, 0x3082ffff,
    - 0x00622021, 0x00807021, 0x00041027, 0x08004185, 0xa502000a, 0x3c050001,
    - 0x24a50f7a, 0x90a30000, 0x14620002, 0x24e2fff2, 0xa5e20034, 0x90a20000,
    - 0x00e21023, 0xa5020002, 0x3c030001, 0x94630f80, 0x3c020001, 0x94420f5a,
    - 0x30e5ffff, 0x00641821, 0x00451023, 0x00622023, 0x00041c02, 0x3082ffff,
    - 0x00622021, 0x00041027, 0xa502000a, 0x3c030001, 0x90630f7c, 0x24620001,
    - 0x14a20005, 0x00807021, 0x01631021, 0x90420000, 0x08004185, 0x00026200,
    - 0x24620002, 0x14a20003, 0x306200fe, 0x004b1021, 0x944c0000, 0x3c020001,
    - 0x94420f82, 0x3183ffff, 0x3c040001, 0x90840f7b, 0x00431021, 0x00e21021,
    - 0x00442023, 0x008a2021, 0x00041c02, 0x3082ffff, 0x00622021, 0x00041402,
    - 0x00822021, 0x00806821, 0x00041027, 0xa4c20010, 0x31a2ffff, 0x000e1c00,
    - 0x00431025, 0x3c040001, 0x24840f72, 0xade20010, 0x94820000, 0x3c050001,
    - 0x94a50f76, 0x3c030001, 0x8c630f6c, 0x24420001, 0x00b92821, 0xa4820000,
    - 0x3322ffff, 0x00622021, 0x0083182b, 0x3c010001, 0xa4250f76, 0x10600003,
    - 0x24a2ffff, 0x3c010001, 0xa4220f76, 0x3c024000, 0x03021025, 0x3c010001,
    - 0xac240f6c, 0xaf621008, 0x03e00008, 0x27bd0010, 0x3c030001, 0x90630f56,
    - 0x27bdffe8, 0x24020001, 0xafbf0014, 0x10620026, 0xafb00010, 0x8f620cf4,
    - 0x2442ffff, 0x3042007f, 0x00021100, 0x8c434000, 0x3c010001, 0xac230f64,
    - 0x8c434008, 0x24444000, 0x8c5c4004, 0x30620040, 0x14400002, 0x24020088,
    - 0x24020008, 0x3c010001, 0xa4220f68, 0x30620004, 0x10400005, 0x24020001,
    - 0x3c010001, 0xa0220f57, 0x080041d5, 0x00031402, 0x3c010001, 0xa0200f57,
    - 0x00031402, 0x3c010001, 0xa4220f54, 0x9483000c, 0x24020001, 0x3c010001,
    - 0xa4200f50, 0x3c010001, 0xa0220f56, 0x3c010001, 0xa4230f62, 0x24020001,
    - 0x1342001e, 0x00000000, 0x13400005, 0x24020003, 0x13420067, 0x00000000,
    - 0x080042cf, 0x00000000, 0x3c020001, 0x94420f62, 0x241a0001, 0x3c010001,
    - 0xa4200f5e, 0x3c010001, 0xa4200f52, 0x304407ff, 0x00021bc2, 0x00031823,
    - 0x3063003e, 0x34630036, 0x00021242, 0x3042003c, 0x00621821, 0x3c010001,
    - 0xa4240f58, 0x00832021, 0x24630030, 0x3c010001, 0xa4240f5a, 0x3c010001,
    - 0xa4230f5c, 0x3c060001, 0x24c60f52, 0x94c50000, 0x94c30002, 0x3c040001,
    - 0x94840f5a, 0x00651021, 0x0044102a, 0x10400013, 0x3c108000, 0x00a31021,
    - 0xa4c20000, 0x3c02a000, 0xaf620cf4, 0x3c010001, 0xa0200f56, 0x8f641008,
    - 0x00901024, 0x14400003, 0x00000000, 0x0c004064, 0x00000000, 0x8f620cf4,
    - 0x00501024, 0x104000b7, 0x00000000, 0x0800420f, 0x00000000, 0x3c030001,
    - 0x94630f50, 0x00851023, 0xa4c40000, 0x00621821, 0x3042ffff, 0x3c010001,
    - 0xa4230f50, 0xaf620ce8, 0x3c020001, 0x94420f68, 0x34420024, 0xaf620cec,
    - 0x94c30002, 0x3c020001, 0x94420f50, 0x14620012, 0x3c028000, 0x3c108000,
    - 0x3c02a000, 0xaf620cf4, 0x3c010001, 0xa0200f56, 0x8f641008, 0x00901024,
    - 0x14400003, 0x00000000, 0x0c004064, 0x00000000, 0x8f620cf4, 0x00501024,
    - 0x1440fff7, 0x00000000, 0x080042cf, 0x241a0003, 0xaf620cf4, 0x3c108000,
    - 0x8f641008, 0x00901024, 0x14400003, 0x00000000, 0x0c004064, 0x00000000,
    - 0x8f620cf4, 0x00501024, 0x1440fff7, 0x00000000, 0x080042cf, 0x241a0003,
    - 0x3c070001, 0x24e70f50, 0x94e20000, 0x03821021, 0xaf620ce0, 0x3c020001,
    - 0x8c420f64, 0xaf620ce4, 0x3c050001, 0x94a50f54, 0x94e30000, 0x3c040001,
    - 0x94840f58, 0x3c020001, 0x94420f5e, 0x00a32823, 0x00822023, 0x30a6ffff,
    - 0x3083ffff, 0x00c3102b, 0x14400043, 0x00000000, 0x3c020001, 0x94420f5c,
    - 0x00021400, 0x00621025, 0xaf620ce8, 0x94e20000, 0x3c030001, 0x94630f54,
    - 0x00441021, 0xa4e20000, 0x3042ffff, 0x14430021, 0x3c020008, 0x3c020001,
    - 0x90420f57, 0x10400006, 0x3c03000c, 0x3c020001, 0x94420f68, 0x34630624,
    - 0x0800427c, 0x0000d021, 0x3c020001, 0x94420f68, 0x3c030008, 0x34630624,
    - 0x00431025, 0xaf620cec, 0x3c108000, 0x3c02a000, 0xaf620cf4, 0x3c010001,
    - 0xa0200f56, 0x8f641008, 0x00901024, 0x14400003, 0x00000000, 0x0c004064,
    - 0x00000000, 0x8f620cf4, 0x00501024, 0x10400015, 0x00000000, 0x08004283,
    - 0x00000000, 0x3c030001, 0x94630f68, 0x34420624, 0x3c108000, 0x00621825,
    - 0x3c028000, 0xaf630cec, 0xaf620cf4, 0x8f641008, 0x00901024, 0x14400003,
    - 0x00000000, 0x0c004064, 0x00000000, 0x8f620cf4, 0x00501024, 0x1440fff7,
    - 0x00000000, 0x3c010001, 0x080042cf, 0xa4200f5e, 0x3c020001, 0x94420f5c,
    - 0x00021400, 0x00c21025, 0xaf620ce8, 0x3c020001, 0x90420f57, 0x10400009,
    - 0x3c03000c, 0x3c020001, 0x94420f68, 0x34630624, 0x0000d021, 0x00431025,
    - 0xaf620cec, 0x080042c1, 0x3c108000, 0x3c020001, 0x94420f68, 0x3c030008,
    - 0x34630604, 0x00431025, 0xaf620cec, 0x3c020001, 0x94420f5e, 0x00451021,
    - 0x3c010001, 0xa4220f5e, 0x3c108000, 0x3c02a000, 0xaf620cf4, 0x3c010001,
    - 0xa0200f56, 0x8f641008, 0x00901024, 0x14400003, 0x00000000, 0x0c004064,
    - 0x00000000, 0x8f620cf4, 0x00501024, 0x1440fff7, 0x00000000, 0x8fbf0014,
    - 0x8fb00010, 0x03e00008, 0x27bd0018, 0x00000000, 0x27bdffe0, 0x3c040001,
    - 0x24840ec0, 0x00002821, 0x00003021, 0x00003821, 0xafbf0018, 0xafa00010,
    - 0x0c004378, 0xafa00014, 0x0000d021, 0x24020130, 0xaf625000, 0x3c010001,
    - 0xa4200f50, 0x3c010001, 0xa0200f57, 0x8fbf0018, 0x03e00008, 0x27bd0020,
    - 0x27bdffe8, 0x3c1bc000, 0xafbf0014, 0xafb00010, 0xaf60680c, 0x8f626804,
    - 0x34420082, 0xaf626804, 0x8f634000, 0x24020b50, 0x3c010001, 0xac220f20,
    - 0x24020b78, 0x3c010001, 0xac220f30, 0x34630002, 0xaf634000, 0x0c004315,
    - 0x00808021, 0x3c010001, 0xa0220f34, 0x304200ff, 0x24030002, 0x14430005,
    - 0x00000000, 0x3c020001, 0x8c420f20, 0x08004308, 0xac5000c0, 0x3c020001,
    - 0x8c420f20, 0xac5000bc, 0x8f624434, 0x8f634438, 0x8f644410, 0x3c010001,
    - 0xac220f28, 0x3c010001, 0xac230f38, 0x3c010001, 0xac240f24, 0x8fbf0014,
    - 0x8fb00010, 0x03e00008, 0x27bd0018, 0x03e00008, 0x24020001, 0x27bdfff8,
    - 0x18800009, 0x00002821, 0x8f63680c, 0x8f62680c, 0x1043fffe, 0x00000000,
    - 0x24a50001, 0x00a4102a, 0x1440fff9, 0x00000000, 0x03e00008, 0x27bd0008,
    - 0x8f634450, 0x3c020001, 0x8c420f28, 0x00031c02, 0x0043102b, 0x14400008,
    - 0x3c038000, 0x3c040001, 0x8c840f38, 0x8f624450, 0x00021c02, 0x0083102b,
    - 0x1040fffc, 0x3c038000, 0xaf634444, 0x8f624444, 0x00431024, 0x1440fffd,
    - 0x00000000, 0x8f624448, 0x03e00008, 0x3042ffff, 0x3082ffff, 0x2442e000,
    - 0x2c422001, 0x14400003, 0x3c024000, 0x08004347, 0x2402ffff, 0x00822025,
    - 0xaf645c38, 0x8f625c30, 0x30420002, 0x1440fffc, 0x00001021, 0x03e00008,
    - 0x00000000, 0x8f624450, 0x3c030001, 0x8c630f24, 0x08004350, 0x3042ffff,
    - 0x8f624450, 0x3042ffff, 0x0043102b, 0x1440fffc, 0x00000000, 0x03e00008,
    - 0x00000000, 0x27bdffe0, 0x00802821, 0x3c040001, 0x24840ed0, 0x00003021,
    - 0x00003821, 0xafbf0018, 0xafa00010, 0x0c004378, 0xafa00014, 0x0800435f,
    - 0x00000000, 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x3c020001, 0x3442d600,
    - 0x3c030001, 0x3463d600, 0x3c040001, 0x3484ddff, 0x3c010001, 0xac220f40,
    - 0x24020040, 0x3c010001, 0xac220f44, 0x3c010001, 0xac200f3c, 0xac600000,
    - 0x24630004, 0x0083102b, 0x5040fffd, 0xac600000, 0x03e00008, 0x00000000,
    - 0x00804821, 0x8faa0010, 0x3c020001, 0x8c420f3c, 0x3c040001, 0x8c840f44,
    - 0x8fab0014, 0x24430001, 0x0044102b, 0x3c010001, 0xac230f3c, 0x14400003,
    - 0x00004021, 0x3c010001, 0xac200f3c, 0x3c020001, 0x8c420f3c, 0x3c030001,
    - 0x8c630f40, 0x91240000, 0x00021140, 0x00431021, 0x00481021, 0x25080001,
    - 0xa0440000, 0x29020008, 0x1440fff4, 0x25290001, 0x3c020001, 0x8c420f3c,
    - 0x3c030001, 0x8c630f40, 0x8f64680c, 0x00021140, 0x00431021, 0xac440008,
    - 0xac45000c, 0xac460010, 0xac470014, 0xac4a0018, 0x03e00008, 0xac4b001c,
    - 0x00000000, 0x00000000, 0x00000000,
    -};
    -
    -static const u32 tg3Tso5FwRodata[(TG3_TSO5_FW_RODATA_LEN / 4) + 1] = {
    - 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000,
    - 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000,
    - 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000, 0x66617461, 0x6c457272,
    - 0x00000000, 0x00000000, 0x00000000,
    -};
    -
    -static const u32 tg3Tso5FwData[(TG3_TSO5_FW_DATA_LEN / 4) + 1] = {
    - 0x00000000, 0x73746b6f, 0x66666c64, 0x5f76312e, 0x322e3000, 0x00000000,
    - 0x00000000, 0x00000000, 0x00000000,
    -};

    /* tp->lock is held. */
    static int tg3_load_tso_firmware(struct tg3 *tp)
    {
    struct fw_info info;
    + const __be32 *fw_data;
    unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size;
    int err, i;

    if (tp->tg3_flags2 & TG3_FLG2_HW_TSO)
    return 0;

    + fw_data = (void *)tp->fw->data;
    +
    + /* Firmware blob starts with version numbers, followed by
    + start address and length. We are setting complete length.
    + length = end_address_of_bss - start_address_of_text.
    + Remainder is the blob to be loaded contiguously
    + from start address. */
    +
    + info.fw_base = be32_to_cpu(fw_data[1]);
    + cpu_scratch_size = tp->fw_len;
    + info.fw_len = tp->fw->size - 12;
    + info.fw_data = &fw_data[3];
    +
    if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) {
    - info.text_base = TG3_TSO5_FW_TEXT_ADDR;
    - info.text_len = TG3_TSO5_FW_TEXT_LEN;
    - info.text_data = &tg3Tso5FwText[0];
    - info.rodata_base = TG3_TSO5_FW_RODATA_ADDR;
    - info.rodata_len = TG3_TSO5_FW_RODATA_LEN;
    - info.rodata_data = &tg3Tso5FwRodata[0];
    - info.data_base = TG3_TSO5_FW_DATA_ADDR;
    - info.data_len = TG3_TSO5_FW_DATA_LEN;
    - info.data_data = &tg3Tso5FwData[0];
    cpu_base = RX_CPU_BASE;
    cpu_scratch_base = NIC_SRAM_MBUF_POOL_BASE5705;
    - cpu_scratch_size = (info.text_len +
    - info.rodata_len +
    - info.data_len +
    - TG3_TSO5_FW_SBSS_LEN +
    - TG3_TSO5_FW_BSS_LEN);
    } else {
    - info.text_base = TG3_TSO_FW_TEXT_ADDR;
    - info.text_len = TG3_TSO_FW_TEXT_LEN;
    - info.text_data = &tg3TsoFwText[0];
    - info.rodata_base = TG3_TSO_FW_RODATA_ADDR;
    - info.rodata_len = TG3_TSO_FW_RODATA_LEN;
    - info.rodata_data = &tg3TsoFwRodata[0];
    - info.data_base = TG3_TSO_FW_DATA_ADDR;
    - info.data_len = TG3_TSO_FW_DATA_LEN;
    - info.data_data = &tg3TsoFwData[0];
    cpu_base = TX_CPU_BASE;
    cpu_scratch_base = TX_CPU_SCRATCH_BASE;
    cpu_scratch_size = TX_CPU_SCRATCH_SIZE;
    @@ -7060,21 +6418,21 @@ static int tg3_load_tso_firmware(struct tg3 *tp)

    /* Now startup the cpu. */
    tw32(cpu_base + CPU_STATE, 0xffffffff);
    - tw32_f(cpu_base + CPU_PC, info.text_base);
    + tw32_f(cpu_base + CPU_PC, info.fw_base);

    for (i = 0; i < 5; i++) {
    - if (tr32(cpu_base + CPU_PC) == info.text_base)
    + if (tr32(cpu_base + CPU_PC) == info.fw_base)
    break;
    tw32(cpu_base + CPU_STATE, 0xffffffff);
    tw32(cpu_base + CPU_MODE, CPU_MODE_HALT);
    - tw32_f(cpu_base + CPU_PC, info.text_base);
    + tw32_f(cpu_base + CPU_PC, info.fw_base);
    udelay(1000);
    }
    if (i >= 5) {
    printk(KERN_ERR PFX "tg3_load_tso_firmware fails for %s "
    "to set CPU PC, is %08x should be %08x\n",
    tp->dev->name, tr32(cpu_base + CPU_PC),
    - info.text_base);
    + info.fw_base);
    return -ENODEV;
    }
    tw32(cpu_base + CPU_STATE, 0xffffffff);
    @@ -7299,11 +6657,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
    else if (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE) {
    int fw_len;

    - fw_len = (TG3_TSO5_FW_TEXT_LEN +
    - TG3_TSO5_FW_RODATA_LEN +
    - TG3_TSO5_FW_DATA_LEN +
    - TG3_TSO5_FW_SBSS_LEN +
    - TG3_TSO5_FW_BSS_LEN);
    + fw_len = tp->fw_len;
    fw_len = (fw_len + (0x80 - 1)) & ~(0x80 - 1);
    tw32(BUFMGR_MB_POOL_ADDR,
    NIC_SRAM_MBUF_POOL_BASE5705 + fw_len);
    @@ -13580,6 +12934,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
    struct net_device *dev;
    struct tg3 *tp;
    int err, pm_cap;
    + const char *fw_name = NULL;
    char str[40];
    u64 dma_mask, persist_dma_mask;

    @@ -13735,6 +13090,9 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,

    tg3_init_bufmgr_config(tp);

    + if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0)
    + fw_name = FIRMWARE_TG3;
    +
    if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) {
    tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE;
    }
    @@ -13747,6 +13105,37 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
    } else {
    tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE | TG3_FLG2_TSO_BUG;
    }
    + if (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE) {
    + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705)
    + fw_name = FIRMWARE_TG3TSO5;
    + else
    + fw_name = FIRMWARE_TG3TSO;
    + }
    +
    + if (fw_name) {
    + const __be32 *fw_data;
    +
    + err = request_firmware(&tp->fw, fw_name, &tp->pdev->dev);
    + if (err) {
    + printk(KERN_ERR "tg3: Failed to load firmware \"%s\"\n",
    + fw_name);
    + goto err_out_iounmap;
    + }
    +
    + fw_data = (void *)tp->fw->data;
    +
    + /* Firmware blob starts with version numbers, followed by
    + start address and _full_ length including BSS sections
    + (which must be longer than the actual data, of course */
    +
    + tp->fw_len = be32_to_cpu(fw_data[2]); /* includes bss */
    + if (tp->fw_len < (tp->fw->size - 12)) {
    + printk(KERN_ERR "tg3: bogus length %d in \"%s\"\n",
    + tp->fw_len, fw_name);
    + err = -EINVAL;
    + goto err_out_fw;
    + }
    + }

    /* TSO is on by default on chips that support hardware TSO.
    * Firmware TSO on older chips gives lower performance, so it
    @@ -13778,7 +13167,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
    if (err) {
    printk(KERN_ERR PFX "Could not obtain valid ethernet address, "
    "aborting.\n");
    - goto err_out_iounmap;
    + goto err_out_fw;
    }

    if (tp->tg3_flags3 & TG3_FLG3_ENABLE_APE) {
    @@ -13787,7 +13176,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
    printk(KERN_ERR PFX "Cannot map APE registers, "
    "aborting.\n");
    err = -ENOMEM;
    - goto err_out_iounmap;
    + goto err_out_fw;
    }

    tg3_ape_lock_init(tp);
    @@ -13867,6 +13256,10 @@ err_out_apeunmap:
    tp->aperegs = NULL;
    }

    +err_out_fw:
    + if (tp->fw)
    + release_firmware(tp->fw);
    +
    err_out_iounmap:
    if (tp->regs) {
    iounmap(tp->regs);
    @@ -13892,6 +13285,9 @@ static void __devexit tg3_remove_one(struct pci_dev *pdev)
    if (dev) {
    struct tg3 *tp = netdev_priv(dev);

    + if (tp->fw)
    + release_firmware(tp->fw);
    +
    flush_scheduled_work();

    if (tp->tg3_flags3 & TG3_FLG3_USE_PHYLIB) {
    diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h
    index 8936edf..ae5da60 100644
    --- a/drivers/net/tg3.h
    +++ b/drivers/net/tg3.h
    @@ -2762,6 +2762,10 @@ struct tg3 {
    #define SST_25VF0X0_PAGE_SIZE 4098

    struct ethtool_coalesce coal;
    +
    + /* firmware info */
    + const struct firmware *fw;
    + u32 fw_len; /* includes BSS */
    };

    #endif /* !(_T3_H) */
    diff --git a/firmware/Makefile b/firmware/Makefile
    index 8a9eba2..1d63311 100644
    --- a/firmware/Makefile
    +++ b/firmware/Makefile
    @@ -47,6 +47,8 @@ fw-shipped-$(CONFIG_SND_SB16_CSP) += sb16/mulaw_main.csp sb16/alaw_main.csp \
    sb16/ima_adpcm_capture.csp
    fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \
    yamaha/ds1e_ctrl.fw
    +fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \
    + tigon/tg3_tso5.bin
    fw-shipped-$(CONFIG_USB_DABUSB) += dabusb/firmware.fw dabusb/bitstream.bin
    fw-shipped-$(CONFIG_USB_EMI26) += emi26/loader.fw emi26/firmware.fw \
    emi26/bitstream.fw
    diff --git a/firmware/WHENCE b/firmware/WHENCE
    index e315a33..fb6122a 100644
    --- a/firmware/WHENCE
    +++ b/firmware/WHENCE
    @@ -383,3 +383,22 @@ Found in hex form in kernel source, but source allegedly available at
    http://alteon.shareable.org/

    --------------------------------------------------------------------------
    +
    +Driver: tigon3 -- Broadcom Tigon3 based gigabit Ethernet cards
    +
    +File: tigon/tg3.bin
    +File: tigon/tg3_tso.bin
    +File: tigon/tg3_tso5.bin
    +
    +Licence:
    + * Firmware is:
    + * Derived from proprietary unpublished source code,
    + * Copyright (C) 2000-2003 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.
    +
    +Found in hex form in kernel source.
    +
    +--------------------------------------------------------------------------
    diff --git a/firmware/tigon/tg3.bin.ihex b/firmware/tigon/tg3.bin.ihex
    new file mode 100644
    index 0000000..d842d7c
    --- /dev/null
    +++ b/firmware/tigon/tg3.bin.ihex
    @@ -0,0 +1,175 @@
    +:10000000000000000800000000000A80000000005E
    +:1000100010000003000000000000000D0000000DB3
    +:100020003C1D080037BD3FFC03A0F0213C10080038
    +:10003000261000000E000018000000000000000D57
    +:100040003C1D080037BD3FFC03A0F0213C10080018
    +:10005000261000340E00021C000000000000000DFD
    +:1000600000000000000000000000000027BDFFE0CD
    +:100070003C1CC000AFBF0018AF80680C0E00004CE5
    +:10008000241B210597850000978700029782002C8A
    +:100090009783002E3C040800248409C0AFA00014FC
    +:1000A000000214000062182500052C00AFA3001008
    +:1000B0008F86001000E528250E000060240701024D
    +:1000C0003C02AC00344201003C03AC01346301004B
    +:1000D000AF8204903C02FFFFAF820494AF83049888
    +:1000E000AF82049C24020001AF825CE00E00003F5E
    +:1000F000AF825D000E000140000000008FBF0018BD
    +:1001000003E0000827BD00202402FFFFAF82540453
    +:100110008F83540034630400AF835400AF825404CF
    +:100120003C02080024420034AF82541C03E0000863
    +:10013000AF80540000000000000000003C020800F6
    +:10014000344230003C030800346330003C040800B3
    +:10015000348437FF3C010800AC220A6424020040CA
    +:100160003C010800AC220A683C010800AC200A608F
    +:10017000AC600000246300040083102B5040FFFD9E
    +:10018000AC60000003E0000800000000008048218F
    +:100190008FAA00103C0208008C420A603C04080050
    +:1001A0008C840A688FAB0014244300010044102B98
    +:1001B0003C010800AC230A60144000030000402109
    +:1001C0003C010800AC200A603C0208008C420A6036
    +:1001D0003C0308008C630A64912400000002114073
    +:1001E000004310210048102125080001A044000010
    +:1001F000290200081440FFF4252900013C020800F0
    +:100200008C420A603C0308008C630A648F84680C8B
    +:100210000002114000431021AC440008AC45000C22
    +:10022000AC460010AC470014AC4A001803E00008CC
    +:10023000AC4B001C000000000000000000000000AB
    +:1002400000000000000000000000000000000000AE
    +:10025000000000000000000000000000000000009E
    +:10026000000000000000000000000000000000008E
    +:10027000000000000000000000000000000000007E
    +:10028000000000000000000000000000000000006E
    +:10029000000000000000000000000000000000005E
    +:1002A000000000000000000000000000000000004E
    +:1002B000000000000000000000000000000000003E
    +:1002C000000000000000000000000000000000002E
    +:1002D000000000000000000000000000000000001E
    +:1002E000000000000000000000000000000000000E
    +:1002F00000000000000000000000000000000000FE
    +:1003000000000000000000000000000002000008E3
    +:10031000000000000A0001E33C0A00010A0001E3BA
    +:100320003C0A00020A0001E3000000000A0001E3A9
    +:10033000000000000A0001E3000000000A0001E3E1
    +:10034000000000000A0001E3000000000A0001E3D1
    +:10035000000000000A0001E3000000000A0001E3C1
    +:10036000000000000A0001E3000000000A0001E3B1
    +:100370003C0A00070A0001E33C0A00080A0001E306
    +:100380003C0A00090A0001E3000000000A0001E342
    +:10039000000000000A0001E33C0A000B0A0001E330
    +:1003A0003C0A000C0A0001E33C0A000D0A0001E3CC
    +:1003B000000000000A0001E3000000000A0001E361
    +:1003C0003C0A000E0A0001E3000000000A0001E3FD
    +:1003D000000000000A0001E3000000000A0001E341
    +:1003E000000000000A0001E3000000000A0001E331
    +:1003F000000000000A0001E3000000000A0001E321
    +:10040000000000000A0001E33C0A00130A0001E3B7
    +:100410003C0A001400000000000000000000000082
    +:1004200000000000000000000000000000000000CC
    +:1004300000000000000000000000000000000000BC
    +:1004400000000000000000000000000000000000AC
    +:10045000000000000000000000000000000000009C
    +:10046000000000000000000000000000000000008C
    +:10047000000000000000000000000000000000007C
    +:10048000000000000000000000000000000000006C
    +:10049000000000000000000000000000000000005C
    +:1004A000000000000000000000000000000000004C
    +:1004B000000000000000000000000000000000003C
    +:1004C000000000000000000000000000000000002C
    +:1004D000000000000000000000000000000000001C
    +:1004E000000000000000000000000000000000000C
    +:1004F00000000000000000000000000000000000FC
    +:1005000000000000000000000000000027BDFFE028
    +:100510000000182100001021AFBF0018AFB1001477
    +:10052000AFB000103C01080000220821AC200A7086
    +:100530003C01080000220821AC200A743C0108009C
    +:1005400000220821AC200A78246300011860FFF51E
    +:100550002442000C241100018F9068103202000424
    +:1005600014400005240400013C0208008C420A7873
    +:1005700018400003000020210E000182000000004E
    +:100580003202000110400003000000000E0001696B
    +:10059000000000000A000153AF9150288FBF0018DF
    +:1005A0008FB100148FB0001003E0000827BD0020B9
    +:1005B0003C0508008CA50A703C0608008CC60A8021
    +:1005C0003C0708008CE70A7827BDFFE03C040800E0
    +:1005D000248409D0AFBF0018AFA000100E00006047
    +:1005E000AFA000140E00017B000020218FBF001877
    +:1005F00003E0000827BD0020240200018F8368105B
    +:1006000000821004000210270062182403E0000892
    +:10061000AF83681027BDFFD8AFBF00241080002E25
    +:10062000AFB000208F825CECAFA200188F825CEC30
    +:100630003C10080026100A78AFA2001C340280008B
    +:10064000AF825CEC8E020000184000160000000033
    +:100650003C02080094420A748FA3001C000221C0CF
    +:10066000AC8300048FA2001C3C0108000E000201B4
    +:10067000AC220A7410400005000000008E02000049
    +:10068000244200010A0001DFAE0200003C02080023
    +:100690008C420A7000021C02000321C00A0001C53E
    +:1006A000AFA2001C0E000201000000001040001F5D
    +:1006B000000000008E0200008FA3001C24420001F5
    +:1006C0003C010800AC230A703C010800AC230A740A
    +:1006D0000A0001DFAE0200003C10080026100A7874
    +:1006E0008E02000018400028000000000E000201E9
    +:1006F0000000000014400024000000008E020000F2
    +:100700003C0308008C630A702442FFFFAFA3001C67
    +:1007100018400006AE02000000031402000221C0CF
    +:100720008C8200043C010800AC220A7097A2001ED3
    +:100730002442FF002C4203001440000B240240001E
    +:100740003C040800248409DCAFA00010AFA0001412
    +:100750008FA6001C240500080E0000600000382150
    +:100760000A0001DF00000000AF825CF83C020800D4
    +:100770008C420A408FA3001C24420001AF835CF826
    +:100780003C010800AC220A408FBF00248FB000203B
    +:1007900003E0000827BD002827BDFFE03C04080057
    +:1007A000248409E8000028210000302100003821BD
    +:1007B000AFBF0018AFA000100E000060AFA0001483
    +:1007C0008FBF001803E0000827BD00208F82680C4F
    +:1007D0008F85680C000218270003182B00031823CC
    +:1007E000004310240044102100A2282B10A0000672
    +:1007F00000000000004018218F82680C0043102B7D
    +:100800001440FFFD0000000003E0000800000000AD
    +:100810003C0408008C8400003C0308008C630A4000
    +:100820000064102B54400002008310230064102346
    +:100830002C42000803E000083842000127BDFFE019
    +:10084000008028213C04080024840A000000302194
    +:1008500000003821AFBF0018AFA000100E000060EC
    +:10086000AFA000140A000216000000008FBF00189D
    +:1008700003E0000827BD00200000000027BDFFE0C6
    +:100880003C1CC000AFBF00180E00004CAF80680CCD
    +:100890003C04080024840A10038028210000302131
    +:1008A00000003821AFA000100E000060AFA00014BF
    +:1008B0002402FFFFAF8254043C0200AA0E0002345F
    +:1008C000AF8254348FBF001803E0000827BD00201A
    +:1008D00000000000000000000000000027BDFFE84D
    +:1008E000AFB0001024100001AFBF00143C01C003E2
    +:1008F000AC2000008F8268103042200010400003BE
    +:10090000000000000E000246000000000A00023A4B
    +:10091000AF9054288FBF00148FB0001003E0000880
    +:1009200027BD001827BDFFF88F845D0C3C0200FF37
    +:100930003C0308008C630A503442FFF80082102404
    +:100940001043001E3C0500FF34A5FFF83C06C00321
    +:100950003C074000008518248C6200103C01080010
    +:10096000AC230A50304200081040000500871025D3
    +:100970008CC2000024420001ACC200000087102598
    +:10098000AF825D0C8FA2000024420001AFA20000E4
    +:100990008FA200008FA2000024420001AFA200003D
    +:1009A0008FA200008F845D0C3C0308008C630A500A
    +:1009B000008510241443FFE80085182427BD000893
    +:1009C00003E000080000000000000000353730316F
    +:1009D000726C734100000000000000005377457600
    +:1009E000656E743000000000726C704576656E7440
    +:1009F00031000000556E6B6E45766E74000000008D
    +:100A0000000000000000000000000000666174614A
    +:100A10006C45727200000000000000004D61696EBC
    +:100A2000437075420000000000000000000000005C
    +:100A300000000000000000000000000000000000B6
    +:100A400000000000000000000000000000000000A6
    +:100A50000000000000000000000000000000000096
    +:0C0A60000000000000000000000000008A
    +:00000001FF
    + * Firmware is:
    + * Derived from proprietary unpublished source code,
    + * Copyright (C) 2000-2003 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.
    diff --git a/firmware/tigon/tg3_tso.bin.ihex b/firmware/tigon/tg3_tso.bin.ihex
    new file mode 100644
    index 0000000..f10c4ef
    --- /dev/null
    +++ b/firmware/tigon/tg3_tso.bin.ihex
    @@ -0,0 +1,446 @@
    +:100000000106000008000000000024140E00000398
    +:100010000000000008001B24000000001000000386
    +:10002000000000000000000D0000000D3C1D080055
    +:1000300037BD400003A0F0213C100800261000004E
    +:100040000E000010000000000000000D27BDFFE0C2
    +:100050003C04FEFEAFBF00180E0005D83484000239
    +:100060000E000668000000003C03080090631B6857
    +:10007000240200023C04080024841AAC1462000329
    +:10008000240500013C04080024841AA0240600066C
    +:1000900000003821AFA000100E00067CAFA00014B5
    +:1000A0008F625C5034420001AF625C508F625C90A2
    +:1000B00034420001AF625C902402FFFF0E00003466
    +:1000C000AF6254048FBF001803E0000827BD002072
    +:1000D00000000000000000000000000027BDFFE05D
    +:1000E000AFBF001CAFB20018AFB100140E00005B30
    +:1000F000AFB0001024120002241100018F7068209C
    +:100100003202010010400003000000000E0000BB9E
    +:10011000000000008F7068203202200010400004B0
    +:10012000320200010E0001F024040001320200013D
    +:1001300010400003000000000E0000A300000000BB
    +:100140003C02080090421B9814520003000000007B
    +:100150000E0004C0000000000A00003CAF715028EF
    +:100160008FBF001C8FB200188FB100148FB0001029
    +:1001700003E0000827BD002027BDFFE03C04080085
    +:1001800024841AC0000028210000302100003821FA
    +:10019000AFBF0018AFA000100E00067CAFA0001487
    +:1001A0003C040800248423D8A48000003C010800FB
    +:1001B000A0201B983C010800AC201B9C3C010800BF
    +:1001C000AC201BA03C010800AC201BA43C01080093
    +:1001D000AC201BAC3C010800AC201BB83C01080063
    +:1001E000AC201BBC8F6244343C010800AC221B884D
    +:1001F0008F6244383C010800AC221B8C8F62441093
    +:10020000AC80F7A83C010800AC201B843C0108002E
    +:10021000AC2023E03C010800AC2023C83C010800CE
    +:10022000AC2023CC3C010800AC2024003C01080099
    +:10023000AC221B908F6200682403000700021702A3
    +:1002400010430005000000008F62006800021702E2
    +:1002500014400004240200013C0108000A00009739
    +:10026000AC20240CAC8200343C04080024841ACC5A
    +:100270003C0508008CA5240C00003021000038212A
    +:10028000AFA000100E00067CAFA000148FBF0018B6
    +:1002900003E0000827BD002027BDFFE03C04080064
    +:1002A00024841AD8000028210000302100003821C1
    +:1002B000AFBF0018AFA000100E00067CAFA0001466
    +:1002C0000E00005B000000000E0000B400002021C2
    +:1002D0008FBF001803E0000827BD002024020001A2
    +:1002E0008F63682000821004000210270062182427
    +:1002F00003E00008AF63682027BDFFD0AFBF002C2C
    +:10030000AFB60028AFB50024AFB40020AFB3001CD7
    +:10031000AFB20018AFB10014AFB000108F675C5CD3
    +:100320003C03080024631BBC8C62000014470005DA
    +:100330003C0200FF3C02080090421B981440011947
    +:100340003C0200FF3442FFF800E28824AC67000062
    +:1003500000111902306300FF30E20003000211C0F7
    +:100360000062282500A04021000716023C03080077
    +:1003700090631B983044000F1460003600804821C1
    +:10038000240200013C010800A0221B980005110076
    +:10039000008210253C010800AC201B9C3C01080099
    +:1003A000AC201BA03C010800AC201BA43C010800B1
    +:1003B000AC201BAC3C010800AC201BB83C01080081
    +:1003C000AC201BB03C010800AC201BB43C01080071
    +:1003D000A42223D89622000C30437FFF3C01080062
    +:1003E000A4222410304280003C010800A4231BC634
    +:1003F00010400005240200013C010800AC2223F457
    +:100400000A0001022406003E240600363C010800D2
    +:10041000AC2023F49622000A3C03080094631BC618
    +:100420003C010800AC2023F03C010800AC2023F87C
    +:10043000000213020002108000C210210062182185
    +:100440003C010800A42223D03C0108000A00011549
    +:10045000A4231B969622000C3C010800A42223EC46
    +:100460003C04080024841B9C8C82000000021100C4
    +:100470003C01080000220821AC311BC88C8200001E
    +:10048000000211003C01080000220821AC271BCC0F
    +:100490008C82000025030001306601FF000211007C
    +:1004A0003C01080000220821AC261BD08C820000F1
    +:1004B000000211003C01080000220821AC291BD4D5
    +:1004C000962300083C0208008C421BAC0043282104
    +:1004D0003C010800AC251BAC9622000A3042000407
    +:1004E00014400018000611008F630C143063000FD5
    +:1004F0002C6200021440000B3C02C0008F630C14FD
    +:100500003C0208008C421B403063000F2442000173
    +:100510003C010800AC221B402C6200021040FFF797
    +:100520003C02C00000E21825AF635C5C8F625C5047
    +:100530003042000210400014000000000A00014791
    +:10054000000000003C0308008C631B803C04080092
    +:1005500094841B94012210253C010800A42223DA74
    +:10056000240200013C010800AC221BB824630001F6
    +:100570000085202A3C01080010800003AC231B806A
    +:100580003C010800A4251B943C06080024C61B9CC3
    +:100590008CC2000024420001ACC20000284200804E
    +:1005A00014400005000000000E000656240400025E
    +:1005B0000A0001E6000000003C0208008C421BB863
    +:1005C00010400078240200013C05080090A51B980B
    +:1005D00014A20072000000003C15080096B51B969E
    +:1005E0003C0408008C841BAC32A3FFFF0083102A5C
    +:1005F0001440006C000000001483000300000000A1
    +:100600003C010800AC2523F01060005C0000902144
    +:1006100024D600040060A02124D300148EC2000060
    +:10062000000281003C110800023088210E000625DE
    +:100630008E311BC80040282110A00054000000008B
    +:100640009628000A31020040104000052407180CCB
    +:100650008E22000C2407188C00021400ACA2001893
    +:100660003C030800007018218C631BD03C0208007A
    +:10067000005010218C421BD400031D000002140006
    +:1006800000621825ACA300148EC300049622000853
    +:10069000004320233242FFFF3083FFFF004310213D
    +:1006A0000282102A1440000202B23023008030215E
    +:1006B0008E62000030C4FFFF00441021AE620000D3
    +:1006C0008E220000ACA200008E2200048E63FFF494
    +:1006D00000431021ACA20004A4A6000E8E62FFF419
    +:1006E00000441021AE62FFF4962300080043102A54
    +:1006F00014400005024690218E62FFF0AE60FFF4C8
    +:1007000024420001AE62FFF0ACA000083242FFFFBD
    +:1007100014540008240203053102008054400001F3
    +:1007200034E7001024020905A4A2000C0A0001CB42
    +:1007300034E70020A4A2000C3C0208008C4223F005
    +:10074000104000033C024B650A0001D3344276544A
    +:100750003C02B49A344289ABACA2001C30E2FFFFE9
    +:10076000ACA200100E0005A200A020213242FFFF23
    +:100770000054102B1440FFA90000000024020002C6
    +:100780003C0108000A0001E6A0221B988EC2083C2A
    +:10079000244200010A0001E6AEC2083C0E0004C07B
    +:1007A000000000008FBF002C8FB600288FB50024FA
    +:1007B0008FB400208FB3001C8FB200188FB10014CB
    +:1007C0008FB0001003E0000827BD003027BDFFD028
    +:1007D000AFBF0028AFB30024AFB20020AFB1001C00
    +:1007E000AFB000188F725C9C3C0200FF3442FFF8EF
    +:1007F0003C07080024E71BB4024288249623000E1D
    +:100800008CE2000000431021ACE200008E220010B8
    +:100810003042002014400011008098210E00063B59
    +:10082000022020213C02C00002421825AF635C9CDC
    +:100830008F625C90304200021040011E00000000F8
    +:10084000AF635C9C8F625C903042000210400119E3
    +:10085000000000000A00020D000000008E240008C5
    +:100860008E23001400041402000231C0000315029C
    +:10087000304201FF2442FFFF3042007F0003194253
    +:1008800030637800000211002442400000624821D9
    +:100890009522000A3084FFFF30420008104000B06B
    +:1008A000000429C03C0208008C42240014400024AB
    +:1008B00024C5000894C200143C010800A42223D0DF
    +:1008C0008CC40010000414023C010800A42223D2AE
    +:1008D0003C010800A42423D494C2000E3083FFFFFF
    +:1008E000004310233C010800AC22240894C2001AE3
    +:1008F0003C010800AC2624003C010800AC32240472
    +:100900003C010800AC2223FC3C02C0000242182536
    +:10091000AF635C9C8F625C9030420002104000E547
    +:1009200000000000AF635C9C8F625C90304200026C
    +:10093000104000E0000000000A0002460000000035
    +:1009400094C2000E3C030800946323D40043402368
    +:100950003103FFFF2C6200081040001C0000000063
    +:1009600094C200142442002800A22821000310424F
    +:100970001840000B0000202124E6084800403821E0
    +:1009800094A300008CC200002484000100431021C5
    +:10099000ACC200000087102A1440FFF924A5000211
    +:1009A000310200011040001F3C0240003C040800DE
    +:1009B000248423FCA0A0000194A300008C820000EA
    +:1009C000004310210A000285AC8200008F6268009B
    +:1009D0003C030010004310241040000900000000F8
    +:1009E00094C2001A3C0308008C6323FC00431021CE
    +:1009F0003C010800AC2223FC0A0002863C024000B5
    +:100A000094C2001A94C4001C3C0308008C6323FCAD
    +:100A100000441023006218213C010800AC2323FC91
    +:100A20003C02400002421825AF635C9C8F625C90E0
    +:100A3000304200021440FFFC000000009522000A32
    +:100A4000304200101040009B000000003C030800F2
    +:100A5000946323D43C07080024E724008CE40000BE
    +:100A60008F62680024630030008328213C0300105B
    +:100A7000004310241440000A0000000094A2000467
    +:100A80003C0408008C8424083C0308008C6323FC8D
    +:100A900000441023006218213C010800AC2323FC11
    +:100AA0003C0408008C8423FC00041C023082FFFFFD
    +:100AB000006220210004140200822021000410277B
    +:100AC000A4A200063C0308008C6324043C0200FF3F
    +:100AD0003442FFF8006288249622000824050001B1
    +:100AE00024034000000231C000801021A4C2001A7B
    +:100AF000A4C0001CACE000003C010800AC251B6059
    +:100B0000AF635CB88F625CB03042000210400003FB
    +:100B1000000000003C010800AC201B608E22000891
    +:100B2000AF625CB88F625CB03042000210400003DC
    +:100B3000000000003C010800AC201B603C020800E3
    +:100B40008C421B601040FFEC000000003C040800D9
    +:100B50000E00063B8C8424040A00032A00000000D7
    +:100B60003C03080090631B982402000214620003F7
    +:100B70003C034B650A0002E1000080218E22001C2C
    +:100B80003463765410430002241000022410000144
    +:100B900000C020210E000350020030212402000377
    +:100BA0003C010800A0221B98240200021202000A45
    +:100BB000240200013C0308008C6323F0106200064D
    +:100BC000000000003C020800944223D800021400F8
    +:100BD0000A00031FAE2200143C040800248423DA18
    +:100BE0009482000000021400AE2200143C020800AF
    +:100BF0008C421BBC3C03C0003C010800A0201B9899
    +:100C000000431025AF625C5C8F625C503042000292
    +:100C100010400009000000002484F7E28C820000EC
    +:100C200000431025AF625C5C8F625C503042000272
    +:100C30001440FFFA000000003C02080024421B841C
    +:100C40008C43000024630001AC4300008F630C144C
    +:100C50003063000F2C6200021440000C3C02400084
    +:100C60008F630C143C0208008C421B403063000F61
    +:100C7000244200013C010800AC221B402C6200020F
    +:100C80001040FFF7000000003C024000024218251F
    +:100C9000AF635C9C8F625C90304200021440FFFCAA
    +:100CA0000000000012600003000000000E0004C0FD
    +:100CB000000000008FBF00288FB300248FB20020F7
    +:100CC0008FB1001C8FB0001803E0000827BD003072
    +:100CD0008F6344503C04080024841B888C820000ED
    +:100CE00000031C020043102B144000073C0380004B
    +:100CF0008C8400048F62445000021C020083102B7D
    +:100D00001040FFFC3C038000AF6344448F624444C6
    +:100D1000004310241440FFFD000000008F6244488F
    +:100D200003E000083042FFFF3C0240000082202523
    +:100D3000AF645C388F625C30304200021440FFFCCC
    +:100D40000000000003E000080000000027BDFFE0F5
    +:100D50000080582114C00011256E00083C020800D4
    +:100D60008C4223F410400007240200163C010800C6
    +:100D7000A42223D22402002A3C0108000A000364B2
    +:100D8000A42223D48D670010000714023C01080040
    +:100D9000A42223D23C010800A42723D43C04080049
    +:100DA000948423D43C030800946323D295CF000697
    +:100DB0003C020800944223D00083202301E2C02398
    +:100DC0003065FFFF24A2002801C248213082FFFFC6
    +:100DD00014C0001A012260219582000C3042003FAD
    +:100DE0003C010800A42223D69582000495830006C6
    +:100DF0003C010800AC2023E43C010800AC2023E8BF
    +:100E000000021400004310253C010800AC221BC066
    +:100E1000952200043C010800A4221BC49523000273
    +:100E200001E510230043102A1040001024020001A5
    +:100E30003C0108000A000398AC2223F83C03080098
    +:100E40008C6323E83C02080094421BC40043102139
    +:100E5000A52200043C02080094421BC0A5820004A5
    +:100E60003C0208008C421BC0A58200063C02080020
    +:100E70008C4223F03C0D08008DAD23E43C0A0800B1
    +:100E8000144000E58D4A23E83C02080094421BC44C
    +:100E9000004A18213063FFFF0062182B2402000271
    +:100EA00010C2000D014350233C020800944223D697
    +:100EB0003042000910400008000000009582000C3C
    +:100EC0003042FFF6A582000C3C020800944223D673
    +:100ED0003042000901A268233C0208008C4223F83A
    +:100EE0001040004A012038213C020800944223D2DD
    +:100EF00000004021A520000A01E21023A5220002E3
    +:100F00003082FFFF0002104218400008000030212C
    +:100F10000040182194E200002508000100C23021A1
    +:100F20000103102A1440FFFB24E7000200061C0204
    +:100F300030C2FFFF006230210006140200C23021DF
    +:100F400000C0282100061027A522000A0000302139
    +:100F50002527000C0000402194E200002508000134
    +:100F600000C230212D0200041440FFFB24E70002E0
    +:100F70009522000200004021912300090044202313
    +:100F8000018038213082FFFFA4E0001000621821A8
    +:100F9000000210421840001000C3302100404821D8
    +:100FA00094E2000024E7000200C2302130E2007F1A
    +:100FB00014400006250800018D6300003C02007FFC
    +:100FC0003442FF8000625824256700080109102A76
    +:100FD0001440FFF3000000003082000110400005C3
    +:100FE00000061C02A0E0000194E2000000C23021D3
    +:100FF00000061C0230C2FFFF00623021000614020E
    +:1010000000C230210A00047D30C6FFFF2402000226
    +:1010100014C20081000000003C0208008C42240C35
    +:1010200014400007000000003C020800944223D254
    +:101030009523000201E210231062007700000000F7
    +:101040003C020800944223D201E21023A5220002B0
    +:101050003C0208008C42240C1040001A31E3FFFFD0
    +:101060008DC700103C02080094421B9600E040210E
    +:1010700000072C0200AA20210043102300823823FD
    +:101080000007240230E2FFFF00823821000710270A
    +:10109000A522000A3102FFFF3C040800948423D4F7
    +:1010A0000045302300E0282100641823006D18213A
    +:1010B00000C3302100061C0230C2FFFF0A00047D7D
    +:1010C0000062302101203821000040213082FFFFE2
    +:1010D0000002104218400008000030210040182192
    +:1010E00094E200002508000100C230210103102A0B
    +:1010F0001440FFFB24E7000200061C0230C2FFFF81
    +:10110000006230210006140200C2302100C02821F4
    +:1011100000061027A522000A000030212527000C18
    +:101120000000402194E200002508000100C23021A7
    +:101130002D0200041440FFFB24E700029522000268
    +:101140000000402191230009004420230180382120
    +:101150003082FFFFA4E000103C040800948423D4F4
    +:101160000062182100C3302100061C0230C2FFFFBC
    +:101170000062302100061C023C020800944223D089
    +:1011800000C348210044102300021FC20043102165
    +:1011900000021043184000100000302100402021C0
    +:1011A00094E2000024E7000200C2302130E2007F18
    +:1011B00014400006250800018D6300003C02007FFA
    +:1011C0003442FF8000625824256700080104102A79
    +:1011D0001440FFF3000000003C020800944223EC9E
    +:1011E00000C230213122FFFF00C2302100061C0264
    +:1011F00030C2FFFF006230210006140200C230211D
    +:1012000000C0402100061027A5820010ADC00014C8
    +:101210000A00049DADC000008DC7001000E0402111
    +:101220001140000700072C0200AA3021000614021A
    +:1012300030C3FFFF004330210006140200C2282102
    +:1012400000051027A522000A3C030800946323D45C
    +:101250003102FFFF01E210210043302300CD302195
    +:1012600000061C0230C2FFFF00623021000614029B
    +:1012700000C2302100C0402100061027A5820010C6
    +:101280003102FFFF00051C0000431025ADC2001015
    +:101290003C0208008C4223F4104000052DE205EBCF
    +:1012A0001440000225E2FFF234028870A5C2003427
    +:1012B0003C030800246323E88C6200002442000100
    +:1012C000AC6200003C0408008C8423E43C0208006B
    +:1012D0008C421BC03303FFFF0083202100431821F1
    +:1012E0000062102B3C010800AC2423E410400003F2
    +:1012F0002482FFFF3C010800AC2223E43C010800EB
    +:10130000AC231BC003E0000827BD002027BDFFB8A9
    +:101310003C05080024A51B96AFBF0044AFBE0040AB
    +:10132000AFB7003CAFB60038AFB50034AFB4003053
    +:10133000AFB3002CAFB20028AFB10024AFB0002093
    +:1013400094A900003C020800944223D03C0308000A
    +:101350008C631BB03C0408008C841BAC012210235E
    +:101360000064182AA7A9001E106000BEA7A20016DC
    +:1013700024BE002297B6001E24B3001A24B700161C
    +:101380008FC2000014400008000000008FC2FFF868
    +:1013900097A300168FC4FFF4004310210082202A77
    +:1013A000148000B00000000097D5081832A2FFFF9B
    +:1013B000104000A3000090210040A02100008821DF
    +:1013C0000E000625000000000040302114C0000778
    +:1013D000000000003C0208008C4223DC2442000193
    +:1013E0003C0108000A000596AC2223DC3C100800F2
    +:1013F000021180218E101BC89608000A310200409D
    +:10140000104000052407180C8E02000C2407188CCD
    +:1014100000021400ACC200183102008054400001E8
    +:1014200034E700103C020800005110218C421BD010
    +:101430003C030800007118218C631BD400021500C6
    +:1014400000031C0000431025ACC2001496040008E1
    +:101450003242FFFF008210210282102A1440000253
    +:1014600002B22823008028218E020000024590212C
    +:10147000ACC200008E02000400C020212631001002
    +:10148000AC82000430E2FFFFAC800008A485000EAF
    +:10149000AC820010240203050E0005A2A482000CF9
    +:1014A0003242FFFF0054102B1440FFC53242FFFFB1
    +:1014B0000A00058E000000008E6200008E63FFFCB3
    +:1014C0000043102A10400067000000008E62FFF009
    +:1014D000000289003C100800021180210E00062540
    +:1014E0008E101BC80040302114C000050000000011
    +:1014F0008E62082C244200010A000596AE62082C78
    +:101500009608000A31020040104000052407180C1C
    +:101510008E02000C2407188C00021400ACC20018C4
    +:101520003C020800005110218C421BD03C030800F3
    +:10153000007118218C631BD40002150000031C00ED
    +:1015400000431025ACC200148E63FFF4960200081D
    +:10155000004320233242FFFF3083FFFF004310216E
    +:1015600002C2102A104000030080282197A9001E03
    +:10157000013228238E62000030A4FFFF00441021B6
    +:10158000AE620000A4C5000E8E020000ACC20000D6
    +:101590008E0200048E63FFF400431021ACC20004ED
    +:1015A0008E63FFF496020008006418210062102A7E
    +:1015B00014400006024590218E62FFF0AE60FFF4F9
    +:1015C000244200010A000571AE62FFF0AE63FFF431
    +:1015D000ACC000083242FFFF105600033102000485
    +:1015E000104000062402030531020080544000012F
    +:1015F00034E7001034E7002024020905A4C2000CDF
    +:101600008EE300008EE20004146200073C02B49AEC
    +:101610008EE208605440000134E704003C024B6550
    +:101620000A00058834427654344289ABACC2001CAF
    +:1016300030E2FFFFACC200100E0005A200C0202166
    +:101640003242FFFF0056102B1440FF9B00000000A9
    +:101650008E6200008E63FFFC0043102A1440FF4896
    +:10166000000000008FBF00448FBE00408FB7003CD9
    +:101670008FB600388FB500348FB400308FB3002C94
    +:101680008FB200288FB100248FB0002003E0000843
    +:1016900027BD004827BDFFE8AFBF0014AFB0001062
    +:1016A0008F6244508F6344100A0005B1008080218E
    +:1016B0008F626820304220001040000300000000CC
    +:1016C0000E0001F0000020218F6244508F6344100F
    +:1016D0003042FFFF0043102B1440FFF500000000D4
    +:1016E0008F630C143063000F2C6200021440000B57
    +:1016F000000000008F630C143C0208008C421B4069
    +:101700003063000F244200013C010800AC221B4062
    +:101710002C6200021040FFF700000000AF705C1860
    +:101720008F625C103042000210400009000000008F
    +:101730008F626820304220001040FFF80000000057
    +:101740000E0001F0000020210A0005C40000000086
    +:101750008FBF00148FB0001003E0000827BD0018F1
    +:1017600000000000000000000000000027BDFFE8AE
    +:101770003C1BC000AFBF0014AFB00010AF60680CDE
    +:101780008F62680434420082AF6268048F63400055
    +:1017900024020B503C010800AC221B5424020B789D
    +:1017A0003C010800AC221B6434630002AF634000BC
    +:1017B0000E000605008080213C010800A0221B6865
    +:1017C000304200FF24030002144300050000000023
    +:1017D0003C0208008C421B540A0005F8AC5000C0C3
    +:1017E0003C0208008C421B54AC5000BC8F62443455
    +:1017F0008F6344388F6444103C010800AC221B5CAA
    +:101800003C010800AC231B6C3C010800AC241B58B5
    +:101810008FBF00148FB0001003E0000827BD001830
    +:101820003C0408008C8700003C03AA553463AA5589
    +:101830003C06C003AC8300008CC2000014430007C8
    +:10184000240500023C0355AA346355AAAC8300006A
    +:101850008CC2000050430001240500013C02080036
    +:10186000AC47000003E0000800A0102127BDFFF8EE
    +:1018700018800009000028218F63680C8F62680CB3
    +:101880001043FFFE0000000024A5000100A4102A60
    +:101890001440FFF90000000003E0000827BD000825
    +:1018A0008F6344503C0208008C421B5C00031C0206
    +:1018B0000043102B144000083C0380003C04080047
    +:1018C0008C841B6C8F62445000021C020083102B1E
    +:1018D0001040FFFC3C038000AF6344448F624444EB
    +:1018E000004310241440FFFD000000008F624448B4
    +:1018F00003E000083042FFFF3082FFFF2442E00097
    +:101900002C422001144000033C0240000A0006481B
    +:101910002402FFFF00822025AF645C388F625C30B8
    +:10192000304200021440FFFC0000102103E00008D8
    +:10193000000000008F6244503C0308008C631B5879
    +:101940000A0006513042FFFF8F6244503042FFFFD1
    +:101950000043102B1440FFFC0000000003E00008CF
    +:101960000000000027BDFFE0008028213C040800A3
    +:1019700024841AF00000302100003821AFBF001885
    +:10198000AFA000100E00067CAFA000140A00066095
    +:10199000000000008FBF001803E0000827BD0020F2
    +:1019A0000000000000000000000000003C020800F1
    +:1019B000344230003C030800346330003C0408002B
    +:1019C000348437FF3C010800AC221B742402004021
    +:1019D0003C010800AC221B783C010800AC201B70C5
    +:1019E000AC600000246300040083102B5040FFFD16
    +:1019F000AC60000003E00008000000000080482107
    +:101A00008FAA00103C0208008C421B703C040800A6
    +:101A10008C841B788FAB0014244300010044102BEE
    +:101A20003C010800AC231B7014400003000040215F
    +:101A30003C010800AC201B703C0208008C421B706B
    +:101A40003C0308008C631B749124000000021140C9
    +:101A5000004310210048102125080001A044000087
    +:101A6000290200081440FFF4252900013C02080067
    +:101A70008C421B703C0308008C631B748F64680CE1
    +:101A80000002114000431021AC440008AC45000C9A
    +:101A9000AC460010AC470014AC4A001803E0000844
    +:101AA000AC4B001C00000000000000004D61696E9E
    +:101AB00043707542000000004D61696E43707541CE
    +:101AC00000000000000000000000000073746B6F55
    +:101AD00066666C64496E000073746B6F66662A2AD2
    +:101AE0000000000053774576656E743000000000FA
    +:101AF000000000000000000000000000666174614A
    +:101B00006C45727200000000000000000000000040
    +:101B100000000000000000000000000000000000C5
    +:101B200000000000000000000000000000000000B5
    +:101B300073746B6F66666C645F76312E362E300080
    +:101B40000000000000000000000000000000000095
    +:0C1B500000000000000000000000000089
    +:00000001FF
    + * Firmware is:
    + * Derived from proprietary unpublished source code,
    + * Copyright (C) 2000-2003 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.
    diff --git a/firmware/tigon/tg3_tso5.bin.ihex b/firmware/tigon/tg3_tso5.bin.ihex
    new file mode 100644
    index 0000000..3367251
    --- /dev/null
    +++ b/firmware/tigon/tg3_tso5.bin.ihex
    @@ -0,0 +1,252 @@
    +:10000000010200000001000000000FD80C004003B6
    +:100010000000000000010F040000000010000003B9
    +:10002000000000000000000D0000000D3C1D00015C
    +:1000300037BDE00003A0F0213C10000126100000B5
    +:100040000C004010000000000000000D27BDFFE084
    +:100050003C04FEFEAFBF00180C0042E834840002EE
    +:100060000C004364000000003C03000190630F3467
    +:10007000240200023C04000124840E9C146200034C
    +:10008000240500013C04000124840E902406000293
    +:1000900000003821AFA000100C004378AFA000147E
    +:1000A0000C00402C000000008FBF001803E0000887
    +:1000B00027BD0020000000000000000027BDFFE079
    +:1000C000AFBF001CAFB20018AFB100140C0042D497
    +:1000D000AFB000103C128000241100018F70681036
    +:1000E0003202040010400007000000008F64100876
    +:1000F0000092102414400003000000000C00406433
    +:10010000000000003C02000190420F561051000315
    +:10011000320202001040FFF1000000000C0041B468
    +:100120000000000008004034000000008FBF001CE9
    +:100130008FB200188FB100148FB0001003E00008D8
    +:1001400027BD002027BDFFE03C04000124840EB041
    +:10015000000028210000302100003821AFBF001826
    +:10016000AFA000100C004378AFA000140000D02115
    +:1001700024020130AF6250003C010001A4200F5066
    +:100180003C010001A0200F578FBF001803E00008BA
    +:1001900027BD002000000000000000003C0300011B
    +:1001A00024630F609062000027BDFFF0144000033D
    +:1001B0000080C02108004073000048213C0220005C
    +:1001C00003021024104000032409000208004073B9
    +:1001D000A0600000240900010018104030431F8077
    +:1001E000346F80081520004B25EB00283C040001EB
    +:1001F000008320218C8480103C05000124A50F7A07
    +:1002000000041402A0A200003C010001A0240F7B06
    +:100210003C02000100431021944280143C01000183
    +:10022000A0220F7C3C0C0001018360218D8C801882
    +:10023000304200FF24420008000220C324020001D3
    +:100240003C010001A0220F600124102B1040000C83
    +:100250000000382124A6000E016028218CA2000095
    +:100260008CA3000424A5000824E70001ACC2000010
    +:10027000ACC3000400E4102B1440FFF824C60008AF
    +:10028000000038213C08000125080F7B9106000082
    +:100290003C02000190420F7C2503000D00C3282181
    +:1002A0000046102300021FC2004310210002104329
    +:1002B0001840000C0000202191020001004610238C
    +:1002C00000021FC2004310210002184394A2000044
    +:1002D00024E700010082202100E3102A1440FFFBE4
    +:1002E00024A5000200041C023082FFFF00622021CE
    +:1002F00000041402008220213C02FFFF018210242E
    +:100300003083FFFF004310253C010001080040FA44
    +:10031000AC220F803C05000124A50F7C90A20000B8
    +:100320003C0C0001018360218D8C8018000220C2EA
    +:100330001080000E000038210160302124A5000C3F
    +:100340008CA200008CA3000424A5000824E700016F
    +:10035000ACC20000ACC3000400E4102B1440FFF852
    +:1003600024C600083C05000124A50F7C90A20000D3
    +:1003700030430007240200041062001128620005C7
    +:10038000104000052402000210620008000710C09F
    +:10039000080040FA00000000240200061062000E6F
    +:1003A000000710C0080040FA0000000000A2182159
    +:1003B0009463000C004B1021080040FAA443000095
    +:1003C000000710C000A218218C63000C004B102104
    +:1003D000080040FAAC43000000A218218C63000C16
    +:1003E000004B202100A21021AC8300009442001099
    +:1003F000A482000495E700063C02000190420F7CB5
    +:100400003C03000190630F7A00E2C8233C02000124
    +:1004100090420F7B2463002801E3402124420028FE
    +:100420001520001201E2302194C2000C3C010001B1
    +:10043000A4220F7894C2000494C300063C0100017A
    +:10044000A4200F763C010001A4200F7200021400CA
    +:10045000004310253C010001AC220F6C9502000402
    +:100460003C01000108004124A4220F703C0200015D
    +:1004700094420F703C03000194630F7200431021FB
    +:10048000A50200043C02000194420F6CA4C20004C7
    +:100490003C0200018C420F6CA4C200063C04000127
    +:1004A00094840F723C02000194420F703C0A0001D8
    +:1004B000954A0F76004418213063FFFF0062182A26
    +:1004C000240200021122000B008320233C030001C0
    +:1004D00094630F7830620009104000063062FFF626
    +:1004E000A4C2000C3C02000194420F783042000983
    +:1004F00001425023240200011122001B2922000284
    +:1005000050400005240200021120000731A2FFFF25
    +:1005100008004197000000001122001D240200166F
    +:100520000800419731A2FFFF3C0E000195CE0F80DD
    +:10053000108000050180682101C4202100041C02F4
    +:100540003082FFFF00627021000E1027A502000A12
    +:100550003C03000190630F7B31A2FFFF00E21021FA
    +:100560000800418D004320233C02000194420F808B
    +:100570000044202100041C023082FFFF0062202181
    +:10058000008070210004102708004185A502000AA0
    +:100590003C05000124A50F7A90A30000146200021C
    +:1005A00024E2FFF2A5E2003490A2000000E2102352
    +:1005B000A50200023C03000194630F803C0200018D
    +:1005C00094420F5A30E5FFFF0064182100451023C4
    +:1005D0000062202300041C023082FFFF0062202101
    +:1005E00000041027A502000A3C03000190630F7C61
    +:1005F0002462000114A20005008070210163102113
    +:10060000904200000800418500026200246200025E
    +:1006100014A20003306200FE004B1021944C000035
    +:100620003C02000194420F823183FFFF3C04000131
    +:1006300090840F7B0043102100E21021004420230E
    +:10064000008A202100041C023082FFFF006220216A
    +:100650000004140200822021008068210004102779
    +:10066000A4C2001031A2FFFF000E1C0000431025A1
    +:100670003C04000124840F72ADE20010948200005B
    +:100680003C05000194A50F763C0300018C630F6CC0
    +:100690002442000100B92821A48200003322FFFF78
    +:1006A000006220210083182B3C010001A4250F7655
    +:1006B0001060000324A2FFFF3C010001A4220F767A
    +:1006C0003C024000030210253C010001AC240F6CE9
    +:1006D000AF62100803E0000827BD00103C030001D2
    +:1006E00090630F5627BDFFE824020001AFBF00143E
    +:1006F00010620026AFB000108F620CF42442FFFF9E
    +:100700003042007F000211008C4340003C01000198
    +:10071000AC230F648C434008244440008C5C4004AC
    +:1007200030620040144000022402008824020008C5
    +:100730003C010001A4220F68306200041040000553
    +:10074000240200013C010001A0220F57080041D5FE
    +:10075000000314023C010001A0200F570003140203
    +:100760003C010001A4220F549483000C24020001D8
    +:100770003C010001A4200F503C010001A0220F56B3
    +:100780003C010001A4230F62240200011342001E59
    +:10079000000000001340000524020003134200671C
    +:1007A00000000000080042CF000000003C020001F1
    +:1007B00094420F62241A00013C010001A4200F5E44
    +:1007C0003C010001A4200F52304407FF00021BC26D
    +:1007D000000318233063003E3463003600021242E7
    +:1007E0003042003C006218213C010001A4240F5853
    +:1007F00000832021246300303C010001A4240F5A0F
    +:100800003C010001A4230F5C3C06000124C60F52EA
    +:1008100094C5000094C300023C04000194840F5A64
    +:10082000006510210044102A104000133C10800085
    +:1008300000A31021A4C200003C02A000AF620CF48F
    +:100840003C010001A0200F568F6410080090102476
    +:1008500014400003000000000C0040640000000091
    +:100860008F620CF400501024104000B7000000000C
    +:100870000800420F000000003C03000194630F5089
    +:1008800000851023A4C40000006218213042FFFF3D
    +:100890003C010001A4230F50AF620CE83C020001B0
    +:1008A00094420F6834420024AF620CEC94C30002FF
    +:1008B0003C02000194420F50146200123C0280007E
    +:1008C0003C1080003C02A000AF620CF43C0100012F
    +:1008D000A0200F568F6410080090102414400003CD
    +:1008E000000000000C004064000000008F620CF467
    +:1008F000005010241440FFF700000000080042CF11
    +:10090000241A0003AF620CF43C1080008F641008BE
    +:100910000090102414400003000000000C0040640C
    +:10092000000000008F620CF4005010241440FFF708
    +:1009300000000000080042CF241A00033C07000119
    +:1009400024E70F5094E2000003821021AF620CE014
    +:100950003C0200018C420F64AF620CE43C050001D4
    +:1009600094A50F5494E300003C04000194840F58B4
    +:100970003C02000194420F5E00A328230082202342
    +:1009800030A6FFFF3083FFFF00C3102B144000434D
    +:10099000000000003C02000194420F5C00021400C1
    +:1009A00000621025AF620CE894E200003C030001F5
    +:1009B00094630F5400441021A4E200003042FFFF72
    +:1009C000144300213C0200083C02000190420F57F2
    +:1009D000104000063C03000C3C02000194420F68EA
    +:1009E000346306240800427C0000D0213C02000150
    +:1009F00094420F683C03000834630624004310252A
    +:100A0000AF620CEC3C1080003C02A000AF620CF422
    +:100A10003C010001A0200F568F64100800901024A4
    +:100A200014400003000000000C00406400000000BF
    +:100A30008F620CF4005010241040001500000000DC
    +:100A400008004283000000003C03000194630F682B
    +:100A5000344206243C108000006218253C028000CD
    +:100A6000AF630CECAF620CF48F641008009010249C
    +:100A700014400003000000000C004064000000006F
    +:100A80008F620CF4005010241440FFF700000000A7
    +:100A90003C010001080042CFA4200F5E3C0200018F
    +:100AA00094420F5C0002140000C21025AF620CE8F3
    +:100AB0003C02000190420F57104000093C03000C1B
    +:100AC0003C02000194420F68346306240000D021E8
    +:100AD00000431025AF620CEC080042C13C108000BE
    +:100AE0003C02000194420F683C0300083463060492
    +:100AF00000431025AF620CEC3C02000194420F5EF3
    +:100B0000004510213C010001A4220F5E3C10800032
    +:100B10003C02A000AF620CF43C010001A0200F5683
    +:100B20008F6410080090102414400003000000009F
    +:100B30000C004064000000008F620CF40050102490
    +:100B40001440FFF7000000008FBF00148FB00010AA
    +:100B500003E0000827BD00180000000027BDFFE0EB
    +:100B60003C04000124840EC0000028210000302134
    +:100B700000003821AFBF0018AFA000100C00437870
    +:100B8000AFA000140000D02124020130AF62500059
    +:100B90003C010001A4200F503C010001A0200F5790
    +:100BA0008FBF001803E0000827BD002027BDFFE825
    +:100BB0003C1BC000AFBF0014AFB00010AF60680CAA
    +:100BC0008F62680434420082AF6268048F63400021
    +:100BD00024020B503C010001AC220F2024020B78B0
    +:100BE0003C010001AC220F3034630002AF634000CF
    +:100BF0000C004315008080213C010001A0220F342D
    +:100C0000304200FF240300021443000500000000EE
    +:100C10003C0200018C420F2008004308AC5000C089
    +:100C20003C0200018C420F20AC5000BC8F62443467
    +:100C30008F6344388F6444103C010001AC220F28BC
    +:100C40003C010001AC230F383C010001AC240F240F
    +:100C50008FBF00148FB0001003E0000827BD0018FC
    +:100C600003E000082402000127BDFFF818800009F6
    +:100C7000000028218F63680C8F62680C1043FFFE10
    +:100C80000000000024A5000100A4102A1440FFF970
    +:100C90000000000003E0000827BD00088F634450F7
    +:100CA0003C0200018C420F2800031C020043102B61
    +:100CB000144000083C0380003C0400018C840F3881
    +:100CC0008F62445000021C020083102B1040FFFC76
    +:100CD0003C038000AF6344448F62444400431024CB
    +:100CE0001440FFFD000000008F62444803E000084C
    +:100CF0003042FFFF3082FFFF2442E0002C422001FF
    +:100D0000144000033C024000080043472402FFFF58
    +:100D100000822025AF645C388F625C303042000274
    +:100D20001440FFFC0000102103E000080000000058
    +:100D30008F6244503C0300018C630F240800435031
    +:100D40003042FFFF8F6244503042FFFF0043102BC0
    +:100D50001440FFFC0000000003E000080000000059
    +:100D600027BDFFE0008028213C04000124840ED030
    +:100D70000000302100003821AFBF0018AFA00010E4
    +:100D80000C004378AFA000140800435F000000008F
    +:100D90008FBF001803E0000827BD00203C020001BF
    +:100DA0003442D6003C0300013463D6003C04000109
    +:100DB0003484DDFF3C010001AC220F4024020040DE
    +:100DC0003C010001AC220F443C010001AC200F3C6F
    +:100DD000AC600000246300040083102B5040FFFD32
    +:100DE000AC60000003E00008000000000080482123
    +:100DF0008FAA00103C0200018C420F3C3C04000111
    +:100E00008C840F448FAB0014244300010044102B4A
    +:100E10003C010001AC230F3C1440000300004021C2
    +:100E20003C010001AC200F3C3C0200018C420F3C15
    +:100E30003C0300018C630F4091240000000211402C
    +:100E4000004310210048102125080001A0440000A3
    +:100E5000290200081440FFF4252900013C0200018A
    +:100E60008C420F3C3C0300018C630F408F64680C84
    +:100E70000002114000431021AC440008AC45000CB6
    +:100E8000AC460010AC470014AC4A001803E0000860
    +:100E9000AC4B001C00000000000000004D61696EBA
    +:100EA00043707542000000004D61696E43707541EA
    +:100EB00000000000000000000000000073746B6F71
    +:100EC00066666C64000000000000000073746B6FC5
    +:100ED00066666C64000000000000000066617461DA
    +:100EE0006C4572720000000000000000000000006D
    +:100EF00000000000000000000000000000000000F2
    +:100F000000000000000000000000000000000000E1
    +:100F100073746B6F66666C645F76312E322E3000B0
    +:0C0F2000000000000000000000000000C5
    +:00000001FF
    + * Firmware is:
    + * Derived from proprietary unpublished source code,
    + * Copyright (C) 2000-2003 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.
    +/* 5705 needs a special version of the TSO firmware. */
    --
    1.5.5.1




    \
     
     \ /
      Last update: 2008-12-30 09:49    [W:0.146 / U:29.828 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site