03 Dec, 2015

2 commits


27 Jun, 2013

2 commits

  • Root cause: When kernel crashes, On brocade 815/825 adapters,
    bfa IOC state machine and FW doesn't get a notification and
    hence are not cleanly shutdown. So registers holding driver/IOC
    state information are not reset back to valid disabled/parking
    values. This causes subsequent driver initialization to fail
    during kdump kernel boot.

    Fix description: during the initialization of first PCI function, reset
    corresponding register when unclean shutown is detect by reading chip
    registers. This will make sure that ioc/fw gets clean re-initialization.

    Signed-off-by: Vijaya Mohan Guvva
    Signed-off-by: James Bottomley

    Vijaya Mohan Guvva
     
  • On Xen kernels, if ATC (address translation cache) is enabled, the
    first PCIe DMA read from the adapter fails with an error. This is due to
    a bug ASIC, which leads to a failure of 1860 ports to be initialised.

    This patch includes the fix to disable Invalidated Tag Match Enable
    capability by setting the bit 26 of CHIP_MISC_PRG to 0, by default it is
    set to 1.

    Signed-off-by: Anil Gurumurthy
    Signed-off-by: Vijaya Mohan Guvva
    Signed-off-by: James Bottomley

    Vijaya Mohan Guvva
     

07 Oct, 2012

2 commits

  • - Made changes to check the flash controller status before IOC initialization.
    - Made changes to poll on the FLASH_STS_REG bit to check if the flash controller
    initialization is completed during the PLL init.

    Signed-off-by: Vijaya Mohan Guvva
    Signed-off-by: Krishna Gudipati
    Signed-off-by: James Bottomley

    Krishna Gudipati
     
  • - Add support to handle STOP/DISABLE events in the IOCFC state machine.
    - Made changes to bring the IOC down on a flash driver config read failure.
    - Added logic to clean the use count and fail sync registers during IOCFC init.

    Signed-off-by: Vijaya Mohan Guvva
    Signed-off-by: Krishna Gudipati
    Signed-off-by: James Bottomley

    Krishna Gudipati
     

28 Mar, 2012

1 commit


30 Jun, 2011

6 commits

  • - Introduced partitioning of the BFA resources.
    - Added h/w queue ID in CPE messages, firmware uses h/w queue ID
    from messages to pick a matching RME queue.
    - Added message header to bfa_reqq_produce(). h/w queue ID is set
    in the message header and firmware modules use h/w queue ID from
    message header instead of from cpqe event.
    - Made changes to allow using all 256 queues of Brocade-1860 asic.
    Previously only a single queue per queue group was used.
    - Added function tag to BFI message header. Only used by FC BFI
    messages. Used to translate host tag to firmware tag. bfa_lpuid()
    is changed to bfa_fn_lpu() that encodes both PCI function and port
    ID in BFI message header.

    Signed-off-by: Krishna Gudipati
    Signed-off-by: James Bottomley

    Krishna Gudipati
     
  • - If flash controller is halted unconditionally, this results in
    illegal write access to flash controller register domain. Since
    flash controller registers are only accessible once s_clk is started
    - added logic to check for WGN status and halt flash controller only
    if it is already running.
    - Added check to wait for flash controller halt to be completed before
    proceeding with s_clk/l_clk initializations.
    - Removed unnecessary reset logic for PMM 1T memory and moved memory
    initialization after flash access enable.
    - Disable Brocade-1860 asic MBOX interrupt before PLL initialization.
    - Remove reset enable for S_CLK/L_CLK after both PLL initializations
    are complete.

    Signed-off-by: Krishna Gudipati
    Signed-off-by: James Bottomley

    Krishna Gudipati
     
  • - Add logic to handle the case where PCI mapping goes away when
    IOCPF state machine is waiting for semaphore.
    - Added logic to unlock hw semaphore if the previos FW boot was
    from flash based and the current FW initialization attempt is from OS.
    - Added fix to update hbfails and hb_count stats during hwerror event.

    Signed-off-by: Krishna Gudipati
    Signed-off-by: James Bottomley

    Krishna Gudipati
     
  • - Added support for 16Gbps.
    - Added logic to flush pending mailbox command queue when IOC is disabled.
    - Fix to Halt the flash controller during fw initialization - since
    when asic blck is programmed flash controller's continuous access
    blocks f/w access to flash.
    - Added new asic based card types and modified IOC get card model routine.
    - Added PLL init fix to do LPU reset every time we do a memory
    initialization, since not doing so will cause LPU to be
    uninitialized during driver load.
    - Added fix to Halt flash controller before PLL initialization.

    Signed-off-by: Krishna Gudipati
    Signed-off-by: James Bottomley

    Krishna Gudipati
     
  • - Introduced IOC poll mechanism which replaces current interrupt
    based FW READY method.
    - The timer based poll routine in IOC will query the ioc_fwstate
    register to see if there is a state change in FW, and sends the READY event.
    - Bug fixes in the new asic PLL initialization.
    - Added logic to handle CPE/RME queue interrupts before iocfc config done.
    1. Use the queue_process flag to see if iocfc configuration is done
    in INTX mode.
    2. Split the MSIX handler installation in two - one for IOC intr
    handler and the other for cpe/rme queue handler - and delay
    assigning queue handlers until iocfc config is done in MSIX mode.

    Signed-off-by: Krishna Gudipati
    Signed-off-by: James Bottomley

    Krishna Gudipati
     
  • - Added support for Brocade-1860 Fabric Adapter.
    - Made changes to support single firmware image per asic type.
    - Combined bfi_cbreg.h and bfi_ctreg.h defines into bfi_reg.h with
    only minimal defines used by host.
    - Added changes to setup CPE/RME Queue register offsets based on
    firmware response.
    - Removed queue register offset initializations and added register offsets
    to BFI config response message.
    - Added Brocade-1860 asic specific interrupt status definitions and
    mailbox interfaces.

    Signed-off-by: Krishna Gudipati
    Signed-off-by: James Bottomley

    Krishna Gudipati
     

