QEMU MIPS user space emulation issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

we have an issue using QEMUs MIPS user space emulation running programs compiled with mipsel glibc based crosscompiler [1]. Because I'm not sure if it's a QEMU or toolchain (or anything else?) issue, I'd like to ask the experts here.

Up to now, the conclusion from [1] is that QEMUs mipsel user space emulation fails executing a simple hello world program if compiled with glibc based mipsel toolchain build with crosstool and linked dynamically. Compiled with toolchain using uClib or same program linked statically (-static) is okay.

For example, hello world compiled with mipsel toolchain build with crosstool-0.42 configuration

cat mipsel.dat gcc-3.4.1-glibc-2.3.2.dat

fails if dynamically linked. As mentioned above, using -static is okay.

If failing, debug output shows that code

...
0x401fa00c:  lw t9,-32600(gp)
0x401fa010:  addiu      a0,a0,30820
0x401fa014:  addiu      a1,a1,29452
0x401fa018:  addiu      a3,a3,25856
0x401fa01c:  jalr       t9
0x401fa020:  li a2,161
...

fails because it seems that it gets a wrong jump address in t9:

pc=0x00012a2c HI=0x00000000 LO=0x00000000 ds 0003 00000000 0
GPR00: r0 00000000 at 00000000 v0 401f60d4 v1 00000008
GPR04: a0 00017864 a1 0001730c a2 000000a1 a3 00016500
GPR08: t0 90000000 t1 401f6000 t2 40000000 t3 6fffffff
GPR12: t4 70000053 t5 401f3c20 t6 401f3f20 t7 00000063
GPR16: s0 6fffff72 s1 00000000 s2 00000000 s3 00000000
GPR20: s4 00000000 s5 00000000 s6 00000000 s7 00000000
GPR24: t8 6ffffdff t9 00012a2c k0 00000000 k1 00000000
GPR28: gp 40257020 sp 401f3c08 s8 00000000 ra 401fa024
CP0 Status 0x30400014 Cause 0x00000000 EPC 0x00000000
Config0 0x80000082 Config1 0x1e190c8b LLAddr 0x00000000
CP1 FCR0 0x00000110 FCR31 0x00000000 SR.FR 0
...
cpu_mips_handle_mmu_fault pc 00012a2c ad 00012a2c rw 0 is_user 1 smmu 0

Any ideas or hints where to search?

Many thanks

Dirk

[1] Thread "MIPS little endian user space emulation" on QEMU devel mailinglist
http://lists.gnu.org/archive/html/qemu-devel/2006-09/msg00090.html


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux