I've been checking out the pSeries code for AIX boot in qemu in Alexander Graf's repository. I noticed that by commenting out gen_exception_err in: ------- static inline void gen_inval_exception(DisasContext *ctx, uint32_t error)
{ // gen_exception_err(ctx, POWERPC_EXCP_PROGRAM, POWERPC_EXCP_INVAL | error); } ------- And booting the AIX bootfile.exe with the boot flags "-s verbose", this will result in a kernel abend which drops you into the Full-Fledged AIX Debugger!!
You can also pass the boot options "-s trap", which will result in a trap to the kernel debugger immediately at kernel init.
I'm going to be looking at this, and see if I can get further in the bootup!
It appears at this stage AIX is in 64-bit mode, and in the process of initializing the heap!
SLOF ********************************************************************** QEMU Starting Build Date = Jan 12 2012 14:57:59 FW Version = git-ab062ff3b37c3964 Press "s" to enter Open Firmware.
Populating /vdevice methods Populating /vdevice/address@hidden Populating /vdevice/address@hidden VSCSI: Initializing VSCSI: Looking for disks SCSI ID 2 CD-ROM : "QEMU QEMU CD-ROM 1.0."
Populating /vdevice/address@hidden Populating /address@hidden,0 Adapters on 0000000000000000 None No NVRAM common partition, re-initializing... Using default console: /vdevice/address@hidden
Welcome to Open Firmware
Copyright (c) 2004, 2011 IBM Corporation All rights reserved. This program and the accompanying materials are made available under the terms of the BSD License available at http://www.opensource.org/licenses/bsd-license.php
Trying to load: from: disk ... E3405: No such device Trying to load: from: cdrom ... failed to load CHRP boot loader.
E3404: Not a bootable device!
E3407: Load failed
..`. .. ....... .. ...... ....... ..`...`''.`'. .''``````..''. .`''```''`. `''``````
.`` .:' ': `''..... .''. ''` .''..''....... ``.':.';. ``````''`.''. .''. ''``''`````'`
``.':':` .....`''.`'`...... `'`.....`''.`'` .`.`'`` .'`'`````. ``'''''' ``''`'''`. `'`
Type 'boot' and press return to continue booting the system. Type 'reset-all' and press return to reboot the system.
kdb invoked .......... kdb_tty_init done .......... kdb_init_flihs done Real memory size = 1024 M Bytes Model = 0800004C Data cache size = 32 K Bytes Inst cache size = 64 K Bytes .......... kdb_mem_size done
.......... kdb_code_init done Preserving 1823181 bytes of symbol table First symbol __mulh START END <name> 0000000000001000 0000000005770000 start+000FD8 F00000002FF47600 F00000002FFDF9C0 __ublock+000000
000000002FF22FF4 000000002FF22FF8 environ+000000 000000002FF22FF8 000000002FF22FFC errno+000000 F1000F0A00000000 F1000F0A10000000 pvproc+000000 F1000F0A10000000 F1000F0A18000000 pvthread+000000
************* Welcome to KDB *************
Call gimmeabreak... Trying to read invalid spr 280 118 at 0000000000585b40 Trying to read invalid spr 157 09d at 0000000000567474 Trying to read invalid spr 31 01f at 0000000000825f94 Trying to read invalid spr 48 030 at 0000000000825f9c
Trying to read invalid spr 1023 3ff at 00000000005670c8 Trying to read invalid spr 280 118 at 0000000000567650 Trying to read invalid spr 795 31b at 00000000005676b0 Trying to read invalid spr 798 31e at 0000000000567710
Trying to read invalid spr 787 313 at 000000000056789c Trying to read invalid spr 788 314 at 00000000005678f8 Trying to read invalid spr 789 315 at 0000000000567954 Trying to read invalid spr 790 316 at 00000000005679b0
Trying to read invalid spr 791 317 at 0000000000567a0c Trying to read invalid spr 792 318 at 0000000000567a68 Trying to read invalid spr 780 30c at 0000000000567b78 Trying to read invalid spr 781 30d at 0000000000567bd0
Trying to read invalid spr 786 312 at 0000000000567770 Static breakpoint: .gimmeabreak+000000 tweq r8,r8 r8=0 .gimmeabreak+000004 blr <.kdb_init+000234> r3=0
KDB(0)> stat SYSTEM_CONFIGURATION: POWER_PC POWER_7 machine with 0 available CPU(s) (64-bit registers) SYSTEM STATUS: not initialized Trap instruction interrupt.
KDB(0)> exit
h_get_ppp might not be right yet
Trying to write invalid spr 157 09d at 000000000030973c Trying to read invalid spr 31 01f at 00000000007156c4 Trying to write invalid spr 31 01f at 00000000007156d4 Trying to read invalid spr 31 01f at 00000000007156d8
Trying to write invalid spr 31 01f at 00000000007156e8 Trying to read invalid spr 48 030 at 0000000000715718 Trying to write invalid spr 48 030 at 0000000000715728 Trying to read invalid spr 48 030 at 000000000071572c
Trying to write invalid spr 48 030 at 000000000071573c Kernel Abend abend_trap+000000 tweq toc,toc toc=0000000003204598 KDB(0)> stat SYSTEM_CONFIGURATION: POWER_PC POWER_7 machine with 1 available CPU(s) (64-bit registers)
SYSTEM STATUS: sysname... AIX nodename.. nodename release... 1 version... 7 build date Apr 18 2012 build time 18:52:59 label..... 1215C_71F machine... 000000000000 nid....... 00000000 Kernel Abend
age of system: 0 min., 0 sec. xmalloc debug: enabled FRRs active... 0 FRRs started.. 0
CRASH INFORMATION: CPU 0 CSA F00000002FF47600 at time of crash, error code for LEDs: 70000000