Hi,
I am working on the LX2160A SoC. To my understanding, when a PCI peripheral or function triggers an MSI interrupt, it perform a PCI memory write (via a TLP), and the MSI mechanism extracts the Requester ID (RID) from the TLP header. This RID is then matched to a stream ID. All devices and functinons downstream of the PCI controller uses the same stream ID. This stream ID is then used as the device ID in the Interrupt Translation Table.
My questions are:
1. Can the stream ID be replaced with a custom ID so that there is a unique device ID for each BDF?
2. Where is the RID-to-stream ID mapping and how is this stream ID being forwarded to the ITS?
Please correct me if my understanding is incorrect. I believe Linux achieved this goal of one device ID for each BDF by using msi-map. Though I don't see where it overrides the stream ID with the custom ID and how this ID is forwarded to ITS.
Thanks,