[U-Boot] [PATCH v1 1/5] ARM: PSCI: initialize stack pointer on secondary CPUs

Stefan Agner stefan at agner.ch
Wed Jun 27 08:36:28 UTC 2018


On 24.06.2018 21:09, Stefan Agner wrote:
> From: Stefan Agner <stefan.agner at toradex.com>
> 
> A proper stack is required to safely use C code in psci_arch_cpu_entry.

Patrick, I prefer to have your ack on this since you introduced
psci_arch_cpu_entry.

As far as I can tell STM32MP1 uses C code in psci_arch_cpu_entry. The
same function in i.MX 7's PSCI implementation the compiler actually
pushed stuff on the (uninitialized) stack, which caused the newly
brought up CPU to immediately crash.

Not sure if in your case the stack pointer is already setup by some
other means or your compiler does not use the stack.

In any case, I think it is better to just setup the stack properly as
done in this patch...


Stefano, I think we really want patch 2/3 applied before the release
since it fixes i.MX 7 PSCI. Right now the implementation is really
broken and not PSCI 1.0 conformant. But patch 2/3 require this patch to
be applied... Not sure how we should handle this.

--
Stefan

> 
> Fixes: 486daaa618e1 ("arm: psci: add a weak function psci_arch_cpu_entry")
> Cc: Patrick Delaunay <patrick.delaunay at st.com>
> Signed-off-by: Stefan Agner <stefan.agner at toradex.com>
> ---
> 
>  arch/arm/cpu/armv7/psci.S | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm/cpu/armv7/psci.S b/arch/arm/cpu/armv7/psci.S
> index 08b5088675..983cd90442 100644
> --- a/arch/arm/cpu/armv7/psci.S
> +++ b/arch/arm/cpu/armv7/psci.S
> @@ -331,6 +331,8 @@ ENTRY(psci_cpu_entry)
>  
>  	bl	_nonsec_init
>  
> +	bl	psci_stack_setup
> +
>  	bl	psci_arch_cpu_entry
>  
>  	bl	psci_get_cpu_id			@ CPU ID => r0


More information about the U-Boot mailing list