Need Advice for Jetson AGX Xavier dynamic device tree

We have Linux4Tegra R32.2.3, JetPack 4.2.3
We need the ability to dynamically change the device tree at boot time based on a values stored in EEPROM.
1 value will identify which camera we are using
1 value will identify which revision of the carrier board we are on.

Are their existing facilities in Linux4Tegra R32.2.3 and/or JetPack 4.2.3to address this need?

hello elitewompa,

please refer to Device Registration session, there’s plugin-manger to support camera module has on-board EEPROM and is programmed with a valid camera ID, it’ll update device tree dynamically to register camera device.

After reading about plugin-manger we have a few questions:
Do you have an example of the device tree entry to add an EEPROM for our carrier board?
Is their a specific format that is required on the ERPROM to work with plugin manager?
We see a number of EEPROMS already on the Xavier in the device tree, How does plugin-manager know which one to use?

hello elitewompa,

please refer to camera plugin-manager,
$TOP/public_sources/kernel_src/hardware/nvidia/platform/t19x/common/kernel-dts/t19x-common-modules/tegra194-camera-plugin-manager.dtsi
it uses ids to identify the connected camera board during bootloader stage, and there’re override properties to update the device tree content, when boot-up stage enter kernel initialization, it’ll register the camera device to the video node for the usage.

        /* camera plugin-manager */
        plugin-manager {
                /* IMX390 */
                fragment-imx390@0 {
                        ids = "LPRD-001";
                        override...{}

                /* E3326 camera board */
                fragment-e3326@0 {
                        ids = "3326-*";
                        override{...}
...

please refer to Jetson Camera Module Hardware Design Guide, and see [Table 6-1. EEPROM Structure] for details.

FYI,
start from Jetpack-5.x, because UEFI boot is enabled in this release, the plugin manager is no longer supported.
you must create a device tree overlay (DTB overlay, or .dtbo) file to register the camera module; please check Release Notes (r34.1) for more details.

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