1. 11 8月, 2011 1 次提交
    • J
      broadcom: Move the Broadcom drivers · adfc5217
      Jeff Kirsher 提交于
      Moves the drivers for Broadcom devices into
      drivers/net/ethernet/broadcom/ and the necessary Kconfig and Makefile
      changes.
      
      CC: Eilon Greenstein <eilong@broadcom.com>
      CC: Michael Chan <mchan@broadcom.com>
      CC: Matt Carlson <mcarlson@broadcom.com>
      CC: Gary Zambrano <zambrano@broadcom.com>
      CC: "Maciej W. Rozycki" <macro@linux-mips.org>
      Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
      adfc5217
  2. 22 7月, 2011 1 次提交
  3. 15 7月, 2011 1 次提交
    • A
      bnx2x: Multiple concurrent l2 traffic classes · 6383c0b3
      Ariel Elior 提交于
      Overview:
       Support mapping of priorities to traffic classes and
       traffic classes to transmission queues ranges in the net device.
       The queue ranges are (count, offset) pairs relating to the txq
       array.
       This can be done via DCBX negotiation or by kernel.
       As a result Enhanced Transmission Selection (ETS) and Priority Flow
       Control (PFC) are supported between L2 network traffic classes.
      
       Mapping:
       This patch uses the netdev_set_num_tc, netdev_set_prio_tc_map and
       netdev_set_tc_queue functions to map priorities to traffic classes
       and traffic classes to transmission queue ranges.
       This mapping is performed by bnx2x_setup_tc function which is
       connected to the ndo_setup_tc.
       This function is always called at nic load where by default it
       maps all priorities to tc 0, and it may also be called by the
       kernel or by the bnx2x upon DCBX negotiation to modify the mapping.
      
       rtnl lock:
       When the ndo_setup_tc is called at nic load or by kernel the rtnl
       lock is already taken. However, when DCBX negotiation takes place
       the lock is not taken. The work is therefore scheduled to be
       handled by the sp_rtnl task.
      
       Fastpath:
       The fastpath structure of the bnx2x which was previously used
       to hold the information of one tx queue and one rx queue was
       redesigned to represent multiple tx queues, one for each traffic
       class.
       The transmission queue supplied in the skb by the kernel can no
       longer be interpreted as a straightforward index into the fastpath
       structure array, but it must rather be decoded to the appropriate
       fastpath index and the tc within that fastpath.
      
       Slowpath:
       The bnx2x's queue object was redesigned to accommodate multiple
       transmission queues. The queue object's state machine was enhanced
       to allow opening multiple transmission-only connections on top of
       the regular tx-rx connection.
      
       Firmware:
       This feature relies on the tx-only queue feature introduced in the
       bnx2x 7.0.23 firmware and the FW likewise must have the bnx2x multi
       cos support.
      Signed-off-by: NAriel Elior <ariele@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6383c0b3
  4. 15 6月, 2011 2 次提交
  5. 06 5月, 2011 1 次提交
  6. 28 2月, 2011 1 次提交
  7. 10 1月, 2011 1 次提交
  8. 07 10月, 2010 2 次提交
  9. 28 7月, 2010 1 次提交
  10. 13 8月, 2009 1 次提交
  11. 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
  12. 10 3月, 2009 1 次提交
  13. 03 3月, 2009 2 次提交
  14. 16 2月, 2009 5 次提交
  15. 04 11月, 2008 1 次提交
  16. 14 8月, 2008 2 次提交
  17. 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
  18. 13 6月, 2008 1 次提交
  19. 29 2月, 2008 1 次提交
  20. 29 1月, 2008 1 次提交