将RX最大通道数(RX_MAX_LANE_COUNT)配置为2或1时,DisplayPort接收器通用寄存器地址0x0001( DPRX_RX_STATUS
)会损坏。
DPRX_RX_STATUS
定义:
- Bit16:SYNC_LOSS
- Bit7:SYM_LOCK Lane3
- Bit6:SYM_LOCK Lane2
- Bit5:SYM_LOCK Lane1
- Bit4:SYM_LOCK Lane0
- Bit3:CR_DONE Lane3
- Bit2:CR_DONE Lane2
- 位1:CR_DONE Lane1
- Bit0:CR_DONE Lane0
但是,将RX最大通道数配置为2或1时,寄存器位定义会移位。
此问题导致RX内核在AUX_GPU模式下失败链路训练,因为软件API由于位的移位而无法检测到SYM_LOCK。
解决/修复方法
要解决此问题,请设置软件API以检测已移位的DPRX_RX_STATUS
定义:
如果RX_MAX_LANE_COUNT = 4(遵循标准定义)
- Bit16:SYNC_LOSS
- Bit7:SYM_LOCK Lane3
- Bit6:SYM_LOCK Lane2
- Bit5:SYM_LOCK Lane1
- Bit4:SYM_LOCK Lane0
- Bit3:CR_DONE Lane3
- Bit2:CR_DONE Lane2
- 位1:CR_DONE Lane1
- Bit0:CR_DONE Lane0
如果RX_MAX_LANE_COUNT = 2
- Bit12:SYNC_LOSS
- Bit3:SYM_LOCK Lane1
- Bit2:SYM_LOCK Lane0
- 位1:CR_DONE Lane1
- Bit0:CR_DONE Lane0
如果RX_MAX_LANE_COUNT = 1
- Bit10:SYNC_LOSS
- Bit1:SYM_LOCK Lane0
- Bit0:CR_DONE Lane0
此问题已在DisplayPort IP内核的16.0 Update 1版中得到修复。
没有回复内容