@@ -1845,21 +1845,21 @@ address-translation cache entries that have cached PMP settings
18451845corresponding to the final translated supervisor physical address. An
18461846HFENCE.VVMA instruction is not required.
18471847
1848- Similarly, if the setting of the PBMTE bit in `menvcfg` is changed, an
1848+ Similarly, if the setting of the PBMTE or ADUE bits in `menvcfg` are changed, an
18491849HFENCE.GVMA instruction with _rs1_=`x0` and _rs2_=`x0` suffices to synchronize
18501850with respect to the altered interpretation of G-stage and VS-stage PTEs' PBMT
1851- fields.
1851+ and A/D bit fields, respectively .
18521852
1853- By contrast, if the PBMTE bit in `henvcfg` is changed, executing an
1853+ By contrast, if the PBMTE or ADUE bits in `henvcfg` are changed, executing an
18541854HFENCE.VVMA with _rs1_=`x0` and _rs2_=`x0` suffices to synchronize with
1855- respect to the altered interpretation of VS-stage PTEs' PBMT fields for the
1856- currently active VMID.
1855+ respect to the altered interpretation of VS-stage PTEs' PBMT and A/D bit fields
1856+ for the currently active VMID.
18571857
18581858NOTE: No mechanism is provided to atomically change `vsatp` and `hgatp`
18591859together. Hence, to prevent speculative execution causing one guest's
18601860VS-stage translations to be cached under another guest's VMID, world-switch
18611861code should zero `vsatp`, then swap `hgatp`, then finally write the new
1862- `vsatp` value. Similarly, if `henvcfg`.PBMTE need be world-switched, it
1862+ `vsatp` value. Similarly, if `henvcfg`.PBMTE/ADUE need be world-switched, they
18631863should be switched after zeroing `vsatp` but before writing the new `vsatp`
18641864value, obviating the need to execute an HFENCE.VVMA instruction.
18651865
0 commit comments