UART2 RX/TX on M.2 Connector connection not established

Hello,

I have a jetson TX1 carrier board and want to communicate with a uart device through
the M.2 connector but the connection seems not to be established.

I probed the UART2 RX/TX lines which are on M.2 connectors with an oscilloscope but
they seemed to just be pulled up and no communication when using some uart apps like minicom or cu.

Other UART ports seems to be connected because when I probe the lines in a way as above,
I am able to see the communication going on.

Is there some special setting I have to do in the driver or device tree?

Thank you.

Shaun

I’m not sure which serial device goes to the M.2. Which “/dev” file did you use? FYI, if the “/dev” file exists, then it means the driver loaded. If you know which UART controller is used you can look in the extracted source from the .dtb file and find the block with “serial@some_base_address”, then check if ‘status = “okay”’ to know if the UART is enabled.

Hello linudev,

I have checked that the UART is enabled in the device tree (like you said by confirming status=“okay”)

But I am actually not sure which “/dev/ttyTHS*” matches UART2 connected to M.2 key connector.
How can I check this?
And on the OEM Product guide, it says that UART2 is for BT/Wifi, is it actually usable?

Thank you very much.

I would have to check further, but perhaps it isn’t UART2 going to the M.2. Numbering of UARTs can differ between carrier board and the TX1 module…so can anyone verify if the UART to BT/WiFi is the same or different than the M.2 UART?

Has anyone been able to get the TX1 UART2 port working (Jetson TX1 BGA Pins B15,B16)? This is the port that is connected to the M.2 Key E Connector on the Nvidia Dev Board. I am trying to enable it on a custom carrier board.

To test, I am using minicom. I have tried connecting to all /dev/ttyS* and /dev/ttyTHS* ports, but none of them seem to transmit out of UART2.

The console prints out of UART0, and opening /dev/ttyS0 will send bytes out of UART0 also.
Trying to open /dev/ttyTHS1 locks up the entire system and requires a hard reboot. Is this normal?
Transmitting out of /dev/ttyTHS2 will send bytes out of Jetson TX1 UART1 (BGA Pins D9,D10).
Transmitting out of /dev/ttyTHS3 does not seem to do anything. Is this supposed to be UART2?

The UART2 TX and RX pins are reading 1.8V on my scope.

I’ve attached my boot log and serial portion of my decompiled DTB file, which is just the stock JetPack 3.1 / R28.1 build.

Does anyone have any suggestions for getting UART2 to work? Thanks for your help.
dts_serial.txt (1.73 KB)
serial_log.txt (1.39 KB)

I searched around the forum some more and found this thread:
https://devtalk.nvidia.com/default/topic/1023121/jetson-tx1/tx1-jetpack-3-1-dev-ttyths1-reliable-hard-lockup-/
So essentially adding this to my DTS file allowed access to /dev/ttyTHS1, which was connected to UART2:

serial@70006040 {
		resets = <0x41 0x7>;
	};