1. 21 Jul, 2009 2 commits
  2. 05 Jul, 2009 1 commit
  3. 27 Apr, 2009 1 commit
    • Vladislav Zolotarov's avatar
      bnx2x: Separated FW from the source. · 94a78b79
      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>
      94a78b79
  4. 10 Mar, 2009 1 commit
  5. 16 Feb, 2009 19 commits
  6. 19 Jan, 2009 2 commits
  7. 15 Jan, 2009 4 commits
  8. 03 Sep, 2008 1 commit
    • Eilon Greenstein's avatar
      bnx2x: Accessing un-mapped page · 437cf2f1
      Eilon Greenstein authored
      
      
      The allocated RX buffer size was 64 bytes bigger than the PCI mapped
      size with no good reason. If the packet was actually using the buffer up
      to its limit and if the last 64 bytes of the buffer crossed 4KB boundary
      then an unmapped PCI page was accessed. The fix is to use only one
      parameter for the buffer size - there is no need to differentiate
      between the buffer size and the PCI mapping size since the extra 64
      bytes can actually be used by the FW to align the Ethernet payload to
      64 bytes.
      
      Also updating the driver version and date
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      437cf2f1
  9. 25 Aug, 2008 1 commit
    • Eilon Greenstein's avatar
      bnx2x: Rx work check · 2772f903
      Eilon Greenstein authored
      
      
      The has Rx work check was wrong: when the FW was at the end of the page,
      the driver was already at the beginning of the next page. Since the
      check only validated that both driver and FW are pointing to the same
      place, it concluded that there is still work to be done. This caused
      some serious issues including long latency results on ping-pong test and
      lockups while unloading the driver in that condition.
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2772f903
  10. 13 Aug, 2008 8 commits