diff options
Diffstat (limited to 'gitlab/issues/target_riscv/host_missing/accel_missing/2074.toml')
| -rw-r--r-- | gitlab/issues/target_riscv/host_missing/accel_missing/2074.toml | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gitlab/issues/target_riscv/host_missing/accel_missing/2074.toml b/gitlab/issues/target_riscv/host_missing/accel_missing/2074.toml new file mode 100644 index 000000000..65dd32935 --- /dev/null +++ b/gitlab/issues/target_riscv/host_missing/accel_missing/2074.toml @@ -0,0 +1,28 @@ +id = 2074 +title = "riscv64 cannot use the mret instruction to jump to the address corresponding to s mode" +state = "closed" +created_at = "2024-01-05T08:17:33.034Z" +closed_at = "2024-01-18T06:49:14.552Z" +labels = ["target: riscv"] +url = "https://gitlab.com/qemu-project/qemu/-/issues/2074" +host-os = "Linux" +host-arch = "x86" +qemu-version = "QEMU emulator version 8.1.90" +guest-os = "coreboot/bios" +guest-arch = "riscv" +description = """I use coreboot to boot my linux kernel.The kernel is copied at 0x82200000,I set reg mepc 0x82200000,and set reg mstatus a00000800. +and I use "mret" instruction so that qemu can jump to 0x82200000 and enter S mode.But some errors happened. +It shows: +[DEBUG] Exception: Instruction access fault +[DEBUG] Hart ID: 0 +[DEBUG] Previous mode: machine +[DEBUG] Bad instruction pc: 0x8103f7c0 +[DEBUG] Bad address: 0x00000000 +[DEBUG] Stored ra: 0x8103f7b8 +[DEBUG] Stored sp: 0x82032f08 +Bad instruction pc: 0x8103f7c0 in my elf file instruction is "mret". +So I can not jump to my kernel's load address. +I think when I use -bios option,my qemu should in M mode.How could I can jump to my mepc address?""" +reproduce = """1.download qemu +2.download coreboot""" +additional = """When I enter qemu with -bios option,I find that the reg mstatus is 0xa0000000.""" |