Hi,Experts.
We use the carrier board designed by ourselves, but only uart1 can be used for testing, and we use the loop test. I can be sure that the board is fine because it has been tested on Xavier.
I can’t find anything about serial in dmesg, nor with sudo demsg | grep
serial and sudo demsg | grep 310000
It can be found that the uart2_tx function is rsvd1 not uartb, but uart2_cts is uartb. The rest is the same, only uart1_tx and rx are correctly corresponding to uart1
120 (uart2_tx_px4):
pull=0
tristate=0
enable-input=0
open-drain=1
io-reset=1
rcv-sel=1
io-hv=1
loopback=0
schmitt=0
pull-down-strength=0
pull-up-strength=0
drive-type=0
func=rsvd1
pad-power=0
121 (uart2_rx_px5):
pull=0
tristate=1
enable-input=1
open-drain=1
io-reset=1
rcv-sel=1
io-hv=1
loopback=0
schmitt=0
pull-down-strength=0
pull-up-strength=0
drive-type=0
func=rsvd1
pad-power=0
122 (uart2_rts_px6):
pull=0
tristate=0
enable-input=0
open-drain=0
io-reset=0
rcv-sel=0
io-hv=0
loopback=0
schmitt=0
pull-down-strength=0
pull-up-strength=0
drive-type=0
func=uartb
pad-power=0
123 (uart2_cts_px7):
pull=0
tristate=1
enable-input=1
open-drain=0
io-reset=0
rcv-sel=0
io-hv=0
loopback=0
schmitt=0
pull-down-strength=0
pull-up-strength=0
drive-type=0
func=uartb
pad-power=0
1 (uart3_rx_pcc6):
func=uartc
2 (uart3_tx_pcc5):
func=uartc
120 (uart2_tx_px4):
121 (uart2_rx_px5):
122 (uart2_rts_px6):
func=uartb
123 (uart2_cts_px7):
func=uartb
124 (uart5_tx_py5):
125 (uart5_rx_py6):
126 (uart5_rts_py7):
127 (uart5_cts_pz0):
152 (uart1_cts_pr5):
func=uarta
153 (uart1_rts_pr4):
154 (uart1_rx_pr3):
func=uarta
155 (uart1_tx_pr2):
func=uarta
157 (uart4_cts_ph6):
158 (uart4_rts_ph5):
159 (uart4_rx_ph4):
160 (uart4_tx_ph3):
maybe that’s the problem.Here is my pinmux file about the uart2 and uart1.
uart2_tx_px4 {
nvidia,pins = "uart2_tx_px4";
nvidia,function = "uartb";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};
uart2_rx_px5 {
nvidia,pins = "uart2_rx_px5";
nvidia,function = "uartb";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};
uart2_rts_px6 {
nvidia,pins = "uart2_rts_px6";
nvidia,function = "uartb";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};
uart2_cts_px7 {
nvidia,pins = "uart2_cts_px7";
nvidia,function = "uartb";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};
uart1_tx_pr2 {
nvidia,pins = "uart1_tx_pr2";
nvidia,function = "uarta";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};
uart1_rx_pr3 {
nvidia,pins = "uart1_rx_pr3";
nvidia,function = "uarta";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};
uart1_rts_pr4 {
nvidia,pins = "uart1_rts_pr4";
nvidia,function = "uarta";
nvidia,pull = <TEGRA_PIN_PULL_NONE>;
nvidia,tristate = <TEGRA_PIN_DISABLE>;
nvidia,enable-input = <TEGRA_PIN_DISABLE>;
nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};
uart1_cts_pr5 {
nvidia,pins = "uart1_cts_pr5";
nvidia,function = "uarta";
nvidia,pull = <TEGRA_PIN_PULL_UP>;
nvidia,tristate = <TEGRA_PIN_ENABLE>;
nvidia,enable-input = <TEGRA_PIN_ENABLE>;
nvidia,lpdr = <TEGRA_PIN_DISABLE>;
};
By the way, i can find the ttyTHS0,1,3,4 in the /dev. Please tell me how to make func correspond to uart . Thanks a lot !