DPAA RMan as a Kernel-space driver

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

DPAA RMan as a Kernel-space driver

416 Views
shihua_huang
Contributor I

Hey, 

 I am working with Freescale t4241 processor and need to implement a RMan kernel-space driver to realize doorbell/portwrite/mailbox transactions as the USDPAA RMan does.

I found this documentation https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/p-series%40tkb/75/2/Dedicated%20Channel%...

Questions regarding it:

  1. Is it a must to implement like dpaa_eth.c? I.e., init and allocate bman_buffer and FQs for each CPU? Or is it just a design choice?
  2. If it is just a design choice, would the implementation like USDPAA applications FRA be possible? I.e., init and allocate bman_buffer and FQs not for any particular CPU.

Questions regarding sending doorbells, the implementation follows USDPAA RMan design. Receiving doorbell works properly, but failed to send doorbells. Below are the kernel messages:

[   27.373723] RMan: get a bman buffer bpid(5) phy-addr(1654ba000),vitraddr(00000000d056b301)

[   27.376683] dbell sent: 0x6666 to 0

[   27.380180] sends to device(0) a msg using 10 dest(0x0) other_attr(0x0) fq(0x3500)

[   27.380183] opt->tx_fqid 0x3500

[   27.380187] send: fqid 0x3500 <-- 0x1654ba000 (0)

[   27.380204] pt-rman ffe1e0000.rman: Gets rman outbound transaction error: 0x1

 

The RMan driver got an error interrupt.

The interrupt status read from the MMEDR registers is 0x1, i.e., OTE (Outbound transaction error).

The DPAARM describes OTE:

  • “A read access to memory has caused a violation. MMECFDR0–3 contain the frame descriptor that caused the memory transaction error. Write 1 to clear.”

 

My questions are regarding this error are:

  1. Does it mean that the memory space (buffer) that the FQ is stored that cannot be accessed?
  2. Is it because the buffer allocation for the FQ is not valid?
  3. Or is it resulted from lacking any initialization or settings on the SRIO port?
  4. Any way to diagnose this error? And get more debug information regarding this error?

 

Thanks in advance,

Shihua

0 Kudos
0 Replies