[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Qemu-devel] u-boot on 'qemu-system-mips64 -M mips'
From: |
KAWAKATSU, Noritaka |
Subject: |
RE: [Qemu-devel] u-boot on 'qemu-system-mips64 -M mips' |
Date: |
Wed, 23 Jun 2010 16:19:20 +0900 |
I report the workaround for u-boot execution on qemu-system-mips64.
> movn s1,v1,v0
>> From what I understand when reading the mips IV manual, the movn ins
>> is
> only for mips IV / 32bit and not 64bit. Looks like the qemu code has
> been written following this. (This also explains why qemu-system-mips
> is fine and not qemu-system-mips64).
I have rebuilt u-boot by the configuration customed for R4400 architecture:
>From original gcc option script '-march=4kc ..' to '-march=r4400 ..'.
R4400 has inst set without 'movn'.
The binary built by this process runs on
both 'qemu-system-mips' and 'qemu-system-mips64'.
Thank you.
---
Noritaka KAWAKATSU
-----Original Message-----
From: address@hidden
[mailto:address@hidden On Behalf Of KAWAKATSU Noritaka
Sent: Tuesday, June 22, 2010 6:49 PM
To: address@hidden
Subject: Re: [Qemu-devel] u-boot on 'qemu-system-mips64 -M mips'
Thank you for your reply.
> so EPC is set to ffffffffbfc0ee94 which is :
> movn s1,v1,v0
>
>> From what I understand when reading the mips IV manual, the movn ins is >
>> only for mips IV / 32bit and not 64bit. Looks like
the qemu code has > been written following this. (This also explains why
qemu-system-mips is > fine and not qemu-system-mips64).
>
> Arnaud
I understand that the relaation between MIPS32/MIPS64 arch is upper compatible
(from MIPS32 to MIPS64).
I wonder if this fact (the movn ins is only for mips IV / 32bit and not 64bit)
be true, umm.
Please let me know the list of instructions like this (32/64 not compatible) if
you know, or give me a hint to investigate?
Noritata KAWAKATSU.
(2010/06/22 18:09), Arnaud Patard (Rtp) wrote:
> KAWAKATSU Noritaka<address@hidden> writes:
>
>> Hi,
>
>
> Hi,
>>
>> I have built u-boot binary for 'qemu-system-mips -M mips'.
>> It is fine to run ths u-boot binary.
>> But the same u-boot binary does not run on 'qemu-system-mips64 -M mips'.
>>
>> I do not understand what happends on the qemu-mips64 execution.
>> Is this a bug for qemu-system-mips64 ?
>> Or should I build u-boot binary by another configuration?
>>
>> ------
>> * u-boot building steps
>> (1) build the gcc 4.5 cross-compiler for mips from the source.
>> (2) build u-boot(2010.03) by the (1)compiler.
>> (3) copy the u-boot.bin to /usr/share/qemu/mips_bios.bin
>> * qemu(mips) execution command
>> $ qemu-system-mips -L /usr/share/qemu -d in_asm -nographic
>> * get /tmp/qemu.log
>> the execution seems fine.
>>
>> * qemu(mips64) execution command
>> $ qemu-system-mips64 -L /usr/share/qemu -d in_asm -nographic
>> * get /tmp/qemu.log
>> the execution seems not fine. Something is wrong?
>>
>>
>>
>> ----- /tmp/qemu.log (last 10-20 lines) [qemu-system-mips64]
>> IN:
>> 0xffffffffbfc0ee8c: xori v0,v0,0x3d
>> 0xffffffffbfc0ee90: li v1,-1
>> 0xffffffffbfc0ee94: movn s1,v1,v0
>> 0xffffffffbfc0ee98: lw ra,52(sp)
>> 0xffffffffbfc0ee9c: move v0,s1
>> 0xffffffffbfc0eea0: lw s3,48(sp)
>> 0xffffffffbfc0eea4: lw s2,44(sp)
>> 0xffffffffbfc0eea8: lw s1,40(sp)
>> 0xffffffffbfc0eeac: lw s0,36(sp)
>> 0xffffffffbfc0eeb0: jr ra
>> 0xffffffffbfc0eeb4: addiu sp,sp,56
>>
>> helper_raise_exception_err: 20 0
>> do_interrupt enter: PC ffffffffbfc0ee94 EPC 0000000000000000 reserved
>> instruction exception
>> do_interrupt: PC ffffffffbfc00380 EPC ffffffffbfc0ee94 cause 10
>> S 00400002 C 00808428 A 0000000000000000 D 0000000000000000
>
> so EPC is set to ffffffffbfc0ee94 which is :
> movn s1,v1,v0
>
>> From what I understand when reading the mips IV manual, the movn ins
>> is
> only for mips IV / 32bit and not 64bit. Looks like the qemu code has
> been written following this. (This also explains why qemu-system-mips
> is fine and not qemu-system-mips64).
>
>
> Arnaud
>
>
>