From: Nicholas Piggin <[email protected]> To avoid OpenSBI hanging with no messages if there is no kernel provided, add the simple payload in that case.
Signed-off-by: Nicholas Piggin <[email protected]> Signed-off-by: Joel Stanley <[email protected]> --- hw/riscv/tt_atlantis.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/riscv/tt_atlantis.c b/hw/riscv/tt_atlantis.c index 2e96c5954268..cec17e7cb952 100644 --- a/hw/riscv/tt_atlantis.c +++ b/hw/riscv/tt_atlantis.c @@ -745,15 +745,15 @@ static void tt_atlantis_machine_done(Notifier *notifier, void *data) firmware_name, &start_addr, NULL); + kernel_start_addr = riscv_calc_kernel_start_addr(&boot_info, + firmware_end_addr); if (machine->kernel_filename) { - kernel_start_addr = riscv_calc_kernel_start_addr(&boot_info, - firmware_end_addr); riscv_load_kernel(machine, &boot_info, kernel_start_addr, true, NULL); - kernel_entry = boot_info.image_low_addr; } else { - kernel_entry = 0; + riscv_setup_halting_payload(machine, &boot_info, kernel_start_addr); } + kernel_entry = boot_info.image_low_addr; fdt_load_addr = riscv_compute_fdt_addr(s->memmap[TT_ATL_DDR_LO].base, s->memmap[TT_ATL_DDR_LO].size, -- 2.47.3
