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.

AM62P: The UART (mcu_uart0) outputs the message "IPC RPMSG ECHO"

Part Number: AM62P


Tool/software:

Hi TI experts,

Our project using mcu_uart0 as /dev/ttyS4

but we cannot output data to /dev/ttyS4
it will hang after I output data to /dev/ttyS4

$ stty -F /dev/ttyS4 115200
$ echo "hello" > /dev/ttyS4 //It will hang here and not return


When the system starts up, I notice that it outputs the following message (From the DB9 output of my machine):

[IPC RPMSG ECHO] Version: REL.MCUSDK.K3.10.00.00.05+ (Jul 11 2024 03:05:55):
[IPC RPMSG ECHO] Remote Core waiting for messages at end point 13 ... !!!
[IPC RPMSG ECHO] Remote Core waiting for messages at end point 14 ... !!!

Below is my kernel DTS configuration for this UART.

/ {
	compatible = "ti,am62p5-sk", "ti,am62p5";
	model = "Texas Instruments AM62P5 SK";

	aliases {
		serial0 = &main_uart1;
		serial1 = &wkup_uart0;
		serial2 = &main_uart0;
		serial3 = &main_uart6;
		serial4 = &mcu_uart0;
//		mmc0 = &sdhci0;
		mmc1 = &sdhci1;
//		mmc2 = &sdhci2;
		spi0 = &mcu_spi0;
		spi1 = &main_spi0;
		ethernet0 = &cpsw_port1;
		ethernet1 = &cpsw_port2;
		usb0 = &usb0;
		usb1 = &usb1;
	};
};

&mcu_pmx0 {
	bootph-all;

	// UART2 - RS232
	mcu_uart0_pins_default: mcu-uart0-default-pins {
		pinctrl-single,pins = <
			AM62PX_MCU_IOPAD(0x0014, PIN_INPUT, 0) /* (B6) MCU_UART0_RXD */
			AM62PX_MCU_IOPAD(0x0018, PIN_OUTPUT, 0) /* (C8) MCU_UART0_TXD */
		>;
	};
};

// mcu_uart0  | /dev/ttyS4 | RS232
&mcu_uart0{
	pinctrl-names = "default";
	pinctrl-0 = <&mcu_uart0_pins_default>;
	status = "okay";
	bootph-all;
};

Does anyone know what happened?
Thanks!

  • Hi,

    I have re assigned this query to the correct expert, please expect responses in sometime.

    Regards,

    Vaibhav

  • Hi Yuyuan,

    Please remove files /lib/firmware/am62p-mcu* in the root filesystem then reboot the board to see if you can use mcu uart0 in Linux now.

  • Hi Yuyuan,

    As you prefer to disable it by configuration, try set &mcu_f5fss0 status ="disabled"; in k3-am62p5-sk.dts.

    with default dts.

    root@am62pxx-evm:~# dmesg |grep mcu
    [    0.000000] OF: reserved mem: initialized node mcu-r5fss-dma-memory-region@9b800000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009b800000..0x000000009b8fffff (1024 KiB) nomap non-reusable mcu-r5fss-dma-memory-region@9b800000
    [    0.000000] OF: reserved mem: initialized node mcu-r5fss-memory-region@9b900000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009b900000..0x000000009c7fffff (15360 KiB) nomap non-reusable mcu-r5fss-memory-region@9b900000
    [   12.823973] platform 79000000.r5f: assigned reserved memory node mcu-r5fss-dma-memory-region@9b800000
    [   13.053833] remoteproc remoteproc0: Booting fw image am62p-mcu-r5f0_0-fw, size 59368
    [   13.055560] rproc-virtio rproc-virtio.3.auto: assigned reserved memory node mcu-r5fss-dma-memory-region@9b800000
    root@am62pxx-evm:~# ls

    disabled mcu_r5fss0 in dts, did not boot mcu_r5f

    root@am62pxx-evm:~# dmesg | grep mcu
    [    0.000000] OF: reserved mem: initialized node mcu-r5fss-dma-memory-region@9b800000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009b800000..0x000000009b8fffff (1024 KiB) nomap non-reusable mcu-r5fss-dma-memory-region@9b800000
    [    0.000000] OF: reserved mem: initialized node mcu-r5fss-memory-region@9b900000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: 0x000000009b900000..0x000000009c7fffff (15360 KiB) nomap non-reusable mcu-r5fss-memory-region@9b900000
    root@am62pxx-evm:~#

  • Thanks, Tony.
    Your solution works!
    I found that this issue was caused by installing the package "ti-rtos-firmware"