Hi Nvidia team,
I’m using a custom board with jetpack6.0, and I want to enable UART5.
I modified the pinmux with spreadsheet.
tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi.txt (65.7 KB)
tegra234-mb1-bct-gpio-p3701-0000-a04.dtsi.txt (4.6 KB)
In dmesg I can see:
root@tegra-ubuntu:~# dmesg|grep tty
[ 0.000000] Kernel command line: root=PARTUUID=da8b2c97-fb98-4288-ae51-b342056c43b3 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 console=ttyAMA0,115200 firmware_class.path=/etc/firmware fbcon=map:0 net.ifnames=0 nospectre_bhb video=efifb:off console=tty0 bl_prof_dataptr=2031616@0x102C610000 bl_prof_ro_ptr=65536@0x102C600000
[ 0.000655] printk: console [tty0] enabled
[ 0.150272] 31d0000.serial: ttyAMA0 at MMIO 0x31d0000 (irq = 120, base_baud = 0) is a SBSA
[ 0.150315] printk: console [ttyAMA0] enabled
[ 0.285714] printk: console [ttyTCU0] enabled
[ 4.042165] printk: console [tty0]: printing thread started
[ 4.043216] printk: console [ttyTCU0]: printing thread started
[ 4.044249] printk: console [ttyAMA0]: printing thread started
[ 4.135796] 3100000.serial: ttyTHS1 at MMIO 0x3100000 (irq = 112, base_baud = 0) is a TEGRA_UART
[ 4.136381] 3110000.serial: ttyTHS2 at MMIO 0x3110000 (irq = 113, base_baud = 0) is a TEGRA_UART
[ 4.137630] 3140000.serial: ttyTHS3 at MMIO 0x3140000 (irq = 114, base_baud = 0) is a TEGRA_UART
[ 11.048430] systemd[1]: Created slice Slice /system/serial-getty.
root@tegra-ubuntu:~# cat /sys/kernel/debug/pinctrl/2430000.pinmux/pinconf-groups | grep uart
88 (uart2_tx_px4):
function=uartb
89 (uart2_rx_px5):
function=uartb
90 (uart2_rts_px6):
91 (uart2_cts_px7):
92 (uart5_tx_py5):
function=uarte
93 (uart5_rx_py6):
function=uarte
94 (uart5_rts_py7):
95 (uart5_cts_pz0):
120 (uart1_cts_pr5):
121 (uart1_rts_pr4):
122 (uart1_rx_pr3):
function=uarta
123 (uart1_tx_pr2):
function=uarta
125 (uart4_cts_ph6):
126 (uart4_rts_ph5):
127 (uart4_rx_ph4):
function=uartd
128 (uart4_tx_ph3):
function=uartd
We have connected the TX and RX pins for loopback, I used below commands to test loopback:
root@tegra-ubuntu:~# stty -F /dev/ttyTHS2 115200 raw -echo
root@tegra-ubuntu:~# cat /dev/ttyTHS2 &
[1] 2613
root@tegra-ubuntu:~# echo “test” > /dev/ttyTHS2
root@tegra-ubuntu:~#
there is no “test“ output.
Could you help analyze which step I missed?
Thank you
output_agx.dts.txt (315.4 KB)
upload dts file
Hi hanyang369,
hanyang369:
Could you also configure K58 and H57 for RTS/CTS?
Please try running the following command before you verify loopback test.
$ sudo systemctl stop nvgetty
$ sudo systemctl disable nvgetty
$ sudo systemctl stop serial-getty@ttyTHS2.service
$ sudo systemctl disable serial-getty@ttyTHS2.service
Hi KevinFFF,
I configured K58 and H57 with below two configurations
And run the following commands
$ sudo systemctl stop nvgetty
$ sudo systemctl disable nvgetty
$ sudo systemctl stop serial-getty@ttyTHS2.service
$ sudo systemctl disable serial-getty@ttyTHS2.service
But the loopback test both failed with the two configurations
UART2 loopback test is fine, and its configuration
Have you confirmed that you’ve shorted J58(TX) and H58(RX) correctly?
If so, could you get a scope and measure if your got anything when your run echo command to /dev/ttyTHS2
?
hanyang369:
image1241×455 19.8 KB
From result you shared, is it working on/dev/ttyTHS3
?
So you short for /dev/ttyTHS3
rather than /dev/ttyTHS2
?
Hi KevinFFF,
/dev/ttyTHS3 is UART2, and /dev/ttyTHS2 is UART5.
we shorted both UART5 and UART2(J58 H58 ,C58 C56).
Loopback test on UART2(/dev/ttyTHS3) is fine, but Loopback test on UART5(/dev/ttyTHS2) failed.
Yes, I confirm that J58 and H58 have been correctly shorted.
Using the scope, J58 remains at a low level continuously, and no data is received when sending data with the echo command.
When testing UART2 TX with the scope, its initial state is high, and data can be captured when sending data with the echo command.
FYI, we set J58 to high impedance in the spreadsheet to avoid a boot up issue we encountered earlier. Could this modification be related?
I am reverting the high impedance change in the spreadsheet to try it again.
It seems high impedance configureation(i.e. Z) is invalid for an output pin.
I’ve checked the default configurations in pinmux spreadsheet as following.
Please just use the similar configurations to verify.
Hi Kevin,
Thank you for your help.
The loopback test on UART5 was successful after reverting the high impedance configuration. We initially added this high impedance setting to address a boot-up issue (refer to https://forums.developer.nvidia.com/t/unhandled-exception-in-el3-in-uefi-when-bootup/338242 ). This configuration was provided by an ODM to prevent the boot-up issue.
Best regards,
system
Closed
September 10, 2025, 1:31am
15
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.