Hi TI,
I am trying to undersatand how MSI(-X) Interrupts are working on Register Level in order to mimic this functionality in an RTOS application. As a starting point I am using this setup https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/07_03_00_05/exports/docs/linux/Foundational_Components/Kernel/Kernel_Drivers/PCIe/PCIe_End_Point.html with two J721E EVMs. I verified that this is working by using the pcitest utility.
My main questions refers to the following entry from the TRM: (Chapter 12.2.3.4.4.5.2)
The PCIe core decodes all MSI and MSI-X messages received from the link and forwards them on the lowpriority AXI master interface. These messages must then be routed to the system interrupt controller by the SoC interconnect (CBASS0).
Q1: Is it possible to route "these messages" via Sciclient_rmIrqSet to another interrupt controller than GIC? How to do this?
Q2: Which Register has to be written to trigger a MSI Interrupt?
And one more detailed question:
When the pcie link is established using linux, the RC Register PCIE_CORE_ATU_WRAPPER_OB_i_DESC0 reads 0x0080000A. (Without a link it reads 0x00000000). What do these bits mean? The TRM only says "Lowest 32-bits of PCIe Descriptor Register for region N".
Thanks for your help.
Best regards,
Felix