How is iMX6 PCIE endpoint MSI generation setup?

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

How is iMX6 PCIE endpoint MSI generation setup?

Jump to solution
1,549 Views
andreaskarlsson
Contributor III

Hi,

We have an iMX6S running a RTOS, the iMX6 is configured as a PCIE endpoint. Now we want to enable MSI but so far without success. There are some posts on the community but all references are using Linux and I have to agree to one post that the RM seems incomplete How to generate MSI interrupt on i.MX6 in PCIe EP/endpoint mode. From the Linux posts you can see how they conifgure PCIE_PL_MSIxx registers, I've done that in a similar fashion but no luck so far in getting MSI interrupts through to the RC. From the RM I've read following chapters, but I still can't figure out what's missing, and to be frank it is described very vague in the RM.

49.3.7.1.2 MSI

49.3.7.4 MSI Generation in the AXI Bridge

Can someone describe how it is supposed to be done when not running Linux?

Regards

Andreas

Labels (1)
Tags (3)
0 Kudos
1 Solution
875 Views
andreaskarlsson
Contributor III

Finally we solved it.

1. Set and iATU if needed for outbound region to match the MSI target address assigned by the RC, can be found in 0x1FFC054

2. Do an write the local MSI address used in 1. to generate a write to the RC target address , very important to include the "RC data" in 0x1FFC05C in the MemWr. We missed this last part and did a simple write =1 as in all the Linux examples.

Regards

Andreas

View solution in original post

0 Kudos
1 Reply
876 Views
andreaskarlsson
Contributor III

Finally we solved it.

1. Set and iATU if needed for outbound region to match the MSI target address assigned by the RC, can be found in 0x1FFC054

2. Do an write the local MSI address used in 1. to generate a write to the RC target address , very important to include the "RC data" in 0x1FFC05C in the MemWr. We missed this last part and did a simple write =1 as in all the Linux examples.

Regards

Andreas

0 Kudos