How to enable IMX390[GMSL] in Orin

In 34.1 Developer Preview Release Notes ( NVIDIA Jetson Linux), I found this issue.
3589917 Jetson AGX Xavier: Failed to detect IMX390[GMSL] through Jetson-IO tool.

In case of Orin, is it detected? I connected Orin and IMX390 with GMSL. But I can’t find /dev/video0. I printed custom log in the driver and I found that imx390 is not probed.

Could you give me some guides to enable IMX390?

For this release you need modify the device tree for IMX390 manually to enable it.
This problem should be fixed by next release.

I tried to modify device tree manually but I found that /proc/device-tree is not changed.
I followed these steps

  1. Compile the kernel

  2. Copy the kernel image and dtb into Linux_for_Tegra
    cp build/arch/arm64/boot/Image Linux_for_Tegra/kernel/;
    cp build/arch/arm64/boot/dts/nvidia/tegra234-p3701-0000-p3737-0000.dtb Linux_for_Tegra/kernel/dtb/tegra234-p3701-0000-p3737-0000.dtb;

  3. ./flash.sh
    sudo ./flash.sh --no-flash -k kernel jetson-agx-orin-devkit mmcblk0p1
    sudo ./flash.sh --no-flash -k kernel-dtb jetson-agx-orin-devkit mmcblk0p1

  4. Copy files in Linux_for_tegra/rootfs/ to Orin.

  5. Reboot

I found that the kernel image has changed with my customized code but device tree is not changed. Is it the correct sequence?

If the sequence is the correct, I want to know which dts file should be modified.

Thank you in advance.

Confirm which dtb need to replace for your Jetson by dmesg | grep -i kernel

I found this line.

DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-5.10/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t23x/concord/kernel-dts/tegra234-p3701-0000-p3737-0000.dts

It looks like my compiled dtb is not loaded. But I copied the compiled dtb with the way mentioned in the previous comment.
I have tried another way: I copied build/arch/arm64/boot/dts/nvidia/tegra234-p3701-0000-p3737-0000.dtb to /boot/dtb/kernel_tegra234-p3701-0000-p3737-0000.dtb of the Orin after building the kernel but I got the same result. I think my modified dts is not applied.
Is it the correct method?

The command is different for Orin to update the partition.

sudo ./flash.sh --no-flash -k A_kernel jetson-agx-orin-devkit mmcblk0p1
sudo ./flash.sh --no-flash -k A_kernel-dtb jetson-agx-orin-devkit mmcblk0p1

I ran your commented command but I got the same result:

DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-5.10/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t23x/concord/kernel-dts/tegra234-p3701-0000-p3737-0000.dts

Of course, my modification in hardware/nvidia/platform/t23x/concord/kernel-dts/tegra234-p3701-0000-p3737-0000.dts is not applied at all. How could I do?

Try to copy the dtb to Orin and modify the extlinux.conf to apply your dtb

https://elinux.org/Jetson/TX2_DTB

Thanks a lot. I found that device tree has been changed.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.