跳转到主要内容

Versal ACAP, RPU - 为调试寄存器 DBGDSAR 设置的值错误

<strong>描述</strong>
每个 RPU 处理器都有 1 个 DBGDSAR 寄存器,其中包含其 CoreSight ROM 表的偏移地址。

但是,读取 RPU 的 DBGDSAR 寄存器会返回以下不正确的偏移值:
<body>
<table width="100%" border="1">
<tbody>
<tr>
<td><strong>处理器</strong></td>
<td><strong>DBGDSAR 期望值</strong></td>
<td><strong>DBGDSAR 实际值</strong></td>
</tr>
<tr>
<td><strong>RPU_0</strong></td>
<td>0x0020_0003</td>
<td>0x003f_0003</td>
</tr>
<tr>
<td><strong>RPU_1</strong></td>
<td>0x0024_0003</td>
<td>0x003f_2003</td>
</tr>
</tbody>
</table>
</body>

尝试访问包含寄存器错误偏移地址的 CoreSight ROM 表将导致 RPU 处理器发生软件异常。

<strong>解决方案</strong>

影响:

此偏移值添加至 DBGDRAR 寄存器返回的值中,以获得每个 RPU CoreSight ROM 表的完整地址。

但是,DBGDRAR 和 DBGDSAR 寄存器都返回错误值。有关 DBGDRAR 勘误的详细信息,请参见 <a href="https://china.xilinx.com/support/answers/76203.html&quot; target="_blank" data-interception="off">(Xilinx Answer 76203)</a>。

变通方法:
在 RPU软件中,确定所需的 RPU 实例(RPU0 或 RPU1),然后硬编码其 CoreSight ROM 表的完整地址(该地址同时包含 DBGDRAR 基地址和 DBGDSAR 偏移地址):
<body>
<table width="100%" border="1">
<tbody>
<tr>
<td><strong>处理器</strong></td>
<td><strong>CoreSight ROM 表的完整地址</strong></td>
</tr>
<tr>
<td><strong>RPU_0</strong></td>
<td>0xF0A00000</td>
</tr>
<tr>
<td><strong>RPU_1</strong></td>
<td>0xF0A40000</td>
</tr>
</tbody>
</table>
</body>

受影响的配置:

所有 Versal 器件。

解决方案:

不对该问题进行修复。