VHE: Switch to hypervisor/host translation tables on entry to EL2

On every entry into the hypervisor, change ttbr0_el2 to point to the
ASID 0 hypervisor tables. All of hypervisor code, except for the few
instructions during entry, will run on the hypervisor tables. This is
done so that hypervisor code with and without VHE are identical in that
they always use the same page tables during execution. Also, EL0 pages
are not mapped in the hypervisor for security and hygiene.

Change-Id: Ia5e3e8eddad29e325d1694d2ed3d2e39286f5589
Signed-off-by: Raghu Krishnamurthy <raghu.ncstate@gmail.com>
diff --git a/src/arch/aarch64/hypervisor/exceptions.S b/src/arch/aarch64/hypervisor/exceptions.S
index 41dd600..fb57960 100644
--- a/src/arch/aarch64/hypervisor/exceptions.S
+++ b/src/arch/aarch64/hypervisor/exceptions.S
@@ -823,6 +823,15 @@
 	orr x1, x1, #(1 << 27)
 	msr hcr_el2, x1
 	isb
+
+	/**
+	 * Switch to host page tables(ASID 0 tables).
+	 */
+	adrp x0, arch_mm_config
+	add x0, x0, :lo12:arch_mm_config
+	ldr x0, [x0]
+	msr ttbr0_el2, x0
+	isb
 1:
 	ret
 #endif