Re: [BUG bisect] Missing Micrel driver on VF50 (net: phy: check return code when requesting PHY driver module)

From: Krzysztof Kozlowski
Date: Sat Jan 19 2019 - 04:51:23 EST


On Fri, 18 Jan 2019 at 22:30, Heiner Kallweit <hkallweit1@xxxxxxxxx> wrote:
>
> On 18.01.2019 21:58, Heiner Kallweit wrote:
> > On 18.01.2019 09:48, Krzysztof Kozlowski wrote:
> >> On Fri, 18 Jan 2019 at 09:39, Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote:
> >>>
> >>> Hi,
> >>>
> >>> On today's next (next-20190118) my Colibri VF50 board fails to boot up
> >>> from network (DHCP, NFSv4 root). Looks like missing network adapter.
> >>> Expected:
> >>> [ 3.041773] Micrel KSZ8041 400d1000.ethernet-1:00: attached PHY driver
> >>> [Micrel KSZ8041] (mii_bus:phy_addr=400d1000.ethernet-1:00, irq=POLL)
> >>>
> >>> Result:
> >>> [ 15.614964] Root-NFS: no NFS server address
> >>> [ 15.619353] VFS: Unable to mount root fs via NFS, trying floppy.
> >>> [ 15.626762] VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6
> >>> [ 15.634252] Please append a correct "root=" boot option; here are the
> >>> available partitions:
> >>> [ 15.642791] 0100 16384 ram0
> >>> [ 15.642804] (driver?)
> >>> [ 15.649076] Kernel panic - not syncing: VFS: Unable to mount root fs
> >>> on unknown-block(2,0)
> >>> [ 15.657423] ---[ end Kernel panic - not syncing: VFS: Unable to mount
> >>> root fs on unknown-block(2,0) ]---
> >>>
> >>> Bisect pointed to:
> >>> net: phy: check return code when requesting PHY driver module
> >>
> >> I see now in the logs:
> >> [ 2.436822] mdio_bus 400d1000.ethernet-1:00: error -2 loading PHY
> >> driver module for ID 0x00221513
> >> which is kind of misleading. There is no initramfs so there is no
> >> usermod library at this point. It is not needed. This seems to break
> >> all DHCP/NFS root boots without initrd/initramfs.
> >>
> > Thanks for the report. Could you please provide your kernel config
> > and the syslog of a boot before or w/o the patch in question?
> >
> > If you boot via nfs then I'd expect that the PHY driver is built-in and
> > not a module. Therefore it's not fully clear to me yet why
> > request_module() returns -ENOENT.
> >
> OK, I see. The -ENOENT could refer to the modprobe binary, not the PHY
> driver module. Still it would be helpful to see the kernel config and
> the requested log.

As I wrote - there is no initramfs so there is no modprobe binary
neither. The log and config were attached to the first email.

Best regards,
Krzysztof