最近调公司一款芯片的USB接口的驱动,USB3.0的控制器,枚举失败,有如下错误打印:
device descriptor read/8, error -110
即读设备描述符超时,通过USB协议分析仪抓包,发现host没有发出GET_DESCRIPTOR请求,分析怀疑:
1.驱动发出的GET_DESCRIPTOR请求数据不对
2.有cache一致性问题导致host取到的数据不对
通过在驱动中加打印,将GET_DESCRIPTOR请求的Transfer TRB和host收到的Event TRB的数据都打印出来,经过分析GET_DESCRIPTOR请求的Transfer TRB数据没有问题,host也收到了GET_DESCRIPTOR请求的中断和Transfer