After probably mistaken fan pin order, A206 Jetson NANO had display failure. Flash failure too

Hi! Hopping finding help, having done a lot of reading other’s posts without finding the exact problem match, I post mine too :

After trying to install a fan active heatsink to a J1020(reComputer) A206 Jetson Nano, having to change the cable’s header from one jsp to another micro jsp , I probably mistaken the cable’s order. At booting the fan didn’t work and the display too, on neither DP nor HDMI.

I tried to reflash the emmc with jetpack x.xxx.xx and even downgraded, but whatever the method or the version (sdkmanager / flash.sh), the process apparently freezes/hangs at reading the eeprom or sending signed BTCs.

I checked the usb connection&cable, and my host is not vm.

I even found a post with a probable corrupted eeprom having written on it by mistake. So I tried the flash.sh with manual Id with BOARDID & FAB parameters.

Down here are all the outputs & logs:

==================================================================

Here the sdkmanager logs :
SDKM_logs_JetPack_4.6.2_Linux_for_Jetson_Nano_modules_2022-10-28_11-56-20.zip (43.8 KB)

==================================================================

==================================================================

Here is the output of a normal flash.sh

==================================================================
maximus@maximus-MS-7B98:~/Downloads/Linux_for_Tegra$ sudo ./flash.sh jetson-nano-devkit-emmc mmcblk0p1
[sudo] password for maximus:
###############################################################################

L4T BSP Information:

R32 , REVISION: 7.2

###############################################################################

Target Board Information:

Name: jetson-nano-devkit-emmc, Board Family: t210ref, SoC: Tegra 210,

OpMode: production, Boot Authentication: ,

Disk encryption: disabled ,

