aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/bnx2.h
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2009-04-04 19:51:14 -0400
committerDavid S. Miller <davem@davemloft.net>2009-04-04 19:51:14 -0400
commit57579f7629a3d46c307405fbd2ea6bdb650d692f (patch)
treec407da542bfa50989bfc4f41daf7c1a181207d93 /drivers/net/bnx2.h
parent5d4d9e8ad6c646c4811bf0049df761dee6affc3d (diff)
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: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2.h')
-rw-r--r--drivers/net/bnx2.h71
1 files changed, 35 insertions, 36 deletions
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h
index 704cbbcbf97..5b570e17c83 100644
--- a/drivers/net/bnx2.h
+++ b/drivers/net/bnx2.h
@@ -6885,6 +6885,8 @@ struct bnx2 {
6885 6885
6886 u32 idle_chk_status_idx; 6886 u32 idle_chk_status_idx;
6887 6887
6888 const struct firmware *mips_firmware;
6889 const struct firmware *rv2p_firmware;
6888}; 6890};
6889 6891
6890#define REG_RD(bp, offset) \ 6892#define REG_RD(bp, offset) \
@@ -6915,44 +6917,41 @@ struct cpu_reg {
6915 u32 mips_view_base; 6917 u32 mips_view_base;
6916}; 6918};
6917 6919
6918struct fw_info { 6920struct bnx2_fw_file_section {
6919 const u32 ver_major; 6921 __be32 addr;
6920 const u32 ver_minor; 6922 __be32 len;
6921 const u32 ver_fix; 6923 __be32 offset;
6922
6923 const u32 start_addr;
6924
6925 /* Text section. */
6926 const u32 text_addr;
6927 const u32 text_len;
6928 const u32 text_index;
6929 __le32 *text;
6930 u8 *gz_text;
6931 const u32 gz_text_len;
6932
6933 /* Data section. */
6934 const u32 data_addr;
6935 const u32 data_len;
6936 const u32 data_index;
6937 const u32 *data;
6938
6939 /* SBSS section. */
6940 const u32 sbss_addr;
6941 const u32 sbss_len;
6942 const u32 sbss_index;
6943
6944 /* BSS section. */
6945 const u32 bss_addr;
6946 const u32 bss_len;
6947 const u32 bss_index;
6948
6949 /* Read-only section. */
6950 const u32 rodata_addr;
6951 const u32 rodata_len;
6952 const u32 rodata_index;
6953 const u32 *rodata;
6954}; 6924};
6955 6925
6926struct bnx2_mips_fw_file_entry {
6927 __be32 start_addr;
6928 struct bnx2_fw_file_section text;
6929 struct bnx2_fw_file_section data;
6930 struct bnx2_fw_file_section rodata;
6931};
6932
6933struct bnx2_rv2p_fw_file_entry {
6934 struct bnx2_fw_file_section rv2p;
6935 __be32 fixup[8];
6936};
6937
6938struct bnx2_mips_fw_file {
6939 struct bnx2_mips_fw_file_entry com;
6940 struct bnx2_mips_fw_file_entry cp;
6941 struct bnx2_mips_fw_file_entry rxp;
6942 struct bnx2_mips_fw_file_entry tpat;
6943 struct bnx2_mips_fw_file_entry txp;
6944};
6945
6946struct bnx2_rv2p_fw_file {
6947 struct bnx2_rv2p_fw_file_entry proc1;
6948 struct bnx2_rv2p_fw_file_entry proc2;
6949};
6950
6951#define RV2P_P1_FIXUP_PAGE_SIZE_IDX 0
6952#define RV2P_BD_PAGE_SIZE_MSK 0xffff
6953#define RV2P_BD_PAGE_SIZE ((BCM_PAGE_SIZE / 16) - 1)
6954
6956#define RV2P_PROC1 0 6955#define RV2P_PROC1 0
6957#define RV2P_PROC2 1 6956#define RV2P_PROC2 1
6958 6957