You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In such IOMMU implementation with capabilities.Sv32=1 & capabilities.Sv39=1 and 64-bit addresss width, as the IOMMU model suggests, when iosatp.MODE=Sv32 and DC.SXL=1, 63–32 should all equal to bit 31, or else a page-fault exception will occur.
While I think this is not exactly what the IOMMU spec requires:
When SXL is 1, the following rules apply:
If the first-stage is not Bare, then a page fault corresponding to the original access type occurs if
the IOVA has bits beyond bit 31 set to 1.
If the second-stage is not Bare, then a guest page fault corresponding to the original access type
occurs if the incoming GPA has bits beyond bit 33 set to 1.
I prefer this is a bug in the model (see code), since in a 32-bit system, there is no such canonical rule for Sv32 as Sv39/Sv48/Sv57 in 64-bit system. The check may only detect the [63:32] for IOVA and [63:34] for GPA not to one.
The text was updated successfully, but these errors were encountered:
viktoryou
changed the title
Question about VA fault detection in system both support Sv32 and Sv48
Question about VA fault detection in system both support Sv32 and Sv39
Mar 19, 2024
In such IOMMU implementation with capabilities.Sv32=1 & capabilities.Sv39=1 and 64-bit addresss width, as the IOMMU model suggests, when iosatp.MODE=Sv32 and DC.SXL=1, 63–32 should all equal to bit 31, or else a page-fault exception will occur.
While I think this is not exactly what the IOMMU spec requires:
I prefer this is a bug in the model (see code), since in a 32-bit system, there is no such canonical rule for Sv32 as Sv39/Sv48/Sv57 in 64-bit system. The check may only detect the [63:32] for IOVA and [63:34] for GPA not to one.
The text was updated successfully, but these errors were encountered: