Zynq-7000 SoC,USB  – 软件复位后的第一个SOF可能已损坏-Xilinx-AMD社区-FPGA CPLD-ChipDebug

Zynq-7000 SoC,USB – 软件复位后的第一个SOF可能已损坏

描述

在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。

注意:此解决方案可以降低发生此问题的可能性,但可能无法完全消除此问题。

请登录后发表评论

    没有回复内容