bnx2x in 4.6rc7 with FW 7.13.1.0 not present

From: Elliott, Robert (Persistent Memory)
Date: Mon May 09 2016 - 16:20:04 EST


Upgrading a system from kernel 4.2 to 4.6rc7, there is an extra 2 minute
delay while booting due to these problems:

[ 47.977221] bnx2x 0000:04:00.1: Direct firmware load for bnx2x/bnx2x-e2-7.13.1.0.fw failed with error -2
[ 48.029997] bnx2x 0000:04:00.1: Falling back to user helper
[** ] A start job is running for Network Manager Wait Online (1min 27s / no limit)
[ 108.064132] bnx2x: [bnx2x_init_firmware:13472(eno50)]Can't load firmware file bnx2x/bnx2x-e2-7.13.1.0.fw
[ 108.119951] bnx2x: [bnx2x_func_hw_init:5785(eno50)]Error loading firmware
[ 108.156522] bnx2x: [bnx2x_nic_load:2727(eno50)]HW init failed, aborting
[* ] A start job is running for Network Manager Wait Online (1min 28s / no limit)

These are the versions in /lib/firmware/bnx2x (a RHEL installation):
bnx2x-e2-6.2.9.0.fw bnx2x-e1-7.8.19.0.fw bnx2x-e1h-7.8.2.0.fw
bnx2x-e1h-6.2.9.0.fw bnx2x-e1-7.8.2.0.fw bnx2x-e2-6.0.34.0.fw
bnx2x-e1-6.2.9.0.fw bnx2x-e1h-6.0.34.0.fw bnx2x-e2-6.2.5.0.fw
bnx2x-e1-6.0.34.0.fw bnx2x-e1h-6.2.5.0.fw bnx2x-e2-7.0.20.0.fw
bnx2x-e1-6.2.5.0.fw bnx2x-e1h-7.0.20.0.fw bnx2x-e2-7.0.23.0.fw
bnx2x-e1-7.0.20.0.fw bnx2x-e1h-7.0.23.0.fw bnx2x-e2-7.0.29.0.fw
bnx2x-e1-7.0.23.0.fw bnx2x-e1h-7.0.29.0.fw bnx2x-e2-7.10.51.0.fw
bnx2x-e1-7.0.29.0.fw bnx2x-e1h-7.10.51.0.fw bnx2x-e2-7.12.30.0.fw
bnx2x-e1-7.10.51.0.fw bnx2x-e1h-7.12.30.0.fw bnx2x-e2-7.2.16.0.fw
bnx2x-e1-7.12.30.0.fw bnx2x-e1h-7.2.16.0.fw bnx2x-e2-7.2.51.0.fw
bnx2x-e1-7.2.16.0.fw bnx2x-e1h-7.2.51.0.fw bnx2x-e2-7.8.17.0.fw
bnx2x-e1-7.2.51.0.fw bnx2x-e1h-7.8.17.0.fw bnx2x-e2-7.8.19.0.fw
bnx2x-e1-7.8.17.0.fw bnx2x-e1h-7.8.19.0.fw bnx2x-e2-7.8.2.0.fw

Reverting 5e091e7a "bnx2x: Utilize FW 7.13.1.0" avoids the problem.
I assume getting 7.13.1.0 from the linux-firmware project will also do so.

Could the driver fall back to an older firmware version more gracefully?

4.6rc7
======
[    0.000000] Linux version 4.6.0-rc7+ ... (gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) ) #7 SMP Mon May 9 14:22:53 EDT 2016
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.6.0-rc7+ root=/dev/mapper/rhel-root ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet efi=debug ... ignore_loglevel console=ttyS1,115200 console=tty0 LANG=en_US.UTF-8
...
[   16.143816] bnx2x: QLogic 5771x/578xx 10/20-Gigabit Ethernet Driver bnx2x 1.712.30-0 (2014/02/10)
[   16.144780] bnx2x 0000:04:00.0: msix capability found
[   16.144995] bnx2x 0000:04:00.0: part number 0-0-0-0
[   16.237686] bnx2x 0000:04:00.1: msix capability found
[   16.237859] bnx2x 0000:04:00.1: part number 0-0-0-0
[   16.525718] bnx2x 0000:04:00.1 eno50: renamed from eth2
[   16.648816] bnx2x 0000:04:00.0 eno49: renamed from eth1
...
[   47.333227] IPv6: ADDRCONF(NETDEV_UP): eno2: link is not ready
[   47.498841] IPv6: ADDRCONF(NETDEV_UP): eno2: link is not ready
[   47.530225] IPv6: ADDRCONF(NETDEV_UP): eno3: link is not ready
[   47.680716] IPv6: ADDRCONF(NETDEV_UP): eno3: link is not ready
[   47.714908] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
[   47.874737] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
[   47.907457] IPv6: ADDRCONF(NETDEV_UP): eno50: link is not ready
[   47.977221] bnx2x 0000:04:00.1: Direct firmware load for bnx2x/bnx2x-e2-7.13.1.0.fw failed with error -2
[   48.029997] bnx2x 0000:04:00.1: Falling back to user helper
[   51.104604] tg3 0000:02:00.1 eno2: Link is up at 1000 Mbps, full duplex
[   51.142403] tg3 0000:02:00.1 eno2: Flow control is off for TX and off for RX
[   51.180648] tg3 0000:02:00.1 eno2: EEE is disabled
[**    ] A start job is running for Network Manager Wait Online (1min 27s / no limit)
[  108.064132] bnx2x: [bnx2x_init_firmware:13472(eno50)]Can't load firmware file bnx2x/bnx2x-e2-7.13.1.0.fw
[  108.119951] bnx2x: [bnx2x_func_hw_init:5785(eno50)]Error loading firmware
[  108.156522] bnx2x: [bnx2x_nic_load:2727(eno50)]HW init failed, aborting
[*     ] A start job is running for Network Manager Wait Online (1min 28s / no limit)
[  108.435477] IPv6: ADDRCONF(NETDEV_CHANGE): eno2: link becomes ready
[  108.475065] IPv6: ADDRCONF(NETDEV_UP): eno49: link is not ready
[  108.556168] bnx2x 0000:04:00.0: Direct firmware load for bnx2x/bnx2x-e2-7.13.1.0.fw failed with error -2
[  108.608229] bnx2x 0000:04:00.0: Falling back to user helper
[  169.337933] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
[  169.338749] IPv6: ADDRCONF(NETDEV_UP): eno50: link is not ready
[  169.339772] IPv6: ADDRCONF(NETDEV_UP): eno49: link is not ready
[  169.340630] IPv6: ADDRCONF(NETDEV_UP): eno4: link is not ready
         Starting WPA Supplicant daemon...
