devices: virtio: iommu: Support VIRTIO_IOMMU_F_MMIO feature
devices: virtio: iommu: Support VIRTIO_IOMMU_F_MMIO feature

With VIRTIO_IOMMU_F_MMIO feature, virtio-iommu allows passthrough
devices to dma to memory-mapped I/O regions. For example, virtio-gpu has
a bar for vram which is a memory-mappped I/O region. With this feature
support, a pass-through device (e.g. another hardware GPU) can directly
access the framebuffers in the virtio-gpu's vram bar.

BUG=None
TEST=test with a crostini VM equiped with a passthrough GPU.

Change-Id: I01b224a54be857d1f50bcc3f3014a6ed26b7418f
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3764930
Tested-by: Vaibhav Vyas (SW) US <833ae7ee488f4ffb23bfdecd8bcbdfd11ee92350@nvidia.com>
Commit-Queue: David Stevens <2f87ba95ff5d327328bd68c2e86a4d9f2ba99bd0@chromium.org>
Reviewed-by: David Stevens <2f87ba95ff5d327328bd68c2e86a4d9f2ba99bd0@chromium.org>

google/crosvm,google/crosvm,google/crosvm,google/crosvm