[PATCH rtems-libbsd 1/3] dev/mii: Handle PHY read timeouts

Kinsey Moore kinsey.moore at oarcorp.com
Fri Jul 9 13:55:50 UTC 2021


On 7/9/2021 00:32, Chris Johns wrote:
> On 9/7/21 3:28 pm, Sebastian Huber wrote:
>> On 09/07/2021 03:14, Kinsey Moore wrote:
>>> PHY read timeouts return 0xffffffff and bypass the current bad/no PHY
>>> checks. This adds a check specifically for that read timeout to avoid
>>> probing PHYs that don't exist.
>>> ---
>>>    freebsd/sys/dev/mii/mii.c | 1 +
>>>    1 file changed, 1 insertion(+)
>>>
>>> diff --git a/freebsd/sys/dev/mii/mii.c b/freebsd/sys/dev/mii/mii.c
>>> index d0428f24..8f087cab 100644
>>> --- a/freebsd/sys/dev/mii/mii.c
>>> +++ b/freebsd/sys/dev/mii/mii.c
>>> @@ -474,6 +474,7 @@ mii_attach(device_t dev, device_t *miibus, if_t ifp,
>>>             */
>>>            bmsr = MIIBUS_READREG(dev, ma.mii_phyno, MII_BMSR);
>>>            if (bmsr == 0 || bmsr == 0xffff ||
>>> +            bmsr == 0xffffffff ||
>> Could you please fix the driver so that it returns 0 or 0xffff in case of
>> timeouts? This is the general MII module of FreeBSD. If you think there is a bug
>> in this code, then please report it to FreeBSD first.
> We should resolve the issue in the probe and not the attach call. Attach errors
> are real errors, probe errors or failures are niche to the specifics of the
> hardware.

It looks like other drivers ensure that only the bottom two bytes of the 
return value are used though I can't seem to find a spec on the 
interface, so that's a possible bug in the cgem driver whose fix would 
achieve the same effect as this patch. Unfortunately, nothing is 
initialized or allocated until just before the PHYs are scanned in 
cgem_attach and getting something into the probe isn't going to be 
pretty, though it should at least be possible.


Kinsey



More information about the devel mailing list