25 May, 2011

1 commit

  • Root cause: When kernel crashes, bfa IOC state machine and FW doesn't get
    a notification and hence are not cleanly shutdown. So registers holding
    driver/IOC state information are not reset back to valid disabled/parking
    values. This causes subsequent driver initialization to hang during kdump
    kernel boot.

    Fix description: during the initialization of first PCI function, reset
    corresponding register when unclean shutown is detect by reading chip
    registers. This will make sure that ioc/fw gets clean re-initialization.

    Signed-off-by: Jing Huang
    Signed-off-by: James Bottomley

    Jing Huang
     

31 Dec, 2010

2 commits


22 Dec, 2010

4 commits


26 Oct, 2010

3 commits

  • This patch addresses the comments from Randy Dunlap (Randy.Dunlap@oracle.com)
    regarding comment blocks that begining with "/**". bfa driver comments
    currently do not follow kernel-doc convention, we hence replace all
    /** with /* and **/ with */.

    Signed-off-by: Jing Huang
    Signed-off-by: James Bottomley

    Jing Huang
     
  • This patch replaces register access functions and macros with the the ones
    provided by linux.

    Signed-off-by: Jing Huang
    Signed-off-by: James Bottomley

    Jing Huang
     
  • This patch removes os wrapper and unused functions.
    bfa_os_assign(), bfa_os_memset(), bfa_os_memcpy(), bfa_os_udelay()
    bfa_os_vsprintf(), bfa_os_snprintf(), and bfa_os_get_clock() are replaced with
    direct assignment or native linux functions. Some unused functions related to VF
    (Vitual fabric) are also removed.

    Signed-off-by: Jing Huang
    Signed-off-by: James Bottomley

    Jing Huang
     

17 Sep, 2010

1 commit


28 Jul, 2010

2 commits

  • Clear PSS memory reset that is set as part of power-on-reset (pci reset).
    Complete PMM memory reset before BISTR start. Clear EDRAM BISTR start bit
    after fixed delay. BISTR DONE bit status is not getting set. Use a fixed
    1ms delay for BISTR now. Expose PMM IT memory definitions to host.

    Signed-off-by: Jing Huang
    Signed-off-by: James Bottomley

    Jing Huang
     
  • This patch enables support of new mezzanine cards for HP and IBM blade server.

    - Add new pciids for HP and IBM mezzanine card.
    - Add a new firmware image for HP mezzanine card, which is running in
    FC only mode. Rename firmware image to reflect the difference. Change the
    firmware download code accordingly for the above changes.

    Signed-off-by: Jing Huang
    Signed-off-by: James Bottomley

    Jing Huang
     

07 Mar, 2010

5 commits