Versal ACAP、APU - ELR 错误报告序列中加密指令之间的中断

电子说

1.3w人已加入

描述

AESE Qy、Qx AESMC Qy、Qy

AESD Qy、Qx AESIMC Qy、Qy

解决方案

影响:

如果满足上述条件,异常序列中记录的返回地址将不正确,序列中的第二条加密指令将被执行两次,这可能会导致数据损坏。

变通方法:

Arm 预期 AES 指令仅用于手动优化的 AES 库。 AES、ECB 和 CBC 模式在单个操作中读取和存储向量寄存器。这些不受错误影响。

在 AES GCM 模式下,可以读取 32 位值用作计数器。这满足条件 2。您可以通过将值复制到另一个 Q 寄存器并按上述序列使用它来实现具有 32 位计数器值的 AES GCM,从而避免条件 2。

这些加密扩展是可选的。运行 aarch32 软件时,操作系统可能会声明这些未实现。

受影响的配置:

此错误影响在以下条件下包含 Arm Cortex-A72 (APU) 的所有 Versal 器件:

1. 内核处于 AArch32 状态:A32 或 T32。
2. 执行指令并产生 32 位结果。
3. 上述执行中描述了两个加密指令序列之一,使用条件 2 的 32 位结果作为源操作数。
4. 中断在序列中的两条指令之间被断言和执行。

解决办法:

这是第三方错误(Arm, Inc. 1655431); 无修复计划。

审核编辑 黄昊宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分