I am working on Goldbox S32G-VNP-RDB3
I am using Linux BSP 40 downloaded from the software center
and using the following version of IPCF, RTD and FreeRTOS
NXP RTD 4.0.2_P04 D2312
NXP RTOS 0.4.0 D2309
FreeRTOS 4.0.2 D2306
NXP Linux BSP40 D2403
And used the following commands
# 1. Disable data cache
=> dcache off
# 2. Clear IPCF shared memory
=> mw.q 0x34100000 0x0 0x40000
# 3. Load M7 binary from SD card into temporary DDR
=> fatload mmc 0:1 0x80000000 IPCF_FreeRTOS_S32G399A_M7_0.bin
# 4. Copy firmware to M7 SRAM
=> cp.b 0x80000000 0x34300000 0x300000
# 5. Start M7 core at vector address
=> startm7 0x34500400
# 6. Boot Linux normally (if not already)
=> boot
# 1. Mount boot partition (optional, verify M7 binary)
mkdir -p /mnt/s32g_boot
mount /dev/mmcblk0p1 /mnt/s32g_boot
ls /mnt/s32g_boot
# Should see: IPCF_FreeRTOS_S32G399A_M7_0_1_2.bin
# 2. Load IPCF Linux kernel modules
insmod /lib/modules/$(uname -r)/extra/ipc-shm-dev.ko
insmod /lib/modules/$(uname -r)/extra/ipc-shm-sample.ko
# 3. Verify modules
lsmod | grep ipc
# 4. Clear previous ping (optional)
echo 0 > /sys/kernel/ipc-shm-sample/ping
# 5. Test IPCF communication (channel 0)
echo 10 > /sys/kernel/ipc-shm-sample/ping
# 6. Monitor kernel messages
dmesg | tail -20 | grep -i ipc
But getting an error of
root@s32g399ardb3:~# dmesg | tail -20 | grep -i ipc
[ 81.689010] ipc-shm-sample: starting demo...
[ 81.689029] ipc-shm-sample: ch 0 >> 19 bytes: SENDING MESSAGES: 0
[ 91.808767] ipc-shm-sample: starting demo...
[ 91.808771] ipc-shm-sample: ch 0 >> 20 bytes: SENDING MESSAGES: 10
[ 91.808778] ipc-shm-sample: send_data_msg(): failed to get buffer for channe2
Please guide which versions of different software and Linux BSP I should use for my board
Hello@chenyin_h
Thank you for your continuous support. I tried with the M-core side build for version 4.9.0, along with the Linux BSP 40 downloaded from the NXP software download, and it worked as expected.
Hello, @Kulkarni_v
Thanks for your reply.
From the information you share, you are using 4.10 on M core side, but using default images in BSP40 on A core side.
By default, the IPCF images in BSP40 is not the 4.10 version, so the code on both side does not match.
As a result, the following method may solve your issue:
1. Manually build IPCF 4.10 images on BSP40, and use it to communicate with M core side you had built.
2. Another way is to build IPCF4.9 on your M core side, and then use the default images in BSP40 to communicate.
You may choose either of the methods provided according to your own requirements.
BR
Chenyin
Yes I am using IPCF version 4.10.10
Hello, @Kulkarni_v
Thanks for your reply,
I feel sorry that still I do not see the IPCF version you used on M core side, the IPCF version may like the following:
Thanks
BR
Chenyin
At M-core side I have used above versions and I am using BSP40 downloaded from software support(https://nxp.flexnetoperations.com/control/frse/download?agree=Accept&element=3993158). I have not built it separately.
Hello, @Kulkarni_v
Thanks for your post.
1. Which version IPCF you are using for building the M core binaries?
2. Have you build the IPCF A core side manually or directly using the IPCF modules existed in BSP 40 rootfs?
BR
Chenyin