Subject: Re: [PATCH] drivers/net/ethernet/broadcom/bnx2.c

From: "Magnos A. Hammes" <[email-masked]>
Date: Fri, 02 May 2014 15:27:45 -0300

On 02-05-2014 13:26, Ben Hutchings wrote:
> On Thu, 2014-05-01 at 12:32 -0700, Michael Chan wrote:
>> On Thu, 2014-05-01 at 15:49 -0300, Magnos A. Hammes wrote:
>>> Yes, I have some udev rules that run at system boot, but the only
>>> thing
>>> I do is:
>>>
>>> /sbin/udevd --daemon
>>> /sbin/udevadm trigger --type=subsystems --action=add
>>> /sbin/udevadm trigger --type=devices --action=add
>>> /sbin/udevadm settle
>>>
>>> Udev runs normally and returns no errors or warnings and dmesg shows
>>> nothing weird.
>>>
>>> So, you think this may be a problem with my udev rules or a udev bug?
>>>
>>> I'm using udev version 182.
>>
>> udev is involved in locating and loading the firmware file.
>
> It is usually not involved now.  The kernel tries to load files directly
> from /lib/firmware.  Only if that fails and if
> CONFIG_FW_LOADER_USER_HELPER is enabled, then it will issue a uevent
> which udev may respond to (I think that may have been removed from udev
> now).
>
> Ben.

Well, I have CONFIG_FW_LOADER_USER_HELPER enabled and Broadcom 
Corporation NetXtreme II BCM5716 Gigabit Ethernet only works when I 
change the source code of bnx2 to use firmware bnx2-mips-09-6.2.1a.fw 
instead of bnx2-mips-09-6.2.1b.fw, then the kernel loads the right 
firmware file. Or should I write a udev custom rule to load the right 
firmware? (I haven't tried this yet)
It seems to me there is a problem here and changing bnx2 source code 
then recompiling the kernel isn't the best solution.
Udev is properly installed in my initrd and in my Slackware 14.0.

Magnos
>
>> On my
>> system, I have /lib/udev/firmware.sh and a
>> generic /lib/udev/rules.d/50-firmware.rules to make request_firmware()
>> work.  Your system may be different.
>
>