riscv: Introduce AVAILABLE_HARTS
authorRick Chen <rick@andestech.com>
Wed, 21 Sep 2022 06:34:54 +0000 (14:34 +0800)
committerLeo Yu-Chi Liang <ycliang@andestech.com>
Mon, 26 Sep 2022 06:29:13 +0000 (14:29 +0800)
commite0465f80bd33f239612ee9f0ee7b6cf13d2f5b4d
treeddd81b0d82d1c0e8abf0b80853fdde07407bd5e6
parentc2bdf02c9d40da7154fea46b7d10343fe9f14209
riscv: Introduce AVAILABLE_HARTS

In SMP all harts will register themself in available_hart
during start up. Then main hart will send IPI to other harts
according to this variables. But this mechanism may not
guarantee that all other harts can jump to next stage.

When main hart is sending IPI to other hart according to
available_harts, but other harts maybe still not finish the
registration. Then the SMP booting will miss some harts finally.
So let it become an option and it will be enabled by default.

Please refer to the discussion:
https://www.mail-archive.com/u-boot@lists.denx.de/msg449997.html

Signed-off-by: Rick Chen <rick@andestech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
arch/riscv/Kconfig
arch/riscv/cpu/cpu.c
arch/riscv/cpu/start.S
arch/riscv/include/asm/global_data.h
arch/riscv/lib/asm-offsets.c
arch/riscv/lib/smp.c