It's mentioned in the Technical Reference Manual of iMx6 that in order to allow MSI reception the controller of MSI in host must be enabled. The screenshot of the corresponding section from reference manual is also attached.
But where should I enable MSI controller? Where is CX_MSI_CTRL_ENABLE bit (in which register)?
Thanks,
Iqra Javed
Hi Iqra
MSI features are used by linux PCIe driver and one can look
at Chapter 40 PCI Express Root Complex Driver attached Linux Manual for
description. Linux BSPs are described on:
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi igor,
Thank you for replying. I have checked the document you provided. I am actually writing the driver without OS. The configurations that I used for MSI are mentioned in the thread https://community.nxp.com/message/1002121?commentID=1002121#comment-1002121 as well.
My PCI driver is working fine, legacy interrupt is also working but i am facing issue in case of MSI interrupt. As far as i get it there might be issue with the inbound reception of the MSI interrupt in RC.
Further, the regions that i have assigned in my RC are,
0x01000000 - 0x01E00000 (Memory Region)
0x01E00000 - 0x01F00000 (IO Region)
0x01F00000 - 0x01F20000 (CFG0 and CFG1 Regions)
The address 0x01FF8000 is allocated for the MSI Address (written in MSI Controller Address of RC as well as in MSI Address register of capabilities in EP). For MSI MemWr TLP reception i have made an inbound region with the same values as mentioned in https://community.nxp.com/thread/318307?commentID=1002121#comment earlier.
But i am not able to get MSI interrupt.
Can you please guide me what must be the reason for this behaviour?
Regards,
Iqra Javed