UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 47540

Zynq-7000 SoC、USB — 软件重置后的第一个 SOF 可能会崩溃

描述

在 USB 重置过程中(速度协商和短促声波),如果协议引擎将 SOF 命令发送给端口控件,该端口控件将过滤掉那些 SOF。但在重置结束时(从主机返回的短促声波结束),如果协议引擎发送一个 SOF,ULPI 端口控件在发送更新 opmode 命令之前会将 SOF 发送给 PHY。这会导致在线发送无效数据包。ULPI 协议中的无效数据包很快就是一个 NOPID Tx 命令,紧接着是一个 STP 脉冲。

在 USB 重置 (usb.PORTSCx[PR] = 0) 之后,在 ULPI 后复位处理完成前,请勿启用 usb.USBCMD[RS],这可以通过读取 prtsc.pr 寄存器来检查。这可确保主机不会过早发送 SOF。

解决方案

影响:

很小。这个问题的发生取决于内部计数器启动和重置事件之间的具体时序。这不能由主机软件决定,因此它被认为是一个随机事件。从 USB 角度看,这个问题并不重要,因为设备应该忽略无效的数据包。

解决方法::

在 USB 重置之后,在 ULPI 后复位处理完成前,请勿启用 usb.USBCMD[RS]。

受影响的配置:

使用 USB 控制器的系统。

受影响的器件修订版本:全部,无计划修复。请参考(Xilinx 答复 47916) - Zynq-7000 设计咨询主答复记录


要解决这个问题,在 USB 重置 (usb.PORTSCx[PR] = 0) 之后,在 ULPI 后复位处理完成前,请勿启用 usb.USBCMD[RS],这可以通过读取 usb.PORTSCx[PR] 寄存器位来检查。这可确保主机不会过早发送 SOF。

注:该解决方法可减少出现问题的可能性,但并不能完全消除问题。

AR# 47540
日期 05/23/2018
状态 Active
Type 设计咨询
器件
  • Zynq-7000
的页面