提交 57579f76 编写于 作者: M Michael Chan 提交者: David S. Miller

bnx2: Use request_firmware()

Based on original patch by Ben Hutchings <ben@decadent.org.uk> and
Bastian Blank <waldi@debian.org>, with the following main changes:

Separated the mips firmware and rv2p firmware into different files
to make it easier to update them separately.

Added some code to fixup the rv2p code with run-time information
such as PAGE_SIZE.

Update version to 2.0.0.
Signed-off-by: NMichael Chan <mchan@broadcom.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 5d4d9e8a
......@@ -2234,7 +2234,7 @@ config BNX2
tristate "Broadcom NetXtremeII support"
depends on PCI
select CRC32
select ZLIB_INFLATE
select FW_LOADER
help
This driver supports Broadcom NetXtremeII gigabit Ethernet cards.
......
......@@ -46,19 +46,20 @@
#include <linux/crc32.h>
#include <linux/prefetch.h>
#include <linux/cache.h>
#include <linux/zlib.h>
#include <linux/firmware.h>
#include <linux/log2.h>
#include "bnx2.h"
#include "bnx2_fw.h"
#include "bnx2_fw2.h"
#define FW_BUF_SIZE 0x10000
#define DRV_MODULE_NAME "bnx2"
#define PFX DRV_MODULE_NAME ": "
#define DRV_MODULE_VERSION "1.9.3"
#define DRV_MODULE_RELDATE "March 17, 2009"
#define DRV_MODULE_VERSION "2.0.0"
#define DRV_MODULE_RELDATE "April 2, 2009"
#define FW_MIPS_FILE_06 "bnx2/bnx2-mips-06-4.6.16.fw"
#define FW_RV2P_FILE_06 "bnx2/bnx2-rv2p-06-4.6.16.fw"
#define FW_MIPS_FILE_09 "bnx2/bnx2-mips-09-4.6.17.fw"
#define FW_RV2P_FILE_09 "bnx2/bnx2-rv2p-09-4.6.15.fw"
#define RUN_AT(x) (jiffies + (x))
......@@ -72,6 +73,10 @@ MODULE_AUTHOR("Michael Chan <mchan@broadcom.com>");
MODULE_DESCRIPTION("Broadcom NetXtreme II BCM5706/5708/5709/5716 Driver");
MODULE_LICENSE("GPL");
MODULE_VERSION(DRV_MODULE_VERSION);
MODULE_FIRMWARE(FW_MIPS_FILE_06);
MODULE_FIRMWARE(FW_RV2P_FILE_06);
MODULE_FIRMWARE(FW_MIPS_FILE_09);
MODULE_FIRMWARE(FW_RV2P_FILE_09);
static int disable_msi = 0;
......@@ -3391,33 +3396,143 @@ bnx2_set_rx_mode(struct net_device *dev)
spin_unlock_bh(&bp->phy_lock);
}
static void
load_rv2p_fw(struct bnx2 *bp, __le32 *rv2p_code, u32 rv2p_code_len,
u32 rv2p_proc)
static int __devinit
check_fw_section(const struct firmware *fw,
const struct bnx2_fw_file_section *section,
u32 alignment, bool non_empty)
{
u32 offset = be32_to_cpu(section->offset);
u32 len = be32_to_cpu(section->len);
if ((offset == 0 && len != 0) || offset >= fw->size || offset & 3)
return -EINVAL;
if ((non_empty && len == 0) || len > fw->size - offset ||
len & (alignment - 1))
return -EINVAL;
return 0;
}
static int __devinit
check_mips_fw_entry(const struct firmware *fw,
const struct bnx2_mips_fw_file_entry *entry)
{
if (check_fw_section(fw, &entry->text, 4, true) ||
check_fw_section(fw, &entry->data, 4, false) ||
check_fw_section(fw, &entry->rodata, 4, false))
return -EINVAL;
return 0;
}
static int __devinit
bnx2_request_firmware(struct bnx2 *bp)
{
const char *mips_fw_file, *rv2p_fw_file;
const struct bnx2_mips_fw_file *mips;
const struct bnx2_rv2p_fw_file *rv2p;
int rc;
if (CHIP_NUM(bp) == CHIP_NUM_5709) {
mips_fw_file = FW_MIPS_FILE_09;
rv2p_fw_file = FW_RV2P_FILE_09;
} else {
mips_fw_file = FW_MIPS_FILE_06;
rv2p_fw_file = FW_RV2P_FILE_06;
}
rc = request_firmware(&bp->mips_firmware, mips_fw_file, &bp->pdev->dev);
if (rc) {
printk(KERN_ERR PFX "Can't load firmware file \"%s\"\n",
mips_fw_file);
return rc;
}
rc = request_firmware(&bp->rv2p_firmware, rv2p_fw_file, &bp->pdev->dev);
if (rc) {
printk(KERN_ERR PFX "Can't load firmware file \"%s\"\n",
rv2p_fw_file);
return rc;
}
mips = (const struct bnx2_mips_fw_file *) bp->mips_firmware->data;
rv2p = (const struct bnx2_rv2p_fw_file *) bp->rv2p_firmware->data;
if (bp->mips_firmware->size < sizeof(*mips) ||
check_mips_fw_entry(bp->mips_firmware, &mips->com) ||
check_mips_fw_entry(bp->mips_firmware, &mips->cp) ||
check_mips_fw_entry(bp->mips_firmware, &mips->rxp) ||
check_mips_fw_entry(bp->mips_firmware, &mips->tpat) ||
check_mips_fw_entry(bp->mips_firmware, &mips->txp)) {
printk(KERN_ERR PFX "Firmware file \"%s\" is invalid\n",
mips_fw_file);
return -EINVAL;
}
if (bp->rv2p_firmware->size < sizeof(*rv2p) ||
check_fw_section(bp->rv2p_firmware, &rv2p->proc1.rv2p, 8, true) ||
check_fw_section(bp->rv2p_firmware, &rv2p->proc2.rv2p, 8, true)) {
printk(KERN_ERR PFX "Firmware file \"%s\" is invalid\n",
rv2p_fw_file);
return -EINVAL;
}
return 0;
}
static u32
rv2p_fw_fixup(u32 rv2p_proc, int idx, u32 loc, u32 rv2p_code)
{
switch (idx) {
case RV2P_P1_FIXUP_PAGE_SIZE_IDX:
rv2p_code &= ~RV2P_BD_PAGE_SIZE_MSK;
rv2p_code |= RV2P_BD_PAGE_SIZE;
break;
}
return rv2p_code;
}
static int
load_rv2p_fw(struct bnx2 *bp, u32 rv2p_proc,
const struct bnx2_rv2p_fw_file_entry *fw_entry)
{
u32 rv2p_code_len, file_offset;
__be32 *rv2p_code;
int i;
u32 val;
u32 val, cmd, addr;
if (rv2p_proc == RV2P_PROC2 && CHIP_NUM(bp) == CHIP_NUM_5709) {
val = le32_to_cpu(rv2p_code[XI_RV2P_PROC2_MAX_BD_PAGE_LOC]);
val &= ~XI_RV2P_PROC2_BD_PAGE_SIZE_MSK;
val |= XI_RV2P_PROC2_BD_PAGE_SIZE;
rv2p_code[XI_RV2P_PROC2_MAX_BD_PAGE_LOC] = cpu_to_le32(val);
rv2p_code_len = be32_to_cpu(fw_entry->rv2p.len);
file_offset = be32_to_cpu(fw_entry->rv2p.offset);
rv2p_code = (__be32 *)(bp->rv2p_firmware->data + file_offset);
if (rv2p_proc == RV2P_PROC1) {
cmd = BNX2_RV2P_PROC1_ADDR_CMD_RDWR;
addr = BNX2_RV2P_PROC1_ADDR_CMD;
} else {
cmd = BNX2_RV2P_PROC2_ADDR_CMD_RDWR;
addr = BNX2_RV2P_PROC2_ADDR_CMD;
}
for (i = 0; i < rv2p_code_len; i += 8) {
REG_WR(bp, BNX2_RV2P_INSTR_HIGH, le32_to_cpu(*rv2p_code));
REG_WR(bp, BNX2_RV2P_INSTR_HIGH, be32_to_cpu(*rv2p_code));
rv2p_code++;
REG_WR(bp, BNX2_RV2P_INSTR_LOW, le32_to_cpu(*rv2p_code));
REG_WR(bp, BNX2_RV2P_INSTR_LOW, be32_to_cpu(*rv2p_code));
rv2p_code++;
if (rv2p_proc == RV2P_PROC1) {
val = (i / 8) | BNX2_RV2P_PROC1_ADDR_CMD_RDWR;
REG_WR(bp, BNX2_RV2P_PROC1_ADDR_CMD, val);
val = (i / 8) | cmd;
REG_WR(bp, addr, val);
}
else {
val = (i / 8) | BNX2_RV2P_PROC2_ADDR_CMD_RDWR;
REG_WR(bp, BNX2_RV2P_PROC2_ADDR_CMD, val);
rv2p_code = (__be32 *)(bp->rv2p_firmware->data + file_offset);
for (i = 0; i < 8; i++) {
u32 loc, code;
loc = be32_to_cpu(fw_entry->fixup[i]);
if (loc && ((loc * 4) < rv2p_code_len)) {
code = be32_to_cpu(*(rv2p_code + loc - 1));
REG_WR(bp, BNX2_RV2P_INSTR_HIGH, code);
code = be32_to_cpu(*(rv2p_code + loc));
code = rv2p_fw_fixup(rv2p_proc, i, loc, code);
REG_WR(bp, BNX2_RV2P_INSTR_LOW, code);
val = (loc / 2) | cmd;
REG_WR(bp, addr, val);
}
}
......@@ -3428,14 +3543,18 @@ load_rv2p_fw(struct bnx2 *bp, __le32 *rv2p_code, u32 rv2p_code_len,
else {
REG_WR(bp, BNX2_RV2P_COMMAND, BNX2_RV2P_COMMAND_PROC2_RESET);
}
return 0;
}
static int
load_cpu_fw(struct bnx2 *bp, const struct cpu_reg *cpu_reg, struct fw_info *fw)
load_cpu_fw(struct bnx2 *bp, const struct cpu_reg *cpu_reg,
const struct bnx2_mips_fw_file_entry *fw_entry)
{
u32 addr, len, file_offset;
__be32 *data;
u32 offset;
u32 val;
int rc;
/* Halt the CPU. */
val = bnx2_reg_rd_ind(bp, cpu_reg->mode);
......@@ -3444,64 +3563,52 @@ load_cpu_fw(struct bnx2 *bp, const struct cpu_reg *cpu_reg, struct fw_info *fw)
bnx2_reg_wr_ind(bp, cpu_reg->state, cpu_reg->state_value_clear);
/* Load the Text area. */
offset = cpu_reg->spad_base + (fw->text_addr - cpu_reg->mips_view_base);
if (fw->gz_text) {
int j;
rc = zlib_inflate_blob(fw->text, FW_BUF_SIZE, fw->gz_text,
fw->gz_text_len);
if (rc < 0)
return rc;
addr = be32_to_cpu(fw_entry->text.addr);
len = be32_to_cpu(fw_entry->text.len);
file_offset = be32_to_cpu(fw_entry->text.offset);
data = (__be32 *)(bp->mips_firmware->data + file_offset);
for (j = 0; j < (fw->text_len / 4); j++, offset += 4) {
bnx2_reg_wr_ind(bp, offset, le32_to_cpu(fw->text[j]));
}
}
/* Load the Data area. */
offset = cpu_reg->spad_base + (fw->data_addr - cpu_reg->mips_view_base);
if (fw->data) {
offset = cpu_reg->spad_base + (addr - cpu_reg->mips_view_base);
if (len) {
int j;
for (j = 0; j < (fw->data_len / 4); j++, offset += 4) {
bnx2_reg_wr_ind(bp, offset, fw->data[j]);
for (j = 0; j < (len / 4); j++, offset += 4)
bnx2_reg_wr_ind(bp, offset, be32_to_cpu(data[j]));
}
}
/* Load the SBSS area. */
offset = cpu_reg->spad_base + (fw->sbss_addr - cpu_reg->mips_view_base);
if (fw->sbss_len) {
int j;
for (j = 0; j < (fw->sbss_len / 4); j++, offset += 4) {
bnx2_reg_wr_ind(bp, offset, 0);
}
}
/* Load the Data area. */
addr = be32_to_cpu(fw_entry->data.addr);
len = be32_to_cpu(fw_entry->data.len);
file_offset = be32_to_cpu(fw_entry->data.offset);
data = (__be32 *)(bp->mips_firmware->data + file_offset);
/* Load the BSS area. */
offset = cpu_reg->spad_base + (fw->bss_addr - cpu_reg->mips_view_base);
if (fw->bss_len) {
offset = cpu_reg->spad_base + (addr - cpu_reg->mips_view_base);
if (len) {
int j;
for (j = 0; j < (fw->bss_len/4); j++, offset += 4) {
bnx2_reg_wr_ind(bp, offset, 0);
}
for (j = 0; j < (len / 4); j++, offset += 4)
bnx2_reg_wr_ind(bp, offset, be32_to_cpu(data[j]));
}
/* Load the Read-Only area. */
offset = cpu_reg->spad_base +
(fw->rodata_addr - cpu_reg->mips_view_base);
if (fw->rodata) {
addr = be32_to_cpu(fw_entry->rodata.addr);
len = be32_to_cpu(fw_entry->rodata.len);
file_offset = be32_to_cpu(fw_entry->rodata.offset);
data = (__be32 *)(bp->mips_firmware->data + file_offset);
offset = cpu_reg->spad_base + (addr - cpu_reg->mips_view_base);
if (len) {
int j;
for (j = 0; j < (fw->rodata_len / 4); j++, offset += 4) {
bnx2_reg_wr_ind(bp, offset, fw->rodata[j]);
}
for (j = 0; j < (len / 4); j++, offset += 4)
bnx2_reg_wr_ind(bp, offset, be32_to_cpu(data[j]));
}
/* Clear the pre-fetch instruction. */
bnx2_reg_wr_ind(bp, cpu_reg->inst, 0);
bnx2_reg_wr_ind(bp, cpu_reg->pc, fw->start_addr);
val = be32_to_cpu(fw_entry->start_addr);
bnx2_reg_wr_ind(bp, cpu_reg->pc, val);
/* Start the CPU. */
val = bnx2_reg_rd_ind(bp, cpu_reg->mode);
......@@ -3515,95 +3622,40 @@ load_cpu_fw(struct bnx2 *bp, const struct cpu_reg *cpu_reg, struct fw_info *fw)
static int
bnx2_init_cpus(struct bnx2 *bp)
{
struct fw_info *fw;
int rc, rv2p_len;
void *text, *rv2p;
const struct bnx2_mips_fw_file *mips_fw =
(const struct bnx2_mips_fw_file *) bp->mips_firmware->data;
const struct bnx2_rv2p_fw_file *rv2p_fw =
(const struct bnx2_rv2p_fw_file *) bp->rv2p_firmware->data;
int rc;
/* Initialize the RV2P processor. */
text = vmalloc(FW_BUF_SIZE);
if (!text)
return -ENOMEM;
if (CHIP_NUM(bp) == CHIP_NUM_5709) {
rv2p = bnx2_xi_rv2p_proc1;
rv2p_len = sizeof(bnx2_xi_rv2p_proc1);
} else {
rv2p = bnx2_rv2p_proc1;
rv2p_len = sizeof(bnx2_rv2p_proc1);
}
rc = zlib_inflate_blob(text, FW_BUF_SIZE, rv2p, rv2p_len);
if (rc < 0)
goto init_cpu_err;
load_rv2p_fw(bp, text, rc /* == len */, RV2P_PROC1);
if (CHIP_NUM(bp) == CHIP_NUM_5709) {
rv2p = bnx2_xi_rv2p_proc2;
rv2p_len = sizeof(bnx2_xi_rv2p_proc2);
} else {
rv2p = bnx2_rv2p_proc2;
rv2p_len = sizeof(bnx2_rv2p_proc2);
}
rc = zlib_inflate_blob(text, FW_BUF_SIZE, rv2p, rv2p_len);
if (rc < 0)
goto init_cpu_err;
load_rv2p_fw(bp, text, rc /* == len */, RV2P_PROC2);
load_rv2p_fw(bp, RV2P_PROC1, &rv2p_fw->proc1);
load_rv2p_fw(bp, RV2P_PROC2, &rv2p_fw->proc2);
/* Initialize the RX Processor. */
if (CHIP_NUM(bp) == CHIP_NUM_5709)
fw = &bnx2_rxp_fw_09;
else
fw = &bnx2_rxp_fw_06;
fw->text = text;
rc = load_cpu_fw(bp, &cpu_reg_rxp, fw);
rc = load_cpu_fw(bp, &cpu_reg_rxp, &mips_fw->rxp);
if (rc)
goto init_cpu_err;
/* Initialize the TX Processor. */
if (CHIP_NUM(bp) == CHIP_NUM_5709)
fw = &bnx2_txp_fw_09;
else
fw = &bnx2_txp_fw_06;
fw->text = text;
rc = load_cpu_fw(bp, &cpu_reg_txp, fw);
rc = load_cpu_fw(bp, &cpu_reg_txp, &mips_fw->txp);
if (rc)
goto init_cpu_err;
/* Initialize the TX Patch-up Processor. */
if (CHIP_NUM(bp) == CHIP_NUM_5709)
fw = &bnx2_tpat_fw_09;
else
fw = &bnx2_tpat_fw_06;
fw->text = text;
rc = load_cpu_fw(bp, &cpu_reg_tpat, fw);
rc = load_cpu_fw(bp, &cpu_reg_tpat, &mips_fw->tpat);
if (rc)
goto init_cpu_err;
/* Initialize the Completion Processor. */
if (CHIP_NUM(bp) == CHIP_NUM_5709)
fw = &bnx2_com_fw_09;
else
fw = &bnx2_com_fw_06;
fw->text = text;
rc = load_cpu_fw(bp, &cpu_reg_com, fw);
rc = load_cpu_fw(bp, &cpu_reg_com, &mips_fw->com);
if (rc)
goto init_cpu_err;
/* Initialize the Command Processor. */
if (CHIP_NUM(bp) == CHIP_NUM_5709)
fw = &bnx2_cp_fw_09;
else
fw = &bnx2_cp_fw_06;
fw->text = text;
rc = load_cpu_fw(bp, &cpu_reg_cp, fw);
rc = load_cpu_fw(bp, &cpu_reg_cp, &mips_fw->cp);
init_cpu_err:
vfree(text);
return rc;
}
......@@ -7807,6 +7859,10 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_set_drvdata(pdev, dev);
rc = bnx2_request_firmware(bp);
if (rc)
goto error;
memcpy(dev->dev_addr, bp->mac_addr, 6);
memcpy(dev->perm_addr, bp->mac_addr, 6);
......@@ -7823,13 +7879,7 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
if ((rc = register_netdev(dev))) {
dev_err(&pdev->dev, "Cannot register net device\n");
if (bp->regview)
iounmap(bp->regview);
pci_release_regions(pdev);
pci_disable_device(pdev);
pci_set_drvdata(pdev, NULL);
free_netdev(dev);
return rc;
goto error;
}
printk(KERN_INFO "%s: %s (%c%d) %s found at mem %lx, "
......@@ -7843,6 +7893,20 @@ bnx2_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
bp->pdev->irq, dev->dev_addr);
return 0;
error:
if (bp->mips_firmware)
release_firmware(bp->mips_firmware);
if (bp->rv2p_firmware)
release_firmware(bp->rv2p_firmware);
if (bp->regview)
iounmap(bp->regview);
pci_release_regions(pdev);
pci_disable_device(pdev);
pci_set_drvdata(pdev, NULL);
free_netdev(dev);
return rc;
}
static void __devexit
......@@ -7855,6 +7919,11 @@ bnx2_remove_one(struct pci_dev *pdev)
unregister_netdev(dev);
if (bp->mips_firmware)
release_firmware(bp->mips_firmware);
if (bp->rv2p_firmware)
release_firmware(bp->rv2p_firmware);
if (bp->regview)
iounmap(bp->regview);
......
......@@ -6885,6 +6885,8 @@ struct bnx2 {
u32 idle_chk_status_idx;
const struct firmware *mips_firmware;
const struct firmware *rv2p_firmware;
};
#define REG_RD(bp, offset) \
......@@ -6915,44 +6917,41 @@ struct cpu_reg {
u32 mips_view_base;
};
struct fw_info {
const u32 ver_major;
const u32 ver_minor;
const u32 ver_fix;
const u32 start_addr;
/* Text section. */
const u32 text_addr;
const u32 text_len;
const u32 text_index;
__le32 *text;
u8 *gz_text;
const u32 gz_text_len;
/* Data section. */
const u32 data_addr;
const u32 data_len;
const u32 data_index;
const u32 *data;
/* SBSS section. */
const u32 sbss_addr;
const u32 sbss_len;
const u32 sbss_index;
/* BSS section. */
const u32 bss_addr;
const u32 bss_len;
const u32 bss_index;
/* Read-only section. */
const u32 rodata_addr;
const u32 rodata_len;
const u32 rodata_index;
const u32 *rodata;
struct bnx2_fw_file_section {
__be32 addr;
__be32 len;
__be32 offset;
};
struct bnx2_mips_fw_file_entry {
__be32 start_addr;
struct bnx2_fw_file_section text;
struct bnx2_fw_file_section data;
struct bnx2_fw_file_section rodata;
};
struct bnx2_rv2p_fw_file_entry {
struct bnx2_fw_file_section rv2p;
__be32 fixup[8];
};
struct bnx2_mips_fw_file {
struct bnx2_mips_fw_file_entry com;
struct bnx2_mips_fw_file_entry cp;
struct bnx2_mips_fw_file_entry rxp;
struct bnx2_mips_fw_file_entry tpat;
struct bnx2_mips_fw_file_entry txp;
};
struct bnx2_rv2p_fw_file {
struct bnx2_rv2p_fw_file_entry proc1;
struct bnx2_rv2p_fw_file_entry proc2;
};
#define RV2P_P1_FIXUP_PAGE_SIZE_IDX 0
#define RV2P_BD_PAGE_SIZE_MSK 0xffff
#define RV2P_BD_PAGE_SIZE ((BCM_PAGE_SIZE / 16) - 1)
#define RV2P_PROC1 0
#define RV2P_PROC2 1
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
因为 它太大了无法显示 source diff 。你可以改为 查看blob
......@@ -32,6 +32,10 @@ fw-shipped-$(CONFIG_ADAPTEC_STARFIRE) += adaptec/starfire_rx.bin \
adaptec/starfire_tx.bin
fw-shipped-$(CONFIG_ATARI_DSP56K) += dsp56k/bootstrap.bin
fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw
fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-4.6.17.fw \
bnx2/bnx2-rv2p-09-4.6.15.fw \
bnx2/bnx2-mips-06-4.6.16.fw \
bnx2/bnx2-rv2p-06-4.6.16.fw
fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin
fw-shipped-$(CONFIG_COMPUTONE) += intelliport2.bin
fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \
......
......@@ -553,3 +553,23 @@ Licence: Unknown
Found in hex form in kernel source.
--------------------------------------------------------------------------
Driver: BNX2 - Broadcom NetXtremeII
File: bnx2/bnx2-mips-06-4.6.16.fw
File: bnx2/bnx2-rv2p-06-4.6.16.fw
File: bnx2/bnx2-mips-09-4.6.17.fw
File: bnx2/bnx2-rv2p-09-4.6.15.fw
Licence:
This file contains firmware data derived from proprietary unpublished
source code, Copyright (c) 2004 - 2009 Broadcom Corporation.
Permission is hereby granted for the distribution of this firmware data
in hexadecimal or equivalent format, provided this copyright notice is
accompanying it.
Found in hex form in kernel source.
--------------------------------------------------------------------------
因为 它太大了无法显示 source diff 。你可以改为 查看blob
因为 它太大了无法显示 source diff 。你可以改为 查看blob
:100000000000000000000CA00000005800000000EC
:1000100000000000000000000000000000000000E0
:1000200000000000000000000000000000000000D0
:1000300000000DE000000CF80000000500000000CA
:1000400000000000000000000000000000000000B0
:080050000000000000000000A8
:0800580000000010B18000025D
:100060000000001F0103010000000008AC000001B7
:1000700000000000050000000000000C2F800001BF
:10008000000000002B000000000000002B8000009A
:1000900000000010203F006300000010213F00031B
:1000A0000000001020BF0032000000188000FFFD9B
:1000B00000000010B1B8B00D0000000B2FDF0002EF
:1000C0000000000003D80000000000002C380000F1
:1000D0000000001091D400000000000806005555F3
:1000E0000000001880000075000000188000010B5F
:1000F00000000008020000020000000F42E0001CA7
:100100000000001091840A11000000102C62000B06
:10011000000000188000001E00000008020000021D
:100120000000000F42E0001C0000001091840A183B
:10013000000000082C8000B1000000082D0000091C
:100140000000001091D40000000000082D8001077D
:10015000000000188000006F0000001880000015EB
:1001600000000008B1000001000000082C8000B071
:10017000000000082D000008000000082D8000018C
:1001800000000018800000690000000B2FDF000253
:100190000000000C1F800002000000002C0700007F
:1001A0000000001091DE00000000000005000000CB
:1001B000000000188000FFDC0000000B2FDF0002B1
:1001C0000000000C1F800000000000002C07000051
:1001D0000000001091DE000000000000050000009B
:1001E000000000188000FFD60000000C1F800002F5
:1001F0000000000005000000000000188000FFD390
:100200000000000C298000020000000C1F8000028A
:10021000000000002ADF0000000000082A0000059E
:100220000000000805005555000000188000FFCDB3
:10023000000000080224003C000000180004000038
:10024000000000188000001C000000188000001E44
:100250000000001880000052000000188000009E7E
:10026000000000188000009D0000001880000000C1
:10027000000000188000000000000018800000004E
:10028000000000188000000000000018800000003E
:10029000000000188000000000000018800000002E
:1002A000000000188000000000000018800000DF3F
:1002B000000000188000000000000018800000000E
:1002C0000000001880000015000000188000001BCE
:1002D000000000188000000000000018800000B43A
:1002E000000000188000002E00000018800000DFD1
:1002F000000000188000010A00000018800000D5EE
:10030000000000188000012E000000188000003B53
:10031000000000188000000000000018800000713C
:100320000000000C1F80000100000000050000001C
:10033000000000188000FFAC0000001091D4000005
:100340000000000C298000010000000C1F8000014B
:10035000000000082A000002000000000500000064
:10036000000000188000FFA60000001091D40000DB
:100370000000000C298000010000000C1F8000011B
:100380000000000029420000000000082A000002CE
:100390000000000005000000000000188000FF9F22
:1003A000000000188000FF9E00000010B1BCB00AE1
:1003B0000000000B2FDF00020000000003D8000047
:1003C000000000002C3C00000000001091D4000050
:1003D00000000008060055550000001880000016B7
:1003E00000000018800000AC000000102C6201BA70
:1003F0000000001880000005000000082C8000B1FB
:10040000000000082D0000090000001091D4000039
:10041000000000082D8001070000000C298000006A
:100420000000000C1F8000000000001091DE0000A2
:10043000000000002ADF0000000000082A0000067B
:100440000000000805005555000000188000FF89D5
:100450000000001091D400000000000C2980000171
:100460000000000C1F800001000000082A00000BA3
:100470000000000005000000000000188000FF835D
:1004800000000018000200000000000006820000CA
:1004900000000010B18A000600000000860C140065
:1004A00000000010B18C00040000000005000000F6
:1004B000000000082A0000010000001091D4000094
:1004C00000000018000D0000000000000502000000
:1004D0000000001091DE000000000018000A00007B
:1004E00000000010B1A0B0130000000B2FDF0002CD
:1004F000000000002C200000000000082C800000FC
:10050000000000082D0000000000001091D4000041
:100510000000000806005555000000188000FFEE9E
:10052000000000082D80011C00000010001F0000CA
:100530000000001091DE00000000000F476000087E
:100540000000000F060E0001000000000F58000020
:10055000000000000A640000000000000AE500003E
:10056000000000090B66FFFF000000000D610000A5
:1005700000000018800000130000000F4760000812
:100580000000000B2FDF0002000000082C8000009C
:10059000000000082D0000000000001091D40000B1
:1005A000000000082D80011C0000000F060E000155
:1005B00000000010001F0000000000000F580000A5
:1005C0000000001091DE0000000000000A6400003E
:1005D000000000000AE50000000000090B66FFFFB4
:1005E000000000000D610000000000000262000039
:1005F0000000000B2FDF00020000000031040000AB
:1006000000000000309A0000000000000C96180066
:10061000000000090C99FFFF00000004CC99340091
:1006200000000010B1963202000000080F800000A8
:100630000000000C298000010000001000220002D0
:100640000000000C295200010000000C295200009B
:10065000000000080200000E000000080280001ADE
:1006600000000010B1C40A020000000802000003EC
:1006700000000008220000010000000C1F800001A3
:10068000000000002ADF0000000000002A0008002F
:100690000000000805005555000000188000FF3FCD
:1006A0000000000B2FDF00020000001091D40000BA
:1006B000000000082A000001000000002C200000BB
:1006C000000000082C800000000000082D00000041
:1006D000000000082D80011C0000001091D40000D3
:1006E0000000001091DE0000000000082C800006D1
:1006F000000000082D00000600000000308000000F
:100700000000000031000000000000082D800006FD
:100710000000000C298000010000000C1F80000177
:100720000000001091DE0000000000002ADF000041
:10073000000000082A000010000000000500000072
:10074000000000188000FF2A0000001091A0B009EE
:10075000000000082C8000B1000000082D000009F6
:100760000000001091D40000000000082D80010757
:10077000000000188000FFAB00000018800000108F
:1007800000000008AC000001000000188000000B11
:10079000000000000380B0000000000B2FDF00020B
:1007A000000000002C0040000000001091D4000068
:1007B0000000000806005555000000188000FF9A50
:1007C00000000018800000300000001880000006C3
:1007D0000000000B2FDF0002000000002C000E00C4
:1007E000000000082A000007000000080500555519
:1007F000000000188000FF140000000006820000C6
:100800000000000C298000010000000C1F80000186
:10081000000000100CE70007000000090562FFFF60
:1008200000000010BA6C1405000000002ADF000070
:100830000000000021000000000000082A00000560
:100840000000001091D40000000000082C8000B0CF
:10085000000000082D0000080000000C31620018A4
:10086000000000082D800001000000188000FF8CAF
:1008700000000018000D000000000010B1A0B00E34
:100880000000000B2FDF00020000000003D8000072
:10089000000000002C2000000000001091D4000097
:1008A0000000001880000014000000102C620002FC
:1008B000000000188000000B0000000B2FDF00027A
:1008C000000000002C0700000000000C1F80000149
:1008D0000000001091DE0000000000000500000094
:1008E000000000188000FEF6000000082C8000B117
:1008F000000000082D0000090000001091D4000045
:10090000000000082D8001070000000C2980000174
:100910000000000C1F8000010000001091DE0000AC
:10092000000000002ADF0000000000082A00000A82
:100930000000000005000000000000188000FEEB31
:100940000000000005020000000000082C8000B03C
:10095000000000082D000008000000082D80015054
:10096000000000000000000000000010205F0000F8
:10097000000000082C800000000000082D0000008E
:10098000000000082D8001080000000000000000A9
:100990000000001091DE000000000018000A0000B6
:1009A0000000001091D40000000000080600AAAA70
:1009B000000000188000FF5B0000000C298000018F
:1009C0000000000C1F800001000000082A00000940
:1009D000000000080500AAAA000000188000FED749
:1009E0000000001091D400000000000806005555DA
:1009F000000000188000FF530000001091A03C028E
:100A000000000010B1E662070000000B2FDF0002BB
:100A1000000000002C310000000000092CB1007F14
:100A2000000000082CD90000000000082D00000084
:100A3000000000082D80010D00000010B1A8000684
:100A400000000010205F0000000000002C200000CB
:100A5000000000002CA70000000000082D0000107E
:100A6000000000082D800108000000188000FF4CE5
:100A700000000010B1A6001000000010001F0000D0
:100A80000000000F0F300007000000000A600000A7
:100A9000000000000AE100000000000F4B620008A7
:100AA000000000090B1600FF000000000D620000AE
:100AB000000000090D1A00FF0000001007300003BD
:100AC0000000000C0D1A00080000000C0B160008B6
:100AD0000000000F4CE30018000000000C992C00EF
:100AE00000000004CC993400000000080F800000D2
:100AF0000000000C298000010000000033310000DC
:100B00000000000822000016000000002ADF00009C
:100B1000000000082A00000C00000010009F0000E8
:100B2000000000000F2000000000000C1F800001EA
:100B30000000000805005555000000188000FEABBD
:100B40000000001091D40000000000080600AAAACE
:100B5000000000188000FF270000000F4722000857
:100B600000000009070E000F00000008070E000833
:100B700000000008028000010000000702851C0040
:100B800000000008828500010000000002854C0082
:100B90000000000742851C0000000003C3AA5200A9
:100BA0000000000003B10E00000000074B071C000E
:100BB0000000000F0F3000070000000F0A9600032E
:100BC000000000000A955C00000000004A005A0086
:100BD000000000000C960A00000000090C99FFFFBD
:100BE000000000080D00FFFF00000010B196320267
:100BF000000000080F80000500000010B1A80008E8
:100C000000000010205F00000000000B2FDF00023A
:100C1000000000002C200000000000002CA70000B5
:100C2000000000082D000010000000082D800108C1
:100C3000000000188000FF130000000C2980000154
:100C400000000010001F00000000000C1F800001C9
:100C5000000000002ADF0000000000082A00000D4C
:100C6000000000080500AAAA000000188000FE8508
:100C70000000001091D40000000000080600555547
:100C8000000000188000FF010000000C2980000116
:100C90000000000C1F800001000000082A0000076F
:100CA0000000000805005555000000188000FE7D7A
:100CB00000000008030500040000000683040C0087
:100CC00000000008028502000000000086050C00FC
:100CD00000000001860C0E00000000080204000461
:100CE00000000000020418000000000083871800C4
:080CF0000000001800020000E2
:080CF80000000010B1800004AF
:100D00000000001F0103010000000008050000FFB3
:100D10000000001800020000000000002A0000008F
:100D200000000010B1D400000000000C2980000178
:100D30000000000802540008000000180004000031
:100D40000000001880000010000000188000001152
:100D5000000000188000003A000000188000010424
:100D6000000000188000010300000018800001024C
:100D70000000001880000102000000188000000040
:100D8000000000188000011400000018800000FE20
:100D9000000000188000000C0000001880000118FE
:100DA000000000188000016A000000188000006741
:100DB00000000018800000DA00000018800000E742
:100DC000000000002A000000000000188000FFEB77
:100DD000000000002A0000000000000C2980000034
:100DE0000000001020530000000000188000FFE702
:100DF000000000002A000000000000188000FFE54D
:100E000000000018000200000000000005020000C1
:100E1000000000109196342100000010205F0000B7
:100E2000000000002C1E0000000000082C800006BE
:100E3000000000082D000006000000082D800102BF
:100E400000000000000000000000001091DE000023
:100E5000000000000D61000000000018000A000002
:100E600000000000050200000000001091963416FA
:100E700000000010205F00000000000009D8000002
:100E8000000000002C1E0000000000082C8000B2B2
:100E9000000000082D00000A000000082D8001025B
:100EA00000000000000000000000001091DE0000C3
:100EB000000000000D620000000000002C13000084
:100EC00000000018000A00000000000005020000F9
:100ED000000000109196340900000010205F00000F
:100EE000000000002C1E0000000000082C800006FE
:100EF000000000082D00006A000000082D8001029B
:100F000000000000000000000000001091DE000062
:100F1000000000000D7A000000000018000A000028
:100F20000000001091DE000000000010001F000013
:100F3000000000002F80AA00000000002A0000002E
:100F4000000000000D6100000000000003620000CE
:100F5000000000002C4000000000000002638C0034
:100F600000000000264600000000000802040012F5
:100F700000000010B9060827000000000F5800000C
:100F8000000000000A640000000000000AE5000004
:100F9000000000090B66FFFF000000000C000000CD
:100FA000000000000B800000000000080CC60012CA
:100FB000000000188000FFCB000000080F80000335
:100FC000000000000000000000000010009F000072
:100FD00000000008271100120000000066900000C9
:100FE00000000008A31B001200000010B1980003CD
:100FF00000000010001F0000000000080F80000427
:101000000000000822000003000000082C80000CF3
:10101000000000082D00000C00000010009F0000E0
:1010200000000000259600000000000C2980000050
:101030000000000006660000000000008661180045
:10104000000000090260000F0000000F020400020F
:1010500000000010B60C08030000000C1FBF0000C9
:101060000000000C33660010000000003214000085
:1010700000000000329500000000000573662C009F
:101080000000000031E32E00000000082D80001059
:1010900000000010205300000000001091DE00004E
:1010A000000000188000FF900000000023000000F6
:1010B0000000000925E6FFFF000000082200000BE9
:1010C0000000000C695200000000000C29800000A4
:1010D0000000001020530000000000188000FF896D
:1010E0000000001091DE000000000010001F000052
:1010F000000000002F80AA00000000002A0000006D
:10110000000000002C400000000000082C8000407F
:10111000000000082D000020000000082D80011CA8
:1011200000000000000000000000001091DE000040
:101130000000000F42EA001000000010004F000401
:1011400000000010B746920000000008024900129B
:1011500000000010B5840A00000000000D610000CE
:1011600000000010BA66345A00000000036200005C
:1011700000000010B8630C5800000008830500123E
:1011800000000010004F00020000000003490000B2
:101190000000000183068C000000000083C60C00E4
:1011A00000000010B1870010000000000B6E00006E
:1011B000000000188000FF6B0000000106691400A9
:1011C00000000010918C000200000008B4E900014A
:1011D00000000010B1E92C4C0000000086692C00D2
:1011E00000000000020000000000000902EAFFFF0A
:1011F00000000010000C00020000000002040A00C1
:101200000000000F460C00010000000F02850001E5
:1012100000000010918C01FC00000010B7040E4388
:10122000000000002C400000000000000F40000003
:10123000000000000D610000000000000A640000D2
:10124000000000000AE50000000000090B66FFFF37
:10125000000000000C000000000000000B800000F7
:10126000000000080C860012000000080F80000338
:101270000000000C2952000000000010009F000038
:101280000000000827110012000000006690000016
:1012900000000000264600000000000023060000B9
:1012A00000000010B198000500000010001F0000B1
:1012B000000000080F800004000000000000000093
:1012C00000000010001F00000000000032140000A9
:1012D00000000000329500000000000031E32E0005
:1012E0000000000573662C00000000002596000039
:1012F00000000010B18700160000000C29800000DB
:101300000000000F0F6B0007000000000D690000D7
:10131000000000000A6C0000000000000AED000060
:10132000000000000B6E0000000000000B800000B9
:10133000000000000C870000000000080F80000380
:1013400000000010205300000000000C6952000152
:1013500000000010001F00000000000022C58C00EB
:1013600000000000231B0000000000002711000007
:10137000000000002690000000000010B8170E03C7
:101380000000000C29800000000000188000FFF61B
:1013900000000010B1980002000000080F80000457
:1013A000000000082200001A000000082C80000C39
:1013B000000000082D00000C000000082D80001027
:1013C00000000010001F0000000000000D6E000073
:1013D00000000003E7CF34000000000C298000006B
:1013E0000000001091DE000000000010B18700072F
:1013F00000000000361400000000000036950000D8
:101400000000000037160000000000082C8000508B
:10141000000000082D000030000000082D80000CA6
:101420000000001020530000000000188000FF1F83
:10143000000000002646000000000000230000001D
:101440000000000925E6FFFF000000000B6E000011
:1014500000000003E7CF2C00000000082200001B62
:101460000000000C695200000000000C2980000000
:101470000000001020530000000000188000FF153D
:10148000000000002FD50000000000002A0000002E
:1014900000000010003F000B000000000666000086
:1014A000000000008661180000000009026000F0E2
:1014B00000000010B70C08070000000C7366001055
:1014C000000000082C800018000000082D00001803
:1014D000000000082D8000020000000C5FBF00002B
:1014E0000000001091DE0000000000188000FF07DF
:1014F000000000002FD50000000000002A000000BE
:10150000000000002C4000000000000C29800000BA
:101510000000001091DE0000000000082C80001A7E
:10152000000000082D00001A000000003300000039
:10153000000000082D800002000000003180000043
:101540000000001091DE0000000000082C80000C5C
:10155000000000082D00000C000000082D80000491
:1015600000000010205300000000001091DE000079
:10157000000000188000FEF6000000188000FEF554
:10158000000000002A00000000000010001F000002
:10159000000000000F008000000000080F8000071E
:1015A0000000001880000014000000000502000088
:1015B000000000082200000900000000286D000063
:1015C00000000000290000000000000F6568001006
:1015D00000000003F66C940000000010B972A00433
:1015E0000000000C73E700190000000C2142000409
:1015F000000000003BF600000000000C2980000005
:101600000000001020530000000000082200000825
:101610000000000C6142000400000018000A0000F5
:10162000000000002A00000000000010001F000061
:101630000000000F0F470007000000080F8000089F
:101640000000000C29800000000000102053000062
:10165000000000188000FEDA0000001091DE00009B
:10166000000000002FD5000000000010001F000047
:101670000000000033510000000000002A000000BC
:1016800000000010B1C600230000000F0F5000073B
:10169000000000000A600000000000000AE10000F5
:1016A0000000000F4B620008000000090B1600FF4D
:1016B0000000000F4C620010000000000D620000EE
:1016C000000000090D1A00FF000000100750000381
:1016D0000000000C0D1A00080000000C0B1600089A
:1016E000000000000CC60000000000000B8000009D
:1016F0000000000006980000000000080F800003B2
:101700000000001006C200040000000C29000002C6
:1017100000000010264200020000000C29520003C5
:10172000000000082200000100000010009F0000DF
:1017300000000000231B00000000000027111A0019
:1017400000000000669000000000000C295200001C
:1017500000000010B19732090000000C2980000041
:101760000000000006980000000000102053000058
:101770000000000C295200030000000022C58C006C
:1017800000000010001F0000000000080F80000390
:10179000000000188000FFF300000010B1C8001323
:1017A00000000010B1C600030000000C29800000FA
:1017B00000000010205300000000000C295200001F
:1017C0000000000C295200030000001006C20002B5
:1017D0000000000C295200020000000022C58C000D
:1017E00000000000276500000000000026E4000063
:1017F000000000082200001600000010B1C600031F
:10180000000000002348000000000010B180000527
:1018100000000000234800000000000C29800000A8
:101820000000000F0F500007000000188000001299
:1018300000000008220000160000000C29800000B3
:10184000000000003014000000000000309500008F
:101850000000001007500003000000090B1600FFF5
:10186000000000090D1A00FF0000000F31160008EB
:10187000000000003162340000000003F16230001B
:1018800000000010205F0000000000002C5100004C
:10189000000000092CD1007F000000082CD90000B6
:1018A000000000082D000000000000082D80000C42
:1018B00000000000000000000000001091DE0000A9
:1018C0000000001005C2000300000000330000000B
:1018D000000000080F8000070000001020530000E7
:1018E00000000010009F0000000000188000FE872C
:1018F000000000002FD50000000000002A000000BA
:101900000000000F0F50000700000010B1C6002DAE
:101910000000000F4742000800000009070E000FFA
:1019200000000008070E000800000010001F000063
:1019300000000008090000010000000709121C0057
:1019400000000003CBCA9200000000000B97A20029
:101950000000000742171C00000000000B040000FC
:101960000000000F0A840003000000000A959C009C
:10197000000000004A009A000000000882120001E6
:10198000000000010C170800000000000C978C00FC
:101990000000000002180000000000080D00FFFF1A
:1019A000000000080F8000060000000C2900000065
:1019B0000000001006C200040000000C29520002C2
:1019C00000000010264200020000000C2952000313
:1019D000000000082200000100000010009F00002D
:1019E00000000010B197320C00000000231B000023
:1019F00000000000271108000000000066900000B1
:101A00000000000C29800000000000000218000007
:101A100000000010205300000000000C29520003B9
:101A20000000000022C5360000000010001F00006A
:101A3000000000080F800006000000188000FFF47E
:101A400000000000231B0000000000002711080018
:101A5000000000006690000000000010B1C8000BFC
:101A60000000000C2980000000000010205300003E
:101A70000000000C295200000000000C2952000355
:101A80000000001006C200020000000C29520002F3
:101A90000000000022C58C00000000002765000047
:101AA0000000000026E400000000000023480000C1
:101AB00000000008220000170000000C2980000030
:101AC00000000010001F0000000000102053000064
:081AD000000000188000FE4A2E
:00000001FF
/*
* This file contains firmware data derived from proprietary unpublished
* source code, Copyright (c) 2004 - 2009 Broadcom Corporation.
*
* Permission is hereby granted for the distribution of this firmware data
* in hexadecimal or equivalent format, provided this copyright notice is
* accompanying it.
*/
:100000000000000000000D88000000580000000003
:1000100000000000000000000000000000000000E0
:1000200000000000000000000000000000000000D0
:100030000000101800000DE00000000500000000A6
:1000400000000000000000000000000000000000B0
:080050000000000000000000A8
:0800580000000010B18000025D
:100060000000001F0303010000000008AC000001B5
:1000700000000000050000000000000C2F800001BF
:10008000000000002B000000000000002B8000009A
:1000900000000010203F006C00000010213F000312
:1000A0000000001020BF003B000000188000FFFD92
:1000B00000000010B1B8B0150000000B2FDF0002E7
:1000C0000000000003D80000000000002C380000F1
:1000D000000000082C800000000000082D00000037
:1000E0000000001091D400000000000806005555E3
:1000F000000000188000008F000000082D80011C07
:1001000000000008020000010000001091DE000065
:100110000000000F42E0001C0000001091840A174C
:1001200000000010086600160000000C2980000284
:100130000000000C1F800002000000002ADF000009
:10014000000000082A00000F0000000805005555B7
:10015000000000188000FFE8000000080200000115
:100160000000000F42E0001C0000001091840A19FA
:10017000000000082C800006000000082D0000068A
:100180000000001091D40000000000082D8001063E
:1001900000000018800000830000001008660013B3
:1001A000000000188000FFF100000008B10000010D
:1001B000000000082C80010C000000082D00000841
:1001C000000000082D800001000000188000007C65
:1001D0000000000B2FDF00020000000C1F80000257
:1001E000000000002C0700000000001091DE00005D
:1001F0000000000005000000000000188000FFD390
:100200000000000B2FDF00020000000C1F80000028
:10021000000000002C0700000000001091DE00002C
:100220000000000005000000000000188000FFCD65
:100230000000000C1F80000200000000050000000C
:10024000000000188000FFCA0000000C2980000296
:100250000000000C1F800002000000002ADF0000E8
:10026000000000082A0000050000000805005555A0
:10027000000000188000FFC40000000802240045B0
:100280000000001800040000000000188000001C9E
:10029000000000188000001E0000001880000065AB
:1002A00000000018800000AD00000018800000ACC5
:1002B000000000188000000000000018800000000E
:1002C00000000018800000000000001880000000FE
:1002D00000000018800000000000001880000000EE
:1002E00000000018800000000000001880000000DE
:1002F00000000018800000F30000001880000000DB
:1003000000000018800000000000001880000015A8
:10031000000000188000001B000000188000000092
:1003200000000018800000C3000000188000002EAC
:1003300000000018800000F3000000188000011E7B
:1003400000000018800000E9000000188000014251
:10035000000000188000004E00000018800000001F
:1003600000000018800000800000000C1F800001C9
:100370000000000005000000000000188000FFA33E
:100380000000001091D400000000000C2980000142
:100390000000000C1F800001000000082A0000027D
:1003A0000000000005000000000000188000FF9D14
:1003B0000000001091D400000000000C2980000112
:1003C0000000000C1F800001000000002942000016
:1003D000000000082A0000020000000005000000E4
:1003E000000000188000FF96000000188000FF95B4
:1003F00000000010B1BCB00A0000000B2FDF0002AB
:100400000000000003D80000000000002C3C0000A9
:100410000000001091D400000000000806005555AF
:10042000000000188000002900000018800000BBB8
:10043000000000102C6201BA0000001880000005C6
:10044000000000082C80010D000000082D000009AC
:100450000000001091D40000000000082D8001076A
:100460000000000C298000000000000C1F8000002C
:100470000000001091DE0000000000002ADF0000F4
:10048000000000082A00000600000008050055557D
:10049000000000188000FF800000001091D40000D0
:1004A0000000000C298000010000000C1F800001EA
:1004B000000000082A00000B0000000005000000FA
:1004C000000000188000FF7A000000000202000017
:1004D00000000000029A000000000000060C2C0042
:1004E00000000004C60C340000000010001F0000D3
:1004F00000000010B196180C0000000806960004D9
:1005000000000009068DFFFC00000004CD051A0064
:1005100000000004CC9A18000000001020D7000052
:100520000000000C2B56000000000000000000003E
:1005300000000000000000000000001020D70000B4
:10054000000000080F80000100000010B18001F4DD
:1005500000000010001F00000000000C6B5600009F
:1005600000000018000400000000000006820000E7
:1005700000000010B18A000600000000860C140084
:1005800000000010B18C0004000000000500000015
:10059000000000082A0000010000001091D40000B3
:1005A00000000018000D000000000000050200001F
:1005B0000000001091DE000000000018000A00009A
:1005C00000000010B1A0B0130000000B2FDF0002EC
:1005D000000000002C200000000000082C8000001B
:1005E000000000082D0000000000001091D4000061
:1005F0000000000806005555000000188000FFEEBE
:10060000000000082D80011C00000010001F0000E9
:100610000000001091DE00000000000F476000089D
:100620000000000F060E0001000000000F5800003F
:10063000000000000A640000000000000AE500005D
:10064000000000090B66FFFF000000000D610000C4
:1006500000000018800000130000000F4760000831
:100660000000000B2FDF0002000000082C800000BB
:10067000000000082D0000000000001091D40000D0
:10068000000000082D80011C0000000F060E000174
:1006900000000010001F0000000000000F580000C4
:1006A0000000001091DE0000000000000A6400005D
:1006B000000000000AE50000000000090B66FFFFD3
:1006C000000000000D610000000000000262000058
:1006D0000000000B2FDF00020000000031040000CA
:1006E00000000000309A0000000000188000FFBCED
:1006F0000000000C29800001000000100022000210
:100700000000000C295200010000000C29520000DA
:10071000000000080200000E000000080280001A1D
:1007200000000010B1C40A0200000008020000032B
:1007300000000008220000010000000C1F800001E2
:10074000000000002ADF0000000000002A0008006E
:100750000000000805005555000000188000FF2724
:100760000000000B2FDF00020000001091D40000F9
:10077000000000082A000001000000002C200000FA
:10078000000000082C800000000000082D00000080
:10079000000000082D80011C0000001091D4000012
:1007A0000000001091DE0000000000082C80000610
:1007B000000000082D00000600000000308000004E
:1007C0000000000031000000000000082D8000063D
:1007D0000000000C298000010000000C1F800001B7
:1007E0000000001091DE0000000000002ADF000081
:1007F000000000082A0000100000000005000000B2
:10080000000000188000FF120000001091A0B00945
:10081000000000082C80010D000000082D000009D8
:100820000000001091D40000000000082D80010796
:10083000000000188000FFAF0000001880000010CA
:1008400000000008AC000001000000188000000B50
:10085000000000000380B0000000000B2FDF00024A
:10086000000000002C0040000000001091D40000A7
:100870000000000806005555000000188000FF9E8B
:100880000000001880000030000000188000000602
:100890000000000B2FDF0002000000002C000E0003
:1008A000000000082A000007000000080500555558
:1008B000000000188000FEFC00000000068200001E
:1008C0000000000C298000010000000C1F800001C6
:1008D000000000100CE70007000000090562FFFFA0
:1008E00000000010BA6C1405000000002ADF0000B0
:1008F0000000000021000000000000082A000005A0
:100900000000001091D40000000000082C80010CB1
:10091000000000082D0000080000000C31620018E3
:10092000000000082D800001000000188000FF90EA
:1009300000000018000D000000000010B1A0B00E73
:100940000000000B2FDF00020000000003D80000B1
:10095000000000002C2000000000001091D40000D6
:100960000000001880000014000000102C6200023B
:10097000000000188000000B0000000B2FDF0002B9
:10098000000000002C0700000000000C1F80000188
:100990000000001091DE00000000000005000000D3
:1009A000000000188000FEDE000000082C80010D11
:1009B000000000082D0000090000001091D4000084
:1009C000000000082D8001070000000C29800001B4
:1009D0000000000C1F8000010000001091DE0000EC
:1009E000000000002ADF0000000000082A00000AC2
:1009F0000000000005000000000000188000FED389
:100A00000000000005020000000000082C80010C1E
:100A1000000000082D000008000000082D800134AF
:100A2000000000000000000000000010205F000037
:100A3000000000082C800140000000082D00003C50
:100A4000000000082D80011C0000000000000000D4
:100A500000000010205F0000000000082C800080D3
:100A6000000000082D000000000000082D80010893
:100A700000000000000000000000001091DE0000F7
:100A800000000018000A00000000001091D40000CF
:100A9000000000080600AAAA000000188000FF5A03
:100AA0000000000C298000010000000C1F800001E4
:100AB000000000082A000009000000080500AAAA9A
:100AC000000000188000FEBA0000001091D4000061
:100AD0000000000806005555000000188000FF5275
:100AE0000000001091A03C0200000010B1E6620777
:100AF0000000000B2FDF0002000000002C3100007E
:100B0000000000092CB1007F000000082CD9000073
:100B1000000000082D000000000000082D80010DDD
:100B200000000010B1A8000600000010205F0000C7
:100B3000000000002C200000000000002CA7000096
:100B4000000000082D000010000000082D800108A2
:100B5000000000188000FF4B00000010B1A600103C
:100B600000000010001F00000000000F0F30000701
:100B7000000000000A600000000000000AE1000020
:100B80000000000F4B620008000000090B1600FF78
:100B9000000000000D620000000000090D1A00FFB7
:100BA00000000010073000030000000C0D1A0008C0
:100BB0000000000C0B1600080000000F4CE30018AA
:100BC000000000000C992C0000000004CC993400B7
:100BD000000000080F8000000000000C29800001C8
:100BE0000000000033310000000000082200001661
:100BF000000000002ADF0000000000082A00000CAE
:100C000000000010009F0000000000000F20000006
:100C10000000000C1F800001000000080500555571
:100C2000000000188000FE8E0000001091D400002B
:100C3000000000080600AAAA000000188000FF2695
:100C40000000000F4722000800000009070E000FF7
:100C500000000008070E00080000000802800001E4
:100C60000000000702851C000000000882850001CA
:100C70000000000002854C000000000742851C00B7
:100C800000000003C3AA52000000000003B10E00E0
:100C9000000000074B071C000000000F0F3000078A
:100CA0000000000F0A960003000000000A955C0097
:100CB000000000004A005A00000000000C960A00E4
:100CC000000000090C99FFFF000000080D00FFFF65
:100CD00000000010B1963202000000080F800005ED
:100CE00000000010B1A8000800000010205F000004
:100CF0000000000B2FDF0002000000002C2000008D
:100D0000000000002CA70000000000082D000010CB
:100D1000000000082D800108000000188000FF126C
:100D20000000000C2980000100000010001F0000DE
:100D30000000000C1F800001000000002ADF0000FE
:100D4000000000082A00000D000000080500AAAA03
:100D5000000000188000FE680000001091D4000020
:100D60000000000806005555000000188000FF0034
:100D70000000000C298000010000000C1F80000111
:100D8000000000082A000007000000080500555573
:100D9000000000188000FE60000000080305000449
:100DA0000000000683040C00000000080285020019
:100DB0000000000086050C0000000001860C0E00FB
:100DC00000000008020400040000000002041800F3
:100DD00000000000838718000000001800020000D7
:100DE00000000010B18000040000001F0303010098
:100DF00000000008050000FF0000001800020000CD
:100E0000000000002A00000000000010B1D4000023
:100E10000000000C298000010000000802540009B5
:100E2000000000092952003F0000001800040000E3
:100E30000000001880000010000000188000001161
:100E4000000000188000004B000000188000013CEA
:100E5000000000188000013B000000188000013AEB
:100E6000000000188000013A000000188000000017
:100E7000000000188000014D0000001880000136BD
:100E8000000000188000000C0000001880000152D3
:100E900000000018800001AC0000001880000080F5
:100EA00000000018800001070000001880000115F4
:100EB000000000002A000000000000188000FFEA87
:100EC000000000002A0000000000000C2980000043
:100ED0000000001020530000000000188000FFE612
:100EE000000000002A000000000000188000FFE45D
:100EF0000000000003820000000000188000FFDFF7
:100F0000000000010C161400000000008C181400F2
:100F10000000001091980003000000080C960002E9
:100F200000000010B1800003000000080C960001D2
:100F3000000000000C000000000000000D1900007F
:100F400000000010205600000000000C2BD700010C
:100F5000000000080F8000010000000000000000F9
:100F600000000010001F00000000000C6BD7000103
:100F700000000010011301F100000018000700003C
:100F800000000000050200000000001091963421CE
:100F900000000010205F0000000000002C1E000078
:100FA000000000082C800006000000082D0000064C
:100FB000000000082D800102000000000000000079
:100FC0000000001091DE0000000000000D61000034
:100FD00000000018000A00000000000005020000E8
:100FE000000000109196341600000010205F0000F1
:100FF0000000000009D80000000000002C1E0000C6
:10100000000000082C80010E000000082D00000ADE
:10101000000000082D800102000000000000000018
:101020000000001091DE0000000000000D620000D2
:10103000000000002C13000000000018000A00004F
:101040000000000005020000000000109196340925
:1010500000000010205F0000000000002C1E0000B7
:10106000000000082C800006000000082D00006A27
:10107000000000082D8001020000000000000000B8
:101080000000001091DE0000000000000D7A00005A
:1010900000000018000A00000000001091DE0000AF
:1010A00000000010001F00000000000C6BD70001C2
:1010B000000000002F80AA00000000002A000000AD
:1010C000000000000D61000000000000036200004D
:1010D000000000002C4000000000000002638C00B3
:1010E0000000000026460000000000080204001274
:1010F00000000010B906082E000000000F58000084
:10110000000000000A640000000000000AE5000082
:10111000000000090B66FFFF000000000C0000004B
:10112000000000000B800000000000080CC6001248
:10113000000000188000FFCA0000001020560000C8
:101140000000000C2BD70001000000080F800003F6
:10115000000000000000000000000010001F000060
:101160000000000C6BD700010000000827110012DE
:10117000000000006690000000000008A31B0012A1
:1011800000000010B198000600000010001F0000D1
:101190000000000C6BD7000100000010205600007A
:1011A0000000000C2BD70001000000080F80000495
:1011B0000000000822000003000000082C80000C42
:1011C000000000082D00000C00000010001F0000AF
:1011D0000000000C6BD70001000000002596000005
:1011E0000000000C298000000000000006660000DE
:1011F0000000000086611800000000090260000F76
:101200000000000F0204000200000010B60C0803EA
:101210000000000C1FBF00000000000C336600102F
:1012200000000000321400000000000032950000B1
:101230000000000573662C000000000031E32E0062
:10124000000000082D800010000000102053000056
:101250000000001091DE0000000000188000FF7602
:1012600000000000230000000000000925E6FFFF49
:10127000000000082200000B0000000C6952000072
:101280000000000C29800000000000102053000026
:10129000000000188000FF6F0000001091DE0000C9
:1012A00000000010001F00000000000C6BD70001C0
:1012B000000000002F80AA00000000002A000000AB
:1012C000000000002C400000000000082C800040BE
:1012D000000000082D000020000000082D80011CE7
:1012E00000000000000000000000001091DE00007F
:1012F0000000000F42EA001000000010004F000440
:1013000000000010B74692000000000802490012D9
:1013100000000010B5840A00000000000D6100000C
:1013200000000010BA66346D000000000362000087
:1013300000000010B8630C6B000000088305001269
:1013400000000010004F00020000000003490000F0
:101350000000000183068C000000000083C60C0022
:1013600000000010B1870010000000000B6E0000AC
:10137000000000188000FF50000000010669140002
:1013800000000010918C000200000008B4E9000188
:1013900000000010B1E92C5F0000000086692C00FD
:1013A00000000000020000000000000902EAFFFF48
:1013B00000000010000C00020000000002040A00FF
:1013C0000000000F460C00010000000F0285000124
:1013D00000000010918C01FC00000010B7040E56B4
:1013E000000000002C400000000000000F40000042
:1013F000000000000D610000000000000A64000011
:10140000000000000AE50000000000090B66FFFF75
:10141000000000000C000000000000000B80000035
:10142000000000080C86001200000010205600008A
:101430000000000C2BD70001000000080F80000303
:101440000000000C2952000000000010001F0000E6
:101450000000000C6BD700010000000827110012EB
:10146000000000006690000000000000264600001A
:10147000000000002306000000000010B1980009E1
:1014800000000010001F00000000000C6BD70001DE
:1014900000000010205600000000000C2BD70001B7
:1014A000000000080F8000040000000000000000A1
:1014B00000000010001F00000000000C6BD70001AE
:1014C000000000003214000000000000329500000F
:1014D0000000000031E32E000000000573662C00C0
:1014E000000000002596000000000010B1870021D8
:1014F0000000000C298000000000000F0F6B0007A7
:10150000000000000D690000000000000A6C0000EF
:10151000000000000AED0000000000000B6E00005B
:10152000000000000B800000000000000C8700009D
:10153000000000188000FF18000000010C161400C5
:10154000000000008C181400000000080C96000138
:101550000000001091980002000000080C990001A2
:10156000000000000D190000000000000C00000049
:1015700000000010205600000000000C2BD70001D6
:10158000000000080F800001000000102053000040
:101590000000000C6952000100000010001F000054
:1015A0000000000C6BD700010000000022C58C0079
:1015B00000000000231200000000000027110000BE
:1015C000000000002690000000000010B8170E0375
:1015D0000000000C29800000000000188000FFEBD4
:1015E0000000000082970E0000000000A3120A0015
:1015F000000000082200001A000000082C80000CE7
:10160000000000082D00000C000000082D800010D4
:1016100000000010001F00000000000C6BD700014C
:10162000000000000D6E000000000003E7CF340052
:101630000000000C298000000000001091DE000076
:1016400000000010B1870007000000003614000001
:101650000000000036950000000000003716000072
:10166000000000082C800050000000082D00003011
:10167000000000082D80000C000000102053000026
:10168000000000188000FEF1000000002646000067
:1016900000000000230000000000000925E6FFFF15
:1016A000000000000B6E000000000003E7CF2C00DC
:1016B000000000082200001B0000000C695200001E
:1016C0000000000C298000000000001020530000E2
:1016D000000000188000FEE7000000002FD5000089
:1016E000000000002A00000000000010003F000C75
:1016F000000000000666000000000000866118007F
:1017000000000009026000F000000010B70C08089B
:10171000000000002C4000000000000C7366001068
:10172000000000082C800018000000082D000018A0
:10173000000000082D8000020000000C5FBF0000C8
:101740000000001091DE0000000000188000FED8AC
:10175000000000002FD50000000000002A0000005B
:10176000000000002C4000000000000C7366001018
:10177000000000082C800018000000082D00001850
:10178000000000082D8000020000000C5FBF000078
:101790000000001091DE0000000000082C80000313
:1017A000000000082D000003000000093060FFF079
:1017B000000000082D8000010000000C29800000BE
:1017C0000000001091DE0000000000082C80001ACC
:1017D000000000082D00001A000000003300000087
:1017E000000000082D800002000000003180000091
:1017F0000000001091DE0000000000082C80000CAA
:10180000000000082D00000C000000082D800004DE
:1018100000000010205300000000001091DE0000C6
:10182000000000188000FEBD000000188000FEBC13
:10183000000000002A00000000000010001F00004F
:101840000000000C6BD70001000000000F008000BA
:10185000000000080F80000700000018800000153D
:10186000000000000502000000000008220000093E
:1018700000000000286D00000000000029000000AA
:101880000000000F6568001000000003F66C940073
:1018900000000010B972A0040000000C73E70019EA
:1018A0000000000C21420004000000003BF6000094
:1018B0000000000C298000000000001020530000F0
:1018C00000000008220000080000000C6142000433
:1018D00000000018000A0000000000002A000000BC
:1018E00000000010001F00000000000C6BD700017A
:1018F0000000000F0F470007000000080F800008DD
:101900000000000C2980000000000010205300009F
:10191000000000188000FE9F0000001091DE000013
:10192000000000002FD5000000000010001F000084
:101930000000000C6BD700010000000033510000D4
:10194000000000002A00000000000010B1C60029BD
:101950000000000F0F500007000000000A600000A8
:10196000000000000AE100000000000F4B620008C8
:10197000000000090B1600FF0000000F4C62001071
:10198000000000000D620000000000090D1A00FFB9
:1019900000000010075000030000000C0D1A0008A2
:1019A0000000000C0B160008000000000CC6000030
:1019B000000000000B8000000000000006980000FE
:1019C00000000010205600000000000C2BD7000182
:1019D000000000080F8000030000001006C2000491
:1019E0000000000C29000002000000102642000246
:1019F0000000000C29520003000000082200000132
:101A000000000010001F00000000000C6BD7000158
:101A100000000000231B00000000000027111A0036
:101A200000000000669000000000000C2952000039
:101A300000000010B197320C0000000C298000005B
:101A40000000000006980000000000102053000075
:101A50000000000C295200030000000022C58C0089
:101A600000000010001F00000000000C6BD70001F8
:101A700000000010205600000000000C2BD70001D1
:101A8000000000080F800003000000188000FFEF36
:101A900000000010B1C8001300000010B1C6000320
:101AA0000000000C298000000000001020530000FE
:101AB0000000000C295200000000000C2952000315
:101AC0000000001006C200020000000C29520002B3
:101AD0000000000022C58C00000000002765000007
:101AE0000000000026E400000000000822000016AC
:101AF00000000010B1C600030000000023480000F1
:101B000000000010B1800005000000002348000024
:101B10000000000C298000000000000F0F5000079B
:101B200000000018800000120000000822000016CB
:101B30000000000C298000000000000030140000AC
:101B40000000000030950000000000100750000366
:101B5000000000090B1600FF000000090D1A00FF2D
:101B60000000000F31160008000000003162340050
:101B700000000003F162300000000010205F000050
:101B8000000000002C510000000000092CD1007F53
:101B9000000000082CD90000000000082D00000003
:101BA000000000082D80000C000000000000000074
:101BB0000000001091DE00000000001005C20003CC
:101BC0000000000033000000000000080F80000744
:101BD000000000102053000000000010001F000053
:101BE0000000000C6BD70001000000188000FE44CC
:101BF000000000002FD50000000000002A000000B7
:101C00000000000F0F50000700000010B1C60030A8
:101C10000000000F4742000800000009070E000FF7
:101C200000000008070E000800000010001F000060
:101C30000000000C6BD70001000000080900000143
:101C40000000000709121C0000000003CBCA92002C
:101C5000000000000B97A2000000000742171C00C4
:101C6000000000000B0400000000000F0A840003C5
:101C7000000000000A959C00000000004A009A0045
:101C80000000000882120001000000010C1708008B
:101C9000000000000C978C000000000002180000FB
:101CA000000000080D00FFFF000000080F80000684
:101CB0000000000C290000000000001006C2000413
:101CC0000000000C29520002000000102642000211
:101CD0000000000C2952000300000008220000014F
:101CE00000000010001F00000000000C6BD7000176
:101CF00000000010B197320D00000000231B00000F
:101D0000000000002711080000000000669000009D
:101D10000000000C298000000000000002180000F4
:101D200000000010205300000000000C29520003A6
:101D30000000000022C5360000000010001F000057
:101D40000000000C6BD70001000000080F800006A7
:101D5000000000188000FFF200000000231B0000BC
:101D6000000000002711080000000000669000003D
:101D700000000010B1C8000B0000000C298000001A
:101D800000000010205300000000000C2952000049
:101D90000000000C295200030000001006C20002DF
:101DA0000000000C295200020000000022C58C0037
:101DB00000000000276500000000000026E400008D
:101DC0000000000023480000000000082200001767
:101DD0000000000C2980000000000010001F00001F
:101DE0000000000C6BD70001000000102053000021
:081DF000000000188000FE0352
:00000001FF
/*
* This file contains firmware data derived from proprietary unpublished
* source code, Copyright (c) 2004 - 2009 Broadcom Corporation.
*
* Permission is hereby granted for the distribution of this firmware data
* in hexadecimal or equivalent format, provided this copyright notice is
* accompanying it.
*/
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册