summary refs log tree commit diff stats
path: root/results/classifier/118/kernel/2074
blob: 27ff14cab086cf4023c773dd1de7affbb1910077 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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.