AnsweredAssumed Answered

P2041 RMU Problem, urgent!

Question asked by yang lei on Aug 21, 2017

In order to send and receive doorbells, I am tring to run RMU applicaion on my customized p2041 board.

I created a doorbell receiver thread using this command:

rmu -op dbell ar 1


But  I receive doorbells like this continuously:

--doorbell2: sid 00 tid 00 info 0000


I checked the  rmu_driver.c in usdpaa source code and found I received the doorbell beause the (idsr & DBELL_IDSR_DIQI) is always return true, which means, I was continuously receiving the Doorbell-In-Queue interrupt.


Then I checked the fsl_rmu_uio.c in driver/uio, and found that the doorbell related irq has never been registered. The doorbell related irqs are registered only in the fsl_rio.c file, which is located in /arch/powerpc/sysdev. In order to build the fsl_rio.c into kernel, I have to configure the menuconfig tree like this:


QoriQ-SDK1.8-IC-RevA.pdf   ---   Chapter 7: linux kernel drivers   ---   Serial Rapid I/O interface

Bus options --->
   [*] RapidIO support
   [*] Freescale Embedded SRIO Controller support
   (30) Discovery timeout duration (seconds)


But if I want to built the fsl_rmu_uio.c into kernel, I have to configure the menuconfig tree like this:


QoriQ-SDK1.8-IC-RevA.pdf   ---   Chapter 8: linux user space   ---   USDPAA Applications --- USDPAA RMU User Manual

Device Drivers --->
   <*> Userspace I/O drivers --->
      <*> Freescale Rapidio Message Unit support


The problem is, once the “RapidIO support” is inclueded, the “Freescale Rapidio Message Unit support” configuration item is disabled and been set invisiable

Symbol: UIO_FSL_RMU [=n] │
│ Type : tristate │
│ Prompt: Freescale RapidIO Message Unit support │
│ Location: │
│ -> Device Drivers │
│ (1) -> Userspace I/O drivers (UIO [=y]) │
│ Defined at drivers/uio/Kconfig:191 │
│ Depends on: UIO [=y] && RAPIDIO [=y]=n


So, here are my questions:

1. How to send and receive doorbells on P2041 board efficiently. Is RMU the right way?


2. I have to use SRA in my application too, if I include the "RapidIO support" configuration, the 

Device Drivers --->
   <*> Userspace I/O drivers --->
   <*> Freescale Serial RapidIO support
   <*> Freescale DMA support

are disabled and be set invisiable too.

So, how can I use SRA and RMU uio at the same time with RMU irq registered ? If I want the irq registered, I have to include "RapidIO support" configuration item, then I can not use rmu uio.


3. Why I was receiving the Doorbell-In-Queue interrupt continuously. Does any of you met similar problems?

BTY,  I am using "ln -s /dev/uioXX /dev/rmu-uio-doorbell" to create rmu-uio-doorbell device for RMU application.

And I added these lines to my dts file:



4. I met a mmap failed problem not long ago.  How to use the rmu application (from usdpaa-apps) on the P4080?  

It seems that it is hard to excute the RMU application successful, what are the fsl QA and engineers doing everyday?

And the SDK document should be more rigorous and detailed. At least list the supported boards of each USDPAA  application. 


Any help, please.