[U-Boot] [PATCH] armv8: release slave cores from CPU_RELEASE_ADDR

Simon Glass sjg at chromium.org
Thu Jan 12 06:08:07 CET 2017


+Tom

On 28 December 2016 at 04:38, Oded Gabbay <oded.gabbay at gmail.com> wrote:
> When using ARMv8 with ARMV8_SPIN_TABLE=y, we want the slave cores to
> wait on spin_table_cpu_release_addr, until the Linux kernel will "wake" them
> by writing to that location. The address of spin_table_cpu_release_addr is
> transferred to the kernel using the device tree that is updated by
> spin_table_update_dt().
>
> However, if we also use SPL, then the slave cores are stuck at
> CPU_RELEASE_ADDR instead and as a result, never wake up.
>
> This patch releases the slave cores by writing spl_image->entry_point to
> CPU_RELEASE_ADDR location before the end of the SPL code
> (at jump_to_image_no_args()).
>
> That way, the slave cores will start to execute the u-boot and will get to
> the spin-table code and wait on the correct address
> (spin_table_cpu_release_addr).
>
> Signed-off-by: Oded Gabbay <oded.gabbay at gmail.com>
> Cc: Simon Glass <sjg at chromium.org>
> ---
>  common/spl/spl.c | 8 ++++++++
>  1 file changed, 8 insertions(+)

Reviewed-by: Simon Glass <sjg at chromium.org>


More information about the U-Boot mailing list