annoying problem with nfs root

Added by Andrea Galbusera over 5 years ago

While doing some kernel work with the devkit, I find myself comfortable to serve my kernel via tftp and the rootfs via nfs.
This works fine except that the ethernet stops working as soon as the kernel is supposed to send its DHCP request to configure eth0: diconnecting and reconnecting the cable makes the link up again and the boot resumes.

Anyone experiencing a similar issue? This morning I noticed git commit 1de9faa on socfpga-3.12 branch, which says 'ARM: SOCFPGA: Changed MitySOM 5CSX Devkit to use Generic PHY'. This seems to change the configured phy driver for the devkit. Commit message gives no details on the rationale behind the change: could it be related to reported issue? Later today I'll give a try to using CONFIG_GENERIC_PHY instead of CONFIG_MICREL_PHY, see if it helps and report back.

Replies (4)

RE: annoying problem with nfs root - Added by Michael Williamson over 5 years ago


Yes, the most recent commit disabling the CONFIG_MICREL_PHY was pushed to deal with the 3.12 kernel behaving as you are describing.

There is some specific MDIO register write issued by the Micrel Phy driver code that is either resetting the PHY on the devkit board or putting it into a bad state in the 3.12 kernel causing the issue you are seeing. We need to investigate it further, but found that the generic PHY driver (and not the Micrel Phy specific driver) would adequately bring up the network device for demonstration of the gigabit network capability.

I am sorry for the inconvenience. We are still investigating the issue and will follow up on this thread if we find anything further.


RE: annoying problem with nfs root - Added by Jonathan Cormier over 5 years ago

Looks like if you disable the Asym_Pause support then the phy driver starts working as expected


    .phy_id        = PHY_ID_KSZ9031,
    .phy_id_mask    = 0x00fffff0,
    .name        = "Micrel KSZ9031 Gigabit PHY",
    .features    = (PHY_GBIT_FEATURES | SUPPORTED_Pause),// | SUPPORTED_Asym_Pause),

According to the sources below the Pause feature allows a ethernet mac to tell the device its connected to to PAUSE sending data for x amount of time as a form of flow control. The Asym_Pause feature tells the other device that you are capable of sending but not receiving these pause packets. See the second link for a discussion on this. It doesn't really explain though why its causing our link problems.

RE: annoying problem with nfs root - Added by Jonathan Cormier over 5 years ago

Note that the patch is for the 9021 but since we are seeing similar problems with the 9031 it seems safe to assume it affects both hardware.

    Add picture from clipboard (Maximum size: 500 MB)