On Sat, 17 Oct 2020 at 20:27, Andrew Lunn <and...@lunn.ch> wrote: > > On Sat, Oct 17, 2020 at 08:11:24PM +0200, Ard Biesheuvel wrote: > > On Sat, 17 Oct 2020 at 20:04, Andrew Lunn <and...@lunn.ch> wrote: > > > > > > > I have tried this, and it seems to fix the issue. I will send out a > > > > patch against the netsec driver. > > > > > > Please also fix the firmware so it does not pass rgmii. > > > > > > If there are pure DT systems, which do require phy-mode to be used, we > > > will need to revert your proposed change in order to make the MAC > > > driver work as it should, rather than work around the broken firmware. > > > > > > > What do you mean by 'pure' DT system? Only EDK2 based firmware exists > > for this platform > > Currently, only EDK2 based firmware exists. Is there anything stopping > somebody using u-boot? ACPI is aimed for server class systems, on > ARM. If anybody wants to use this SoC in am embedded setting, not > server, then they are more likely to use DT, especially when you need > a complex network, eg. an Ethernet switch. It seems like ACPI is too > simple to support complex network hardware found in some embedded > systems. > > > So what I propose to do is drop the handling of the [mandatory] > > phy-mode device property from the netsec driver (which is really only > > used by this board). As we don't really need a phy-mode to begin with, > > and given that firmware exists in the field that passes the wrong > > value, the only option I see for passing a value here is to use a > > different, *optional* DT property (force-phy-mode or > > phy-mode-override) that takes the place of phy-mode. > > No, sorry, this is an ACPI problem, not a DT problem. I don't want to > accept DT hacks because of broken ACPI. > > We have been through this before, when the Atheros PHY fixed is RGMII > delay support, and lots of platforms broke. Everybody just updated > their DT and were happy. I see no reason why ACPI should be different. >
I don't understand why you insist on framing this as a ACPI vs DT issue. AFAICT, the only meaningful distinction here is between firmware that configures the PHY and firmware that doesn't. Broken firmware exists for this platform, and it provides incorrect DT data as well as incorrect ACPI data, but it does configure the PHY. Fixing that firmware involves fixing both, and it is easily updatable on this platform, so it is almost as simple as dropping a new DT file in your /boot partition. But you still need to do that. So we can fix this firmware by just setting phy-mode to the empty string, right? So the only question is how we deal with broken firmware. Again, I don't see much point in distinguishing between DT and ACPI here, as in both cases, the same action is required on the part of the user to change something on their system before they can upgrade their kernel.