Production Jetson Nano module won't boot after flashing (antmicro baseboard)

Hi all,

I bought the AntMicro Jetson Baseboard from capablerobots, and I also bought a production Jetson Nano (w/eMMC) from Arrow, but am having some trouble flashing it.

I can’t seem to use the sdkmanager cause I’m on Ubuntu 21.04, so I’m attempting to use the scripts inside the Linux_for_Tegra download.

The flash seems to go well (log below)

sudo ./flash.sh jetson-nano-emmc mmcblk0p1
[sudo] password for realuser: 
###############################################################################
# L4T BSP Information:
# R32 , REVISION: 5.0
###############################################################################
# Target Board Information:
# Name: jetson-nano-emmc, Board Family: t210ref, SoC: Tegra 210, 
# OpMode: production, Boot Authentication: , 
# Disk encryption: disabled ,
###############################################################################
./tegraflash.py --chip 0x21 --applet "/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/nvtboot_recovery.bin" --skipuid --cmd "dump eeprom boardinfo cvm.bin" 
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.0020 ] Generating RCM messages
[   0.0029 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm /home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/nvtboot_recovery.bin 0 0
[   0.0036 ] RCM 0 is saved as rcm_0.rcm
[   0.0052 ] RCM 1 is saved as rcm_1.rcm
[   0.0052 ] List of rcm files are saved in rcm_list.xml
[   0.0052 ] 
[   0.0052 ] Signing RCM messages
[   0.0073 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[   0.0082 ] Assuming zero filled SBK key
[   0.0154 ] 
[   0.0154 ] Copying signature to RCM mesages
[   0.0164 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[   0.0178 ] 
[   0.0178 ] Boot Rom communication
[   0.0186 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[   0.0193 ] RCM version 0X210001
[   0.0634 ] Boot Rom communication completed
[   1.0721 ] 
[   1.0723 ] dump EEPROM info
[   1.0754 ] tegrarcm --oem platformdetails eeprom /home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/cvm.bin
[   1.0778 ] Applet version 00.01.0000
[   1.0973 ] Saved platform info in /home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/cvm.bin
[   1.1749 ] 
[   1.1775 ] tegrarcm --reboot recovery
[   1.1800 ] Applet version 00.01.0000
[   1.1836 ] 
Board ID(3448) version(400) 
copying bctfile(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_lpddr4_204Mhz_P987.cfg)... done.
copying bootloader(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying initrd(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/l4t_initrd.img)... done.
	populating kernel to rootfs... done.
	populating initrd to rootfs... done.
	populating /home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb to rootfs... done.
Making Boot image... done.
Existing sosfile(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
copying tegraboot(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/t210ref/nvtboot.bin)... done.
copying cpu_bootloader(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying bpffile(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/t210ref/sc7entry-firmware.bin)... done.
Existing badpagefile(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/badpage.bin) reused.
copying wb0boot(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/t210ref/warmboot.bin)... done.
Existing tosfile(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/tos-mon-only.img) reused.
Existing eksfile(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb)... done.
Copying nv_boot_control.conf to rootfs
Making system.img... 
	populating rootfs from /home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/rootfs ... done.
	populating /boot/extlinux/extlinux.conf ... done.
	Sync'ing system.img ... done.
	Converting RAW image to Sparse image... done.
system.img built successfully. 
Existing tbcfile(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
copying tbcdtbfile(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb)... done.
copying cfgfile(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/t210ref/cfg/flash_l4t_t210_emmc_p3448.xml) to flash.xml... done.
copying flasher(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
Existing flashapp(/home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/tegraflash.py) reused.
./tegraflash.py --bl cboot.bin --bct  P3448_A00_lpddr4_204Mhz_P987.cfg --odmdata 0xa4000 --bldtb kernel_tegra210-p3448-0002-p3449-0000-b00.dtb --applet nvtboot_recovery.bin --cmd "flash; reboot"  --cfg flash.xml --chip 0x21    --bins "EBT cboot.bin; DTB tegra210-p3448-0002-p3449-0000-b00.dtb" 
saving flash command in /home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/flashcmd.txt
saving Windows flash command to /home/realuser/Downloads/Tegra210_Linux_R32.5.0_aarch64/Linux_for_Tegra/bootloader/flash_win.bat
*** Flashing target device started. ***
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.0024 ] tegrasign --key None --getmode mode.txt
[   0.0032 ] Assuming zero filled SBK key
[   0.0051 ] 
[   0.0053 ] Generating RCM messages
[   0.0073 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm nvtboot_recovery.bin 0 0
[   0.0080 ] RCM 0 is saved as rcm_0.rcm
[   0.0104 ] RCM 1 is saved as rcm_1.rcm
[   0.0104 ] List of rcm files are saved in rcm_list.xml
[   0.0104 ] 
[   0.0104 ] Signing RCM messages
[   0.0113 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[   0.0120 ] Assuming zero filled SBK key
[   0.0164 ] 
[   0.0164 ] Copying signature to RCM mesages
[   0.0172 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[   0.0184 ] 
[   0.0184 ] Parsing partition layout
[   0.0205 ] tegraparser --pt flash.xml.tmp
[   0.0222 ] 
[   0.0223 ] Creating list of images to be signed
[   0.0243 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --list images_list.xml
[   0.0309 ] 
[   0.0309 ] Generating signatures
[   0.0318 ] tegrasign --key None --list images_list.xml --pubkeyhash pub_key.key
[   0.0326 ] Assuming zero filled SBK key
[   0.1203 ] 
[   0.1204 ] Generating br-bct
[   0.1227 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.cfg --chip 0x21 0
[   0.1234 ] Copying Sdram info from 2 to 3 set
[   0.1273 ] 
[   0.1273 ] Updating boot device parameters
[   0.1284 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatedevparam flash.xml.bin
[   0.1291 ] Warning: No sdram params
[   0.1293 ] 
[   0.1293 ] Updating bl info
[   0.1300 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[   0.1312 ] 
[   0.1312 ] Updating secondary storage information into bct
[   0.1321 ] tegraparser --pt flash.xml.bin --chip 0x21 0 --updatecustinfo P3448_A00_lpddr4_204Mhz_P987.bct
[   0.1330 ] 
[   0.1331 ] Updating Odmdata
[   0.1339 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatefields Odmdata =0xa4000
[   0.1346 ] Warning: No sdram params
[   0.1348 ] 
[   0.1349 ] Get Signed section of bct
[   0.1356 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --listbct bct_list.xml
[   0.1365 ] 
[   0.1365 ] Signing BCT
[   0.1384 ] tegrasign --key None --list bct_list.xml --pubkeyhash pub_key.key
[   0.1393 ] Assuming zero filled SBK key
[   0.1398 ] 
[   0.1398 ] Updating BCT with signature
[   0.1406 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatesig bct_list_signed.xml
[   0.1416 ] 
[   0.1416 ] Copying signatures
[   0.1424 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[   0.1484 ] 
[   0.1484 ] Updating BFS information on BCT
[   0.1494 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatebfsinfo flash.xml.bin
[   0.1502 ]    BFS:
[   0.1513 ]      0: [PT ] flash.xml.bin (size=4367/131072)
[   0.1515 ]      1: [TBC] nvtboot_cpu.bin.encrypt (size=65760/196608)
[   0.1518 ]      2: [RP1] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt (size=244352/1048576)
[   0.1522 ]      3: [EBT] cboot.bin.encrypt (size=485120/655360)
[   0.1524 ]      4: [WB0] warmboot.bin.encrypt (size=3952/131072)
[   0.1527 ]      5: [BPF] sc7entry-firmware.bin.encrypt (size=3376/262144)
[   0.1529 ] BFS0: 131072 @ 2560 SUM f59ceb51 over 2883584 bytes
[   0.1531 ]    BFS:
[   0.1534 ]      0: [PT-1] flash.xml.bin (size=4367/131072)
[   0.1537 ]      1: [TBC-1] nvtboot_cpu.bin.encrypt (size=65760/196608)
[   0.1541 ]      2: [RP1-1] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt (size=244352/1048576)
[   0.1546 ]      3: [EBT-1] cboot.bin.encrypt (size=485120/655360)
[   0.1549 ]      4: [WB0-1] warmboot.bin.encrypt (size=3952/131072)
[   0.1551 ]      5: [BPF-1] sc7entry-firmware.bin.encrypt (size=3376/262144)
[   0.1554 ]      8: [VER_b] emmc_bootblob_ver.txt (size=99/32768)
[   0.1556 ]      9: [VER] emmc_bootblob_ver.txt (size=99/32768)
[   0.1558 ] BFS1: 131072 @ 8704 SUM f59ceb51 over 2981888 bytes
[   0.1560 ]    KFS:
[   0.1815 ]      0: [DTB] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt (size=244352/1048576)
[   0.1821 ]      1: [TOS] tos-mon-only.img.encrypt (size=54208/6291456)
[   0.1824 ]      2: [EKS] eks.img (size=1028/81920)
[   0.1826 ]      3: [LNX] boot.img.encrypt (size=661504/67092480)
[   0.1829 ] KFS0: 1048576 @ 29376546 SUM 2512d27b over 8083456 bytes
[   0.1858 ]    KFS:
[   0.2123 ]      0: [DTB-1] kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt (size=244352/1048576)
[   0.2126 ]      1: [TOS-1] tos-mon-only.img.encrypt (size=54208/6291456)
[   0.2129 ]      2: [EKS-1] eks.img (size=1028/81920)
[   0.2130 ]      3: [LNX-1] boot.img.encrypt (size=661504/67092480)
[   0.2133 ] KFS1: 1048576 @ 29522082 SUM 2512d27b over 8083456 bytes
[   0.2161 ] 
[   0.2162 ] Boot Rom communication
[   0.2172 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml
[   0.2182 ] BR_CID: 0x32101001643146c11000000013fb8400
[   0.2188 ] RCM version 0X210001
[   0.2345 ] Boot Rom communication completed
[   1.2426 ] 
[   1.2427 ] Sending BCTs
[   1.2454 ] tegrarcm --download bct P3448_A00_lpddr4_204Mhz_P987.bct
[   1.2477 ] Applet version 00.01.0000
[   1.2512 ] Sending bct
[   1.2514 ] [................................................] 100%
[   1.4745 ] 
[   1.4776 ] tegrahost --chip 0x21 --align cboot.bin
[   1.4802 ] 
[   1.4827 ] tegrahost --magicid EBT --appendsigheader cboot.bin cboot.bin_blheader
[   1.4894 ] 
[   1.4929 ] tegrasign --key None --list cboot.bin_list.xml
[   1.4953 ] Assuming zero filled SBK key
[   1.5240 ] 
[   1.5254 ] tegrahost --updatesigheader cboot.bin_blheader.encrypt cboot.bin_blheader.hash zerosbk
[   1.5274 ] 
[   1.5291 ] tegrahost --chip 0x21 --align tegra210-p3448-0002-p3449-0000-b00.dtb
[   1.5301 ] 
[   1.5311 ] tegrahost --magicid DTB --appendsigheader tegra210-p3448-0002-p3449-0000-b00.dtb tegra210-p3448-0002-p3449-0000-b00.dtb_blheader
[   1.5327 ] 
[   1.5338 ] tegrasign --key None --list tegra210-p3448-0002-p3449-0000-b00.dtb_list.xml
[   1.5346 ] Assuming zero filled SBK key
[   1.5405 ] 
[   1.5416 ] tegrahost --updatesigheader tegra210-p3448-0002-p3449-0000-b00.dtb_blheader.encrypt tegra210-p3448-0002-p3449-0000-b00.dtb_blheader.hash zerosbk
[   1.5428 ] 
[   1.5431 ] Sending bootloader and pre-requisite binaries
[   1.5439 ] tegrarcm --download ebt cboot.bin.encrypt 0 0 --download rp1 tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt 0
[   1.5447 ] Applet version 00.01.0000
[   1.5596 ] Sending ebt
[   1.5598 ] [................................................] 100%
[   1.6651 ] Sending rp1
[   1.6698 ] [................................................] 100%
[   1.7265 ] 
[   1.7289 ] tegrarcm --boot recovery
[   1.7307 ] Applet version 00.01.0000
[   1.7339 ] 
[   1.7339 ] Retrieving storage infomation
[   1.7356 ] tegrarcm --oem platformdetails storage storage_info.bin
[   1.7370 ] Applet is not running on device. Continue with Bootloader
[   2.3503 ] 
[   2.3528 ] tegradevflash --oem platformdetails storage storage_info.bin
[   2.3535 ] Cboot version 00.01.0000
[   2.3560 ] Saved platform info in storage_info.bin
[   2.3572 ] 
[   2.3572 ] Flashing the device
[   2.3581 ] tegradevflash --pt flash.xml.bin --storageinfo storage_info.bin --create
[   2.3588 ] Cboot version 00.01.0000
[   2.3766 ] Writing partition GPT with gpt.bin
[   2.3772 ] [................................................] 100%
[   2.3840 ] Writing partition PT with flash.xml.bin
[   3.1181 ] [................................................] 100%
[   3.1224 ] Writing partition PT-1 with flash.xml.bin
[   3.1451 ] [................................................] 100%
[   3.1621 ] Writing partition NVC with nvtboot.bin.encrypt
[   3.2228 ] [................................................] 100%
[   3.2396 ] Writing partition TBC with nvtboot_cpu.bin.encrypt
[   3.2704 ] [................................................] 100%
[   3.2888 ] Writing partition RP1 with kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt
[   3.3369 ] [................................................] 100%
[   3.3636 ] Writing partition EBT with cboot.bin.encrypt
[   3.4143 ] [................................................] 100%
[   3.4509 ] Writing partition WB0 with warmboot.bin.encrypt
[   3.5044 ] [................................................] 100%
[   3.5211 ] Writing partition BPF with sc7entry-firmware.bin.encrypt
[   3.5695 ] [................................................] 100%
[   3.5854 ] Writing partition NVC-1 with nvtboot.bin.encrypt
[   3.6333 ] [................................................] 100%
[   3.6554 ] Writing partition TBC-1 with nvtboot_cpu.bin.encrypt
[   3.7167 ] [................................................] 100%
[   3.7367 ] Writing partition RP1-1 with kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt
[   3.7990 ] [................................................] 100%
[   3.8255 ] Writing partition EBT-1 with cboot.bin.encrypt
[   3.8888 ] [................................................] 100%
[   3.9231 ] Writing partition WB0-1 with warmboot.bin.encrypt
[   3.9894 ] [................................................] 100%
[   4.0064 ] Writing partition BPF-1 with sc7entry-firmware.bin.encrypt
[   4.0668 ] [................................................] 100%
[   4.0841 ] Writing partition VER_b with emmc_bootblob_ver.txt
[   4.1449 ] [................................................] 100%
[   4.1617 ] Writing partition VER with emmc_bootblob_ver.txt
[   4.2123 ] [................................................] 100%
[   4.2293 ] Writing partition APP with system.img
[   4.2783 ] [................................................] 100%
[ 203.0175 ] Writing partition DTB with kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt
[ 203.9799 ] [................................................] 100%
[ 203.9981 ] Writing partition TOS with tos-mon-only.img.encrypt
[ 204.0383 ] [................................................] 100%
[ 204.0513 ] Warning: EKS partition magic header mismatch!
[ 204.0876 ] Writing partition EKS with eks.img
[ 204.0881 ] [................................................] 100%
[ 204.0979 ] Writing partition LNX with boot.img.encrypt
[ 204.1336 ] [................................................] 100%
[ 204.1653 ] Writing partition DTB-1 with kernel_tegra210-p3448-0002-p3449-0000-b00.dtb.encrypt
[ 204.2089 ] [................................................] 100%
[ 204.2263 ] Writing partition TOS-1 with tos-mon-only.img.encrypt
[ 204.2657 ] [................................................] 100%
[ 204.2776 ] Writing partition EKS-1 with eks.img
[ 204.3134 ] [................................................] 100%
[ 204.3240 ] Writing partition LNX-1 with boot.img.encrypt
[ 204.3603 ] [................................................] 100%
[ 204.3953 ] Writing partition BMP with bmp.blob
[ 204.4407 ] [................................................] 100%
[ 204.4590 ] Writing partition RP4 with rp4.blob
[ 204.4962 ] [................................................] 100%
[ 204.5492 ] 
[ 204.5521 ] tegradevflash --write BCT P3448_A00_lpddr4_204Mhz_P987.bct
[ 204.5546 ] Cboot version 00.01.0000
[ 204.5574 ] Writing partition BCT with P3448_A00_lpddr4_204Mhz_P987.bct
[ 204.5586 ] [................................................] 100%
[ 204.9539 ] 
[ 204.9540 ] Flashing completed

[ 204.9541 ] Coldbooting the device
[ 204.9568 ] tegradevflash --reboot coldboot
[ 204.9595 ] Cboot version 00.01.0000
[ 204.9625 ] 
*** The target t210ref has been flashed successfully. ***
Reset the board to boot from internal eMMC.

Except the board doesn’t boot. Has anyone got any ideas on why that is, or how to debug the situation? Does anyone have any experience flashing the antmicro board with a production SoM?

hello an_actual_toaster,

we need bootloader logs to understand what’s the failure on the target. please setup serial port to gather the details.

also,
is this antmicro exactly same as Nano DevKits?
your command line using the board configuration file as Nano-eMMC, which only works with DevKits.

Additional note from what @JerryChang is saying: The default device tree is for the SD card dev kit model, but must be changed to use with either a commercial eMMC model or a different carrier board (unless the carrier board is an electrical exact match to the dev kit carrier board). The manufacturer of the third party carrier board (the AntMicro carrier) would have to provide some content which is added to the “Linux_for_Tegra/” dev kit content in order to make this available. For example, a device tree file might be added or replaced somewhere under “Linux_for_Tegra/”, as well as a “.conf” file (and if so, then likely the command line for flashing would differ slightly).

Right, thanks for the information!

I am a little confused because in the AntMicro GitHub they do mention that the L4T BSPs should work out-of-the-box. Maybe that was once true but no longer is? I’ll see if they can comment on it on their Github.

Also regarding what @JerryChang said, isn’t the production configuration supposed to be jetson-nano-emmc? I’ve been following this guide , which links to this table, that says that jetson-nano-emmc is supposed to be used for production use, because it flashes the onboard eMMC. Which command should I be using to flash an eMMC?

EDIT:

Welp, seems like this whole time the flash was actually working! The board appears on my LAN when i plug it in via Ethernet. I was checking whether it was working by plugging it into a display - which didn’t work.

So for anyone using the AntMicro board, the regular flash utility in the L4T download seemed to just work for me. I will work on getting JetPack working on it now, might write a guide on it or something.

hello an_actual_toaster,

not exactly, it depends-on the carrier board.

please refer to Jetson Nano Platform Adaptation and Bring-Up,
if the board schematic differs from that for Jetson Nano Developer Kit carrier board, you must change the pinmux configuration applied by the software.
thanks

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.