###############################################################################
./tegraflash.py --chip 0x21 --applet “/home/maximus/Downloads/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.0013 ] Generating RCM messages
[ 0.0032 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm /home/maximus/Downloads/Linux_for_Tegra/bootloader/nvtboot_recovery.bin 0 0
[ 0.0036 ] RCM 0 is saved as rcm_0.rcm
[ 0.0048 ] RCM 1 is saved as rcm_1.rcm
[ 0.0048 ] List of rcm files are saved in rcm_list.xml
[ 0.0049 ]
[ 0.0049 ] Signing RCM messages
[ 0.0077 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0082 ] Assuming zero filled SBK key
[ 0.0153 ]
[ 0.0153 ] Copying signature to RCM mesages
[ 0.0171 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.0178 ]
[ 0.0178 ] Boot Rom communication
[ 0.0195 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0200 ] RCM version 0X210001
[ 0.0629 ] Boot Rom communication completed
[ 1.0703 ]
[ 1.0705 ] dump EEPROM info
[ 1.0746 ] tegrarcm --oem platformdetails eeprom /home/maximus/Downloads/Linux_for_Tegra/bootloader/cvm.bin
^CTraceback (most recent call last):
File “./tegraflash.py”, line 1296, in
tegraflash_run_commands()
File “./tegraflash.py”, line 1155, in tegraflash_run_commands
interpreter.onecmd(command)
File “/usr/lib/python3.6/cmd.py”, line 217, in onecmd
return func(arg)
File “./tegraflash.py”, line 785, in do_dump
tegraflash_dump(exports, args)
File “/home/maximus/Downloads/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 1375, in tegraflash_dump
tegraflash_dumpeeprom(args, dump_args[1:])
File “/home/maximus/Downloads/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 1413, in tegraflash_dumpeeprom
run_command(command)
File “/home/maximus/Downloads/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 202, in run_command
log = print_process(process, enable_print)
File “/home/maximus/Downloads/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 161, in print_process
output = process.stdout.read(1)
KeyboardInterrupt
Reading board information failed.

==================================================================

And here a flash with device spec manually defined

==================================================================
maximus@maximus-MS-7B98:~/Downloads/Linux_for_Tegra$ sudo BOARDID=3448 FAB=200 ./flash.sh jetson-nano-devkit-emmc mmcblk0p1
###############################################################################

L4T BSP Information:

R32 , REVISION: 7.2

###############################################################################

Target Board Information:

Name: jetson-nano-devkit-emmc, Board Family: t210ref, SoC: Tegra 210,

OpMode: production, Boot Authentication: ,

Disk encryption: disabled ,

###############################################################################
Board ID(3448) version(200)
copying bctfile(/home/maximus/Downloads/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_lpddr4_204Mhz_P987.cfg)… done.
copying bootloader(/home/maximus/Downloads/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
copying initrd(/home/maximus/Downloads/Linux_for_Tegra/bootloader/l4t_initrd.img)… done.
Making Boot image… done.
Existing sosfile(/home/maximus/Downloads/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
copying tegraboot(/home/maximus/Downloads/Linux_for_Tegra/bootloader/t210ref/nvtboot.bin)… done.
copying cpu_bootloader(/home/maximus/Downloads/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
copying bpffile(/home/maximus/Downloads/Linux_for_Tegra/bootloader/t210ref/sc7entry-firmware.bin)… done.
copying wb0boot(/home/maximus/Downloads/Linux_for_Tegra/bootloader/t210ref/warmboot.bin)… done.
Existing tosfile(/home/maximus/Downloads/Linux_for_Tegra/bootloader/tos-mon-only.img) reused.
Existing eksfile(/home/maximus/Downloads/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/home/maximus/Downloads/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-a02.dtb)… done.
Copying nv_boot_control.conf to rootfs
populating kernel to rootfs… done.
populating initrd to rootfs… done.
populating kernel_tegra210-p3448-0000-p3449-0000-a02.dtb to rootfs… done.
Making system.img…
populating rootfs from /home/maximus/Downloads/Linux_for_Tegra/rootfs … 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/maximus/Downloads/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
copying tbcdtbfile(/home/maximus/Downloads/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-a02.dtb)… done.
copying cfgfile(/home/maximus/Downloads/Linux_for_Tegra/bootloader/t210ref/cfg/flash_l4t_t210_emmc_p3448.xml) to flash.xml… done.
copying flasher(/home/maximus/Downloads/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
Existing flashapp(/home/maximus/Downloads/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-0000-p3449-0000-a02.dtb --applet nvtboot_recovery.bin --cmd “flash; reboot” --cfg flash.xml --chip 0x21 --skipuid --bins “EBT cboot.bin; DTB tegra210-p3448-0000-p3449-0000-a02.dtb”
saving flash command in /home/maximus/Downloads/Linux_for_Tegra/bootloader/flashcmd.txt
saving Windows flash command to /home/maximus/Downloads/Linux_for_Tegra/bootloader/flash_win.bat
assign_value: crc-flash.xml.bin 1 131056 1
printf ‘\x1’ | dd of=crc-flash.xml.bin bs=1 seek=131056 count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte copied, 3,6707e-05 s, 27,2 kB/s
assign_value: crc-flash.xml.bin 0 131057 1
printf ‘\x0’ | dd of=crc-flash.xml.bin bs=1 seek=131057 count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte copied, 2,5271e-05 s, 39,6 kB/s
assign_string: crc-flash.xml.bin PTHD 131064 4
echo PTHD | dd of=crc-flash.xml.bin bs=1 seek=131064 count=4 conv=notrunc
4+0 records in
4+0 records out
4 bytes copied, 2,7541e-05 s, 145 kB/s
*** 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.1226 ] tegrasign --getmode mode.txt --key None
[ 0.1250 ] Assuming zero filled SBK key
[ 0.3721 ]
[ 0.3725 ] Generating RCM messages
[ 0.4233 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm nvtboot_recovery.bin 0 0
[ 0.4248 ] RCM 0 is saved as rcm_0.rcm
[ 0.5312 ] RCM 1 is saved as rcm_1.rcm
[ 0.5318 ] List of rcm files are saved in rcm_list.xml
[ 0.5663 ]
[ 0.5664 ] Signing RCM messages
[ 0.5706 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.5732 ] Assuming zero filled SBK key
[ 0.5921 ]
[ 0.5922 ] Copying signature to RCM mesages
[ 0.5965 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.6583 ]
[ 0.6584 ] Parsing partition layout
[ 0.6604 ] tegraparser --pt flash.xml.tmp
[ 0.6614 ]
[ 0.6615 ] Using default ramcode: 0
[ 0.6615 ] Disable BPMP dtb trim, using default dtb
[ 0.6615 ]
[ 0.6615 ] Creating list of images to be signed
[ 0.6634 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --list images_list.xml
[ 1.0629 ]
[ 1.0631 ] Generating signatures
[ 1.0672 ] tegrasign --key None --list images_list.xml --pubkeyhash pub_key.key
[ 1.0695 ] Assuming zero filled SBK key
[ 1.7960 ]
[ 1.7962 ] Generating br-bct
[ 1.8776 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.cfg --chip 0x21 0
[ 1.9775 ]
[ 1.9776 ] Updating boot device parameters
[ 1.9817 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatedevparam flash.xml.bin
[ 1.9841 ] Warning: No sdram params
[ 1.9846 ]
[ 1.9846 ] Updating bl info
[ 1.9885 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[ 1.9926 ]
[ 1.9927 ] Updating secondary storage information into bct
[ 1.9967 ] tegraparser --pt flash.xml.bin --chip 0x21 0 --updatecustinfo P3448_A00_lpddr4_204Mhz_P987.bct
[ 1.9997 ]
[ 1.9998 ] Updating Odmdata
[ 2.0038 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatefields Odmdata =0xa4000
[ 2.0063 ] Warning: No sdram params
[ 2.0068 ]
[ 2.0069 ] Get Signed section of bct
[ 2.0109 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --listbct bct_list.xml
[ 2.0139 ]
[ 2.0140 ] Signing BCT
[ 2.0234 ] tegrasign --key None --list bct_list.xml --pubkeyhash pub_key.key
[ 2.0258 ] Assuming zero filled SBK key
[ 2.0274 ]
[ 2.0275 ] Updating BCT with signature
[ 2.0362 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatesig bct_list_signed.xml
[ 2.0395 ]
[ 2.0396 ] Copying signatures
[ 2.0435 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[ 2.0618 ]
[ 2.0619 ] Updating BFS information on BCT
[ 2.0639 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatebfsinfo flash.xml.bin
[ 2.0646 ] BFS:
[ 2.0659 ] 0: [PT ] crc-flash.xml.bin (size=131072/131072)
[ 2.0661 ] 1: [TBC] nvtboot_cpu.bin.encrypt (size=65760/196608)
[ 2.0664 ] 2: [RP1] kernel_tegra210-p3448-0000-p3449-0000-a02.dtb.encrypt (size=229792/1048576)
[ 2.0667 ] 3: [EBT] cboot.bin.encrypt (size=484464/655360)
[ 2.0669 ] 4: [WB0] warmboot.bin.encrypt (size=3952/131072)
[ 2.0672 ] 5: [BPF] sc7entry-firmware.bin.encrypt (size=3376/262144)
[ 2.0675 ] BFS0: 131072 @ 2560 SUM 3e0d6f29 over 2883584 bytes
[ 2.0678 ] BFS:
[ 2.0681 ] 0: [PT-1] crc-flash.xml.bin (size=131072/131072)
[ 2.0683 ] 1: [TBC-1] nvtboot_cpu.bin.encrypt (size=65760/196608)
[ 2.0686 ] 2: [RP1-1] kernel_tegra210-p3448-0000-p3449-0000-a02.dtb.encrypt (size=229792/1048576)
[ 2.0689 ] 3: [EBT-1] cboot.bin.encrypt (size=484464/655360)
[ 2.0692 ] 4: [WB0-1] warmboot.bin.encrypt (size=3952/131072)
[ 2.0694 ] 5: [BPF-1] sc7entry-firmware.bin.encrypt (size=3376/262144)
[ 2.0697 ] 8: [VER_b] emmc_bootblob_ver.txt (size=98/32768)
[ 2.0735 ] 9: [VER] emmc_bootblob_ver.txt (size=98/32768)
[ 2.0737 ] BFS1: 131072 @ 8704 SUM 3e0d6f29 over 2981888 bytes
[ 2.0739 ] KFS:
[ 2.0978 ] 0: [DTB] kernel_tegra210-p3448-0000-p3449-0000-a02.dtb.encrypt (size=229792/1048576)
[ 2.0981 ] 1: [TOS] tos-mon-only.img.encrypt (size=54208/6291456)
[ 2.0983 ] 2: [EKS] eks.img (size=1028/81920)
[ 2.0984 ] 3: [LNX] boot.img.encrypt (size=667648/67092480)
[ 2.0989 ] KFS0: 1048576 @ 29376546 SUM ef7534da over 8089600 bytes
[ 2.1042 ] KFS:
[ 2.1247 ] 0: [DTB-1] kernel_tegra210-p3448-0000-p3449-0000-a02.dtb.encrypt (size=229792/1048576)
[ 2.1250 ] 1: [TOS-1] tos-mon-only.img.encrypt (size=54208/6291456)
[ 2.1252 ] 2: [EKS-1] eks.img (size=1028/81920)
[ 2.1253 ] 3: [LNX-1] boot.img.encrypt (size=667648/67092480)
[ 2.1256 ] KFS1: 1048576 @ 29522082 SUM ef7534da over 8089600 bytes
[ 2.1300 ]
[ 2.1300 ] Boot Rom communication
[ 2.1319 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[ 2.1326 ] RCM version 0X210001
[ 2.1764 ] Boot Rom communication completed
[ 3.1841 ]
[ 3.1842 ] Sending BCTs
[ 3.1881 ] tegrarcm --download bct P3448_A00_lpddr4_204Mhz_P987.bct
^CTraceback (most recent call last):
File “./tegraflash.py”, line 1296, in
tegraflash_run_commands()
File “./tegraflash.py”, line 1155, in tegraflash_run_commands
interpreter.onecmd(command)
File “/usr/lib/python3.6/cmd.py”, line 217, in onecmd
return func(arg)
File “./tegraflash.py”, line 216, in do_flash
tegraflash_flash(exports)
File “/home/maximus/Downloads/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 271, in tegraflash_flash
tegraflash_send_bct()
File “/home/maximus/Downloads/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 2495, in tegraflash_send_bct
run_command(command)
File “/home/maximus/Downloads/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 202, in run_command
log = print_process(process, enable_print)
File “/home/maximus/Downloads/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 161, in print_process
output = process.stdout.read(1)
KeyboardInterrupt
Failed flashing t210ref.

======================================================

hello nd.maximilien,

may I have more details of your 2nd test approach which assign board id to the flash script.
it looks Boot Rom communication completed and trying for flash the target.
but,
it looks you’re issue an interrupt (i.e. ctrl^c) right after sending BCTs.
is it due to you’re seeing process hang there?

I Head to interrupt because it would go on like this all night!…

Sometimes it writes only the “Bo” from Bootrom and freezes there… especially on the sdkmanager’s terminal…

Maybe I mistaken the FAB… the BOARDID should be the right one. But the FAB, as it is a carrier board from seeedStudio, I don’t know… I wrote to them, but they told me to post my problem here at nvidia, and didn’t tell me the FAB is wrong though…

hello nd.maximilien,

oh, this is a customize board instead of developer kit, right?
you cannot flash the target with sdkmanager since it only support with DevKits.

you may perform flash script manually, please also check you’re using correct flash configuration file.
for example, in the flash command-line with this board naming, jetson-nano-devkit-emmc it’ll using the Nano DevKit with internal eMMC.
please contact with the vendor, is there a customize board configuration file?

Yes this is a customised board, but when you go to the vendor’s page for reflash instructions, it is well written that you can do it either ways: sdkmanager or flash.sh. And for the manual flash it is written to use the jetson-nano-devkit-emmc.

No customised conf file stipulated on the site, but I will ask them.

as long as the board schematic is identical to developer kit carrier board, it can use the same flash configuration file.

I received partial answer concerning the board from the manufacturer : yes its is identical and you may use the config file from the devkit. But no confirmation for the device ID to use.
So I rapidly went through flash.sh hoping to find a list of all devices ID and FAB, but didn’t find yet. Can you tell me where to find that list. I want to try all the possible configurations before giving up.

hello nd.maximilien,

assume you already download JetPack release image to your local host.
you may see l4t_generate_soc_bup.sh, and please check t21x_spec{} for all combinations for Nano series boards.
for example,

t21x_spec=(
    # jetson-nano-qspi-sd/jetson-nano-devkit:
    'boardid=3448;fab=000;boardsku=0000;boardrev=;fuselevel_s=1;chiprev=0;board=jetson-nano-devkit;rootdev=mmcblk0p1'
    'boardid=3448;fab=100;boardsku=0000;boardrev=;fuselevel_s=1;chiprev=0;board=jetson-nano-devkit;rootdev=mmcblk0p1'
    'boardid=3448;fab=200;boardsku=0000;boardrev=;fuselevel_s=1;chiprev=0;board=jetson-nano-devkit;rootdev=mmcblk0p1'
    'boardid=3448;fab=300;boardsku=0000;boardrev=;fuselevel_s=1;chiprev=0;board=jetson-nano-devkit;rootdev=mmcblk0p1'

    # jetson-nano-emmc/jetson-nano-devkit-emmc:
    'boardid=3448;fab=200;boardsku=0002;boardrev=;fuselevel_s=1;chiprev=0;board=jetson-nano-devkit-emmc;rootdev=mmcblk0p1'
    'boardid=3448;fab=300;boardsku=0002;boardrev=;fuselevel_s=1;chiprev=0;board=jetson-nano-devkit-emmc;rootdev=mmcblk0p1'

    # jetson-nano-2gb-devkit:
    'boardid=3448;fab=300;boardsku=0003;boardrev=;fuselevel_s=1;chiprev=0;board=jetson-nano-2gb-devkit;rootdev=mmcblk0p1'

Thank you for the help with finding the specs. But not much combinations possible. And when I try to specify the BOARDSKU CHIPREV FUSELEVEL, flash cannot probe the device. Not touching anything but taking out the BOARDSKU CHIPREV FUSELEVEL from the cmd line makes it probe the device again.

Another situation when flash cannot probe de device anymore is when the process is stuck (as always) at “tegrarcm --download bct P3448_A00_lpddr4_204Mhz_P987.bct”, and without rebooting it, the device does not respond anymore.

Is there anything else I can do ?
Another thing : before the device passed out, successfully booted from the NVMe. Can we normally flash on emmc after having set the boot at NVMe ?

Here the verbose of the last spec for flash:(still stuck at the same point as the others)
Flash(3448-300-SHORT).verbose (9.0 KB)

hello nd.maximilien,

Q1. may I know what exactly the device configuration?
for example, is it a Nano with customer carrier board, and you’re having internal eMMC.

Q2. what’s the target you’re going to flash and booting-from?
for example, would you like to boot from internal eMMC, or, external NVMe?

Hi JerryChang !

Here is the A206 carrier board with internal emmc with NVMe M.2 E slot.
5
6

I was booting from NVMe after applying that patch.

Its basically only boot redirection, as I know, no boot order is changed(as I know).

So after messing with some fan adaptation, no more booting at all no more displays.

So I tried to re-flash it and here, all the above failed trials.

I didn’t knew we could flash to NVMe. I only tried emmc… How can I flash NVMe ?

At some point, the final use of the module will be from NVMe. EMMC only 16gb and too small for my application.

this should helps. Flashing to an NVMe Drive.

Sorry for the delay of my answer, but I even cannot pass the first point 'cause I cannot insure a proper booting.

Anyways the reseller is taking the device back for an exchange.

Thanks for all

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