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

Add extension requirements/implications #118

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 8 additions & 1 deletion profiles.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -720,7 +720,7 @@ correctness, not for performance.
The following mandatory feature was further restricted in RVA22U64:

- *Za64rs* Reservation sets are contiguous, naturally aligned, and a
maximum of 64 bytes.
maximum of 64 bytes. This extension implies the Za128rs extension.

NOTE: This is a new extension name capturing this feature. The
maximum reservation size has been reduced to match the required cache
Expand Down Expand Up @@ -946,6 +946,7 @@ When the hypervisor extension is implemented, the following are also mandatory:
- *Ssstateen* Supervisor-mode view of the state-enable extension. The
supervisor-mode (`sstateen0-3`) and hypervisor-mode (`hstateen0-3`)
state-enable registers must be provided.
This extension is implied by the Smstateen extension.

NOTE: The Smstateen extension specification is an M-mode extension as
it includes M-mode features, but the supervisor-mode visible
Expand All @@ -959,31 +960,37 @@ absence of the hypervisor extension.
- *Shcounterenw* For any `hpmcounter` that is not read-only zero, the corresponding bit in `hcounteren` must be writable.

NOTE: This is a new extension name for this feature.
This extension requires the H extension.

- *Shvstvala* `vstval` must be written in all cases described above for `stval`.

NOTE: This is a new extension name for this feature.
This extension requires the H extension.

- *Shtvala* `htval` must be written with the faulting guest physical
address in all circumstances permitted by the ISA.

NOTE: This is a new extension name for this feature.
This extension requires the H extension.

- *Shvstvecd* `vstvec.MODE` must be capable of holding the value 0 (Direct).
When `vstvec.MODE`=Direct, `vstvec.BASE` must be capable of holding
any valid four-byte-aligned address.

NOTE: This is a new extension name for this feature.
This extension requires the H extension.

- *Shvsatpa* All translation modes supported in `satp` must be supported in `vsatp`.

NOTE: This is a new extension name for this feature.
This extension requires the H extension.

- *Shgatpa* For each supported virtual memory scheme SvNN supported in
`satp`, the corresponding hgatp SvNNx4 mode must be supported. The
`hgatp` mode Bare must also be supported.

NOTE: This is a new extension name for this feature.
This extension requires the H extension.

==== RVA22S64 Recommendations

Expand Down
9 changes: 8 additions & 1 deletion rva23-profile.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ The following mandatory extensions were present in RVA22U64.
- *Zicclsm* Misaligned loads and stores to main memory regions with both the
cacheability and coherence PMAs must be supported.
- *Za64rs* Reservation sets are contiguous, naturally aligned, and a
maximum of 64 bytes.
maximum of 64 bytes. This extension implies the Za128rs extension.
- *Zihintpause* Pause instruction.
- *Zba* Address computation.
- *Zbb* Basic bit manipulation.
Expand Down Expand Up @@ -292,23 +292,30 @@ When the hypervisor extension is implemented, the following are also mandatory:
- *Ssstateen* Supervisor-mode view of the state-enable extension. The
supervisor-mode (`sstateen0-3`) and hypervisor-mode (`hstateen0-3`)
state-enable registers must be provided.
This extension is implied by the Smstateen extension.

- *Shcounterenw* For any `hpmcounter` that is not read-only zero, the corresponding bit in `hcounteren` must be writable.
This extension requires the H extension.

- *Shvstvala* `vstval` must be written in all cases described above for `stval`.
This extension requires the H extension.

- *Shtvala* `htval` must be written with the faulting guest physical
address in all circumstances permitted by the ISA.
This extension requires the H extension.

- *Shvstvecd* `vstvec.MODE` must be capable of holding the value 0 (Direct).
When `vstvec.MODE`=Direct, `vstvec.BASE` must be capable of holding
any valid four-byte-aligned address.
This extension requires the H extension.

- *Shvsatpa* All translation modes supported in `satp` must be supported in `vsatp`.
This extension requires the H extension.

- *Shgatpa* For each supported virtual memory scheme SvNN supported in
`satp`, the corresponding hgatp SvNNx4 mode must be supported. The
`hgatp` mode Bare must also be supported.
This extension requires the H extension.

==== RVA23S64 Recommendations

Expand Down
9 changes: 8 additions & 1 deletion rvb23-profile.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ The following mandatory extensions are also present in RVA22U64.
- *Zicclsm* Misaligned loads and stores to main memory regions with both the
cacheability and coherence PMAs must be supported.
- *Za64rs* Reservation sets are contiguous, naturally aligned, and a
maximum of 64 bytes.
maximum of 64 bytes. This extension implies the Za128rs extension.
- *Zihintpause* Pause instruction.
- *Zba* Address computation.
- *Zbb* Basic bit manipulation.
Expand Down Expand Up @@ -282,23 +282,30 @@ When the hypervisor extension is implemented, the following are also mandatory:
- *Ssstateen* Supervisor-mode view of the state-enable extension. The
supervisor-mode (`sstateen0-3`) and hypervisor-mode (`hstateen0-3`)
state-enable registers must be provided.
This extension is implied by the Smstateen extension.

- *Shcounterenw* For any `hpmcounter` that is not read-only zero, the corresponding bit in `hcounteren` must be writable.
This extension requires the H extension.

- *Shvstvala* `vstval` must be written in all cases described above for `stval`.
This extension requires the H extension.

- *Shtvala* `htval` must be written with the faulting guest physical
address in all circumstances permitted by the ISA.
This extension requires the H extension.

- *Shvstvecd* `vstvec.MODE` must be capable of holding the value 0 (Direct).
When `vstvec.MODE`=Direct, `vstvec.BASE` must be capable of holding
any valid four-byte-aligned address.
This extension requires the H extension.

- *Shvsatpa* All translation modes supported in `satp` must be supported in `vsatp`.
This extension requires the H extension.

- *Shgatpa* For each supported virtual memory scheme SvNN supported in
`satp`, the corresponding hgatp SvNNx4 mode must be supported. The
`hgatp` mode Bare must also be supported.
This extension requires the H extension.

==== RVB23S64 Recommendations

Expand Down