All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.