Hi Aldo and thank you for your reply, I will check the links you suggested for doing configuration changes.
At the same time I was trying the freertos pingpong example provided in the FreeRTOS_BSP_1.0.1_iMX6SX/examples/imx6sx_sdb_m4/demo_apps/rpmsg/pingpong_freertos. After compiling and copying the rpmsg_pingpong_freertos_example.bin to the SD Card I Switch on the board and stop normal booting. After that I run the rpmsg_pingpong_freertos_example.bin and in the M4 core serial interface i see this output
RPMSG PingPong FreeRTOS API Demo...
RPMSG Init as Remote
After that I boot the A9, log in and give the command:
insmod /lib/modules/4.9.88-imx_4.9.88_2.0.0_ga+g5e23f9d/kernel/drivers/rpmsg/imx_rpmsg_pingpong.ko
On the A9 side I see this:

and on the M4 side this:

Seeing the contents of the PingPongTask in the pingpong_freertos.c file
static void PingPongTask (void* param)
{
int result;
struct remote_device *rdev = NULL;
struct rpmsg_channel *app_chnl = NULL;
THE_MESSAGE msg = {0};
int len;
/* Print the initial banner */
PRINTF("\r\nRPMSG PingPong FreeRTOS RTOS API Demo...\r\n");
PRINTF("RPMSG Init as Remote\r\n");
result = rpmsg_rtos_init(0 /*REMOTE_CPU_ID*/, &rdev, RPMSG_MASTER, &app_chnl);
assert(0 == result);
PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst);
while (true)
{
/* receive/send data to channel default ept */
result = rpmsg_rtos_recv(app_chnl->rp_ept, &msg, &len, sizeof(THE_MESSAGE), NULL, 0xFFFFFFFF);
assert(0 == result);
PRINTF("Get Data From Master Side : %d\r\n", msg.DATA);
msg.DATA++;
result = rpmsg_rtos_send(app_chnl->rp_ept, &msg, sizeof(THE_MESSAGE), app_chnl->dst);
assert(0 == result);
}
/* If destruction required */
/*
PRINTF("\r\nMessage pingpong finished\r\n");
rpmsg_rtos_deinit(rdev);
*/
}
On the M4 side I expected to see the string "Name service handshake is done, M4 has setup a rpmsg channel [src ---> dst]" and then some strings "Get Data From Master Side: data", like this:
M4 has setup a rpmsg channel [0 ---> 1]
Get Data From Master Side: 1
Get Data From Master Side: 3
Get Data From Master Side: 5
Get Data From Master Side: 7
...
but I only see a succession of incomprehensible characters.
Despite this, on the A9 side it would still seem that the data is correctly increased.
If then I modify the clock rate of the M4 uart from 24MHz to 80MHz in the dbg_uart_init function in board.c file,
// DbgConsole_Init(BOARD_DEBUG_UART_BASEADDR, 24000000, 115200);
DbgConsole_Init(BOARD_DEBUG_UART_BASEADDR, 80000000, 115200);
I can see the correct string coming with the data from A9, but the first ones, just at the startup of the M4, are unreadable

How to fix this?