]> git.baikalelectronics.ru Git - uboot.git/commit
armv8: release slave cores from CPU_RELEASE_ADDR
authorOded Gabbay <oded.gabbay@gmail.com>
Wed, 28 Dec 2016 11:38:35 +0000 (13:38 +0200)
committerTom Rini <trini@konsulko.com>
Sat, 14 Jan 2017 21:47:10 +0000 (16:47 -0500)
commit50d2b79f997808158b4855ecde90facd378053f7
tree51ed5633ec7e0efa7015dbd88358d919b3ae095b
parenta9c470776f8f00c50bf6835cf63bf142c51c8deb
armv8: release slave cores from CPU_RELEASE_ADDR

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@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
common/spl/spl.c