The entry address for a VM is an IPA.

Change-Id: I9b447796789082c031c8a342a283d3050cf15ccb
diff --git a/src/arch/aarch64/handler.c b/src/arch/aarch64/handler.c
index f5bdd21..bcc67e6 100644
--- a/src/arch/aarch64/handler.c
+++ b/src/arch/aarch64/handler.c
@@ -124,7 +124,7 @@
 			break;
 		}
 
-		if (cpu_on(c, arg1, arg2)) {
+		if (cpu_on(c, ipa_init(arg1), arg2)) {
 			*ret = PSCI_RETURN_ALREADY_ON;
 			break;
 		}
diff --git a/src/arch/aarch64/inc/arch_cpu.h b/src/arch/aarch64/inc/arch_cpu.h
index 933de8e..681f981 100644
--- a/src/arch/aarch64/inc/arch_cpu.h
+++ b/src/arch/aarch64/inc/arch_cpu.h
@@ -6,6 +6,8 @@
 #include <stddef.h>
 #include <stdint.h>
 
+#include "addr.h"
+
 struct arch_regs {
 	/* General purpose registers. */
 	uint64_t r[31];
@@ -91,13 +93,13 @@
 	__asm__ volatile("msr cnthctl_el2, %0" ::"r"(cnthctl));
 }
 
-static inline void arch_regs_init(struct arch_regs *r, size_t pc, size_t arg,
+static inline void arch_regs_init(struct arch_regs *r, ipaddr_t pc, size_t arg,
 				  bool is_primary)
 {
 	/* TODO: Use constant here. */
 	r->spsr = 5 |	 /* M bits, set to EL1h. */
 		  (0xf << 6); /* DAIF bits set; disable interrupts. */
-	r->pc = pc;
+	r->pc = ipa_addr(pc);
 	r->r[0] = arg;
 }