Jetson Nano B01 SOM Flash Instructions

Dear Community,
We designed a custom carrier board for the Jetson Nano. We purchased the production SoM that uses the eMMC rather than the SD card for the boot. When we tried to boot the production SoM without flashing anything , we could see an “Android Boot Menu” and then the screen proceeds to “Continue Booting…” and then nothing happens. We hooked up the debug UART console to get the boot log and we got the SSH to the carrier, which we confirmed by issueing basic commands like “reboot” and “poweroff”. The board responds as expected.
Nextly, we flashed an SD card on the A02 DevKit, and made the initial set up like username password etc. Then we connected this A02 module with SD card, onto our custom carrier board. Here we dont see any display coming up. However, we were able to get the boot log, again the boot proceeds to home screen, verified by login with username password, basic command issue like “reboot” & “poweroff” via SSH. Here also the board responds as expected but we are not getting any display.

Kindly help me understand the following:

  1. What image is programmed in the B01 Production SoM (w/o SD card)?
  2. What is the procedure to flash the production SoM?
  3. Is the same image applicable to the flash of the production SoM?
  1. We don’t guarantee what is flashed in a out-of-box nano module. Please always use sdkmanager to flash your board first.

  2. (a) Prepare a host with proper environment.
    (b)Download and launch sdkmanager/jetpack on this host.https://developer.nvidia.com/embedded/jetpack
    (c) Put the board into recovery mode and connect micro usb cable. If entering RCM (recovery mode) correctly, your host should see nvidia corp with command “lsusb”
    (d) Start the flash procedure by sdkmanager GUI tool.

  3. You need to firstly define what “image” are you pointing out here. If you are saying the whole sdcard image, then it cannot be directly used for emmc module. However, if this is kernel image, then it is compatible.

Hello Wayne,
As instructed, I tried flashing the B01 SOM with the SDK. Unfortunately, I was unable to. In fact, I couldn’t even flash the A02 DevKit module with the SDK. I had to flash the SD card using the Etcher software.

Please find my observations below:

  1. When I connect our baseboard, and put in recovery mode, it can see the device listed with lsusb command as Nvidia Corp. After all the necessary packages are downloaded, the SDK prompts to connect the board in Recovery mode. At that time also, when I check the lsusb, Nvidia Corp is listed, but the SDK says no hardware found.
  2. When I try to flash the A02 module with the SDK, the flash gets stuck at 99.9% and prompts that the flash is taking longer than expected and whether I would like to continue. Even after giving Yes, the flash gets stuck at 99.9% for hours.
  3. I also tried different combinations of modules in our basebaord & on the EVM, like EVM+A02 module with Target as P3348-000, Baseboard+B01 module with target as P3448-020, Baseboard+A02 module with Target as P3448-000 & Nano EVM+B01 with Target as P3448-020. I can provide you with the logs too. But cant post here due to character count limitations.

Kindly advice on further debug steps

Hi roshan,

Sorry for late reply. I think we should make things easier to understand here.

First, since B01 SOM is released this year, the old sdkmanager (Jetpack 4.2/4.2.1…) may not support it. Need to use the latest one Jetpack4.3

Second, You have to make sure the baseboard needs to match the module sku. For example, if you are using p3449-A02 devkit, then your module also needs to be A02 module. A02 to B01 is not compatible with each other.

Third, you are talking about “dekvit” so I guess all of your modules here have sdcard slot on it and not a production module, right?

Actually, sdkmanager also uses the flash tool to flash the board, so if you only want to verify the flash, you could use the flash script. It also saves much time too.

To use flash script, please try

cd Linux_for_Tegra
sudo ./flash jetson-nano-qspi-sd mmcblk0p1

This Linux_for_Tegra folder is downloaded by sdkmanager on your host. For example, it is under below path in my host.

~/nvidia/nvidia_sdk/JetPack_4.3_Linux_P3448/Linux_for_Tegra

Hello Wayne,

  1. I have downloaded the SDK from Nvidia and confirming the Jetpack version used for flash testing was 4.3.

  2. Do you mean to say no matter what, I need the newer DevKit B01 (with 2x camera connectors) to flash the production module? Even if this is the case, it still doesnt clarify why the A02 DevKit with the older module with SD card is not getting flashed with the SDK.

  3. No. I have the production module also, without the SD card.

  4. I have the A02 DevKit (1x Camera connector DevKit) with a module (SD card) and another module with no SD card. With these hardware in hand, is it possible for me to flash the B01 newer module (w/o SD card)?

  5. Do I need the B01 carrier card to flash the production SOM? I dont have the B01 carrier card right now.

  6. I would like to first obtain a successful flash &then try to verify it with the commands you have provided. I didnt get even a single successful flash on the SDK yet, not even with A02 DevKit with module (with SD card)

We are completely at a stand still on bringing up our base board. Kindly requesting you to provide some solid debug pointers.

Note that to flash the SKU2 module/CVM (eMMC, no SD-card) directly you need to use:
sudo ./flash.sh jetson-nano-emmc mmcblk0p1

But as mentioned, you’ll need a B01 carrier board (CVB) to host that module. A02 and B01 CVMs and CVBs are not interchangeable.

Could you please point to me to further documentation regarding this? Like where I could find some FAQs, or common troubleshooting tips etc.

Hi,

I think we could make this easier to understand…

When you buy a devkit, there is always a matched carrier board and module (with sdcard slot). You should at least use that pair to flash the board and it shall pass.

However, It appears that none of your jetson nano (no matter A02/B01) is able to pass the flash, so we need to check the flash log from you.

Please share the flash log if possible. Also, I wrote a simple guidance here for what we want to check from your side.
https://elinux.org/Jetson/General_debug

As for the A02/B01 problem, a quick check is the FAB ID on your module. I paste a photo below for you to understand where to check.

Module:B01/A02
Carrier board; B01/A02
Only A02-> A02 , B01->B01 combination would work. It means the B01 module you have is not able to use now.