JetPack 4.2.1 SPI


How do we use SPI on JetPack 4.2.1?

We use the SD Card flash image for our Nano’s. Is there any ways we can add it to the SD Card after flashing?

For the kernel Image you just need replace the /boot/Image but the dtb file need flash command.
Have a reference to below link.


It’s not enough to create a new SD Card image with, and flash that onto the Nano’s SD Card??

I thought the DTB file were read off the SD Card.

We need to do this to 100 Nano’s, so it would be preferable if we could just flash 100 SD Cards and have it working.

You can replace the dtb file at …/Linux_for_Tegra/kernel/dtb/ and Image file at …/Linux_for_Tegra/kernel/ then run the

Should the Image file be modified?

I’ve looked at GitHub - rt-net/JetsonNano_DT_SPI: SPI1 enabled DTS and flash-tools for Jetson Nano, and it doesn’t seem like it’s doing anything with the Image.

In the, I’ve changed this line:

sudo ./ --no-systemimg -k DTB jetson-nano-qspi-sd mmcblk0p1


sudo ./ -o sd-blob.img -s 12G -r 200

The resulting image boots fine on the Nano, but it seems like the setup does not complete. I can enter username and password, set time, but then the window closes, and I can just see the empty desktop. It doesn’t look like it’s completed, because the new user is not added to sudoers etc.

Am I doing anything wrong with that command?

I just noticed how it works (from this link: How to build NVIDIA Jetson Nano kernel - RidgeRun Developer Connection).

So, I need to change the DTB, then compile a new Image, and put on the Nano?

Check out the Jetson Nano Developer Kit 40-Pin Expansion Header Configuration Application Note:

Hello prlawrence,

Does this Configuration Application Note (rev 1.0), developper kit pin mux (1.0) work with the R32.2.0 release?
Unfortunately, I did not manage yet to enable the SPI function.

First, I flashed the SD image following the getting starting guide for Jetson Nano.
I could start the device. Then I followed the application note.

$ cat /proc/device-tree/nvidia,dtsfilename

It returned “…p3449-0000-b00.dts”. So I tried to follow the instruction with R32.2.0 and b00 but it did not work. I get the nvidia logo and it stops.

When checking the logs, in fact it seems that a local eeprom is read at the beginning of the flashing process to select the correct dtb. In my case it is 200 and ‘a02.dtb’.

When I use SDK manager to flash instead of the image file, I get a ‘a02.dtb’.

So I tried to modify the a02.dtb, but it did not work either.

could you please confirm that is should work with current indicated revisions?

Thank you

You can check the …/Linux_for_Tegra/bootloader/flash.xml to know the file for DTB partition, and replace that file at …/Linux_for_Tegra/kernel/dtb/ and issue below command to update the DTB.

sudo ./ --no-systemimg -k DTB jetson-nano-qspi-sd mmcblk0p1

** preamble:
I was wondering if the flash config was fixed or not.
However, correct me if I am wrong, but flash.xml is created from flash_l4t_t210_spi_sd_p3448.xml

copying ..... Linux_for_Tegra/bootloader/t210ref/cfg/flash_l4t_t210_spi_sd_p3448.xml) to flash.xml... done.

There is initially a placeholder DTBFILE which is populated according the board value read from EEPROM through USB at the beginning of the flash process.

The SD image generated by nvidia and available on the web was made with a Nano version b00 (“300”).
Once the image is done, I don’t think it checks the same eeprom at boot to set the correct dtb. So probably it loads the b00 on a a02 board.

What are the differences between those revisions? From a to b, it seems a major revision.

I am not sure I get what you are writing. If we just have to update the DTB, what about the application note which indicates the need to update U boot header files?

Anyway, I tried on a system made with SDK manager. It can reboot but no SPI appear in /dev.

I compared dtb files extracted to dts from people who seem to have a working set up. There are quite many difference with my version. They seem to mention R32.1.

Could you please let me know your recommendation, stick on trying R32.2 or going back and try on R32.1.
Will there be updates soon of the spreadsheet and app note to make the process simpler?

You can confirm if the DTB was updated by dmesg | grep -i kernel

DTS File Name: /home/zjf/work/proj_tx2_imx378/kernel/kernel-4.9/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts