RE: bnx2x: Latest firmware requirement breaks no regression policy

From: Sudarsana Reddy Kalluru
Date: Wed Feb 19 2020 - 03:50:07 EST


Hi Paul,
The firmware file referred below (i.e., storm FW) should be present on the host (i.e., /lib/firmware/bnx2x/ path), not the device. Driver must require this version of the FW to initialize the device, and hence provide the network functionality. Also, the driver is not backward compatible with older FW versions.
So it's not possible to handle the below error scenario in the driver,
> bnx2x 0000:41:00.0: Direct firmware load for bnx2x/bnx2x-e1h-7.13.11.0.fw failed with error -2
> bnx2x: [bnx2x_init_firmware:13557(net02)]Can't load firmware file bnx2x/bnx2x-e1h-7.13.11.0.fw
At the most, we can validate the existence of FW file on the host during the kernel build or installation.
FW image name from driver sources:
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c:
#define FW_FILE_NAME_E1 "bnx2x/bnx2x-e1-" FW_FILE_VERSION ".fw"
#define FW_FILE_NAME_E1H "bnx2x/bnx2x-e1h-" FW_FILE_VERSION ".fw"
#define FW_FILE_NAME_E2 "bnx2x/bnx2x-e2-" FW_FILE_VERSION ".fw"
FW image path on the host:
/lib/firmware/bnx2x/bnx2x-e1h-7.13.11.0.fw

Thanks,
Sudarsana
> -----Original Message-----
> From: netdev-owner@xxxxxxxxxxxxxxx <netdev-owner@xxxxxxxxxxxxxxx> On
> Behalf Of Paul Menzel
> Sent: Monday, February 17, 2020 6:48 PM
> To: Ariel Elior <aelior@xxxxxxxxxxx>; Sudarsana Reddy Kalluru
> <skalluru@xxxxxxxxxxx>; GR-everest-linux-l2 <GR-everest-linux-
> l2@xxxxxxxxxxx>
> Cc: netdev@xxxxxxxxxxxxxxx; LKML <linux-kernel@xxxxxxxxxxxxxxx>; it+linux-
> netdev@xxxxxxxxxxxxx
> Subject: bnx2x: Latest firmware requirement breaks no regression policy
>
> Dear Linux folks,
>
>
> Updating a server from 4.19.x to 5.4.x, the network device
>
> Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme II
> BCM57711 10-Gigabit PCIe [14e4:164f]
>
> failed to initialize due to missing firmware.
>
> bnx2x 0000:41:00.0: Direct firmware load for bnx2x/bnx2x-e1h-7.13.11.0.fw
> failed with error -2
> bnx2x: [bnx2x_init_firmware:13557(net02)]Can't load firmware file
> bnx2x/bnx2x-e1h-7.13.11.0.fw
> bnx2x: [bnx2x_func_hw_init:6002(net02)]Error loading firmware
> bnx2x: [bnx2x_nic_load:2730(net02)]HW init failed, aborting
>
> That is undesired, because without network access one has to have
> direct system access to find out what is wrong.
>
> Could you please change the policy to only print a big warning,
> if the latest firmware is not available, and an update suggestion?
>
>
> Kind regards,
>
> Paul