On 3/5/21 6:44 PM, Vivek Kumar Gautam via groups.io wrote:
Arm's SMMUv3 present in various SGI/RD platforms provides address translation support for devices such as the ones present over PCIe. SMMUv3 also supports Address Translation Service (ATS) and Page Request Interface (PRI) to work with PCIe devices. ATS allows PCIe devices to request translation from a translation agent such as SMMU, and then cache these translation in their private cache called as Address Translation Cache (ATC). Devices that support PRI can also enable the feature when ATS is enabled as ATS is a prerequisite for PRI. The I/O topology on SGI/RD platforms includes I/O devices (or PCIe devices) connected to a SMMU-v3, and an GIC ITS block that facilitates interrupt translations for message signaled interrupts. A typical view of this topology is as below - --------------- ------------ ------------ | PCIe device |---->| SMMUv3 |---->| ITS | | (RequesterID) | | (StreamID) | | (DeviceID) | --------------- ------------ ------------ This patch series adds the SMMU-v3 node in iort table, and sets up the connection between these iort nodes to forward the traffic in the right manner.
After applying these patches, the resulting updated Iort Acpi table looks like below: ==================================================================== Shell> Acpiview -s iort --------------- IORT Table --------------- Address : 0xF98DF598 Length : 236 00000000 : 49 4F 52 54 EC 00 00 00 - 00 A5 41 52 4D 4C 54 44 IORT......ARMLTD 00000010 : 41 52 4D 53 47 49 20 20 - 27 07 14 20 41 52 4D 20 ARMSGI '.. ARM 00000020 : 99 00 00 00 03 00 00 00 - 30 00 00 00 00 00 00 00 ........0....... 00000030 : 00 18 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................ 00000040 : 01 00 00 00 00 00 00 00 - 04 6C 00 02 00 00 00 00 .........l...... 00000050 : 02 00 00 00 44 00 00 00 - 00 00 00 4F 00 00 00 00 ....D......O.... 00000060 : 01 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ................ 00000070 : 00 00 00 00 04 01 00 00 - 00 00 00 00 06 01 00 00 ................ 00000080 : 05 01 00 00 00 00 00 00 - 01 00 00 00 00 00 00 00 ................ 00000090 : FF FF 00 00 00 00 00 00 - 30 00 00 00 00 00 00 00 ........0....... 000000A0 : 00 00 00 00 01 00 00 00 - 00 00 01 00 30 00 00 00 ............0... 000000B0 : 01 00 00 00 02 38 00 00 - 00 00 00 00 01 00 00 00 .....8.......... 000000C0 : 24 00 00 00 01 00 00 00 - 00 00 00 00 01 00 00 00 $............... 000000D0 : 00 00 00 00 00 00 00 00 - 00 00 00 00 FF FF 00 00 ................ 000000E0 : 00 00 00 00 48 00 00 00 - 00 00 00 00 ....H....... Table Checksum : OK IORT : Signature : IORT Length : 236 Revision : 0 Checksum : 0xA5 Oem ID : ARMLTD Oem Table ID : ARMSGI Oem Revision : 0x20140727 Creator ID : ARM Creator Revision : 0x99 Number of IORT Nodes : 3 Offset to Array of IORT Nodes : 0x30 Reserved : 0x0 * Node Offset * : 0x30 ITS Node : Type : 0 Length : 24 Revision : 0 Reserved : 0x0 Number of ID mappings : 0 Reference to ID Array : 0x0 Number of ITSs : 1 GIC ITS Identifier Array [0] : GIC ITS Identifier : 0 * Node Offset * : 0x48 SMMUV3 Node : Type : 4 Length : 108 Revision : 2 Reserved : 0x0 Number of ID mappings : 2 Reference to ID Array : 0x44 Base Address : 0x4F000000 Flags : 0x1 Reserved : 0x0 VATOS Address : 0x0 Model : 0 Event : 0x104 PRI : 0x0 GERR : 0x106 Sync : 0x105 Proximity domain : 0x0 Device ID mapping index : 1 ID Mapping [0] : Input base : 0x0 Number of IDs : 0xFFFF Output base : 0x0 Output reference : 0x30 Flags : 0x0 ID Mapping [1] : Input base : 0x0 Number of IDs : 0x1 Output base : 0x10000 Output reference : 0x30 Flags : 0x1 * Node Offset * : 0xB4 Root Complex Node : Type : 2 Length : 56 Revision : 0 Reserved : 0x0 Number of ID mappings : 1 Reference to ID Array : 0x24 Memory access properties : 0x1 ATS Attribute : 0x1 PCI Segment number : 0x0 Memory access size limit : 0x0 Reserved : 0 0 0 ID Mapping [0] : Input base : 0x0 Number of IDs : 0xFFFF Output base : 0x0 Output reference : 0x48 Flags : 0x0 Table Statistics: 0 Error(s) 0 Warning(s) ==================================================================== Best regards Vivek [snip] IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#72495): https://edk2.groups.io/g/devel/message/72495 Mute This Topic: https://groups.io/mt/81102021/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-