This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SK-AM62: Using UART5 from Expansion Header J3

Part Number: SK-AM62
Other Parts Discussed in Thread: SK-LCD1

Hello,

As the title says, I am trying to figure out how to use UART5 from the expansion header J3 in Linux but I am having trouble figuring out how this is done. I am fairly new to Linux development so I apologize if I missed an obvious note or guide from TI.

My assumption is that I would need to modify the device tree so that Linux would be aware these pins are being used for UART communication. I saw this section (4.1.7 How to enable DT overlays in linux) in the Processor SDK Linux for AM62x documentation, however I am not sure how I would go about changing one of the device tree files (or creating a new one) in order to enable UART5 in Linux. Additionally, I assume these instructions are only valid for TI-Linux and not Debian Bookworm on the AM62. Currently I have been trying to use Debian Bookworm as it has been easy to install packages of other software I am planning on using, and the Debian Developer's Guide does not seem to provide very many details on how to go about changing the device tree.

My initial goal is to have a USB to Serial converter connecting my development PC to the SK-AM62 and to be able to see UART messages coming from the SK-AM62 to verify that the UART5 is functioning before moving on.

My questions are as follows:

1.) Is my assumption correct that in order to use UART5 the device tree needs to be modified, or is UART5 already available with ttyS# (/dev/ contains ttyS0, ttyS1, ttyS2, and ttyS3 which I assumed was for the other UARTs which are already connected to things on the board)

2.) If so, are there any examples for how to go about enabling this, do new files need to get made or does an existing one need to be modied?

3.) Is this process (enabling UART5) different for TI-Linux and Debian Bookworm?

