]> rtime.felk.cvut.cz Git - jailhouse.git/commit
arm: Complete paging invalidations
authorJan Kiszka <jan.kiszka@siemens.com>
Wed, 30 Jul 2014 14:23:19 +0000 (15:23 +0100)
committerJan Kiszka <jan.kiszka@siemens.com>
Fri, 19 Dec 2014 10:04:07 +0000 (11:04 +0100)
commitea4c6f6a23def600cff8eea37b666da4477530d1
tree055bf979859cfeac3d5e3f83d2a662a101ee9ee4
parentadd44a7a8431058ec9acb3db328166f8a8c34dcb
arm: Complete paging invalidations

This patch is based on the original version by Jean-Philippe Brucker. It
fills different paging stubs:
- the arch_flush_cell_vcpu_caches stub, which is used by the core via
  config_commit each time the memory is remapped. It allows to
  invalidate the TLBs on all affected CPUs of the cell.
- the arch_paging_flush_cpu_caches function is used to flush the
  hypervisor page table entries when using the PAGE_MAP_COHERENT flag
  (useful for IOMMU, not currently in use on the arm side.)
- the arch_paging_flush_page_tlbs function is used to invalidate a TLB
  entry after modifying the hypervisor paging structures. It must ignore
  accesses done from the initial setup code at EL1, which are committed
  once at EL2 with a TLBIALLH, just before enabling the MMU.

arch_config_commit has nothing to do so far. Will change when an IOMMU is
supported.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
hypervisor/arch/arm/control.c
hypervisor/arch/arm/include/asm/control.h
hypervisor/arch/arm/include/asm/paging.h
hypervisor/arch/arm/include/asm/percpu.h
hypervisor/arch/arm/include/asm/processor.h
hypervisor/arch/arm/include/asm/sysregs.h
hypervisor/arch/arm/mmu_cell.c
hypervisor/arch/arm/setup.c