Quoting Andrew Lunn <and...@lunn.ch>:
Hi Andrew,
On Mon, Jun 17, 2019 at 09:33:12PM +0000, René van Dorst wrote:
Quoting Andrew Lunn <and...@lunn.ch>:
>On Sun, Jun 16, 2019 at 08:20:08PM +0200, René van Dorst wrote:
>>Like many other mediatek SOCs, the MT7621 SOC and the internal MT7530
>>switch both
>>supports TRGMII mode. MT7621 TRGMII speed is 1200MBit.
>
>Hi René
>
Hi Andrew,
>Is TRGMII used only between the SoC and the Switch? Or does external
>ports of the switch also support 1200Mbit/s? If external ports support
>this, what does ethtool show for Speed?
Only the first GMAC of the SOC and port 6 of the switch supports this mode.
The switch can be internal in the SOC but also a separate chip.
PHYLINK and ethertool reports the link as 1Gbit.
The link is fixed-link with speed = 1000.
dmesg output with unposted PHYLINK patches:
[ 5.236763] mt7530 mdio-bus:1f: configuring for fixed/trgmii link mode
[ 5.249813] mt7530 mdio-bus:1f: phylink_mac_config:
mode=fixed/trgmii/1Gbps/Full adv=00,00000000,00000220 pause=12 link=1 an=1
[ 6.389435] mtk_soc_eth 1e100000.ethernet eth0: phylink_mac_config:
mode=fixed/trgmii/1Gbps/Full adv=00,00000000,00000220 pause=12 link=1 an=1
With PHYLINK, you can probably set the fixed link to the true 1.2Gbps.
By adding some extra speed states in the code it seems to work.
+ if (state->speed == 1200)
+ mcr |= PMCR_FORCE_SPEED_1000;
dmesg:
[ 5.261375] mt7530 mdio-bus:1f: configuring for fixed/trgmii link mode
[ 5.274390] mt7530 mdio-bus:1f: phylink_mac_config:
mode=fixed/trgmii/Unsupported (update phy-core.c)/Full
adv=00,00000000,00000200 pause=12 link=1 an=1
[ 6.296614] mtk_soc_eth 1e100000.ethernet eth0: configuring for
fixed/trgmii link mode
[ 6.313608] mtk_soc_eth 1e100000.ethernet eth0: phylink_mac_config:
mode=fixed/trgmii/Unsupported (update phy core.c)/Full
adv=00,00000000,00000200 pause=12 link=1 an=1
# ethtool eth0
Settings for eth0:
Supported ports: [ MII ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 1200Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: yes
# ethtool eth0
Settings for eth0:
Supported ports: [ MII ]
Supported link modes: 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: 1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 1000Mb/s
We could consider adding 1200BaseT/Full?
I don't have any opinion about this.
It is great that it shows nicely in ethtool but I think supporting more
speeds in phy_speed_to_str() is enough.
Also you may want to add other SOCs trgmii ranges too:
- 1200BaseT/Full for mt7621 only
- 2000BaseT/Full for mt7623 and mt7683
- 2600BaseT/Full for mt7623 only
I leave the decision to you.
Greats,
René
Andrew