How to update the dtb and Imge of the development board without burning?

Hi

I use jetson 6.4.3

I want to modify smp_affinity’s value so I found the patch from R36.3 Patch to re-enable GICv2m for PCIe MSI interrupts and restore I/O performance

And I merge the patch and I follow the web site :Kernel Customization — NVIDIA Jetson Linux Developer Guide to compiler it.

The dtsi modify path:

hardware/nvidia/t23x/nv-public/tegra234.dtsi
hardware/nvidia/t23x/nv-public/include/kernel/dt-bindings/interrupt-controller/arm-gic.h

and the kernel patch is following the patch files

After I compiled it I follow “How to update the dtb and Imge of the development board without burning?” to update Image and dtb

The “Image” I found in “kernel/kernel-jammy-src/arch/arm64/boot/Image” and the dtb I found in “./kernel-devicetree/generic-dts/dtbs/tegra234-p3737-0000+p3701-0000.dtb” and “./kernel-devicetree/generic-dts/dtbs/tegra234-p3737-0000+p3701-0000-nv.dtb”

Then I updated the file into device

copy Image to /boot/
copy “tegra234-p3737-0000+p3701-0000-nv.dtb” or “tegra234-p3737-0000+p3701-0000.dtb” to “/boot/dtb/kernel_tegra234-p3737-0000+p3701-0000-nv.dtb”

Then I try to modify smp_affinity.
I got the error which is like below:

Could you help me ?

  1. How can I check I updated dtb successfully?
  2. How can I modify smp_affinity?
    Thanks

Hi larry.lee,

Are you using the devkit or custom board for AGX Orin?

Do you mean Jetpack 6.2(L4T r36.4.3)?

I would suggest you re-flashing the board to apply the change.
Please share the full dmesg to check if GICv2m has been probed correctly.

Hi @KevinFFF ,

Thanks for your reply.

  1. Are you using the devkit or custom board for AGX Orin?
    I’m using devkit.

  2. Do you mean Jetpack 6.2(L4T r36.4.3)?
    Yes, I mean Jetpack 6.2 (R36.4.3) kernel (Linux ubuntu 5.15.148-tegra)

  3. I want to know how can I update device-tree?

  4. How can I change the kernel version? I already modify defconfig and .config to specify the LOCALVERSION=-test and my uname result is not change but the time is changed(Linux ubuntu 5.15.148-tegra #4 SMP PREEMPT Mon Jun 9 14:08:52 CST 2025 aarch64 aarch64 aarch64 GNU/Linux).

  1. The default dtb is read from UEFI dtb but not kernel dtb from anywhere. So if you want your dtb got read from rootfs, please add FDT field to your boot/extlinux/extlinux.conf with the path in rootfs. After that your dtb will read from rootfs with the path you indicated. And then you could replace device tree to that path.

  2. I don’t know what is your purpose to change “kernel version”. It sounds like you already replaced the kernel image. That should be sufficient.

Hi larry.lee,

You are missing a few steps.

The DTB to copy is the one ending -nv. As KevinFFF says you also need to add an FDT entry pointing to it into /boot/extlinux/extlinux.conf

e.g.

LABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
FDT /boot/dtb/kernel_tegra234-p3737-0000+p3701-0000-nv.dtb
INITRD /boot/initrd

The patch changes not only the kernel (/boot/Image) but the PCIe kernel module.

The rebuilt version of this needs to be copied into /lib/modules//kernel/drivers/pci/controller/dwc/pcie-tegra194.ko

This particular module is in the initrd (/boot/initrd), so that also needs to be updated.

This can be done on the jetson by running sudo nv-update-initrd after copying the new module over.

Regards,

Delwyn

1 Like

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