T1042 SGMII MAC-to-MAC link problems

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

T1042 SGMII MAC-to-MAC link problems

1,449 Views
akorud
Contributor I

Hello NXP team,

we have custom T1042 board with SGMII connected to FPGA (SGMII core + MAC inside).

If autoneg is selected on FPGA side link fail to establish, if link is forced up on FPGA side it's possible to transmit data however frames pass only in T1042->FPGA direction, no frame can be received by T1042.

We've verified signals at physical layer - signals are of reference quality, no signal integrity issues.

From Linux side everything looks fine, link is described as "fixed" in device tree and ethtool report it up.

FPGA was tested by enabling loopback in FPGA's SedDes - link is up and MAC successfully receive own transmitted frames.

Honestly we have now idea how to debug this problem, maybe access to internal PSCPMA phy may help however standard Linux drivers do not expose it.

Labels (1)
0 Kudos
Reply
2 Replies

735 Views
akorud
Contributor I

Thanks,

I've just discovered that when T1042 runs U-boot autonegotiation completes successfully but link go down after Linux start. This may confirm that hardware is ok.

Unfortunately I don't know how to force U-boot perform ping without real phy (it try to read link status and fail "link down"), anybody have idea if this is possible?

Concerning loopback. Originally I described "near-end" loopback in FPGA PMA so FPGA get back what it send. Just tried "far-end" loopback so T1042 should receive back what it send and the same problem - receive nothing, so it looks like T1042 cannot perform autonegotiation with itself when running Linux, will do further investigations.

0 Kudos
Reply

735 Views
bpe
NXP Employee
NXP Employee

Declaring a fixed link in the Device Tree just prevents the driver

from reading the status of the external PHY. In the current implementation, it

does not affect the on-chip PCS initialization at all, thus if the

other side of the connection does not support autonegotiation type

SGMII, it may fail to complete autoneg phase. Results depend on the

external device logic, T1040 can ignore this, what you actually seem

to observe.

Therefore, the first thing to check is the type of autonegotiation

your FPGA supports, if at all. Required software actions are specified

in Section 31.6 of T1040RM.

Since T1040 is able to receive what it sends when your FPGA is in

loopback mode, the link itself is operable in both directions and

the problem is in the FPGA. You need, however, to check how your

FPGA does this loopback, at the PMA level or at the PCS level. If

the FPGA PCS in involved in the loopback (means, PCS decodes and

re-encodes the code groups it receives), the problem is purely in

the FPGA logic.

On T1040 side, it would be helpful to read the on-chip PCS management

registers described in T1040RM, Section 3.5, but you have to use a

debugger to do that.


Have a great day,
Platon

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply