On 7/5/26 06:38, Nicholas Piggin wrote:
OpenSBI hangs before any console output if the domain init code sees the
next stage is not in an executable region.

If no kernel payload is provided to QEMU, the next stage address is
NULL, and the riscv virt machine memory map ends up covering the 0
address with the catch all S-mode RWX region and so OpenSBI prints
console messages and does not hang until the next stage boot.

The Tenstorrent Atlantis machine address map has RAM starting at 0 and
it loads OpenSBI there, so it is M-mode and not accessible by S-mode,
tripping the early check and hang.

Add a helper to set up a simple payload that gets OpenSBI messages to
console, until OpenSBI can be fixed.

Signed-off-by: Nicholas Piggin <[email protected]>
Reviewed-by: Daniel Henrique Barboza <[email protected]>
Signed-off-by: Joel Stanley <[email protected]>
---
  hw/riscv/tt_atlantis.c | 27 +++++++++++++++++++++++++++
  1 file changed, 27 insertions(+)

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>

Reply via email to