Skip to content

Not throwing error when GPA[63:41] are set while G-stage translation #35

Description

@mhayat-10xe

The risc-v privilege specs state that:

For G-stage translation Address bits 63:41 must all be zeros, or else a guest-page-fault exception occurs.

I wrote an assertion that states:

If stage 2 is enabled and stage 1 is disabled then the IOVA[63:41] must all be zero else a guest page exception occurs. (Because in the case of stage 1 disabled and stage 2 enabled, the IOVA is a GPA.)

Here is the counter-example of the assertion failure. In the 11th cycle, we have a first non-leaf pte for second stage translation with the iova[63:41] bits set then in the 12th cycle there must be trans_error with cause_code == guest_page_fault, but RTL is not giving any error.
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions