diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/cpu/armv8/fwcall.c | 14 | ||||
-rw-r--r-- | arch/arm/include/asm/system.h | 11 | ||||
-rw-r--r-- | arch/arm/mach-meson/board.c | 2 |
3 files changed, 13 insertions, 14 deletions
diff --git a/arch/arm/cpu/armv8/fwcall.c b/arch/arm/cpu/armv8/fwcall.c index 079e250cbe..6bb68f2ed3 100644 --- a/arch/arm/cpu/armv8/fwcall.c +++ b/arch/arm/cpu/armv8/fwcall.c @@ -17,7 +17,7 @@ * x0~x7: input arguments * x0~x3: output arguments */ -void hvc_call(struct pt_regs *args) +static void hvc_call(struct pt_regs *args) { asm volatile( "ldr x0, %0\n" @@ -75,13 +75,21 @@ void smc_call(struct pt_regs *args) "x16", "x17"); } -void __noreturn psci_system_reset(bool conduit_smc) +/* + * For now, all systems we support run at least in EL2 and thus + * trigger PSCI calls to EL3 using SMC. If anyone ever wants to + * use PSCI on U-Boot running below a hypervisor, please detect + * this and set the flag accordingly. + */ +static const bool use_smc_for_psci = true; + +void __noreturn psci_system_reset(void) { struct pt_regs regs; regs.regs[0] = ARM_PSCI_0_2_FN_SYSTEM_RESET; - if (conduit_smc) + if (use_smc_for_psci) smc_call(®s); else hvc_call(®s); diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h index c18e1e3a10..5166c653f3 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h @@ -107,15 +107,6 @@ void smp_kick_all_cpus(void); void flush_l3_cache(void); /* - *Issue a hypervisor call in accordance with ARM "SMC Calling convention", - * DEN0028A - * - * @args: input and output arguments - * - */ -void hvc_call(struct pt_regs *args); - -/* *Issue a secure monitor call in accordance with ARM "SMC Calling convention", * DEN0028A * @@ -124,7 +115,7 @@ void hvc_call(struct pt_regs *args); */ void smc_call(struct pt_regs *args); -void __noreturn psci_system_reset(bool smc); +void __noreturn psci_system_reset(void); #endif /* __ASSEMBLY__ */ diff --git a/arch/arm/mach-meson/board.c b/arch/arm/mach-meson/board.c index 1dd53e2313..f159cbf849 100644 --- a/arch/arm/mach-meson/board.c +++ b/arch/arm/mach-meson/board.c @@ -43,7 +43,7 @@ void dram_init_banksize(void) void reset_cpu(ulong addr) { - psci_system_reset(true); + psci_system_reset(); } static struct mm_region gxbb_mem_map[] = { |