cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
3,693 Views
Registered: ‎06-14-2012

Mailbox interrupts

Jump to solution

Hi,

 

I have drivers implemented for the older Mailbox (xps-mailbox-1.00.a IP core and mbox v1.00.a software libraries) to change the data between two PowerPC cores, one running Linux and second one my custom software.

 

I have updated my design to use the newer mailbox-1.00.a IP core and mbox v3.01.a libraries. After the update my Linux side driver will get stuck at wait_event_interruptible while it is waiting for an ACK message from the second PowerPC core. The data itself is correctly transferred to the second PowerPC core, but it seems that the mailbox-1.00.a Interrupt_1 is never risen after the second PowerPC core writes ACK message to the mailbox.

 

I noticed that the new mbox v3.01.a libraries include new functions such as "XMbox_SetInterruptEnable" those were not in the mbox v1.00.a libraries. So should I enable the Mailbox interrupts somehow in software before they are generated in hardware? Or are there some major changes in hardware between xps-mailbox-1.00.a and mailbox-1.00.a IP cores that can cause this? Or does anyone have any other ideas what is causing this?

 

I have checked that the device-tree is generated right and Mailbox is recognized by Linux. I have also checked that the mailbox-1.00.a Interrupt_1 is connected to the interrupt controller on the Linux side.

Tags (2)
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Observer
Observer
4,695 Views
Registered: ‎06-14-2012

Solved this already by looking at the LogiCORE IP Mailbox (v1.00a) Product specification (http://www.xilinx.com/support/documentation/ip_documentation/mailbox.pdf) and the  mbox v3.00.a libraries API (http://www.cs.indiana.edu/hmg/le/project-home/xilinx/ise_13.2/ISE_DS/EDK/sw/XilinxProcessorIPLib/drivers/mbox_v3_00_a/doc/html/api/index.html).

 

Seems that the mailbox-1.00.a IP core was changed compared to the old xps-mailbox-1.00.a IP core in that way that you have to enable and clear the interrupts manually via software. After I modified the old xps-mailbox-1.00.a Linux driver to support these new features inter-processor communication started to work again between PowerPC cores.

View solution in original post

0 Kudos
1 Reply
Highlighted
Observer
Observer
4,696 Views
Registered: ‎06-14-2012

Solved this already by looking at the LogiCORE IP Mailbox (v1.00a) Product specification (http://www.xilinx.com/support/documentation/ip_documentation/mailbox.pdf) and the  mbox v3.00.a libraries API (http://www.cs.indiana.edu/hmg/le/project-home/xilinx/ise_13.2/ISE_DS/EDK/sw/XilinxProcessorIPLib/drivers/mbox_v3_00_a/doc/html/api/index.html).

 

Seems that the mailbox-1.00.a IP core was changed compared to the old xps-mailbox-1.00.a IP core in that way that you have to enable and clear the interrupts manually via software. After I modified the old xps-mailbox-1.00.a Linux driver to support these new features inter-processor communication started to work again between PowerPC cores.

View solution in original post

0 Kudos