Re: [PATCH v2] net: mtk_sgmii: implement mtk_pcs_ops

From: Bjørn Mork
Date: Mon Jan 16 2023 - 11:51:16 EST


"Russell King (Oracle)" <linux@xxxxxxxxxxxxxxx> writes:

> On Mon, Jan 16, 2023 at 04:21:30PM +0100, Bjørn Mork wrote:
>> [ 54.539438] mtk_soc_eth 15100000.ethernet wan: Link is Down
>> [ 56.619937] mtk_sgmii_select_pcs: id=1
>> [ 56.623690] mtk_pcs_config: interface=4
>> [ 56.627511] offset:0 0x140
>> [ 56.627513] offset:4 0x4d544950
>> [ 56.630215] offset:8 0x20
>> [ 56.633340] forcing AN
>> [ 56.638292] mtk_pcs_config: rgc3=0x0, advertise=0x1 (changed), link_timer=1600000, sgm_mode=0x103, bmcr=0x1000, use_an=1
>> [ 56.649226] mtk_pcs_link_up: interface=4
>> [ 56.653135] offset:0 0x81140
>> [ 56.653137] offset:4 0x4d544950
>> [ 56.656001] offset:8 0x1
>> [ 56.659137] mtk_soc_eth 15100000.ethernet wan: Link is Up - 1Gbps/Full - flow control rx/tx
>
> Thanks - there seems to be something weird with the bmcr value printed
> above in the mtk_pcs_config line.
>
> You have bmcr=0x1000, but the code sets two bits - SGMII_AN_RESTART and
> SGMII_AN_ENABLE which are bits 9 and 12, so bmcr should be 0x1200, not
> 0x1000. Any ideas why?

No, not really

> Can you also hint at what the bits in the PHY register you quote mean
> please?

This could very well be a red herring. It's the only difference I've
been able to spot, but I have no idea what it means.

This is an attempt at reformatting the pdf tables for email. Hope it's
readable:


VSPEC1_SGMII_STAT Reset Value
Chip Level SGMII status register (Register 30.9) 0008 H

15 14..8 7 6 5 4 3 2 1 .. 0
MACSEC_* Res RES Res ANOK RF ANAB LS DR
ro ro ro rolh ro roll ro


Field Bits Type Description

MACSEC_CAP 15 RO MACSEC Capability in the product
0 B DISABLED Product is not MACSEC capable
1 B ENABLED Product is MACSEC capable
RES 7 RO Reserved
Ignore when read.
ANOK 5 RO Auto-Negotiation Completed
Indicates whether the auto-negotiation process is completed or not.
0 B RUNNING Auto-negotiation process is in progress or not started
1 B COMPLETED Auto-negotiation process is completed
RF 4 ROLH Remote Fault
Indicates the detection of a remote fault event.
0 B INACTIVE No remote fault condition detected
1 B ACTIVE Remote fault condition detected
ANAB 3 RO Auto-Negotiation Ability
Specifies the auto-negotiation ability.
0 B DISABLED PHY is not able to perform auto-negotiation
1 B ENABLED PHY is able to perform auto-negotiation
LS 2 ROLL Link Status
Indicates the link status of the SGMII
0 B INACTIVE The link is down. No communication with link partner possible.
1 B ACTIVE The link is up. Data communication with link partner is possible.
DR 1:0 RO SGMII Data Rate
This field indicates the operating data rate of SGMII when link is up
00 B DR_10 SGMII link rate is 10 Mbit/s
01 B DR_100 SGMII link rate is 100 Mbit/s
10 B DR_1G SGMII link rate is 1000 Mbit/s
11 B DR_2G5 SGMII link rate is 2500 Mbit/s



Bjørn