[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <VI1PR0402MB3871B341615ED111B614CDE0E0650@VI1PR0402MB3871.eurprd04.prod.outlook.com>
Date: Fri, 10 Jul 2020 15:47:36 +0000
From: Ioana Ciornei <ioana.ciornei@....com>
To: Andrew Lunn <andrew@...n.ch>, Vladimir Oltean <olteanv@...il.com>
CC: Tobias Waldekranz <tobias@...dekranz.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"f.fainelli@...il.com" <f.fainelli@...il.com>,
"hkallweit1@...il.com" <hkallweit1@...il.com>
Subject: Re: MDIO Debug Interface
On 7/10/20 4:35 PM, Andrew Lunn wrote:
>> In principle there is nothing in this para-virtualization design that
>> would preclude a quirky quad PHY from being accessed in a
>> virtualization-safe mode. The main use case for PHY access in a VM is
>> for detecting when the link went down. Worst case, the QEMU host-side
>> driver could lie about the PHY ID, and could only expose the clause 22
>> subset of registers that could make it compatible with genphy. I don't
>> think this changes the overall approach about how MDIO devices would be
>> virtualized with QEMU.
>
> A more generic solution might be to fully virtualize the PHY. Let the
> host kernel drive the PHY, and QEMU can use /sys/bus/mdio_bus/devices,
> and uevents sent to user space. Ioana already added support for a PHY
> not bound to a MAC in phylink. You would need to add a UAPI for
> start/stop, and maybe a couple more operations, and probably export a
> bit more information.
You would still need a struct device to bind to that PHY and I am not
sure what device that might be since the userspace cannot provide one.
>
> This would then solve the quad PHY situation, and any other odd
> setups. And all the VM would require is genphy, keeping it simple.
>
> Andrew
>
>
How would the genphy driver work if there is no MDIO register map for it
to access? This suggestion seems something in between a software PHY and
hardware PHY. Also, it would work only on PHYs and not any other device
accessible over an MDIO bus (so you couldn't assign a DSA switch to a VM).
Coming back to a point that you made earlier, even as we speak, with an
upstream kernel you can still have an userspace application accessing
devices on a MDIO bus. Since the MDIO controller is memory mapped you
just need some devmem commands wrapped-up in a nice script, no need for
a vendor patch over an upstream kernel for this.
Ioana
Powered by blists - more mailing lists