Create separate path for SMC forwarding

This is the first stage of creating an SMC forwarding path based on
the manifest.

Currently none of the SMCs are forwarded, which maintains existing behavior.

Bug: 132421503
Change-Id: I1c3257b83346d47ff1e71db3898b9b85be14a043
diff --git a/src/arch/aarch64/hypervisor/psci_handler.c b/src/arch/aarch64/hypervisor/psci_handler.c
index ad3447f..8df6ff6 100644
--- a/src/arch/aarch64/hypervisor/psci_handler.c
+++ b/src/arch/aarch64/hypervisor/psci_handler.c
@@ -37,7 +37,8 @@
 /* Performs arch specific boot time initialisation. */
 void arch_one_time_init(void)
 {
-	smc_res_t smc_res = smc32(PSCI_VERSION, 0, 0, 0, 0, 0, 0, 0);
+	smc_res_t smc_res =
+		smc32(PSCI_VERSION, 0, 0, 0, 0, 0, 0, SMCCC_CALLER_HYPERVISOR);
 
 	el3_psci_version = smc_res.res0;
 
@@ -103,7 +104,8 @@
 				*ret = 0;
 			} else {
 				/* PSCI 1.x only defines two feature bits. */
-				smc_res = smc32(func, arg0, 0, 0, 0, 0, 0, 0);
+				smc_res = smc32(func, arg0, 0, 0, 0, 0, 0,
+						SMCCC_CALLER_HYPERVISOR);
 				*ret = smc_res.res0 & 0x3;
 			}
 			break;
@@ -127,12 +129,14 @@
 		break;
 
 	case PSCI_SYSTEM_OFF:
-		smc32(PSCI_SYSTEM_OFF, 0, 0, 0, 0, 0, 0, 0);
+		smc32(PSCI_SYSTEM_OFF, 0, 0, 0, 0, 0, 0,
+		      SMCCC_CALLER_HYPERVISOR);
 		panic("System off failed");
 		break;
 
 	case PSCI_SYSTEM_RESET:
-		smc32(PSCI_SYSTEM_RESET, 0, 0, 0, 0, 0, 0, 0);
+		smc32(PSCI_SYSTEM_RESET, 0, 0, 0, 0, 0, 0,
+		      SMCCC_CALLER_HYPERVISOR);
 		panic("System reset failed");
 		break;
 
@@ -166,14 +170,15 @@
 		 */
 		arch_regs_set_pc_arg(&vcpu->regs, ipa_init(arg1), arg2);
 		smc_res = smc64(PSCI_CPU_SUSPEND, arg0, (uintreg_t)&cpu_entry,
-				(uintreg_t)vcpu->cpu, 0, 0, 0, 0);
+				(uintreg_t)vcpu->cpu, 0, 0, 0,
+				SMCCC_CALLER_HYPERVISOR);
 		*ret = smc_res.res0;
 		break;
 	}
 
 	case PSCI_CPU_OFF:
 		cpu_off(vcpu->cpu);
-		smc32(PSCI_CPU_OFF, 0, 0, 0, 0, 0, 0, 0);
+		smc32(PSCI_CPU_OFF, 0, 0, 0, 0, 0, 0, SMCCC_CALLER_HYPERVISOR);
 		panic("CPU off failed");
 		break;
 
@@ -196,9 +201,9 @@
 		 * itself off).
 		 */
 		do {
-			smc_res =
-				smc64(PSCI_CPU_ON, arg0, (uintreg_t)&cpu_entry,
-				      (uintreg_t)c, 0, 0, 0, 0);
+			smc_res = smc64(PSCI_CPU_ON, arg0,
+					(uintreg_t)&cpu_entry, (uintreg_t)c, 0,
+					0, 0, SMCCC_CALLER_HYPERVISOR);
 			*ret = smc_res.res0;
 		} while (*ret == PSCI_ERROR_ALREADY_ON);