Part Number:TCI6638K2K
Tool/software: Linux
Hello TI,
I am writing a file to USB pen drive from UBoot. I see an error randomly during some transfers. The error is as below:
XHCI bulk transfer timed out, aborting...\n in xhci-ring.c
I checked the TRB type read in xhci_wait_for_event in uboot. As expected the value is 32 (TRB_TRANSFER) for some time but afterwards it suddenly changes into 34(TRB_PORT_STATUS) and it hits the bug in thus function:
if (type == TRB_PORT_STATUS)
/* TODO: remove this once enumeration has been reworked */
/*
* Port status change events always have a
* successful completion code
*/
BUG_ON(GET_COMP_CODE(
le32_to_cpu(event->generic.field[2])) !=
COMP_SUCCESS);
If i remove this BUG_ON, the subsequent iterations return event not ready:
if (!event_ready(ctrl))
continue;
This causes timeout and hits the transfer timeout.
Please let me know what could be the cause of this behaviour. I am using Tanscend flash drive 2.0 and it is always connected to the board during the transfer so TRB_PORT_STATUS is not supposed to happen. Please advice.
NB: In case of small file transfers of ~2-3MB this error is never hit. Only in case the file size is large >32MB this error is hit.
Regards, Yunas