Re: BCM54220: After the BCM54220 closes the auto-negotiation, the configuration forces the 1000M network port to be linked down all the time.

From: wangxiaolei
Date: Tue Feb 21 2023 - 03:04:58 EST



On 2/18/23 1:13 AM, Florian Fainelli wrote:
CAUTION: This email comes from a non Wind River email account!
Do not click links or open attachments unless you recognize the sender and know the content is safe.

On 2/17/23 00:06, Wang, Xiaolei wrote:
hi

     When I use the nxp-imx7 board, eth0 is connected to the PC, eth0 is
turned off the auto-negotiation mode, and the configuration is forced to
10M, 100M, 1000M. When configured to force 1000M,
     The link status of phy status reg(0x1) is always 0, and the chip of
phy is BCM54220, but I did not find the relevant datasheet on BCM
official website, does anyone have any suggestions or the datasheet of
BCM54220?

I don't have access to a system with a BCM54220 but can look at the
datasheet, could you provide the full output of mii-diag in both cases?
In auto-negotiation mode: normal Link Up, dump of registers:

Read: reg0, 0x1140
Read: reg1, 0x796d
Read: reg2, 0x600d
Read: reg3, 0x8589
Read: reg4, 0x05e1
Read: reg5, 0xc5e1
Read: reg6, 0x006d
Read: reg7, 0x2001
Read: reg8, 0x5bbc
Read: reg9, 0x0200
Read: rega, 0x3800
Read: regb, 0x0000
Read: regc, 0x0000
Read: regd, 0x0000
Read: rege, 0x0000
Read: regf, 0x3000
Read: reg10, 0x0000
Read: reg11, 0x0301
Read: reg12, 0x0000
Read: reg13, 0x0000
Read: reg14, 0x0000
Read: reg15, 0xff1f
Read: reg16, 0x043e
Read: reg17, 0xffff
Read: reg18, 0x8800
Read: reg19, 0x3490
Read: reg1a, 0x0000
Read: reg1b, 0x0000

When auto-negotiation is disabled and configured as forced 1000M mode, the register dump:

Read: reg0, 0x0140
Read: reg1, 0x7949
Read: reg2, 0x600d
Read: reg3, 0x8589
Read: reg4, 0x0401
Read: reg5, 0x0000
Read: reg6, 0x0064
Read: reg7, 0x2001
Read: reg8, 0x0000
Read: reg9, 0x0200
Read: rega, 0x0000
Read: regb, 0x0000
Read: regc, 0x0000
Read: regd, 0x0000
Read: rege, 0x0000
Read: regf, 0x3000
Read: reg10, 0x0000
Read: reg11, 0x0000
Read: reg12, 0x0000
Read: reg13, 0x0000
Read: reg14, 0x0000
Read: reg15, 0x0700
Read: reg16, 0x0006
Read: reg17, 0xffff
Read: reg18, 0x8000
Read: reg19, 0x051d
Read: reg1a, 0x0000
Read: reg1b, 0x0000
What do the PC report as far as link partner advertisement goes etc.?
The other end of the port is also in the link down state.

You are using a twister pair cable to connect your two systems?

I am using copper mode.

And I found that the AR8031 PHY also has this problem. In the case of auto-negotiation, 1000M can be negotiated. When auto-negotiation is turned off, 10M and 100M can be Link Up, but 1000M can also be Link Down. I read the AR8031 manual https://pdf1. alldatasheet.com/datasheet-pdf/view/1132454/ETC2/AR8035.html, there is only such a statement "If auto-negotiation is disabled, a 10 BASE-Te or 100 BASE-TX can be manually selected using the IEEE MII registers .”

thanks

xiaolei

--
Florian