Imx283 camera not recognized in TX2 NX with carrier board LI_NANO_CB

I am trying to build a device driver for imx283 to be mounted on TX2 NX . But after sucessful build and flashing when i check the dmesg there was no mention of imx283 driver.
I will list the steps which I have followed so far

  1. Downloaded the NVIDIA SDK manager , where I installed the packages required for TX2 NX and navigated to the ~/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/ folder.
  2. I executed ./source_sync.sh which created a folder named “sources”. I copied the uncompressed “kernel_src.tbz2” obtained from 32.7.3 BSP sources
  3. I navigated to /Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/lanai/kernel-dts/ common/ and created dtsi files for imx283 camera, which was similar to imx477 for xavier nx dtsi file and with few changes to gpio and clocks . I have included these files in tegra186-p3636-0001-p3509-0000-a01.dts
  4. I created saved driver file such as imx283.c ,imx283.h,imx283_tbls.h in /Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/ and made necessery changes in Makefile like obj-$(CONFIG_VIDEO_IMX283) += imx283.o and made changes in Kconfig alike other camera sensors.
  5. Also added the line CONFIG_VIDEO_IMX283=y in tegra_deconfig file present in folder /Linux_for_Tegra/sources/kernel/kernel-4.9/arch/arm64/configs
  6. configured the output path as TEGRA_KERNEL_OUT=
  7. export CROSS_COMPILE=<cross_prefix> to configure path for cross compiler which was downloaded from NVIDIA 32.7.3 archive.
  8. export LOCALVERSION=-tegra was executed
  9. Going to folder ~/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/sources/kernel/kernel-4.9/, command make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig was executed and after that make ARCH=arm64 O=$TEGRA_KERNEL_OUT -j7. There were no error reported apart from few warning .
  10. After that the replaced Linux_for_Tegra/kernel/Image with $TEGRA_KERNEL_OUT/arch/arm64/boot/Image and then replace dthe contents of Linux_for_Tegra/kernel/dtb with $TEGRA_KERNEL_OUT/arch/arm64/boot/dts/.
  11. sudo make ARCH=arm64 O=$TEGRA_KERNEL_OUT modules_install INSTALL_MOD_PATH= ~/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/rootfs/ was executed .
  12. And finally sudo ./flash.sh jetson-xavier-nx-devkit-tx2-nx mmcblk0p1 was executed form "…/Linux_for_Tegra/ " folder while keeping the Jetson board in recovery mode ,having connected it to host PC through usb. The flashing was sucessful.

The imx283 camera was connected to the board ,but wasnt detected. The dmesg had no mention of imx283 driver at all.
Something which I found wrong in the dmesg messeges were

isp 15600000.isp :initialized
driver not enabled,cannot register any devices
nvcsi 150c0000.nvcsi:intialized
driver not enabled ,cannot register any devices

and futher below were messeges

vdd-3v3-disp-cvb:disabling
vdd-3v3-cvb:disabling

i have enclosed dmesg file here:
log_file (64.5 KB)

Any suggestions ??

Dump the device tree to confirm your modification was included.

sudo dtc -I fs -O dts -o extracted_proc.dts /proc/device-tree

Thnx for the suggestion Shane,
Here is what the operation u mentioned rendered in terminal

