cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
tscbailey
Contributor
Contributor
335 Views
Registered: ‎11-19-2018

R5 does not properly handle IPI PL0 generated interrupts

I am having problems in handling IPI interrupts in a bare metal application on the R5. I am using SDK 2018.3 for this project.

The problem is when I use IPI channel 7 (i.e. IPI channel PL-0) with the A53 to send IPI messages to the R5 (IPI channel 1). For some reason, The IPI BSP library's configuration does not list IPI channels 7-10 (PL 0-3) in the configuration target list. The target list only comprises channels 0-6 i.e. the defaults for the A53, R5-0, R5-1, and the 4 PMU channels.

Because of this omission, my code is unable to cycle through using the target list to find the mask for the interrupt nor find the addresses for the message and response buffers using the BSP IPI library functions.

In vivado, I have explicitly configured channel 7 as being used by the A53.  The target list generated for the A53 BSP IPI library has a valid target list.

Can anyone confirm that this is a bug Bare Metal IPI BSP library? Has it been fixed in a later release? Is there a workaround for this?

Thanks for any feedback.

Doug Bailey

FWIW:  The PL-0 IPI channel is the same channel used in the OpenAMP demonstration code. 

0 Kudos
1 Reply
tscbailey
Contributor
Contributor
282 Views
Registered: ‎11-19-2018

Also, the source code references to the message/response buffers is incorrect. 

UG1085 indicates that the A53 should have the first block of message/response data followed by the R5-0 and R5-1 processors (in that order.)  (Table 13-3)

The IPI source code lists the order of blocks as R5-0, R5-1, and then the A53. 

 

This is a sad piece of software. 

 

 

 

 

0 Kudos