Search code examples
linuxsan

QLogic HBA network card init firmware fail


After starting the server, the HBA network card cannot initialize the firmware.

[root@compute8 ~]# dmesg | grep qla2xxx
[    2.919912] qla2xxx [0000:00:00.0]-0005: : QLogic Fibre Channel HBA Driver: 10.02.06.200-k.
[    2.922762] Warning: Deprecated Hardware is detected: qla2xxx:2031:1077 @ 0000:3b:00.0 will not be maintained in a future major release and may be disabled
[    2.928626] qla2xxx [0000:00:00.0]-011c: : MSI-X vector count: 32.
[    2.931519] qla2xxx [0000:00:00.0]-001d: : Found an ISP2031 irq 83 iobase 0x0000000036a45c68.
[    3.057038] qla2xxx [0000:3b:00.0]-0075:8: ZIO mode 6 enabled; timer delay (200 us).
[    3.060203] qla2xxx [0000:3b:00.0]-ffff:8: FC4 priority set to NVMe
[    4.971121] qla2xxx [0000:3b:00.0]-00d2:8: Init Firmware **** FAILED ****.
[    4.974362] qla2xxx [0000:3b:00.0]-00d6:8: Failed to initialize adapter - Adapter flags 2.
[    4.983547] Warning: Deprecated Hardware is detected: qla2xxx:2031:1077 @ 0000:3b:00.1 will not be maintained in a future major release and may be disabled
[    4.989622] qla2xxx [0000:00:00.0]-011c: : MSI-X vector count: 32.
[    4.992605] qla2xxx [0000:00:00.0]-001d: : Found an ISP2031 irq 83 iobase 0x000000009c44281d.
[    5.056118] qla2xxx [0000:3b:00.1]-0075:8: ZIO mode 6 enabled; timer delay (200 us).
[    5.059061] qla2xxx [0000:3b:00.1]-ffff:8: FC4 priority set to NVMe
[    6.770143] qla2xxx [0000:3b:00.1]-00d2:8: Init Firmware **** FAILED ****.
[    6.773060] qla2xxx [0000:3b:00.1]-00d6:8: Failed to initialize adapter - Adapter flags 2.

[root@compute8 ~]# ls /lib/firmware/ | grep '_fw.bin'
ql2100_fw.bin
ql2200_fw.bin
ql2300_fw.bin
ql2322_fw.bin
ql2400_fw.bin
ql2500_fw.bin

[root@compute8 ~]# lspci -vvv |grep -i -e fib -e hba
        Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004
        Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004
0000:3b:00.0 Fibre Channel: QLogic Corp. ISP8324-based 16Gb Fibre Channel to PCI Express Adapter (rev 02)
                Product Name: QLE2672 QLogic 2-port 16Gb Fibre Channel Adapter
0000:3b:00.1 Fibre Channel: QLogic Corp. ISP8324-based 16Gb Fibre Channel to PCI Express Adapter (rev 02)
                Product Name: QLE2672 QLogic 2-port 16Gb Fibre Channel Adapter


[root@compute8 ~]# lspci -v -s 3b:00.0
0000:3b:00.0 Fibre Channel: QLogic Corp. ISP8324-based 16Gb Fibre Channel to PCI Express Adapter (rev 02)
        Subsystem: QLogic Corp. Device fb02
        Physical Slot: 7-1
        Flags: fast devsel, IRQ 83, NUMA node 0
        Memory at 382ffff0a000 (64-bit, prefetchable) [size=8K]
        Memory at 382ffff04000 (64-bit, prefetchable) [size=16K]
        Memory at 382fffe00000 (64-bit, prefetchable) [size=1M]
        Expansion ROM at e0640000 [disabled] [size=256K]
        Capabilities: [44] Power Management version 3
        Capabilities: [4c] Express Endpoint, MSI 00
        Capabilities: [88] Vital Product Data
        Capabilities: [90] MSI-X: Enable- Count=32 Masked-
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [154] Alternative Routing-ID Interpretation (ARI)
        Capabilities: [1b0] Secondary PCI Express
        Kernel modules: qla2xxx

[root@compute8 ~]# lsmod | grep qla2xxx
qla2xxx               974848  0
nvme_fc                53248  1 qla2xxx
scsi_transport_fc      81920  1 qla2xxx

[root@compute8 ~]# modinfo -a qla2xxx
QLogic Corporation

[root@compute8 ~]# modinfo -d qla2xxx
QLogic Fibre Channel HBA Driver

[root@compute8 ~]# modinfo -l qla2xxx
GPL

[root@compute8 ~]# modinfo -d qla2xxx
QLogic Fibre Channel HBA Driver

[root@compute8 ~]# modinfo qla2xxx | grep version
version:        10.02.06.200-k

[root@compute8 ~]# modinfo -k `uname -r` -n qla2xxx
/lib/modules/4.18.0-372.26.1.el8_6.x86_64/kernel/drivers/scsi/qla2xxx/qla2xxx.ko.xz

