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

not throwing error when pte.u bit is low in second stage translation #33

Open
mhayat-10xe opened this issue Jul 12, 2024 · 0 comments
Open

Comments

@mhayat-10xe
Copy link
Contributor

Risc-V privileged spec states that:

For G-stage address translation, all memory accesses (including those made to access data structures for VS-stage address translation) are considered to be user-level accesses, as though executed in U-mode.

I wrote an assertion that states:

If there is G-stage translation and the pte.u bit is low then in the next cycle trans_error must be high.

Here is the counter example of the assertion failure. In the 11th cycle, there is leaf pte for translation of iosatp, then in the 15th cycle there is another leaf pte for 1st stage translation and in the 17th cycle there is another leaf pte for second stage translation where pte.u bit is low. Now in the next cycle trans_error must be high but it is low which is wrong.

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant