24 Jun, 2008

5 commits

  • The TPA stands for Transparent Packet Aggregation. When enabled, the FW
    aggregate in-order TCP packets according to the 4-tuple match and sends
    1 big packet to the driver. This packet is stored on an SGL in which
    each SGE is 1 page. The FW also implements a timeout algorithm and it
    honors all TCP flag, including the push flag as a trigger to halt
    aggregation.

    After receiving Ben Hutchings comments, we also added ethtool support,
    so now, thanks to Ben's patch, when forwarding is enabled, our
    aggregation is turned off using the LRO flags.

    Signed-off-by: Vladislav Zolotarov
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Vladislav Zolotarov
     
  • To avoid race conditions with link up/down and driver up/down - the
    statistics handling was re-written in a form of state machine.
    Also supporting statistics for 57711

    Signed-off-by: Yitchak Gertner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yitchak Gertner
     
  • 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: Eilon Greenstein
    Signed-off-by: David S. Miller

    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: Eilon Greenstein
    Signed-off-by: David S. Miller

    Eilon Greenstein
     
  • 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: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     

13 Jun, 2008

1 commit

  • I would like to thank Eliezer Tamir for writing and maintaining the
    driver for the past two years. I will take over maintaining the bnx2x
    driver from now on.

    Signed-off-by: Eilon Greenstein
    Signed-off-by: Eliezer Tamir
    Signed-off-by: David S. Miller

    Eilon Greenstein
     

29 Feb, 2008

7 commits

  • Several endianity corrections in start_xmit()

    Fixed TSO bug where packets were missing the TCP flags.

    Signed-off-by: Eliezer Tamir
    Signed-off-by: David S. Miller

    Eliezer Tamir
     
  • Fixed locking between fastpath and slowpath operations.

    Corrected order of traffic disabling to prevent race when going down
    under traffic.

    - first have the microcode drop all incoming packets
    - then do the slowpath stuff
    - only then reset the MAC

    Got rid of in_reset_task.

    Remove_one() and friends would deference a null pointer if init_one
    failed.

    Signed-off-by: Eliezer Tamir
    Signed-off-by: David S. Miller

    Eliezer Tamir
     
  • Errors were summed improperly, some stats were missing.

    Signed-off-by: Eliezer Tamir
    Signed-off-by: David S. Miller

    Eliezer Tamir
     
  • The configuration of RX filtering needed the following corrections:

    Drop flags need to be set per Rx queue.

    Have to tell the microcode to collect drop stats, and properly wait
    for them to complete when going down.

    Sometimes we failed to detect proper completion due to a logical error
    in the wait loop.

    Signed-off-by: Eliezer Tamir
    Signed-off-by: David S. Miller

    Eliezer Tamir
     
  • Properly protect PHY access between two devices on the same board with
    a HW lock.

    Use GPIO to clear all previous configurations before changing link
    parameters.

    Shut down the external PHY in case of fan failure.

    Reducing the MDC/MDIO clock to 2.5MHz due to problems with some
    devices.

    Resolve the flow control response according to autoneg with external
    PHY.

    Unmasking all PHY interrupts in single write to prevent a race in the
    interrupts order.

    LASI indication fixes to work with peculiarities of PHYs.

    Disable MAC RX to avoid a HW bug when closing the MAC under traffic.

    Disable parallel detection on HiGig due to HW limitation.

    Updating the shared memory structure to work with the current
    bootcode.

    Signed-off-by: Eliezer Tamir
    Signed-off-by: David S. Miller

    Eliezer Tamir
     
  • Correct PCI-E info printed by init_one()
    In one case it failed to free the netdev.

    Signed-off-by: Eliezer Tamir
    Signed-off-by: David S. Miller

    Eliezer Tamir
     
  • Signed-off-by: Eliezer Tamir
    Signed-off-by: David S. Miller

    Eliezer Tamir
     

29 Jan, 2008

1 commit