Hi,
I am using a Jetson Orin NX (P3767-0004) with a custom carrier board that follows the standard 40-pin header layout (same mapping as P3768 devkit).
JetPack version:
cat /etc/nv_tegra_release
# R36.4.0 (JetPack 6.1)
Device tree compatible:
cat /proc/device-tree/compatible
nvidia,p3768-0000+p3767-0004
nvidia,p3767-0004
nvidia,tegra234
Goal
Use UART1 on the 40-pin header:
-
Pin 8 → PR2 → UART1_TX
-
Pin 10 → PR3 → UART1_RX
According to runtime device tree:
serial1 = "/bus@0/serial@3100000";
And:
udevadm info -a -n /dev/ttyTHS1
→ iomem_base = 0x3100000
So /dev/ttyTHS1 maps to serial@3100000 (UART1 / uarta).
Observed Anomalies
1️⃣ UART clock behavior
Before opening ttyTHS1:
uarta 0 0 0
After opening ttyTHS1:
sudo cat /sys/kernel/debug/clk/clk_summary | grep uarta
uarta 1 1 0 1841986
So the UART1 clock becomes enabled when the device is opened.
This suggests:
-
Driver is loaded
-
Peripheral is present
-
Clock tree is functional
2️⃣ PR2 / PR3 appear as GPIO
However:
sudo gpioinfo | grep PR.02
sudo gpioinfo | grep PR.03
line 110: "PR.02" unused input active-high
line 111: "PR.03" unused input active-high
And in pinctrl debug:
sudo cat /sys/kernel/debug/pinctrl/2430000.pinmux/pinmux-pins | grep PR2
sudo cat /sys/kernel/debug/pinctrl/2430000.pinmux/pinmux-pins | grep PR3
(MUX UNCLAIMED) (GPIO UNCLAIMED)
This indicates:
-
Pins are not claimed by UART driver
-
They still behave as GPIO
-
No pinctrl state is applied for uart1_tx_pr2 / uart1_rx_pr3
3️⃣ No data received on ttyTHS1
When external data is sent to Pin 10 (UART1_RX), nothing appears on:
sudo stty -F /dev/ttyTHS1 115200 raw -echo
sudo cat /dev/ttyTHS1
No data, no framing errors, no activity.
4️⃣ devmem test does not change pin ownership
Register addresses:
-
PR2 → 0x2430098
-
PR3 → 0x243009C
Reading:
sudo busybox devmem 0x2430098
sudo busybox devmem 0x243009C
Modifying via devmem does not cause the pins to be claimed by UART, and they still appear as GPIO in gpioinfo.
5️⃣ Device tree runtime inspection
Decompiled runtime DT shows:
-
serial@3100000 status = “okay”
-
No explicit pinmux node for uart1_tx_pr2 / uart1_rx_pr3 inside pinmux@2430000
It appears no pinctrl configuration for UART1 is applied at boot.
Questions
-
On JetPack 6.1 (R36.x), is UART1 on the 40-pin header disabled by default?
-
Is pinmux for PR2/PR3 now controlled exclusively by MB1 BCT in JP6.x?
-
Should I modify:
-
nv-platform/tegra234-p3768-0000+p3767-xxxx-nv-common.dtsi -
Or regenerate pinmux via the official spreadsheet and reflash?
-
-
Is this behavior expected for custom carrier boards without EEPROM override?
Summary
-
UART1 peripheral exists
-
Clock enables correctly
-
ttyTHS1 is mapped correctly
-
But PR2/PR3 remain GPIO
-
No data received
It appears that pinmux for UART1 is not configured at boot on JP6.1.
Any guidance on the correct way to enable UART1 pinmux on P3767-0004 (JP6.1) would be appreciated.
Thanks.