Jetson nano IMX219 Device Tree

Hi,

I have the older version of the EVM so i cant put production modules in it,
I have compiled everything without any change, The EVM with the EVM module works fine,
I have the leopard imaging IMX219 module and it is detected on I2C-6 and everything works,
it seems to use the single camera and not dual camera that are present in the DTS

We have our hardware for the module and it is 98% similar to the EVM,
So i put the production module in our hardware and everything seems to work

The only strange thing is that on the EVM it goes to I2C-6 to detect the camera
On our hardware for some reason it attempts to load dual IMX6 using the i2c_mux, I2C-7 & 8

Why did it not do the exact same thing as the EVM ? I didn’t change anything

I am aware that the production module and evm module use different DTS, evm - A02, production - B00, but i thought that they will behave the same.

When i tried to disable the Imx219 dual dts and removed it completely from the dts leaving only the single imx219,
On the EVM no problem everything works.
On our hardware the kernel crashes and restarts when it attempts to init stuff in the vi

Thanks
Amir

hello amir.s,

please double confirm you’re using correct board configuration files to flash the image,
please also refer to Topic 1071159 for the discussion of different Nano boards.
thanks

Hi,

Thanks for the quick reply,
I wrote wrong info in the first message since i wrote it late last night from home,
Now i am at work and can elaborate more.

I have an jetson evm version: DAAF-A02
And the the evm module version: DAAA-A02
I have production modules version: DAAA-B01
So the production modules can not fit in this EVM version.

I downloaded JetPack_4.2.2_Linux_GA_P3448 and compiled it without change, no problem

I have used the following command in order to program the EVM module:

./flash.sh jetson-nano-qspi-sd internal

Everything programs Ok, I can see during the programming that the SDK has selected the following DTB:
tegra210-p3448-0000-p3449-0000-a02.dtb

I have the Imx219 disconnected from the the board on purpose and when I boot i can see it attempting to probe the IMX219:

Starting kernel …

[ 1.028385] tegradc tegradc.1: dpd enable lookup fail:-19 [ 1.539696] Host read timeout at address 545c00c4 [ 2.724679] cgroup: cgroup2: unknown option "nsdelegate" [ 3.655792] imx219 6-0010: imx219_board_setup: error during i2c read probe (-121) [ 3.674684] imx219 6-0010: board setup failed [ 4.762144] using random self ethernet address [ 4.767258] using random host ethernet address [ 4.818360] using random self ethernet address [ 4.822899] using random host ethernet address

I have also programmed the production modules using our hardware that is almost identical to the EVM,
I have used the following command to program the production module:

./flash.sh jetson-nano-emmc internal

Everything programs Ok, I can see during the programming that the SDK has selected the following DTB:
tegra210-p3448-0002-p3449-0000-b00.dtb

I have the Imx219 disconnected from the the board on purpose and when I boot i can see it attempting to probe the Dual IMX219 not the Single IMX219:

Starting kernel …

[ 1.039378] tegradc tegradc.1: dpd enable lookup fail:-19 [ 1.550734] Host read timeout at address 545c00c4 [ 2.354594] cgroup: cgroup2: unknown option "nsdelegate" [ 3.138696] imx219 7-0010: imx219_board_setup: error during i2c read probe (-121) [ 3.153787] imx219 7-0010: board setup failed [ 3.191149] imx219 8-0010: imx219_board_setup: error during i2c read probe (-121) [ 3.205631] imx219 8-0010: board setup failed [ 3.555653] using random self ethernet address [ 3.560139] using random host ethernet address [ 3.623505] using random self ethernet address [ 3.628090] using random host ethernet address [ 3.648823] random: crng init done [ 3.652230] random: 7 urandom warning(s) missed due to ratelimiting

How can this be ? i thought that they should behave the same, i.e. it should attempt to detect the single camera on the production module also and not the Dual camera.

How can i make it attempt to probe the single camera and not the dual camera ?

Thanks
Amir

hello amir.s,

that’s due to new revision of Jetson Nano devkit has an additional camera connector. hence, it’s probing dual cameras by default.
you may also refer to the Nano device tree, which include dtsi file for dual imx219 configuration.
for example,

<i>$l4t-r32.3.1/TX1_Nano/Linux_for_Tegra/source/public/hardware/nvidia/platform/t210/porg/kernel-dts/tegra210-porg-p3448-common.dtsi</i>

#include "porg-platforms/tegra210-porg-camera-rbpcv2-imx219.dtsi"
#include "porg-platforms/tegra210-porg-camera-rbpcv2-dual-imx219.dtsi"

you may have customization to update the device tree by removing dual configuration,
please also ensure you’d connect the camera hardware to the active port.
thanks