Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarification updates to IOMMU v1.0.0 #243

Merged
merged 17 commits into from
Sep 11, 2024
Merged
Changes from 1 commit
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
e57a159
A set of typographic errors and editorial updates were made.
ved-rivos Jul 24, 2023
8b64911
Clarified that translations cached in IOMMU ATC do not require explicit
ved-rivos Aug 15, 2023
5b3a480
Clarified that memory faults encountered by commands also set the `cq…
ved-rivos Aug 28, 2023
89c53f5
Clarified that values tested by the algorithm in the SW Guidelines se…
ved-rivos Sep 8, 2023
51fb752
Included SW guidelines for modifying non-leaf PDT entries.
ved-rivos Sep 8, 2023
f8b00bf
Clarified the behavior for in-flight transactions observed at the tim…
ved-rivos Sep 19, 2023
cd6c798
Clarified the behavior when `IOTINVAL` is invoked with an invalid add…
ved-rivos Feb 24, 2024
c343c04
Stated that faults leading to UR/CA ATS responses are reported in the…
ved-rivos Apr 9, 2024
02fee6d
Added a detailed description of the `capabilities.PAS` field.
ved-rivos Apr 9, 2024
61a3527
Included software guidelines for changing IOMMU modes and provided
ved-rivos Apr 17, 2024
628db60
Stated that the PCIe specification requires granting execute permission
ved-rivos Apr 19, 2024
371eb3d
Clarified the handling of hardware implementations that internally split
ved-rivos Apr 19, 2024
1e3e13e
Noted that shadow stack encodings introduced by Zicfiss are reserved
ved-rivos Apr 21, 2024
29147aa
Listed the fault codes reported for faults detected by Page Request.
ved-rivos Apr 25, 2024
173d29e
Updated Fig 31 to remove the unused Destination ID field for ATS.PRGR
ved-rivos Jun 1, 2024
efea91a
Included a software guideline for IOMMU emulation.
ved-rivos Jun 12, 2024
0076b5f
Include QoS ID standard extension
ved-rivos Jul 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Included a software guideline for IOMMU emulation.
ved-rivos committed Sep 10, 2024
commit efea91a5a9d1fe83280ca87e751cd30fff17ffb3
1 change: 1 addition & 0 deletions src/iommu_preface.adoc
Original file line number Diff line number Diff line change
@@ -40,6 +40,7 @@ and corrections, have been made since version 1.0.0:
* Shadow stack encodings introduced by Zicfiss are reserved for IOMMU use.
* Listed the fault codes reported for faults detected by Page Request.
* Updated Fig 31 to remove the unused Destination ID field for ATS.PRGR
* Included a software guideline for IOMMU emulation.

These changes were made through PR#243 cite:[PR243].

12 changes: 12 additions & 0 deletions src/iommu_sw_guidelines.adoc
Original file line number Diff line number Diff line change
@@ -323,6 +323,18 @@ Device-context whose `V` (valid) bit is clear, non-leaf PDT entries whose `V`
PTEs whose `V` bit is clear. Software need not perform invalidations when
changing the `V` bit in these entries from 0 to 1.

==== Guidelines for emulating an IOMMU

Certain uses may involve emulating a RISC-V IOMMU. In such cases, the emulator
may require the IOMMU driver to notify the emulator for efficient operation when
updates are made to in-memory data structure entries, including when making such
entries valid. Queueing an appropriate invalidation command when making such
updates is a common way to provide notifications to the emulator. While usually
an invalidation is not required when marking an invalid entry as valid, the
emulator may indicate the need to invoke such invalidation commands for
emulation efficiency purposes through a suitable flag in the device tree or ACPI
table describing such emulated IOMMU instances.

=== Reconfiguring PMAs

Where platforms support dynamic reconfiguration of PMAs, a machine-mode driver