> "Regarding this issue, we have conducted debugging, and reproduced the two situations you mentioned as follows:
>
> 1. Sometimes it takes several seconds and multiple attempts until the USB port is enumerated.
> A: Because there is a CRC error in the packet sent by the host, then the host resets and enumerates again. Because the wrong packet is sent by the host,
> and the host actively re-enumerates, ROM code cannot control.
But why exactly is there a CRC error in the first place? We really don't think this may be simply blamed on the host as the exact same host can work without any such issues with non-SCFW based i.MX chips in serial download mode both with older ones (e.g. i.MX 6, 6ULL and 7) as well as later ones (e.g. i.MX 8M Mini and Plus).
> 2. The issue appears more often when using the reset button.
> A: If reset device during enumeration, the ROM code will restart from the beginning. Obviously, it will not respond to the host at this time, so host
> must re-enumerated.
Sure, but we are not talking about the initial enumeration, we are talking about it having to re-enumerate over and over sometimes even leading to no successful enumeration at all.
> We found that in both cases, the enumeration can be successful in the end.
While so far we have not seen otherwise on them NXP MEK reference boards we do need to conduct more (automated) testing to confirm this.
> Do you see the same phenomenon (enumeration can be successful in the end) as ours?"
No, we see cases where the enumeration really fails and we do need to either power-cycle or reset the board again to trigger a complete re-try in order to ever get to an enumerated state.
As a background, we do have our automated testing infrastructure where all of this can be tried automatically millions of times. And as indicated above, our setup works very reliably using i.MX 6, 6ULL, 7, 8M Mini and 8M Plus while we see lots of problems with i.MX 8 and 8X aka the SCFW based boards.
> We are still waiting for Customer i.MX8 chip version,
Given our early access partner status we really do have any and all different versions of your chips. And while we saw this issue much more often on them initial ones (e.g. i.MX 8 A0 silicon as well as i.MX 8X A0 and B0 silicon) the issue persists but somewhat with a lower rate with later chip versions (e.g. i.MX 8 B0 silicon and i.MX 8X C0 silicon).
> and did they use is USB2.0 controller or usb 3.0 controller.
We really tried any and all such variants without seeing any significant difference.
> We get attached CRC kind error , attached is USB protocol log, need customer double check is it
> same as they met error?
Yes, this is definitely also something we are seeing when hooking up our USB analyser. But the test results do not seem consistent meaning this seems not the only issue at hand.
Anyway, we suspect that the boot ROM may only do limited tuning of them USB settings as compared to the full USB stack running later in Linux where we are not seeing any such USB comunication issues at all. We are also in the process to run full USB 3.0 compliance testing with our hardware to confirm this. Could you please comment/confirm this?
BTW: We also noticed that NXP seems to keep further tuning even the regular Linux USB stack (e.g. in the latest NXP BSP 5.10.9-1.0.0). However, we do not have any visibility into what/why exactly NXP is doing this...