Re: [PATCH v2] ARM: imx: allow to disable board specific PHY fixups

From: Andrew Lunn
Date: Tue Mar 31 2020 - 08:54:43 EST


> - Disable the SmartEEE feature of the phy. The comment in the code implies
> that for some reason it doesn't work, but the reason itself is not given.
> Anyway, disabling SmartEEE should IMHO opinion be controlled by a DT
> setting. There is no reason to believe this problem is specific to the
> i.MX6. Besides, it is a feature of the phy, so it seems logical to expose
> that via the DT. Once that is done, it has no place here.

The device tree properties are defined:

bindings/net/ethernet-phy.yaml: eee-broken-100tx:
bindings/net/ethernet-phy.yaml: eee-broken-1000t:
bindings/net/ethernet-phy.yaml: eee-broken-10gt:
bindings/net/ethernet-phy.yaml: eee-broken-1000kx:
bindings/net/ethernet-phy.yaml: eee-broken-10gkx4:
bindings/net/ethernet-phy.yaml: eee-broken-10gkr:

And there is a helper:

void of_set_phy_eee_broken(struct phy_device *phydev)

> - Enable TXC delay. To clarify, the RGMII specification version 1 specified
> that the RXC and TXC traces should be routed long enough to introduce a
> certain delay to the clock signal, or the delay should be introduced via
> other means. In a later version of the spec, a provision was given for MAC
> or PHY devices to generate this delay internally. The i.MX6 MAC interface
> is unable to generate the required delay internally, so it has to be taken
> care of either by the board layout, or by the PHY device. This is the
> crucial point: The amount of delay set by the PHY delay register depends on
> the board layout. It should NEVER be hard-coded in SoC setup code. The
> correct way is to specify it in the DT. Needless to say that this too,
> isn't i.MX6-specific.

Correct:

# RX and TX delays are added by the MAC when required
- rgmii

# RGMII with internal RX and TX delays provided by the PHY,
# the MAC should not add the RX or TX delays in this case
- rgmii-id

# RGMII with internal RX delay provided by the PHY, the MAC
# should not add an RX delay in this case
- rgmii-rxid

# RGMII with internal TX delay provided by the PHY, the MAC
# should not add an TX delay in this case
- rgmii-txid

The needed properties exist.

I think part of the issue is that there are iMX6 board which are not
device tree?

Andrew