We’re making a custom board for Jetson Orin NX 16G based on the Holybro Jetson Baseboard. Currently we’re facing a problem with flashing Jetpack 6.1. The flash script got stuck at “Waiting for target to boot-up…” then timed out.
Even we came across similar errors in some occasions and they turned out to be hardware issue.
Some scenarios which I remember…
The NVMe, if its behind a PCIe switch and if it has signal integrity/etc issues, then PCIe reset wont happen properly and we may get this timeout error…
The same NVMe if connected on a direct PCIe lane on custom carrier board, from the SOM module it might work
NVMe from a different OEM can also be tried some times to check if at makes any difference…
Maybe it’s NVME related. I’m gonna tell my hardware team about the things you just mentioned this information and hopefully they’ll have some ideas. Thanks, Nagesh
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Timeout
Device failed to boot to the initrd flash kernel. Please retrive the serial log during flashing to debug further.
Cleaning up...
Regarding the flashing timeout mentioned above, the issue is typically caused by the board itself.
We have noticed that your usb device mode got detected failed as this line only comes once.
Could you check the custom board design and also the usb device tree is correct?
We tried to change only mode = “otg” to mode = “peripheral” and flash was still successful, however we couldn’t get /dev/ttyACM* for the initial system setup.
Also our board use micro-USB port to flash instead of USB type-C. Does it affect the DTB?
The logic here is we give you a hardcoded method to let USB mode always to be in device mode when doing flash.
However, when kernel is up, your device tree needs to match your carrier board. This leads to 2 possible reasons that your USB device mode not work.
Your board design could be wrong.
Your device tree setting could be wrong.
For example, a fully functioning micro-USB port requires a ID and VBUS-DET pin. Not sure if they are present in your board design.
If they are present, then obviously you didn’t put them into device tree.
Regarding your concerns, the /dev/ttyACM* may not appear for a couple of reasons, but I would recommend if the micro-USB port is only used as a device/flashing port, keep mode = "peripheral" and remove Type-C/OTG role-switch endpoint references that may not exist on the custom board. This also should work if there is no VBUS or ID detect signals:
usb2-0 {
status = “okay”;
mode = “peripheral”;
};
If the board has VBUS_DETECT, add a proper usb-b-connector node with vbus-gpio(replacing X and Y with the appropiate GPIO of the VBUS_DETECT signal).
After boot, verify that nv-l4t-usb-device-mode is running, because /dev/ttyACM* depends on the USB gadget service, not only on flashing success. Check the service status and logs with:
sudo systemctl status nv-l4t-usb-device-mode
journalctl -u nv-l4t-usb-device-mode --no-pager
I hope this helps! If you have any questions, don’t hesitate on letting me know.
Wow, thank you so much for the detailed information. That’s really helpful.
Let me try the DTB modification and see what happens.
Besides, sometimes we also have a problem at the beginning of the flashing process:
[ 0.3173 ] Sending bct_mem
[ 0.3477 ] Sending blob
[ 0.4358 ] ERROR: might be timeout in USB write.
Error: Return value 3
We’ve noticed that it depends on the timing. If we run the flash command almost immediately after Jetson boots into recovery mode, this error won’t happen. However, if we wait for a while, the error will occur and flash script will stop.
If you hit " Sending bct_br" + “ERROR: might be timeout in USB write”, then please refer to this
But please be aware that this method is only for this " Sending bct_br" + “ERROR: might be timeout in USB write” combination.
If your error is not this kind, then you are hitting different kind of errors.
I’ve disabled USB autosuspend on my host PC, but the problem still occurs.
If your error is not this kind, then you are hitting different kind of errors.
" Sending bct_br" + “ERROR: might be timeout in USB write” is a different problem that we’ve encountered, but occasionally. The problem in the original post is related to our board design, and it has been fixed.