14 Aug, 2008

8 commits

  • Spelling mistakes
    Spelling has to L's in it...

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

    Eilon Greenstein
     
  • Pause settings
    - 1G pause was not working due to missing write to the emac block
    (TX_MODE_FLOW_EN)
    - The flow control should use the negotiated result (after autoneg) so
    we should save both the requested autoneg and the result
    - The HW credits with flow control at 1G speed were not optimized and
    caused low throughput
    - It is recommended to turn off flow control if the MTU is bigger than
    5000B due to internal buffers size

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • Link order with external PHY
    When external PHY exists (second chip with the PHY to translate to
    another physical medium) the link with the eternal PHY and the network
    should be established before setting the link between the 5771x and the
    PHY. This is the right order and it is important when using autoneg -
    the link to the network should use the autoneg and the link between the
    two chips should be forced to the network result.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • PBA Table Page Alignment Workaround
    The PBA table starts on the middle of the page and that's causing very
    low performance with virtualization. The solution is not to update via
    the BAR directly but via chip access to the same memory

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

    Eilon Greenstein
     
  • HW attention lock
    Making sure that only one function will handle the HW attention. This
    makes the device parameter aeu_mask redundant so it is removed

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

    Eilon Greenstein
     
  • HW lock mechanism
    Enhancing the HW lock to work per function and not only per port - this
    is needed for the next patch that protects races over HW attention
    detection between the different functions. At this chance, changing the
    functions names to be more inline with the current naming convention

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

    Yitchak Gertner
     
  • Load/Unload under traffic
    Few issues were found when loading and unloading under traffic:
    - When receiving Tx interrupt call netif_wake_queue if the queue is
    stopped but the state is open
    - Check that interrupts are enabled before doing anything else on the
    msix_fp_int function
    - In nic_load, enable the interrupts only when needed and ready for it
    - Function stop_leading returns status since it can fail
    - Add 1ms delay when unloading the driver to validate that there are no
    open transactions that already started by the FW
    - Splitting the "has work" function into Tx and Rx so the same function
    will be used on unload and interrupts
    - Do not request for WoL if only resetting the device (save the time
    that it takes the FW to set the link after reset)
    - Fixing the device reset after iSCSI boot and before driver load - all
    internal buffers must be cleared before the driver is loaded

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

    Vladislav Zolotarov
     
  • Statistics
    - Making sure that each drop is accounted for in the driver statistics
    - Clearing the FW statistics when driver is loaded to prevent
    inconsistency with HW statistics
    - Once error is detected (bnx2x_panic_dump), stop the statistics
    before other actions (currently it is stopped last and can corrupt
    the data) - Adding HW checksum error counter to the statistics
    - Removing unused variable stats_ticks
    - Using macros instead of magic numbers to indicate which statistics are
    shared per port and which are per function

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

    Yitchak Gertner
     

24 Jun, 2008

2 commits

  • 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
     
  • 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
     

29 Feb, 2008

1 commit

  • 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
     

29 Jan, 2008

1 commit