qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Darwin/Mac OS X Port


From: Pierre d'Herbemont
Subject: Re: [Qemu-devel] Darwin/Mac OS X Port
Date: Thu, 19 Feb 2004 23:17:21 +0100

Hi!

On 19 févr. 04, at 21:45, Daniel J. Guinan wrote:

I have been looking and tinkering with your OS X port and was not able to get any translation working until I fudged with a couple of things. The most important of those is in vl.c -> search for valloc() -> you will see an attempt to allocate *page_size x all memory* change it to *all memory* and you will be on your way. Here is a log from my changes:

thanks ;) This one would be helpful.

COMMAND LINE: qemu -d -L ../pc-bios -nographic --kernel bzImage --append "console=ttyS0 root=/dev/hda sb=0x220,5,1,5 ide2=noprobe ide3=noprobe ide4=noprobe ide5=noprobe" linux.img

thanks for this one also ;)

Also after reading the output code again, and without knowing x86 assembly, I have been wondering myself about why does the ljmp change the EIP to 0x0 and fetch code from 0xf000. So there might be an issue here.

See:
[snip]
IN:
0x000ffff0:  ljmp   0xf000,0xe05b

AFTER FLAGS OPT:
0x0000: movl_T0_im 0xf000
0x0001: movl_T1_im 0xe05b
0x0002: movl_seg_T0_vm 0xb0
0x0003: movl_T0_T1
0x0004: jmp_T0
0x0005: movl_T0_0
0x0006: exit_tb
0x0007: end

OUT: [size=60]
0x002071f0:  lis        r2,184
0x002071f4:  lwz        r24,-28096(r2)
0x002071f8:  lis        r2,184
0x002071fc:  lwz        r25,-28096(r2)
0x00207200:  lis        r2,184
0x00207204:  clrlwi     r0,r24,16
0x00207208:  lwz        r2,-28096(r2)
0x0020720c:  mr r9,r27
0x00207210:  stwux      r0,r9,r2
0x00207214:  rlwinm     r0,r0,4,0,27
0x00207218:  stw        r0,4(r9)
0x0020721c:  mr r24,r25
0x00207220:  stw        r24,32(r27)
0x00207224:  li r24,0
0x00207228:  blr

Trace 0x002071f0 [0x000ffff0]
EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000600
ESI=00000000 EDI=00000000 EBP=00000000 ESP=00000000
EIP=00000000 EFL=00000002 [-------]    CPL=0 II=0
ES =0000 00000000 0000ffff 00000000
CS =f000 000f0000 0000ffff 00000000
SS =0000 00000000 0000ffff 00000000
DS =0000 00000000 0000ffff 00000000
FS =0000 00000000 0000ffff 00000000
GS =0000 00000000 0000ffff 00000000
LDT=0000 00000000 0000ffff 00008000
TR =0000 00000000 0000ffff 00008000
GDT=     00000000 0000ffff
IDT=     00000000 0000ffff
CR0=60000010 CR2=00000000 CR3=00000000 CR4=00000000
CCS=00000000 CCD=00000000 CCO=EFLAGS
----------------

here should be 0x000fe05b or something like that...

IN:
0x000f0000:  pushw  %bp
0x000f0001:  movw   %sp,%bp
0x000f0003:  pushw  %ax
0x000f0004:  pushw  %cx
0x000f0005:  pushw  %es
0x000f0006:  pushw  %di
0x000f0007:  movw   0xa(bp),%cx
0x000f000a:  cmpw   $0x0,%cx
0x000f000d:  je     0xf001f

AFTER FLAGS OPT:
0x0000: movl_T0_EBP
0x0001: movl_A0_ESP
[snip]

I am still fiddling around with it and trying to wrap my head around what Fabrice has done, but will post a diff if anyone wants it.

I am interested about your patch.

Thanks again,

Pierre





reply via email to

[Prev in Thread] Current Thread [Next in Thread]