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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
architecture: 0.979
x86: 0.943
files: 0.937
performance: 0.870
ppc: 0.856
semantic: 0.837
user-level: 0.821
device: 0.817
graphic: 0.784
vnc: 0.764
boot: 0.760
permissions: 0.759
risc-v: 0.755
network: 0.737
PID: 0.736
hypervisor: 0.729
mistranslation: 0.714
socket: 0.689
register: 0.671
virtual: 0.608
kernel: 0.584
VMM: 0.571
assembly: 0.567
debug: 0.563
peripherals: 0.530
TCG: 0.520
i386: 0.513
arm: 0.496
KVM: 0.464
[Feature request] qemu does not support for Octeon MIPS64 on X86
Description of problem:
I use mips64-octeon-linux-gnu-gcc cross toolchain on X86,and generate binary file.
> mips64-octeon-linux-gnu-gcc hello.c -static
> file a.out
> a.out: ELF 32-bit MSB executable, MIPS, N32 MIPS64 rel2 version 1 (SYSV), statically linked, for GNU/Linux 2.4.0, not stripped
I execute it with mips64-linux-user mode in qemu, it is invalid.
> ./qemu-5.0.0/mips64-linux-user/qemu-mips64 a.out
> a.out: Invalid ELF image for this architecture
when I choose mips-linux-user mode, it regards as illegal instruction.
> ./qemu-5.0.0/mips-linux-user/qemu-mips a.out
> qemu: uncaught target signal 4 (Illegal instruction) - core dumped
> Illegal instruction (core dumped)
I would like to know, is this due to my problem or does qemu not support Octeon MIPS64 on X86?
if qemu has supported Octeon MIPS64 on X86, how can I emulate it.
Probably not, but there may be a workaround. The closest cpu to Octeon that is supported in QEMU is "MIPS64R2-generic".
Please try using switch -cpu MIPS64R2-generic in your QEMU command line.
Also, I think you should use qemu-mipsn32 rather than qemu-mips or qemu-mips64.
I don't have much hope that all this will work, but it is worth trying.
Hi, Lu.
Where can I download Octeon toolchain you used?
I want to try it by myself.
Aleksandar
Was the MIPS64R2-generic good enough for you?
If your file is "ELF 32-bit MSB executable, MIPS, N32 MIPS64 rel2 version 1",
then you have to use the mipsn32-linux-user variant of QEMU (binary 'qemu-mipsn32').
|