> [sudo] password for shreyas: 
extracted_proc.dts: Warning (reg_format): "reg" property in /host1x/i2c@3180000/tca9548@70 has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
extracted_proc.dts: Warning (unit_address_vs_reg): Node /aconnect@2a41000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /aconnect@2a41000/ahub has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /aconnect@2a41000/ahub/ope@2908000/peq@2908100 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /aconnect@2a41000/ahub/ope@2908000/mbdrc@2908200 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /aon_spi@c260000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /reserved-memory/fb0_carveout has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /reserved-memory/ramoops_carveout has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /reserved-memory/fb1_carveout has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /reserved-memory/fb2_carveout has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /bpmp_i2c/spmic@3c/pinmux@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /i2c@c240000/iqs263@44 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /eeprom-manager/bus@2 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /eeprom-manager/bus@2/eeprom@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /eeprom-manager/bus@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /eeprom-manager/bus@0/eeprom@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /eeprom-manager/bus@0/eeprom@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /eeprom-manager/bus@3 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /eeprom-manager/bus@3/eeprom@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /eeprom-manager/bus@3/eeprom@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /tpiu@8060000/port/enpoint@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /i2c@31a0000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /fixed-regulators/regulator@3 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /fixed-regulators/regulator@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /fixed-regulators/regulator@8 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /fixed-regulators/regulator@6 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /fixed-regulators/regulator@10 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /fixed-regulators/regulator@4 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /fixed-regulators/regulator@2 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /fixed-regulators/regulator@7 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /fixed-regulators/regulator@11 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /fixed-regulators/regulator@5 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /chosen/plugin-manager/ids/connection/i2c@c250000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /chosen/plugin-manager/ids/connection/i2c@c250000/module@0x57 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@1/override@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@6 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@6/override@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4/override@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4/override@4 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4/override@2 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4/override@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4/override@5 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4/override@5/_overlay_/dpaux@15040000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4/override@5/_overlay_/nvdisplay@15210000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4/override@5/_overlay_/nvdisplay@15220000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4/override@5/_overlay_/dpaux@155c0000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4/override@5/_overlay_/nvdisplay@15200000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@4/override@3 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-b00@2 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-b00@2/overrides@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-b00@2/overrides@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/ina3221_current_limit/override@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/ina3221_current_limit/override@0/_overlay_/channel@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/soc-prod-a01-fragment/override@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/soc-prod-a01-fragment/override@2 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/soc-prod-a01-fragment/override@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@2 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@2/override@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@0/override@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@8 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@10 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-common@0/overrides@11 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-a00@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-a00@1/overrides@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragment-e2614-a00@1/overrides@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@5 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@5/override@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@3 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /plugin-manager/fragement@3/override@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /combined-uart has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /thermal-zones/GPU-therm/trips/eqos-m40@-40000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /thermal-zones/GPU-therm/trips/eqos-p30@30000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /thermal-zones/GPU-therm/trips/eqos-p100@100000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /thermal-zones/GPU-therm/trips/eqos-p65@65000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /thermal-zones/GPU-therm/trips/eqos-m5@-5000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /aon@c160000/ivc-channels@80000000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /vi-bypass@15700000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /bpmp has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/dsi has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/sor1 has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/sor1/dp-display/dp-lt-settings/lt-setting@2 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/sor1/dp-display/dp-lt-settings/lt-setting@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/sor1/dp-display/dp-lt-settings/lt-setting@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/dc_common has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/sor has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/sor/dp-display/dp-lt-settings/lt-setting@2 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/sor/dp-display/dp-lt-settings/lt-setting@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/sor/dp-display/dp-lt-settings/lt-setting@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi@150c0000/channel@2/ports/port@1/endpoint@5 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi@150c0000/channel@2/ports/port@0/endpoint@4 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi@150c0000/channel@0/ports/port@1/endpoint@1 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi@150c0000/channel@0/ports/port@0/endpoint@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi@150c0000/channel@3/ports/port@1/endpoint@7 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi@150c0000/channel@3/ports/port@0/endpoint@6 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi@150c0000/channel@1/ports/port@1/endpoint@3 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/nvcsi@150c0000/channel@1/ports/port@0/endpoint@2 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /host1x/i2c@3180000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /sce-ivc-channels/ivccontrol@52c0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /sce-ivc-channels/ivccapture@72c0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /sce-ivc-channels/dbg@7c00 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /sce-ivc-channels/echo@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /sce-ivc-channels/dbg@7e00 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /sce-ivc-channels/mods@32c0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /sce-ivc-channels/i2c@480 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /sce-ivc-channels/vinotify@12c0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /sound/i2c@c240000 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /mc has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /etr@8050000/port/endpoint@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /ape-ivc-channels/ivccontrol@52c0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /ape-ivc-channels/ivccapture@72c0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /ape-ivc-channels/dbg@7c00 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /ape-ivc-channels/echo@0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /ape-ivc-channels/dbg@7e00 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /ape-ivc-channels/vinotify@12c0 has a unit name, but no reg property
extracted_proc.dts: Warning (unit_address_vs_reg): Node /mipical has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /soctherm-oc-event has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (unit_address_vs_reg): Node /gp10b has a reg or ranges property, but no unit name
extracted_proc.dts: Warning (pci_bridge): Node /pcie-controller@10003000 node name is not "pci" or "pcie"
extracted_proc.dts: Warning (pci_bridge): Node /pcie-controller@10003000/pci@2,0 missing bus-range for PCI bridge
extracted_proc.dts: Warning (pci_bridge): Node /pcie-controller@10003000/pci@1,0 missing bus-range for PCI bridge
extracted_proc.dts: Warning (pci_bridge): Node /pcie-controller@10003000/pci@3,0 missing bus-range for PCI bridge
extracted_proc.dts: Warning (unit_address_format): Failed prerequisite 'pci_bridge'
extracted_proc.dts: Warning (pci_device_reg): Failed prerequisite 'reg_format'
extracted_proc.dts: Warning (pci_device_reg): Failed prerequisite 'pci_bridge'
extracted_proc.dts: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
extracted_proc.dts: Warning (pci_device_bus_num): Failed prerequisite 'pci_bridge'
extracted_proc.dts: Warning (simple_bus_reg): Failed prerequisite 'reg_format'
extracted_proc.dts: Warning (avoid_default_addr_size): Relying on default #address-cells value for /host1x/i2c@3180000/tca9548@70
extracted_proc.dts: Warning (avoid_default_addr_size): Relying on default #size-cells value for /host1x/i2c@3180000/tca9548@70
extracted_proc.dts: Warning (gpios_property): Missing property '#gpio-cells' in node /cpus/cpu@0 or bad phandle (referred from /eeprom-manager/bus@3/eeprom@0:enable-gpio[0])
extracted_proc.dts: Warning (gpios_property): Missing property '#gpio-cells' in node /cpus/cpu@0 or bad phandle (referred from /eeprom-manager/bus@3/eeprom@1:enable-gpio[0])

and the dts file created is
extracted_proc.dts (237.0 KB)

I tried looking up for possible sollutions on the forum and found this reply to such a query by kayccc

I was unable to comprehend the steps that are needed to be followed.
In case u have an alternative sollution or willing to throw some more light on the aforementioned sollution ,it would be helpful.

Check if kernel is replace to your build. Check the build date.

uname -a

Linux shreyas-desktop 4.9.299-tegra #6 SMP PREEMPT Thu Jul 6 16:16:28 IST 2023 aarch64 aarch64 aarch64 GNU/Linux

The compilation has taken place recently

@SimonZhu
Could you help to check if able to provide driver for this topic.

Thanks

@SimonZhu had provided preliminary driver files to one of my previous query

We already are using that with changes to dtsi file that would suit TX2 NX .
Is it possible to tell what precisely is going wrong ??

@shreyasj256
We currently don’t have TX2 NX driver for this camera. Please contact support@leopardimaging.com for custom driver service if needed.

After getting the video feed from imx283 on Jetson Nano using Jetpack 4.3, I was wondering what diffrently needs to be done on TX2NX using Jetpack 4.6.1 ,so that the camera imx283 runs on it .

Any suggestions ??

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