Versal ACAP,APU - 由于旧负载检测到异步外部异常中止,导致新负载误报同步外部异常中止

描述
在某些条件下,新负载如果复用旧器件负载的分组标识 (GID),则可能报告同步外部异常中止,原因是错误关联旧器件存储器访问所检测到的外部错误。

器件负载快速解析完成,并允许后续指令执行时复用 GID。

条件

1. 旧器件负载执行后收到来自互连的外部错误响应,但尚未全部执行完成,这将导致异步外部异常中止。
2. 再执行不少于 80 条指令使 GID 回绕,从而导致为新负载分配的 GID 与旧器件负载相同。
3. 新负载所含物理地址子集 PA[11:6] 与旧器件负载相同。

解决方案

影响:

满足上述条件时,新负载可能错误关联旧器件负载的外部错误,并生成同步外部异常中止,即使新负载无需报告任何异常中止也是如此。

变通方法:

无需变通方法。只要同步异常中止异常处理程序重新执行新负载,即可解决此状况,且负载将不会检测到精确的外部异常中止。

此外还将生成异步外部异常中止(除非在旧器件负载完成时将其屏蔽)。

如果虚拟机管理器公开的器件可向其访客触发外部异常中止,则该虚拟机管理器中可能包含异步外部异常中止以及 DSB-SY、未掩码的 PSTATE.A 和 ISB 序列。在向访客取消此处 SError 的掩码后,就会立即生成虚拟机管理器属性 SError。

此序列足以使错误条件完成,后续负载将不会受到此序列之前发生的器件负载的影响。

受影响的配置:

具有 Arm Cortex-A72 (APU) 的所有 Versal 器件。

解决办法:
请参阅此第三方勘误表 (Arm, Inc. 1537003)。不对该问题进行修复。

最新文章

最新文章