Bug 42689 - Broadcom bnx2 firmware missing
Summary: Broadcom bnx2 firmware missing
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Network (show other bugs)
Hardware: All Linux
: P1 blocking
Assignee: drivers_network@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-29 22:49 UTC by Steve
Modified: 2016-02-15 15:06 UTC (History)
4 users (show)

See Also:
Kernel Version: 3.3.0-rc1+ (affected since 3.2.0-rc4+)
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
git bisect, kernel configuration (67.12 KB, application/octet-stream)
2012-01-29 22:53 UTC, Steve
Details

Description Steve 2012-01-29 22:49:37 UTC
Firmware image missing in kernel tree can be found here:
git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git


Current mainline kernel sources outputs:

/usr/src/linux-3-git/drivers/net/ethernet/broadcom/bnx2.c:
#define DRV_MODULE_NAME         "bnx2"
#define DRV_MODULE_VERSION      "2.2.1"
#define DRV_MODULE_RELDATE      "Dec 18, 2011"
#define FW_MIPS_FILE_06         "bnx2/bnx2-mips-06-6.2.3.fw"  // missing
#define FW_RV2P_FILE_06         "bnx2/bnx2-rv2p-06-6.0.15.fw"
#define FW_MIPS_FILE_09         "bnx2/bnx2-mips-09-6.2.1b.fw" // missing
#define FW_RV2P_FILE_09_Ax      "bnx2/bnx2-rv2p-09ax-6.0.17.fw"
#define FW_RV2P_FILE_09         "bnx2/bnx2-rv2p-09-6.0.17.fw"


/usr/src/linux-3-git/firmware/Makefile:
fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1a.fw \
                             bnx2/bnx2-rv2p-09-6.0.17.fw \
                             bnx2/bnx2-rv2p-09ax-6.0.17.fw \
                             bnx2/bnx2-mips-06-6.2.1.fw \
                             bnx2/bnx2-rv2p-06-6.0.15.fw


ls -l /usr/src/linux-3-git/firmware/bnx2/ | awk '{print $9}':
bnx2-mips-06-6.2.1.fw.ihex
bnx2-mips-09-6.2.1a.fw.ihex
bnx2-rv2p-06-6.0.15.fw.ihex
bnx2-rv2p-09-6.0.17.fw.ihex
bnx2-rv2p-09ax-6.0.17.fw.ihex


Attachment contains complete git bisect trace, kernel configuration.

Please fix & verify this issue in mainline.

Thank you for your time.
Comment 1 Steve 2012-01-29 22:53:36 UTC
Created attachment 72222 [details]
git bisect, kernel configuration

git bisect, kernel configuration
Comment 2 Steve 2012-06-11 20:10:54 UTC
Could somebody check this, please ?

Thank you for your time.
Comment 3 Steve 2012-06-11 20:12:12 UTC
No change, in kernels 3.3.0-rc1+ -  3.5-rc2.
Comment 4 Maxim Kammerer 2012-07-25 01:12:19 UTC
This issue should be simple to fix, since the relevant firmware is available in linux-firmware (albeit in binary form). Also, bug #42756 is probably related.
Comment 5 Michael Chan 2012-07-25 01:15:38 UTC
The kernel policy is that firmware should no longer be added to the kernel tree.  Users should download the linux-firmware tree and copy all firmware files to /lib/firmware.
Comment 6 Maxim Kammerer 2012-07-25 01:42:14 UTC
So perhaps the unused firmware above should be removed?
Comment 7 mconrad 2013-12-16 23:37:02 UTC
This has just bitten me.  (Custom linux distro, using CONFIG_FIRMWARE_IN_KERNEL under the assumption it would pull in any needed firmware files, upgraded kernel, and lost ethernet access because bnx2 changed from a module whose firmware was included to one that isn't included)

I've read the rationale for using /lib/firmware, but I can't afford to add 57MB to my initrd.  I want a way to include only the firmware of the drivers I'm actually using, and enumerating them in EXTRA_FIRMWARE is not a proper solution, as it would require me to research and update that line each time I enable new modules.

I really think there should be some way to preserve the old behavior of getting the firmware you need when you select CONFIG_FIRMWARE_IN_KERNEL.

Note You need to log in before you can comment on or make changes to this bug.