Re: [PATCH] MdeModulePkg/UsbBusDxe: some USB PenDisk fails enumeration.
Feng Libo <lbfeng@...>
toggle quoted messageShow quoted text
Hello, Mr. Jiang,
Thank for the review.
The original enumeration steps in the function of UsbEnumerateNewDev of file UsbEnumer.c: 1 reset the port, 2 set the usb device address, 3 get the Max Packet Size, 4 get the full device descriptor. However, when plugging a USB PenDisk with Innostor USB
controller chip (VID=0x1F75, PID=0x917, USB3.1), the fourth step always fails, trace as below:
XhcCheckUrbResult: TRANSACTION_ERROR! Completecode = 4 XhcControlTransfer: error - Device Error, transfer - 40 UsbGetOneConfig: failed to get full descript Device Error UsbBuildDescTable: failed to get configure (index 0) UsbEnumerateNewDev: failed to build descriptor table - Device Error
The host controller need to get the full device descriptor, but this moment, the Pendisk device doesn't response any more. Then timeout. and UsbEnumerateNewDev complains : failed to build descriptor.
We have three Pendisks from different manufacturers, all with Innostor USB controller chip. they all can't be enumerated all. And we observed the problem on both Huawei KunPeng(华为鲲鹏）and Loognson（龙芯）platforms.
The three Pendisks always fail the USB enumeration. Other USB 2.0 and USB 3.0 on hand can work well.
With the patch, the three pendisks and other pendisks can all work well.
ZD Technology (Beijing) Co., Ltd
发件人："Jiang, Guomin" <guomin.jiang@...>
收件人："firstname.lastname@example.org" <email@example.com>,"Jiang, Guomin" <guomin.jiang@...>,"lbfeng@..." <lbfeng@...>
主题：RE: [edk2-devel] [PATCH] MdeModulePkg/UsbBusDxe: some USB PenDisk fails enumeration.