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:UART (MCU_uart0)输出消息"IPC RPMSG echo"

Guru**** 2460850 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1478972/am62p-the-uart-mcu_uart0-outputs-the-message-ipc-rpmsg-echo

器件型号:AM62P

工具与软件:

尊敬的 TI 专家:

使用 mcu_uart0作为实验项目 /dev/ttyS4

但我们无法将数据输出到 /dev/ttyS4
在我将数据输出到/dev/ttyS4后、它将挂起

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


当系统启动时、我注意到它会输出以下消息(来自我的机器的 DB9输出):

[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 ... !!!

下面是针对这个 UART 的内核 dts 配置。

/ {
	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;
};

有人知道发生了什么事吗?
谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我已将此问题分配给正确的专家、请稍候再收到回复。

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yuyuan、您好!

    请删除文件 /lib/firmware/am62p-mcu * 然后在根文件系统中重新启动电路板、查看现在是否可以在 Linux 中使用 MCU uart0。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yuyuan、您好!

    如果希望通过配置来禁用该功能、请尝试在 k3-am62p5-sk.dts 中设置&mcu_f5fss0 status ="disabled";。

    使用默认 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

    在 DTS 中禁用了 MCU_r5fss0、但没有引导 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:~#

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、Tony。
    您的解决方案有效!
    我发现此问题是由安装软件包"ti-rtos-firmware"引起的