[  OK  ] Started WPA Supplicant daemon.
         Starting Network Manager Script Dispatcher Service...
[  OK  ] Started Network Manager Script Dispatcher Service.
[  OK  ] Started Network Manager Wait Online.
         Starting LSB: Bring up/down networking...
[FAILED] Failed to start LSB: Bring up/down networking.
See 'systemctl status network.service' for details.
[  OK  ] Reached target Network.
         Starting Logout off all iSCSI sessions on shutdown...
         Starting Enable periodic update of entitlement certificates....
         Starting Dynamic System Tuning Daemon...
[  OK  ] Started CUPS Printing Service.
         Starting CUPS Printing Service...
         Starting Notify NFS peers of a restart...
[  OK  ] Started OpenSSH server daemon.
         Starting OpenSSH server daemon...
         Starting Postfix Mail Transport Agent...
[  OK  ] Reached target Network is Online.
[  OK  ] Started Logout off all iSCSI sessions on shutdown.
[  OK  ] Started Enable periodic update of entitlement certificates..
[  OK  ] Started Notify NFS peers of a restart.
[  OK  ] Started Dynamic System Tuning Daemon.
[  OK  ] Reached target Remote File Systems (Pre).
[  OK  ] Reached target Remote File Systems.
         Starting Virtualization daemon...
         Starting Permit User Sessions...
         Starting LSB: Starts the Spacewalk Daemon...
         Starting Crash recovery kernel arming...
         Starting Availability of block devices...
[  OK  ] Started Virtualization daemon.
[  OK  ] Started Permit User Sessions.
[  OK  ] Started LSB: Starts the Spacewalk Daemon.
[  OK  ] Started Availability of block devices.
         Starting Wait for Plymouth Boot Screen to Quit...
[  OK  ] Started Command Scheduler.
         Starting Command Scheduler...
[  OK  ] Started Job spooling tools.
         Starting Job spooling tools...
         Starting GNOME Display Manager...
[  176.171405] tun: Universal TUN/TAP device driver, 1.6
[  176.171406] tun: (C) 1999-2004 Max Krasnyansky <maxk@xxxxxxxxxxxx>
[  OK  ] Started Postfix Mail Transport Agent.
[  OK  ] Started GNOME Display Manager.
[  176.747016] virbr0: port 1(virbr0-nic) entered blocking state
[  176.778078] virbr0: port 1(virbr0-nic) entered disabled state
[  176.808991] device virbr0-nic entered promiscuous mode
[  177.007764] virbr0: port 1(virbr0-nic) entered blocking state
[  177.011281] virbr0: port 1(virbr0-nic) entered listening state
[  177.046773] virbr0: port 1(virbr0-nic) entered disabled state

Red Hat Enterprise Linux Server 7.2 (Maipo)
Kernel 4.6.0-rc7+ on an x86_64

s71 login:


