aboutsummaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
authorVladislav Zolotarov <vladz@broadcom.com>2009-04-27 06:27:43 -0400
committerDavid S. Miller <davem@davemloft.net>2009-04-27 06:27:43 -0400
commit94a78b79cb5f14c09a42522738d6694c6a1cdd20 (patch)
tree17bb6b92c16c91db0398baafa04996c958a8d494 /firmware
parentec9323f417e803f07a99a15a9cfb207662ad2c55 (diff)
bnx2x: Separated FW from the source.
>From now on FW will be downloaded from the binary file using request_firmware. There will be different files for every supported chip. Currently 57710 (e1) and 57711 (e1h). File names have the following format: bnx2x-<chip version>-<FW version>.fw. ihex versions of current FW files are submitted in the next patch. Each binary file has a header in the following format: struct bnx2x_fw_file_section { __be32 len; __be32 offset; } struct bnx2x_fw_file_hdr { struct bnx2x_fw_file_section init_ops; struct bnx2x_fw_file_section init_ops_offsets; struct bnx2x_fw_file_section init_data; struct bnx2x_fw_file_section tsem_int_table_data; struct bnx2x_fw_file_section tsem_pram_data; struct bnx2x_fw_file_section usem_int_table_data; struct bnx2x_fw_file_section usem_pram_data; struct bnx2x_fw_file_section csem_int_table_data; struct bnx2x_fw_file_section csem_pram_data; struct bnx2x_fw_file_section xsem_int_table_data; struct bnx2x_fw_file_section xsem_pram_data; struct bnx2x_fw_file_section fw_version; } Each bnx2x_fw_file_section contains the length and the offset of the appropriate section in the binary file. Values are stored in the big endian format. Data types of arrays: init_data __be32 init_ops_offsets __be16 XXsem_pram_data u8 XXsem_int_table_data u8 init_ops struct raw_op { u8 op; __be24 offset; __be32 data; } fw_version u8 >From now boundaries of a specific initialization stage are stored in init_ops_offsets array instead of being defined by separate macroes. The index in init_ops_offsets is calculated by BLOCK_OPS_IDX macro: #define BLOCK_OPS_IDX(block, stage, end) \ (2*(((block)*STAGE_IDX_MAX) + (stage)) + (end)) Security: In addition to sanity check of array boundaries bnx2x will check a FW version. Additional checks might be added in the future. Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'firmware')
-rw-r--r--firmware/Makefile1
-rw-r--r--firmware/WHENCE20
2 files changed, 21 insertions, 0 deletions
diff --git a/firmware/Makefile b/firmware/Makefile
index 25200d106ee8..1c670e0c0448 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -32,6 +32,7 @@ fw-shipped-$(CONFIG_ADAPTEC_STARFIRE) += adaptec/starfire_rx.bin \
32 adaptec/starfire_tx.bin 32 adaptec/starfire_tx.bin
33fw-shipped-$(CONFIG_ATARI_DSP56K) += dsp56k/bootstrap.bin 33fw-shipped-$(CONFIG_ATARI_DSP56K) += dsp56k/bootstrap.bin
34fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw 34fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw
35fw-shipped-$(CONFIG_BNX2X) += bnx2x-e1-4.8.53.0.fw bnx2x-e1h-4.8.53.0.fw
35fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-4.6.17.fw \ 36fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-4.6.17.fw \
36 bnx2/bnx2-rv2p-09-4.6.15.fw \ 37 bnx2/bnx2-rv2p-09-4.6.15.fw \
37 bnx2/bnx2-mips-06-4.6.16.fw \ 38 bnx2/bnx2-mips-06-4.6.16.fw \
diff --git a/firmware/WHENCE b/firmware/WHENCE
index 4c52984a8319..c1e9c5ab694c 100644
--- a/firmware/WHENCE
+++ b/firmware/WHENCE
@@ -618,6 +618,26 @@ Found in hex form in kernel source.
618 618
619-------------------------------------------------------------------------- 619--------------------------------------------------------------------------
620 620
621Driver: bnx2x: Broadcom Everest
622
623File: bnx2x-e1-4.8.53.0.fw.ihex
624File: bnx2x-e1h-4.8.53.0.fw.ihex
625
626License:
627 Copyright (c) 2007-2009 Broadcom Corporation
628
629 This file contains firmware data derived from proprietary unpublished
630 source code, Copyright (c) 2007-2009 Broadcom Corporation.
631
632 Permission is hereby granted for the distribution of this firmware data
633 in hexadecimal or equivalent format, provided this copyright notice is
634 accompanying it.
635
636
637Found in hex form in kernel source.
638
639--------------------------------------------------------------------------
640
621Driver: BNX2 - Broadcom NetXtremeII 641Driver: BNX2 - Broadcom NetXtremeII
622 642
623File: bnx2/bnx2-mips-06-4.6.16.fw 643File: bnx2/bnx2-mips-06-4.6.16.fw