arc: implement slave cores kick-start for Linux kernel
authorAlexey Brodkin <abrodkin@synopsys.com>
Mon, 13 Apr 2015 10:37:05 +0000 (13:37 +0300)
committerAlexey Brodkin <abrodkin@synopsys.com>
Wed, 1 Jul 2015 14:17:27 +0000 (17:17 +0300)
commit8b2eb776b13055e71f94367c06a26c5e3a902f16
treeaad534710ed24ea662d54446c0e928b1b52c1ce1
parent9c6b05cb724e18d1db3f9e1a75b2272572f06fbd
arc: implement slave cores kick-start for Linux kernel

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
board/synopsys/axs101/axs101.c