
On Wed, 2015-07-01 at 17:03 +0300, Alexey Brodkin wrote:
With new SMP-enabled CPUs with ARC HS38 cores and corresponding support in Linux kernel it's required to add basic SMP support in U-Boot.
Currently we assume the one and only core starts execution after power-on. So most of things in U-Boot is handled in UP mode.
But when U-Boot is used for loading and starting Linux kernel right before jumping to kernel's entry point U-Boot: [1] Sets all slave cores to jump to the same address [kernel's entry point] [2] Really starts all slav cores
In ARC's implemetation of SMP in Linux kernel all cores are supposed to run the same start-up code. But only core with ID 0 (master core) processes further while others are looping waiting for master core to complete some initialization.
That means it's safe to un-pause slave cores and let them execute kernel
- they will wait for master anyway.
Signed-off-by: Alexey Brodkin abrodkin@synopsys.com Cc: Vineet Gupta vgupta@synopsys.com
arch/arc/lib/bootm.c | 6 ++++++ board/synopsys/axs101/axs101.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+)
Applied, thanks.
-Alexey