exec.c: Handle IOMMUs in address_space_translate_for_iotlb()
commit1f871c5e6b0f30644a60a81a6a7aadb3afb030ac
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 15 Jun 2018 13:57:16 +0000 (15 14:57 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 15 Jun 2018 14:23:34 +0000 (15 15:23 +0100)
tree335d1a996b0e4c8f36c08b65d2652a6f88a77f71
parent2c91bcf273ffb95898d2ca901b699558d9e73fd1
exec.c: Handle IOMMUs in address_space_translate_for_iotlb()

Currently we don't support board configurations that put an IOMMU
in the path of the CPU's memory transactions, and instead just
assert() if the memory region fonud in address_space_translate_for_iotlb()
is an IOMMUMemoryRegion.

Remove this limitation by having the function handle IOMMUs.
This is mostly straightforward, but we must make sure we have
a notifier registered for every IOMMU that a transaction has
passed through, so that we can flush the TLB appropriately
when any of the IOMMUs change their mappings.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-id: 20180604152941.20374-5-peter.maydell@linaro.org
accel/tcg/cputlb.c
exec.c
include/exec/exec-all.h
include/qom/cpu.h