Initial IOMMU driver hooks.
This is intentially stripped back to initialization and a hook to the
driver when the VM's memory map is changing. This will work as the
baseline from which changes can be made to fit the needs of the drivers.
Change-Id: I904279f511e2d6e4b1c062fb49a2892042b79005
diff --git a/build/toolchain/BUILD.gn b/build/toolchain/BUILD.gn
index cdceaf9..07a35e2 100644
--- a/build/toolchain/BUILD.gn
+++ b/build/toolchain/BUILD.gn
@@ -41,5 +41,6 @@
plat_arch = "fake"
plat_boot_flow = "//src/arch/fake:boot_flow"
plat_console = "//src/arch/fake:console"
+ plat_iommu = "//src/iommu:absent"
}
}
diff --git a/build/toolchain/embedded.gni b/build/toolchain/embedded.gni
index 31f7894..fa4aeae 100644
--- a/build/toolchain/embedded.gni
+++ b/build/toolchain/embedded.gni
@@ -293,6 +293,7 @@
toolchain_args = {
plat_boot_flow = invoker.boot_flow
plat_console = invoker.console
+ plat_iommu = invoker.iommu
forward_variables_from(invoker.toolchain_args, "*")
}
}
@@ -314,6 +315,7 @@
"origin_address",
"boot_flow",
"console",
+ "iommu",
"gic_version",
"gicd_base_address",
"gicr_base_address",
@@ -342,6 +344,7 @@
cpu = "${invoker.cpu}+fp"
boot_flow = "//src/arch/fake:boot_flow"
console = "//src/arch/aarch64/hftest:console"
+ iommu = "//src/iommu:absent"
# Nonsense values because they are required but shouldn't be used.
heap_pages = 0
diff --git a/build/toolchain/host.gni b/build/toolchain/host.gni
index 535ec61..feffa11 100644
--- a/build/toolchain/host.gni
+++ b/build/toolchain/host.gni
@@ -152,6 +152,7 @@
plat_arch = "fake"
plat_boot_flow = "//src/arch/fake:boot_flow"
plat_console = "//src/arch/fake:console"
+ plat_iommu = "//src/iommu:absent"
plat_heap_pages = invoker.heap_pages
plat_max_cpus = invoker.max_cpus
plat_max_vms = invoker.max_vms
diff --git a/build/toolchain/platform.gni b/build/toolchain/platform.gni
index b99ca64..7ff4b5a 100644
--- a/build/toolchain/platform.gni
+++ b/build/toolchain/platform.gni
@@ -26,6 +26,9 @@
# Console driver to be used for the platform, specified as build target.
plat_console = ""
+ # IOMMU driver to be used for the platform, specified as build target.
+ plat_iommu = ""
+
# The number of pages to allocate for the hypervisor heap.
plat_heap_pages = 0