]> git.karo-electronics.de Git - karo-tx-uboot.git/commit
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)
committerLothar Waßmann <LW@KARO-electronics.de>
Tue, 8 Sep 2015 22:47:21 +0000 (00:47 +0200)
commit23f42152d95005a2d12a97c507c1082e246170fd
tree1c59522ed7b7191c3290ac97b9be8358e809c0b4
parent53a2d3428cbe8728dfaabb8cc39f6789d34567f2
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