aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/tg3.c792
-rw-r--r--drivers/net/tg3.h4
-rw-r--r--firmware/Makefile2
-rw-r--r--firmware/WHENCE19
-rw-r--r--firmware/tigon/tg3.bin.ihex175
-rw-r--r--firmware/tigon/tg3_tso.bin.ihex446
-rw-r--r--firmware/tigon/tg3_tso5.bin.ihex252
7 files changed, 992 insertions, 698 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 04ae1e86aeaa..5e2dbaee125b 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -40,6 +40,7 @@
40#include <linux/workqueue.h> 40#include <linux/workqueue.h>
41#include <linux/prefetch.h> 41#include <linux/prefetch.h>
42#include <linux/dma-mapping.h> 42#include <linux/dma-mapping.h>
43#include <linux/firmware.h>
43 44
44#include <net/checksum.h> 45#include <net/checksum.h>
45#include <net/ip.h> 46#include <net/ip.h>
@@ -137,6 +138,10 @@
137 138
138#define TG3_NUM_TEST 6 139#define TG3_NUM_TEST 6
139 140
141#define FIRMWARE_TG3 "tigon/tg3.bin"
142#define FIRMWARE_TG3TSO "tigon/tg3_tso.bin"
143#define FIRMWARE_TG3TSO5 "tigon/tg3_tso5.bin"
144
140static char version[] __devinitdata = 145static char version[] __devinitdata =
141 DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; 146 DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n";
142 147
@@ -144,6 +149,10 @@ MODULE_AUTHOR("David S. Miller (davem@redhat.com) and Jeff Garzik (jgarzik@pobox
144MODULE_DESCRIPTION("Broadcom Tigon3 ethernet driver"); 149MODULE_DESCRIPTION("Broadcom Tigon3 ethernet driver");
145MODULE_LICENSE("GPL"); 150MODULE_LICENSE("GPL");
146MODULE_VERSION(DRV_MODULE_VERSION); 151MODULE_VERSION(DRV_MODULE_VERSION);
152MODULE_FIRMWARE(FIRMWARE_TG3);
153MODULE_FIRMWARE(FIRMWARE_TG3TSO);
154MODULE_FIRMWARE(FIRMWARE_TG3TSO5);
155
147 156
148static int tg3_debug = -1; /* -1 == use TG3_DEF_MSG_ENABLE as value */ 157static int tg3_debug = -1; /* -1 == use TG3_DEF_MSG_ENABLE as value */
149module_param(tg3_debug, int, 0); 158module_param(tg3_debug, int, 0);
@@ -6205,130 +6214,6 @@ static int tg3_halt(struct tg3 *tp, int kind, int silent)
6205 return 0; 6214 return 0;
6206} 6215}
6207 6216
6208#define TG3_FW_RELEASE_MAJOR 0x0
6209#define TG3_FW_RELASE_MINOR 0x0
6210#define TG3_FW_RELEASE_FIX 0x0
6211#define TG3_FW_START_ADDR 0x08000000
6212#define TG3_FW_TEXT_ADDR 0x08000000
6213#define TG3_FW_TEXT_LEN 0x9c0
6214#define TG3_FW_RODATA_ADDR 0x080009c0
6215#define TG3_FW_RODATA_LEN 0x60
6216#define TG3_FW_DATA_ADDR 0x08000a40
6217#define TG3_FW_DATA_LEN 0x20
6218#define TG3_FW_SBSS_ADDR 0x08000a60
6219#define TG3_FW_SBSS_LEN 0xc
6220#define TG3_FW_BSS_ADDR 0x08000a70
6221#define TG3_FW_BSS_LEN 0x10
6222
6223static const u32 tg3FwText[(TG3_FW_TEXT_LEN / sizeof(u32)) + 1] = {
6224 0x00000000, 0x10000003, 0x00000000, 0x0000000d, 0x0000000d, 0x3c1d0800,
6225 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100000, 0x0e000018, 0x00000000,
6226 0x0000000d, 0x3c1d0800, 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100034,
6227 0x0e00021c, 0x00000000, 0x0000000d, 0x00000000, 0x00000000, 0x00000000,
6228 0x27bdffe0, 0x3c1cc000, 0xafbf0018, 0xaf80680c, 0x0e00004c, 0x241b2105,
6229 0x97850000, 0x97870002, 0x9782002c, 0x9783002e, 0x3c040800, 0x248409c0,
6230 0xafa00014, 0x00021400, 0x00621825, 0x00052c00, 0xafa30010, 0x8f860010,
6231 0x00e52825, 0x0e000060, 0x24070102, 0x3c02ac00, 0x34420100, 0x3c03ac01,
6232 0x34630100, 0xaf820490, 0x3c02ffff, 0xaf820494, 0xaf830498, 0xaf82049c,
6233 0x24020001, 0xaf825ce0, 0x0e00003f, 0xaf825d00, 0x0e000140, 0x00000000,
6234 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x2402ffff, 0xaf825404, 0x8f835400,
6235 0x34630400, 0xaf835400, 0xaf825404, 0x3c020800, 0x24420034, 0xaf82541c,
6236 0x03e00008, 0xaf805400, 0x00000000, 0x00000000, 0x3c020800, 0x34423000,
6237 0x3c030800, 0x34633000, 0x3c040800, 0x348437ff, 0x3c010800, 0xac220a64,
6238 0x24020040, 0x3c010800, 0xac220a68, 0x3c010800, 0xac200a60, 0xac600000,
6239 0x24630004, 0x0083102b, 0x5040fffd, 0xac600000, 0x03e00008, 0x00000000,
6240 0x00804821, 0x8faa0010, 0x3c020800, 0x8c420a60, 0x3c040800, 0x8c840a68,
6241 0x8fab0014, 0x24430001, 0x0044102b, 0x3c010800, 0xac230a60, 0x14400003,
6242 0x00004021, 0x3c010800, 0xac200a60, 0x3c020800, 0x8c420a60, 0x3c030800,
6243 0x8c630a64, 0x91240000, 0x00021140, 0x00431021, 0x00481021, 0x25080001,
6244 0xa0440000, 0x29020008, 0x1440fff4, 0x25290001, 0x3c020800, 0x8c420a60,
6245 0x3c030800, 0x8c630a64, 0x8f84680c, 0x00021140, 0x00431021, 0xac440008,
6246 0xac45000c, 0xac460010, 0xac470014, 0xac4a0018, 0x03e00008, 0xac4b001c,
6247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6249 0, 0, 0, 0, 0, 0,
6250 0x02000008, 0x00000000, 0x0a0001e3, 0x3c0a0001, 0x0a0001e3, 0x3c0a0002,
6251 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
6252 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
6253 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
6254 0x0a0001e3, 0x3c0a0007, 0x0a0001e3, 0x3c0a0008, 0x0a0001e3, 0x3c0a0009,
6255 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x3c0a000b,
6256 0x0a0001e3, 0x3c0a000c, 0x0a0001e3, 0x3c0a000d, 0x0a0001e3, 0x00000000,
6257 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x3c0a000e, 0x0a0001e3, 0x00000000,
6258 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
6259 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
6260 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x3c0a0013, 0x0a0001e3, 0x3c0a0014,
6261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6264 0x27bdffe0, 0x00001821, 0x00001021, 0xafbf0018, 0xafb10014, 0xafb00010,
6265 0x3c010800, 0x00220821, 0xac200a70, 0x3c010800, 0x00220821, 0xac200a74,
6266 0x3c010800, 0x00220821, 0xac200a78, 0x24630001, 0x1860fff5, 0x2442000c,
6267 0x24110001, 0x8f906810, 0x32020004, 0x14400005, 0x24040001, 0x3c020800,
6268 0x8c420a78, 0x18400003, 0x00002021, 0x0e000182, 0x00000000, 0x32020001,
6269 0x10400003, 0x00000000, 0x0e000169, 0x00000000, 0x0a000153, 0xaf915028,
6270 0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x03e00008, 0x27bd0020, 0x3c050800,
6271 0x8ca50a70, 0x3c060800, 0x8cc60a80, 0x3c070800, 0x8ce70a78, 0x27bdffe0,
6272 0x3c040800, 0x248409d0, 0xafbf0018, 0xafa00010, 0x0e000060, 0xafa00014,
6273 0x0e00017b, 0x00002021, 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x24020001,
6274 0x8f836810, 0x00821004, 0x00021027, 0x00621824, 0x03e00008, 0xaf836810,
6275 0x27bdffd8, 0xafbf0024, 0x1080002e, 0xafb00020, 0x8f825cec, 0xafa20018,
6276 0x8f825cec, 0x3c100800, 0x26100a78, 0xafa2001c, 0x34028000, 0xaf825cec,
6277 0x8e020000, 0x18400016, 0x00000000, 0x3c020800, 0x94420a74, 0x8fa3001c,
6278 0x000221c0, 0xac830004, 0x8fa2001c, 0x3c010800, 0x0e000201, 0xac220a74,
6279 0x10400005, 0x00000000, 0x8e020000, 0x24420001, 0x0a0001df, 0xae020000,
6280 0x3c020800, 0x8c420a70, 0x00021c02, 0x000321c0, 0x0a0001c5, 0xafa2001c,
6281 0x0e000201, 0x00000000, 0x1040001f, 0x00000000, 0x8e020000, 0x8fa3001c,
6282 0x24420001, 0x3c010800, 0xac230a70, 0x3c010800, 0xac230a74, 0x0a0001df,
6283 0xae020000, 0x3c100800, 0x26100a78, 0x8e020000, 0x18400028, 0x00000000,
6284 0x0e000201, 0x00000000, 0x14400024, 0x00000000, 0x8e020000, 0x3c030800,
6285 0x8c630a70, 0x2442ffff, 0xafa3001c, 0x18400006, 0xae020000, 0x00031402,
6286 0x000221c0, 0x8c820004, 0x3c010800, 0xac220a70, 0x97a2001e, 0x2442ff00,
6287 0x2c420300, 0x1440000b, 0x24024000, 0x3c040800, 0x248409dc, 0xafa00010,
6288 0xafa00014, 0x8fa6001c, 0x24050008, 0x0e000060, 0x00003821, 0x0a0001df,
6289 0x00000000, 0xaf825cf8, 0x3c020800, 0x8c420a40, 0x8fa3001c, 0x24420001,
6290 0xaf835cf8, 0x3c010800, 0xac220a40, 0x8fbf0024, 0x8fb00020, 0x03e00008,
6291 0x27bd0028, 0x27bdffe0, 0x3c040800, 0x248409e8, 0x00002821, 0x00003021,
6292 0x00003821, 0xafbf0018, 0xafa00010, 0x0e000060, 0xafa00014, 0x8fbf0018,
6293 0x03e00008, 0x27bd0020, 0x8f82680c, 0x8f85680c, 0x00021827, 0x0003182b,
6294 0x00031823, 0x00431024, 0x00441021, 0x00a2282b, 0x10a00006, 0x00000000,
6295 0x00401821, 0x8f82680c, 0x0043102b, 0x1440fffd, 0x00000000, 0x03e00008,
6296 0x00000000, 0x3c040800, 0x8c840000, 0x3c030800, 0x8c630a40, 0x0064102b,
6297 0x54400002, 0x00831023, 0x00641023, 0x2c420008, 0x03e00008, 0x38420001,
6298 0x27bdffe0, 0x00802821, 0x3c040800, 0x24840a00, 0x00003021, 0x00003821,
6299 0xafbf0018, 0xafa00010, 0x0e000060, 0xafa00014, 0x0a000216, 0x00000000,
6300 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x00000000, 0x27bdffe0, 0x3c1cc000,
6301 0xafbf0018, 0x0e00004c, 0xaf80680c, 0x3c040800, 0x24840a10, 0x03802821,
6302 0x00003021, 0x00003821, 0xafa00010, 0x0e000060, 0xafa00014, 0x2402ffff,
6303 0xaf825404, 0x3c0200aa, 0x0e000234, 0xaf825434, 0x8fbf0018, 0x03e00008,
6304 0x27bd0020, 0x00000000, 0x00000000, 0x00000000, 0x27bdffe8, 0xafb00010,
6305 0x24100001, 0xafbf0014, 0x3c01c003, 0xac200000, 0x8f826810, 0x30422000,
6306 0x10400003, 0x00000000, 0x0e000246, 0x00000000, 0x0a00023a, 0xaf905428,
6307 0x8fbf0014, 0x8fb00010, 0x03e00008, 0x27bd0018, 0x27bdfff8, 0x8f845d0c,
6308 0x3c0200ff, 0x3c030800, 0x8c630a50, 0x3442fff8, 0x00821024, 0x1043001e,
6309 0x3c0500ff, 0x34a5fff8, 0x3c06c003, 0x3c074000, 0x00851824, 0x8c620010,
6310 0x3c010800, 0xac230a50, 0x30420008, 0x10400005, 0x00871025, 0x8cc20000,
6311 0x24420001, 0xacc20000, 0x00871025, 0xaf825d0c, 0x8fa20000, 0x24420001,
6312 0xafa20000, 0x8fa20000, 0x8fa20000, 0x24420001, 0xafa20000, 0x8fa20000,
6313 0x8f845d0c, 0x3c030800, 0x8c630a50, 0x00851024, 0x1443ffe8, 0x00851824,
6314 0x27bd0008, 0x03e00008, 0x00000000, 0x00000000, 0x00000000
6315};
6316
6317static const u32 tg3FwRodata[(TG3_FW_RODATA_LEN / sizeof(u32)) + 1] = {
6318 0x35373031, 0x726c7341, 0x00000000, 0x00000000, 0x53774576, 0x656e7430,
6319 0x00000000, 0x726c7045, 0x76656e74, 0x31000000, 0x556e6b6e, 0x45766e74,
6320 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x66617461, 0x6c457272,
6321 0x00000000, 0x00000000, 0x4d61696e, 0x43707542, 0x00000000, 0x00000000,
6322 0x00000000
6323};
6324
6325#if 0 /* All zeros, don't eat up space with it. */
6326u32 tg3FwData[(TG3_FW_DATA_LEN / sizeof(u32)) + 1] = {
6327 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
6328 0x00000000, 0x00000000, 0x00000000, 0x00000000
6329};
6330#endif
6331
6332#define RX_CPU_SCRATCH_BASE 0x30000 6217#define RX_CPU_SCRATCH_BASE 0x30000
6333#define RX_CPU_SCRATCH_SIZE 0x04000 6218#define RX_CPU_SCRATCH_SIZE 0x04000
6334#define TX_CPU_SCRATCH_BASE 0x34000 6219#define TX_CPU_SCRATCH_BASE 0x34000
@@ -6383,15 +6268,9 @@ static int tg3_halt_cpu(struct tg3 *tp, u32 offset)
6383} 6268}
6384 6269
6385struct fw_info { 6270struct fw_info {
6386 unsigned int text_base; 6271 unsigned int fw_base;
6387 unsigned int text_len; 6272 unsigned int fw_len;
6388 const u32 *text_data; 6273 const __be32 *fw_data;
6389 unsigned int rodata_base;
6390 unsigned int rodata_len;
6391 const u32 *rodata_data;
6392 unsigned int data_base;
6393 unsigned int data_len;
6394 const u32 *data_data;
6395}; 6274};
6396 6275
6397/* tp->lock is held. */ 6276/* tp->lock is held. */
@@ -6428,24 +6307,11 @@ static int tg3_load_firmware_cpu(struct tg3 *tp, u32 cpu_base, u32 cpu_scratch_b
6428 write_op(tp, cpu_scratch_base + i, 0); 6307 write_op(tp, cpu_scratch_base + i, 0);
6429 tw32(cpu_base + CPU_STATE, 0xffffffff); 6308 tw32(cpu_base + CPU_STATE, 0xffffffff);
6430 tw32(cpu_base + CPU_MODE, tr32(cpu_base+CPU_MODE)|CPU_MODE_HALT); 6309 tw32(cpu_base + CPU_MODE, tr32(cpu_base+CPU_MODE)|CPU_MODE_HALT);
6431 for (i = 0; i < (info->text_len / sizeof(u32)); i++) 6310 for (i = 0; i < (info->fw_len / sizeof(u32)); i++)
6432 write_op(tp, (cpu_scratch_base +
6433 (info->text_base & 0xffff) +
6434 (i * sizeof(u32))),
6435 (info->text_data ?
6436 info->text_data[i] : 0));
6437 for (i = 0; i < (info->rodata_len / sizeof(u32)); i++)
6438 write_op(tp, (cpu_scratch_base +
6439 (info->rodata_base & 0xffff) +
6440 (i * sizeof(u32))),
6441 (info->rodata_data ?
6442 info->rodata_data[i] : 0));
6443 for (i = 0; i < (info->data_len / sizeof(u32)); i++)
6444 write_op(tp, (cpu_scratch_base + 6311 write_op(tp, (cpu_scratch_base +
6445 (info->data_base & 0xffff) + 6312 (info->fw_base & 0xffff) +
6446 (i * sizeof(u32))), 6313 (i * sizeof(u32))),
6447 (info->data_data ? 6314 be32_to_cpu(info->fw_data[i]));
6448 info->data_data[i] : 0));
6449 6315
6450 err = 0; 6316 err = 0;
6451 6317
@@ -6457,17 +6323,20 @@ out:
6457static int tg3_load_5701_a0_firmware_fix(struct tg3 *tp) 6323static int tg3_load_5701_a0_firmware_fix(struct tg3 *tp)
6458{ 6324{
6459 struct fw_info info; 6325 struct fw_info info;
6326 const __be32 *fw_data;
6460 int err, i; 6327 int err, i;
6461 6328
6462 info.text_base = TG3_FW_TEXT_ADDR; 6329 fw_data = (void *)tp->fw->data;
6463 info.text_len = TG3_FW_TEXT_LEN; 6330
6464 info.text_data = &tg3FwText[0]; 6331 /* Firmware blob starts with version numbers, followed by
6465 info.rodata_base = TG3_FW_RODATA_ADDR; 6332 start address and length. We are setting complete length.
6466 info.rodata_len = TG3_FW_RODATA_LEN; 6333 length = end_address_of_bss - start_address_of_text.
6467 info.rodata_data = &tg3FwRodata[0]; 6334 Remainder is the blob to be loaded contiguously
6468 info.data_base = TG3_FW_DATA_ADDR; 6335 from start address. */
6469 info.data_len = TG3_FW_DATA_LEN; 6336
6470 info.data_data = NULL; 6337 info.fw_base = be32_to_cpu(fw_data[1]);
6338 info.fw_len = tp->fw->size - 12;
6339 info.fw_data = &fw_data[3];
6471 6340
6472 err = tg3_load_firmware_cpu(tp, RX_CPU_BASE, 6341 err = tg3_load_firmware_cpu(tp, RX_CPU_BASE,
6473 RX_CPU_SCRATCH_BASE, RX_CPU_SCRATCH_SIZE, 6342 RX_CPU_SCRATCH_BASE, RX_CPU_SCRATCH_SIZE,
@@ -6483,21 +6352,21 @@ static int tg3_load_5701_a0_firmware_fix(struct tg3 *tp)
6483 6352
6484 /* Now startup only the RX cpu. */ 6353 /* Now startup only the RX cpu. */
6485 tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff); 6354 tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff);
6486 tw32_f(RX_CPU_BASE + CPU_PC, TG3_FW_TEXT_ADDR); 6355 tw32_f(RX_CPU_BASE + CPU_PC, info.fw_base);
6487 6356
6488 for (i = 0; i < 5; i++) { 6357 for (i = 0; i < 5; i++) {
6489 if (tr32(RX_CPU_BASE + CPU_PC) == TG3_FW_TEXT_ADDR) 6358 if (tr32(RX_CPU_BASE + CPU_PC) == info.fw_base)
6490 break; 6359 break;
6491 tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff); 6360 tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff);
6492 tw32(RX_CPU_BASE + CPU_MODE, CPU_MODE_HALT); 6361 tw32(RX_CPU_BASE + CPU_MODE, CPU_MODE_HALT);
6493 tw32_f(RX_CPU_BASE + CPU_PC, TG3_FW_TEXT_ADDR); 6362 tw32_f(RX_CPU_BASE + CPU_PC, info.fw_base);
6494 udelay(1000); 6363 udelay(1000);
6495 } 6364 }
6496 if (i >= 5) { 6365 if (i >= 5) {
6497 printk(KERN_ERR PFX "tg3_load_firmware fails for %s " 6366 printk(KERN_ERR PFX "tg3_load_firmware fails for %s "
6498 "to set RX CPU PC, is %08x should be %08x\n", 6367 "to set RX CPU PC, is %08x should be %08x\n",
6499 tp->dev->name, tr32(RX_CPU_BASE + CPU_PC), 6368 tp->dev->name, tr32(RX_CPU_BASE + CPU_PC),
6500 TG3_FW_TEXT_ADDR); 6369 info.fw_base);
6501 return -ENODEV; 6370 return -ENODEV;
6502 } 6371 }
6503 tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff); 6372 tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff);
@@ -6506,547 +6375,36 @@ static int tg3_load_5701_a0_firmware_fix(struct tg3 *tp)
6506 return 0; 6375 return 0;
6507} 6376}
6508 6377
6509
6510#define TG3_TSO_FW_RELEASE_MAJOR 0x1
6511#define TG3_TSO_FW_RELASE_MINOR 0x6
6512#define TG3_TSO_FW_RELEASE_FIX 0x0
6513#define TG3_TSO_FW_START_ADDR 0x08000000
6514#define TG3_TSO_FW_TEXT_ADDR 0x08000000
6515#define TG3_TSO_FW_TEXT_LEN 0x1aa0
6516#define TG3_TSO_FW_RODATA_ADDR 0x08001aa0
6517#define TG3_TSO_FW_RODATA_LEN 0x60
6518#define TG3_TSO_FW_DATA_ADDR 0x08001b20
6519#define TG3_TSO_FW_DATA_LEN 0x30
6520#define TG3_TSO_FW_SBSS_ADDR 0x08001b50
6521#define TG3_TSO_FW_SBSS_LEN 0x2c
6522#define TG3_TSO_FW_BSS_ADDR 0x08001b80
6523#define TG3_TSO_FW_BSS_LEN 0x894
6524
6525static const u32 tg3TsoFwText[(TG3_TSO_FW_TEXT_LEN / 4) + 1] = {
6526 0x0e000003, 0x00000000, 0x08001b24, 0x00000000, 0x10000003, 0x00000000,
6527 0x0000000d, 0x0000000d, 0x3c1d0800, 0x37bd4000, 0x03a0f021, 0x3c100800,
6528 0x26100000, 0x0e000010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe,
6529 0xafbf0018, 0x0e0005d8, 0x34840002, 0x0e000668, 0x00000000, 0x3c030800,
6530 0x90631b68, 0x24020002, 0x3c040800, 0x24841aac, 0x14620003, 0x24050001,
6531 0x3c040800, 0x24841aa0, 0x24060006, 0x00003821, 0xafa00010, 0x0e00067c,
6532 0xafa00014, 0x8f625c50, 0x34420001, 0xaf625c50, 0x8f625c90, 0x34420001,
6533 0xaf625c90, 0x2402ffff, 0x0e000034, 0xaf625404, 0x8fbf0018, 0x03e00008,
6534 0x27bd0020, 0x00000000, 0x00000000, 0x00000000, 0x27bdffe0, 0xafbf001c,
6535 0xafb20018, 0xafb10014, 0x0e00005b, 0xafb00010, 0x24120002, 0x24110001,
6536 0x8f706820, 0x32020100, 0x10400003, 0x00000000, 0x0e0000bb, 0x00000000,
6537 0x8f706820, 0x32022000, 0x10400004, 0x32020001, 0x0e0001f0, 0x24040001,
6538 0x32020001, 0x10400003, 0x00000000, 0x0e0000a3, 0x00000000, 0x3c020800,
6539 0x90421b98, 0x14520003, 0x00000000, 0x0e0004c0, 0x00000000, 0x0a00003c,
6540 0xaf715028, 0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010, 0x03e00008,
6541 0x27bd0020, 0x27bdffe0, 0x3c040800, 0x24841ac0, 0x00002821, 0x00003021,
6542 0x00003821, 0xafbf0018, 0xafa00010, 0x0e00067c, 0xafa00014, 0x3c040800,
6543 0x248423d8, 0xa4800000, 0x3c010800, 0xa0201b98, 0x3c010800, 0xac201b9c,
6544 0x3c010800, 0xac201ba0, 0x3c010800, 0xac201ba4, 0x3c010800, 0xac201bac,
6545 0x3c010800, 0xac201bb8, 0x3c010800, 0xac201bbc, 0x8f624434, 0x3c010800,
6546 0xac221b88, 0x8f624438, 0x3c010800, 0xac221b8c, 0x8f624410, 0xac80f7a8,
6547 0x3c010800, 0xac201b84, 0x3c010800, 0xac2023e0, 0x3c010800, 0xac2023c8,
6548 0x3c010800, 0xac2023cc, 0x3c010800, 0xac202400, 0x3c010800, 0xac221b90,
6549 0x8f620068, 0x24030007, 0x00021702, 0x10430005, 0x00000000, 0x8f620068,
6550 0x00021702, 0x14400004, 0x24020001, 0x3c010800, 0x0a000097, 0xac20240c,
6551 0xac820034, 0x3c040800, 0x24841acc, 0x3c050800, 0x8ca5240c, 0x00003021,
6552 0x00003821, 0xafa00010, 0x0e00067c, 0xafa00014, 0x8fbf0018, 0x03e00008,
6553 0x27bd0020, 0x27bdffe0, 0x3c040800, 0x24841ad8, 0x00002821, 0x00003021,
6554 0x00003821, 0xafbf0018, 0xafa00010, 0x0e00067c, 0xafa00014, 0x0e00005b,
6555 0x00000000, 0x0e0000b4, 0x00002021, 0x8fbf0018, 0x03e00008, 0x27bd0020,
6556 0x24020001, 0x8f636820, 0x00821004, 0x00021027, 0x00621824, 0x03e00008,
6557 0xaf636820, 0x27bdffd0, 0xafbf002c, 0xafb60028, 0xafb50024, 0xafb40020,
6558 0xafb3001c, 0xafb20018, 0xafb10014, 0xafb00010, 0x8f675c5c, 0x3c030800,
6559 0x24631bbc, 0x8c620000, 0x14470005, 0x3c0200ff, 0x3c020800, 0x90421b98,
6560 0x14400119, 0x3c0200ff, 0x3442fff8, 0x00e28824, 0xac670000, 0x00111902,
6561 0x306300ff, 0x30e20003, 0x000211c0, 0x00622825, 0x00a04021, 0x00071602,
6562 0x3c030800, 0x90631b98, 0x3044000f, 0x14600036, 0x00804821, 0x24020001,
6563 0x3c010800, 0xa0221b98, 0x00051100, 0x00821025, 0x3c010800, 0xac201b9c,
6564 0x3c010800, 0xac201ba0, 0x3c010800, 0xac201ba4, 0x3c010800, 0xac201bac,
6565 0x3c010800, 0xac201bb8, 0x3c010800, 0xac201bb0, 0x3c010800, 0xac201bb4,
6566 0x3c010800, 0xa42223d8, 0x9622000c, 0x30437fff, 0x3c010800, 0xa4222410,
6567 0x30428000, 0x3c010800, 0xa4231bc6, 0x10400005, 0x24020001, 0x3c010800,
6568 0xac2223f4, 0x0a000102, 0x2406003e, 0x24060036, 0x3c010800, 0xac2023f4,
6569 0x9622000a, 0x3c030800, 0x94631bc6, 0x3c010800, 0xac2023f0, 0x3c010800,
6570 0xac2023f8, 0x00021302, 0x00021080, 0x00c21021, 0x00621821, 0x3c010800,
6571 0xa42223d0, 0x3c010800, 0x0a000115, 0xa4231b96, 0x9622000c, 0x3c010800,
6572 0xa42223ec, 0x3c040800, 0x24841b9c, 0x8c820000, 0x00021100, 0x3c010800,
6573 0x00220821, 0xac311bc8, 0x8c820000, 0x00021100, 0x3c010800, 0x00220821,
6574 0xac271bcc, 0x8c820000, 0x25030001, 0x306601ff, 0x00021100, 0x3c010800,
6575 0x00220821, 0xac261bd0, 0x8c820000, 0x00021100, 0x3c010800, 0x00220821,
6576 0xac291bd4, 0x96230008, 0x3c020800, 0x8c421bac, 0x00432821, 0x3c010800,
6577 0xac251bac, 0x9622000a, 0x30420004, 0x14400018, 0x00061100, 0x8f630c14,
6578 0x3063000f, 0x2c620002, 0x1440000b, 0x3c02c000, 0x8f630c14, 0x3c020800,
6579 0x8c421b40, 0x3063000f, 0x24420001, 0x3c010800, 0xac221b40, 0x2c620002,
6580 0x1040fff7, 0x3c02c000, 0x00e21825, 0xaf635c5c, 0x8f625c50, 0x30420002,
6581 0x10400014, 0x00000000, 0x0a000147, 0x00000000, 0x3c030800, 0x8c631b80,
6582 0x3c040800, 0x94841b94, 0x01221025, 0x3c010800, 0xa42223da, 0x24020001,
6583 0x3c010800, 0xac221bb8, 0x24630001, 0x0085202a, 0x3c010800, 0x10800003,
6584 0xac231b80, 0x3c010800, 0xa4251b94, 0x3c060800, 0x24c61b9c, 0x8cc20000,
6585 0x24420001, 0xacc20000, 0x28420080, 0x14400005, 0x00000000, 0x0e000656,
6586 0x24040002, 0x0a0001e6, 0x00000000, 0x3c020800, 0x8c421bb8, 0x10400078,
6587 0x24020001, 0x3c050800, 0x90a51b98, 0x14a20072, 0x00000000, 0x3c150800,
6588 0x96b51b96, 0x3c040800, 0x8c841bac, 0x32a3ffff, 0x0083102a, 0x1440006c,
6589 0x00000000, 0x14830003, 0x00000000, 0x3c010800, 0xac2523f0, 0x1060005c,
6590 0x00009021, 0x24d60004, 0x0060a021, 0x24d30014, 0x8ec20000, 0x00028100,
6591 0x3c110800, 0x02308821, 0x0e000625, 0x8e311bc8, 0x00402821, 0x10a00054,
6592 0x00000000, 0x9628000a, 0x31020040, 0x10400005, 0x2407180c, 0x8e22000c,
6593 0x2407188c, 0x00021400, 0xaca20018, 0x3c030800, 0x00701821, 0x8c631bd0,
6594 0x3c020800, 0x00501021, 0x8c421bd4, 0x00031d00, 0x00021400, 0x00621825,
6595 0xaca30014, 0x8ec30004, 0x96220008, 0x00432023, 0x3242ffff, 0x3083ffff,
6596 0x00431021, 0x0282102a, 0x14400002, 0x02b23023, 0x00803021, 0x8e620000,
6597 0x30c4ffff, 0x00441021, 0xae620000, 0x8e220000, 0xaca20000, 0x8e220004,
6598 0x8e63fff4, 0x00431021, 0xaca20004, 0xa4a6000e, 0x8e62fff4, 0x00441021,
6599 0xae62fff4, 0x96230008, 0x0043102a, 0x14400005, 0x02469021, 0x8e62fff0,
6600 0xae60fff4, 0x24420001, 0xae62fff0, 0xaca00008, 0x3242ffff, 0x14540008,
6601 0x24020305, 0x31020080, 0x54400001, 0x34e70010, 0x24020905, 0xa4a2000c,
6602 0x0a0001cb, 0x34e70020, 0xa4a2000c, 0x3c020800, 0x8c4223f0, 0x10400003,
6603 0x3c024b65, 0x0a0001d3, 0x34427654, 0x3c02b49a, 0x344289ab, 0xaca2001c,
6604 0x30e2ffff, 0xaca20010, 0x0e0005a2, 0x00a02021, 0x3242ffff, 0x0054102b,
6605 0x1440ffa9, 0x00000000, 0x24020002, 0x3c010800, 0x0a0001e6, 0xa0221b98,
6606 0x8ec2083c, 0x24420001, 0x0a0001e6, 0xaec2083c, 0x0e0004c0, 0x00000000,
6607 0x8fbf002c, 0x8fb60028, 0x8fb50024, 0x8fb40020, 0x8fb3001c, 0x8fb20018,
6608 0x8fb10014, 0x8fb00010, 0x03e00008, 0x27bd0030, 0x27bdffd0, 0xafbf0028,
6609 0xafb30024, 0xafb20020, 0xafb1001c, 0xafb00018, 0x8f725c9c, 0x3c0200ff,
6610 0x3442fff8, 0x3c070800, 0x24e71bb4, 0x02428824, 0x9623000e, 0x8ce20000,
6611 0x00431021, 0xace20000, 0x8e220010, 0x30420020, 0x14400011, 0x00809821,
6612 0x0e00063b, 0x02202021, 0x3c02c000, 0x02421825, 0xaf635c9c, 0x8f625c90,
6613 0x30420002, 0x1040011e, 0x00000000, 0xaf635c9c, 0x8f625c90, 0x30420002,
6614 0x10400119, 0x00000000, 0x0a00020d, 0x00000000, 0x8e240008, 0x8e230014,
6615 0x00041402, 0x000231c0, 0x00031502, 0x304201ff, 0x2442ffff, 0x3042007f,
6616 0x00031942, 0x30637800, 0x00021100, 0x24424000, 0x00624821, 0x9522000a,
6617 0x3084ffff, 0x30420008, 0x104000b0, 0x000429c0, 0x3c020800, 0x8c422400,
6618 0x14400024, 0x24c50008, 0x94c20014, 0x3c010800, 0xa42223d0, 0x8cc40010,
6619 0x00041402, 0x3c010800, 0xa42223d2, 0x3c010800, 0xa42423d4, 0x94c2000e,
6620 0x3083ffff, 0x00431023, 0x3c010800, 0xac222408, 0x94c2001a, 0x3c010800,
6621 0xac262400, 0x3c010800, 0xac322404, 0x3c010800, 0xac2223fc, 0x3c02c000,
6622 0x02421825, 0xaf635c9c, 0x8f625c90, 0x30420002, 0x104000e5, 0x00000000,
6623 0xaf635c9c, 0x8f625c90, 0x30420002, 0x104000e0, 0x00000000, 0x0a000246,
6624 0x00000000, 0x94c2000e, 0x3c030800, 0x946323d4, 0x00434023, 0x3103ffff,
6625 0x2c620008, 0x1040001c, 0x00000000, 0x94c20014, 0x24420028, 0x00a22821,
6626 0x00031042, 0x1840000b, 0x00002021, 0x24e60848, 0x00403821, 0x94a30000,
6627 0x8cc20000, 0x24840001, 0x00431021, 0xacc20000, 0x0087102a, 0x1440fff9,
6628 0x24a50002, 0x31020001, 0x1040001f, 0x3c024000, 0x3c040800, 0x248423fc,
6629 0xa0a00001, 0x94a30000, 0x8c820000, 0x00431021, 0x0a000285, 0xac820000,
6630 0x8f626800, 0x3c030010, 0x00431024, 0x10400009, 0x00000000, 0x94c2001a,
6631 0x3c030800, 0x8c6323fc, 0x00431021, 0x3c010800, 0xac2223fc, 0x0a000286,
6632 0x3c024000, 0x94c2001a, 0x94c4001c, 0x3c030800, 0x8c6323fc, 0x00441023,
6633 0x00621821, 0x3c010800, 0xac2323fc, 0x3c024000, 0x02421825, 0xaf635c9c,
6634 0x8f625c90, 0x30420002, 0x1440fffc, 0x00000000, 0x9522000a, 0x30420010,
6635 0x1040009b, 0x00000000, 0x3c030800, 0x946323d4, 0x3c070800, 0x24e72400,
6636 0x8ce40000, 0x8f626800, 0x24630030, 0x00832821, 0x3c030010, 0x00431024,
6637 0x1440000a, 0x00000000, 0x94a20004, 0x3c040800, 0x8c842408, 0x3c030800,
6638 0x8c6323fc, 0x00441023, 0x00621821, 0x3c010800, 0xac2323fc, 0x3c040800,
6639 0x8c8423fc, 0x00041c02, 0x3082ffff, 0x00622021, 0x00041402, 0x00822021,
6640 0x00041027, 0xa4a20006, 0x3c030800, 0x8c632404, 0x3c0200ff, 0x3442fff8,
6641 0x00628824, 0x96220008, 0x24050001, 0x24034000, 0x000231c0, 0x00801021,
6642 0xa4c2001a, 0xa4c0001c, 0xace00000, 0x3c010800, 0xac251b60, 0xaf635cb8,
6643 0x8f625cb0, 0x30420002, 0x10400003, 0x00000000, 0x3c010800, 0xac201b60,
6644 0x8e220008, 0xaf625cb8, 0x8f625cb0, 0x30420002, 0x10400003, 0x00000000,
6645 0x3c010800, 0xac201b60, 0x3c020800, 0x8c421b60, 0x1040ffec, 0x00000000,
6646 0x3c040800, 0x0e00063b, 0x8c842404, 0x0a00032a, 0x00000000, 0x3c030800,
6647 0x90631b98, 0x24020002, 0x14620003, 0x3c034b65, 0x0a0002e1, 0x00008021,
6648 0x8e22001c, 0x34637654, 0x10430002, 0x24100002, 0x24100001, 0x00c02021,
6649 0x0e000350, 0x02003021, 0x24020003, 0x3c010800, 0xa0221b98, 0x24020002,
6650 0x1202000a, 0x24020001, 0x3c030800, 0x8c6323f0, 0x10620006, 0x00000000,
6651 0x3c020800, 0x944223d8, 0x00021400, 0x0a00031f, 0xae220014, 0x3c040800,
6652 0x248423da, 0x94820000, 0x00021400, 0xae220014, 0x3c020800, 0x8c421bbc,
6653 0x3c03c000, 0x3c010800, 0xa0201b98, 0x00431025, 0xaf625c5c, 0x8f625c50,
6654 0x30420002, 0x10400009, 0x00000000, 0x2484f7e2, 0x8c820000, 0x00431025,
6655 0xaf625c5c, 0x8f625c50, 0x30420002, 0x1440fffa, 0x00000000, 0x3c020800,
6656 0x24421b84, 0x8c430000, 0x24630001, 0xac430000, 0x8f630c14, 0x3063000f,
6657 0x2c620002, 0x1440000c, 0x3c024000, 0x8f630c14, 0x3c020800, 0x8c421b40,
6658 0x3063000f, 0x24420001, 0x3c010800, 0xac221b40, 0x2c620002, 0x1040fff7,
6659 0x00000000, 0x3c024000, 0x02421825, 0xaf635c9c, 0x8f625c90, 0x30420002,
6660 0x1440fffc, 0x00000000, 0x12600003, 0x00000000, 0x0e0004c0, 0x00000000,
6661 0x8fbf0028, 0x8fb30024, 0x8fb20020, 0x8fb1001c, 0x8fb00018, 0x03e00008,
6662 0x27bd0030, 0x8f634450, 0x3c040800, 0x24841b88, 0x8c820000, 0x00031c02,
6663 0x0043102b, 0x14400007, 0x3c038000, 0x8c840004, 0x8f624450, 0x00021c02,
6664 0x0083102b, 0x1040fffc, 0x3c038000, 0xaf634444, 0x8f624444, 0x00431024,
6665 0x1440fffd, 0x00000000, 0x8f624448, 0x03e00008, 0x3042ffff, 0x3c024000,
6666 0x00822025, 0xaf645c38, 0x8f625c30, 0x30420002, 0x1440fffc, 0x00000000,
6667 0x03e00008, 0x00000000, 0x27bdffe0, 0x00805821, 0x14c00011, 0x256e0008,
6668 0x3c020800, 0x8c4223f4, 0x10400007, 0x24020016, 0x3c010800, 0xa42223d2,
6669 0x2402002a, 0x3c010800, 0x0a000364, 0xa42223d4, 0x8d670010, 0x00071402,
6670 0x3c010800, 0xa42223d2, 0x3c010800, 0xa42723d4, 0x3c040800, 0x948423d4,
6671 0x3c030800, 0x946323d2, 0x95cf0006, 0x3c020800, 0x944223d0, 0x00832023,
6672 0x01e2c023, 0x3065ffff, 0x24a20028, 0x01c24821, 0x3082ffff, 0x14c0001a,
6673 0x01226021, 0x9582000c, 0x3042003f, 0x3c010800, 0xa42223d6, 0x95820004,
6674 0x95830006, 0x3c010800, 0xac2023e4, 0x3c010800, 0xac2023e8, 0x00021400,
6675 0x00431025, 0x3c010800, 0xac221bc0, 0x95220004, 0x3c010800, 0xa4221bc4,
6676 0x95230002, 0x01e51023, 0x0043102a, 0x10400010, 0x24020001, 0x3c010800,
6677 0x0a000398, 0xac2223f8, 0x3c030800, 0x8c6323e8, 0x3c020800, 0x94421bc4,
6678 0x00431021, 0xa5220004, 0x3c020800, 0x94421bc0, 0xa5820004, 0x3c020800,
6679 0x8c421bc0, 0xa5820006, 0x3c020800, 0x8c4223f0, 0x3c0d0800, 0x8dad23e4,
6680 0x3c0a0800, 0x144000e5, 0x8d4a23e8, 0x3c020800, 0x94421bc4, 0x004a1821,
6681 0x3063ffff, 0x0062182b, 0x24020002, 0x10c2000d, 0x01435023, 0x3c020800,
6682 0x944223d6, 0x30420009, 0x10400008, 0x00000000, 0x9582000c, 0x3042fff6,
6683 0xa582000c, 0x3c020800, 0x944223d6, 0x30420009, 0x01a26823, 0x3c020800,
6684 0x8c4223f8, 0x1040004a, 0x01203821, 0x3c020800, 0x944223d2, 0x00004021,
6685 0xa520000a, 0x01e21023, 0xa5220002, 0x3082ffff, 0x00021042, 0x18400008,
6686 0x00003021, 0x00401821, 0x94e20000, 0x25080001, 0x00c23021, 0x0103102a,
6687 0x1440fffb, 0x24e70002, 0x00061c02, 0x30c2ffff, 0x00623021, 0x00061402,
6688 0x00c23021, 0x00c02821, 0x00061027, 0xa522000a, 0x00003021, 0x2527000c,
6689 0x00004021, 0x94e20000, 0x25080001, 0x00c23021, 0x2d020004, 0x1440fffb,
6690 0x24e70002, 0x95220002, 0x00004021, 0x91230009, 0x00442023, 0x01803821,
6691 0x3082ffff, 0xa4e00010, 0x00621821, 0x00021042, 0x18400010, 0x00c33021,
6692 0x00404821, 0x94e20000, 0x24e70002, 0x00c23021, 0x30e2007f, 0x14400006,
6693 0x25080001, 0x8d630000, 0x3c02007f, 0x3442ff80, 0x00625824, 0x25670008,
6694 0x0109102a, 0x1440fff3, 0x00000000, 0x30820001, 0x10400005, 0x00061c02,
6695 0xa0e00001, 0x94e20000, 0x00c23021, 0x00061c02, 0x30c2ffff, 0x00623021,
6696 0x00061402, 0x00c23021, 0x0a00047d, 0x30c6ffff, 0x24020002, 0x14c20081,
6697 0x00000000, 0x3c020800, 0x8c42240c, 0x14400007, 0x00000000, 0x3c020800,
6698 0x944223d2, 0x95230002, 0x01e21023, 0x10620077, 0x00000000, 0x3c020800,
6699 0x944223d2, 0x01e21023, 0xa5220002, 0x3c020800, 0x8c42240c, 0x1040001a,
6700 0x31e3ffff, 0x8dc70010, 0x3c020800, 0x94421b96, 0x00e04021, 0x00072c02,
6701 0x00aa2021, 0x00431023, 0x00823823, 0x00072402, 0x30e2ffff, 0x00823821,
6702 0x00071027, 0xa522000a, 0x3102ffff, 0x3c040800, 0x948423d4, 0x00453023,
6703 0x00e02821, 0x00641823, 0x006d1821, 0x00c33021, 0x00061c02, 0x30c2ffff,
6704 0x0a00047d, 0x00623021, 0x01203821, 0x00004021, 0x3082ffff, 0x00021042,
6705 0x18400008, 0x00003021, 0x00401821, 0x94e20000, 0x25080001, 0x00c23021,
6706 0x0103102a, 0x1440fffb, 0x24e70002, 0x00061c02, 0x30c2ffff, 0x00623021,
6707 0x00061402, 0x00c23021, 0x00c02821, 0x00061027, 0xa522000a, 0x00003021,
6708 0x2527000c, 0x00004021, 0x94e20000, 0x25080001, 0x00c23021, 0x2d020004,
6709 0x1440fffb, 0x24e70002, 0x95220002, 0x00004021, 0x91230009, 0x00442023,
6710 0x01803821, 0x3082ffff, 0xa4e00010, 0x3c040800, 0x948423d4, 0x00621821,
6711 0x00c33021, 0x00061c02, 0x30c2ffff, 0x00623021, 0x00061c02, 0x3c020800,
6712 0x944223d0, 0x00c34821, 0x00441023, 0x00021fc2, 0x00431021, 0x00021043,
6713 0x18400010, 0x00003021, 0x00402021, 0x94e20000, 0x24e70002, 0x00c23021,
6714 0x30e2007f, 0x14400006, 0x25080001, 0x8d630000, 0x3c02007f, 0x3442ff80,
6715 0x00625824, 0x25670008, 0x0104102a, 0x1440fff3, 0x00000000, 0x3c020800,
6716 0x944223ec, 0x00c23021, 0x3122ffff, 0x00c23021, 0x00061c02, 0x30c2ffff,
6717 0x00623021, 0x00061402, 0x00c23021, 0x00c04021, 0x00061027, 0xa5820010,
6718 0xadc00014, 0x0a00049d, 0xadc00000, 0x8dc70010, 0x00e04021, 0x11400007,
6719 0x00072c02, 0x00aa3021, 0x00061402, 0x30c3ffff, 0x00433021, 0x00061402,
6720 0x00c22821, 0x00051027, 0xa522000a, 0x3c030800, 0x946323d4, 0x3102ffff,
6721 0x01e21021, 0x00433023, 0x00cd3021, 0x00061c02, 0x30c2ffff, 0x00623021,
6722 0x00061402, 0x00c23021, 0x00c04021, 0x00061027, 0xa5820010, 0x3102ffff,
6723 0x00051c00, 0x00431025, 0xadc20010, 0x3c020800, 0x8c4223f4, 0x10400005,
6724 0x2de205eb, 0x14400002, 0x25e2fff2, 0x34028870, 0xa5c20034, 0x3c030800,
6725 0x246323e8, 0x8c620000, 0x24420001, 0xac620000, 0x3c040800, 0x8c8423e4,
6726 0x3c020800, 0x8c421bc0, 0x3303ffff, 0x00832021, 0x00431821, 0x0062102b,
6727 0x3c010800, 0xac2423e4, 0x10400003, 0x2482ffff, 0x3c010800, 0xac2223e4,
6728 0x3c010800, 0xac231bc0, 0x03e00008, 0x27bd0020, 0x27bdffb8, 0x3c050800,
6729 0x24a51b96, 0xafbf0044, 0xafbe0040, 0xafb7003c, 0xafb60038, 0xafb50034,
6730 0xafb40030, 0xafb3002c, 0xafb20028, 0xafb10024, 0xafb00020, 0x94a90000,
6731 0x3c020800, 0x944223d0, 0x3c030800, 0x8c631bb0, 0x3c040800, 0x8c841bac,
6732 0x01221023, 0x0064182a, 0xa7a9001e, 0x106000be, 0xa7a20016, 0x24be0022,
6733 0x97b6001e, 0x24b3001a, 0x24b70016, 0x8fc20000, 0x14400008, 0x00000000,
6734 0x8fc2fff8, 0x97a30016, 0x8fc4fff4, 0x00431021, 0x0082202a, 0x148000b0,
6735 0x00000000, 0x97d50818, 0x32a2ffff, 0x104000a3, 0x00009021, 0x0040a021,
6736 0x00008821, 0x0e000625, 0x00000000, 0x00403021, 0x14c00007, 0x00000000,
6737 0x3c020800, 0x8c4223dc, 0x24420001, 0x3c010800, 0x0a000596, 0xac2223dc,
6738 0x3c100800, 0x02118021, 0x8e101bc8, 0x9608000a, 0x31020040, 0x10400005,
6739 0x2407180c, 0x8e02000c, 0x2407188c, 0x00021400, 0xacc20018, 0x31020080,
6740 0x54400001, 0x34e70010, 0x3c020800, 0x00511021, 0x8c421bd0, 0x3c030800,
6741 0x00711821, 0x8c631bd4, 0x00021500, 0x00031c00, 0x00431025, 0xacc20014,
6742 0x96040008, 0x3242ffff, 0x00821021, 0x0282102a, 0x14400002, 0x02b22823,
6743 0x00802821, 0x8e020000, 0x02459021, 0xacc20000, 0x8e020004, 0x00c02021,
6744 0x26310010, 0xac820004, 0x30e2ffff, 0xac800008, 0xa485000e, 0xac820010,
6745 0x24020305, 0x0e0005a2, 0xa482000c, 0x3242ffff, 0x0054102b, 0x1440ffc5,
6746 0x3242ffff, 0x0a00058e, 0x00000000, 0x8e620000, 0x8e63fffc, 0x0043102a,
6747 0x10400067, 0x00000000, 0x8e62fff0, 0x00028900, 0x3c100800, 0x02118021,
6748 0x0e000625, 0x8e101bc8, 0x00403021, 0x14c00005, 0x00000000, 0x8e62082c,
6749 0x24420001, 0x0a000596, 0xae62082c, 0x9608000a, 0x31020040, 0x10400005,
6750 0x2407180c, 0x8e02000c, 0x2407188c, 0x00021400, 0xacc20018, 0x3c020800,
6751 0x00511021, 0x8c421bd0, 0x3c030800, 0x00711821, 0x8c631bd4, 0x00021500,
6752 0x00031c00, 0x00431025, 0xacc20014, 0x8e63fff4, 0x96020008, 0x00432023,
6753 0x3242ffff, 0x3083ffff, 0x00431021, 0x02c2102a, 0x10400003, 0x00802821,
6754 0x97a9001e, 0x01322823, 0x8e620000, 0x30a4ffff, 0x00441021, 0xae620000,
6755 0xa4c5000e, 0x8e020000, 0xacc20000, 0x8e020004, 0x8e63fff4, 0x00431021,
6756 0xacc20004, 0x8e63fff4, 0x96020008, 0x00641821, 0x0062102a, 0x14400006,
6757 0x02459021, 0x8e62fff0, 0xae60fff4, 0x24420001, 0x0a000571, 0xae62fff0,
6758 0xae63fff4, 0xacc00008, 0x3242ffff, 0x10560003, 0x31020004, 0x10400006,
6759 0x24020305, 0x31020080, 0x54400001, 0x34e70010, 0x34e70020, 0x24020905,
6760 0xa4c2000c, 0x8ee30000, 0x8ee20004, 0x14620007, 0x3c02b49a, 0x8ee20860,
6761 0x54400001, 0x34e70400, 0x3c024b65, 0x0a000588, 0x34427654, 0x344289ab,
6762 0xacc2001c, 0x30e2ffff, 0xacc20010, 0x0e0005a2, 0x00c02021, 0x3242ffff,
6763 0x0056102b, 0x1440ff9b, 0x00000000, 0x8e620000, 0x8e63fffc, 0x0043102a,
6764 0x1440ff48, 0x00000000, 0x8fbf0044, 0x8fbe0040, 0x8fb7003c, 0x8fb60038,
6765 0x8fb50034, 0x8fb40030, 0x8fb3002c, 0x8fb20028, 0x8fb10024, 0x8fb00020,
6766 0x03e00008, 0x27bd0048, 0x27bdffe8, 0xafbf0014, 0xafb00010, 0x8f624450,
6767 0x8f634410, 0x0a0005b1, 0x00808021, 0x8f626820, 0x30422000, 0x10400003,
6768 0x00000000, 0x0e0001f0, 0x00002021, 0x8f624450, 0x8f634410, 0x3042ffff,
6769 0x0043102b, 0x1440fff5, 0x00000000, 0x8f630c14, 0x3063000f, 0x2c620002,
6770 0x1440000b, 0x00000000, 0x8f630c14, 0x3c020800, 0x8c421b40, 0x3063000f,
6771 0x24420001, 0x3c010800, 0xac221b40, 0x2c620002, 0x1040fff7, 0x00000000,
6772 0xaf705c18, 0x8f625c10, 0x30420002, 0x10400009, 0x00000000, 0x8f626820,
6773 0x30422000, 0x1040fff8, 0x00000000, 0x0e0001f0, 0x00002021, 0x0a0005c4,
6774 0x00000000, 0x8fbf0014, 0x8fb00010, 0x03e00008, 0x27bd0018, 0x00000000,
6775 0x00000000, 0x00000000, 0x27bdffe8, 0x3c1bc000, 0xafbf0014, 0xafb00010,
6776 0xaf60680c, 0x8f626804, 0x34420082, 0xaf626804, 0x8f634000, 0x24020b50,
6777 0x3c010800, 0xac221b54, 0x24020b78, 0x3c010800, 0xac221b64, 0x34630002,
6778 0xaf634000, 0x0e000605, 0x00808021, 0x3c010800, 0xa0221b68, 0x304200ff,
6779 0x24030002, 0x14430005, 0x00000000, 0x3c020800, 0x8c421b54, 0x0a0005f8,
6780 0xac5000c0, 0x3c020800, 0x8c421b54, 0xac5000bc, 0x8f624434, 0x8f634438,
6781 0x8f644410, 0x3c010800, 0xac221b5c, 0x3c010800, 0xac231b6c, 0x3c010800,
6782 0xac241b58, 0x8fbf0014, 0x8fb00010, 0x03e00008, 0x27bd0018, 0x3c040800,
6783 0x8c870000, 0x3c03aa55, 0x3463aa55, 0x3c06c003, 0xac830000, 0x8cc20000,
6784 0x14430007, 0x24050002, 0x3c0355aa, 0x346355aa, 0xac830000, 0x8cc20000,
6785 0x50430001, 0x24050001, 0x3c020800, 0xac470000, 0x03e00008, 0x00a01021,
6786 0x27bdfff8, 0x18800009, 0x00002821, 0x8f63680c, 0x8f62680c, 0x1043fffe,
6787 0x00000000, 0x24a50001, 0x00a4102a, 0x1440fff9, 0x00000000, 0x03e00008,
6788 0x27bd0008, 0x8f634450, 0x3c020800, 0x8c421b5c, 0x00031c02, 0x0043102b,
6789 0x14400008, 0x3c038000, 0x3c040800, 0x8c841b6c, 0x8f624450, 0x00021c02,
6790 0x0083102b, 0x1040fffc, 0x3c038000, 0xaf634444, 0x8f624444, 0x00431024,
6791 0x1440fffd, 0x00000000, 0x8f624448, 0x03e00008, 0x3042ffff, 0x3082ffff,
6792 0x2442e000, 0x2c422001, 0x14400003, 0x3c024000, 0x0a000648, 0x2402ffff,
6793 0x00822025, 0xaf645c38, 0x8f625c30, 0x30420002, 0x1440fffc, 0x00001021,
6794 0x03e00008, 0x00000000, 0x8f624450, 0x3c030800, 0x8c631b58, 0x0a000651,
6795 0x3042ffff, 0x8f624450, 0x3042ffff, 0x0043102b, 0x1440fffc, 0x00000000,
6796 0x03e00008, 0x00000000, 0x27bdffe0, 0x00802821, 0x3c040800, 0x24841af0,
6797 0x00003021, 0x00003821, 0xafbf0018, 0xafa00010, 0x0e00067c, 0xafa00014,
6798 0x0a000660, 0x00000000, 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x00000000,
6799 0x00000000, 0x00000000, 0x3c020800, 0x34423000, 0x3c030800, 0x34633000,
6800 0x3c040800, 0x348437ff, 0x3c010800, 0xac221b74, 0x24020040, 0x3c010800,
6801 0xac221b78, 0x3c010800, 0xac201b70, 0xac600000, 0x24630004, 0x0083102b,
6802 0x5040fffd, 0xac600000, 0x03e00008, 0x00000000, 0x00804821, 0x8faa0010,
6803 0x3c020800, 0x8c421b70, 0x3c040800, 0x8c841b78, 0x8fab0014, 0x24430001,
6804 0x0044102b, 0x3c010800, 0xac231b70, 0x14400003, 0x00004021, 0x3c010800,
6805 0xac201b70, 0x3c020800, 0x8c421b70, 0x3c030800, 0x8c631b74, 0x91240000,
6806 0x00021140, 0x00431021, 0x00481021, 0x25080001, 0xa0440000, 0x29020008,
6807 0x1440fff4, 0x25290001, 0x3c020800, 0x8c421b70, 0x3c030800, 0x8c631b74,
6808 0x8f64680c, 0x00021140, 0x00431021, 0xac440008, 0xac45000c, 0xac460010,
6809 0xac470014, 0xac4a0018, 0x03e00008, 0xac4b001c, 0x00000000, 0x00000000,
6810};
6811
6812static const u32 tg3TsoFwRodata[] = {
6813 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000,
6814 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x496e0000, 0x73746b6f,
6815 0x66662a2a, 0x00000000, 0x53774576, 0x656e7430, 0x00000000, 0x00000000,
6816 0x00000000, 0x00000000, 0x66617461, 0x6c457272, 0x00000000, 0x00000000,
6817 0x00000000,
6818};
6819
6820static const u32 tg3TsoFwData[] = {
6821 0x00000000, 0x73746b6f, 0x66666c64, 0x5f76312e, 0x362e3000, 0x00000000,
6822 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
6823 0x00000000,
6824};
6825
6826/* 5705 needs a special version of the TSO firmware. */ 6378/* 5705 needs a special version of the TSO firmware. */
6827#define TG3_TSO5_FW_RELEASE_MAJOR 0x1
6828#define TG3_TSO5_FW_RELASE_MINOR 0x2
6829#define TG3_TSO5_FW_RELEASE_FIX 0x0
6830#define TG3_TSO5_FW_START_ADDR 0x00010000
6831#define TG3_TSO5_FW_TEXT_ADDR 0x00010000
6832#define TG3_TSO5_FW_TEXT_LEN 0xe90
6833#define TG3_TSO5_FW_RODATA_ADDR 0x00010e90
6834#define TG3_TSO5_FW_RODATA_LEN 0x50
6835#define TG3_TSO5_FW_DATA_ADDR 0x00010f00
6836#define TG3_TSO5_FW_DATA_LEN 0x20
6837#define TG3_TSO5_FW_SBSS_ADDR 0x00010f20
6838#define TG3_TSO5_FW_SBSS_LEN 0x28
6839#define TG3_TSO5_FW_BSS_ADDR 0x00010f50
6840#define TG3_TSO5_FW_BSS_LEN 0x88
6841
6842static const u32 tg3Tso5FwText[(TG3_TSO5_FW_TEXT_LEN / 4) + 1] = {
6843 0x0c004003, 0x00000000, 0x00010f04, 0x00000000, 0x10000003, 0x00000000,
6844 0x0000000d, 0x0000000d, 0x3c1d0001, 0x37bde000, 0x03a0f021, 0x3c100001,
6845 0x26100000, 0x0c004010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe,
6846 0xafbf0018, 0x0c0042e8, 0x34840002, 0x0c004364, 0x00000000, 0x3c030001,
6847 0x90630f34, 0x24020002, 0x3c040001, 0x24840e9c, 0x14620003, 0x24050001,
6848 0x3c040001, 0x24840e90, 0x24060002, 0x00003821, 0xafa00010, 0x0c004378,
6849 0xafa00014, 0x0c00402c, 0x00000000, 0x8fbf0018, 0x03e00008, 0x27bd0020,
6850 0x00000000, 0x00000000, 0x27bdffe0, 0xafbf001c, 0xafb20018, 0xafb10014,
6851 0x0c0042d4, 0xafb00010, 0x3c128000, 0x24110001, 0x8f706810, 0x32020400,
6852 0x10400007, 0x00000000, 0x8f641008, 0x00921024, 0x14400003, 0x00000000,
6853 0x0c004064, 0x00000000, 0x3c020001, 0x90420f56, 0x10510003, 0x32020200,
6854 0x1040fff1, 0x00000000, 0x0c0041b4, 0x00000000, 0x08004034, 0x00000000,
6855 0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010, 0x03e00008, 0x27bd0020,
6856 0x27bdffe0, 0x3c040001, 0x24840eb0, 0x00002821, 0x00003021, 0x00003821,
6857 0xafbf0018, 0xafa00010, 0x0c004378, 0xafa00014, 0x0000d021, 0x24020130,
6858 0xaf625000, 0x3c010001, 0xa4200f50, 0x3c010001, 0xa0200f57, 0x8fbf0018,
6859 0x03e00008, 0x27bd0020, 0x00000000, 0x00000000, 0x3c030001, 0x24630f60,
6860 0x90620000, 0x27bdfff0, 0x14400003, 0x0080c021, 0x08004073, 0x00004821,
6861 0x3c022000, 0x03021024, 0x10400003, 0x24090002, 0x08004073, 0xa0600000,
6862 0x24090001, 0x00181040, 0x30431f80, 0x346f8008, 0x1520004b, 0x25eb0028,
6863 0x3c040001, 0x00832021, 0x8c848010, 0x3c050001, 0x24a50f7a, 0x00041402,
6864 0xa0a20000, 0x3c010001, 0xa0240f7b, 0x3c020001, 0x00431021, 0x94428014,
6865 0x3c010001, 0xa0220f7c, 0x3c0c0001, 0x01836021, 0x8d8c8018, 0x304200ff,
6866 0x24420008, 0x000220c3, 0x24020001, 0x3c010001, 0xa0220f60, 0x0124102b,
6867 0x1040000c, 0x00003821, 0x24a6000e, 0x01602821, 0x8ca20000, 0x8ca30004,
6868 0x24a50008, 0x24e70001, 0xacc20000, 0xacc30004, 0x00e4102b, 0x1440fff8,
6869 0x24c60008, 0x00003821, 0x3c080001, 0x25080f7b, 0x91060000, 0x3c020001,
6870 0x90420f7c, 0x2503000d, 0x00c32821, 0x00461023, 0x00021fc2, 0x00431021,
6871 0x00021043, 0x1840000c, 0x00002021, 0x91020001, 0x00461023, 0x00021fc2,
6872 0x00431021, 0x00021843, 0x94a20000, 0x24e70001, 0x00822021, 0x00e3102a,
6873 0x1440fffb, 0x24a50002, 0x00041c02, 0x3082ffff, 0x00622021, 0x00041402,
6874 0x00822021, 0x3c02ffff, 0x01821024, 0x3083ffff, 0x00431025, 0x3c010001,
6875 0x080040fa, 0xac220f80, 0x3c050001, 0x24a50f7c, 0x90a20000, 0x3c0c0001,
6876 0x01836021, 0x8d8c8018, 0x000220c2, 0x1080000e, 0x00003821, 0x01603021,
6877 0x24a5000c, 0x8ca20000, 0x8ca30004, 0x24a50008, 0x24e70001, 0xacc20000,
6878 0xacc30004, 0x00e4102b, 0x1440fff8, 0x24c60008, 0x3c050001, 0x24a50f7c,
6879 0x90a20000, 0x30430007, 0x24020004, 0x10620011, 0x28620005, 0x10400005,
6880 0x24020002, 0x10620008, 0x000710c0, 0x080040fa, 0x00000000, 0x24020006,
6881 0x1062000e, 0x000710c0, 0x080040fa, 0x00000000, 0x00a21821, 0x9463000c,
6882 0x004b1021, 0x080040fa, 0xa4430000, 0x000710c0, 0x00a21821, 0x8c63000c,
6883 0x004b1021, 0x080040fa, 0xac430000, 0x00a21821, 0x8c63000c, 0x004b2021,
6884 0x00a21021, 0xac830000, 0x94420010, 0xa4820004, 0x95e70006, 0x3c020001,
6885 0x90420f7c, 0x3c030001, 0x90630f7a, 0x00e2c823, 0x3c020001, 0x90420f7b,
6886 0x24630028, 0x01e34021, 0x24420028, 0x15200012, 0x01e23021, 0x94c2000c,
6887 0x3c010001, 0xa4220f78, 0x94c20004, 0x94c30006, 0x3c010001, 0xa4200f76,
6888 0x3c010001, 0xa4200f72, 0x00021400, 0x00431025, 0x3c010001, 0xac220f6c,
6889 0x95020004, 0x3c010001, 0x08004124, 0xa4220f70, 0x3c020001, 0x94420f70,
6890 0x3c030001, 0x94630f72, 0x00431021, 0xa5020004, 0x3c020001, 0x94420f6c,
6891 0xa4c20004, 0x3c020001, 0x8c420f6c, 0xa4c20006, 0x3c040001, 0x94840f72,
6892 0x3c020001, 0x94420f70, 0x3c0a0001, 0x954a0f76, 0x00441821, 0x3063ffff,
6893 0x0062182a, 0x24020002, 0x1122000b, 0x00832023, 0x3c030001, 0x94630f78,
6894 0x30620009, 0x10400006, 0x3062fff6, 0xa4c2000c, 0x3c020001, 0x94420f78,
6895 0x30420009, 0x01425023, 0x24020001, 0x1122001b, 0x29220002, 0x50400005,
6896 0x24020002, 0x11200007, 0x31a2ffff, 0x08004197, 0x00000000, 0x1122001d,
6897 0x24020016, 0x08004197, 0x31a2ffff, 0x3c0e0001, 0x95ce0f80, 0x10800005,
6898 0x01806821, 0x01c42021, 0x00041c02, 0x3082ffff, 0x00627021, 0x000e1027,
6899 0xa502000a, 0x3c030001, 0x90630f7b, 0x31a2ffff, 0x00e21021, 0x0800418d,
6900 0x00432023, 0x3c020001, 0x94420f80, 0x00442021, 0x00041c02, 0x3082ffff,
6901 0x00622021, 0x00807021, 0x00041027, 0x08004185, 0xa502000a, 0x3c050001,
6902 0x24a50f7a, 0x90a30000, 0x14620002, 0x24e2fff2, 0xa5e20034, 0x90a20000,
6903 0x00e21023, 0xa5020002, 0x3c030001, 0x94630f80, 0x3c020001, 0x94420f5a,
6904 0x30e5ffff, 0x00641821, 0x00451023, 0x00622023, 0x00041c02, 0x3082ffff,
6905 0x00622021, 0x00041027, 0xa502000a, 0x3c030001, 0x90630f7c, 0x24620001,
6906 0x14a20005, 0x00807021, 0x01631021, 0x90420000, 0x08004185, 0x00026200,
6907 0x24620002, 0x14a20003, 0x306200fe, 0x004b1021, 0x944c0000, 0x3c020001,
6908 0x94420f82, 0x3183ffff, 0x3c040001, 0x90840f7b, 0x00431021, 0x00e21021,
6909 0x00442023, 0x008a2021, 0x00041c02, 0x3082ffff, 0x00622021, 0x00041402,
6910 0x00822021, 0x00806821, 0x00041027, 0xa4c20010, 0x31a2ffff, 0x000e1c00,
6911 0x00431025, 0x3c040001, 0x24840f72, 0xade20010, 0x94820000, 0x3c050001,
6912 0x94a50f76, 0x3c030001, 0x8c630f6c, 0x24420001, 0x00b92821, 0xa4820000,
6913 0x3322ffff, 0x00622021, 0x0083182b, 0x3c010001, 0xa4250f76, 0x10600003,
6914 0x24a2ffff, 0x3c010001, 0xa4220f76, 0x3c024000, 0x03021025, 0x3c010001,
6915 0xac240f6c, 0xaf621008, 0x03e00008, 0x27bd0010, 0x3c030001, 0x90630f56,
6916 0x27bdffe8, 0x24020001, 0xafbf0014, 0x10620026, 0xafb00010, 0x8f620cf4,
6917 0x2442ffff, 0x3042007f, 0x00021100, 0x8c434000, 0x3c010001, 0xac230f64,
6918 0x8c434008, 0x24444000, 0x8c5c4004, 0x30620040, 0x14400002, 0x24020088,
6919 0x24020008, 0x3c010001, 0xa4220f68, 0x30620004, 0x10400005, 0x24020001,
6920 0x3c010001, 0xa0220f57, 0x080041d5, 0x00031402, 0x3c010001, 0xa0200f57,
6921 0x00031402, 0x3c010001, 0xa4220f54, 0x9483000c, 0x24020001, 0x3c010001,
6922 0xa4200f50, 0x3c010001, 0xa0220f56, 0x3c010001, 0xa4230f62, 0x24020001,
6923 0x1342001e, 0x00000000, 0x13400005, 0x24020003, 0x13420067, 0x00000000,
6924 0x080042cf, 0x00000000, 0x3c020001, 0x94420f62, 0x241a0001, 0x3c010001,
6925 0xa4200f5e, 0x3c010001, 0xa4200f52, 0x304407ff, 0x00021bc2, 0x00031823,
6926 0x3063003e, 0x34630036, 0x00021242, 0x3042003c, 0x00621821, 0x3c010001,
6927 0xa4240f58, 0x00832021, 0x24630030, 0x3c010001, 0xa4240f5a, 0x3c010001,
6928 0xa4230f5c, 0x3c060001, 0x24c60f52, 0x94c50000, 0x94c30002, 0x3c040001,
6929 0x94840f5a, 0x00651021, 0x0044102a, 0x10400013, 0x3c108000, 0x00a31021,
6930 0xa4c20000, 0x3c02a000, 0xaf620cf4, 0x3c010001, 0xa0200f56, 0x8f641008,
6931 0x00901024, 0x14400003, 0x00000000, 0x0c004064, 0x00000000, 0x8f620cf4,
6932 0x00501024, 0x104000b7, 0x00000000, 0x0800420f, 0x00000000, 0x3c030001,
6933 0x94630f50, 0x00851023, 0xa4c40000, 0x00621821, 0x3042ffff, 0x3c010001,
6934 0xa4230f50, 0xaf620ce8, 0x3c020001, 0x94420f68, 0x34420024, 0xaf620cec,
6935 0x94c30002, 0x3c020001, 0x94420f50, 0x14620012, 0x3c028000, 0x3c108000,
6936 0x3c02a000, 0xaf620cf4, 0x3c010001, 0xa0200f56, 0x8f641008, 0x00901024,
6937 0x14400003, 0x00000000, 0x0c004064, 0x00000000, 0x8f620cf4, 0x00501024,
6938 0x1440fff7, 0x00000000, 0x080042cf, 0x241a0003, 0xaf620cf4, 0x3c108000,
6939 0x8f641008, 0x00901024, 0x14400003, 0x00000000, 0x0c004064, 0x00000000,
6940 0x8f620cf4, 0x00501024, 0x1440fff7, 0x00000000, 0x080042cf, 0x241a0003,
6941 0x3c070001, 0x24e70f50, 0x94e20000, 0x03821021, 0xaf620ce0, 0x3c020001,
6942 0x8c420f64, 0xaf620ce4, 0x3c050001, 0x94a50f54, 0x94e30000, 0x3c040001,
6943 0x94840f58, 0x3c020001, 0x94420f5e, 0x00a32823, 0x00822023, 0x30a6ffff,
6944 0x3083ffff, 0x00c3102b, 0x14400043, 0x00000000, 0x3c020001, 0x94420f5c,
6945 0x00021400, 0x00621025, 0xaf620ce8, 0x94e20000, 0x3c030001, 0x94630f54,
6946 0x00441021, 0xa4e20000, 0x3042ffff, 0x14430021, 0x3c020008, 0x3c020001,
6947 0x90420f57, 0x10400006, 0x3c03000c, 0x3c020001, 0x94420f68, 0x34630624,
6948 0x0800427c, 0x0000d021, 0x3c020001, 0x94420f68, 0x3c030008, 0x34630624,
6949 0x00431025, 0xaf620cec, 0x3c108000, 0x3c02a000, 0xaf620cf4, 0x3c010001,
6950 0xa0200f56, 0x8f641008, 0x00901024, 0x14400003, 0x00000000, 0x0c004064,
6951 0x00000000, 0x8f620cf4, 0x00501024, 0x10400015, 0x00000000, 0x08004283,
6952 0x00000000, 0x3c030001, 0x94630f68, 0x34420624, 0x3c108000, 0x00621825,
6953 0x3c028000, 0xaf630cec, 0xaf620cf4, 0x8f641008, 0x00901024, 0x14400003,
6954 0x00000000, 0x0c004064, 0x00000000, 0x8f620cf4, 0x00501024, 0x1440fff7,
6955 0x00000000, 0x3c010001, 0x080042cf, 0xa4200f5e, 0x3c020001, 0x94420f5c,
6956 0x00021400, 0x00c21025, 0xaf620ce8, 0x3c020001, 0x90420f57, 0x10400009,
6957 0x3c03000c, 0x3c020001, 0x94420f68, 0x34630624, 0x0000d021, 0x00431025,
6958 0xaf620cec, 0x080042c1, 0x3c108000, 0x3c020001, 0x94420f68, 0x3c030008,
6959 0x34630604, 0x00431025, 0xaf620cec, 0x3c020001, 0x94420f5e, 0x00451021,
6960 0x3c010001, 0xa4220f5e, 0x3c108000, 0x3c02a000, 0xaf620cf4, 0x3c010001,
6961 0xa0200f56, 0x8f641008, 0x00901024, 0x14400003, 0x00000000, 0x0c004064,
6962 0x00000000, 0x8f620cf4, 0x00501024, 0x1440fff7, 0x00000000, 0x8fbf0014,
6963 0x8fb00010, 0x03e00008, 0x27bd0018, 0x00000000, 0x27bdffe0, 0x3c040001,
6964 0x24840ec0, 0x00002821, 0x00003021, 0x00003821, 0xafbf0018, 0xafa00010,
6965 0x0c004378, 0xafa00014, 0x0000d021, 0x24020130, 0xaf625000, 0x3c010001,
6966 0xa4200f50, 0x3c010001, 0xa0200f57, 0x8fbf0018, 0x03e00008, 0x27bd0020,
6967 0x27bdffe8, 0x3c1bc000, 0xafbf0014, 0xafb00010, 0xaf60680c, 0x8f626804,
6968 0x34420082, 0xaf626804, 0x8f634000, 0x24020b50, 0x3c010001, 0xac220f20,
6969 0x24020b78, 0x3c010001, 0xac220f30, 0x34630002, 0xaf634000, 0x0c004315,
6970 0x00808021, 0x3c010001, 0xa0220f34, 0x304200ff, 0x24030002, 0x14430005,
6971 0x00000000, 0x3c020001, 0x8c420f20, 0x08004308, 0xac5000c0, 0x3c020001,
6972 0x8c420f20, 0xac5000bc, 0x8f624434, 0x8f634438, 0x8f644410, 0x3c010001,
6973 0xac220f28, 0x3c010001, 0xac230f38, 0x3c010001, 0xac240f24, 0x8fbf0014,
6974 0x8fb00010, 0x03e00008, 0x27bd0018, 0x03e00008, 0x24020001, 0x27bdfff8,
6975 0x18800009, 0x00002821, 0x8f63680c, 0x8f62680c, 0x1043fffe, 0x00000000,
6976 0x24a50001, 0x00a4102a, 0x1440fff9, 0x00000000, 0x03e00008, 0x27bd0008,
6977 0x8f634450, 0x3c020001, 0x8c420f28, 0x00031c02, 0x0043102b, 0x14400008,
6978 0x3c038000, 0x3c040001, 0x8c840f38, 0x8f624450, 0x00021c02, 0x0083102b,
6979 0x1040fffc, 0x3c038000, 0xaf634444, 0x8f624444, 0x00431024, 0x1440fffd,
6980 0x00000000, 0x8f624448, 0x03e00008, 0x3042ffff, 0x3082ffff, 0x2442e000,
6981 0x2c422001, 0x14400003, 0x3c024000, 0x08004347, 0x2402ffff, 0x00822025,
6982 0xaf645c38, 0x8f625c30, 0x30420002, 0x1440fffc, 0x00001021, 0x03e00008,
6983 0x00000000, 0x8f624450, 0x3c030001, 0x8c630f24, 0x08004350, 0x3042ffff,
6984 0x8f624450, 0x3042ffff, 0x0043102b, 0x1440fffc, 0x00000000, 0x03e00008,
6985 0x00000000, 0x27bdffe0, 0x00802821, 0x3c040001, 0x24840ed0, 0x00003021,
6986 0x00003821, 0xafbf0018, 0xafa00010, 0x0c004378, 0xafa00014, 0x0800435f,
6987 0x00000000, 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x3c020001, 0x3442d600,
6988 0x3c030001, 0x3463d600, 0x3c040001, 0x3484ddff, 0x3c010001, 0xac220f40,
6989 0x24020040, 0x3c010001, 0xac220f44, 0x3c010001, 0xac200f3c, 0xac600000,
6990 0x24630004, 0x0083102b, 0x5040fffd, 0xac600000, 0x03e00008, 0x00000000,
6991 0x00804821, 0x8faa0010, 0x3c020001, 0x8c420f3c, 0x3c040001, 0x8c840f44,
6992 0x8fab0014, 0x24430001, 0x0044102b, 0x3c010001, 0xac230f3c, 0x14400003,
6993 0x00004021, 0x3c010001, 0xac200f3c, 0x3c020001, 0x8c420f3c, 0x3c030001,
6994 0x8c630f40, 0x91240000, 0x00021140, 0x00431021, 0x00481021, 0x25080001,
6995 0xa0440000, 0x29020008, 0x1440fff4, 0x25290001, 0x3c020001, 0x8c420f3c,
6996 0x3c030001, 0x8c630f40, 0x8f64680c, 0x00021140, 0x00431021, 0xac440008,
6997 0xac45000c, 0xac460010, 0xac470014, 0xac4a0018, 0x03e00008, 0xac4b001c,
6998 0x00000000, 0x00000000, 0x00000000,
6999};
7000
7001static const u32 tg3Tso5FwRodata[(TG3_TSO5_FW_RODATA_LEN / 4) + 1] = {
7002 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000,
7003 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000,
7004 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000, 0x66617461, 0x6c457272,
7005 0x00000000, 0x00000000, 0x00000000,
7006};
7007
7008static const u32 tg3Tso5FwData[(TG3_TSO5_FW_DATA_LEN / 4) + 1] = {
7009 0x00000000, 0x73746b6f, 0x66666c64, 0x5f76312e, 0x322e3000, 0x00000000,
7010 0x00000000, 0x00000000, 0x00000000,
7011};
7012 6379
7013/* tp->lock is held. */ 6380/* tp->lock is held. */
7014static int tg3_load_tso_firmware(struct tg3 *tp) 6381static int tg3_load_tso_firmware(struct tg3 *tp)
7015{ 6382{
7016 struct fw_info info; 6383 struct fw_info info;
6384 const __be32 *fw_data;
7017 unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size; 6385 unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size;
7018 int err, i; 6386 int err, i;
7019 6387
7020 if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) 6388 if (tp->tg3_flags2 & TG3_FLG2_HW_TSO)
7021 return 0; 6389 return 0;
7022 6390
6391 fw_data = (void *)tp->fw->data;
6392
6393 /* Firmware blob starts with version numbers, followed by
6394 start address and length. We are setting complete length.
6395 length = end_address_of_bss - start_address_of_text.
6396 Remainder is the blob to be loaded contiguously
6397 from start address. */
6398
6399 info.fw_base = be32_to_cpu(fw_data[1]);
6400 cpu_scratch_size = tp->fw_len;
6401 info.fw_len = tp->fw->size - 12;
6402 info.fw_data = &fw_data[3];
6403
7023 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { 6404 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) {
7024 info.text_base = TG3_TSO5_FW_TEXT_ADDR;
7025 info.text_len = TG3_TSO5_FW_TEXT_LEN;
7026 info.text_data = &tg3Tso5FwText[0];
7027 info.rodata_base = TG3_TSO5_FW_RODATA_ADDR;
7028 info.rodata_len = TG3_TSO5_FW_RODATA_LEN;
7029 info.rodata_data = &tg3Tso5FwRodata[0];
7030 info.data_base = TG3_TSO5_FW_DATA_ADDR;
7031 info.data_len = TG3_TSO5_FW_DATA_LEN;
7032 info.data_data = &tg3Tso5FwData[0];
7033 cpu_base = RX_CPU_BASE; 6405 cpu_base = RX_CPU_BASE;
7034 cpu_scratch_base = NIC_SRAM_MBUF_POOL_BASE5705; 6406 cpu_scratch_base = NIC_SRAM_MBUF_POOL_BASE5705;
7035 cpu_scratch_size = (info.text_len +
7036 info.rodata_len +
7037 info.data_len +
7038 TG3_TSO5_FW_SBSS_LEN +
7039 TG3_TSO5_FW_BSS_LEN);
7040 } else { 6407 } else {
7041 info.text_base = TG3_TSO_FW_TEXT_ADDR;
7042 info.text_len = TG3_TSO_FW_TEXT_LEN;
7043 info.text_data = &tg3TsoFwText[0];
7044 info.rodata_base = TG3_TSO_FW_RODATA_ADDR;
7045 info.rodata_len = TG3_TSO_FW_RODATA_LEN;
7046 info.rodata_data = &tg3TsoFwRodata[0];
7047 info.data_base = TG3_TSO_FW_DATA_ADDR;
7048 info.data_len = TG3_TSO_FW_DATA_LEN;
7049 info.data_data = &tg3TsoFwData[0];
7050 cpu_base = TX_CPU_BASE; 6408 cpu_base = TX_CPU_BASE;
7051 cpu_scratch_base = TX_CPU_SCRATCH_BASE; 6409 cpu_scratch_base = TX_CPU_SCRATCH_BASE;
7052 cpu_scratch_size = TX_CPU_SCRATCH_SIZE; 6410 cpu_scratch_size = TX_CPU_SCRATCH_SIZE;
@@ -7060,21 +6418,21 @@ static int tg3_load_tso_firmware(struct tg3 *tp)
7060 6418
7061 /* Now startup the cpu. */ 6419 /* Now startup the cpu. */
7062 tw32(cpu_base + CPU_STATE, 0xffffffff); 6420 tw32(cpu_base + CPU_STATE, 0xffffffff);
7063 tw32_f(cpu_base + CPU_PC, info.text_base); 6421 tw32_f(cpu_base + CPU_PC, info.fw_base);
7064 6422
7065 for (i = 0; i < 5; i++) { 6423 for (i = 0; i < 5; i++) {
7066 if (tr32(cpu_base + CPU_PC) == info.text_base) 6424 if (tr32(cpu_base + CPU_PC) == info.fw_base)
7067 break; 6425 break;
7068 tw32(cpu_base + CPU_STATE, 0xffffffff); 6426 tw32(cpu_base + CPU_STATE, 0xffffffff);
7069 tw32(cpu_base + CPU_MODE, CPU_MODE_HALT); 6427 tw32(cpu_base + CPU_MODE, CPU_MODE_HALT);
7070 tw32_f(cpu_base + CPU_PC, info.text_base); 6428 tw32_f(cpu_base + CPU_PC, info.fw_base);
7071 udelay(1000); 6429 udelay(1000);
7072 } 6430 }
7073 if (i >= 5) { 6431 if (i >= 5) {
7074 printk(KERN_ERR PFX "tg3_load_tso_firmware fails for %s " 6432 printk(KERN_ERR PFX "tg3_load_tso_firmware fails for %s "
7075 "to set CPU PC, is %08x should be %08x\n", 6433 "to set CPU PC, is %08x should be %08x\n",
7076 tp->dev->name, tr32(cpu_base + CPU_PC), 6434 tp->dev->name, tr32(cpu_base + CPU_PC),
7077 info.text_base); 6435 info.fw_base);
7078 return -ENODEV; 6436 return -ENODEV;
7079 } 6437 }
7080 tw32(cpu_base + CPU_STATE, 0xffffffff); 6438 tw32(cpu_base + CPU_STATE, 0xffffffff);
@@ -7299,11 +6657,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
7299 else if (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE) { 6657 else if (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE) {
7300 int fw_len; 6658 int fw_len;
7301 6659
7302 fw_len = (TG3_TSO5_FW_TEXT_LEN + 6660 fw_len = tp->fw_len;
7303 TG3_TSO5_FW_RODATA_LEN +
7304 TG3_TSO5_FW_DATA_LEN +
7305 TG3_TSO5_FW_SBSS_LEN +
7306 TG3_TSO5_FW_BSS_LEN);
7307 fw_len = (fw_len + (0x80 - 1)) & ~(0x80 - 1); 6661 fw_len = (fw_len + (0x80 - 1)) & ~(0x80 - 1);
7308 tw32(BUFMGR_MB_POOL_ADDR, 6662 tw32(BUFMGR_MB_POOL_ADDR,
7309 NIC_SRAM_MBUF_POOL_BASE5705 + fw_len); 6663 NIC_SRAM_MBUF_POOL_BASE5705 + fw_len);
@@ -13580,6 +12934,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
13580 struct net_device *dev; 12934 struct net_device *dev;
13581 struct tg3 *tp; 12935 struct tg3 *tp;
13582 int err, pm_cap; 12936 int err, pm_cap;
12937 const char *fw_name = NULL;
13583 char str[40]; 12938 char str[40];
13584 u64 dma_mask, persist_dma_mask; 12939 u64 dma_mask, persist_dma_mask;
13585 12940
@@ -13735,6 +13090,9 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
13735 13090
13736 tg3_init_bufmgr_config(tp); 13091 tg3_init_bufmgr_config(tp);
13737 13092
13093 if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0)
13094 fw_name = FIRMWARE_TG3;
13095
13738 if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) { 13096 if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) {
13739 tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE; 13097 tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE;
13740 } 13098 }
@@ -13747,6 +13105,37 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
13747 } else { 13105 } else {
13748 tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE | TG3_FLG2_TSO_BUG; 13106 tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE | TG3_FLG2_TSO_BUG;
13749 } 13107 }
13108 if (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE) {
13109 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705)
13110 fw_name = FIRMWARE_TG3TSO5;
13111 else
13112 fw_name = FIRMWARE_TG3TSO;
13113 }
13114
13115 if (fw_name) {
13116 const __be32 *fw_data;
13117
13118 err = request_firmware(&tp->fw, fw_name, &tp->pdev->dev);
13119 if (err) {
13120 printk(KERN_ERR "tg3: Failed to load firmware \"%s\"\n",
13121 fw_name);
13122 goto err_out_iounmap;
13123 }
13124
13125 fw_data = (void *)tp->fw->data;
13126
13127 /* Firmware blob starts with version numbers, followed by
13128 start address and _full_ length including BSS sections
13129 (which must be longer than the actual data, of course */
13130
13131 tp->fw_len = be32_to_cpu(fw_data[2]); /* includes bss */
13132 if (tp->fw_len < (tp->fw->size - 12)) {
13133 printk(KERN_ERR "tg3: bogus length %d in \"%s\"\n",
13134 tp->fw_len, fw_name);
13135 err = -EINVAL;
13136 goto err_out_fw;
13137 }
13138 }
13750 13139
13751 /* TSO is on by default on chips that support hardware TSO. 13140 /* TSO is on by default on chips that support hardware TSO.
13752 * Firmware TSO on older chips gives lower performance, so it 13141 * Firmware TSO on older chips gives lower performance, so it
@@ -13778,7 +13167,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
13778 if (err) { 13167 if (err) {
13779 printk(KERN_ERR PFX "Could not obtain valid ethernet address, " 13168 printk(KERN_ERR PFX "Could not obtain valid ethernet address, "
13780 "aborting.\n"); 13169 "aborting.\n");
13781 goto err_out_iounmap; 13170 goto err_out_fw;
13782 } 13171 }
13783 13172
13784 if (tp->tg3_flags3 & TG3_FLG3_ENABLE_APE) { 13173 if (tp->tg3_flags3 & TG3_FLG3_ENABLE_APE) {
@@ -13787,7 +13176,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
13787 printk(KERN_ERR PFX "Cannot map APE registers, " 13176 printk(KERN_ERR PFX "Cannot map APE registers, "
13788 "aborting.\n"); 13177 "aborting.\n");
13789 err = -ENOMEM; 13178 err = -ENOMEM;
13790 goto err_out_iounmap; 13179 goto err_out_fw;
13791 } 13180 }
13792 13181
13793 tg3_ape_lock_init(tp); 13182 tg3_ape_lock_init(tp);
@@ -13867,6 +13256,10 @@ err_out_apeunmap:
13867 tp->aperegs = NULL; 13256 tp->aperegs = NULL;
13868 } 13257 }
13869 13258
13259err_out_fw:
13260 if (tp->fw)
13261 release_firmware(tp->fw);
13262
13870err_out_iounmap: 13263err_out_iounmap:
13871 if (tp->regs) { 13264 if (tp->regs) {
13872 iounmap(tp->regs); 13265 iounmap(tp->regs);
@@ -13892,6 +13285,9 @@ static void __devexit tg3_remove_one(struct pci_dev *pdev)
13892 if (dev) { 13285 if (dev) {
13893 struct tg3 *tp = netdev_priv(dev); 13286 struct tg3 *tp = netdev_priv(dev);
13894 13287
13288 if (tp->fw)
13289 release_firmware(tp->fw);
13290
13895 flush_scheduled_work(); 13291 flush_scheduled_work();
13896 13292
13897 if (tp->tg3_flags3 & TG3_FLG3_USE_PHYLIB) { 13293 if (tp->tg3_flags3 & TG3_FLG3_USE_PHYLIB) {
diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h
index 8936edfb0438..ae5da603c6af 100644
--- a/drivers/net/tg3.h
+++ b/drivers/net/tg3.h
@@ -2762,6 +2762,10 @@ struct tg3 {
2762#define SST_25VF0X0_PAGE_SIZE 4098 2762#define SST_25VF0X0_PAGE_SIZE 4098
2763 2763
2764 struct ethtool_coalesce coal; 2764 struct ethtool_coalesce coal;
2765
2766 /* firmware info */
2767 const struct firmware *fw;
2768 u32 fw_len; /* includes BSS */
2765}; 2769};
2766 2770
2767#endif /* !(_T3_H) */ 2771#endif /* !(_T3_H) */
diff --git a/firmware/Makefile b/firmware/Makefile
index e333a429b681..0dc7afc28482 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -45,6 +45,8 @@ fw-shipped-$(CONFIG_SND_SB16_CSP) += sb16/mulaw_main.csp sb16/alaw_main.csp \
45 sb16/ima_adpcm_capture.csp 45 sb16/ima_adpcm_capture.csp
46fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \ 46fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \
47 yamaha/ds1e_ctrl.fw 47 yamaha/ds1e_ctrl.fw
48fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \
49 tigon/tg3_tso5.bin
48fw-shipped-$(CONFIG_USB_DABUSB) += dabusb/firmware.fw dabusb/bitstream.bin 50fw-shipped-$(CONFIG_USB_DABUSB) += dabusb/firmware.fw dabusb/bitstream.bin
49fw-shipped-$(CONFIG_USB_EMI26) += emi26/loader.fw emi26/firmware.fw \ 51fw-shipped-$(CONFIG_USB_EMI26) += emi26/loader.fw emi26/firmware.fw \
50 emi26/bitstream.fw 52 emi26/bitstream.fw
diff --git a/firmware/WHENCE b/firmware/WHENCE
index 8823a4329a5f..0460eb39c404 100644
--- a/firmware/WHENCE
+++ b/firmware/WHENCE
@@ -371,3 +371,22 @@ Found in hex form in kernel source, but source allegedly available at
371http://alteon.shareable.org/ 371http://alteon.shareable.org/
372 372
373-------------------------------------------------------------------------- 373--------------------------------------------------------------------------
374
375Driver: tigon3 -- Broadcom Tigon3 based gigabit Ethernet cards
376
377File: tigon/tg3.bin
378File: tigon/tg3_tso.bin
379File: tigon/tg3_tso5.bin
380
381Licence:
382 * Firmware is:
383 * Derived from proprietary unpublished source code,
384 * Copyright (C) 2000-2003 Broadcom Corporation.
385 *
386 * Permission is hereby granted for the distribution of this firmware
387 * data in hexadecimal or equivalent format, provided this copyright
388 * notice is accompanying it.
389
390Found in hex form in kernel source.
391
392--------------------------------------------------------------------------
diff --git a/firmware/tigon/tg3.bin.ihex b/firmware/tigon/tg3.bin.ihex
new file mode 100644
index 000000000000..d842d7cc91b5
--- /dev/null
+++ b/firmware/tigon/tg3.bin.ihex
@@ -0,0 +1,175 @@
1:10000000000000000800000000000A80000000005E
2:1000100010000003000000000000000D0000000DB3
3:100020003C1D080037BD3FFC03A0F0213C10080038
4:10003000261000000E000018000000000000000D57
5:100040003C1D080037BD3FFC03A0F0213C10080018
6:10005000261000340E00021C000000000000000DFD
7:1000600000000000000000000000000027BDFFE0CD
8:100070003C1CC000AFBF0018AF80680C0E00004CE5
9:10008000241B210597850000978700029782002C8A
10:100090009783002E3C040800248409C0AFA00014FC
11:1000A000000214000062182500052C00AFA3001008
12:1000B0008F86001000E528250E000060240701024D
13:1000C0003C02AC00344201003C03AC01346301004B
14:1000D000AF8204903C02FFFFAF820494AF83049888
15:1000E000AF82049C24020001AF825CE00E00003F5E
16:1000F000AF825D000E000140000000008FBF0018BD
17:1001000003E0000827BD00202402FFFFAF82540453
18:100110008F83540034630400AF835400AF825404CF
19:100120003C02080024420034AF82541C03E0000863
20:10013000AF80540000000000000000003C020800F6
21:10014000344230003C030800346330003C040800B3
22:10015000348437FF3C010800AC220A6424020040CA
23:100160003C010800AC220A683C010800AC200A608F
24:10017000AC600000246300040083102B5040FFFD9E
25:10018000AC60000003E0000800000000008048218F
26:100190008FAA00103C0208008C420A603C04080050
27:1001A0008C840A688FAB0014244300010044102B98
28:1001B0003C010800AC230A60144000030000402109
29:1001C0003C010800AC200A603C0208008C420A6036
30:1001D0003C0308008C630A64912400000002114073
31:1001E000004310210048102125080001A044000010
32:1001F000290200081440FFF4252900013C020800F0
33:100200008C420A603C0308008C630A648F84680C8B
34:100210000002114000431021AC440008AC45000C22
35:10022000AC460010AC470014AC4A001803E00008CC
36:10023000AC4B001C000000000000000000000000AB
37:1002400000000000000000000000000000000000AE
38:10025000000000000000000000000000000000009E
39:10026000000000000000000000000000000000008E
40:10027000000000000000000000000000000000007E
41:10028000000000000000000000000000000000006E
42:10029000000000000000000000000000000000005E
43:1002A000000000000000000000000000000000004E
44:1002B000000000000000000000000000000000003E
45:1002C000000000000000000000000000000000002E
46:1002D000000000000000000000000000000000001E
47:1002E000000000000000000000000000000000000E
48:1002F00000000000000000000000000000000000FE
49:1003000000000000000000000000000002000008E3
50:10031000000000000A0001E33C0A00010A0001E3BA
51:100320003C0A00020A0001E3000000000A0001E3A9
52:10033000000000000A0001E3000000000A0001E3E1
53:10034000000000000A0001E3000000000A0001E3D1
54:10035000000000000A0001E3000000000A0001E3C1
55:10036000000000000A0001E3000000000A0001E3B1
56:100370003C0A00070A0001E33C0A00080A0001E306
57:100380003C0A00090A0001E3000000000A0001E342
58:10039000000000000A0001E33C0A000B0A0001E330
59:1003A0003C0A000C0A0001E33C0A000D0A0001E3CC
60:1003B000000000000A0001E3000000000A0001E361
61:1003C0003C0A000E0A0001E3000000000A0001E3FD
62:1003D000000000000A0001E3000000000A0001E341
63:1003E000000000000A0001E3000000000A0001E331
64:1003F000000000000A0001E3000000000A0001E321
65:10040000000000000A0001E33C0A00130A0001E3B7
66:100410003C0A001400000000000000000000000082
67:1004200000000000000000000000000000000000CC
68:1004300000000000000000000000000000000000BC
69:1004400000000000000000000000000000000000AC
70:10045000000000000000000000000000000000009C
71:10046000000000000000000000000000000000008C
72:10047000000000000000000000000000000000007C
73:10048000000000000000000000000000000000006C
74:10049000000000000000000000000000000000005C
75:1004A000000000000000000000000000000000004C
76:1004B000000000000000000000000000000000003C
77:1004C000000000000000000000000000000000002C
78:1004D000000000000000000000000000000000001C
79:1004E000000000000000000000000000000000000C
80:1004F00000000000000000000000000000000000FC
81:1005000000000000000000000000000027BDFFE028
82:100510000000182100001021AFBF0018AFB1001477
83:10052000AFB000103C01080000220821AC200A7086
84:100530003C01080000220821AC200A743C0108009C
85:1005400000220821AC200A78246300011860FFF51E
86:100550002442000C241100018F9068103202000424
87:1005600014400005240400013C0208008C420A7873
88:1005700018400003000020210E000182000000004E
89:100580003202000110400003000000000E0001696B
90:10059000000000000A000153AF9150288FBF0018DF
91:1005A0008FB100148FB0001003E0000827BD0020B9
92:1005B0003C0508008CA50A703C0608008CC60A8021
93:1005C0003C0708008CE70A7827BDFFE03C040800E0
94:1005D000248409D0AFBF0018AFA000100E00006047
95:1005E000AFA000140E00017B000020218FBF001877
96:1005F00003E0000827BD0020240200018F8368105B
97:1006000000821004000210270062182403E0000892
98:10061000AF83681027BDFFD8AFBF00241080002E25
99:10062000AFB000208F825CECAFA200188F825CEC30
100:100630003C10080026100A78AFA2001C340280008B
101:10064000AF825CEC8E020000184000160000000033
102:100650003C02080094420A748FA3001C000221C0CF
103:10066000AC8300048FA2001C3C0108000E000201B4
104:10067000AC220A7410400005000000008E02000049
105:10068000244200010A0001DFAE0200003C02080023
106:100690008C420A7000021C02000321C00A0001C53E
107:1006A000AFA2001C0E000201000000001040001F5D
108:1006B000000000008E0200008FA3001C24420001F5
109:1006C0003C010800AC230A703C010800AC230A740A
110:1006D0000A0001DFAE0200003C10080026100A7874
111:1006E0008E02000018400028000000000E000201E9
112:1006F0000000000014400024000000008E020000F2
113:100700003C0308008C630A702442FFFFAFA3001C67
114:1007100018400006AE02000000031402000221C0CF
115:100720008C8200043C010800AC220A7097A2001ED3
116:100730002442FF002C4203001440000B240240001E
117:100740003C040800248409DCAFA00010AFA0001412
118:100750008FA6001C240500080E0000600000382150
119:100760000A0001DF00000000AF825CF83C020800D4
120:100770008C420A408FA3001C24420001AF835CF826
121:100780003C010800AC220A408FBF00248FB000203B
122:1007900003E0000827BD002827BDFFE03C04080057
123:1007A000248409E8000028210000302100003821BD
124:1007B000AFBF0018AFA000100E000060AFA0001483
125:1007C0008FBF001803E0000827BD00208F82680C4F
126:1007D0008F85680C000218270003182B00031823CC
127:1007E000004310240044102100A2282B10A0000672
128:1007F00000000000004018218F82680C0043102B7D
129:100800001440FFFD0000000003E0000800000000AD
130:100810003C0408008C8400003C0308008C630A4000
131:100820000064102B54400002008310230064102346
132:100830002C42000803E000083842000127BDFFE019
133:10084000008028213C04080024840A000000302194
134:1008500000003821AFBF0018AFA000100E000060EC
135:10086000AFA000140A000216000000008FBF00189D
136:1008700003E0000827BD00200000000027BDFFE0C6
137:100880003C1CC000AFBF00180E00004CAF80680CCD
138:100890003C04080024840A10038028210000302131
139:1008A00000003821AFA000100E000060AFA00014BF
140:1008B0002402FFFFAF8254043C0200AA0E0002345F
141:1008C000AF8254348FBF001803E0000827BD00201A
142:1008D00000000000000000000000000027BDFFE84D
143:1008E000AFB0001024100001AFBF00143C01C003E2
144:1008F000AC2000008F8268103042200010400003BE
145:10090000000000000E000246000000000A00023A4B
146:10091000AF9054288FBF00148FB0001003E0000880
147:1009200027BD001827BDFFF88F845D0C3C0200FF37
148:100930003C0308008C630A503442FFF80082102404
149:100940001043001E3C0500FF34A5FFF83C06C00321
150:100950003C074000008518248C6200103C01080010
151:10096000AC230A50304200081040000500871025D3
152:100970008CC2000024420001ACC200000087102598
153:10098000AF825D0C8FA2000024420001AFA20000E4
154:100990008FA200008FA2000024420001AFA200003D
155:1009A0008FA200008F845D0C3C0308008C630A500A
156:1009B000008510241443FFE80085182427BD000893
157:1009C00003E000080000000000000000353730316F
158:1009D000726C734100000000000000005377457600
159:1009E000656E743000000000726C704576656E7440
160:1009F00031000000556E6B6E45766E74000000008D
161:100A0000000000000000000000000000666174614A
162:100A10006C45727200000000000000004D61696EBC
163:100A2000437075420000000000000000000000005C
164:100A300000000000000000000000000000000000B6
165:100A400000000000000000000000000000000000A6
166:100A50000000000000000000000000000000000096
167:0C0A60000000000000000000000000008A
168:00000001FF
169 * Firmware is:
170 * Derived from proprietary unpublished source code,
171 * Copyright (C) 2000-2003 Broadcom Corporation.
172 *
173 * Permission is hereby granted for the distribution of this firmware
174 * data in hexadecimal or equivalent format, provided this copyright
175 * 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 000000000000..f10c4ef90513
--- /dev/null
+++ b/firmware/tigon/tg3_tso.bin.ihex
@@ -0,0 +1,446 @@
1:100000000106000008000000000024140E00000398
2:100010000000000008001B24000000001000000386
3:10002000000000000000000D0000000D3C1D080055
4:1000300037BD400003A0F0213C100800261000004E
5:100040000E000010000000000000000D27BDFFE0C2
6:100050003C04FEFEAFBF00180E0005D83484000239
7:100060000E000668000000003C03080090631B6857
8:10007000240200023C04080024841AAC1462000329
9:10008000240500013C04080024841AA0240600066C
10:1000900000003821AFA000100E00067CAFA00014B5
11:1000A0008F625C5034420001AF625C508F625C90A2
12:1000B00034420001AF625C902402FFFF0E00003466
13:1000C000AF6254048FBF001803E0000827BD002072
14:1000D00000000000000000000000000027BDFFE05D
15:1000E000AFBF001CAFB20018AFB100140E00005B30
16:1000F000AFB0001024120002241100018F7068209C
17:100100003202010010400003000000000E0000BB9E
18:10011000000000008F7068203202200010400004B0
19:10012000320200010E0001F024040001320200013D
20:1001300010400003000000000E0000A300000000BB
21:100140003C02080090421B9814520003000000007B
22:100150000E0004C0000000000A00003CAF715028EF
23:100160008FBF001C8FB200188FB100148FB0001029
24:1001700003E0000827BD002027BDFFE03C04080085
25:1001800024841AC0000028210000302100003821FA
26:10019000AFBF0018AFA000100E00067CAFA0001487
27:1001A0003C040800248423D8A48000003C010800FB
28:1001B000A0201B983C010800AC201B9C3C010800BF
29:1001C000AC201BA03C010800AC201BA43C01080093
30:1001D000AC201BAC3C010800AC201BB83C01080063
31:1001E000AC201BBC8F6244343C010800AC221B884D
32:1001F0008F6244383C010800AC221B8C8F62441093
33:10020000AC80F7A83C010800AC201B843C0108002E
34:10021000AC2023E03C010800AC2023C83C010800CE
35:10022000AC2023CC3C010800AC2024003C01080099
36:10023000AC221B908F6200682403000700021702A3
37:1002400010430005000000008F62006800021702E2
38:1002500014400004240200013C0108000A00009739
39:10026000AC20240CAC8200343C04080024841ACC5A
40:100270003C0508008CA5240C00003021000038212A
41:10028000AFA000100E00067CAFA000148FBF0018B6
42:1002900003E0000827BD002027BDFFE03C04080064
43:1002A00024841AD8000028210000302100003821C1
44:1002B000AFBF0018AFA000100E00067CAFA0001466
45:1002C0000E00005B000000000E0000B400002021C2
46:1002D0008FBF001803E0000827BD002024020001A2
47:1002E0008F63682000821004000210270062182427
48:1002F00003E00008AF63682027BDFFD0AFBF002C2C
49:10030000AFB60028AFB50024AFB40020AFB3001CD7
50:10031000AFB20018AFB10014AFB000108F675C5CD3
51:100320003C03080024631BBC8C62000014470005DA
52:100330003C0200FF3C02080090421B981440011947
53:100340003C0200FF3442FFF800E28824AC67000062
54:1003500000111902306300FF30E20003000211C0F7
55:100360000062282500A04021000716023C03080077
56:1003700090631B983044000F1460003600804821C1
57:10038000240200013C010800A0221B980005110076
58:10039000008210253C010800AC201B9C3C01080099
59:1003A000AC201BA03C010800AC201BA43C010800B1
60:1003B000AC201BAC3C010800AC201BB83C01080081
61:1003C000AC201BB03C010800AC201BB43C01080071
62:1003D000A42223D89622000C30437FFF3C01080062
63:1003E000A4222410304280003C010800A4231BC634
64:1003F00010400005240200013C010800AC2223F457
65:100400000A0001022406003E240600363C010800D2
66:10041000AC2023F49622000A3C03080094631BC618
67:100420003C010800AC2023F03C010800AC2023F87C
68:10043000000213020002108000C210210062182185
69:100440003C010800A42223D03C0108000A00011549
70:10045000A4231B969622000C3C010800A42223EC46
71:100460003C04080024841B9C8C82000000021100C4
72:100470003C01080000220821AC311BC88C8200001E
73:10048000000211003C01080000220821AC271BCC0F
74:100490008C82000025030001306601FF000211007C
75:1004A0003C01080000220821AC261BD08C820000F1
76:1004B000000211003C01080000220821AC291BD4D5
77:1004C000962300083C0208008C421BAC0043282104
78:1004D0003C010800AC251BAC9622000A3042000407
79:1004E00014400018000611008F630C143063000FD5
80:1004F0002C6200021440000B3C02C0008F630C14FD
81:100500003C0208008C421B403063000F2442000173
82:100510003C010800AC221B402C6200021040FFF797
83:100520003C02C00000E21825AF635C5C8F625C5047
84:100530003042000210400014000000000A00014791
85:10054000000000003C0308008C631B803C04080092
86:1005500094841B94012210253C010800A42223DA74
87:10056000240200013C010800AC221BB824630001F6
88:100570000085202A3C01080010800003AC231B806A
89:100580003C010800A4251B943C06080024C61B9CC3
90:100590008CC2000024420001ACC20000284200804E
91:1005A00014400005000000000E000656240400025E
92:1005B0000A0001E6000000003C0208008C421BB863
93:1005C00010400078240200013C05080090A51B980B
94:1005D00014A20072000000003C15080096B51B969E
95:1005E0003C0408008C841BAC32A3FFFF0083102A5C
96:1005F0001440006C000000001483000300000000A1
97:100600003C010800AC2523F01060005C0000902144
98:1006100024D600040060A02124D300148EC2000060
99:10062000000281003C110800023088210E000625DE
100:100630008E311BC80040282110A00054000000008B
101:100640009628000A31020040104000052407180CCB
102:100650008E22000C2407188C00021400ACA2001893
103:100660003C030800007018218C631BD03C0208007A
104:10067000005010218C421BD400031D000002140006
105:1006800000621825ACA300148EC300049622000853
106:10069000004320233242FFFF3083FFFF004310213D
107:1006A0000282102A1440000202B23023008030215E
108:1006B0008E62000030C4FFFF00441021AE620000D3
109:1006C0008E220000ACA200008E2200048E63FFF494
110:1006D00000431021ACA20004A4A6000E8E62FFF419
111:1006E00000441021AE62FFF4962300080043102A54
112:1006F00014400005024690218E62FFF0AE60FFF4C8
113:1007000024420001AE62FFF0ACA000083242FFFFBD
114:1007100014540008240203053102008054400001F3
115:1007200034E7001024020905A4A2000C0A0001CB42
116:1007300034E70020A4A2000C3C0208008C4223F005
117:10074000104000033C024B650A0001D3344276544A
118:100750003C02B49A344289ABACA2001C30E2FFFFE9
119:10076000ACA200100E0005A200A020213242FFFF23
120:100770000054102B1440FFA90000000024020002C6
121:100780003C0108000A0001E6A0221B988EC2083C2A
122:10079000244200010A0001E6AEC2083C0E0004C07B
123:1007A000000000008FBF002C8FB600288FB50024FA
124:1007B0008FB400208FB3001C8FB200188FB10014CB
125:1007C0008FB0001003E0000827BD003027BDFFD028
126:1007D000AFBF0028AFB30024AFB20020AFB1001C00
127:1007E000AFB000188F725C9C3C0200FF3442FFF8EF
128:1007F0003C07080024E71BB4024288249623000E1D
129:100800008CE2000000431021ACE200008E220010B8
130:100810003042002014400011008098210E00063B59
131:10082000022020213C02C00002421825AF635C9CDC
132:100830008F625C90304200021040011E00000000F8
133:10084000AF635C9C8F625C903042000210400119E3
134:10085000000000000A00020D000000008E240008C5
135:100860008E23001400041402000231C0000315029C
136:10087000304201FF2442FFFF3042007F0003194253
137:1008800030637800000211002442400000624821D9
138:100890009522000A3084FFFF30420008104000B06B
139:1008A000000429C03C0208008C42240014400024AB
140:1008B00024C5000894C200143C010800A42223D0DF
141:1008C0008CC40010000414023C010800A42223D2AE
142:1008D0003C010800A42423D494C2000E3083FFFFFF
143:1008E000004310233C010800AC22240894C2001AE3
144:1008F0003C010800AC2624003C010800AC32240472
145:100900003C010800AC2223FC3C02C0000242182536
146:10091000AF635C9C8F625C9030420002104000E547
147:1009200000000000AF635C9C8F625C90304200026C
148:10093000104000E0000000000A0002460000000035
149:1009400094C2000E3C030800946323D40043402368
150:100950003103FFFF2C6200081040001C0000000063
151:1009600094C200142442002800A22821000310424F
152:100970001840000B0000202124E6084800403821E0
153:1009800094A300008CC200002484000100431021C5
154:10099000ACC200000087102A1440FFF924A5000211
155:1009A000310200011040001F3C0240003C040800DE
156:1009B000248423FCA0A0000194A300008C820000EA
157:1009C000004310210A000285AC8200008F6268009B
158:1009D0003C030010004310241040000900000000F8
159:1009E00094C2001A3C0308008C6323FC00431021CE
160:1009F0003C010800AC2223FC0A0002863C024000B5
161:100A000094C2001A94C4001C3C0308008C6323FCAD
162:100A100000441023006218213C010800AC2323FC91
163:100A20003C02400002421825AF635C9C8F625C90E0
164:100A3000304200021440FFFC000000009522000A32
165:100A4000304200101040009B000000003C030800F2
166:100A5000946323D43C07080024E724008CE40000BE
167:100A60008F62680024630030008328213C0300105B
168:100A7000004310241440000A0000000094A2000467
169:100A80003C0408008C8424083C0308008C6323FC8D
170:100A900000441023006218213C010800AC2323FC11
171:100AA0003C0408008C8423FC00041C023082FFFFFD
172:100AB000006220210004140200822021000410277B
173:100AC000A4A200063C0308008C6324043C0200FF3F
174:100AD0003442FFF8006288249622000824050001B1
175:100AE00024034000000231C000801021A4C2001A7B
176:100AF000A4C0001CACE000003C010800AC251B6059
177:100B0000AF635CB88F625CB03042000210400003FB
178:100B1000000000003C010800AC201B608E22000891
179:100B2000AF625CB88F625CB03042000210400003DC
180:100B3000000000003C010800AC201B603C020800E3
181:100B40008C421B601040FFEC000000003C040800D9
182:100B50000E00063B8C8424040A00032A00000000D7
183:100B60003C03080090631B982402000214620003F7
184:100B70003C034B650A0002E1000080218E22001C2C
185:100B80003463765410430002241000022410000144
186:100B900000C020210E000350020030212402000377
187:100BA0003C010800A0221B98240200021202000A45
188:100BB000240200013C0308008C6323F0106200064D
189:100BC000000000003C020800944223D800021400F8
190:100BD0000A00031FAE2200143C040800248423DA18
191:100BE0009482000000021400AE2200143C020800AF
192:100BF0008C421BBC3C03C0003C010800A0201B9899
193:100C000000431025AF625C5C8F625C503042000292
194:100C100010400009000000002484F7E28C820000EC
195:100C200000431025AF625C5C8F625C503042000272
196:100C30001440FFFA000000003C02080024421B841C
197:100C40008C43000024630001AC4300008F630C144C
198:100C50003063000F2C6200021440000C3C02400084
199:100C60008F630C143C0208008C421B403063000F61
200:100C7000244200013C010800AC221B402C6200020F
201:100C80001040FFF7000000003C024000024218251F
202:100C9000AF635C9C8F625C90304200021440FFFCAA
203:100CA0000000000012600003000000000E0004C0FD
204:100CB000000000008FBF00288FB300248FB20020F7
205:100CC0008FB1001C8FB0001803E0000827BD003072
206:100CD0008F6344503C04080024841B888C820000ED
207:100CE00000031C020043102B144000073C0380004B
208:100CF0008C8400048F62445000021C020083102B7D
209:100D00001040FFFC3C038000AF6344448F624444C6
210:100D1000004310241440FFFD000000008F6244488F
211:100D200003E000083042FFFF3C0240000082202523
212:100D3000AF645C388F625C30304200021440FFFCCC
213:100D40000000000003E000080000000027BDFFE0F5
214:100D50000080582114C00011256E00083C020800D4
215:100D60008C4223F410400007240200163C010800C6
216:100D7000A42223D22402002A3C0108000A000364B2
217:100D8000A42223D48D670010000714023C01080040
218:100D9000A42223D23C010800A42723D43C04080049
219:100DA000948423D43C030800946323D295CF000697
220:100DB0003C020800944223D00083202301E2C02398
221:100DC0003065FFFF24A2002801C248213082FFFFC6
222:100DD00014C0001A012260219582000C3042003FAD
223:100DE0003C010800A42223D69582000495830006C6
224:100DF0003C010800AC2023E43C010800AC2023E8BF
225:100E000000021400004310253C010800AC221BC066
226:100E1000952200043C010800A4221BC49523000273
227:100E200001E510230043102A1040001024020001A5
228:100E30003C0108000A000398AC2223F83C03080098
229:100E40008C6323E83C02080094421BC40043102139
230:100E5000A52200043C02080094421BC0A5820004A5
231:100E60003C0208008C421BC0A58200063C02080020
232:100E70008C4223F03C0D08008DAD23E43C0A0800B1
233:100E8000144000E58D4A23E83C02080094421BC44C
234:100E9000004A18213063FFFF0062182B2402000271
235:100EA00010C2000D014350233C020800944223D697
236:100EB0003042000910400008000000009582000C3C
237:100EC0003042FFF6A582000C3C020800944223D673
238:100ED0003042000901A268233C0208008C4223F83A
239:100EE0001040004A012038213C020800944223D2DD
240:100EF00000004021A520000A01E21023A5220002E3
241:100F00003082FFFF0002104218400008000030212C
242:100F10000040182194E200002508000100C23021A1
243:100F20000103102A1440FFFB24E7000200061C0204
244:100F300030C2FFFF006230210006140200C23021DF
245:100F400000C0282100061027A522000A0000302139
246:100F50002527000C0000402194E200002508000134
247:100F600000C230212D0200041440FFFB24E70002E0
248:100F70009522000200004021912300090044202313
249:100F8000018038213082FFFFA4E0001000621821A8
250:100F9000000210421840001000C3302100404821D8
251:100FA00094E2000024E7000200C2302130E2007F1A
252:100FB00014400006250800018D6300003C02007FFC
253:100FC0003442FF8000625824256700080109102A76
254:100FD0001440FFF3000000003082000110400005C3
255:100FE00000061C02A0E0000194E2000000C23021D3
256:100FF00000061C0230C2FFFF00623021000614020E
257:1010000000C230210A00047D30C6FFFF2402000226
258:1010100014C20081000000003C0208008C42240C35
259:1010200014400007000000003C020800944223D254
260:101030009523000201E210231062007700000000F7
261:101040003C020800944223D201E21023A5220002B0
262:101050003C0208008C42240C1040001A31E3FFFFD0
263:101060008DC700103C02080094421B9600E040210E
264:1010700000072C0200AA20210043102300823823FD
265:101080000007240230E2FFFF00823821000710270A
266:10109000A522000A3102FFFF3C040800948423D4F7
267:1010A0000045302300E0282100641823006D18213A
268:1010B00000C3302100061C0230C2FFFF0A00047D7D
269:1010C0000062302101203821000040213082FFFFE2
270:1010D0000002104218400008000030210040182192
271:1010E00094E200002508000100C230210103102A0B
272:1010F0001440FFFB24E7000200061C0230C2FFFF81
273:10110000006230210006140200C2302100C02821F4
274:1011100000061027A522000A000030212527000C18
275:101120000000402194E200002508000100C23021A7
276:101130002D0200041440FFFB24E700029522000268
277:101140000000402191230009004420230180382120
278:101150003082FFFFA4E000103C040800948423D4F4
279:101160000062182100C3302100061C0230C2FFFFBC
280:101170000062302100061C023C020800944223D089
281:1011800000C348210044102300021FC20043102165
282:1011900000021043184000100000302100402021C0
283:1011A00094E2000024E7000200C2302130E2007F18
284:1011B00014400006250800018D6300003C02007FFA
285:1011C0003442FF8000625824256700080104102A79
286:1011D0001440FFF3000000003C020800944223EC9E
287:1011E00000C230213122FFFF00C2302100061C0264
288:1011F00030C2FFFF006230210006140200C230211D
289:1012000000C0402100061027A5820010ADC00014C8
290:101210000A00049DADC000008DC7001000E0402111
291:101220001140000700072C0200AA3021000614021A
292:1012300030C3FFFF004330210006140200C2282102
293:1012400000051027A522000A3C030800946323D45C
294:101250003102FFFF01E210210043302300CD302195
295:1012600000061C0230C2FFFF00623021000614029B
296:1012700000C2302100C0402100061027A5820010C6
297:101280003102FFFF00051C0000431025ADC2001015
298:101290003C0208008C4223F4104000052DE205EBCF
299:1012A0001440000225E2FFF234028870A5C2003427
300:1012B0003C030800246323E88C6200002442000100
301:1012C000AC6200003C0408008C8423E43C0208006B
302:1012D0008C421BC03303FFFF0083202100431821F1
303:1012E0000062102B3C010800AC2423E410400003F2
304:1012F0002482FFFF3C010800AC2223E43C010800EB
305:10130000AC231BC003E0000827BD002027BDFFB8A9
306:101310003C05080024A51B96AFBF0044AFBE0040AB
307:10132000AFB7003CAFB60038AFB50034AFB4003053
308:10133000AFB3002CAFB20028AFB10024AFB0002093
309:1013400094A900003C020800944223D03C0308000A
310:101350008C631BB03C0408008C841BAC012210235E
311:101360000064182AA7A9001E106000BEA7A20016DC
312:1013700024BE002297B6001E24B3001A24B700161C
313:101380008FC2000014400008000000008FC2FFF868
314:1013900097A300168FC4FFF4004310210082202A77
315:1013A000148000B00000000097D5081832A2FFFF9B
316:1013B000104000A3000090210040A02100008821DF
317:1013C0000E000625000000000040302114C0000778
318:1013D000000000003C0208008C4223DC2442000193
319:1013E0003C0108000A000596AC2223DC3C100800F2
320:1013F000021180218E101BC89608000A310200409D
321:10140000104000052407180C8E02000C2407188CCD
322:1014100000021400ACC200183102008054400001E8
323:1014200034E700103C020800005110218C421BD010
324:101430003C030800007118218C631BD400021500C6
325:1014400000031C0000431025ACC2001496040008E1
326:101450003242FFFF008210210282102A1440000253
327:1014600002B22823008028218E020000024590212C
328:10147000ACC200008E02000400C020212631001002
329:10148000AC82000430E2FFFFAC800008A485000EAF
330:10149000AC820010240203050E0005A2A482000CF9
331:1014A0003242FFFF0054102B1440FFC53242FFFFB1
332:1014B0000A00058E000000008E6200008E63FFFCB3
333:1014C0000043102A10400067000000008E62FFF009
334:1014D000000289003C100800021180210E00062540
335:1014E0008E101BC80040302114C000050000000011
336:1014F0008E62082C244200010A000596AE62082C78
337:101500009608000A31020040104000052407180C1C
338:101510008E02000C2407188C00021400ACC20018C4
339:101520003C020800005110218C421BD03C030800F3
340:10153000007118218C631BD40002150000031C00ED
341:1015400000431025ACC200148E63FFF4960200081D
342:10155000004320233242FFFF3083FFFF004310216E
343:1015600002C2102A104000030080282197A9001E03
344:10157000013228238E62000030A4FFFF00441021B6
345:10158000AE620000A4C5000E8E020000ACC20000D6
346:101590008E0200048E63FFF400431021ACC20004ED
347:1015A0008E63FFF496020008006418210062102A7E
348:1015B00014400006024590218E62FFF0AE60FFF4F9
349:1015C000244200010A000571AE62FFF0AE63FFF431
350:1015D000ACC000083242FFFF105600033102000485
351:1015E000104000062402030531020080544000012F
352:1015F00034E7001034E7002024020905A4C2000CDF
353:101600008EE300008EE20004146200073C02B49AEC
354:101610008EE208605440000134E704003C024B6550
355:101620000A00058834427654344289ABACC2001CAF
356:1016300030E2FFFFACC200100E0005A200C0202166
357:101640003242FFFF0056102B1440FF9B00000000A9
358:101650008E6200008E63FFFC0043102A1440FF4896
359:10166000000000008FBF00448FBE00408FB7003CD9
360:101670008FB600388FB500348FB400308FB3002C94
361:101680008FB200288FB100248FB0002003E0000843
362:1016900027BD004827BDFFE8AFBF0014AFB0001062
363:1016A0008F6244508F6344100A0005B1008080218E
364:1016B0008F626820304220001040000300000000CC
365:1016C0000E0001F0000020218F6244508F6344100F
366:1016D0003042FFFF0043102B1440FFF500000000D4
367:1016E0008F630C143063000F2C6200021440000B57
368:1016F000000000008F630C143C0208008C421B4069
369:101700003063000F244200013C010800AC221B4062
370:101710002C6200021040FFF700000000AF705C1860
371:101720008F625C103042000210400009000000008F
372:101730008F626820304220001040FFF80000000057
373:101740000E0001F0000020210A0005C40000000086
374:101750008FBF00148FB0001003E0000827BD0018F1
375:1017600000000000000000000000000027BDFFE8AE
376:101770003C1BC000AFBF0014AFB00010AF60680CDE
377:101780008F62680434420082AF6268048F63400055
378:1017900024020B503C010800AC221B5424020B789D
379:1017A0003C010800AC221B6434630002AF634000BC
380:1017B0000E000605008080213C010800A0221B6865
381:1017C000304200FF24030002144300050000000023
382:1017D0003C0208008C421B540A0005F8AC5000C0C3
383:1017E0003C0208008C421B54AC5000BC8F62443455
384:1017F0008F6344388F6444103C010800AC221B5CAA
385:101800003C010800AC231B6C3C010800AC241B58B5
386:101810008FBF00148FB0001003E0000827BD001830
387:101820003C0408008C8700003C03AA553463AA5589
388:101830003C06C003AC8300008CC2000014430007C8
389:10184000240500023C0355AA346355AAAC8300006A
390:101850008CC2000050430001240500013C02080036
391:10186000AC47000003E0000800A0102127BDFFF8EE
392:1018700018800009000028218F63680C8F62680CB3
393:101880001043FFFE0000000024A5000100A4102A60
394:101890001440FFF90000000003E0000827BD000825
395:1018A0008F6344503C0208008C421B5C00031C0206
396:1018B0000043102B144000083C0380003C04080047
397:1018C0008C841B6C8F62445000021C020083102B1E
398:1018D0001040FFFC3C038000AF6344448F624444EB
399:1018E000004310241440FFFD000000008F624448B4
400:1018F00003E000083042FFFF3082FFFF2442E00097
401:101900002C422001144000033C0240000A0006481B
402:101910002402FFFF00822025AF645C388F625C30B8
403:10192000304200021440FFFC0000102103E00008D8
404:10193000000000008F6244503C0308008C631B5879
405:101940000A0006513042FFFF8F6244503042FFFFD1
406:101950000043102B1440FFFC0000000003E00008CF
407:101960000000000027BDFFE0008028213C040800A3
408:1019700024841AF00000302100003821AFBF001885
409:10198000AFA000100E00067CAFA000140A00066095
410:10199000000000008FBF001803E0000827BD0020F2
411:1019A0000000000000000000000000003C020800F1
412:1019B000344230003C030800346330003C0408002B
413:1019C000348437FF3C010800AC221B742402004021
414:1019D0003C010800AC221B783C010800AC201B70C5
415:1019E000AC600000246300040083102B5040FFFD16
416:1019F000AC60000003E00008000000000080482107
417:101A00008FAA00103C0208008C421B703C040800A6
418:101A10008C841B788FAB0014244300010044102BEE
419:101A20003C010800AC231B7014400003000040215F
420:101A30003C010800AC201B703C0208008C421B706B
421:101A40003C0308008C631B749124000000021140C9
422:101A5000004310210048102125080001A044000087
423:101A6000290200081440FFF4252900013C02080067
424:101A70008C421B703C0308008C631B748F64680CE1
425:101A80000002114000431021AC440008AC45000C9A
426:101A9000AC460010AC470014AC4A001803E0000844
427:101AA000AC4B001C00000000000000004D61696E9E
428:101AB00043707542000000004D61696E43707541CE
429:101AC00000000000000000000000000073746B6F55
430:101AD00066666C64496E000073746B6F66662A2AD2
431:101AE0000000000053774576656E743000000000FA
432:101AF000000000000000000000000000666174614A
433:101B00006C45727200000000000000000000000040
434:101B100000000000000000000000000000000000C5
435:101B200000000000000000000000000000000000B5
436:101B300073746B6F66666C645F76312E362E300080
437:101B40000000000000000000000000000000000095
438:0C1B500000000000000000000000000089
439:00000001FF
440 * Firmware is:
441 * Derived from proprietary unpublished source code,
442 * Copyright (C) 2000-2003 Broadcom Corporation.
443 *
444 * Permission is hereby granted for the distribution of this firmware
445 * data in hexadecimal or equivalent format, provided this copyright
446 * 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 000000000000..33672514eab3
--- /dev/null
+++ b/firmware/tigon/tg3_tso5.bin.ihex
@@ -0,0 +1,252 @@
1:10000000010200000001000000000FD80C004003B6
2:100010000000000000010F040000000010000003B9
3:10002000000000000000000D0000000D3C1D00015C
4:1000300037BDE00003A0F0213C10000126100000B5
5:100040000C004010000000000000000D27BDFFE084
6:100050003C04FEFEAFBF00180C0042E834840002EE
7:100060000C004364000000003C03000190630F3467
8:10007000240200023C04000124840E9C146200034C
9:10008000240500013C04000124840E902406000293
10:1000900000003821AFA000100C004378AFA000147E
11:1000A0000C00402C000000008FBF001803E0000887
12:1000B00027BD0020000000000000000027BDFFE079
13:1000C000AFBF001CAFB20018AFB100140C0042D497
14:1000D000AFB000103C128000241100018F70681036
15:1000E0003202040010400007000000008F64100876
16:1000F0000092102414400003000000000C00406433
17:10010000000000003C02000190420F561051000315
18:10011000320202001040FFF1000000000C0041B468
19:100120000000000008004034000000008FBF001CE9
20:100130008FB200188FB100148FB0001003E00008D8
21:1001400027BD002027BDFFE03C04000124840EB041
22:10015000000028210000302100003821AFBF001826
23:10016000AFA000100C004378AFA000140000D02115
24:1001700024020130AF6250003C010001A4200F5066
25:100180003C010001A0200F578FBF001803E00008BA
26:1001900027BD002000000000000000003C0300011B
27:1001A00024630F609062000027BDFFF0144000033D
28:1001B0000080C02108004073000048213C0220005C
29:1001C00003021024104000032409000208004073B9
30:1001D000A0600000240900010018104030431F8077
31:1001E000346F80081520004B25EB00283C040001EB
32:1001F000008320218C8480103C05000124A50F7A07
33:1002000000041402A0A200003C010001A0240F7B06
34:100210003C02000100431021944280143C01000183
35:10022000A0220F7C3C0C0001018360218D8C801882
36:10023000304200FF24420008000220C324020001D3
37:100240003C010001A0220F600124102B1040000C83
38:100250000000382124A6000E016028218CA2000095
39:100260008CA3000424A5000824E70001ACC2000010
40:10027000ACC3000400E4102B1440FFF824C60008AF
41:10028000000038213C08000125080F7B9106000082
42:100290003C02000190420F7C2503000D00C3282181
43:1002A0000046102300021FC2004310210002104329
44:1002B0001840000C0000202191020001004610238C
45:1002C00000021FC2004310210002184394A2000044
46:1002D00024E700010082202100E3102A1440FFFBE4
47:1002E00024A5000200041C023082FFFF00622021CE
48:1002F00000041402008220213C02FFFF018210242E
49:100300003083FFFF004310253C010001080040FA44
50:10031000AC220F803C05000124A50F7C90A20000B8
51:100320003C0C0001018360218D8C8018000220C2EA
52:100330001080000E000038210160302124A5000C3F
53:100340008CA200008CA3000424A5000824E700016F
54:10035000ACC20000ACC3000400E4102B1440FFF852
55:1003600024C600083C05000124A50F7C90A20000D3
56:1003700030430007240200041062001128620005C7
57:10038000104000052402000210620008000710C09F
58:10039000080040FA00000000240200061062000E6F
59:1003A000000710C0080040FA0000000000A2182159
60:1003B0009463000C004B1021080040FAA443000095
61:1003C000000710C000A218218C63000C004B102104
62:1003D000080040FAAC43000000A218218C63000C16
63:1003E000004B202100A21021AC8300009442001099
64:1003F000A482000495E700063C02000190420F7CB5
65:100400003C03000190630F7A00E2C8233C02000124
66:1004100090420F7B2463002801E3402124420028FE
67:100420001520001201E2302194C2000C3C010001B1
68:10043000A4220F7894C2000494C300063C0100017A
69:10044000A4200F763C010001A4200F7200021400CA
70:10045000004310253C010001AC220F6C9502000402
71:100460003C01000108004124A4220F703C0200015D
72:1004700094420F703C03000194630F7200431021FB
73:10048000A50200043C02000194420F6CA4C20004C7
74:100490003C0200018C420F6CA4C200063C04000127
75:1004A00094840F723C02000194420F703C0A0001D8
76:1004B000954A0F76004418213063FFFF0062182A26
77:1004C000240200021122000B008320233C030001C0
78:1004D00094630F7830620009104000063062FFF626
79:1004E000A4C2000C3C02000194420F783042000983
80:1004F00001425023240200011122001B2922000284
81:1005000050400005240200021120000731A2FFFF25
82:1005100008004197000000001122001D240200166F
83:100520000800419731A2FFFF3C0E000195CE0F80DD
84:10053000108000050180682101C4202100041C02F4
85:100540003082FFFF00627021000E1027A502000A12
86:100550003C03000190630F7B31A2FFFF00E21021FA
87:100560000800418D004320233C02000194420F808B
88:100570000044202100041C023082FFFF0062202181
89:10058000008070210004102708004185A502000AA0
90:100590003C05000124A50F7A90A30000146200021C
91:1005A00024E2FFF2A5E2003490A2000000E2102352
92:1005B000A50200023C03000194630F803C0200018D
93:1005C00094420F5A30E5FFFF0064182100451023C4
94:1005D0000062202300041C023082FFFF0062202101
95:1005E00000041027A502000A3C03000190630F7C61
96:1005F0002462000114A20005008070210163102113
97:10060000904200000800418500026200246200025E
98:1006100014A20003306200FE004B1021944C000035
99:100620003C02000194420F823183FFFF3C04000131
100:1006300090840F7B0043102100E21021004420230E
101:10064000008A202100041C023082FFFF006220216A
102:100650000004140200822021008068210004102779
103:10066000A4C2001031A2FFFF000E1C0000431025A1
104:100670003C04000124840F72ADE20010948200005B
105:100680003C05000194A50F763C0300018C630F6CC0
106:100690002442000100B92821A48200003322FFFF78
107:1006A000006220210083182B3C010001A4250F7655
108:1006B0001060000324A2FFFF3C010001A4220F767A
109:1006C0003C024000030210253C010001AC240F6CE9
110:1006D000AF62100803E0000827BD00103C030001D2
111:1006E00090630F5627BDFFE824020001AFBF00143E
112:1006F00010620026AFB000108F620CF42442FFFF9E
113:100700003042007F000211008C4340003C01000198
114:10071000AC230F648C434008244440008C5C4004AC
115:1007200030620040144000022402008824020008C5
116:100730003C010001A4220F68306200041040000553
117:10074000240200013C010001A0220F57080041D5FE
118:10075000000314023C010001A0200F570003140203
119:100760003C010001A4220F549483000C24020001D8
120:100770003C010001A4200F503C010001A0220F56B3
121:100780003C010001A4230F62240200011342001E59
122:10079000000000001340000524020003134200671C
123:1007A00000000000080042CF000000003C020001F1
124:1007B00094420F62241A00013C010001A4200F5E44
125:1007C0003C010001A4200F52304407FF00021BC26D
126:1007D000000318233063003E3463003600021242E7
127:1007E0003042003C006218213C010001A4240F5853
128:1007F00000832021246300303C010001A4240F5A0F
129:100800003C010001A4230F5C3C06000124C60F52EA
130:1008100094C5000094C300023C04000194840F5A64
131:10082000006510210044102A104000133C10800085
132:1008300000A31021A4C200003C02A000AF620CF48F
133:100840003C010001A0200F568F6410080090102476
134:1008500014400003000000000C0040640000000091
135:100860008F620CF400501024104000B7000000000C
136:100870000800420F000000003C03000194630F5089
137:1008800000851023A4C40000006218213042FFFF3D
138:100890003C010001A4230F50AF620CE83C020001B0
139:1008A00094420F6834420024AF620CEC94C30002FF
140:1008B0003C02000194420F50146200123C0280007E
141:1008C0003C1080003C02A000AF620CF43C0100012F
142:1008D000A0200F568F6410080090102414400003CD
143:1008E000000000000C004064000000008F620CF467
144:1008F000005010241440FFF700000000080042CF11
145:10090000241A0003AF620CF43C1080008F641008BE
146:100910000090102414400003000000000C0040640C
147:10092000000000008F620CF4005010241440FFF708
148:1009300000000000080042CF241A00033C07000119
149:1009400024E70F5094E2000003821021AF620CE014
150:100950003C0200018C420F64AF620CE43C050001D4
151:1009600094A50F5494E300003C04000194840F58B4
152:100970003C02000194420F5E00A328230082202342
153:1009800030A6FFFF3083FFFF00C3102B144000434D
154:10099000000000003C02000194420F5C00021400C1
155:1009A00000621025AF620CE894E200003C030001F5
156:1009B00094630F5400441021A4E200003042FFFF72
157:1009C000144300213C0200083C02000190420F57F2
158:1009D000104000063C03000C3C02000194420F68EA
159:1009E000346306240800427C0000D0213C02000150
160:1009F00094420F683C03000834630624004310252A
161:100A0000AF620CEC3C1080003C02A000AF620CF422
162:100A10003C010001A0200F568F64100800901024A4
163:100A200014400003000000000C00406400000000BF
164:100A30008F620CF4005010241040001500000000DC
165:100A400008004283000000003C03000194630F682B
166:100A5000344206243C108000006218253C028000CD
167:100A6000AF630CECAF620CF48F641008009010249C
168:100A700014400003000000000C004064000000006F
169:100A80008F620CF4005010241440FFF700000000A7
170:100A90003C010001080042CFA4200F5E3C0200018F
171:100AA00094420F5C0002140000C21025AF620CE8F3
172:100AB0003C02000190420F57104000093C03000C1B
173:100AC0003C02000194420F68346306240000D021E8
174:100AD00000431025AF620CEC080042C13C108000BE
175:100AE0003C02000194420F683C0300083463060492
176:100AF00000431025AF620CEC3C02000194420F5EF3
177:100B0000004510213C010001A4220F5E3C10800032
178:100B10003C02A000AF620CF43C010001A0200F5683
179:100B20008F6410080090102414400003000000009F
180:100B30000C004064000000008F620CF40050102490
181:100B40001440FFF7000000008FBF00148FB00010AA
182:100B500003E0000827BD00180000000027BDFFE0EB
183:100B60003C04000124840EC0000028210000302134
184:100B700000003821AFBF0018AFA000100C00437870
185:100B8000AFA000140000D02124020130AF62500059
186:100B90003C010001A4200F503C010001A0200F5790
187:100BA0008FBF001803E0000827BD002027BDFFE825
188:100BB0003C1BC000AFBF0014AFB00010AF60680CAA
189:100BC0008F62680434420082AF6268048F63400021
190:100BD00024020B503C010001AC220F2024020B78B0
191:100BE0003C010001AC220F3034630002AF634000CF
192:100BF0000C004315008080213C010001A0220F342D
193:100C0000304200FF240300021443000500000000EE
194:100C10003C0200018C420F2008004308AC5000C089
195:100C20003C0200018C420F20AC5000BC8F62443467
196:100C30008F6344388F6444103C010001AC220F28BC
197:100C40003C010001AC230F383C010001AC240F240F
198:100C50008FBF00148FB0001003E0000827BD0018FC
199:100C600003E000082402000127BDFFF818800009F6
200:100C7000000028218F63680C8F62680C1043FFFE10
201:100C80000000000024A5000100A4102A1440FFF970
202:100C90000000000003E0000827BD00088F634450F7
203:100CA0003C0200018C420F2800031C020043102B61
204:100CB000144000083C0380003C0400018C840F3881
205:100CC0008F62445000021C020083102B1040FFFC76
206:100CD0003C038000AF6344448F62444400431024CB
207:100CE0001440FFFD000000008F62444803E000084C
208:100CF0003042FFFF3082FFFF2442E0002C422001FF
209:100D0000144000033C024000080043472402FFFF58
210:100D100000822025AF645C388F625C303042000274
211:100D20001440FFFC0000102103E000080000000058
212:100D30008F6244503C0300018C630F240800435031
213:100D40003042FFFF8F6244503042FFFF0043102BC0
214:100D50001440FFFC0000000003E000080000000059
215:100D600027BDFFE0008028213C04000124840ED030
216:100D70000000302100003821AFBF0018AFA00010E4
217:100D80000C004378AFA000140800435F000000008F
218:100D90008FBF001803E0000827BD00203C020001BF
219:100DA0003442D6003C0300013463D6003C04000109
220:100DB0003484DDFF3C010001AC220F4024020040DE
221:100DC0003C010001AC220F443C010001AC200F3C6F
222:100DD000AC600000246300040083102B5040FFFD32
223:100DE000AC60000003E00008000000000080482123
224:100DF0008FAA00103C0200018C420F3C3C04000111
225:100E00008C840F448FAB0014244300010044102B4A
226:100E10003C010001AC230F3C1440000300004021C2
227:100E20003C010001AC200F3C3C0200018C420F3C15
228:100E30003C0300018C630F4091240000000211402C
229:100E4000004310210048102125080001A0440000A3
230:100E5000290200081440FFF4252900013C0200018A
231:100E60008C420F3C3C0300018C630F408F64680C84
232:100E70000002114000431021AC440008AC45000CB6
233:100E8000AC460010AC470014AC4A001803E0000860
234:100E9000AC4B001C00000000000000004D61696EBA
235:100EA00043707542000000004D61696E43707541EA
236:100EB00000000000000000000000000073746B6F71
237:100EC00066666C64000000000000000073746B6FC5
238:100ED00066666C64000000000000000066617461DA
239:100EE0006C4572720000000000000000000000006D
240:100EF00000000000000000000000000000000000F2
241:100F000000000000000000000000000000000000E1
242:100F100073746B6F66666C645F76312E322E3000B0
243:0C0F2000000000000000000000000000C5
244:00000001FF
245 * Firmware is:
246 * Derived from proprietary unpublished source code,
247 * Copyright (C) 2000-2003 Broadcom Corporation.
248 *
249 * Permission is hereby granted for the distribution of this firmware
250 * data in hexadecimal or equivalent format, provided this copyright
251 * notice is accompanying it.
252/* 5705 needs a special version of the TSO firmware. */