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
|
[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').
|