Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: Dirk Behme <dirk.behme@googlemail.com>
To: linux-mips@linux-mips.org
Subject: QEMU MIPS user space emulation issue
Date: Mon, 11 Sep 2006 18:07:02 +0200	[thread overview]
Message-ID: <450589A6.5040808@gmail.com> (raw)

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

             reply	other threads:[~2006-09-11 16:07 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-11 16:07 Dirk Behme [this message]
2006-09-11 21:30 ` QEMU MIPS user space emulation issue Thiemo Seufer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=450589A6.5040808@gmail.com \
    --to=dirk.behme@googlemail.com \
    --cc=linux-mips@linux-mips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox