I am trying to understand the intel-iommu.

a) I find mention of three address types. Untranslated Requests, Translation Requests and Translated Requests.

Translated Requests mean translation of host virtual to host physical.

But I am unclear about the other two requests. One of them should be GVA to HPA. 

The VT-d spec does not clearly mention the difference.

b) Secondly, there are two levels of Address Translations. I am working in a non VM environment but still using IOMMU through VFIO. I was curious to know whether we really need two levels of translations as in my case.

Thanks
Saptarshi