Zynq-7000 SoC — 勘误解决方法应对措施

Zynq-7000 生产勘误项目是(Xilinx 答复 47916)中所列项目的子集,通常包括由 Xilinx 和 Linux 社区实现的软件解决方法应对措施。

下表是每个生产勘误项目的状态。

注:第三方勘误项目(如 Arm)在(Xilinx 答复 55518)中列出。

用户功能列图例:

  • ~ = 不适用
  • ^ = 指交替列
  • v = 没有解决方法,被视为一个极小的问题
  • X = 解决方法已落实(或即将落实)或者问题可避免
  • # = 咨询用户,评估其情形
  • * = 无法提供解决方法
  • = 调查中
  • 用户指南列:本列包含关于实现解决方法的说明。

    解决方法说明列:本列包含关于实现解决方法的具体评论,或解决方法可能不适用的原因。每个勘误项目及可能的解决方法的详细情况都在单独的 Xilinx 答复记录中进行了具体说明。

    注意:随着新工具、文档以及 Zynq 解决方案的其它组件的发布,该信息将会发生变化。

    生产勘误项目:

    器件模块 说明 (Xilinx Answer) 第三方勘误表参考 GNU C/C++ Linux 独立 其它操作系统 应用层 调试 Perf. PMU 用户指南
    DDRC 不支持 LPDDR2 每个库刷新 (Xilinx 答复 47580) ~ X X X X X ~ ~ ~ Xilinx 工具不提供每个库刷新选项。
    DDRC 当读取操作在 128 个 DDR 时钟周期内按照 MRW 执行时的读取操作故障 (Xilinx 答复 47581) ~ X X X X X ~ ~ ~ Xilinx 工具可将 reg_ddrc_t_mod 设置为 512。
    GigE 控制器接收到的单播和广播暂停帧没有被过滤掉 (Xilinx 答复 52025) ~ ~ ^ ^ ^ # ~ # ~ 操作系统:转移到应用,可最大限度减少性能影响。
    应用:正在调查。
    性能:正在调查。
    GigE 退避时间比标准要求快 (Xilinx 答复 52026) ~ ~ ~ ~ ~ v ~ ~ ~ 解决方法不可行。
    应用:极小的协议合规问题。
    GigE 多达 1536 字节的数据包允许标记为 VLAN (Xilinx 答复 52027) ~ ~ v v v v ~ ~ ~ 所有:极小的协议合规问题。
    GigE 生成大量接收资源错误时,可能会出现接收路径锁定问题 (Xilinx 答复 52028) ~ ~ X X # ~ ~ # ~ 独立:在 14.5 中添加的解决方法。
    Linux:在 14.5 中添加的解决方法。
    其它操作系统:咨询。
    器件模块 说明 (Xilinx Answer) 第三方勘误表参考 GNU C/C++ Linux 独立 其它操作系统 应用层 调试 Perf. PMU 用户指南
    SDIO DMA 脉冲串事务处理对齐和长度要求 (Xilinx Answer 47531) ~ ~ X X # # ~ ~ ~ Linux:都与 4 字节对齐。
    独立:都与 4 字节对齐。
    其它操作系统:咨询。
    应用层:咨询。
    SDIO SDIO 软件复位序列可以终止互联 (Xilinx Answer 47532) ~ ~ X X # # ~ ~ ~ Linux:都有正确的序列。
    独立:都有正确的序列。
    其它操作系统:咨询。
    应用层:咨询。
    SDIO 如果自动 CMD12 被激活,可以发布第二个 CMD12 (Xilinx 答复 47533) ~ ~ ^ ^ ^ # ~ ~ ~ 应用层:避免 SD 堆栈中的序列。
    SDIO 当 Abort CMD 发布时,将无法正确释放 ADMA2 模式 (Xilinx Answer 47534) ~ ~ ^ ^ ^ # ~ ~ ~ 应用层:避免 SD 堆栈中的序列。
    SDIO 在完成 CMD13 之前转移全部断言 (Xilinx Answer 47535) ~ ~ ^ ^ ^ # ~ ~ ~ 应用层:避免 SD 堆栈中的序列。
    SDIO 当 CMD19 处于进程中,无法正确处理 CMD13 (Xilinx Answer 47536) ~ ~ ^ ^ ^ # ~ ~ ~ 应用层:避免 SD 堆栈中的序列。
    器件模块 说明 (Xilinx Answer) 第三方勘误表参考 GNU C/C++ Linux 独立 其它操作系统 应用层 调试 Perf. PMU 用户指南
    SMC 带 ECC 的 NAND 可能不会去断言数据事务处理间的 CS (Xilinx Answer 47517) ~ ~ X X # # ~ ~ ~ Linux 与独立操作系统:列更改命令从未使用。
    其它操作系统:咨询。
    应用层:对具体器件可能有影响。
    SMC 潜在的 SRAM/NOR 数据错误 (Xilinx 答复 47518) ~ ~ ~ ~ ~ ~ 正在调查
    SMC NAND ECC 状态寄存器会错误地报告时钟周期错误 (Xilinx 答复 47520) ~ ~ X X # ~ ~ ~ ~ Linux 与独立操作系统:总是避免序列。
    其它操作系统:咨询信息,请查看 (Xilinx 答复 47520)
    SMC SMC 并行 (SRAM/NOR) 接口并未为 64 MB 存储正确断言 CS0 (Xilinx Answer 61637) ~ X X X X X ~ ~ ~ (Xilinx 答复 60848)中提供有解决方案
    SMC SMC 并行 (SRAM/NOR) 接口地址位 25 对于 64 MB 存储可逆变 (Xilinx Answer 61638) ~ X X X X X ~ ~ ~ (Xilinx 答复 60848)中提供有解决方案
    器件模块 说明 (Xilinx Answer) 第三方勘误表参考 GNU C/C++ Linux 独立 其它操作系统 应用层 调试 Perf. PMU 用户指南
    定时器 全局计时器能为相同事件发送两个中断 (Xilinx Answer 47545) Arm 740657 ~ ~ ~ # ~ ~ ~ ~ Linux 与独立操作系统:不使用全局定时器。
    其它操作系统:咨询信息,请查看 (Xilinx 答复 47545)
    器件模块 说明 (Xilinx Answer) 第三方勘误表参考 GNU C/C++ Linux 独立 其它操作系统 应用层 调试 Perf. PMU 用户指南
    USB 会话不再有效时,器件模式不产生端口更改中断 (Xilinx 答复 47538) ~ ~ X X # ~ ~ ~ ~ Linux:器件模式:在 14.5 中添加的解决方法。
    Linux:OTG:没有计划解决方法。
    独立:没有计划解决方法。
    其它操作系统:咨询。
    Soln:Vbus 放电可通过结束 B 会话检测。
    USB 在端口进入挂起状态前断言暂停位 (Xilinx Answer 47539) ~ ~ ~ ~ ~ # ~ ~ ~ 应用层:应用延迟超过挂起位延迟。
    USB 软件复位后的首个 SOF 会被破坏 (Xilinx Answer 47540) ~ ~ ~ ~ ~ ~ ~ ~ ~ 控制器硬件将忽略 SOF 数据包。
    USB 在硬件主机模式下,NYET 会减少 NAK 计数器 (Xilinx 答复 47541) ~ ~ ~ ~ ~ ~ ~ 很小,不提供解决方法,请查看(Xilinx 答复 47541)
    USB ULPI 视口对扩展地址无效 (Xilinx 答复 47543) ~ ~ ~ ~ ~ * ~ ~ ~ 无法提供解决方法。
    I2C 快速模式下运行频率超过 384kHz 违反 tLOW; STA 时序要求 (Xilinx Answer 60693) ~ ~ ~ ~ ~ ~ ~ ~ ~ (Xilinx 答复 60693)中查看解决方法。
    I2C 60694 - Zynq-7000 SoC、I2C — 运行速度快于 384 kHz 的快速模式违反了 tBUF;STA 时序要求 (Xilinx Answer 60694) ~ ~ ~ ~ ~ ~ ~ ~ ~ (Xilinx 答复 60694)中查看解决方法。
    I2C I2C 反复启动时缺失仲裁 (Xilinx Answer 60695) ~ ~ X X ~ ~ ~ ~ ~ 独立:在 2014.4 中添加的解决方法
    Linux:在 2015.1 中添加的解决方法
    I2C 标准模式下运行频率超过 90kHz 违反 tHD; STA 时序要求 (Xilinx Answer 59366) ~ ~ ~ ~ ~ ~ ~ ~ ~ (Xilinx 答复 59366)中查看解决方法。
    I2C I2C 主机生成无效的读取事务处理 (Xilinx 答复 61664) ~ ~ X X ~ ~ ~ ~ ~ 独立:在 2015.1 中添加的解决方法
    Linux:在 2015.1 中添加的解决方法
    I2C 缺失 I2C 主机完成中断 (Xilinx Answer 61665) ~ ~ X X ~ ~ ~ ~ ~ 独立:在 2014.4 中添加的解决方法
    Linux:在 2015.1 中添加的解决方法
    I2C Zynq PS I2C 控制器中缺少毛刺过滤器实现 (Xilinx Answer 61861) ~ ~ ~ ~ ~ ~ ~ ~ ~ PCB 设计指南将更新
    I2C Slave Receiver 模式下 I2C 事务处理损坏 (Xilinx Answer 63025) ~ ~ ~ ~ ~ ~ ~ ~ ~ (Xilinx 答复 63025)中查看解决方法。
    I2C PS I2C Slave Monitor 模式会锁定 I2C Bus (Xilinx Answer 63245) ~ ~ ~ ~ ~ ~ ~ ~ ~ (Xilinx 答复 63245)中查看解决方法。
    器件模块 说明 (Xilinx Answer) 第三方勘误表参考 GNU C/C++ Linux 独立 其它操作系统 应用层 调试 Perf. PMU 用户指南
    APU 处理器可能在非对齐访问交叉页面边界的第二部分失去观察点 (Xilinx Answer 47546) Arm 751476 ~ ~ ~ ~ ~ v ~ ~ 调试:咨询,在(Xilinx 答复 47546)中查看解决方法。
    APU ASID 变更会造成错误的 MMU 解读 (Xilinx 答复 47547) Arm 754322 ~ X ~ # ~ ~ ~ ~ 仅应用于使用地址转换的系统。
    Linux:默认情况下,14.6/2013.2 中启用了解决方法。
    Linux 说明:参考 CONFIG_Arm_ERRATA_754322。
    其它操作系统:咨询。
    APU 可能无法确保相同存储器位置的正确读取顺序 (Xilinx 答复 47548) Arm 761319 ^ ^ ^ ^ ~ ~ ~ 编译器:针对 2013.4 规划的编译器解决方案
    其它:咨询。
    APU 当相同高速缓存线同时被 CPU 和 ACP 访问时,SMP 模式下会发生系统死锁 (Xilinx Answer 47549) Arm 761320 ~ X ~ # ~ ~ ~ ~ 仅应用于 SMP 模式。
    Linux:未来版本将在默认情况下启用解决方法。
    Linux 说明:参考 CONFIG_Arm_ERRATA_742230。
    其它操作系统:咨询。
    APU 可能无法在内部共享存储区域通过 MVA 对高速缓存线进行维护操作 (Xilinx 答复 47550) Arm 764369 ~ X ~ # ~ ~ ~ ~ 仅适用于 SMP 模式。
    Linux:默认情况下,14.6/2013.2 中启用了解决方法。
    Linux 说明:参考 CONFIG_Arm_ERRATA_764369。
    其它操作系统:咨询。
    Soln:在高速缓存维护操作之前添加一个 DSB。
    APU 在性能监视事件 0x0C 和 0x0D 中执行了 ISB 指令计数 (Xilinx 答复 47551) Arm 725631 ~ ~ ~ ~ ~ ~ ~ v PMU:影响很小无法提供解决方法。
    APU Arm MainID 寄存器在 APB 上没有另外命名为调试接口 (Xilinx 答复 47552) Arm 729817 ~ ~ ~ ~ ~ v ~ ~ 调试:调试器不访问 MainID 寄存器。
    APU 当一个指令被写入一个中止的加载/存储之后的 ITR 时,Arm 调试执行挂起 (Xilinx 答复 47553) Arm 729818 ~ ~ ~ ~ ~ X ~ ~ 调试:调试器中的解决方法。
    Soln:调试器实现指令合并,而且这个问题目前还没有出现。
    器件模块 说明 (Xilinx Answer) 第三方勘误表参考 GNU C/C++ Linux 独立 其它操作系统 应用层 调试 Perf. PMU 用户指南
    APU 调试程序计数器采样 (DBGPCSR) 寄存器格式错误 (Xilinx 答复 47554) Arm 751471 ~ ~ ~ ~ ~ X ~ ~ 调试:调试器中的解决方法。
    Soln:调试器读取 DBGPCSR 寄存器,而且这个问题目前还没有出现。
    APU 在非缓存读取操作时,可能报告了两次不准确的终止操作 (Xilinx 答复 47555) Arm 752519 ~ ~ ~ ~ ~ ~ ~ ~ 无需解决方法。
    注:中止是不可恢复的系统错误。
    APU 在相同的缓存线中出现重复的 CPU 存储指令会造成存储延迟显示 (Xilinx 答复 47556) Arm 754323 ^ # # # ~ ~ ~ ~ 没有计划解决方法。
    APU 不支持流水线高级粘滞位 (Xilinx 答复 47557) Arm 756421 ~ ~ ~ ~ ~ v ~ ~ 调试:未使用的特性
    APU 未分配的存储器提示指令会生成未定义的异常,而不是作为 NOP (Xilinx 答复 47558) Arm 757119 v ^ ^ ^ ~ ~ ~ ~ 没有计划解决方法。
    APU MRC 和 MCR 指令将不计入 0x68 事件中。 (Xilinx 答复 47559) Arm 761321 ~ ~ ~ ~ ~ ~ ~ v PMU:影响很小
    APU DAP 控制器对 DBGPRSR 或 DBGOSLSR 的读访问会生成非预期的未定义异常 (Xilinx 答复 47560) Arm 764319 ~ ~ ~ ~ ~ # ~ ~ 调试:咨询。
    APU 操作系统的 L2 高速缓存优先级和 Dev 读取特性可能会为可高速缓存的读取事务处理带来 QoS 问题 (Xilinx Answer) 47561 Arm 729815 ~ ~ ~ v ~ ~ ~ ~ 所有:未使用的特性
    器件模块 说明 (Xilinx Answer) 第三方勘误表参考 GNU C/C++ Linux 独立 其它操作系统 应用层 调试 Perf. PMU 用户指南
    APU L2 高速缓存的一个连续写入流可以使针对相同内存区域的读取停止 (Xilinx 答复 47562) Arm 754670 v v v v v ~ v ~ 无解决方法。
    编译器:正在调查。
    操作系统:正在调查。
    APU 二级缓存控制器会通过偏移设置为 23 的 4 KB 边界执行预取操作 (Xilinx 答复 47563) Arm 765569 ~ X X # ~ ~ ~ ~ Linux:在所有版本中已避免
    独立:在所有版本中已避免
    其它操作系统:咨询。
    APU 可能甚至在禁用的数据缓存中分配 PLD 指令 (Xilinx 答复 47584) Arm 771221 ~ X X v ~ ~ # ~ Linux:默认状态下,已启用数据高速缓存。
    独立:默认状态下,已启用数据高速缓存。
    其它操作系统:咨询何时禁用数据高速缓存
    应用:咨询何时禁用数据高速缓存
    性能:禁用数据高速缓存时的影响
    APU ISB 指令无法确保启用/禁用跟踪的调试启用访问权限的可视性 (Xilinx 答复 47585) Arm 771224 ~ ~ ~ ~ ~ v ~ ~ 调试:咨询。
    APU 对终止存储器区域的预测性缓存读取清除了内部独占监控,会导致活锁 (Xilinx 答复 47586) Arm 771225 v ~ ~ v ~ ~ v ~ 编译器:默认情况下启用了分支预测,用户在禁用分支预测时必须小心行事。
    APU 始终报告 BTAC 和 GHB 的奇偶校验错误,无论奇偶校验启用位设置如何 (Xilinx 答复 47587) Arm 771223 ~ v v v ~ ~ ~ ~ 不提供解决方法,请查看(Xilinx 答复 47587)
    APU LDREX 之前绝对有序的写入可能会死锁处理器 (Xilinx 答复 51122) Arm 782772 ~ v v v ~ ~ ~ ~ 编译器:LDREX 不是驱动的编译器。
    操作系统:该问题还未出现。
    APU 数据缓存维护操作中止,随后为 ISB,之间没有任何 DSB,这可能会导致锁死 (Xilinx 答复 52031) Arm 775420 ~ X X # ~ ~ ~ ~ Linux:默认情况下,14.6/2013.2 中启用了解决方法。
    Linux 说明:参考 CONFIG_Arm_ERRATA_775420。
    独立:在 14.6/2013.2 中添加的解决方法。
    其它操作系统:咨询。
    器件模块 说明 (Xilinx Answer) 第三方勘误表参考 GNU C/C++ Linux 独立 其它操作系统 应用层 调试 Perf. PMU 用户指南
    APU 一个包含 DMB 指令的短回路可能会在执行 CP15 广播操作的另一个处理器上导致拒绝服务 (Xilinx 答复 52032) Arm 794072 ~ X ~ v ~ ~ ~ ~ 应用于支持短回路代码的 SMP 模式。
    Linux:默认情况下,14.6/2013.2 中启用了解决方法。
    Linux 说明:参考 CONFIG_Arm_ERRATA_742230。
    其它操作系统:咨询。
    APU 禁用 MMU 的投机性指令取出可能不符合架构要求 (Xilinx 答复 52033) Arm 794073 ~ ~ X # ~ ~ ~ ~ Linux:MMU 总是假定被启用。
    独立:咨询。
    其它操作系统:咨询。
    APU 到不可缓存、可共享正常存储器区的写请求可能被执行两次,这就会导致软件同步问题 (Xilinx 答复 52034) Arm 794074 ~ X ~ # ~ ~ ~ ~ 应用于 SMP 模式。
    Linux:使用所实现的 STREX 实现的解决方法。
    其它操作系统:咨询。
    应用:咨询。
    APU 更新转换项,移动页面映射,可能错误导致意外的转换故障 (Xilinx 答复 52035) Arm 782773 ~ v ~ v ~ ~ ~ ~ Linux:没有计划解决方法。
    独立:使用静态 MMU 转换不适用。
    其它操作系统:咨询。
    APU Cortex-A9 性能监控器事件 0x0A(异常返回)可能会使用基址寄存器回写数两次 LDM PC ^ 指令 (Xilinx 答复 52036) Arm 775419 ~ ~ ~ ~ ~ ~ ~ v PMU:影响很小
    APU 一个伪造的事件 0x63(通过的 STREX)可以在 LDREX 指令上报告,该指令是以针对非常有序的内存区域写入为先导的 (Xilinx 答复 55018) Arm 782774 ~ ~ ~ ~ ~ ~ ~ v PMU:影响很小
    APU 始终被处理器写入的一级缓存行一致性请求可能出现服务拒绝 (Xilinx 答复 55325) Arm 791420 ~ v v v ~ ~ ~ ~ Linux:咨询。
    独立:咨询。
    其它操作系统:咨询。
    APU 页面一级缓存最后一行的branch-to-self指令可能导致服务拒绝。 (Xilinx 答复 55326) Arm 799769 ~ v v v ~ ~ ~ ~ Linux:咨询。
    独立:咨询。
    其它操作系统:咨询。
    器件模块 说明 (Xilinx Answer) 第三方勘误表参考 GNU C/C++ Linux 独立 其它操作系统 应用层 调试 Perf. PMU 用户指南
    APU CPU 中的 Write Context ID 事件在读取访问时更新 (Xilinx 答复 55327) Arm 795769 ~ ~ ~ ~ ~ ~ ~ v PMU:影响很小
    APU DBGPRSR粘性复位状态位被 CPU 调试复位设为 1,而不是被 CPU 非调试复位设置。 (Xilinx 答复 55328) Arm 799770 ~ ~ ~ ~ ~ v ~ ~ 调试:正在调查