描述
每个 RPU 处理器都有 1 个 DBGDSAR 寄存器,其中包含其 CoreSight ROM 表的偏移地址。
但是,读取 RPU 的 DBGDSAR 寄存器会返回以下不正确的偏移值:
处理器 | DBGDSAR 期望值 | DBGDSAR 实际值 |
RPU_0 | 0x0020_0003 | 0x003f_0003 |
RPU_1 | 0x0024_0003 | 0x003f_2003 |
尝试访问包含寄存器错误偏移地址的 CoreSight ROM 表将导致 RPU 处理器发生软件异常。
解决方案
影响:
此偏移值添加至 DBGDRAR 寄存器返回的值中,以获得每个 RPU CoreSight ROM 表的完整地址。
但是,DBGDRAR 和 DBGDSAR 寄存器都返回错误值。有关 DBGDRAR 勘误的详细信息,请参见 (Xilinx Answer 76203)。
变通方法:
在 RPU软件中,确定所需的 RPU 实例(RPU0 或 RPU1),然后硬编码其 CoreSight ROM 表的完整地址(该地址同时包含 DBGDRAR 基地址和 DBGDSAR 偏移地址):
处理器 | CoreSight ROM 表的完整地址 |
RPU_0 | 0xF0A00000 |
RPU_1 | 0xF0A40000 |
受影响的配置:
所有 Versal 器件。
解决方案:
不对该问题进行修复。