[PATCH] docs: platform: update qemu_virt.md

runmin.zhang at ingenic.com runmin.zhang at ingenic.com
Thu Mar 19 05:56:24 PDT 2026


From: Zhang RunMin <runmin.zhang at ingenic.com>

When using GDB for debugging, if FW_TEXT_START is not set to 0x80000000
during compilation, the following error occurs:

Reading symbols from build/platform/generic/firmware/fw_payload.elf...
Remote debugging using localhost:1234
mips_warm_boot ()
    at /home/zrmin/opensbi/platform/generic/mips/mips_warm_boot.S:11
11      j       _start_warm
(gdb) b _start
Breakpoint 1 at 0x0: file /home/zrmin/opensbi/firmware/fw_base.S, line 50.
(gdb) c
Continuing.
Remote connection closed
(gdb)

With FW_TEXT_START=0x80000000, debugging works correctly:
Reading symbols from build/platform/generic/firmware/fw_payload.elf...
Remote debugging using localhost:1234
0x0000000000001000 in ?? ()
(gdb) b _start
Breakpoint 1 at 0x80000000: file /home/zrmin/opensbi/firmware/fw_base.S, line 50.
(gdb) c
Continuing.

Breakpoint 1, _start () at /home/zrmin/opensbi/firmware/fw_base.S:50
50      MOV_3R  s0, a0, s1, a1, s2, a2
(gdb)

This is because QEMU loads OpenSBI at address 0x80000000. When
FW_TEXT_START does not match this address, the debug symbols are
incorrectly offset, causing GDB to fail to set breakpoints properly.

Signed-off-by: Zhang RunMin <runmin.zhang at ingenic.com>
---
 docs/platform/qemu_virt.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/docs/platform/qemu_virt.md b/docs/platform/qemu_virt.md
index fd87ee5a..4513df8b 100644
--- a/docs/platform/qemu_virt.md
+++ b/docs/platform/qemu_virt.md
@@ -158,6 +158,9 @@ qemu-system-riscv32 -M virt -m 256M -nographic \
 Debugging with GDB
 ------------------
 
+Note: the command line examples here assume that OpenSBI was compiled using
+the `DEBUG=1 FW_TEXT_START=0x80000000` configuration.
+
 In a first console start OpenSBI with QEMU:
 
 ```
-- 
2.43.0




More information about the opensbi mailing list