Thank you in advance for any support.

  • Hi Joe,

    To enable UART5, all the kernel changes are in the kernel board device tree file:

    - add serial alias for UART5;
    - configure UART5 pinmux;
    - enable UART5 node;

    Please see the following link for details.

    https://dev.ti.com/tirex/explore/node?node=A__ASCnLxqE3-oDEkNaGY9Eog__AM62-ACADEMY__uiYMDcq__LATEST&placeholder=true

  • Thank you, for the reply.

    I will look into these topics and return to this thread if I have issues figuring it out.

    I have been using the default images provided by TI and have not had to build the kernel locally yet. Is it correct to assume that that should be the first step before trying to modify the device tree and once I verify that I am able to build the kernel as provided by TI I can attempt to add the UART5 support in?

  • Hi Joe,

    Yes, you would need to modify the kernel device tree file to enable UART5, then compile kernel device tree, and only update the new kernel device tree dtb file to the SD card with the default image.

  • I modified /board-support/ti-linux-kernel/arch/arm64/boot/dts/ti/k3-am625-sk.dts to have the following:

    	aliases {
    		serial1 = &main_uart5;
    	};

    &main_pmx0 {
    	/* First pad number is ALW package and second is AMC package */
    	main_uart5_pins_default: main-uart5-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x1d8, PIN_INPUT, 0) /* (C15/B13) UART5_RXD */
    			AM62X_IOPAD(0x1dc, PIN_OUTPUT, 0) /* (E15/A15) UART5_TXD */
    		>;
    	};
    	...
    };

    and

    &main_uart5 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart5_pins_default>;
    };

    For context, here is the full code from that file:

    // SPDX-License-Identifier: GPL-2.0
    /*
     * AM625 SK: https://www.ti.com/lit/zip/sprr448
     *
     * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/
     */
    
    /dts-v1/;
    
    #include "k3-am62x-sk-common.dtsi"
    
    / {
    	compatible = "ti,am625-sk", "ti,am625";
    	model = "Texas Instruments AM625 SK";
    
    	aliases {
    		serial1 = &main_uart5;
    	};
    
    	opp-table {
    		/* Add 1.4GHz OPP for am625-sk board. Requires VDD_CORE to be at 0.85V */
    		opp-1400000000 {
    			opp-hz = /bits/ 64 <1400000000>;
    			opp-supported-hw = <0x01 0x0004>;
    			clock-latency-ns = <6000000>;
    		};
    	};
    
    	memory@80000000 {
    		device_type = "memory";
    		/* 2G RAM */
    		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
    
    	};
    
    	vmain_pd: regulator-0 {
    		/* TPS65988 PD CONTROLLER OUTPUT */
    		compatible = "regulator-fixed";
    		regulator-name = "vmain_pd";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vcc_5v0: regulator-1 {
    		/* Output of LM34936 */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_5v0";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		vin-supply = <&vmain_pd>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vcc_3v3_sys: regulator-2 {
    		/* output of LM61460-Q1 */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_3v3_sys";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		vin-supply = <&vmain_pd>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vdd_mmc1: regulator-3 {
    		/* TPS22918DBVR */
    		compatible = "regulator-fixed";
    		regulator-name = "vdd_mmc1";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		regulator-boot-on;
    		enable-active-high;
    		vin-supply = <&vcc_3v3_sys>;
    		gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
    	};
    
    	vdd_sd_dv: regulator-4 {
    		/* Output of TLV71033 */
    		compatible = "regulator-gpio";
    		regulator-name = "tlv71033";
    		pinctrl-names = "default";
    		pinctrl-0 = <&vdd_sd_dv_pins_default>;
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <3300000>;
    		regulator-boot-on;
    		vin-supply = <&vcc_5v0>;
    		gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
    		states = <1800000 0x0>,
    			 <3300000 0x1>;
    	};
    
    	vcc_1v8: regulator-5 {
    		/* output of TPS6282518DMQ */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_1v8";
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    		vin-supply = <&vcc_3v3_sys>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	wlan_lten: regulator-6 {
    		compatible = "regulator-fixed";
    		regulator-name = "wlan_lten";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		vin-supply = <&vcc_3v3_sys>;
    		regulator-always-on;
    		gpios = <&exp1 11 GPIO_ACTIVE_LOW>;
    	};
    
    	wlan_en: regulator-7 {
    		compatible = "regulator-fixed";
    		regulator-name = "wlan_en";
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    		vin-supply = <&wlan_lten>;
    		enable-active-high;
    		gpios = <&main_gpio0 71 GPIO_ACTIVE_HIGH>;
    		pinctrl-names = "default";
    		pinctrl-0 = <&wlan_en_pins_default>;
    	};
    };
    
    &main_pmx0 {
    	/* First pad number is ALW package and second is AMC package */
    	main_uart5_pins_default: main-uart5-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x1d8, PIN_INPUT, 0) /* (C15/B13) UART5_RXD */
    			AM62X_IOPAD(0x1dc, PIN_OUTPUT, 0) /* (E15/A15) UART5_TXD */
    		>;
    	};
    
    	main_rgmii2_pins_default: main-rgmii2-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */
    			AM62X_IOPAD(0x188, PIN_INPUT, 0) /* (AB20) RGMII2_RD1 */
    			AM62X_IOPAD(0x18c, PIN_INPUT, 0) /* (AC21) RGMII2_RD2 */
    			AM62X_IOPAD(0x190, PIN_INPUT, 0) /* (AE22) RGMII2_RD3 */
    			AM62X_IOPAD(0x180, PIN_INPUT, 0) /* (AD23) RGMII2_RXC */
    			AM62X_IOPAD(0x17c, PIN_INPUT, 0) /* (AD22) RGMII2_RX_CTL */
    			AM62X_IOPAD(0x16c, PIN_OUTPUT, 0) /* (Y18) RGMII2_TD0 */
    			AM62X_IOPAD(0x170, PIN_OUTPUT, 0) /* (AA18) RGMII2_TD1 */
    			AM62X_IOPAD(0x174, PIN_OUTPUT, 0) /* (AD21) RGMII2_TD2 */
    			AM62X_IOPAD(0x178, PIN_OUTPUT, 0) /* (AC20) RGMII2_TD3 */
    			AM62X_IOPAD(0x168, PIN_OUTPUT, 0) /* (AE21) RGMII2_TXC */
    			AM62X_IOPAD(0x164, PIN_OUTPUT, 0) /* (AA19) RGMII2_TX_CTL */
    		>;
    	};
    
    	ospi0_pins_default: ospi0-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x000, PIN_OUTPUT, 0) /* (H24) OSPI0_CLK */
    			AM62X_IOPAD(0x02c, PIN_OUTPUT, 0) /* (F23) OSPI0_CSn0 */
    			AM62X_IOPAD(0x00c, PIN_INPUT, 0) /* (E25) OSPI0_D0 */
    			AM62X_IOPAD(0x010, PIN_INPUT, 0) /* (G24) OSPI0_D1 */
    			AM62X_IOPAD(0x014, PIN_INPUT, 0) /* (F25) OSPI0_D2 */
    			AM62X_IOPAD(0x018, PIN_INPUT, 0) /* (F24) OSPI0_D3 */
    			AM62X_IOPAD(0x01c, PIN_INPUT, 0) /* (J23) OSPI0_D4 */
    			AM62X_IOPAD(0x020, PIN_INPUT, 0) /* (J25) OSPI0_D5 */
    			AM62X_IOPAD(0x024, PIN_INPUT, 0) /* (H25) OSPI0_D6 */
    			AM62X_IOPAD(0x028, PIN_INPUT, 0) /* (J22) OSPI0_D7 */
    			AM62X_IOPAD(0x008, PIN_INPUT, 0) /* (J24) OSPI0_DQS */
    		>;
    	};
    
    	vdd_sd_dv_pins_default: vdd-sd-dv-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x07c, PIN_OUTPUT, 7) /* (P25) GPMC0_CLK.GPIO0_31 */
    		>;
    	};
    
    	main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x01d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */
    		>;
    	};
    
    	wlan_en_pins_default: wlan-en-pins-default {
    		pinctrl-single,pins = <
    				AM62X_IOPAD(0x124, PIN_OUTPUT, 7) /* (A23) MMC2_SDCD.GPIO0_71 */
    		>;
    	};
    
    	main_mmc2_pins_default: main-mmc2-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x120, PIN_INPUT, 0) /* (C24) MMC2_CMD */
    			AM62X_IOPAD(0x118, PIN_INPUT, 0) /* (D25) MMC2_CLK */
    			AM62X_IOPAD(0x114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */
    			AM62X_IOPAD(0x110, PIN_INPUT, 0) /* (C25) MMC2_DAT1 */
    			AM62X_IOPAD(0x10c, PIN_INPUT, 0) /* (E23) MMC2_DAT2 */
    			AM62X_IOPAD(0x108, PIN_INPUT, 0) /* (D24) MMC2_DAT3 */
    			AM62X_IOPAD(0x11c, PIN_INPUT, 0) /* (#N/A) MMC2_CLKB */
    		>;
    	};
    
    	main_wlirq_pins_default: main-wlirq-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x128, PIN_INPUT, 7) /* (B23) MMC2_SDWP.GPIO0_72 */
    		>;
    	};
    };
    
    &main_uart5 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart5_pins_default>;
    };
    
    &main_i2c1 {
    	exp1: gpio@22 {
    		compatible = "ti,tca6424";
    		reg = <0x22>;
    		gpio-controller;
    		#gpio-cells = <2>;
    		gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
    				   "PRU_DETECT", "MMC1_SD_EN",
    				   "VPP_LDO_EN", "EXP_PS_3V3_En",
    				   "EXP_PS_5V0_En", "EXP_HAT_DETECT",
    				   "GPIO_AUD_RSTn", "GPIO_eMMC_RSTn",
    				   "UART1_FET_BUF_EN", "WL_LT_EN",
    				   "GPIO_HDMI_RSTn", "CSI_GPIO1",
    				   "CSI_GPIO2", "PRU_3V3_EN",
    				   "HDMI_INTn", "PD_I2C_IRQ",
    				   "MCASP1_FET_EN", "MCASP1_BUF_BT_EN",
    				   "MCASP1_FET_SEL", "UART1_FET_SEL",
    				   "TSINT#", "IO_EXP_TEST_LED";
    
    		interrupt-parent = <&main_gpio1>;
    		interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
    		interrupt-controller;
    		#interrupt-cells = <2>;
    
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
    	};
    };
    
    &sdhci1 {
    	vmmc-supply = <&vdd_mmc1>;
    	vqmmc-supply = <&vdd_sd_dv>;
    };
    
    &sdhci2 {
    	status = "okay";
    	vmmc-supply = <&wlan_en>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mmc2_pins_default>;
    	bus-width = <4>;
    	non-removable;
    	ti,fails-without-test-cd;
    	cap-power-off-card;
    	keep-power-in-suspend;
    	ti,driver-strength-ohm = <50>;
    	assigned-clocks = <&k3_clks 157 158>;
    	assigned-clock-parents = <&k3_clks 157 160>;
    
    	#address-cells = <1>;
    	#size-cells = <0>;
    	wlcore: wlcore@2 {
    		compatible = "ti,wl1837";
    		reg = <2>;
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_wlirq_pins_default>;
    		interrupt-parent = <&main_gpio0>;
    		interrupts = <72 IRQ_TYPE_EDGE_RISING>;
    	};
    };
    
    &cpsw3g {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_rgmii1_pins_default
    		     &main_rgmii2_pins_default>;
    
    	cpts@3d000 {
    		/* MAP HW3_TS_PUSH to GENF1 */
    		ti,pps = <2 1>;
    	};
    };
    
    &cpsw_port2 {
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy1>;
    };
    
    &cpsw3g_mdio {
    	cpsw3g_phy1: ethernet-phy@1 {
    		reg = <1>;
    		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    		ti,min-output-impedance;
    	};
    };
    
    &mailbox0_cluster0 {
    	mbox_m4_0: mbox-m4-0 {
    		ti,mbox-rx = <0 0 0>;
    		ti,mbox-tx = <1 0 0>;
    	};
    };
    
    &ospi0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&ospi0_pins_default>;
    
    	flash@0{
    		compatible = "jedec,spi-nor";
    		reg = <0x0>;
    		spi-tx-bus-width = <8>;
    		spi-rx-bus-width = <8>;
    		spi-max-frequency = <25000000>;
    		cdns,tshsl-ns = <60>;
    		cdns,tsd2d-ns = <60>;
    		cdns,tchsh-ns = <60>;
    		cdns,tslch-ns = <60>;
    		cdns,read-delay = <4>;
    
    		partitions {
    			compatible = "fixed-partitions";
    			#address-cells = <1>;
    			#size-cells = <1>;
    
    			partition@0 {
    				label = "ospi.tiboot3";
    				reg = <0x0 0x80000>;
    			};
    
    			partition@80000 {
    				label = "ospi.tispl";
    				reg = <0x80000 0x200000>;
    			};
    
    			partition@280000 {
    				label = "ospi.u-boot";
    				reg = <0x280000 0x400000>;
    			};
    
    			partition@680000 {
    				label = "ospi.env";
    				reg = <0x680000 0x40000>;
    			};
    
    			partition@6c0000 {
    				label = "ospi.env.backup";
    				reg = <0x6c0000 0x40000>;
    			};
    
    			partition@800000 {
    				label = "ospi.rootfs";
    				reg = <0x800000 0x37c0000>;
    			};
    
    			partition@3fc0000 {
    				label = "ospi.phypattern";
    				reg = <0x3fc0000 0x40000>;
    			};
    		};
    	};
    };
    
    &tlv320aic3106 {
    	DVDD-supply = <&vcc_1v8>;
    };
    
    #define K3_TS_OFFSET(pa, val)	(0x4+(pa)*4) (0x10000 | val)
    
    &timesync_router {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&cpsw_cpts>;
    
    	/* Use Time Sync Router to map GENF1 input to HW3_TS_PUSH output */
    	cpsw_cpts: cpsw-cpts {
    		pinctrl-single,pins = <
    			/* pps [cpsw cpts genf1] in17 -> out12 [cpsw cpts hw3_push] */
    			K3_TS_OFFSET(12, 17)
    			>;
    	};
    };
    

    After this I ran

    make linux-dtbs
     and see the files in /board-support/ti-linux-kernel/arch/arm64/boot/dts/ti get updated.

    Does that sound correct so far based on your original response?

    (Potentially related, the page you linked to in your first response talks about using k3-am62-sk.dts, which I am not able to find. I assumed this is supposed to k3-am625-sk.dts as that was the closest that I could find, and if that is true than I would suggest making a note of that in that documentation.)

    I am using WSL2 as my development environment and I am unable to get it to be able to access the files on the SD card (I flash the SD card using BalenaEtcher in Windows) as it is my understanding that Microsoft doesn't include mass storage support in WSL2 currently. I attempted to SCP the new k3-am625-sk.dtb to the AM62 and it appears to work.

    After this I reboot the board and attempt to use UART5 according to the processor SDK docs. I have my USB-to-UART adapter connected to the J3 expansion header pins 6 (GND), 8 (TX), and 10 (RX), open Putty and configure a connection for the COM port the USB-to-UART adapter is connected to with a baud rate of 115200 and 8 data bits, 1 stop bit, no parity, and no flow control.

    I attempt to write to the serial with the hope of seeing it appear in my Putty terminal in Windows by following the processor SDK docs and using 

    echo "hello" > /dev/ttyS1
     but I do not see anything coming through in Putty. I assumed that ttyS1 is what it should be as I used serial1 in the alias for main_uart5 and I noticed that in k3-am62x-sk-common.dtsi main_uart0 (which I believe is what is used with the built in micro USB on the SK-AM62) and when I do 
    echo "hello" > /dev/ttyS2
    I see "hello" in the Putty terminal I am using for that connection.

    Is my assumption that it should be ttyS1 because it is assigned to serial1? Do the rest of my steps sound correct, or am I missing anything that is needed in order for this to function correctly?

  • I have realized an error in the code I previously added. In the @main_pmx0 portion I believe I was passing some incorrect values to AM62X_IOPAD for the mux mode. I updated it to change them to the value for these pins in the datasheet, my updated code is below.

    &main_pmx0 {
    	/* First pad number is ALW package and second is AMC package */
    	main_uart5_pins_default: main-uart5-pins-default {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x1d8, PIN_INPUT, 1) /* (C15/B13) UART5_RXD */
    			AM62X_IOPAD(0x1dc, PIN_OUTPUT, 1) /* (E15/A15) UART5_TXD */
    		>;
    	};
    	...
    };

    It still does not appear to be functioning, but now when I boot the board I get the menu for GNU GRUB after autoboot countdown finishes, and then when it finishes booting my display doesn't show anything anymore, I am using the SK-LCD1 with the LVDS and my uEnv.txt on my SD card has the name_overlays set. Before I used SCP to put a new k3-am625-sk.dtb I backed up the original one and now when I revert back to that version of that .dtb I don't see the behavior return to normal.

  • Hi Joe,

    Yes, your original UART5 pinmux setting wasn't correct, but the new version is right.

    It still does not appear to be functioning, but now when I boot the board I get the menu for GNU GRUB after autoboot countdown finishes,

    This similar issue happened to me yesterday for the very first time, only because I updated the new dtb incorrectly and corrupted the original one as well. 

    To simply correct the issue, I recommend you recreate the SD card from the SDK WIC image, then copy the new k3-am625-sk.dtb correctly to the SD card.

    After this I reboot the board and attempt to use UART5 according to the processor SDK docs. I have my USB-to-UART adapter connected to the J3 expansion header pins 6 (GND), 8 (TX), and 10 (RX), open Putty and configure a connection for the COM port the USB-to-UART adapter is connected to with a baud rate of 115200 and 8 data bits, 1 stop bit, no parity, and no flow control.

    Please ensure to set the same termios on both the EVM and the PC. I typically do

    # stty -F /dev/ttySx 115200 -echo          <= on EVM
    # stty -F /dev/ttyUSBx 115200 -echo      <= on PC

  • To simply correct the issue, I recommend you recreate the SD card from the SDK WIC image, then copy the new k3-am625-sk.dtb correctly to the SD card.

    By copying correctly do you mean by using something like

     

    host# sudo DESTDIR=/media/$USER/rootfs make linux-dtbs_install

    and that simply using SCP to transfer the single updated dtb will not work?

  • I never used the SDK 'make linux-dtbs_install' command, and cannot comment if it does right or now.

    If you scp to copy the file over the network, in addition to that you have copied it to the correct location, please ensure you use 'reboot' command to reboot the board instead of directly power cycle the board. The latter could corrupt the root filesystem.

    I typically take out the SD card from the EVM, plug it to the PC and copy over the file.

  • I was able to update the files on the board with SCP and it appeared to work as doing a ls -l in the /boot/dtb/ti directory showed the date on the file changing after performing the SCP operation.

    However I was still having trouble seeing UART5 communication in Putty. Is my assumption from my previous post correct that I should be using ttyS1 because I am giving UART5 the alias serial1, or does something else determine which ttySX I should be using?

  • What is the output of the following command on your board?

    # dmesg|grep tty

  • Here is what I get from that command

    [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=spi-nand0:512k(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),98048k@32m(ospi.rootfs),256k@130816k(ospi.phypattern);omap2-nand.0:2m(NAND.tiboot3),2m(NAND.tispl),2m(NAND.tiboot3.backup),4m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup),-(NAND.file-system) root=PARTUUID=2009d4d0-02 rw rootfstype=ext4 rootwait
    [    1.054433] printk: console [ttyS2] disabled
    [    1.057435] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 239, base_baud = 3000000) is a 8250
    [    1.057774] printk: console [ttyS2] printing thread started
    [    1.057798] printk: console [ttyS2] enabled
    [    1.071843] 2850000.serial: ttyS1 at MMIO 0x2850000 (irq = 241, base_baud = 3000000) is a 8250
    [    2.698632] systemd[1]: Created slice Slice /system/getty.
    [    2.752003] systemd[1]: Created slice Slice /system/serial-getty.
    [   12.062503] audit: type=1006 audit(16.936:8): pid=959 uid=0 old-auid=4294967295 auid=1000 tty=(none) old-ses=4294967295 ses=1 res=1
    [   12.062731] audit: type=1300 audit(16.936:8): arch=c00000b7 syscall=64 success=yes exit=4 a0=8 a1=fffff7793748 a2=4 a3=ffffba72a020 items=0 ppid=1 pid=959 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm="(systemd)" exe="/lib/systemd/systemd" key=(null)
    [   12.277523] audit: type=1300 audit(17.124:9): arch=c00000b7 syscall=209 success=yes exit=0 a0=4 a1=0 a2=40 a3=ffffc3382048 items=0 ppid=872 pid=966 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="iptables" exe="/usr/sbin/xtables-legacy-multi" key=(null)
    [   12.292294] audit: type=1300 audit(17.152:10): arch=c00000b7 syscall=208 success=yes exit=0 a0=4 a1=0 a2=40 a3=3915b210 items=0 ppid=872 pid=966 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="iptables" exe="/usr/sbin/xtables-legacy-multi" key=(null)
    [   14.021082] audit: type=1006 audit(18.896:11): pid=783 uid=0 old-auid=4294967295 auid=1000 tty=tty7 old-ses=4294967295 ses=2 res=1
    [   23.295196] audit: type=1006 audit(28.168:12): pid=1165 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=3 res=1
    [   23.295214] audit: type=1300 audit(28.168:12): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=fffff7793748 a2=1 a3=ffffba72a020 items=0 ppid=1 pid=1165 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=3 comm="(systemd)" exe="/lib/systemd/systemd" key=(null)
    [   23.329563] audit: type=1300 audit(28.204:13): arch=c00000b7 syscall=280 success=yes exit=8 a0=5 a1=ffffcee63040 a2=78 a3=0 items=0 ppid=1 pid=1165 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=3 comm="systemd" exe="/lib/systemd/systemd" key=(null)
    [   23.329889] audit: type=1300 audit(28.204:15): arch=c00000b7 syscall=280 success=yes exit=8 a0=5 a1=ffffcee630e0 a2=78 a3=0 items=0 ppid=1 pid=1165 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=3 comm="systemd" exe="/lib/systemd/systemd" key=(null)
    

  • [    1.071843] 2850000.serial: ttyS1 at MMIO 0x2850000 (irq = 241, base_baud = 3000000) is a 8250

    the log shows ttyS1 is created for UART5.

    Please double check if you connected the USB-to-UART converter pins correctly with UART5 TXD/RXD pins.

    You can also directly put a scope or logic analyzer on the J3 header UART5 TXD pin to check if the char comes out when you do 'echo hello > /dev/ttyS1' command on the board.

  • I don't think this is relevant, but alias serial1 is already defined in k3-am62x-sk-common.dts, so maybe you try to define your UART5 alias to something else, but not serial1.

  • I changed the alias to serial3 and now I see this message but with ttyS3

    [    1.071843] 2850000.serial: ttyS1 at MMIO 0x2850000 (irq = 241, base_baud = 3000000) is a 8250

    Additionally, I believe I found the cause of the last of my issues was my USB-to-UART cable which I thought was one of my good ones was having trouble. I replace this cable with another that I had and I am able to see messages in Putty on my development PC when I 'echo hello > /dev/ttyS3' and I can see messages from my development PC when I 'cat /dev/ttyS3'.

    Thank you for all of the assistance and helping me through this issue.

  • I am glad the issue is resolved. Thanks for the update.