Subject: Re: tg3 'No PHY devices' loading issue

From: Harald Hoyer <[email-masked]>
Date: Wed, 18 Apr 2012 10:14:47 +0200

Am 17.04.2012 23:05, schrieb Josh Boyer:
> On Tue, Apr 17, 2012 at 03:39:08PM -0400, Josh Boyer wrote:
>> On Tue, Apr 17, 2012 at 11:50:07AM -0700, Matt Carlson wrote:
>>> On Tue, Apr 17, 2012 at 10:18:57AM -0400, Josh Boyer wrote:
>>>> It has worked on some of the older kernels without the need for the
>>>> manual rmmod/modprobe step, so it seems to be somewhat timing related.
>>>> I'm not sure if there is a module load ordering issue, but that doesn't
>>>> seem to be the case.  I can't explain why a later modprobe would work
>>>> just fine though.
>>>>
>>>> Do you have any thoughts on how to go about debugging/fixing this?  I'd
>>>> be happy to test and provide whatever information you need.
>>>
>>> The 57788 uses the broadcom phylib module.  For some reason, it isn't
>>> available the first module load attempt.  A while ago, code was added to
>>> phylib to request modules from userspace if the particular phy support
>>> code wasn't already loaded.  It looks like this mechanism isn't working
>>> too well the first time through.
>>>
>>> Can you reproduce the problem if you run 'rmmod broadcom' and then
>>> reload tg3?
>>
>> I'll give it a shot, but that sounds like a quite plausible scenario to
>> me.  Oddly, even after the manual modprobe, the broadcom phy module
>> doesn't show an increased use count.  There's also no dependency on
>> 'broadcom' listed for tg3 by modinfo.
> 
> If I rmmod both tg3 and broadcom and then just load tg3 (either via
> insmod or modprobe), it works fine.  It does so because whatever you did
> to make it request the phylib module from userspace also worked because
> the broadcom module is loaded as well.
> 
> So it seems my issue is basically because the initramfs isn't built with
> the broadcom module included.  I'll have to figure out a way to teach
> dracut what to do here, since it doesn't seem to be automatically
> picking it up (Harald CC'd).
> 
> Thanks much for the very quick response from everyone.
> 
> josh

Ok, so we have to include all kernel/drivers/net/phy/*.ko in the initramfs?