ITS Device ID for PCI devices on LX2160A

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

ITS Device ID for PCI devices on LX2160A

981 Views
Austinn
Contributor II

Hello,

 

I am using the Honeycomb LX2 board which uses the LX2160A chip. I have inspected the uboot and linux code and found that in uboot, each PCI BDFs (bridges and devices) are assigned a stream ID that is put into msi-map in the dtb. 

I assume that Linux uses this stream ID as the ITS device ID for each PCI BDF though when I inspected the Linux code, drivers/irqchip/irq-gic-v3-its-pci-msi.c, the ITS specific deviceID seems to be just the RID.

On the system that I am working on, the ITS device ID of the BDF is the stream ID of the PCI-PCI bridge upstream. Also, the ITS device ID of each port on a 2 port NIC card is the same. Is this the same case on Linux?

Can someone help me confirm how the ITS device ID for PCI devices is calculated on Linux and if 2 ports of a NIC card should share the same ITS device ID? If not, what could have been possibly missing on my system?

Tags (2)
0 Kudos
Reply
6 Replies

940 Views
yipingwang
NXP TechSupport
NXP TechSupport

Discussing with the AE team.

0 Kudos
Reply

910 Views
yipingwang
NXP TechSupport
NXP TechSupport

Please refer to the following update from the AE team.

Those questions are more about linux, so customer can find information how MSI assignment behind PCI-PCI bridge in Documentation/PCI/msi-howto.rst.

0 Kudos
Reply

913 Views
Austinn
Contributor II

Thanks for looking into this. Is there any relationship between the ITS device ID and the stream ID that is programmed into the LUT entries that is mapped to the BDF?

0 Kudos
Reply

901 Views
yipingwang
NXP TechSupport
NXP TechSupport

Please refer to the following update

Here is my understanding:

1. The PCIe device generates an interrupt message including its Requester ID (RID).
2. The ITS receives this message and uses the RID to look up the corresponding StreamID.
3. The ITS then translates this information into an appropriate interrupt message for the interrupt controller.

So more specifically,
RID, which is composed of BDF, is used by ITS to manage and translate interrupts
The StreamID, derived from the same BDF as the RID, is used by the SMMU to manage and translate DMA operations.

0 Kudos
Reply

766 Views
Austinn
Contributor II

I have a more HW issue that I hope you can help me with.

From debugs, it looks like it mgiht be the PCI-to-PCI Bridge Device that has been sending the Message Signaled Interrupts instead of the PCI devices causing me to see wrong ITS Device ID. Could there be any settings in the PCI config registers that may cause this to happen?

Thanks,

 

0 Kudos
Reply

762 Views
yipingwang
NXP TechSupport
NXP TechSupport

Please address your new problem in a new thread.

Thanks

0 Kudos
Reply