-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Medium
-
SITSW-7005
-
-
11.02.00
-
Our MCU+ projects that do IPC_RPMsg with Linux are no longer compatible with the Linux kernel example rpmsg_client_sample.c:
https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/samples/rpmsg/rpmsg_client_sample.c?h=ti-linux-6.12.y
These MCU+ examples use “ti.ipc4.ping-pong” for Linux kernel communication:
ipc_rpmsg_echo_linux, lpm_mcu_dmtimer_wakeup, lpm_mcu_mcan_wakeup, lpm_mcu_uart_wakeup
The generic upstream driver uses channel name "rpmsg-client-sample". For years we manually patched rpmsg_client_sample.c to add “ti.ipc4.ping-pong”, but the Linux team stopped applying that manual patch for Linux kernels 6.6 & 6.12:
https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/samples/rpmsg/rpmsg_client_sample.c?h=ti-linux-6.1.y&id=68874d652f2e82da56cb05ec1e998d2f5d600a69
The code needs to change from this:
AM62x, AM62Ax, AM62Px: https://github.com/TexasInstruments/mcupsdk-core-k3/blob/k3_main/examples/drivers/ipc/ipc_rpmsg_echo_linux/ipc_rpmsg_echo.c#L72
AM64x: https://github.com/TexasInstruments/mcupsdk-core/blob/next/examples/drivers/ipc/ipc_rpmsg_echo_linux/ipc_rpmsg_echo.c#L69
to this:
#define IPC_RPMESSAGE_SERVICE_PING "rpmsg-client-sample"
#define IPC_RPMESSAGE_ENDPT_PING (13U)
FYI, the Linux team is considering also removing the rpmsg_chrdev name service in favor of rpmsg-raw: https://jira.itg.ti.com/browse/PDK-16805