mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-08 14:14:32 +00:00
f760c9a1fd
Some IPIs may already be pending when U-Boot is started. This could be a problem if a secondary hart tries to handle an IPI before the boot hart has initialized the IPI device. To be specific, the Kendryte K210 ROM-based bootloader does not clear IPIs before passing control to U-Boot. Without this patch, the secondary hart jumps to address 0x0 as soon as it enters secondary_hart_loop, and then hangs in its trap handler. This commit introduces a valid bit so secondary harts know when and IPI originates from U-Boot, and it is safe to use the IPI API. The valid bit is initialized to 0 by board_init_f_init_reserve. Before this, secondary harts wait in wait_for_gd_init. Signed-off-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Bin Meng <bin.meng@windriver.com> Reviewed-by: Rick Chen <rick@andestech.com> Reviewed-by: Leo Liang <ycliang@andestech.com> |
||
---|---|---|
.. | ||
arch-fu540 | ||
arch-generic | ||
asm.h | ||
barrier.h | ||
bitops.h | ||
byteorder.h | ||
cache.h | ||
config.h | ||
csr.h | ||
dma-mapping.h | ||
encoding.h | ||
global_data.h | ||
gpio.h | ||
io.h | ||
linkage.h | ||
posix_types.h | ||
processor.h | ||
ptrace.h | ||
sbi.h | ||
sections.h | ||
setjmp.h | ||
smp.h | ||
spl.h | ||
string.h | ||
syscon.h | ||
system.h | ||
types.h | ||
u-boot-riscv.h | ||
u-boot.h | ||
unaligned.h |