Be clear about which SMC calling convention is being used.
Change-Id: I3b8f2e55f9a3baeb462d59effc9a99ac56aeaa7d
diff --git a/src/arch/aarch64/hypervisor/psci_handler.c b/src/arch/aarch64/hypervisor/psci_handler.c
index 5c87589..b98dd22 100644
--- a/src/arch/aarch64/hypervisor/psci_handler.c
+++ b/src/arch/aarch64/hypervisor/psci_handler.c
@@ -37,7 +37,7 @@
/* Performs arch specific boot time initialisation. */
void arch_one_time_init(void)
{
- el3_psci_version = smc(PSCI_VERSION, 0, 0, 0);
+ el3_psci_version = smc32(PSCI_VERSION, 0, 0, 0);
/* Check there's nothing unexpected about PSCI. */
switch (el3_psci_version) {
@@ -100,7 +100,7 @@
*ret = 0;
} else {
/* PSCI 1.x only defines two feature bits. */
- *ret = smc(func, arg0, 0, 0) & 0x3;
+ *ret = smc32(func, arg0, 0, 0) & 0x3;
}
break;
@@ -123,12 +123,12 @@
break;
case PSCI_SYSTEM_OFF:
- smc(PSCI_SYSTEM_OFF, 0, 0, 0);
+ smc32(PSCI_SYSTEM_OFF, 0, 0, 0);
panic("System off failed");
break;
case PSCI_SYSTEM_RESET:
- smc(PSCI_SYSTEM_RESET, 0, 0, 0);
+ smc32(PSCI_SYSTEM_RESET, 0, 0, 0);
panic("System reset failed");
break;
@@ -161,14 +161,14 @@
* vcpu registers will be ignored.
*/
arch_regs_set_pc_arg(&vcpu->regs, ipa_init(arg1), arg2);
- *ret = smc(PSCI_CPU_SUSPEND | SMCCC_64_BIT, arg0,
- (uintreg_t)&cpu_entry, (uintreg_t)vcpu->cpu);
+ *ret = smc64(PSCI_CPU_SUSPEND, arg0, (uintreg_t)&cpu_entry,
+ (uintreg_t)vcpu->cpu);
break;
}
case PSCI_CPU_OFF:
cpu_off(vcpu->cpu);
- smc(PSCI_CPU_OFF, 0, 0, 0);
+ smc32(PSCI_CPU_OFF, 0, 0, 0);
panic("CPU off failed");
break;
@@ -191,8 +191,8 @@
* itself off).
*/
do {
- *ret = smc(PSCI_CPU_ON | SMCCC_64_BIT, arg0,
- (uintreg_t)&cpu_entry, (uintreg_t)c);
+ *ret = smc64(PSCI_CPU_ON, arg0, (uintreg_t)&cpu_entry,
+ (uintreg_t)c);
} while (*ret == PSCI_ERROR_ALREADY_ON);
if (*ret != PSCI_RETURN_SUCCESS) {