mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-11-28 14:11:29 +01:00
riscv: boot images passed to bootm on all harts
Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de> Reviewed-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
3dea63c844
commit
f28ad250e6
@ -13,6 +13,7 @@
|
||||
#include <image.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <asm/csr.h>
|
||||
#include <asm/smp.h>
|
||||
#include <dm/device.h>
|
||||
#include <dm/root.h>
|
||||
#include <u-boot/zlib.h>
|
||||
@ -81,6 +82,9 @@ static void boot_jump_linux(bootm_headers_t *images, int flag)
|
||||
{
|
||||
void (*kernel)(ulong hart, void *dtb);
|
||||
int fake = (flag & BOOTM_STATE_OS_FAKE_GO);
|
||||
#ifdef CONFIG_SMP
|
||||
int ret;
|
||||
#endif
|
||||
|
||||
kernel = (void (*)(ulong, void *))images->ep;
|
||||
|
||||
@ -92,8 +96,15 @@ static void boot_jump_linux(bootm_headers_t *images, int flag)
|
||||
announce_and_cleanup(fake);
|
||||
|
||||
if (!fake) {
|
||||
if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len)
|
||||
if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len) {
|
||||
#ifdef CONFIG_SMP
|
||||
ret = smp_call_function(images->ep,
|
||||
(ulong)images->ft_addr, 0);
|
||||
if (ret)
|
||||
hang();
|
||||
#endif
|
||||
kernel(gd->arch.boot_hart, images->ft_addr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user