diff options
Diffstat (limited to 'gitlab/issues/target_arm/host_missing/accel_missing/2729.toml')
| -rw-r--r-- | gitlab/issues/target_arm/host_missing/accel_missing/2729.toml | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/gitlab/issues/target_arm/host_missing/accel_missing/2729.toml b/gitlab/issues/target_arm/host_missing/accel_missing/2729.toml new file mode 100644 index 00000000..f7102c10 --- /dev/null +++ b/gitlab/issues/target_arm/host_missing/accel_missing/2729.toml @@ -0,0 +1,84 @@ +id = 2729 +title = "qemu-system-aarch64 -M raspi4b -- no valid DTB provided in x0 register" +state = "closed" +created_at = "2024-12-19T01:59:55.229Z" +closed_at = "2025-02-04T17:26:34.014Z" +labels = ["target: arm"] +url = "https://gitlab.com/qemu-project/qemu/-/issues/2729" +host-os = "Ubuntu 24.04.1 LTS" +host-arch = "x86_64" +qemu-version = "QEMU emulator version 9.2.50 (v9.2.0-319-gca80a5d026)" +guest-os = "custom" +guest-arch = "aarch64" +description = """When starting `qemu-system-aarch64 -M raspi4b`, no valid DTB is provided in x0.""" +reproduce = """Make a simple binary to loop forever + +``` +$ cat loop.c +void _start(void) +{ +\tfor(;;) +\t\t; +} +$ aarch64-linux-gnu-gcc loop.c -nostdlib +$ aarch64-linux-gnu-objcopy -O binary a.out loop.bin +``` + +Start qemu for debugging and start gdb + +``` +$ qemu-system-aarch64 -S -s -M raspi4b -kernel loop.bin +# in another terminal +$ aarch64-linux-gnu-gdb +(gdb) target remote :1234 +Remote debugging using :1234 +warning: No executable has been specified and target does not support +determining executable automatically. Try using the "file" command. +0x0000000000000000 in ?? () +(gdb) watch *$x0 +Watchpoint 3: *$x0 +(gdb) watch $x0 +Watchpoint 4: $x0 +(gdb) x/2x$x0 +0x0:\t0x580000c0\t0xaa1f03e1 +(gdb) si + +Thread 1 hit Watchpoint 3: *$x0 + +Old value = 1476395200 +New value = 5 + +Thread 1 hit Watchpoint 4: $x0 + +Old value = 0 +New value = 256 +0x0000000000000004 in ?? () +(gdb) x/2x$x0 +0x100:\t0x00000005\t0x54410001 +(gdb) si +0x0000000000000008 in ?? () +(gdb) si +0x000000000000000c in ?? () +(gdb) si +0x000000000000000c in ?? () +(gdb) si +0x0000000000000010 in ?? () +(gdb) si +0x0000000000000014 in ?? () +(gdb) si +0x0000000000080000 in ?? () +(gdb) si +0x0000000000000200 in ?? () +(gdb) si +0x0000000000000200 in ?? () +(gdb) si +0x0000000000000200 in ?? () +(gdb) si +0x0000000000000200 in ?? () +(gdb) x/2x$x0 +0x100:\t0x00000005\t0x54410001 +(gdb) +``` + +Note that at no time is a valid DTB provided in x0. I expected to see the DTB magic 0xd00dfeed (or 0xedfe0dd0) at the memory pointed to by x0""" +additional = "n/a" |