描述
在USB重置过程(速度协商和啁啾)期间,如果协议引擎将SOF命令发送到端口控制,则端口控制过滤掉那些SOF。但是,在复位结束时(从主机返回啁啾结束),当协议引擎发送SOF时,ULPI端口控制在发送update opmode命令之前将SOF发送到PHY。这会导致在线路上发送无效数据包。 ULPI协议中的无效数据包是NOPID Tx命令,紧接着是STP脉冲。
USB复位(usb.PORTSCx [PR] = 0)后不要启用usb.USBCMD [RS],直到ULPI后置复位处理完成,可以通过读取prtsc.pr寄存器来检查。这可确保主机不会过早发送SOF。
解
影响: |
次要。出现此问题取决于内部计数器启动和重置事件之间的特定时间。因为这不能由主机软件确定,所以它被认为是随机事件。从USB的角度来看,这个问题并不重要,因为器件应该忽略无效的数据包。 |
解决方法: |
USB复位后不要启用usb.USBCMD [RS],直到ULPI后复位处理完成。 |
受影响的配置: |
使用USB控制器的系统。 |
受影响的器件版本: | 全部,没有计划修复。请参阅(Xilinx答复47916) – Zynq-7000设计咨询主答复记录 |
要解决此问题,请不要在USB复位(usb.PORTSCx [PR] = 0)后启用usb.USBCMD [RS],直到完成ULPI后复位处理,可通过读取usb.PORTSCx [PR]进行检查]寄存器位。这可确保主机不会过早发送SOF。
注意:此解决方案可以降低发生此问题的可能性,但可能无法完全消除此问题。
没有回复内容