Disabling only UPHY1 configuration

In our custom carrier board we are not using UPHY1(NVHS), so I tried the following to disable the UPHY1 configuration.

Removed nvhs-uphy-config-0 from p3701.conf.common file ODMDATA and flashed the board(I have not rebuild anything).

Is it possible to disable UPHY1 alone? Because I could see that there is no change in the /sys/kernel/debug/bpmp/debug/uphy/config value.

There is no need to do this at all.

No need to disable UPHY1z

Instead, you need to disable the pcie or usb driver.

We need PCIe configuration of UPHY0. If we disable the PCIe driver then it will effect UPHY0 PCIe functionality correct?

No, PCIe controller is independent to each other.
Disabling the controller on UPHY1 won’t affect UPHY0

Can you guide me to disable PCIe controller only on UPHY1. Any reference document available.

Any inputs on this?

please refer to the adaptation guide.

https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html?highlight=adaptation#pcie-controller-configuration

Disable corresponding pcie controller in the device tree and reflash new device tree to your board.

I have disabled following PCIe node(PCIe of UPHY1) in tegra234-p3737-pcie.dtsi file.

pcie@141a0000 {
                /*status = "okay";*/
                status = "disabled";

                phys = <&p2u_nvhs_0>, <&p2u_nvhs_1>, <&p2u_nvhs_2>,
                       <&p2u_nvhs_3>, <&p2u_nvhs_4>, <&p2u_nvhs_5>,
                       <&p2u_nvhs_6>, <&p2u_nvhs_7>;
                phy-names = "p2u-0", "p2u-1", "p2u-2", "p2u-3", "p2u-4",
                            "p2u-5", "p2u-6", "p2u-7";
        };

After the above change I have built the kernel. Once kernel build completes, I have copied only tegra234-p3701-0000-p3737-0000.dtb file from Linux_for_Tegra/source/public/kernel_out/arch/arm64/boot/dts/nvidia/ to Linux_for_Tegra/kernel/dtb/ path and flashed the Jetson AGX Orin development kit using the following command.

#sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1

I have converted tegra234-p3701-0000-p3737-0000.dtb to dts file and checked the status of pcie@141a0000 node. The status is disabled.

After board boots I have checked /sys/devices/platform/ folder, but still I am seeing “141a0000.pcie” folder in the output.

Copying only dtb file and flashing is correct? Anything I am missing here.

Learn some basic debug tips first. For example does /proc/device-tree shows the pcie status is enabled or disabled?

Does the dts build time in dmesg shows the new time built by you or it is still the old time from default BSP?

To my knowledge sysfs will give the system information(devices and drivers) and procfs will give process information. So I checked in the sysfs pseudo filesystem.

As per your suggestion, I have checked in procfs as well, but still the status is showing as “okay”.

In the dmesg the dtb timestamp is matching with the time which I built.

I could see the three PCIe controllers(14100000, 14160000 and 141a0000) logs in the dmesg. Complete dmesg log(
dmesg.txt (71.6 KB)
) attached.

Maybe you can try to see if other dts files enabled that node again after your modification.