1. 27 4月, 2009 1 次提交
    • V
      bnx2x: Separated FW from the source. · 94a78b79
      Vladislav Zolotarov 提交于
      >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: NVladislav Zolotarov <vladz@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      94a78b79
  2. 10 3月, 2009 1 次提交
  3. 03 3月, 2009 2 次提交
  4. 16 2月, 2009 5 次提交
  5. 04 11月, 2008 1 次提交
  6. 14 8月, 2008 2 次提交
  7. 24 6月, 2008 3 次提交
    • E
      bnx2x: Add support for BCM57711 HW · 34f80b04
      Eilon Greenstein 提交于
      Supporting the 57711 and 57711E - refers to in the code as E1H. The
      57710 is referred to as E1.
      
      To support the new members in the family, the bnx2x structure was
      divided to 3 parts: common, port and function. These changes caused some
      rearrangement in the bnx2x.h file.
      
      A set of accessories macros were added to make access to the bnx2x
      structure more readable
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      34f80b04
    • E
      bnx2x: New init infrastructure · ad8d3948
      Eilon Greenstein 提交于
      This new initialization code supports the 57711 HW. It also supports
      the emulation and FPGA for the 57711 and 57710 initializations values
      (very small amount of code which is very helpful in the lab - less
      than 30 lines).
      
      The initialization is done via DMAE after the DMAE block is ready -
      before it is ready, some of the initialization is done via PCI
      configuration transactions (referred to as indirect write).  A mutex
      to protect the DMAE from being overlapped was added.  There are few
      new registers which needs to be initialized by SW - the full comment
      for those registers is added to the register file.  A place holder for
      the 57711 (referred to as E1H) microcode was added- the microcode
      itself is too big and it is split over the following 4 patches
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ad8d3948
    • Y
      bnx2x: New link code · c18487ee
      Yaniv Rosner 提交于
      New Link code:
      Moving all the link related code (including the calculations, the
      initialization of the MAC and PHY and the external PHY's code) into
      a separated file. The changes from the code that used to be part of
      bnx2x.c (now called bnx2x_main.c) are:
      - Using separate structures for link inputs and link outputs to clearly 
        identify what was configured and what is the outcome
      - Adding code to read external PHY FW version and print it as part of 
        ethtool -i
      - Adding code to upgrade external PHY FW from ethtool -E with special 
        magic number - Changing the link down indication to ERR level
      - Adding a lock on all PHY access to prevent an interrupt and 
        setting changes to overlap
      - Adding support for emulation and FPGA (small chunk of code that really 
        helps in the lab) - Adding support for 1G on BCM8706 PHY
      - Adding clear debug print incase of fan failure (the PHY type is now 
        "failure")
      Signed-off-by: NYaniv Rosner <yanivr@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c18487ee
  8. 13 6月, 2008 1 次提交
  9. 29 2月, 2008 1 次提交
  10. 29 1月, 2008 1 次提交