[PATCH master] ARM: psci: client: fix power off and reset via 64-bit secure monitor

Sascha Hauer sha at pengutronix.de
Sun Oct 17 23:46:51 PDT 2021


On Fri, Oct 15, 2021 at 06:05:44PM +0200, Ahmad Fatoum wrote:
> The PSCI function code is a 32-bit integer > 0x80000000, but the
> the PSCI client code erroneously casted it to a signed integer.
> 
> On 32-bit systems, the cast later on to unsigned long restored the
> original value, but on 64-bit system, we passed a very large 64-bit
> number in the secure monitor call because of the sign extension.
> 
> This worked because TF-A seems to ignore the upper 32-bits anyway,
> (tested with i.MX8MN), but for other secure monitors like the default
> HVC implementation for QEMU ARM64 Virt machine this didn't hold true
> for all commands, leading to aborts when doing reset or poweroff.
> 
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
>  arch/arm/cpu/psci-client.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Applied, thanks

Sascha

> 
> diff --git a/arch/arm/cpu/psci-client.c b/arch/arm/cpu/psci-client.c
> index b5d0d3749702..7d5b3768b59e 100644
> --- a/arch/arm/cpu/psci-client.c
> +++ b/arch/arm/cpu/psci-client.c
> @@ -15,7 +15,7 @@
>  
>  static struct restart_handler restart;
>  
> -static void __noreturn psci_invoke_noreturn(int function)
> +static void __noreturn psci_invoke_noreturn(ulong function)
>  {
>  	int ret;
>  
> -- 
> 2.30.2
> 
> 
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list