TX1 flash gets stuck during post installation.

After a dist update on my TX1, I get the following message while booting up.

tegra-xhci tegra-xhci: failed to init firmware from filesystem: tegra21x_xusb_firmware

The only way to access the TX1 is by connecting a keyboard to the micro-usb.
I did however try to flash it, but it keeps getting stuck in the same place during post installation. Here are the last lines of my terminal output.

done.
system.img built successfully. 
Existing tbcfile(/home/thomas/jetson/64_TX1/Linux_for_Tegra_64_tx1/bootloader/nvtboot_cpu.bin) reused.
copying cfgfile(/home/thomas/jetson/64_TX1/Linux_for_Tegra_64_tx1/bootloader/t210ref/cfg/gnu_linux_tegraboot_emmc_full.xml) to flash.xml... done.
creating gpt(ppt.img)... 

*** GPT Parameters ***
device size -------------- 31276924928
bootpart size ------------ 8388608
userpart size ------------ 31268536320
Erase Block Size --------- 2097152
sector size -------------- 4096
Partition Config file ---- flash.xml
Visible partition flag --- GP1
Primary GPT output ------- PPT->ppt.img
Secondary GPT output ----- GPT->gpt.img
Target device name ------- none

*** PARTITION LAYOUT(23 partitions) ***
[     BCT] BH            0         8191       4.0MiB 
[     NVC] BH         8192        16383       4.0MiB nvtboot.bin
[     PPT] UH            0         4095       2.0MiB 
[     GP1] UH         4096         8191       2.0MiB 
[     APP] UH         8192     29368319   14336.0MiB system.img
[     TBC] UV     29368320     29372415       2.0MiB nvtboot_cpu.bin
[     EBT] UV     29372416     29380607       4.0MiB u-boot-dtb.bin
[     BPF] UV     29380608     29384703       2.0MiB bpmp.bin
[     WB0] UV     29384704     29396991       6.0MiB warmboot.bin
[     RP1] UV     29396992     29405183       4.0MiB tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb
[     TOS] UV     29405184     29417471       6.0MiB tos.img
[     EKS] UV     29417472     29421567       2.0MiB 
[      FX] UV     29421568     29425663       2.0MiB 
[     SOS] UV     29425664     29466623      20.0MiB 
[     EXI] UV     29466624     29597695      64.0MiB 
[     LNX] UV     29597696     29728767      64.0MiB 
[     DTB] UV     29728768     29736959       4.0MiB tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb
[     NXT] UV     29736960     29741055       2.0MiB 
[     MXB] UV     29741056     29753343       6.0MiB 
[     MXP] UV     29753344     29765631       6.0MiB 
[     USP] UV     29765632     29769727       2.0MiB 
[     UDA] UV     29769728     61067263   15282.0MiB 
[     GPT] UH     61067264     61071359       2.0MiB 
copying flasher(/home/thomas/jetson/64_TX1/Linux_for_Tegra_64_tx1/bootloader/t210ref/cboot.bin)... done.
Existing flashapp(/home/thomas/jetson/64_TX1/Linux_for_Tegra_64_tx1/bootloader/tegraflash.py) reused.
*** Flashing target device started. ***
./tegraflash.py --bl cboot.bin --bct P2180_A00_LP4_DSC_204Mhz.cfg --odmdata 0x84000 --bldtb tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb --applet nvtboot_recovery.bin --boardconfig board_config_p2597-devkit.xml --cmd "flash;reboot" --cfg flash.xml --chip 0x21 
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands
 
