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


Reply via email to