AnsweredAssumed Answered

How to use the rmu application (from usdpaa-apps) on the P4080?

Question asked by Andre Loddenkemper on May 18, 2017
Latest reply on Aug 21, 2017 by yang lei

Hello everybody,

 

I have a P4080 running with a BSP created from the SDK version 1.8. So far it runs fine, I can use the rapidIO kernel driver to enumerate my system and I can use the SRA application (from usdpaa-apps) to use NWRITE and NREAD from user space.

 

Now I wanted to use the rmu application (from usdpaa-apps), which is supposed to handle type11 packets and doorbells. For that I compiled the kernel module fsl_rmu_uio.ko and I compiled the rmu application. I can load the module (insmod fsl_rmu_uio.ko) and I can start the application (./rmu). However, when the application tries to initialize the RMU message units or the doorbell unit, it crashes with a segmentation fault:
*******************************************************
[21453.596549] rmu[1664]: unhandled signal 11 at ffffffff nip 10003e08 lr 10003df8 code 30001
*******************************************************

 

This segmentation fault occurs after the application tries to get shared memory from the kernel module, using the mmap call in function fsl_rmu_unit_uio_init() in file rmu_driver.c. This mmap call returns with MAP_FAILED (-1), which weirdly is not caught by the application, because it only checks the return value for 0, but not for -1 (MAP_FAILED). Thus it tries to access the address 0xffffffff afterwards and crashes with segmentation fault.

 

I looked into the responsible kernel module (fsl_rmu_uio.c) and there I can see that it does not have any function to handle the mmap call. So it is not surprising to me that it returns with MAP_FAILED, I think. I am just wondering how that can be. How is the application supposed to run? It seems like it could never work as it is. What am I misunderstanding? What am I missing?

 

So ...

1.) Is there anyone with experience regarding usdpaa, usdpaa-apps and specifically the rmu application, who can help me with my issue?

2.) Or are there other ways of using type11 messages on P4080?

3.) Other ways of receiving doorbells on P4080?

 


p.s. All the source code is available here (http://git.freescale.com/git/cgit.cgi/ppc/sdk/usdpaa.git/) and here (http://git.freescale.com/git/cgit.cgi/ppc/sdk/usdpaa/usdpaa-apps.git/).

Outcomes