Jetson Nano_ How Do i register Device Tree ?

Hello :)
I wrote new dtsi file located in $(HOME)/hardware/nvidia/platform/t210/porg/kernel-dts/porg-platforms

because I wanna use ov5640 but In jetson-nano don’t recognize this sensor but then again jetson-nano don’t have ov5640 driver.

So i tried to make .dtsifile and looking for DeviceRegistration below link
https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-322/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fcamera_sensor_prog.html%23wwpID0E0TG0HA

but above link guide is so different my Jetson-nano board

guide :
1.Locate and edit the .dtsi file:
/hardware/nvidia/platform/t19x/common/kernel-dts/t19x-common-modules/tegra194-cvb-p2822-0000-a00.dtsi
2.Remove the following line from the file:
#include “tegra194-camera-plugin-manager.dtsi”
Save and close the file.
3.Locate and edit the .dtsi file:
/hardware/nvidia/platform/t19x/galen/kernel-dts/common/t194-p2822-0000-a00.dtsi
4.Replace the following line:
#include “tegra194-p2822-camera-modules.dtsi”
With an #include statement specifying the DTSI file for your new device.
Save and close the file.

I can’t found avobe files even grep -R tegra210-cvb or camera-modules.dtsi

Could anyone help me ? :)

Have check hardware/nvidia/platform/t210/porg/kernel-dts/… for nano

yes thanks ShaneCCC
I can found tegra210-porg-p3448-common.dtsi file in hardware/nvidia/platform/t210/porg/kernel-dts/

but I don’t know that whether i should add <#include (“MY DTSIFILE.dtsi”)> or what should I remove <
< #include sentence >

Could you know me some detail?

I wanna check this driver on /dev/video0
and confirm media-ctl -p -d /dev/medi0 - port binding

1 Like

Add your camera dtsi to ./tegra210-porg-p3448-common.dtsi and remove below two from the include.

./tegra210-porg-p3448-common.dtsi:#include “porg-platforms/tegra210-porg-camera-rbpcv2-imx219.dtsi”
./tegra210-porg-p3448-common.dtsi:#include “porg-platforms/tegra210-porg-camera-rbpcv2-dual-imx219.dtsi”

yes thanks xD ShaneCCC!

I have some questions

1.Should I make dtc Compiles my sensordriver(ov5640) ?
-> If I should that Is there a command?

  1. If I make dtsi files and regist ov5640.dtsi files, Can I find /dev/video0 or media-ctl media 0??

I’m rookie developer… :)

You need implement your sensor device tree and kernel driver.
Have a check the programing guide for the detail information.

once implement device tree
should I make moudles compile? ortherwise, can I just only reboot?

on reference guide
just follow below guide
" replace dtsi file with your dtsi file" :) ?

You need to flash the dtb by
sudo ./flash -r -k DTB jetson-nano-emmc mmcblk0p1

And build the sensor driver as built in module and replace the Image at /boot/Image on the Nano.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fflashing.html%23

thanks for your replies

i will try it :)

I need to more Jetson nano board!

Is there any education program? in korea

I also wanna received education message throught my email
where can i find news? or setting receive email message

I have already jetson nano kit.
So i did flash Image on SD card from Windows10.

as for Quick start guideline
“If you have the Jetson Nano Developer Kit, you can skip this guide and simply download and use the supported SD Card image.”

after install on sd-card and then boot and I tried to install kernel-source
so I don’t have flash.sh file,

any other way to applies implemented driver on the board?

I think that if replace with /boot/Image after make build modules in $(TEGRA_KERNEL_OUT)/arch/arm64/boot/Image
it will be okay?

You need a x86 ubuntu host PC to install the sdk_manager to get those package.

https://www.jetsonhacks.com/2019/06/04/nvidia-sdk-manager-for-jetson-jetpack-4-2/

Do i need to x86 ubuntu host PC in order to install new sensor driver? (ex: ov5640 dtsi, .c files)

It’s better to have a host ubuntu system to develop kernel driver and device tree update.

ok I confused …

I have some question. :)

  1. is it right need both {My sensor.dtsi} and {buses/i2c/My sensor. c} ?.
    -> (such as ov5640.c , tegra210-camera-porg-ov5640.dtsi)

  2. If I make dtsi files and then add {My seonsor.dtsi} to ./tegra210-porg-p3448-common.dtsi and remove below two from the include.

./tegra210-porg-p3448-common.dtsi:#include “porg-platforms/tegra210-porg-camera-rbpcv2-imx219.dtsi”
./tegra210-porg-p3448-common.dtsi:#include “porg-platforms/tegra210-porg-camera-rbpcv2-dual-imx219.dtsi”

  1. Do i have no need compile above and do {sudo ./flash -r -k DTB jetson-nano-emmc mmcblk0p1} ?

  2. Do I need to just dtsi file in order to recognition of sensor device ?

Yes, you need compiler to get the tegra210-p3448-0000-p3449-0000-xxx.dtb and replace it at JetPack_4.2.2_Linux_GA_P2180/Linux_for_Tegra/kernel/dtb/ then issue the command to update the dtb file.

Do i have to make dtsi and dtb files in Host PC ?
ortherwise in jetson nano board?

Yes, you need Host PC to compile the dts, dtsi to dtb file.
Please have a study the device tree.

https://saurabhsengarblog.wordpress.com/2015/11/28/device-tree-tutorial-arm/

thanks ShaneCCCCCCCCCCC~~

I’ve been make dtsi files of kernel source in jetson nano board … xD…omg…

what are different below contents:

tegra210-p3448-0000-p3449-0000-a00.dts
tegra210-p3448-0000-p3449-0000-a01.dts

tegra210-p3448-0000-p3449-0000-a02.dts

which I have to compile dts?

Have a check which one by below message.

dmesg | grep -i kernel