kernel: 0.902 debug: 0.848 graphic: 0.839 device: 0.680 performance: 0.679 boot: 0.672 architecture: 0.650 risc-v: 0.549 semantic: 0.448 x86: 0.416 peripherals: 0.375 user-level: 0.371 permissions: 0.314 PID: 0.280 ppc: 0.246 mistranslation: 0.233 register: 0.228 i386: 0.213 virtual: 0.210 vnc: 0.171 socket: 0.147 network: 0.129 hypervisor: 0.118 TCG: 0.113 VMM: 0.102 assembly: 0.101 KVM: 0.093 arm: 0.072 files: 0.063 riscv64 cannot use the mret instruction to jump to the address corresponding to s mode Description of problem: 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? Steps to reproduce: 1.download qemu 2.download coreboot Additional information: When I enter qemu with -bios option,I find that the reg mstatus is 0xa0000000.