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

ACPERM/GCPERM - use of the M-bit is ambiguous #260

Closed
tariqkurd-repo opened this issue May 23, 2024 · 1 comment
Closed

ACPERM/GCPERM - use of the M-bit is ambiguous #260

tariqkurd-repo opened this issue May 23, 2024 · 1 comment
Labels
bug Something isn't working documentation Improvements or additions to documentation

Comments

@tariqkurd-repo
Copy link
Collaborator

tariqkurd-repo commented May 23, 2024

The AP field tables include the M-bit
ACPERM doesn't AND that permission bit but the rules do include clearing it if X is cleared
GCPERM doesn't return that permission

But the M-bit is encoded with the other architectural permissions, for RV32 and for RV64, in tables 3 and 4.

My proposed fix is to include the M-bit into the definition of ACPERM/GCPERM so we have a consistent definition of AP.

@tariqkurd-repo tariqkurd-repo added bug Something isn't working documentation Improvements or additions to documentation labels May 23, 2024
@tariqkurd-repo
Copy link
Collaborator Author

tariqkurd-repo commented May 23, 2024

The M-bit isn't a permission, it can be toggled arbitrarily (providing the cap isn't sealed)

It can be cleared as a result of ACPERM, if X is removed, sort of. In fact if X=0 then it is no longer the M-bit, so it becomes non-existant - so it can change state between existant and non-existant as a result of ACPERM.

I'll tidy up the doc to remove the M-bit from the AP field. The current spec for ACPERM, GCPERM is believed correct.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant