USB communication failed.Check if device is in recovery. Flash Jetson Sensor Processing Engine of Jetson Xavier

I want to use the Always-On Cluster (AON) and SPE part of Jetson AGX Xavier Developer kit Carrier Board.

I set the variable in target_specific.mk file:

Enable = 1/Disable = 0 CAN sample app

ENABLE_CAN_APP := 1

which means I enabled the CAN communication of the SPE. I also configured the device tree.

However, after I compiled the source files and generated the spe.bin file. When I flash the spe.bin file, the USB communication failed.

Below is the log information in the terminal:
[ 4.4248 ] Applet version 01.00.0000
[ 4.4450 ] Sending bct_bootrom
[ 4.4451 ] […] 100%
[ 4.4462 ] Sending bct_mb1
[ 4.4512 ] […] 100%
[ 4.4555 ] Sending bct_mem
[ 4.5009 ] […] 100%
[ 4.5841 ]
[ 4.5842 ] Generating blob
[ 4.5876 ] tegrahost_v2 --chip 0x19 --align blob_nvtboot_recovery_cpu_t194.bin
[ 4.5903 ]
[ 4.5926 ] tegrahost_v2 --chip 0x19 0 --magicid CPBL --appendsigheader blob_nvtboot_recovery_cpu_t194.bin zerosbk
[ 4.5949 ] adding BCH for blob_nvtboot_recovery_cpu_t194.bin
[ 4.6159 ]
[ 4.6197 ] tegrasign_v2 --key None --list blob_nvtboot_recovery_cpu_t194_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 4.6227 ] Assuming zero filled SBK key
[ 4.6243 ]
[ 4.6278 ] tegrahost_v2 --chip 0x19 0 --updatesigheader blob_nvtboot_recovery_cpu_t194_sigheader.bin.encrypt blob_nvtboot_recovery_cpu_t194_sigheader.bin.hash zerosbk
[ 4.6414 ]
[ 4.6445 ] tegrahost_v2 --chip 0x19 --align blob_nvtboot_recovery_t194.bin
[ 4.6472 ]
[ 4.6499 ] tegrahost_v2 --chip 0x19 0 --magicid MB2B --appendsigheader blob_nvtboot_recovery_t194.bin zerosbk
[ 4.6530 ] adding BCH for blob_nvtboot_recovery_t194.bin
[ 4.6630 ]
[ 4.6656 ] tegrasign_v2 --key None --list blob_nvtboot_recovery_t194_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 4.6668 ] Assuming zero filled SBK key
[ 4.6674 ]
[ 4.6699 ] tegrahost_v2 --chip 0x19 0 --updatesigheader blob_nvtboot_recovery_t194_sigheader.bin.encrypt blob_nvtboot_recovery_t194_sigheader.bin.hash zerosbk
[ 4.6735 ]
[ 4.6747 ] tegrahost_v2 --chip 0x19 --align blob_preboot_c10_prod_cr.bin
[ 4.6758 ]
[ 4.6768 ] tegrahost_v2 --chip 0x19 0 --magicid MTSP --appendsigheader blob_preboot_c10_prod_cr.bin zerosbk
[ 4.6781 ] Header already present for blob_preboot_c10_prod_cr.bin
[ 4.6786 ]
[ 4.6801 ] tegrasign_v2 --key None --list blob_preboot_c10_prod_cr_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 4.6823 ] Assuming zero filled SBK key
[ 4.6829 ]
[ 4.6846 ] tegrahost_v2 --chip 0x19 0 --updatesigheader blob_preboot_c10_prod_cr_sigheader.bin.encrypt blob_preboot_c10_prod_cr_sigheader.bin.hash zerosbk
[ 4.6859 ]
[ 4.6868 ] tegrahost_v2 --chip 0x19 --align blob_mce_c10_prod_cr.bin
[ 4.6876 ]
[ 4.6883 ] tegrahost_v2 --chip 0x19 0 --magicid MTSM --appendsigheader blob_mce_c10_prod_cr.bin zerosbk
[ 4.6891 ] Header already present for blob_mce_c10_prod_cr.bin
[ 4.6910 ]
[ 4.6920 ] tegrasign_v2 --key None --list blob_mce_c10_prod_cr_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 4.6926 ] Assuming zero filled SBK key
[ 4.6930 ]
[ 4.6940 ] tegrahost_v2 --chip 0x19 0 --updatesigheader blob_mce_c10_prod_cr_sigheader.bin.encrypt blob_mce_c10_prod_cr_sigheader.bin.hash zerosbk
[ 4.6968 ]
[ 4.6977 ] tegrahost_v2 --chip 0x19 --align blob_mts_c10_prod_cr.bin
[ 4.6984 ]
[ 4.6990 ] tegrahost_v2 --chip 0x19 0 --magicid MTSB --appendsigheader blob_mts_c10_prod_cr.bin zerosbk
[ 4.6997 ] adding BCH for blob_mts_c10_prod_cr.bin
[ 4.7659 ]
[ 4.7669 ] tegrasign_v2 --key None --list blob_mts_c10_prod_cr_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 4.7675 ] Assuming zero filled SBK key
[ 4.7704 ]
[ 4.7716 ] tegrahost_v2 --chip 0x19 0 --updatesigheader blob_mts_c10_prod_cr_sigheader.bin.encrypt blob_mts_c10_prod_cr_sigheader.bin.hash zerosbk
[ 4.8065 ]
[ 4.8077 ] tegrahost_v2 --chip 0x19 --align blob_bpmp_t194.bin
[ 4.8084 ]
[ 4.8090 ] tegrahost_v2 --chip 0x19 0 --magicid BPMF --appendsigheader blob_bpmp_t194.bin zerosbk
[ 4.8096 ] adding BCH for blob_bpmp_t194.bin
[ 4.8283 ]
[ 4.8304 ] tegrasign_v2 --key None --list blob_bpmp_t194_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 4.8312 ] Assuming zero filled SBK key
[ 4.8321 ]
[ 4.8332 ] tegrahost_v2 --chip 0x19 0 --updatesigheader blob_bpmp_t194_sigheader.bin.encrypt blob_bpmp_t194_sigheader.bin.hash zerosbk
[ 4.8429 ]
[ 4.8438 ] tegrahost_v2 --chip 0x19 --align blob_tegra194-a02-bpmp-p2888-a04.dtb
[ 4.8444 ]
[ 4.8450 ] tegrahost_v2 --chip 0x19 0 --magicid BPMD --appendsigheader blob_tegra194-a02-bpmp-p2888-a04.dtb zerosbk
[ 4.8461 ] adding BCH for blob_tegra194-a02-bpmp-p2888-a04.dtb
[ 4.8617 ]
[ 4.8635 ] tegrasign_v2 --key None --list blob_tegra194-a02-bpmp-p2888-a04_sigheader.dtb_list.xml --pubkeyhash pub_key.key
[ 4.8644 ] Assuming zero filled SBK key
[ 4.8652 ]
[ 4.8662 ] tegrahost_v2 --chip 0x19 0 --updatesigheader blob_tegra194-a02-bpmp-p2888-a04_sigheader.dtb.encrypt blob_tegra194-a02-bpmp-p2888-a04_sigheader.dtb.hash zerosbk
[ 4.8747 ]
[ 4.8755 ] tegrahost_v2 --chip 0x19 --align blob_spe_t194.bin
[ 4.8761 ]
[ 4.8766 ] tegrahost_v2 --chip 0x19 0 --magicid SPEF --appendsigheader blob_spe_t194.bin zerosbk
[ 4.8772 ] adding BCH for blob_spe_t194.bin
[ 4.8797 ]
[ 4.8804 ] tegrasign_v2 --key None --list blob_spe_t194_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 4.8810 ] Assuming zero filled SBK key
[ 4.8813 ]
[ 4.8821 ] tegrahost_v2 --chip 0x19 0 --updatesigheader blob_spe_t194_sigheader.bin.encrypt blob_spe_t194_sigheader.bin.hash zerosbk
[ 4.8841 ]
[ 4.8848 ] tegrahost_v2 --chip 0x19 --align blob_tos-trusty_t194.img
[ 4.8855 ]
[ 4.8863 ] tegrahost_v2 --chip 0x19 0 --magicid TOSB --appendsigheader blob_tos-trusty_t194.img zerosbk
[ 4.8871 ] adding BCH for blob_tos-trusty_t194.img
[ 4.8947 ]
[ 4.8964 ] tegrasign_v2 --key None --list blob_tos-trusty_t194_sigheader.img_list.xml --pubkeyhash pub_key.key
[ 4.8973 ] Assuming zero filled SBK key
[ 4.8978 ]
[ 4.8987 ] tegrahost_v2 --chip 0x19 0 --updatesigheader blob_tos-trusty_t194_sigheader.img.encrypt blob_tos-trusty_t194_sigheader.img.hash zerosbk
[ 4.9031 ]
[ 4.9039 ] tegrahost_v2 --chip 0x19 --align blob_eks.img
[ 4.9045 ]
[ 4.9051 ] tegrahost_v2 --chip 0x19 0 --magicid EKSB --appendsigheader blob_eks.img zerosbk
[ 4.9056 ] adding BCH for blob_eks.img
[ 4.9057 ]
[ 4.9064 ] tegrasign_v2 --key None --list blob_eks_sigheader.img_list.xml --pubkeyhash pub_key.key
[ 4.9070 ] Assuming zero filled SBK key
[ 4.9072 ]
[ 4.9080 ] tegrahost_v2 --chip 0x19 0 --updatesigheader blob_eks_sigheader.img.encrypt blob_eks_sigheader.img.hash zerosbk
[ 4.9087 ]
[ 4.9094 ] tegrahost_v2 --chip 0x19 --align blob_tegra194-p2888-0001-p2822-0000.dtb
[ 4.9100 ]
[ 4.9106 ] tegrahost_v2 --chip 0x19 0 --magicid CDTB --appendsigheader blob_tegra194-p2888-0001-p2822-0000.dtb zerosbk
[ 4.9111 ] adding BCH for blob_tegra194-p2888-0001-p2822-0000.dtb
[ 4.9164 ]
[ 4.9173 ] tegrasign_v2 --key None --list blob_tegra194-p2888-0001-p2822-0000_sigheader.dtb_list.xml --pubkeyhash pub_key.key
[ 4.9179 ] Assuming zero filled SBK key
[ 4.9183 ]
[ 4.9195 ] tegrahost_v2 --chip 0x19 0 --updatesigheader blob_tegra194-p2888-0001-p2822-0000_sigheader.dtb.encrypt blob_tegra194-p2888-0001-p2822-0000_sigheader.dtb.hash zerosbk
[ 4.9233 ]
[ 4.9243 ] tegrahost_v2 --chip 0x19 --generateblob blob.xml blob.bin
[ 4.9249 ] number of images in blob are 11
[ 4.9253 ] blobsize is 6379992
[ 4.9254 ] Added binary blob_nvtboot_recovery_cpu_t194_sigheader.bin.encrypt of size 258144
[ 4.9274 ] Added binary blob_nvtboot_recovery_t194_sigheader.bin.encrypt of size 129936
[ 4.9277 ] Added binary blob_preboot_c10_prod_cr_sigheader.bin.encrypt of size 24016
[ 4.9281 ] Added binary blob_mce_c10_prod_cr_sigheader.bin.encrypt of size 142592
[ 4.9286 ] Added binary blob_mts_c10_prod_cr_sigheader.bin.encrypt of size 3430800
[ 4.9305 ] Added binary blob_bpmp_t194_sigheader.bin.encrypt of size 856112
[ 4.9319 ] Added binary blob_tegra194-a02-bpmp-p2888-a04_sigheader.dtb.encrypt of size 747008
[ 4.9323 ] Added binary blob_spe_t194_sigheader.bin.encrypt of size 132256
[ 4.9327 ] Added binary blob_tos-trusty_t194_sigheader.img.encrypt of size 373696
[ 4.9330 ] Added binary blob_eks_sigheader.img.encrypt of size 5136
[ 4.9333 ] Added binary blob_tegra194-p2888-0001-p2822-0000_sigheader.dtb.encrypt of size 280112
[ 4.9357 ]
[ 4.9358 ] Sending bootloader and pre-requisite binaries
[ 4.9366 ] tegrarcm_v2 --download blob blob.bin
[ 4.9372 ] Applet version 01.00.0000
[ 4.9537 ] Sending blob
[ 4.9538 ] […] 100%
[ 5.8982 ]
[ 5.9011 ] tegrarcm_v2 --boot recovery
[ 5.9037 ] Applet version 01.00.0000
[ 5.9255 ]
[ 6.9298 ] tegrarcm_v2 --isapplet
[ 6.9323 ] USB communication failed.Check if device is in recovery
[ 7.1643 ]
[ 7.1680 ] tegrarcm_v2 --ismb2

When I enable other part such as

Enable = 1/Disable = 0 I2C sample app

ENABLE_I2C_APP := 1

Enable = 1/Disable = 0 UART sample app

ENABLE_UART_APP := 1

Enable = 1/Disable = 0 SPI sample app

ENABLE_SPI_APP := 1

I can flash it to the Jetson AGX Xavier.

therefore, what is the problem that I can not flash the device when I enable the CAN communication part.

I will be very appreciate if you can support.

Thank you very much.

hello hao.ye,

could you please point-out the file path of makefile, target_specific.mk,
I cannot find it from the L4T sources package.

it is here:
~/l4t_rt_aux_cpu_src/l4t-rt/rt-aux-cpu-demo/soc/t19x
not in L4T sources.

hello hao.ye,

ENABLE_CAN_APP is the flag to control compilation of the CAN application,
had you obtain two 3.3V I/O compatible CAN transceivers? there’s prerequisites in the readme file for your reference,
i.e. /rt-aux-cpu-demo/doc/can-app.md

yes

hello Will99,

please have a try with the solution from Topic 164461,
thanks