4.2
===
[ 0.000000] Linux version 4.2.0-380.13.hpoj.x86_64 (root@blrh6u2x64005) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Fri Mar 4 13:19:33 CST 2016
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.2.0-380.13.hpoj.x86_64 root=/dev/mapper/rhel-root ro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet efi=debug ... ignore_loglevel console=ttyS1,115200 console=tty0
...
[ 46.888499] IPv6: ADDRCONF(NETDEV_UP): eno2: link is not ready
[ 46.889525] IPv6: ADDRCONF(NETDEV_UP): eno50: link is not ready
Starting Network Manager Wait Online...
[ 47.420000] bnx2x 0000:04:00.1 eno50: using MSI-X IRQs: sp 108 fp[0] 110 ... fp[7] 117
[ 48.118821] IPv6: ADDRCONF(NETDEV_UP): eno50: link is not ready
[ 48.153042] IPv6: ADDRCONF(NETDEV_UP): eno3: link is not ready
[ 48.324725] IPv6: ADDRCONF(NETDEV_UP): eno3: link is not ready
[ 48.360099] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
[ 48.530094] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
[ 48.564963] IPv6: ADDRCONF(NETDEV_UP): eno49: link is not ready
[ 49.112598] bnx2x 0000:04:00.0 eno49: using MSI-X IRQs: sp 98 fp[0] 100 ... fp[7] 107
[ 49.716845] IPv6: ADDRCONF(NETDEV_UP): eno49: link is not ready
[ 49.752453] IPv6: ADDRCONF(NETDEV_UP): eno4: link is not ready
[ 49.918571] IPv6: ADDRCONF(NETDEV_UP): eno4: link is not ready
[ 49.957314] IPv6: ADDRCONF(NETDEV_UP): eno2: link is not ready
[ 49.989835] IPv6: ADDRCONF(NETDEV_UP): eno50: link is not ready
[ 50.022918] IPv6: ADDRCONF(NETDEV_UP): eno3: link is not ready
[ 50.055375] IPv6: ADDRCONF(NETDEV_UP): eno1: link is not ready
[ 50.087663] IPv6: ADDRCONF(NETDEV_UP): eno49: link is not ready
[ 50.119932] IPv6: ADDRCONF(NETDEV_UP): eno4: link is not ready
Starting WPA Supplicant daemon...
[ OK ] Started WPA Supplicant daemon.
[ 50.401735] tg3 0000:02:00.1 eno2: Link is up at 1000 Mbps, full duplex
[ 50.439124] tg3 0000:02:00.1 eno2: Flow control is off for TX and off for RX
[ 50.476727] tg3 0000:02:00.1 eno2: EEE is disabled
[ 50.502943] IPv6: ADDRCONF(NETDEV_CHANGE): eno2: link becomes ready
[ OK ] Started Network Manager Wait Online.
Starting LSB: Bring up/down networking...
Starting Network Manager Script Dispatcher Service...
[ OK ] Started Network Manager Script Dispatcher Service.
[FAILED] Failed to start LSB: Bring up/down networking.
See 'systemctl status network.service' for details.
[ OK ] Reached target Network.
Starting Notify NFS peers of a restart...
[ OK ] Reached target Network is Online.
Starting Dynamic System Tuning Daemon...
Starting Enable periodic update of entitlement certificates....
[ OK ] Started CUPS Printing Service.
Starting CUPS Printing Service...
Starting Logout off all iSCSI sessions on shutdown...
Starting Postfix Mail Transport Agent...
[ OK ] Started OpenSSH server daemon.
Starting OpenSSH server daemon...
[ OK ] Started Notify NFS peers of a restart.
[ OK ] Started Enable periodic update of entitlement certificates..
[ OK ] Started Logout off all iSCSI sessions on shutdown.
Starting Availability of block devices...
[ OK ] Reached target Remote File Systems (Pre).
[ OK ] Reached target Remote File Systems.
Starting Crash recovery kernel arming...
Starting Virtualization daemon...
Starting Permit User Sessions...
Starting LSB: Starts the Spacewalk Daemon...
[ OK ] Started Availability of block devices.
[ OK ] Started Permit User Sessions.
[ OK ] Started LSB: Starts the Spacewalk Daemon.
[ OK ] Started Dynamic System Tuning Daemon.
Starting GNOME Display Manager...
[ OK ] Started Command Scheduler.
Starting Command Scheduler...
[ OK ] Started Job spooling tools.
Starting Job spooling tools...
Starting Wait for Plymouth Boot Screen to Quit...
[ OK ] Started Virtualization daemon.
[ OK ] Started GNOME Display Manager.
[ 59.203229] tun: Universal TUN/TAP device driver, 1.6
[ 59.232283] tun: (C) 1999-2004 Max Krasnyansky <maxk@xxxxxxxxxxxx>
[ 59.624817] virbr0: port 1(virbr0-nic) entered blocking state
[ 59.656216] virbr0: port 1(virbr0-nic) entered disabled state
[ 59.687578] device virbr0-nic entered promiscuous mode
[ 59.879160] virbr0: port 1(virbr0-nic) entered blocking state
[ 59.882383] virbr0: port 1(virbr0-nic) entered listening state
[ 60.865748] bnx2x 0000:04:00.0 eno49: using MSI-X IRQs: sp 98 fp[0] 100 ... fp[7] 107
[ 61.891547] virbr0: port 1(virbr0-nic) entered learning state
[ 62.217602] bnx2x 0000:04:00.1 eno50: using MSI-X IRQs: sp 108 fp[0] 110 ... fp[7] 117
[ 62.905227] virbr0: port 1(virbr0-nic) entered disabled state

Red Hat Enterprise Linux Server 7.2 (Maipo)
Kernel 4.6.0-rc7+ on an x86_64

s71 login:

---
Robert Elliott, HPE Persistent Memory