[   0.0000 ] Generating RCM messages
[   0.0203 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 --download rcm nvtboot_recovery.bin 0 0
[   0.0244 ] RCM 0 is saved as rcm_0.rcm
[   0.0437 ] RCM 1 is saved as rcm_1.rcm
[   0.0437 ] List of rcm files are saved in rcm_list.xml
[   0.0437 ] 
[   0.0437 ] Signing RCM messages
[   0.0709 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[   0.0749 ] Assuming zero filled SBK key
[   0.0920 ] 
[   0.0920 ] Copying signature to RCM mesages
[   0.0939 ] tegrarcm --chip 0x21 --updatesig rcm_list_signed.xml
[   0.0973 ] 
[   0.0976 ] Parsing partition layout
[   0.1243 ] tegraparser --pt flash.xml
[   0.1299 ] 
[   0.1303 ] Creating list of images to be signed
[   0.1399 ] tegrahost --chip 0x21 --partitionlayout flash.bin --list images_list.xml
[   0.2239 ] 
[   0.2239 ] Generating signatures
[   0.2288 ] tegrasign --key None --list images_list.xml --pubkeyhash pub_key.key
[   0.2325 ] Assuming zero filled SBK key
[   0.2816 ] 
[   0.3116 ] tegrabct --bct P2180_A00_LP4_DSC_204Mhz.cfg --chip 0x21
[   0.3145 ] Copying Sdram info from 1 to 2 set
[   0.3435 ] Copying Sdram info from 2 to 3 set
[   0.3435 ] 
[   0.3436 ] Updating boot device parameters
[   0.3486 ] tegrabct --bct P2180_A00_LP4_DSC_204Mhz.bct --chip 0x21 --updatedevparam flash.bin
[   0.3520 ] Warning: No sdram params
[   0.3526 ] 
[   0.3526 ] Updating bl info
[   0.3546 ] tegrabct --bct P2180_A00_LP4_DSC_204Mhz.bct --chip 0x21 --updateblinfo flash.bin --updatesig images_list_signed.xml
[   0.3596 ] 
[   0.3596 ] Updating secondary storage information into bct
[   0.3616 ] tegraparser --pt flash.bin --chip 0x21 --updatecustinfo P2180_A00_LP4_DSC_204Mhz.bct
[   0.3676 ] 
[   0.3677 ] Updating board information from board config into bct
[   0.3695 ] tegraparser --boardconfig board_config_p2597-devkit.xml --chip 0x21 --updatecustinfo P2180_A00_LP4_DSC_204Mhz.bct
[   0.3725 ] 
[   0.3726 ] Updating Odmdata
[   0.3744 ] tegrabct --bct P2180_A00_LP4_DSC_204Mhz.bct --chip 0x21 --updatefields Odmdata = 0x84000
[   0.3764 ] Warning: No sdram params
[   0.3869 ] 
[   0.3869 ] Get Signed section bct
[   0.3887 ] tegrabct --bct P2180_A00_LP4_DSC_204Mhz.bct --chip 0x21 --listbct bct_list.xml
[   0.3909 ] 
[   0.3909 ] Signing BCT
[   0.3934 ] tegrasign --key None --list bct_list.xml --pubkeyhash pub_key.key
[   0.3965 ] Assuming zero filled SBK key
[   0.3975 ] 
[   0.3976 ] Updating BCT with signature
[   0.4002 ] tegrabct --bct P2180_A00_LP4_DSC_204Mhz.bct --chip 0x21 --updatesig bct_list_signed.xml
[   0.4056 ] 
[   0.4056 ] Copying signatures
[   0.4077 ] tegrahost --chip 0x21 --partitionlayout flash.bin --updatesig images_list_signed.xml
[   0.4102 ] Run tegrabct to update tboot signature in bct
[   0.4173 ] 
[   0.4173 ] Updating BFS information
[   0.4194 ] tegrabct --bct P2180_A00_LP4_DSC_204Mhz.bct --chip 0x21 --updatebfsinfo flash.bin
[   0.4217 ] 
[   0.4217 ] Boot Rom communication
[   0.4237 ] tegrarcm --chip 0x21 --rcm rcm_list_signed.xml
[   0.4259 ] BR_CID: 0x32101001640ca5870400000016038100
[   0.6871 ] RCM version 0X210001

At this point nothing else happens.

Any ideas?

The next line should show:

Boot Rom communication completed

I don’t see any evidence that actual communications with the Jetson ever succeeded. I think the flash would not have started if USB did not detect a valid USB target, but boot ROM would be the first part of the actual Jetson to respond to flash (USB is just a pipe to the actual Jetson). This could be an actual hardware failure, but I’d double-check the USB cable, make sure no USB HUB is in the middle, and also be very suspicious if your Linux host is a VM.

About the dist upgrade…never do a distribution upgrade…this removes the nVidia-specific hardware support. As you can see one of the first things removed is USB. If you got further along you’d find video is also removed.