Some news on 40p emulation: it's possible to launch the AIX kernel debugger under qemu-system-ppc. For some reason the current PowerPC 601 CPU frequency is limited to 7.81 Mhz in the upstream qemu, so it takes more than a hour to load the debugger. But with a small modification it gets to the point within seconds.
The command line:
And after 90 minutes, on the serial line....
It's a pretty neat debugger somewhat similar to Solaris kadb:
/stay tuned
The command line:
$ qemu-system-ppc -M 40p -bios p12h0456.img -hda aix-5.1-cd1.iso -cpu 601
^^^ -cpu 601 is crucial. With the default CPU (604) it just hangs after a greeting.And after 90 minutes, on the serial line....
AIX Version pinmore.c, s.@(#)65 1.1
Instruction Storage Interrupt - PROC [kdb_get_virtual_memory] no real storage @ 646E6D60 KDB(0)> f pvthread+000000 STACK: WARNING: bad IAR: 646E6D60, display stack from LR: 646E6D5D KDB(0)> KDB(0)> dr r0 : 00000000 r1 : 00595910 r2 : 00595C58 r3 : 00000001 r4 : 01C08180 r5 : 00000000 r6 : 00000000 r7 : 00000000 r8 : 00000000 r9 : 00000000 r10 : 00000000 r11 : 00000000 r12 : 646E6D61 r13 : 00606178 r14 : 000000B8 r15 : 00000020 r16 : 00000020 r17 : 0803004D r18 : 005AF0BC r19 : 003FED04 r20 : 00606178 r21 : 00000020 r22 : 00606000 r23 : 00003F50 r24 : 00003F48 r25 : 00003F3C r26 : 00000000 r27 : 63683A2C r28 : 00003A24 r29 : 00003A20 r30 : 00590C70 r31 : 00000000 KDB(0)>
It's a pretty neat debugger somewhat similar to Solaris kadb:
KDB(0)> dc main 40
.main+000000 mflr r0
.main+000004 lwz r3,36E8(toc) 36E8(toc)=NON_DEBUG_AIX
.main+000008 stmw r30,FFFFFFF8(stkp)
.main+00000C stw r0,8(stkp)
.main+000010 li r0,1
.main+000014 stw r0,0(r3) r0=00000001
.main+000018 stwu stkp,FFFFFFC0(stkp)
.main+00001C bl <.kdb_init>
.main+000020 bl <.hardinit>
.main+000024 bl <.vmsi>
.main+000028 bl <.hardinit_defered>
.main+00002C bl <.init_locks>
.main+000030 bl <.init_anyother_locks>
.main+000034 bl <.ios_init>
.main+000038 bl <.kdb_pin_symtable>
.main+00003C bl <.debugger_init>
.main+000040 bl <.kx2init>
.main+000044 bl <.kmem_init>
.main+000048 li r3,B
.main+00004C bl <.i_enable> r3=0000000B
.main+000050 bl <.k_protect>
.main+000054 bl <.wlm_ccb_init>
.main+000058 bl <.strtdisp>
.main+00005C bl <.epost>
.main+000060 li r4,0
.main+000064 lwz r3,13C4(toc) 13C4(toc)=kernel_lock
.main+000068 bl <.lockl>
.main+00006C li r30,0
.main+000070 lwz r3,37EC(toc) 37EC(toc)=init_tbl
/stay tuned
4 comments:
Have you tried loading veneer.exe from Windows NT?
I haven't, but it probably won't work: NT switches the machine into a Big-endian mode, and I think it's only partially implemented.
It's very ineresting!
Hi great reeading your blog
Post a Comment