[root@compute8 ~]# modprobe --show-depends qla2xxx
insmod /lib/modules/4.18.0-372.26.1.el8_6.x86_64/kernel/drivers/scsi/scsi_transport_fc.ko.xz
insmod /lib/modules/4.18.0-372.26.1.el8_6.x86_64/kernel/block/t10-pi.ko.xz
insmod /lib/modules/4.18.0-372.26.1.el8_6.x86_64/kernel/drivers/nvme/host/nvme-core.ko.xz
insmod /lib/modules/4.18.0-372.26.1.el8_6.x86_64/kernel/drivers/nvme/host/nvme-fabrics.ko.xz
insmod /lib/modules/4.18.0-372.26.1.el8_6.x86_64/kernel/drivers/nvme/host/nvme-fc.ko.xz
insmod /lib/modules/4.18.0-372.26.1.el8_6.x86_64/kernel/drivers/scsi/qla2xxx/qla2xxx.ko.xz

Installed the recommended utility QConvergeConsole CLI - Version 2.4.0 to see information about the card and ports (Menu item 1 is selected). There is no information on the card.

QConvergeConsole

       CLI - Version 2.4.0 (Build 20)

   Main Menu

   1: Adapter Information
   2: Adapter Configuration
   3: Adapter Updates
   4: Adapter Diagnostics
   5: Monitoring
   6: Refresh
   7: Help
   8: Exit

       Please Enter Selection: 1

       QConvergeConsole

       CLI - Version 2.4.0 (Build 20)

   Adapter Type Selection

       (p or 0: Previous Menu; m or 98: Main Menu; ex or 99: Quit)
       Please Enter Selection:

I found the following table:

ISP 21XX — ql2100_fw.bin
ISP 22XX — ql2200_fw.bin
ISP 2300 — ql2300_fw.bin
ISP 2322 — ql2322_fw.bin
ISP 24XX — ql2400_fw.bin
ISP 25XX — ql2500_fw.bin
ISP 2031 — ql2600_fw.bin
ISP 27XX — ql2700_fw.bin 

As I understood, for my card with the ISP 2031 chip I need ql2600_fw.bin. In the support section of the site https://www.marvell.com/support/downloads.html looked through all the archives for QLE2672 cards, I found nothing. Tried systems RHEL 8.4, AlmaLinux 8.4/8.6, Centos 7.9/8.3 the result is the same.


Solution

  • A solution to my problem:

    Download kernel-firmware-qlogic and unpack. Copy the firmware file and restart the qla2xxx module.

    # wget https://rpmfind.net/linux/opensuse/tumbleweed/repo/oss/noarch/kernel-firmware-qlogic-20220902-1.1.noarch.rpm
    # rpm2cpio kernel-firmware-qlogic-20220902-1.1.noarch.rpm | cpio -idmv
    # unxz ./usr/lib/firmware/ql2600_fw.bin.xz
    # cp ./usr/lib/firmware/ql2600_fw.bin  /lib/firmware/
    # modprobe -r qla2xxx
    # vi /etc/modprobe.d/qla2xxx.conf
    options qla2xxx ql2xfwloadbin=2
    # modprobe qla2xxx
    # dmesg | grep qla2xxx
    [ 3651.498294] qla2xxx [0000:3b:00.1]-0075:18: ZIO mode 6 enabled; timer delay (200 us).
    [ 3651.498826] qla2xxx [0000:3b:00.1]-ffff:18: FC4 priority set to NVMe
    [ 3652.628291] qla2xxx [0000:3b:00.1]-500a:18: LOOP UP detected (16 Gbps).
    [ 3652.797555] scsi host18: qla2xxx
    [ 3652.845337] qla2xxx [0000:3b:00.1]-00fb:18: QLogic QLE2672 - QLE2672 QLogic 2-port 16Gb Fibre Channel Adapter.
    [ 3652.845959] qla2xxx [0000:3b:00.1]-00fc:18: ISP2031: PCIe (8.0GT/s x8) @ 0000:3b:00.1 hdma+ host#=18 fw=8.04.00 (d0d5).
    

    Check:

    # qaucli
    
    QConvergeConsole
    
    FC Adapter Information
    
        1: FC Adapter Information
        2: FC Port Information
        3: FC VPD Information
        4: FC Target/LUN Information
        5: FC Flash Information
    
    
     (p or 0: Previous Menu; m or 98: Main Menu; ex or 99: Quit)
     Please Enter Selection: 1
    
     QConvergeConsole
    
     CLI - Version 2.4.0 (Build 20)
    
        Adapter Information
    
         1: HBA Model: QLE2672 SN: BFE1501K49172
              Port   1 WWPN: 21-00-00-0E-1E-C2-65-E8 Online 
              Port   2 WWPN: 21-00-00-0E-1E-C2-65-E9 Online