Hi there
I have got an iMX7s on custom board with 512MB Ram. I successfully run the hello_world example and now I am trying to get the pingpong example to work. On the M4 side there are no problems. I can boot and it shows:
RPMSG PingPong FreeRTOS RTOS API Demo...
RPMSG Init as Remot
But on the Linux side there are a few problems:
If I don't enable rpmsg in the devicetree I can boot and load the pingpong module using modprobe imx_rpmsg_pingpong. Additionaly rpmsg is shown in /sys/bus and /sys/module/ . But nothing else happens.
If I set rpmsg in the devicetree to "okay" I just see this:
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Things that I've changed so far:
- obviously modifying the DT
- set rpmsg to "ok"
- set usable memory
/ {
memory {
linux,usable-memory = <0x80000000 0x1ff00000>;
}
}
- changing the vring in the Linux kernel in imx_rpmsg.c from BFFF0000 --> 9FFF0000 (and BFFF8000 --> 9FFF8000)
- changing the vring in FreeRTOS in platform_info.c the same way
- RPMsg and Pingpong are enabled in the Kernel
Please help :smileyhappy:
Erik
解決済! 解決策の投稿を見る。
i.MX Development Miscellanea(i.MX 开发杂记)
https://community.nxp.com/docs/DOC-335198
i.MX6SX_M4_MPU_Settings_For_RPMSG_04132018.pdf
Hi Erik Friedel,
Could you please tell what changes you did in device tree and in M4 side to run pingpong example. I am also struggling with the same, running pingpong example on custom board with 512 MB RAM .
Thank you for your answers.
@D. RY where do I have to put my vring then? In the RPMsg patches from igor are the same values I have.
I am now able to boot into Linux thanks to a colleague and when I run "modprobe imx_rpmsg_pingpong", the following message appears:
init pingpong
init pingpong: 0
So it doesn't start to count.
Kmod list shows:
Module Size Used by
imx_rpmsg_pingpong 2038 0
virtio_rpmsg_bus 11468 1 imx_rpmsg_pingpong
virtio 7481 1 virtio_rpmsg_bus
virtio_ring 11266 1 virtio_rpmsg_bus
changes done:
- patches provided by igor
-FreeRTOS set to 9FFF000...
Erik
Hey Erik
Sorry late replying.
I looked at Biyong 's document he added, and it looked to contain all the details. Have you seen it?
I'm on slightly different SoC and may be BSP not same, I woudn't want to lead you in error.
If both - Linux & FreeRTOS - have now updated address of the vrings, they should find each other.
I'm also not using patches Igor referred to thus wouldn't be able to help straight away.
Hi
I was able to solve this problem by changing the devicetree a bit and using a clean kernel. After changing the vrings in the kernel and in FreeRTOS it worked.
Thanks for your help.
i.MX Development Miscellanea(i.MX 开发杂记)
https://community.nxp.com/docs/DOC-335198
i.MX6SX_M4_MPU_Settings_For_RPMSG_04132018.pdf
What's your CMA size?
Hi Erik
please check Warp7 (i.MX7S@512MB LPDDR3) RPMsg patches
Multicore communication on WaRP7 using Remote Processor Messaging bus (RPMsg) - i.MXDev Blog
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
If you only have 512MB RAM and you placing rpmsg at the end of it - in the last 1MB somewhere - then your vring placing is way off, as you can see.