intel-iommu: define macro VTD_HOST_ADDRESS_WIDTH to 39

Fixme later. Do not know how to decide the host address width.

Signed-off-by: Le Tan <tamlokveer@gmail.com>
acpi: use VTD_HOST_ADDRESS_WIDTH instead of magic number

Use VTD_HOST_ADDRESS_WIDTH to build dmar table.

Signed-off-by: Le Tan <tamlokveer@gmail.com>
intel-iommu: fix vtd_root_table_setup()

In vtd_root_table_setup(), use get_quad_raw() to get the root table address.
Use HAW to mask the address.

Signed-off-by: Le Tan <tamlokveer@gmail.com>
intel-iommu: add Queued Invalidation framework

Add Queued Invalidation framework. L1 can boot smoothly. But assigning
emulated uhci controller to L2 fails. L1 will encounter soft-lockup and
iommu translate encounter will encounter non-present spte.

Signed-off-by: Le Tan <tamlokveer@gmail.com>