1. 04 Jun, 2009 1 commit
  2. 14 May, 2009 2 commits
  3. 02 May, 2009 1 commit
  4. 27 Apr, 2009 1 commit
    • Vladislav Zolotarov's avatar
      bnx2x: Separated FW from the source. · 0eae2a4d
      Vladislav Zolotarov authored
      
      
      >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: default avatarVladislav Zolotarov <vladz@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0eae2a4d
  5. 23 Apr, 2009 1 commit
  6. 22 Apr, 2009 2 commits
  7. 21 Apr, 2009 1 commit
  8. 13 Apr, 2009 1 commit
  9. 07 Apr, 2009 2 commits
  10. 06 Apr, 2009 2 commits
  11. 04 Apr, 2009 2 commits
  12. 03 Apr, 2009 7 commits
  13. 30 Mar, 2009 3 commits
  14. 18 Mar, 2009 1 commit
  15. 13 Mar, 2009 1 commit
  16. 27 Feb, 2009 2 commits
  17. 12 Feb, 2009 1 commit
  18. 20 Jan, 2009 1 commit
  19. 16 Jan, 2009 2 commits
  20. 13 Jan, 2009 1 commit
  21. 07 Jan, 2009 1 commit
  22. 05 Jan, 2009 3 commits
  23. 26 Nov, 2008 1 commit