riscv-non-isa/riscv-iommu

How is the requester ID assigned in an invalid request TLP packet?

Closed this issue · 4 comments

 In the invalid TLP packet, the device ID and requester ID are sent to the RC by the IOMMU. The device ID can be determined by the RID, so how should the requester ID be assigned?

invld_req
invld_req1

It's the host's requester ID.

Thank you very much for your reply.

How to understand the host's request ID?

It is usually the requester ID of the PCIe root port to which the the device is connected either directly or though switches. The configuration of the PCIe root complex is typically done by system firmware and OS that executes on the host as part of boot. This includes assigning the bus number for the PCIe root ports and the bus numbers for the secondary and subordinate buses. See example of PCI-PCI bridge configuration here and here.