Hello,
This topic is continued from this thread.
I’m customizing kernel for jetson orin nx and orin nano boards, JP 6 and jetson linux r36.3.
Since the progress from the previous thread last time, I have re-flashed the system. Before this flash, I commented
# OVERLAY_DTB_FILE+=",tegra234-p3768-0000+p3767-0000-dynamic.dtbo";
in the jetson-orin-nano-devkit.conf at /Linux_for_Tegra/ . This resulted in successfully disabling the boot-time imx219 sensor probe (I guess jetson orin nano and nx devices only probe for imx219 instead of additional imx477).
However, the problem is that I need to interface adv7280m video decoder. Its linux kernel driver, adv7180.c ( adv7xxx devices are a series of video decoders with varying input and output formats. The linux provided device driver adv7180.c is compatible for a range of devices including adv7280m, which is what I am using.), was enabled via menuconfig, compiled and installed in Linux_for_Tegra/rootfs/lib/modules/5.15.136-tegra/, and I can locate it at the respective location after the flash.
The device-tree files of adv7280m (find attached with this message) were copied to Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/overlay/ and the folder’s Makefile was edited as follows:
# SPDX-License-Identifier: GPL-2.0-only
# SPDX-FileCopyrightText: Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
DTC_FLAGS += -@
old-dtb := $(dtb-y)
old-dtbo := $(dtbo-y)
dtb-y :=
dtbo-y :=
makefile-path := t23x/nv-public/overlay
dtbo-y += tegra-optee.dtbo
dtbo-y += tegra234-audio-overlay.dtbo
dtbo-y += tegra234-carveouts.dtbo
dtbo-y += tegra234-dcb-p3767-0000-hdmi.dtbo
dtbo-y += tegra234-jetson.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-as-p3701-0004.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-as-p3767-0000.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-as-p3767-0001.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-as-p3767-0003.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-as-p3767-0004.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-dynamic.dtbo
dtbo-y += tegra234-p3768-0000+p3767-0000-dynamic.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-audio-adafruit-uda1334a.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-audio-adafruit-sph0645lm4h.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-audio-fe-pi.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-audio-respeaker-4-mic-array.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-audio-respeaker-4-mic-lin-array.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-csi.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-hdr40.dtbo
dtbo-y += tegra234-p3737-0000+p3701-0000-m2ke.dtbo
dtbo-y += tegra234-p3767-0000+p3509-a02-audio-adafruit-sph0645lm4h.dtbo
dtbo-y += tegra234-p3767-0000+p3509-a02-audio-adafruit-uda1334a.dtbo
dtbo-y += tegra234-p3767-0000+p3509-a02-audio-fe-pi.dtbo
dtbo-y += tegra234-p3767-0000+p3509-a02-audio-respeaker-4-mic-array.dtbo
dtbo-y += tegra234-p3767-0000+p3509-a02-audio-respeaker-4-mic-lin-array.dtbo
dtbo-y += tegra234-p3767-0000+p3509-a02-csi.dtbo
dtbo-y += tegra234-p3767-0000+p3509-a02-hdr40.dtbo
dtbo-y += tegra234-p3767-0000+p3509-a02-m2ke.dtbo
dtbo-y += tegra234-p3767-0000+p3768-0000-csi.dtbo
dtbo-y += tegra234-p3740-0002+p3701-0008-hdr20.dtbo
dtbo-y += tegra234-p3740-0002+p3701-0008-m2ke.dtbo
dtbo-y += tegra234-p3740-0002+p3701-0008-m2kb.dtbo
dtbo-y += tegra234-p3740-0002-p3701-0008-csi.dtbo
dtbo-y += tegra234-p3767-camera-p3768-adv7280m-dual.dtbo
# dtbo-y += tegra234-p3737-camera-dual-imx274-overlay.dtbo
# dtbo-y += tegra234-p3737-camera-e3331-overlay.dtbo
# dtbo-y += tegra234-p3737-camera-e3333-overlay.dtbo
# dtbo-y += tegra234-p3737-camera-imx185-overlay.dtbo
# dtbo-y += tegra234-p3767-camera-p3768-imx219-dual.dtbo
# dtbo-y += tegra234-p3767-camera-p3768-imx477-dual.dtbo
# dtbo-y += tegra234-p3767-camera-p3768-imx477-dual-4lane.dtbo
# dtbo-y += tegra234-p3767-camera-p3768-imx477-imx219.dtbo
# dtbo-y += tegra234-p3737-camera-eCAM130A-overlay.dtbo
# dtbo-y += tegra234-p3737-camera-dual-hawk-ar0234-e3653-overlay.dtbo
# dtbo-y += tegra234-p3737-camera-imx390-overlay.dtbo
# dtbo-y += tegra234-p3737-camera-p3762-a00-overlay.dtbo
# dtbo-y += tegra234-p3740-camera-p3783-a00-overlay.dtbo
# dtbo-y += tegra234-p3767-camera-p3768-imx219-C.dtbo
# dtbo-y += tegra234-p3767-camera-p3768-imx219-A.dtbo
# dtbo-y += tegra234-p3767-camera-p3768-imx219-imx477.dtbo
# dtbo-y += tegra234-p3767-camera-p3768-imx477-C.dtbo
# dtbo-y += tegra234-p3767-camera-p3768-imx477-A.dtbo
ifneq ($(dtb-y),)
dtb-y := $(addprefix $(makefile-path)/,$(dtb-y))
endif
ifneq ($(dtbo-y),)
dtbo-y := $(addprefix $(makefile-path)/,$(dtbo-y))
endif
dtb-y += $(old-dtb)
dtbo-y += $(old-dtbo)
After running
make dtbs
and
cp nvidia-oot/device-tree/platform/generic-dts/dtbs/* <install-path>/Linux_for_Tegra/kernel/dtb/
I confirmed the presence of adv7280m dtbo at /kernel/dtb/. But since all the default dtbo files were already located at /kernel/dtb/, populated due to running $ sudo ./apply_binaries.sh
, I manually deleted the other camera dtbo files.
Afterwards, using
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_t234_nvme.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 jetson-orin-nano-devkit internal
I flashed the system. This time, even though it didn’t probe for imx219, it also didn’t include the adv7280m overlay file at /boot/, however the rest of the camera dtbos that I even deleted from /kernel/dtb/ were present.
Please also find attached dmesg.txt and extracted_proc.dts files.
adv7280m_DT.zip (5.4 KB)
dmesg.txt (59.4 KB)
extracted_proc.dts.txt (307.4 KB)