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

描述
每个 RPU 处理器都有 1 个 DBGDRAR 寄存器,其中包含 CoreSight 根 ROM 表的地址。

但读取此寄存器时会返回错误的地址 0xfe800003。正确的返回地址应为 0xf0800003。

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

受此影响的软件为在 RPU 处理器上运行并且依赖此寄存器来访问 CoreSight ROM 表的所有软件,通常为自托管的调试软件。

解决方案

影响:

如果 2 个 LSB 位 (VALID) 设为 0’b11,那么更高的位 (ROMADDR) 将指向 CoreSight 根 ROM 表。RPU 自托管调试软件可能依靠此寄存器来访问 ROM 表。

此类调试软件可能尝试访问错误地址 0xfe800000 从而导致 RPU 发生软件异常。

访问给定的 ROM 表地址时,根据配置,可能产生的影响包括系统挂起、返回未定义的数据、解码错误或安全违例。

由于此寄存器仅可供 RPU 访问,因此只有 RPU 自托管调试软件会受此影响。

变通方法:

请在自托管调试软件中将 CoreSight 根 ROM 表硬编码为访问正确的地址 (0xf080000),不读取此寄存器。

受影响的配置:

所有 Versal 器件。

解决方案:

不对该问题进行修复。

最新文章