11== RISC-V IO Mapping Table (RIMT)
22
33The <<rimt>> shows the structure of RIMT. Apart from the basic header, RIMT can contain several
4- nodes. Each node represents a component which can be an IOMMU, a PCIe root complex or a platform
4+ nodes. Each node represents a component, which can be an IOMMU, a PCIe root complex, or a platform
55device.
66
77.RISC-V IO Mapping Table
@@ -58,7 +58,7 @@ types for those structures.
5858|===
5959
6060==== IOMMU Node
61- The IOMMU may be implemented as a platform device or as a PCIe device. The IOMMU node is
61+ The IOMMU can be implemented as a platform device or as a PCIe device. The IOMMU node is
6262the structure in RIMT used to report the configuration and capabilities of each IOMMU in the system.
6363
6464.IOMMU Node
@@ -70,15 +70,15 @@ the structure in RIMT used to report the configuration and capabilities of each
7070| Revision | 1 | 1 | 1
7171| Length | 2 | 2 | The length of this structure.
7272| Reserved | 2 | 4 | Must be zero.
73- | ID | 2 | 6 | Unique ID of this node in the RIMT which can
73+ | ID | 2 | 6 | Unique ID of this node in the RIMT that can
7474 be used to locate it in the RIMT node array.
7575 It can be simply the array index in the RIMT
7676 node array.
7777| Hardware ID | 8 | 8 | ACPI ID of the IOMMU when it is a platform device
7878 or PCIe ID (Vendor ID + Device ID) for
7979 the PCIe IOMMU device.
8080| Base Address | 8 | 16 | Base address of the IOMMU registers.
81- This field is valid only for an IOMMU
81+ This field is valid for only an IOMMU
8282 that is a platform device. If IOMMU
8383 is a PCIe device, the base address of
8484 the IOMMU registers may be discovered
107107 domain.
108108| PCIe Segment number | 2 | 32 | If the IOMMU is implemented as a PCIe
109109 device (Bit 0 of Flags is 1), then
110- this field holds the PCIe segment on
111- which this IOMMU is located.
110+ this field holds the PCIe segment
111+ where this IOMMU is located.
112112| PCIe B/D/F | 2 | 34 | If the IOMMU is implemented as a PCIe
113113 device (Bit 0 of Flags is 1), then
114114 this field provides the
115115 Bus/Device/Function of the IOMMU.
116116| Number of interrupt wires | 2 | 36 | An IOMMU may signal IOMMU initiated
117- interrupts using wires or as message
117+ interrupts by using wires or as message
118118 signaled interrupts (MSI). When the
119119 IOMMU supports signaling interrupts
120- using wires, this field provides the
120+ by using wires, this field provides the
121121 number of interrupt wires. This field
122122 must be 0 if the IOMMU does not
123123 support wire-based interrupt
159159|===
160160
161161==== PCIe Root Complex Node
162- The PCIe root complex node is the logical PCIe root complex which can be used to
163- represent an entire physical root complex, an RCiEP/set of RCiEPs, a standalone PCIe device or the
164- hierarchy below a PCIe host bridge.
162+ The PCIe root complex node is the logical PCIe root complex that can be used to
163+ represent an entire physical root complex, an RCiEP/set of RCiEPs, a standalone PCIe device, or the
164+ hierarchy following a PCIe host bridge.
165165
166166.PCIe Root Complex Node
167167[[rc_node_structure]]
@@ -172,7 +172,7 @@ hierarchy below a PCIe host bridge.
172172|Revision | 1 | 1 | 1
173173|Length | 2 | 2 | The length of this structure.
174174|Reserved | 2 | 4 | Must be zero.
175- | ID | 2 | 6 | Unique ID of this node in the RIMT which can
175+ | ID | 2 | 6 | Unique ID of this node in the RIMT that can
176176 be used to locate it in the RIMT node array.
177177 It can be simply the array index in the RIMT
178178 node array.
203203 See <<id_mapping_structure>>.
204204|===
205205
206- The ID mapping structure provides information on how devices are connected to an IOMMU. The devices may be
207- natively identified by a source ID but the platform may use a remapped ID to identify transactions from the
206+ The ID mapping structure provides information about how devices are connected to an IOMMU. The devices can be
207+ natively identified by a source ID, but the platform can use a remapped ID to identify transactions from the
208208device to the IOMMU.
209209
210210For PCIe devices, source ID is the 16-bit triplet of PCIe bus number (8-bit), device number (5-bit), and
211211function number (3-bit) (collectively known as routing identifier or RID). A range of source IDs must map to a
212212single IOMMU only. If there are multiple root complexes with the same PCIe segment number, then their source
213- ID ranges must not overlap. For each ACPI device object of the root complex which belongs to the same PCIe
213+ ID ranges must not overlap. For each ACPI device object of the root complex that belongs to the same PCIe
214214segment, the firmware must include the Device Specific Method (_DSM), Function Index 5, for preserving boot
215215configurations as defined by the PCI Firmware Specification cite:[PCI-FW-SPEC]. The _DSM method must return
216216zero to indicate that the Operating System must preserve PCIe resource assignments made by the firmware at
217217boot time.
218218
219- For platform devices, it is the implementation specific ID and managed by the device driver. Each ID mapping
219+ For platform devices, source ID is the implementation specific ID and managed by the device driver. Each ID mapping
220220array entry provides a mapping from a range of source IDs to the corresponding device IDs that will be used at
221221the input to the IOMMU. See <<Mapping-Examples>> for an example of ID mapping structures.
222222
@@ -238,8 +238,8 @@ the input to the IOMMU. See <<Mapping-Examples>> for an example of ID mapping st
238238 as mapped by this entry. This is the
239239 *device_id* as defined by the RISC-V IOMMU
240240 specification cite:[IOMMU-SPEC]
241- | Destination IOMMU Offset | 4 | 12 | The destination IOMMU with which the
242- these IDs are associated . This field
241+ | Destination IOMMU Offset | 4 | 12 | The destination IOMMU that is associated
242+ with these IDs. This field
243243 is the offset of the RISC-V IOMMU
244244 node from the start of the RIMT
245245 table.
258258|===
259259
260260==== Platform Device Node
261- There may be non-PCIe platform devices which are enumerated using Differentiated System Description
262- Table(DSDT). These devices may have one or more source IDs in the mapping table, but they can have
263- their own scheme to define the source IDs. Hence, those source IDs can only be unique to the ACPI
261+ There may be non-PCIe platform devices that are enumerated by using Differentiated System Description
262+ Table(DSDT). These devices can have one or more source IDs in the mapping table, but they can have
263+ their own scheme to define the source IDs. Hence, those source IDs can be unique to only the ACPI
264264platform device. The interpretation of those source IDs is expected to be managed by the platform
265265device's device driver.
266266
@@ -273,7 +273,7 @@ device's device driver.
273273| Revision | 1 | 1 | 1
274274| Length | 2 | 2 | The length of this structure.
275275| Reserved | 2 | 4 | Must be zero.
276- | ID | 2 | 6 | Unique ID of this node in the RIMT which can
276+ | ID | 2 | 6 | Unique ID of this node in the RIMT that can
277277 be used to locate it in the RIMT node array.
278278 It can be simply the array index in the RIMT
279279 node array.
0 commit comments