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

G bit high in G-stage but not throwing error #32

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

G bit high in G-stage but not throwing error #32

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

Comments

@mhayat-10xe
Copy link
Contributor

"In Risc-v privileged spec section "Guest Physical Address Translation" states that:

The G bit in all G-stage PTEs is reserved for future standard use. Until its use is defined by a standard extension, it should be cleared by software for forward compatibility, and must be ignored by hardware.

I wrote an assertion that states:

If during the second stage translation, the pte.g bit is high then in the next cycle trans_error must be asserted.

Below is the counter-example of the assertion failure. Here translate_pdtp=0, en_1s=1 and en_2s = 1. In the 11th cycle there is the first leaf pte where iosatp is translated, in the 13th cycle there is the second leaf pte where first stage translation happened, and in the 15th cycle, there is a third non-leaf pte for G-Stage translation where pte.g bit is high. Now in the next cycle trans_error must be high because pte.g bit is asserted but here trans_error=0 which is wrong.

Screenshot from 2024-07-11 18-53-44

@mhayat-10xe mhayat-10xe changed the title G bit high in G-stage G bit high in G-stage but not throwing error Jul 12, 2024
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