Skip to content

Commit

Permalink
clarify Bare translations, if created, dont need explicit invalidations
Browse files Browse the repository at this point in the history
  • Loading branch information
ved-rivos committed Aug 15, 2023
1 parent da08ea8 commit c309044
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
6 changes: 6 additions & 0 deletions iommu_in_memory_queues.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,12 @@ match the `GSCID` argument, regardless of the address argument.
Simpler implementations may ignore the operand of `IOTINVAL.VMA` and/or
`IOTINVAL.GVMA` and always perform a global invalidation of all
address-translation entries.
Some implementations may choose to cache an identity-mapped translation when
both the first-stage and second-stage page tables are in `Bare` mode. The
`IOTINVAL` commands do not apply to such translations, as they represent
identity mappings and are therefore always correct. As a result, there is no
need for explicit invalidation.
====

[NOTE]
Expand Down
4 changes: 2 additions & 2 deletions iommu_sw_guidelines.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -149,9 +149,9 @@ device with `device_id = D`) then the following invalidations must be performed:
** `IOTINVAL.VMA` with `GV=1`, `AV=PSCV=0`, and `GSCID=DC.iohgatp.GSCID`
** `IOTINVAL.GVMA` with `GV=1`, `AV=0`, and `GSCID=DC.iohgatp.GSCID`
* else
** If `DC.tc.PDTV==1 || DC.tc.PDTV == 0 && DC.fsc.MODE == Bare`
** If `DC.tc.PDTV==1`
*** `IOTINVAL.VMA` with `GV=AV=PSCV=0`
** else
** else if `DC.fsc.MODE != Bare`
*** `IOTINVAL.VMA` with `GV=AV=0` and `PSCV=1`, and `PSCID=DC.ta.PSCID`

If software changes a non-leaf-level DDT entry the following invalidations
Expand Down

0 comments on commit c309044

Please sign in to comment.