diff options
author | dong.yang <dong.yang@sophgo.com> | 2024-09-13 12:36:39 +0800 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2024-09-27 11:05:37 +0530 |
commit | 3e141a6950a276632439b202b220e49f3ae6969b (patch) | |
tree | f471b4adf19a78ce2ab70453465a5ca9c0559f7f /include | |
parent | 7b3de48cd583dbd8c0b9efa65f417c4e5d5a6b79 (diff) | |
download | opensbi-3e141a6950a276632439b202b220e49f3ae6969b.zip opensbi-3e141a6950a276632439b202b220e49f3ae6969b.tar.gz opensbi-3e141a6950a276632439b202b220e49f3ae6969b.tar.bz2 |
firmware: fw_base.S: fix multi-core boot bug.
In a multi-core startup scenario, if both _try_lottery and
_wait_for_boot_hart use the data in the _boot_status address, when
a CPU enters OpenSBI later than boot hart set the _boot_status to
BOOT_STATUS_BOOT_HART_DONE, the CPU will modify _boot_status to 1
by amoswap.w and will never be awakened in _wait_for_boot_hart.
So let _try_lottery and _boot_status use data from two addresses.
Fixes: 8151105af5e4 ("firmware: fw_base.S: Remove _relocate_lottery")
Signed-off-by: dong.yang <dong.yang@sophgo.com>
Reviewed-by: Xing Xiaoguang <xiaoguang.xing@sophgo.com>
Reviewed-by: Xiang W <wxjstz@126.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions