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

XTheadMae: Rename and cleanup memory attribute extension #48

Merged
merged 1 commit into from
Apr 7, 2024
Merged
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
2 changes: 1 addition & 1 deletion xthead.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@ include::xtheadint.adoc[]
include::xtheadvdot.adoc[]
include::xtheadvector.adoc[]

include::xtheadmaee.adoc[]
include::xtheadmae.adoc[]
47 changes: 47 additions & 0 deletions xtheadmae.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
[#xtheadmae]
== Memory Attribute Extension (XTheadMae)

[NOTE,caption=Frozen]
The `XTheadMae` extension is `stable`.

Extension version: 1.0.

The `XTheadMae` ISA extension provides a way to configure memory page attributes.
These attributes are set in the page tabale entries (PTEs).

The `XTheadMae` extension is a non-standard non-conforming extension.
`XTheadMae` uses preserved [60:63] bits of the PTE, which have later been
allocted to the `Svpbmt` and `Svnapot` standard extensions.
This conflict is not on purpose, but the result of issues in the past that have been resolved since.
Therefore, the `XTheadMae` extension and the `Svpbmt` or `Svnapot` are in conflict.
In other words, tools should not allow to enable the `XTheadMae` extension and
the `Svpbmt` or `Svnapot` extensions at the same time and should report an error
if both are enabled by the user.

The table below describes the page attributes corresponding to each memory type:

[cols="^12,3,3,3",stripes=even,options="header"]
|===
| Memory type | SO | C | B
| Cacheable memory | 0 | 1 | 1
| Non-cacheable memory | 0 | 0 | 1
| Bufferable device | 1 | 0 | 1
| Non-bufferable device | 1 | 0 | 0
|===

The table below describes extend page attributes in PTE:
[cols="^3,^3,12",stripes=even,options="header"]
|===
| Fields | Bit | Meaning
| SO | 63 | Strong order
| C | 62 | Cacheable
| B | 61 | Bufferable
| T | 60 | Trustable
|===

=== Availability

The `XTheadMae` extension's availability can be probed via the
`th.sxstatus`.MAEE bit (bit 21).
The `XTheadMae` extension is available if and only if this bit is `1`.
Refer to <<#xtheadsxstatus>> for more information about the `th.sxstatus` CSR.
39 changes: 0 additions & 39 deletions xtheadmaee.adoc

This file was deleted.

Loading