forked from luck/tmp_suning_uos_patched
94a78b79cb
>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> |
||
---|---|---|
.. | ||
3com | ||
acenic | ||
adaptec | ||
advansys | ||
av7110 | ||
bnx2 | ||
cis | ||
cpia2 | ||
cxgb3 | ||
dabusb | ||
dsp56k | ||
e100 | ||
edgeport | ||
emi26 | ||
emi62 | ||
ess | ||
kaweth | ||
keyspan | ||
keyspan_pda | ||
korg | ||
myricom | ||
ositech | ||
qlogic | ||
sb16 | ||
sun | ||
tehuti | ||
tigon | ||
ttusb-budget | ||
vicam | ||
yam | ||
yamaha | ||
.gitignore | ||
atmsar11.HEX | ||
bnx2x-e1-4.8.53.0.fw.ihex | ||
bnx2x-e1h-4.8.53.0.fw.ihex | ||
ihex2fw.c | ||
intelliport2.bin.ihex | ||
Makefile | ||
mts_cdma.fw.ihex | ||
mts_edge.fw.ihex | ||
mts_gsm.fw.ihex | ||
README.AddingFirmware | ||
ti_3410.fw.ihex | ||
ti_5052.fw.ihex | ||
tr_smctr.bin.ihex | ||
WHENCE | ||
whiteheat_loader_debug.HEX | ||
whiteheat_loader.HEX | ||
whiteheat.HEX |
DO NOT ADD FIRMWARE TO THIS DIRECTORY. ====================================== This directory is only here to contain firmware images extracted from old device drivers which predate the common use of request_firmware(). As we update those drivers to use request_firmware() and keep a clean separation between code and firmware, we put the extracted firmware here. This directory is _NOT_ for adding arbitrary new firmware images. The place to add those is the separate linux-firmware repository: git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git That repository contains all these firmware images which have been extracted from older drivers, as well various new firmware images which we were never permitted to include in a GPL'd work, but which we _have_ been permitted to redistribute under separate cover. To submit firmware to that repository, please send either a git binary diff or preferably a git pull request to: David Woodhouse <dwmw2@infradead.org> Your commit should include an update to the WHENCE file clearly identifying the licence under which the firmware is available, and that it is redistributable. If the licence is long and involved, it's permitted to include it in a separate file and refer to it from the WHENCE file. Ideally, your commit should contain a Signed-Off-By: from someone authoritative on the licensing of the firmware in question (i.e. from within the company that owns the code).