summaryrefslogtreecommitdiffstats
path: root/drivers/atm
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-07-18 02:39:39 -0700
committerDavid S. Miller <davem@davemloft.net>2008-07-18 02:39:39 -0700
commit49997d75152b3d23c53b0fa730599f2f74c92c65 (patch)
tree46e93126170d02cfec9505172e545732c1b69656 /drivers/atm
parenta0c80b80e0fb48129e4e9d6a9ede914f9ff1850d (diff)
parent5b664cb235e97afbf34db9c4d77f08ebd725335e (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts: Documentation/powerpc/booting-without-of.txt drivers/atm/Makefile drivers/net/fs_enet/fs_enet-main.c drivers/pci/pci-acpi.c net/8021q/vlan.c net/iucv/iucv.c
Diffstat (limited to 'drivers/atm')
-rw-r--r--drivers/atm/ambassador.c140
-rw-r--r--drivers/atm/ambassador.h11
-rw-r--r--drivers/atm/atmsar11.data2063
-rw-r--r--drivers/atm/atmsar11.regions6
-rw-r--r--drivers/atm/atmsar11.start4
5 files changed, 57 insertions, 2167 deletions
diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c
index 6adb72a2f876..703364b52170 100644
--- a/drivers/atm/ambassador.c
+++ b/drivers/atm/ambassador.c
@@ -34,6 +34,8 @@
#include <linux/poison.h>
#include <linux/bitrev.h>
#include <linux/mutex.h>
+#include <linux/firmware.h>
+#include <linux/ihex.h>
#include <asm/atomic.h>
#include <asm/io.h>
@@ -290,29 +292,6 @@ static inline void __init show_version (void) {
*/
-/********** microcode **********/
-
-#ifdef AMB_NEW_MICROCODE
-#define UCODE(x) UCODE2(atmsar12.x)
-#else
-#define UCODE(x) UCODE2(atmsar11.x)
-#endif
-#define UCODE2(x) #x
-
-static u32 __devinitdata ucode_start =
-#include UCODE(start)
-;
-
-static region __devinitdata ucode_regions[] = {
-#include UCODE(regions)
- { 0, 0 }
-};
-
-static u32 __devinitdata ucode_data[] = {
-#include UCODE(data)
- 0xdeadbeef
-};
-
static void do_housekeeping (unsigned long arg);
/********** globals **********/
@@ -1841,45 +1820,34 @@ static int __devinit get_loader_version (loader_block * lb,
/* loader: write memory data blocks */
-static int __devinit loader_write (loader_block * lb,
- const amb_dev * dev, const u32 * data,
- u32 address, unsigned int count) {
- unsigned int i;
+static int __devinit loader_write (loader_block* lb,
+ const amb_dev *dev,
+ const struct ihex_binrec *rec) {
transfer_block * tb = &lb->payload.transfer;
PRINTD (DBG_FLOW|DBG_LOAD, "loader_write");
-
- if (count > MAX_TRANSFER_DATA)
- return -EINVAL;
- tb->address = cpu_to_be32 (address);
- tb->count = cpu_to_be32 (count);
- for (i = 0; i < count; ++i)
- tb->data[i] = cpu_to_be32 (data[i]);
+
+ tb->address = rec->addr;
+ tb->count = cpu_to_be32(be16_to_cpu(rec->len) / 4);
+ memcpy(tb->data, rec->data, be16_to_cpu(rec->len));
return do_loader_command (lb, dev, write_adapter_memory);
}
/* loader: verify memory data blocks */
static int __devinit loader_verify (loader_block * lb,
- const amb_dev * dev, const u32 * data,
- u32 address, unsigned int count) {
- unsigned int i;
+ const amb_dev *dev,
+ const struct ihex_binrec *rec) {
transfer_block * tb = &lb->payload.transfer;
int res;
PRINTD (DBG_FLOW|DBG_LOAD, "loader_verify");
- if (count > MAX_TRANSFER_DATA)
- return -EINVAL;
- tb->address = cpu_to_be32 (address);
- tb->count = cpu_to_be32 (count);
+ tb->address = rec->addr;
+ tb->count = cpu_to_be32(be16_to_cpu(rec->len) / 4);
res = do_loader_command (lb, dev, read_adapter_memory);
- if (!res)
- for (i = 0; i < count; ++i)
- if (tb->data[i] != cpu_to_be32 (data[i])) {
- res = -EINVAL;
- break;
- }
+ if (!res && memcmp(tb->data, rec->data, be16_to_cpu(rec->len)))
+ res = -EINVAL;
return res;
}
@@ -1962,47 +1930,53 @@ static int amb_reset (amb_dev * dev, int diags) {
/********** transfer and start the microcode **********/
static int __devinit ucode_init (loader_block * lb, amb_dev * dev) {
- unsigned int i = 0;
- unsigned int total = 0;
- const u32 * pointer = ucode_data;
- u32 address;
- unsigned int count;
+ const struct firmware *fw;
+ unsigned long start_address;
+ const struct ihex_binrec *rec;
int res;
+ res = request_ihex_firmware(&fw, "atmsar11.fw", &dev->pci_dev->dev);
+ if (res) {
+ PRINTK (KERN_ERR, "Cannot load microcode data");
+ return res;
+ }
+
+ /* First record contains just the start address */
+ rec = (const struct ihex_binrec *)fw->data;
+ if (be16_to_cpu(rec->len) != sizeof(__be32) || be32_to_cpu(rec->addr)) {
+ PRINTK (KERN_ERR, "Bad microcode data (no start record)");
+ return -EINVAL;
+ }
+ start_address = be32_to_cpup((__be32 *)rec->data);
+
+ rec = ihex_next_binrec(rec);
+
PRINTD (DBG_FLOW|DBG_LOAD, "ucode_init");
-
- while (address = ucode_regions[i].start,
- count = ucode_regions[i].count) {
- PRINTD (DBG_LOAD, "starting region (%x, %u)", address, count);
- while (count) {
- unsigned int words;
- if (count <= MAX_TRANSFER_DATA)
- words = count;
- else
- words = MAX_TRANSFER_DATA;
- total += words;
- res = loader_write (lb, dev, pointer, address, words);
- if (res)
- return res;
- res = loader_verify (lb, dev, pointer, address, words);
- if (res)
- return res;
- count -= words;
- address += sizeof(u32) * words;
- pointer += words;
+
+ while (rec) {
+ PRINTD (DBG_LOAD, "starting region (%x, %u)", be32_to_cpu(rec->addr),
+ be16_to_cpu(rec->len));
+ if (be16_to_cpu(rec->len) > 4 * MAX_TRANSFER_DATA) {
+ PRINTK (KERN_ERR, "Bad microcode data (record too long)");
+ return -EINVAL;
}
- i += 1;
- }
- if (*pointer == ATM_POISON) {
- return loader_start (lb, dev, ucode_start);
- } else {
- // cast needed as there is no %? for pointer differnces
- PRINTD (DBG_LOAD|DBG_ERR,
- "offset=%li, *pointer=%x, address=%x, total=%u",
- (long) (pointer - ucode_data), *pointer, address, total);
- PRINTK (KERN_ERR, "incorrect microcode data");
- return -ENOMEM;
+ if (be16_to_cpu(rec->len) & 3) {
+ PRINTK (KERN_ERR, "Bad microcode data (odd number of bytes)");
+ return -EINVAL;
+ }
+ res = loader_write(lb, dev, rec);
+ if (res)
+ break;
+
+ res = loader_verify(lb, dev, rec);
+ if (res)
+ break;
}
+ release_firmware(fw);
+ if (!res)
+ res = loader_start(lb, dev, start_address);
+
+ return res;
}
/********** give adapter parameters **********/
diff --git a/drivers/atm/ambassador.h b/drivers/atm/ambassador.h
index df55fa8387dc..bd1c46a7ef49 100644
--- a/drivers/atm/ambassador.h
+++ b/drivers/atm/ambassador.h
@@ -656,17 +656,6 @@ typedef struct amb_dev amb_dev;
#define AMB_DEV(atm_dev) ((amb_dev *) (atm_dev)->dev_data)
#define AMB_VCC(atm_vcc) ((amb_vcc *) (atm_vcc)->dev_data)
-/* the microcode */
-
-typedef struct {
- u32 start;
- unsigned int count;
-} region;
-
-static region ucode_regions[];
-static u32 ucode_data[];
-static u32 ucode_start;
-
/* rate rounding */
typedef enum {
diff --git a/drivers/atm/atmsar11.data b/drivers/atm/atmsar11.data
deleted file mode 100644
index 5dc8a7613f57..000000000000
--- a/drivers/atm/atmsar11.data
+++ /dev/null
@@ -1,2063 +0,0 @@
-/*
- Madge Ambassador ATM Adapter microcode.
- Copyright (C) 1995-1999 Madge Networks Ltd.
-
- This microcode data is placed under the terms of the GNU General
- Public License. The GPL is contained in /usr/doc/copyright/GPL on a
- Debian system and in the file COPYING in the Linux kernel source.
-
- We would prefer you not to distribute modified versions without
- consultation and not to ask for assembly/other microcode source.
-*/
-
- 0x401a6800,
- 0x00000000,
- 0x335b007c,
- 0x13600005,
- 0x335b1000,
- 0x3c1aa0c0,
- 0x375a0180,
- 0x03400008,
- 0x00000000,
- 0x1760fffb,
- 0x335b4000,
- 0x401a7000,
- 0x13600003,
- 0x241b0fc0,
- 0xaf9b4500,
- 0x25080008,
- 0x03400008,
- 0x42000010,
- 0x8f810c90,
- 0x32220002,
- 0x10400003,
- 0x3c03a0d1,
- 0x2463f810,
- 0x0060f809,
- 0x24210001,
- 0x1000001a,
- 0xaf810c90,
- 0x82020011,
- 0xaf900c48,
- 0x0441000a,
- 0x34420080,
- 0x967d0002,
- 0x96020012,
- 0x00000000,
- 0x105d0011,
- 0x00000000,
- 0x04110161,
- 0xa6620002,
- 0x1000000d,
- 0xae62000c,
- 0x34848000,
- 0xa2020011,
- 0x4d01ffff,
- 0x00000000,
- 0x8f834c00,
- 0x00000000,
- 0xaf830fec,
- 0x00e0f809,
- 0x03e03821,
- 0x00041400,
- 0x0440fff7,
- 0x00000000,
- 0xaf80460c,
- 0x8e100008,
- 0x4d01ffff,
- 0x00000000,
- 0x8f834c00,
- 0x4900001d,
- 0xaf830fec,
- 0x8f820cbc,
- 0x8f9d0c4c,
- 0x24420001,
- 0x97be0000,
- 0xaf820cbc,
- 0x13c00009,
- 0xaca200d8,
- 0xa7a00000,
- 0x3c0100d1,
- 0x003e0825,
- 0x9422002c,
- 0x0411013f,
- 0xa4220002,
- 0xac22000c,
- 0xac200010,
- 0x8f9e0c54,
- 0x27bd0002,
- 0x17be0002,
- 0x8ca200c0,
- 0x8f9d0c50,
- 0x8f970fc8,
- 0xaf9d0c4c,
- 0x12e20005,
- 0x87804002,
- 0x3c02a0d1,
- 0x2442f94c,
- 0x0040f809,
- 0x00000000,
- 0x00e0f809,
- 0x03e03821,
- 0x4500ffdc,
- 0x8e11000c,
- 0x3c1300d1,
- 0x00111102,
- 0x2c430400,
- 0x1060ffb9,
- 0x00021180,
- 0x02629821,
- 0x8e76003c,
- 0x32220008,
- 0x1440ffb7,
- 0x8e770034,
- 0x8e750030,
- 0x3c03cfb0,
- 0x16c00003,
- 0x02d5102b,
- 0x041100be,
- 0x00000000,
- 0x1040ffa6,
- 0x00701826,
- 0x4d01ffff,
- 0x00000000,
- 0x8f824c00,
- 0xaf974c00,
- 0xaf820fec,
- 0xac760010,
- 0x02609021,
- 0x32220002,
- 0x10400007,
- 0x8f944a00,
- 0x9602003a,
- 0x34840004,
- 0x14400003,
- 0xaf820fbc,
- 0x3c029000,
- 0xaf820fbc,
- 0x8e100008,
- 0x32943f00,
- 0x8e11000c,
- 0x2694ff00,
- 0x12800073,
- 0x3c1300d1,
- 0x49010071,
- 0x32370008,
- 0x16e0006f,
- 0x00111102,
- 0x2c430400,
- 0x1060006c,
- 0x0002b980,
- 0x00041740,
- 0x0440003a,
- 0x02779821,
- 0x12720023,
- 0x26d60030,
- 0xae56003c,
- 0x8e76003c,
- 0x8e770034,
- 0x8e750030,
- 0x3c03cfb0,
- 0x16c00003,
- 0x02d5102b,
- 0x04110091,
- 0x00000000,
- 0x10400060,
- 0x2e821000,
- 0x14400009,
- 0x00701826,
- 0x4d01ffff,
- 0x00000000,
- 0x8f824c00,
- 0xaf974c00,
- 0xac760010,
- 0xae420034,
- 0x1000ffd0,
- 0xaf80460c,
- 0x00e0f809,
- 0x03e03821,
- 0x3c03cfb0,
- 0x00701826,
- 0xae460034,
- 0x4d01ffff,
- 0x00000000,
- 0x8f824c00,
- 0xaf974c00,
- 0xaf820fec,
- 0xac760010,
- 0x1000ffc3,
- 0xaf80460c,
- 0x02d5102b,
- 0x10400042,
- 0x3c17cfb0,
- 0x2e821000,
- 0x14400006,
- 0x02f0b826,
- 0x4d01ffff,
- 0x00000000,
- 0xaef60010,
- 0x1000ffb8,
- 0xaf80460c,
- 0x00e0f809,
- 0x03e03821,
- 0x4d01ffff,
- 0x00000000,
- 0x8f824c00,
- 0xaf864c00,
- 0xaef60010,
- 0xaf820fec,
- 0x1000ffae,
- 0xaf80460c,
- 0x3084fffb,
- 0x8e570038,
- 0x3242ffc0,
- 0x00021182,
- 0xa7820fb8,
- 0xaf970fb4,
- 0x865d002a,
- 0x865e0008,
- 0xa79d0fba,
- 0x279d0f18,
- 0x33de0060,
- 0x03bee821,
- 0x001ef0c2,
- 0x03bee821,
- 0x8f970c58,
- 0x4d01ffff,
- 0x00000000,
- 0x8f834c00,
- 0x8fa2001c,
- 0x12e30003,
- 0x3c030c40,
- 0x3c1ec000,
- 0xaf9e0fbc,
- 0xac620fb4,
- 0x8fa30018,
- 0x2442000c,
- 0x14430002,
- 0xaf80460c,
- 0x8fa20014,
- 0xae40003c,
- 0xafa2001c,
- 0x8e76003c,
- 0x8e770034,
- 0x8e750030,
- 0x3c03cfb0,
- 0x16c00003,
- 0x02d5102b,
- 0x0411003c,
- 0x00000000,
- 0x00701826,
- 0x4d01ffff,
- 0x00000000,
- 0xaca500e4,
- 0x10400032,
- 0xaf974c00,
- 0x1000ff7f,
- 0xac760010,
- 0x00041740,
- 0x04400007,
- 0x26d60030,
- 0xae56003c,
- 0x00e0f809,
- 0x03e03821,
- 0xaf80460c,
- 0x1000ff39,
- 0xae460034,
- 0x8e570038,
- 0x3242ffc0,
- 0x00021182,
- 0xa7820fb8,
- 0xaf970fb4,
- 0x8f970c58,
- 0x00e0f809,
- 0x03e03821,
- 0x12e60003,
- 0x3c030c40,
- 0x3c02c000,
- 0xaf820fbc,
- 0x865d002a,
- 0x865e0008,
- 0xa79d0fba,
- 0x279d0f18,
- 0x33de0060,
- 0x03bee821,
- 0x001ef0c2,
- 0x03bee821,
- 0x8fa2001c,
- 0x4d01ffff,
- 0x00000000,
- 0x8f974c00,
- 0xac620fb4,
- 0x3084fffb,
- 0x8fa30018,
- 0x2442000c,
- 0x14430002,
- 0xaf80460c,
- 0x8fa20014,
- 0xae40003c,
- 0xafa2001c,
- 0x4d01ffff,
- 0x00000000,
- 0xaca500e4,
- 0x1000ff13,
- 0xaf974c00,
- 0x00e0f809,
- 0x03e03821,
- 0x1000ff0f,
- 0x00000000,
- 0x1040005b,
- 0x867e0008,
- 0x279d0f18,
- 0x33de0060,
- 0x03bee821,
- 0x001e10c2,
- 0x03a2e821,
- 0x8fb70008,
- 0x8fa2000c,
- 0x8ef60004,
- 0x12e20028,
- 0x86620008,
- 0x82030010,
- 0x00021740,
- 0x04410019,
- 0x24630001,
- 0x10600017,
- 0x3c02d1b0,
- 0x00501026,
- 0x4d01ffff,
- 0x00000000,
- 0x8f9e4c00,
- 0xac560010,
- 0x26d6fffe,
- 0x86020010,
- 0x3c03cfb0,
- 0x34632000,
- 0xa662002a,
- 0x8ee20000,
- 0x26f70008,
- 0xae620038,
- 0x8fa20020,
- 0xafb70008,
- 0x2417ffff,
- 0x02c2a821,
- 0x4d01ffff,
- 0x00000000,
- 0xaf9e4c00,
- 0x03e00008,
- 0xae750030,
- 0x8ee20000,
- 0x26f70008,
- 0xae620038,
- 0x8fa20020,
- 0xafb70008,
- 0x2417ffff,
- 0xa677002a,
- 0x02c2a821,
- 0x3c03cfb0,
- 0x03e00008,
- 0xae750030,
- 0x001e18c2,
- 0x00651821,
- 0x8c6300c8,
- 0x8fa20010,
- 0x00000000,
- 0x0062b023,
- 0x1ec00003,
- 0x8fa10004,
- 0x12c0001b,
- 0x0022b023,
- 0x2ec30041,
- 0x14600002,
- 0x3c150040,
- 0x24160040,
- 0x00161e80,
- 0x00031882,
- 0x00751825,
- 0x4d01ffff,
- 0x00000000,
- 0x8f954c00,
- 0x001eb840,
- 0x00771821,
- 0xac624d00,
- 0x00561021,
- 0x14410002,
- 0x27830d00,
- 0x8fa20000,
- 0x02e3b821,
- 0xafa20010,
- 0x02d71821,
- 0xafa3000c,
- 0x4d01ffff,
- 0x00000000,
- 0x8ef60004,
- 0x1000ffb5,
- 0xaf954c00,
- 0x3c16dead,
- 0xae76003c,
- 0xae600038,
- 0x26d5ffff,
- 0x00001021,
- 0x03e00008,
- 0xae750030,
- 0x2c430ab2,
- 0x10600005,
- 0x2c4324b2,
- 0x10000004,
- 0x24020ab2,
- 0x10000002,
- 0x240224b1,
- 0x1060fffd,
- 0x304301ff,
- 0x00031840,
- 0x3c1da0d1,
- 0x27bdd6cc,
- 0x007d1821,
- 0x94630000,
- 0x0002ea42,
- 0x00031c00,
- 0x27bdfffb,
- 0x03e00008,
- 0x03a31006,
- 0x24030fc0,
- 0xaf834500,
- 0x10000002,
- 0x01206021,
- 0x3c0ccfb0,
- 0x11e00056,
- 0x01896026,
- 0x85fe0000,
- 0x00000000,
- 0x13c00047,
- 0x3c02cfb0,
- 0x07c0002d,
- 0x001e1f80,
- 0x04610034,
- 0x001e1fc0,
- 0x04600009,
- 0x3c02d3b0,
- 0x00e0f809,
- 0x03e03821,
- 0x4d01ffff,
- 0x00000000,
- 0x8f864c00,
- 0x8f990fec,
- 0x1000000b,
- 0xaf994c00,
- 0x01e27826,
- 0x00e0f809,
- 0x03e03821,
- 0x4d01ffff,
- 0x00000000,
- 0x8f864c00,
- 0xaf994c00,
- 0xadef2010,
- 0x3c02d3b0,
- 0x01e27826,
- 0x8f820fc0,
- 0x8f830fc4,
- 0xaf824d00,
- 0x8de20004,
- 0xa5e00000,
- 0xac620000,
- 0x8c620000,
- 0x24020380,
- 0xaf824d00,
- 0x8f824d00,
- 0x8f820f14,
- 0x24630004,
- 0x14620002,
- 0x2419ffff,
- 0x8f830f10,
- 0xaca500e4,
- 0xaf830fc4,
- 0x4d01ffff,
- 0x00000000,
- 0x8f824c80,
- 0x1000001f,
- 0xade2003c,
- 0x00e0f809,
- 0x03e03821,
- 0x4d01ffff,
- 0x00000000,
- 0xa5e00000,
- 0x8f864c00,
- 0x15800022,
- 0xaf8f4540,
- 0x10000017,
- 0x01e27826,
- 0x00e0f809,
- 0x03e03821,
- 0x4d01ffff,
- 0x00000000,
- 0x8f864c00,
- 0xaf994c00,
- 0xadef2010,
- 0x3c02cfb0,
- 0x01e27826,
- 0xa5e00000,
- 0x4d01ffff,
- 0x00000000,
- 0x10000007,
- 0x8f994c00,
- 0x00e0f809,
- 0x03e03821,
- 0x4d01ffff,
- 0x00000000,
- 0x8f864c00,
- 0x8f990fec,
- 0x1580000a,
- 0xaf8f4500,
- 0x00007821,
- 0x10000014,
- 0xaf190014,
- 0x00e0f809,
- 0x03e03821,
- 0x4d01ffff,
- 0x00000000,
- 0x1180fff8,
- 0x8f864c00,
- 0x85220000,
- 0x01207821,
- 0x0440000a,
- 0x8d290008,
- 0x130b0004,
- 0x000c1602,
- 0xaf190014,
- 0x8d790014,
- 0x0160c021,
- 0xaf994c00,
- 0xad8e4010,
- 0x3042003f,
- 0x01c27021,
- 0x00041780,
- 0x0440018b,
- 0x8f824a00,
- 0x30818000,
- 0x30420004,
- 0x1440ff8d,
- 0x8d4b0000,
- 0x1020000c,
- 0x30847fff,
- 0x8f820c48,
- 0x0120f021,
- 0x24430034,
- 0x8c5d000c,
- 0x24420004,
- 0xafdd000c,
- 0x1462fffc,
- 0x27de0004,
- 0xa5210000,
- 0x1000ff82,
- 0x25080008,
- 0x11600058,
- 0x00000000,
- 0x857d0008,
- 0x8d63000c,
- 0x9562000a,
- 0x8d410004,
- 0x07a10026,
- 0x00621821,
- 0xa563000a,
- 0x00031c02,
- 0x041101a0,
- 0x000318c0,
- 0x001d16c0,
- 0x0441001f,
- 0x27a20080,
- 0x00021cc0,
- 0x0461000e,
- 0x0040e821,
- 0x27bd0080,
- 0x95620000,
- 0x95630002,
- 0x3442000c,
- 0xad22000c,
- 0x24020100,
- 0xa5220010,
- 0x9562002c,
- 0xa5230014,
- 0xa5220012,
- 0xa5200016,
- 0x34028000,
- 0xa5220000,
- 0xa57d0008,
- 0x07a0000c,
- 0x8f820c4c,
- 0x8f830c50,
- 0x2441ffe8,
- 0x0023f02b,
- 0x13c00002,
- 0x00201021,
- 0x24420400,
- 0x945e0000,
- 0x2441fffe,
- 0x17c0fff9,
- 0xad620010,
- 0xa44b0000,
- 0x142b001c,
- 0xad400000,
- 0xad400004,
- 0x254a0008,
- 0x3142007f,
- 0x1440000e,
- 0x00041780,
- 0x04410003,
- 0x8f820fe0,
- 0x10000006,
- 0x34840001,
- 0x34840002,
- 0x24420008,
- 0x34421000,
- 0x38421000,
- 0xaf820fe0,
- 0x354a0100,
- 0x394a0100,
- 0x39420080,
- 0xaf820fe4,
- 0x001d14c0,
- 0x04410003,
- 0x33a2efff,
- 0x1000ff3c,
- 0xa5620008,
- 0x07a0009f,
- 0x33a2fffe,
- 0x10000021,
- 0xa5620008,
- 0x8d620024,
- 0x001d1cc0,
- 0x04610004,
- 0xad420000,
- 0x33a3efff,
- 0x1000ff31,
- 0xa5630008,
- 0x07a00005,
- 0x33a3fffe,
- 0xa5630008,
- 0x8d4b0000,
- 0x1000ffaa,
- 0x00000000,
- 0x1000008e,
- 0x25080008,
- 0x254a0008,
- 0x3142007f,
- 0x1440000e,
- 0x00041780,
- 0x04410003,
- 0x8f820fe0,
- 0x10000006,
- 0x34840001,
- 0x34840002,
- 0x24420008,
- 0x34421000,
- 0x38421000,
- 0xaf820fe0,
- 0x354a0100,
- 0x394a0100,
- 0x39420080,
- 0xaf820fe4,
- 0x11000003,
- 0x8d4b0000,
- 0x1000ff93,
- 0x2508fff8,
- 0x8f820fd8,
- 0x8f830fdc,
- 0x8f810fd4,
- 0x1062001d,
- 0x24620008,
- 0x4d01ffff,
- 0x00000000,
- 0x8f8c4c00,
- 0x847f0000,
- 0x3c1e00d1,
- 0x33fd03ff,
- 0x001d5980,
- 0x017e5821,
- 0x857e0008,
- 0x001de900,
- 0x001e0f00,
- 0x03e1f825,
- 0x07e00003,
- 0xaf820fdc,
- 0x879e0ca0,
- 0x278b0c98,
- 0x07c10042,
- 0x3c020840,
- 0x3c01f7b0,
- 0x8d620020,
- 0x00230826,
- 0xac220000,
- 0x8c620004,
- 0x94630002,
- 0x2442fff8,
- 0x00431021,
- 0x1000004e,
- 0xad620020,
- 0x8f820fd0,
- 0x87830ca0,
- 0x14220007,
- 0x278b0c98,
- 0x41000051,
- 0x3c018000,
- 0xaca100e0,
- 0x8ca100c4,
- 0x00000000,
- 0x1022004c,
- 0x0022e823,
- 0x8f9f0f0c,
- 0x07a10002,
- 0xaf810fd4,
- 0x03e2e823,
- 0x2fa30041,
- 0x14600002,
- 0x3c1e0040,
- 0x241d0040,
- 0x001d1e80,
- 0x00031882,
- 0x007e1825,
- 0x4d01ffff,
- 0x00000000,
- 0x8f8c4c00,
- 0xac624cc0,
- 0x005d1021,
- 0x145f0002,
- 0x27830cc0,
- 0x8f820f08,
- 0x03a3f021,
- 0xaf820fd0,
- 0xaf9e0fd8,
- 0x4d01ffff,
- 0x00000000,
- 0x1000ffc3,
- 0x24620008,
- 0x8d63000c,
- 0x8d7d0010,
- 0xa563000a,
- 0x13a00002,
- 0x00031c02,
- 0xa7a00000,
- 0x000318c0,
- 0x041100ef,
- 0x00681821,
- 0x4d01ffff,
- 0x00000000,
- 0x8f820c44,
- 0x8f830c40,
- 0xad620010,
- 0xa5630004,
- 0xa5630006,
- 0x10000021,
- 0xaf8c4c00,
- 0xa57d0000,
- 0x8c7d0004,
- 0x94630002,
- 0xac5d4c40,
- 0x27a20008,
- 0xad620018,
- 0x03a3e821,
- 0x27bdfff4,
- 0xad7d001c,
- 0x27bd0004,
- 0xad7d0020,
- 0x37c18001,
- 0x001e17c0,
- 0x0441ffe0,
- 0xa5610008,
- 0x4d01ffff,
- 0x00000000,
- 0x8f820c44,
- 0x8f830c40,
- 0xad620010,
- 0xa5630004,
- 0xa5630006,
- 0x8f820fd8,
- 0x8f830fdc,
- 0x4d01ffff,
- 0x00000000,
- 0x1462ff95,
- 0x24620008,
- 0xaf8c4c00,
- 0x87830ca0,
- 0x278b0c98,
- 0x0461fe97,
- 0x00041700,
- 0x04400005,
- 0x95620000,
- 0x11780006,
- 0x00000000,
- 0xaf0e0010,
- 0xa70d0004,
- 0x3084fff7,
- 0x956d0004,
- 0x8d6e0010,
- 0x25adffd0,
- 0x05a1fe8f,
- 0xad22000c,
- 0x3c0cffb0,
- 0x01896026,
- 0x000d1822,
- 0x25ad0030,
- 0x8d7e0018,
- 0x8d61001c,
- 0x4d01ffff,
- 0x00000000,
- 0x103e0036,
- 0x8f9d4c00,
- 0x3c010840,
- 0xac3e4c40,
- 0x27de0008,
- 0x11a00017,
- 0xad7e0018,
- 0x000df600,
- 0x019e6025,
- 0x4d01ffff,
- 0x00000000,
- 0xad8e4010,
- 0x8f8d0c40,
- 0x957e0006,
- 0x8f8e0c44,
- 0x03cdf021,
- 0xa57e0006,
- 0x000cf782,
- 0x000c0e02,
- 0x03c1f021,
- 0x001e0f80,
- 0x000c6200,
- 0x000c6202,
- 0x01816025,
- 0x33de003c,
- 0x019e6021,
- 0x34010001,
- 0x10000008,
- 0xa5210000,
- 0x957e0006,
- 0x4d01ffff,
- 0x00000000,
- 0x8f8d0c40,
- 0x8f8e0c44,
- 0x03cdf021,
- 0xa57e0006,
- 0x4d01ffff,
- 0x00000000,
- 0x01a3f02b,
- 0x17c00008,
- 0x0003f600,
- 0x01a36823,
- 0x019e6025,
- 0x01896026,
- 0x4d01fff7,
- 0x00000000,
- 0x1000fe58,
- 0xaf9d4c00,
- 0x8d7e0018,
- 0x8d61001c,
- 0x00000000,
- 0x143effce,
- 0x006d1823,
- 0x4d01ffff,
- 0x00000000,
- 0x2c610008,
- 0x10200017,
- 0x95610008,
- 0x00000000,
- 0x0001ff80,
- 0x07e0000b,
- 0x34210002,
- 0x006d1821,
- 0x00031e00,
- 0x01836025,
- 0x01896026,
- 0x240d002c,
- 0xa5610008,
- 0x4d01ffff,
- 0x00000000,
- 0x1000fe40,
- 0xaf9d4c00,
- 0x3c1f0c40,
- 0xaffe4fa8,
- 0x3021fffd,
- 0xa5610008,
- 0x3c0cd3cf,
- 0x358ce000,
- 0x10000008,
- 0x34030002,
- 0x3c1f0c40,
- 0xaffe4fa8,
- 0x11a0fff9,
- 0x000df600,
- 0x34030003,
- 0x019e6025,
- 0x01896026,
- 0x34840008,
- 0x34420002,
- 0xad22000c,
- 0x95620006,
- 0xa5230000,
- 0xad220038,
- 0x4d01ffff,
- 0x00000000,
- 0x857e0008,
- 0x8f820fa8,
- 0x97830fac,
- 0xad220004,
- 0x33c17fff,
- 0xad600010,
- 0xa5610008,
- 0x1060fe20,
- 0xaf9d4c00,
- 0xa57e0008,
- 0x00031900,
- 0x30633ff0,
- 0xa5630000,
- 0x8f820fb0,
- 0x3c030840,
- 0xac624c40,
- 0x24430008,
- 0xad630018,
- 0x97830fae,
- 0x2442fff4,
- 0x00621821,
- 0xad63001c,
- 0x4d01ffff,
- 0x00000000,
- 0x8f8d0c40,
- 0x8f830c44,
- 0xa56d0004,
- 0xa56d0006,
- 0xad630010,
- 0x1000fe0a,
- 0xaf9d4c00,
- 0x8f820fe0,
- 0x00040fc0,
- 0x8c430000,
- 0x0421001b,
- 0x8f9f0fe4,
- 0x8c5d0004,
- 0xac400004,
- 0x1060000e,
- 0xac400000,
- 0x00000000,
- 0x94620028,
- 0x00000000,
- 0x005f1020,
- 0x8c410004,
- 0x00000000,
- 0x10200003,
- 0xac430004,
- 0x10000002,
- 0xac230024,
- 0xac430000,
- 0x17a3fff4,
- 0x8c630024,
- 0x8f820fe0,
- 0x3bff0080,
- 0x24420008,
- 0x34421000,
- 0x38421000,
- 0xaf820fe0,
- 0xaf9f0fe4,
- 0x1000fe57,
- 0x3084fffe,
- 0x10600010,
- 0x00000000,
- 0x947d0028,
- 0x00000000,
- 0x03bfe820,
- 0x8fa10004,
- 0xafa30004,
- 0x10200003,
- 0x8c5e0004,
- 0x10000002,
- 0xac230024,
- 0xafa30000,
- 0x8c610024,
- 0x17c3fe48,
- 0xac410000,
- 0xac400004,
- 0xac400000,
- 0x1000fe44,
- 0x3084fffd,
- 0x2c620100,
- 0x1440000e,
- 0x006a1021,
- 0x3143007f,
- 0x01431823,
- 0x00431823,
- 0x3062007f,
- 0xa5620028,
- 0x00621823,
- 0x00031902,
- 0x8f820fe0,
- 0x2463fff8,
- 0x00621821,
- 0x34631000,
- 0x10000003,
- 0x38631000,
- 0x34430100,
- 0x38630100,
- 0x8c620004,
- 0x00000000,
- 0x10400003,
- 0xac6b0004,
- 0x03e00008,
- 0xac4b0024,
- 0x03e00008,
- 0xac6b0000,
- 0x00000002,
- 0xa0d0e000,
- 0x00000000,
- 0x00001000,
- 0x00000006,
- 0x00000008,
- 0x00000000,
- 0x00000008,
- 0x00000002,
- 0xa0d0d648,
- 0x00000000,
- 0x00000888,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x24313200,
- 0x24313200,
- 0x24313200,
- 0x00000000,
- 0x244d4352,
- 0x2420436f,
- 0x70797269,
- 0x67687420,
- 0x28632920,
- 0x4d616467,
- 0x65204e65,
- 0x74776f72,
- 0x6b73204c,
- 0x74642031,
- 0x3939352e,
- 0x20416c6c,
- 0x20726967,
- 0x68747320,
- 0x72657365,
- 0x72766564,
- 0x2e004d61,
- 0x64676520,
- 0x416d6261,
- 0x73736164,
- 0x6f722076,
- 0x312e3031,
- 0x00000000,
- 0x00000001,
- 0x00000001,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0xfff04000,
- 0x00000000,
- 0x0c343e2d,
- 0x00000000,
- 0x3c1ca0d1,
- 0x279c5638,
- 0x3c1da0d1,
- 0x27bddfd0,
- 0x3c08a0d1,
- 0x2508dfd0,
- 0xaf878008,
- 0x0c343c13,
- 0x00000000,
- 0x24040003,
- 0x0097000d,
- 0x3c08bfc0,
- 0x35080230,
- 0x8d080000,
- 0x00000000,
- 0x01000008,
- 0x00000000,
- 0x27bdffd0,
- 0xafbf001c,
- 0xafb10018,
- 0xafb00014,
- 0x3c11fff0,
- 0x00008021,
- 0x3c180056,
- 0x37183b79,
- 0x26190200,
- 0x17200002,
- 0x0319001a,
- 0x0007000d,
- 0x2401ffff,
- 0x17210005,
- 0x00000000,
- 0x3c018000,
- 0x17010002,
- 0x00000000,
- 0x0006000d,
- 0x00001012,
- 0x00101840,
- 0x3c05a0d1,
- 0x24a5d6cc,
- 0x00a32021,
- 0xa4820000,
- 0x26100001,
- 0x2a010200,
- 0x1420ffea,
- 0x00000000,
- 0x3c06a0d1,
- 0x24c6f9e4,
- 0x3c07a0d1,
- 0x24e7d648,
- 0xace60000,
- 0x3c08a0d1,
- 0x2508fb14,
- 0xace80004,
- 0x3c09a0d1,
- 0x2529fc94,
- 0xace90008,
- 0x3c0aa0d1,
- 0x254afcd4,
- 0xacea000c,
- 0x3c0ba0d1,
- 0x256bfba8,
- 0xaceb0010,
- 0x3c0ca0d1,
- 0x258cfbc4,
- 0xacec0014,
- 0x3c0da0d1,
- 0x25adfbe0,
- 0xaced0018,
- 0x3c0ea0d1,
- 0x25cefbfc,
- 0xacee001c,
- 0x3c0fa0d1,
- 0x25effc18,
- 0xacef0020,
- 0x3c18a0d1,
- 0x2718fc34,
- 0xacf80024,
- 0x3c19a0d1,
- 0x2739fc50,
- 0xacf90028,
- 0x3c02a0d1,
- 0x2442fc60,
- 0xace2002c,
- 0x3c03a0d1,
- 0x2463fc70,
- 0xace30030,
- 0x3c04a0d1,
- 0x2484fc80,
- 0xace40034,
- 0x3c05a0d1,
- 0x24a5fcb4,
- 0xace50038,
- 0x3c06a0d1,
- 0x24c6fe08,
- 0xace6003c,
- 0x3c08a0d1,
- 0x2508fe90,
- 0xace80040,
- 0x3c09a0d1,
- 0x2529fa38,
- 0xace90044,
- 0x3c0aa0d1,
- 0x254afa74,
- 0xacea0048,
- 0x24100013,
- 0x3c0ba0d1,
- 0x256bf9d8,
- 0x00106080,
- 0x3c0ea0d1,
- 0x25ced648,
- 0x01cc6821,
- 0xadab0000,
- 0x26100001,
- 0x2a010020,
- 0x1420fff6,
- 0x00000000,
- 0x8f988000,
- 0x00000000,
- 0xaf000100,
- 0x8f828000,
- 0x241903ff,
- 0xa4590202,
- 0x00008021,
- 0x8f868000,
- 0x24030fff,
- 0x00102040,
- 0x24c70380,
- 0x00e42821,
- 0xa4a30000,
- 0x26100001,
- 0x2a010008,
- 0x1420fff7,
- 0x00000000,
- 0x8f898000,
- 0x