SD_Card & IMX477 Arducam NOT Working Simultaneously on Jetson Xavier NX

Hi All, I am using Nvidia Jetson Xavier NX A203 Version 2 Carrier Board. I am facing problem with SD Card and Ardu Cam IMX477 camera. Like when i insert sdcard, i need to enable it by updating the device tree and then sdcard is recognized but on the same side after sdcard is detected, I start using IMX477 cam on jetson xavier board, it won’t detectnthe camera or can say cam not working. Like in similar way when I use IMX477 arducam it works fine but sdcard is not detected. The problem is both won;t works together.

So, Please help me in this, I am new to device tree

How can you confirm the Carrier Board version?

I am using Jetson Xavier NX Version 2 only

To clarify this first, NX A203 is a custom board from other vendor, so my answer here may not be correct.

Actually it sounds like you didn’t flash a device tree that matches this board in the beginning. That is why you need to modify device tree after you flash the board.

Also, I am not sure how is your method to enable IMX477. What I guess is when you enable sdcard, you are using dtb_a. But when you are using IMX477 later, you are using dtb_b.

I guess it is just you are using two different device trees for different functions but not integrate them together at all.

To check whether I said is correct, you can dump the dmesg between these two cases.

Yes, when i am using imx477 then i run install4.sh which create dtb and when i enable sdcard it create new dtb so inshort i used two dtb for both. So my problem is how do i use both together. How to overcome conflicts between these two.

It is hard to directly answer as I already said, you are using a custom board.
I don’t know what is install4.sh and also not sure what is your process to create new dtb for sdcard.

A basic idea here is you just convert the two device tree from binary back to text. Compare the diff between them and put them into one file.

I followed this step to enable sdcard

You can try to add the content from that jetson-sdmmc-overlay.dts to your device tree which enables IMX477.

are you talking about this

/*

  • Copyright (C) 2022 Seeed Studio
  • MIT License

*/

/dts-v1/;
/plugin/;

include <dt-bindings/pinctrl/tegra210-p3448-0000-p3449-0000-a02.h>
include <dt-bindings/pinctrl/pinctrl-tegra.h>

/ {
overlay-name = “reComputer sdmmc”;
jetson-header-name = “Jetson 40pin Header”;
compatible = JETSON_COMPATIBLE;

fragment@0 {
	target = <&sdmmc3>;
	__overlay__ {
		status = "okay";

		/**
		 * We provide SD card function on carrier board, which supports CLK Frequency 48MHz.
		 * Increasing CLK by yourself might cause certificates (such as CE/FCC) failure!
		 */
		max-clk-limit = <48000000>;
	};
};

};

I am new to this can you help me more

hello afzal.hasan,

here’s another approach,
you may revise Xavier NX device tree to exclude IMX219, let the system probing IMX477 during kernel init as default camera.
for example,
$public_sources/kernel_src/hardware/nvidia/platform/t19x/jakku/kernel-dts/common/tegra194-p3509-0000-a00.dtsi

@@ -17,7 +17,6 @@
 #include "tegra194-audio-p3668.dtsi"
 #include "tegra194-super-module-e2614-p3509.dtsi"
 #include "tegra194-camera-jakku-rbpcv3-imx477.dtsi"
-#include "tegra194-camera-jakku-rbpcv2-imx219.dtsi"

By making imx477 the defualt camera, am i able to use both sdcard and imx477 cam together without any conflicts…

it should works as you don’t need to execute Jetson-IO to update device tree with dtbo files.

So can you please provide me the steps to follow from start to end…So that I able to use both sdcard and imx477 camera together.

you may visit https://developer.nvidia.com/embedded/jetson-linux-archive to download the [Driver Package (BSP) Sources] package.
please refer to previous comment #12 to update device tree accordingly.
please see-also developer guide, such as Building the Kernel, Flashing a Specific Partition.