PWM7 not working on Jetson Orin NX

I use Jetson Orin NX 16GB module that is attached to a Jetson Orin NX Engineering Reference Carrier Board.
And the BSP is Jetpack 5.1 EA

I am trying to drive PWM outputs of Orin NX which are PWM7 GPIO07( GPIO3_PG.06).
I already configured related pins

in tegra234-soc-pwm.dtsi :
tegra_pwm7: pwm@32e0000 {
compatible = “nvidia,tegra194-pwm”;
reg = <0x0 0x32e0000 0x0 0x10000>;
nvidia,hw-instance-id = <0x6>;
clocks = <&bpmp_clks TEGRA234_CLK_PWM7>,
<&bpmp_clks TEGRA234_CLK_PLLP_OUT0>,
<&bpmp_clks TEGRA234_CLK_CLK_M>;
clock-names = “pwm”, “parent”, “slow-parent”;
#pwm-cells = <2>;
resets = <&bpmp_resets TEGRA234_RESET_PWM7>;
reset-names = “pwm”;
status = “okay”;
}

in tegra234-mb1-bct-pinmux-p3767-dp-a03:
soc_gpio19_pg6 {
nvidia,pins = “soc_gpio19_pg6”;
nvidia,function = “gp”;
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
nvidia,lpdr = <TEGRA_PIN_DISABLE>;
}

I typed these commands and probed the pin for a PWM signal without success.
cd /sys/class/pwm/pwmchip3
echo 0 > export
cd pwm0
echo 10000 > period
echo 1000 > duty_cycle
echo 1 > enable

I also use the same configuration to probe the PWM1 GPIO12(GPIO3_PN.01) and PWM5 GPIO13(GPIO3_PH.00) pins for a PWM signal, and they are okay.

1 Like

Moving to JetPack EA forum to support Orin NX, the Jetpack 5.1 EA is not published officially yet.

hello hsu.y.y,

may I confirm your steps,
for example, had you… (1) modify pinmux spreadsheets to toggle the pin as GP_PWM7 / Output / Int PD, (2) to create the pinmux configuration, and (3) apply the changes by full flash the Orin NX platform?

Post on behalf of YY since he can’t enter this forum.
Yes, what we modified is as described above, then build image & flash the Orin NX. Only PWM7 is not working, PWM1 & PWM5 are no problem. Please help.

hello chiang.mr,

could you please help to narrow down the issue?
for example, is this a regression? are you able to see the same failure on JetPack-5.0.2/l4t-r35.1?

Dear Jerry,
We think JetPack-5.0.2/l4t-r35.1 can’t support Orin NX, please let us know how to test this build on Orin NX.
Besides, the same pin on Xavier NX (PWM8) can work on Jetpack 5.1EA/5.0.2 with no problem, just for your reference.

hello chiang.mr,

may I know which Orin NX you’re using?

you may try using these two specific configuration file based-on JP-5.0.2. as you can see in the default installation path, i.e. jetson-agx-orin-devkit-as-nx-16gb.conf and jetson-agx-orin-devkit-as-nx-8gb.conf.

BTW,
I’ve also report this issue, and we’re checking this internally.

I have added YY to this EA forum, he should be no problem to access it now.

I use Jetson Orin NX 16GB module that is attached to a Jetson Orin NX Engineering Reference Carrier Board.

As I know, this configuration (jetson-agx-orin-devkit-as-nx-16gb.conf) is emulate Jetson Orin NX 16GB on Jetson AGX Orin Developer Kit. JP-5.0.2 is not support Jetson Orin NX 16GB module.

hello hsu.y.y,

sorry for not being clear, I meant emulate as Jetson Orin NX 16GB on Jetson AGX Orin and reproduce the PWM7 issue on JP-5.0.2.

The emulation is focus the GPU, CPU, and other hardware accelerators are configured according to the supported nvpmodels for the target platform. How should PWM correspond to the test?

hello hsu.y.y,

I got confirmation that emulation won’t be able to help here.
we’re now have internal investigation, will update this thread after we come out conclusions.

hello hsu.y.y,

FYI,
it’s due to firewall settings, so this is blocked on ccplex permission.
you may check kernel logs and seeing FIREWALL_ERR related messages,
we’re still checking internally to enable that.

Dear Jerry,
We got several Jetpack 5.1 EA updates(up to V5) but the PWM7 function still fails. Is there any progress for NVidia to solve this issue now? Thanks.

hello chiang.mr,

there’s firewall config update, but this fix is not included to Jetpack 5.1 EA.
please refer to below code snippets, you may try updating firewall-config for confirmation.
for example,

-- a/firewall/tegra234-firewall-config-base.dtsi
+++ b/firewall/tegra234-firewall-config-base.dtsi
@@ -2544,8 +2544,8 @@
         };

         reg@505 { /* PADCTL_G4_SCR_SCR_SOC_GPIO19_0 */
-            exclusion-info = <0>;
-            value = <0x00000000>;
+            exclusion-info = <2>;
+            value = <0x38000406>;
         };

note, you’ll see firewall config under default installation path.
i.e. $OUT/Linux_for_Tegra/bootloader/tegra234-firewall-config-base.dtsi
please update the settings, and please perform complete flash process to re-flash the platform to apply those settings.

please have a try,
thanks

Hi Jerry

I found a issue, if I update the firewall config, the image flashing process could not finish.
It will stop at “Step 3: Start the flashing process”, if i recover the firewall config the flashing process is OK.
flash_1-11_0_20221221-131438.log (43.9 KB)
flash_1-11_0_20221221-132512.log (121.6 KB)

hello hsu.y.y,

how about running flash script to flash the target directly.
$ sudo ./flash.sh -r <platform> mmcblk0p1

Hi Jerry
There is not internal emmc on Orin NX

hello hsu.y.y,

ya, it just a reference commands, please try flash script to flash the target directly.

I running flash script to flash the target directly, but the flash process still not finish.
flash.log (60.1 KB)

$ sudo ./flash.sh -r p3509-a02+p3767-0000 nvme0n1p1