2249288_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2249288_zh-CN

2249288_zh-CN

T1024 PCS 链路建立调试

当客户的以太网PCS无法连接时,本文将提供基于T1024的逐步调试指南。

许多以太网接口由 SerDes 配置,因此需要确认链路错误究竟是由 SerDes 还是由 PCS 本身引起的。本文将提供一些线索。

Serdes Lane&pins

首先检查您正在使用的是哪一条 SerDes 通道,并在《QorIQ T1024 参考手册》中确认对应的 SerDes 通道。如下面的配置,用户在 RCW[128:136] 中设置 SRDS_PRCTL_S1=0x05B,应用程序将利用 SGMII.m1 和 SGMII.m2。

01.png

fmacaddress.png

本文将以SGMII.m1为用户案例,现在SGMII将在帧管理器MAC1中。

请检查 SerDes 通道分配以确认使用的是哪一条 SerDes 通道。以 SGMII.m1 为例,其对应的通道引脚名称为 SD1_TX3P/N 和 SD1_RX3P/N,可认为这是通道 3。

MAC 编号与 SerDes 通道编号无关,请查阅相应的表格以确定具体引脚。

lane.png

任何使用此以太网的硬件测试都应与引脚相关,请参阅以下的元器件引脚编号。

pins.png

您可以测试该通道的 RX 引脚眼图,以确认频率是否正确。如果您将该通道设置为 SGMII 1.25G,可以通过眼图确认信号速率是否配置正确。

eyediagram.png

上面的眼图仅显示SerDes的速度。

在环回测试看似正常时,这一点尤为重要,因为它可能仍然无法与其他设备正常连接。

如何确认 SerDes 链路已建立

请在《QorIQ T1024 参考手册》中查找对应的通道寄存器。

在本使用场景中采用的是通道 3,因此需要读取通道 3 的寄存器,以确认 SerDes 通道 3 是否正常运行。例如如下:

# 3号通道

md.l 0xFFE0EA8C0 1 - aa611080 # LN3GCR0

md.l 0xFFE0EA8C4 1 - 101c4019 # LN3GCR1

md.l 0xFFE0EA8CC 1 - 00002800 # LN3SSCR0

md.l 0xFFE0EA8D0 1 - 0f0fc01f # LN3RECR0

md.l 0xFFE0EA8D4 1 - 0f0f0fa8 # LN3RECR1

md.l 0xFFE0EA8D8 1 - 00003006 # LN3TECR0

md.l 0xFFE0EA8E0 1 - 39000400 # LN3TTLCR0

md.l 0xFFE0EA8E4 1 - 00000000 # LN3TTLCR1

md.l 0xFFE0EA8F4 1 - 00000000 # LN3TCSR1

md.l 0xFFE0EA8FC 1 - 04000000 # LN3TCSR3


SerDes_LNnTCSR3 是一个重要的调试测试寄存器,CDR_LCK 用于检查 CDR 是否锁定。

CDR_LCK=0表示未检测到有效的比特流。作为测试,您可以将通道置于环回模式 LN2TCSR3[LPBK_EN]=01。CDR 应锁定在数字环回模式(内部环回)。否则,设备本身可能会出现问题。

所以,如果您能把 LPBK-EN 设置为“01”环回模式,它会在环回模式下将 SerDes 自身的 TX 和 RX 信号设置为排除外部信号,然后再检查 CDR_LCK,如果是 1,SerDes 本身就运行良好。总之,CDR_LCK 应该始终被置位。

在 “md.l 0xFFE0EA8FC 1 - 04000000 # LN3TCSR3” 的输出中,CDR_LCK=0,怀疑问题发生在 SerDes 端。

正常状态应为:

=> md fe0ea8fc 1

fe0ea8fc:08000000

CDR.png

如何确认 PCS 链路已建立

有关 MAC 和 PHY 寄存器的详细信息,请参阅《T1024DPAArm,QorIQ T1024 数据路径加速架构 (DPAA) 参考手册》

在DPAARM中找到偏移地址。

FMAC2.png

对于 SGMII,MAC 地址应为 offset+0x1000。

请按照《T1024DPAARM》中第 6.5.4 节“MDIO 以太网管理接口使用说明”的指示来读取 MDIO 寄存器。

在本应用场景中,接口为 SGMII1、MAC1,此时 MAC1 的地址为 FM1_mEMAC1:4E_0000,对应的 FM1_mEMAC1 MDIO 寄存器起始地址为 4E_1000h。

本例协议采用 SGMII,读取时应按照《T1024DPAARM》6.5.4.3 节“Clause 22 读取流程”的步骤执行。

6.5.4.3 第 22 条阅读流程

1) 等待 MDIO_CFG[BSY] = 0。

2) 用正确的 PHY_ADDR 和 REGISTER_ADDR 写入 MDIO_CTL,并设置第 16 位。

3) 等待 MDIO_CFG[BSY] = 0。

4) 如果寻址的 PHY 没有响应,则设置 MDIO_CFG[MDIO_RD_ER]。

否则读取 MDIO_DATA 值。

在本使用场景下,应读取 MDIO_SGMII_SR,您可以在《QorIQ T1024 参考手册》30.5.5 节 “1000Base-KX PCS MDIO 内存映射/寄存器定义”中查阅该寄存器的具体定义

关键位如下:

STATUSREG.png

STATUSREG2.png

以下是本使用场景的结果:

读取 MDIO_SGMII_SR 时,请使用能够满足延迟时间要求的手动输入。

如果您无法手动输入,请按照流程进行操作,“等待 MDIO_CFG[BSY] = 0”再读取 MDIO_DATA 值。

读取SGMII1 MDIO寄存器

=== Serdes 测试 1 ===

0xFFE0EA8FC 值:0x08000000

转储 PCS0 寄存器 0xFFE4E1030-0xFFE4E103C:

0x40001408

0x00000000

0x00001340

0x00001340

选择 0x8002,devmem 0xFFE4E1034 32 0x8002

Read: 0x00000083

选择0x8003,devmem 0xFFE4E1034 32 0x8003

读取:0x0000E400

选择 0x8001,devmem 0xFFE4E1034 32 0x8001

Serdes0 状态:0x00000029

选择 0x8001 devmem 0xFFE4E1034 32 0x8001

Serdes0 状态:0x0000002D

选择 0x8001,devmem 0xFFE4E1034 32 0x8001

Serdes0 状态:0x0000002D

第一次没有链路,LINK_STAT 为 0(0x00000029),然后变为 1(0x0000002D)。

现在 PCS 链路已建立,硬件环回检查流程也已完成。

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎11-27-2025 10:37 PM
更新者: