Flashing TX1 on custom carrier board

I am bringing up a new custom carrier board and having trouble flashing over USB 2.0 OTG. The device enumerates just fine, and I can successfully flash a new DTB file, but if I try to flash the entire kernel it fails to write to the APP partition. I have retried multiple times, but it always fails at 0% progress. I have tried using a shorter USB cable, and both USB 2 and 3 settings in VirtualBox. I can transfer the same TX1 module to the Nvidia Dev Kit and it will flash just fine with the same setup.

I did not implement the load switch on this USB port since it will only ever be used for recovery. USB_ID and USB_VBUS are tied to their corresponding pins on the TX1. I also did not implement an EEPROM chip as the documentation says this isn’t required when using a config file with the board ID.

I have compared the console outputs from a successful flash on the Dev Board and the failed flash on my board, and there is no difference in the printouts until the failure. Is there something else that should be on the carrier board that I am missing? Thanks!

Failed Flash.txt (10 KB)

Hi Undertow10, I am not sure of differences with your custom carrier, however have you tried flashing from a native Ubuntu 14.04 x86_64 host?
Flashing from virtual machine isn’t officially supported, as it may be unreliable on some configurations, or work intermittently.
The symptoms of this issue include failures during the partition data transfers, as you seem to have encountered.

Thanks Dusty – it worked. It’s amazing that I can flash the Nvidia Dev Board dozens of times flawlessly using VirtualBox and then it fails every time on my carrier board. Is this an indication of a PCB layout problem?

It’s a side effect of how virtual machines deal with USB. Perhaps changes in identifying the USB pass through for your board changed something. If USB works correctly for any configuration (using a real host instead of VM), then it is highly unlikely it is the fault of PCB layout. VMs are very unreliable.