How to Build Mass Flash Blob for Jetson Nano EMMC Module

Hi,

How to build a massflash blob which can be flashed to the board by USB port?
According to L4T documents, there are two methods to create massflash blob: online and offline. Please help to share both methods.

Jetson Nano module: “P3448 180-13448-DAAA-B01” with mark “900-13448-0020-000”.
L4T version: “Tegra210_Linux_R32.4.2_aarch64”.

Thanks.

Hi rd1,

May I know which document did you refer to for such information?
Generally we suggest customer to try online creation first. Please read the README_Massflash.txt in the Linux_for_Tegra folder.

Hi, WayneWWW

We refered to the “README_Massflash.txt” in “Linux_for_Tegra”.
About the online method, when we did “sudo ./nvmassflashgen.sh jetson-nano-emmc mmcblk0p1” with a board connected to the host PC by a USB cable, the tar package “mfi_jetson-nano-emmc.tbz2” can be created.
But when we released the tar package and did “sudo ./nvmflash.sh” to flash the board, some error happened and the flashing was blocked. The error log showed
"
mfi_jetson-nano-emmc/tegrarcm --instance 1-1 --download bct P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.bct
Cannot open usb device.Check if device is in recovery
*** Error: Sending BCTs failed.
"
It seems no USB device can be found. But the board connected to the host PC has been in recovery mode.

Can you help to analyze why does this error happen?

Thanks.

Let me try this on our side. Thanks for reporting.

Hi, WayneWWW

Is there some update about this issue?

Thanks.

Hi rd1,

We can run it success on Nano with JP-4.4 DP.
Before run “sudo ./nvmflash.sh”, are you put device into recovery mode? Please use ‘lsusb’ command to check first.

tar xpvf mfi_jetson-nano-emmc.tbz2 cd mfi_jetson-nano-emmc
Put device into RCM
$ sudo ./nvmflash.sh

Hi, carolyuu

The device recovery mode issue has been fixed and the EMMC image write can be finished. Thanks.

But there is still some other issue when system reboots. It seems the system hangs after it tries several boot methods: EMMC, USB and network. The error log is shown as following. Can you help to analyze why this happens?

U-Boot 2016.07-g45dfa3dff4 (Apr 08 2020 - 18:04:08 -0700)
TEGRA210
Model: NVIDIA P3450-Porg
Board: NVIDIA P3450-PORG
DRAM: 4 GiB
MMC: Tegra SD/MMC: 0, Tegra SD/MMC: 1
SF: Failed to get idcodes
*** Warning - spi_flash_probe() failed, using default environment
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Card did not respond to voltage select!
** Bad device mmc 1 **
Hit any key to stop autoboot: 0
Card did not respond to voltage select!
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1…
starting USB…
USB0: tegrausb: Invalid dr_mode 2 for host mode
probe failed, error -1
USB error: all controllers failed lowlevel init
PCI device eth_rtl8169: unknown chip version, assuming RTL-8169
PCI device: TxConfig = 0x4B100D00
BOOTP broadcast 1

Hi,

If you are not trying to boot from usb drive, it means uboot is not able to find extlinux.conf on your emmc.

One possible reason is that your rootfs is empty from the beginning.

Hi, WayneWWW

The file “extlinux.conf” can be found in the folder “mfi_jetson-nano-emmc”. And the size of the file “system.img” is 3.9G bytes. How to confirm where the file “extlinux.conf” exists in the board?

Thanks.

Hi rd1,

Then maybe there are other reasons. Could you share the full boot up log?

Hi, WayneWWW

The boot up issue is fixed when “sudo ./apply_binaries.sh” is executed.

Thanks.

1 Like

Got it. So there were still something missing in rootfs and got fixed after apply_binaries.