Hello, I would like to help debug booting AIX with qemu-system-ppc. Here is what I have so far, please let me know what further information I should provide to aid in pinpointing where the following hang occurs:
==================================================== Booting AIX in QEMU+OpenBIOS (CPU type PowerPC,750) ====================================================
------------------------------------------------------------------------------- Welcome to AIX. boot image timestamp: 00:39 35/2D The current time and date: 01:10:58 04/25/2011 processor count: 1; memory size: 2047MB; kernel size: 2293829 boot device: cd:\ppc\chrp\bootfile.exe [hangs here...]
============ Environment ============
OpenBIOS: SVN snapshot as of 2011-04-25 QEMU: Git snapshot as of 2011-04-25 Host OS: GNU/Linux x86_64 Guest OS: AIX V6.1 Cross-Compiler: powerpc-unknown-linux-gnu-gcc (GCC) 4.6.0 ================= OpenBIOS config ================= <!-- Kernel Debugging --> <option name="CONFIG_DEBUG" type="boolean" value="true"/> <option name="CONFIG_DEBUG_BOOT" type="boolean" value="false"/> <option name="CONFIG_DEBUG_DSTACK" type="boolean" value="false"/> <option name="CONFIG_DEBUG_RSTACK" type="boolean" value="false"/> <option name="CONFIG_DEBUG_DICTIONARY" type="boolean" value="false"/> <option name="CONFIG_DEBUG_INTERNAL" type="boolean" value="false"/> <option name="CONFIG_DEBUG_INTERPRETER" type="boolean" value="false"/> <option name="CONFIG_DEBUG_CONSOLE" type="boolean" value="true"/> <option name="CONFIG_DEBUG_CONSOLE_SERIAL" type="boolean" value="true"/> <option name="CONFIG_SERIAL_PORT" type="integer" value="0"/> <option name="CONFIG_SERIAL_SPEED" type="integer" value="115200"/> <option name="CONFIG_DEBUG_CONSOLE_VGA" type="boolean" value="true"/> <option name="CONFIG_DEBUG_OFMEM" type="boolean" value="false"/> <!-- Module Configuration --> <option name="CONFIG_CMDLINE" type="boolean" value="true"/> <option name="CONFIG_DEBLOCKER" type="boolean" value="true"/> <option name="CONFIG_FONT_8X8" type="boolean" value="true"/> <option name="CONFIG_FONT_8X16" type="boolean" value="false"/> <option name="CONFIG_OFMEM" type="boolean" value="true"/> <option name="CONFIG_OFMEM_MALLOC_ALIGN" type="integer" value="4"/> <option name="CONFIG_VGA_WIDTH" type="integer" value="800"/> <option name="CONFIG_VGA_HEIGHT" type="integer" value="600"/> <option name="CONFIG_VGA_DEPTH" type="integer" value="8"/> <option name="CONFIG_LOADER_AOUT" type="boolean" value="false"/> <option name="CONFIG_LOADER_BOOTINFO" type="boolean" value="true"/> <option name="CONFIG_LOADER_ELF" type="boolean" value="true"/> <option name="CONFIG_LOADER_FCODE" type="boolean" value="false"/> <option name="CONFIG_LOADER_FORTH" type="boolean" value="false"/> <option name="CONFIG_LOADER_XCOFF" type="boolean" value="true"/> <!-- Filesystem Configuration --> <option name="CONFIG_DISK_LABEL" type="boolean" value="true"/> <option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/> <option name="CONFIG_MAC_PARTS" type="boolean" value="true"/> <option name="CONFIG_DEBUG_MAC_PARTS" type="boolean" value="false"/> <option name="CONFIG_PC_PARTS" type="boolean" value="true"/> <option name="CONFIG_HFS" type="boolean" value="true"/> <option name="CONFIG_HFSP" type="boolean" value="true"/> <option name="CONFIG_ISO9660" type="boolean" value="true"/> <option name="CONFIG_EXT2" type="boolean" value="true"/> <option name="CONFIG_GRUBFS" type="boolean" value="true"/> <option name="CONFIG_FSYS_EXT2FS" type="boolean" value="false"/> <option name="CONFIG_FSYS_FAT" type="boolean" value="false"/> <option name="CONFIG_FSYS_JFS" type="boolean" value="true"/> <option name="CONFIG_FSYS_MINIX" type="boolean" value="false"/> <option name="CONFIG_FSYS_REISERFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_XFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_UFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_ISO9660" type="boolean" value="false"/> <option name="CONFIG_FSYS_FFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_VSTAFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_NTFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_AFFS" type="boolean" value="false"/> <option name="CONFIG_DEBUG_FS" type="boolean" value="false"/> <!-- Miscellaneous --> <option name="CONFIG_PPC_64BITSUPPORT" type="boolean" value="true"/> <option name="CONFIG_LINUXBIOS" type="boolean" value="false"/> <option name="CONFIG_RTAS" type="boolean" value="true"/> <!-- Drivers --> <option name="CONFIG_DRIVER_PCI" type="boolean" value="true"/> <option name="CONFIG_DEBUG_PCI" type="boolean" value="false"/> <option name="CONFIG_DRIVER_IDE" type="boolean" value="true"/> <option name="CONFIG_IDE_NUM_CHANNELS" type="integer" value="2"/> <option name="CONFIG_IDE_FIRST_UNIT" type="integer" value="1"/> <option name="CONFIG_IDE_DEV_NAME" type="string" value="ata-%d"/> <option name="CONFIG_IDE_DEV_TYPE" type="string" value="ata"/> <option name="CONFIG_DEBUG_IDE" type="boolean" value="false"/> <option name="CONFIG_DRIVER_ADB" type="boolean" value="true"/> <option name="CONFIG_DRIVER_VGA" type="boolean" value="true"/> <option name="CONFIG_DRIVER_MACIO" type="boolean" value="true"/> <option name="CONFIG_DRIVER_ESCC" type="boolean" value="true"/> <option name="CONFIG_DRIVER_FW_CFG" type="boolean" value="true"/> <option name="CONFIG_FW_CFG_ADDR" type="integer" value="0xf0000510"/> =========================================== OpenBIOS debug (built with CONFIG_DEBUG_*) ===========================================
>R: 7fb5bc80 >R: 7fb5bc24 >R: 7fb5bba0 >R: 7fb5bbd8 IDE - ob_ide_read_blocks: ob_ide_read_blocks 7fb9f0a8 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready R>: 7fb5bbd8 R>: 7fb5bba0 R>: 7fb5bc24 R>: 7fb5bc80 R>: 0 R>: 14 R>: 4 R>: 0 >R: fff5648c >R: b R>: b R>: fff5648c >R: fff5646c >R: 9 R>: 9 R>: fff5646c >R: fff56344 >R: c R>: c R>: fff56344 >R: fff56324 >R: 7 R>: 7 R>: fff56324 >R: fff4fd44 >R: b R>: b R>: fff4fd44 >R: fff4fd14 >R: 4 R>: 4 R>: fff4fd14 >R: fff4fcd4 >R: 9 R>: 9 R>: fff4fcd4 >R: fff4fca8 >R: c R>: c R>: fff4fca8 >R: fff4fc1c >R: 9 R>: 9 R>: fff4fc1c >R: fff4fbf0 >R: 5 R>: 5 >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b R>: fff3df68 R>: 1 R>: 5 >R: fff3df68 R>: fff4fbf0 >R: fff4fbc8 >R: 5 R>: 5 >R: 7b R>: 7b >R: 7b R>: 7b R>: fff3df68 R>: 0 R>: 5 >R: fff3df68 R>: fff4fbc8 >R: fff4fba4 >R: 4 R>: 4 R>: fff4fba4 >R: fff4fb50 >R: 7 R>: 7 R>: fff4fb50 >R: fff4faf4 >R: 5 R>: 5 >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b R>: fff3df68 R>: 2 R>: 5 >R: fff3df68 R>: fff4faf4 >R: fff4faa4 >R: 4 R>: 4 R>: fff4faa4 >R: fff4fa44 >R: 5 R>: 5 >R: 7b R>: 7b >R: 7b R>: 7b R>: fff3df68 R>: 0 R>: 5 >R: fff3df68 R>: fff4fa44 >R: fff4f9e8 >R: 4 R>: 4 R>: fff4f9e8 >R: fff4f9d0 >R: 5 R>: 5 >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b R>: fff4f9d0 >R: 0 >R: 2 >R: 14 R>: fff440e4 >R: fff440f0 >R: 0 >R: 6 >R: 28 >R: 7fb5bc80 >R: fff52d18 >R: 5 R>: 5 >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b R>: fff52d18 R>: 7fb5bc80 >R: 0 R>: 0 R>: 28 R>: 6 R>: 0 >R: 7fb980ac R>: 7fb980ac >R: 0 R>: 0 R>: fff3d44c R>: fff440e4 >R: fff440f0 >R: 0 >R: 6 >R: 28 >R: 7fb5bc24 >R: fff51cb0 >R: 3 R>: 3 R>: fff51cb0 >R: fff51c84 >R: 4 R>: 4 R>: fff51c84 >R: fff51c58 >R: 4 R>: 4 R>: fff51c58 >R: fff51c2c >R: 5 R>: 5 >R: 7b R>: 7b >R: 7b R>: 7b R>: fff3df68 R>: 0 R>: 5 >R: fff3df68 R>: fff51c2c >R: fff51c00 >R: 4 R>: 4 R>: fff51c00 >R: fff51bd4 >R: 4 R>: 4 R>: fff51bd4 >R: fff51ba8 >R: 5 R>: 5 >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b R>: fff51ba8 R>: 7fb5bc24 >R: 0 R>: 0 R>: 28 R>: 6 R>: 0 >R: 7fb980ac R>: 7fb980ac >R: 0 R>: 0 R>: fff3d614 R>: fff3d44c R>: fff440e4 >R: fff440f0 >R: 0 >R: 6 >R: 28 >R: 7fb5bba0 >R: fff54120 >R: c R>: c R>: fff54120 >R: fff540ec >R: a R>: a R>: fff540ec >R: fff540bc >R: b R>: b R>: fff540bc >R: fff54088 >R: 5 R>: 5 >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b R>: fff54088 R>: 7fb5bba0 >R: 0 R>: fff440e4 >R: fff440f0 >R: 7fb5bba0 >R: 7 >R: 30 >R: 7fb5bbd8 >R: fff51b10 >R: 4 R>: 4 R>: fff51b10 >R: fff51ae4 >R: 4 R>: 4 R>: fff51ae4 >R: fff51ab8 >R: 5 R>: 5 >R: 7b R>: 7b >R: 7b R>: 7b R>: fff3df68 R>: 0 R>: 5 >R: fff3df68 R>: fff51ab8 >R: fff51a8c >R: 4 R>: 4 R>: fff51a8c >R: fff51a60 >R: 5 R>: 5 >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b >R: 7b R>: 7b R>: fff51a60 R>: 7fb5bbd8 >R: 7fb5bba0
====================== QEMU debug ====================== (qemu) info registers info registers NIP fff1086c LR fff10844 CTR fff122bc XER 00000000 MSR 00003032 HID0 00000000 HF 00002000 idx 1 TB 00000000 3720793498 DECR 574173816 GPR00 000000007fb9f0a0 000000007fcf7790 0000000000000000 000000007fba29b4 GPR04 000000000000000d 0000000000000000 0000000000000000 0000000000000000 GPR08 0000000000000000 000000007fba29b4 000000000000000c 0000000000000820 GPR12 0000000000000000 0000000000000000 00000000fff393aa 00000000fff3a137 GPR16 00000000fff3741e 0000000004000000 00000000fffbc6cc 00000000fffbcecc GPR20 00000000000030ec 00000000fff37204 00000000fff371f2 00000000fff37172 GPR24 00000000fff371fa 00000000fffbc630 0000000000000001 00000000000444a0 GPR28 0000000000000036 00000000fffc0000 00000000fffc0000 000000007fb9f0a8 CR 48000084 [ G L - - - - L G ] RES ffffffff FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPSCR 00000000 SRR0 fff2bdcc SRR1 00003032 SDR1 7fd00000 (qemu) info cpus info cpus * CPU #0: nip=0xfff1086c thread_id=7838
(qemu) x/20i $pc-4 x/20i $pc-4 0xfff10710: beq- cr7,0xfff10724 0xfff10714: lwz r10,4(r9) 0xfff10718: lwz r11,-4(r31) 0xfff1071c: cmplw cr7,r10,r11 0xfff10720: blt+ cr7,0xfff10704 0xfff10724: stw r9,-8(r31) 0xfff10728: stw r0,0(r3) 0xfff1072c: addi r11,r1,16 0xfff10730: b 0xfff2cb10 0xfff10734: stwu r1,-32(r1) 0xfff10738: mflr r0 0xfff1073c: stmw r29,20(r1) 0xfff10740: mr. r30,r3 0xfff10744: mr r29,r4 0xfff10748: stw r0,36(r1) 0xfff1074c: bne+ 0xfff10760 0xfff10750: mr r3,r4 0xfff10754: bl 0xfff08498 0xfff10758: mr r31,r3 0xfff1075c: b 0xfff107ac
IN: deblk_close 0xfff122bc: stwu r1,-16(r1) 0xfff122c0: mflr r0 0xfff122c4: stw r0,20(r1) 0xfff122c8: lwz r3,24(r3) 0xfff122cc: bl 0xfff084b8
OP: ---- 0xfff122bc movi_i32 access_type,$0x20 movi_i32 tmp1,$0xfffffff0 add_i32 tmp0,r1,tmp1 qemu_st32 r1,tmp0,$0x1 mov_i32 r1,tmp0
---- 0xfff122c0 mov_i32 r0,lr
---- 0xfff122c4 movi_i32 tmp1,$0x14 add_i32 tmp0,r1,tmp1 qemu_st32 r0,tmp0,$0x1
---- 0xfff122c8 movi_i32 tmp1,$0x18 add_i32 tmp0,r3,tmp1 qemu_ld32 r3,tmp0,$0x1
---- 0xfff122cc movi_i32 lr,$0xfff122d0 movi_i32 nip,$0xfff084b8 exit_tb $0x0
OP after liveness analysis: ---- 0xfff122bc movi_i32 access_type,$0x20 movi_i32 tmp1,$0xfffffff0 add_i32 tmp0,r1,tmp1 qemu_st32 r1,tmp0,$0x1 mov_i32 r1,tmp0
---- 0xfff122c0 mov_i32 r0,lr
---- 0xfff122c4 movi_i32 tmp1,$0x14 add_i32 tmp0,r1,tmp1 qemu_st32 r0,tmp0,$0x1
---- 0xfff122c8 movi_i32 tmp1,$0x18 add_i32 tmp0,r3,tmp1 qemu_ld32 r3,tmp0,$0x1
---- 0xfff122cc movi_i32 lr,$0xfff122d0 movi_i32 nip,$0xfff084b8 exit_tb $0x0 end
OUT: [size=252] 0x400eb320: mov 0x4(%r14),%ebp 0x400eb324: lea -0x10(%rbp),%ebx 0x400eb327: mov $0x20,%r12d 0x400eb32d: mov %r12d,0x260(%r14) 0x400eb334: mov %ebx,%esi 0x400eb336: mov %ebx,%edi 0x400eb338: shr $0x7,%esi 0x400eb33b: and $0xfffff003,%edi 0x400eb341: and $0x1fe0,%esi 0x400eb347: lea 0x228c(%r14,%rsi,1),%rsi 0x400eb34f: cmp (%rsi),%edi 0x400eb351: mov %ebx,%edi 0x400eb353: jne 0x400eb361 0x400eb355: add 0xc(%rsi),%rdi 0x400eb359: mov %ebp,%esi 0x400eb35b: bswap %esi 0x400eb35d: mov %esi,(%rdi) 0x400eb35f: jmp 0x400eb36d 0x400eb361: mov %ebp,%esi 0x400eb363: mov $0x1,%edx 0x400eb368: callq 0x57ffa9 0x400eb36d: mov 0x100(%r14),%ebp 0x400eb374: lea 0x14(%rbx),%r12d 0x400eb378: mov %ebp,(%r14) 0x400eb37b: mov %ebx,0x4(%r14) 0x400eb37f: mov %r12d,%esi 0x400eb382: mov %r12d,%edi 0x400eb385: shr $0x7,%esi 0x400eb388: and $0xfffff003,%edi 0x400eb38e: and $0x1fe0,%esi 0x400eb394: lea 0x228c(%r14,%rsi,1),%rsi 0x400eb39c: cmp (%rsi),%edi 0x400eb39e: mov %r12d,%edi 0x400eb3a1: jne 0x400eb3af 0x400eb3a3: add 0xc(%rsi),%rdi 0x400eb3a7: mov %ebp,%esi 0x400eb3a9: bswap %esi 0x400eb3ab: mov %esi,(%rdi) 0x400eb3ad: jmp 0x400eb3bb 0x400eb3af: mov %ebp,%esi 0x400eb3b1: mov $0x1,%edx 0x400eb3b6: callq 0x57ffa9 0x400eb3bb: mov 0xc(%r14),%ebp 0x400eb3bf: lea 0x18(%rbp),%ebx 0x400eb3c2: mov %ebx,%esi 0x400eb3c4: mov %ebx,%edi 0x400eb3c6: shr $0x7,%esi 0x400eb3c9: and $0xfffff003,%edi 0x400eb3cf: and $0x1fe0,%esi 0x400eb3d5: lea 0x2288(%r14,%rsi,1),%rsi 0x400eb3dd: cmp (%rsi),%edi 0x400eb3df: mov %ebx,%edi 0x400eb3e1: jne 0x400eb3ed 0x400eb3e3: add 0x10(%rsi),%rdi 0x400eb3e7: mov (%rdi),%ebp 0x400eb3e9: bswap %ebp 0x400eb3eb: jmp 0x400eb3f9 0x400eb3ed: mov $0x1,%esi 0x400eb3f2: callq 0x57fb92 0x400eb3f7: mov %eax,%ebp 0x400eb3f9: mov %ebp,0xc(%r14) 0x400eb3fd: mov $0xfff084b8,%ebp 0x400eb402: mov %ebp,0x25c(%r14) 0x400eb409: mov $0xfff122d0,%ebp 0x400eb40e: mov %ebp,0x100(%r14) 0x400eb415: xor %eax,%eax 0x400eb417: jmpq 0x11c2bce ============================================= gdb: qemu vl.c ============================================= 1946 const char *gdbstub_dev = NULL; 1947 int i; 1948 int snapshot, linux_boot; 1949 const char *icount_option = NULL; 1950 const char *initrd_filename; 1951 const char *kernel_filename, *kernel_cmdline; 1952 char boot_devices[33] = "cad"; /* default to HD->floppy->CD-ROM */ 1953 DisplayState *ds; 1954 DisplayChangeListener *dcl; 1955 int cyls, heads, secs, translation; 1956 QemuOpts *hda_opts = NULL, *opts; 1957 QemuOptsList *olist; 1958 int optind; 1959 const char *optarg; 1960 const char *loadvm = NULL; 1961 QEMUMachine *machine; 1962 const char *cpu_model; 1963 int tb_size; 1964 const char *pid_file = NULL; 1965 const char *incoming = NULL;
Thank you!
Ken
Hello Kenneth,
Am 25.04.2011 um 07:32 schrieb Kenneth Salerno:
I would like to help debug booting AIX with qemu-system-ppc.
Recent versions of AIX are destined to fail on qemu-system-ppc. You'll need qemu-system-ppc64 and the ppc64 OpenBIOS instead.
Here is what I have so far, please let me know what further information I should provide to aid in pinpointing where the following hang occurs:
==================================================== Booting AIX in QEMU+OpenBIOS (CPU type PowerPC,750) ====================================================
Welcome to AIX. boot image timestamp: 00:39 35/2D The current time and date: 01:10:58 04/25/2011 processor count: 1; memory size: 2047MB; kernel size:
2293829 boot device: cd:\ppc\chrp\bootfile.exe [hangs here...]
I had a version of OpenBIOS on which AIX complains about the 750 and drops back to the prompt.
============ Environment ============
OpenBIOS: SVN snapshot as of 2011-04-25 QEMU: Git snapshot as of 2011-04-25 Host OS: GNU/Linux x86_64 Guest OS: AIX V6.1
Cross-Compiler: powerpc-unknown-linux-gnu-gcc (GCC) 4.6.0
Please see the list archives for info an which ppc64 cross-compilers work and how to build.
================= OpenBIOS config =================
<!-- Kernel Debugging -->
<option name="CONFIG_DEBUG" type="boolean" value="true"/> <option name="CONFIG_DEBUG_BOOT" type="boolean" value="false"/> <option name="CONFIG_DEBUG_DSTACK" type="boolean" value="false"/> <option name="CONFIG_DEBUG_RSTACK" type="boolean" value="false"/> <option name="CONFIG_DEBUG_DICTIONARY" type="boolean" value="false"/> <option name="CONFIG_DEBUG_INTERNAL" type="boolean" value="false"/> <option name="CONFIG_DEBUG_INTERPRETER" type="boolean" value="false"/> <option name="CONFIG_DEBUG_CONSOLE" type="boolean" value="true"/> <option name="CONFIG_DEBUG_CONSOLE_SERIAL" type="boolean" value="true"/> <option name="CONFIG_SERIAL_PORT" type="integer" value="0"/> <option name="CONFIG_SERIAL_SPEED" type="integer" value="115200"/> <option name="CONFIG_DEBUG_CONSOLE_VGA" type="boolean" value="true"/> <option name="CONFIG_DEBUG_OFMEM" type="boolean" value="false"/> <!-- Module Configuration --> <option name="CONFIG_CMDLINE" type="boolean" value="true"/> <option name="CONFIG_DEBLOCKER" type="boolean" value="true"/> <option name="CONFIG_FONT_8X8" type="boolean" value="true"/> <option name="CONFIG_FONT_8X16" type="boolean" value="false"/> <option name="CONFIG_OFMEM" type="boolean" value="true"/> <option name="CONFIG_OFMEM_MALLOC_ALIGN" type="integer" value="4"/> <option name="CONFIG_VGA_WIDTH" type="integer" value="800"/> <option name="CONFIG_VGA_HEIGHT" type="integer" value="600"/> <option name="CONFIG_VGA_DEPTH" type="integer" value="8"/> <option name="CONFIG_LOADER_AOUT" type="boolean" value="false"/> <option name="CONFIG_LOADER_BOOTINFO" type="boolean" value="true"/> <option name="CONFIG_LOADER_ELF" type="boolean" value="true"/> <option name="CONFIG_LOADER_FCODE" type="boolean" value="false"/> <option name="CONFIG_LOADER_FORTH" type="boolean" value="false"/> <option name="CONFIG_LOADER_XCOFF" type="boolean" value="true"/> <!-- Filesystem Configuration --> <option name="CONFIG_DISK_LABEL" type="boolean" value="true"/> <option name="CONFIG_PART_SUPPORT" type="boolean" value="true"/> <option name="CONFIG_MAC_PARTS" type="boolean" value="true"/> <option name="CONFIG_DEBUG_MAC_PARTS" type="boolean" value="false"/> <option name="CONFIG_PC_PARTS" type="boolean" value="true"/> <option name="CONFIG_HFS" type="boolean" value="true"/> <option name="CONFIG_HFSP" type="boolean" value="true"/> <option name="CONFIG_ISO9660" type="boolean" value="true"/>
Use false for ppc64
<option name="CONFIG_EXT2" type="boolean" value="true"/> <option name="CONFIG_GRUBFS" type="boolean" value="true"/> <option name="CONFIG_FSYS_EXT2FS" type="boolean" value="false"/> <option name="CONFIG_FSYS_FAT" type="boolean" value="false"/> <option name="CONFIG_FSYS_JFS" type="boolean" value="true"/> <option name="CONFIG_FSYS_MINIX" type="boolean" value="false"/> <option name="CONFIG_FSYS_REISERFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_XFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_UFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_ISO9660" type="boolean" value="false"/>
Use true for ppc64
<option name="CONFIG_FSYS_FFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_VSTAFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_NTFS" type="boolean" value="false"/> <option name="CONFIG_FSYS_AFFS" type="boolean" value="false"/> <option name="CONFIG_DEBUG_FS" type="boolean" value="false"/> <!-- Miscellaneous --> <option name="CONFIG_PPC_64BITSUPPORT" type="boolean" value="true"/> <option name="CONFIG_LINUXBIOS" type="boolean" value="false"/> <option name="CONFIG_RTAS" type="boolean" value="true"/> <!-- Drivers --> <option name="CONFIG_DRIVER_PCI" type="boolean" value="true"/> <option name="CONFIG_DEBUG_PCI" type="boolean" value="false"/> <option name="CONFIG_DRIVER_IDE" type="boolean" value="true"/> <option name="CONFIG_IDE_NUM_CHANNELS" type="integer" value="2"/> <option name="CONFIG_IDE_FIRST_UNIT" type="integer" value="1"/> <option name="CONFIG_IDE_DEV_NAME" type="string" value="ata-%d"/> <option name="CONFIG_IDE_DEV_TYPE" type="string" value="ata"/> <option name="CONFIG_DEBUG_IDE" type="boolean" value="false"/> <option name="CONFIG_DRIVER_ADB" type="boolean" value="true"/> <option name="CONFIG_DRIVER_VGA" type="boolean" value="true"/> <option name="CONFIG_DRIVER_MACIO" type="boolean" value="true"/> <option name="CONFIG_DRIVER_ESCC" type="boolean" value="true"/> <option name="CONFIG_DRIVER_FW_CFG" type="boolean" value="true"/> <option name="CONFIG_FW_CFG_ADDR" type="integer" value="0xf0000510"/>
Otherwise I don't spot anything unusual in here, a diff would've been more reader-friendly.
=========================================== OpenBIOS debug (built with CONFIG_DEBUG_*) ===========================================
You mean, you built with a different config than the one you posted above??? Anyway, the below debug output is too much and non-telling.
R: 7fb5bc80 R: 7fb5bc24 R: 7fb5bba0 R: 7fb5bbd8
IDE - ob_ide_read_blocks: ob_ide_read_blocks 7fb9f0a8 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready R>: 7fb5bbd8
[...]
Despite the large amounts of debug outputs you didn't mention your command line. A standard -nographic output with the default debug config options would be much more appreciated. As stated earlier elsewhere, SVN HEAD does not yet work for AIX; patches are needed for RTAS (and QEMU).
Regards, Andreas
As stated earlier elsewhere, SVN HEAD does not yet work for AIX; patches are needed for RTAS (and QEMU).
BTW, is probably an off topic on this list, but do you know whether Slimline Open Firmware (http://www.ibm.com/developerworks/power/pa-slof/) under qemu would be an easier way for booting AIX?
Artyom
Am 26.04.2011 um 10:52 schrieb Artyom Tarasenko:
As stated earlier elsewhere, SVN HEAD does not yet work for AIX; patches are needed for RTAS (and QEMU).
BTW, is probably an off topic on this list, but do you know whether Slimline Open Firmware (http://www.ibm.com/developerworks/power/pa-slof/ ) under qemu would be an easier way for booting AIX?
Since we don't have a real IBM machine emulation yet, I haven't played with any real firmware for POWER.
I had inquired whether the recent pSeries patch series would help with AIX emulation but understood it was only used to boot a Linux kernel directly using a special SLOF.
Andreas
Am 25.04.2011 um 19:11 schrieb Andreas Färber:
Am 25.04.2011 um 07:32 schrieb Kenneth Salerno:
==================================================== Booting AIX in QEMU+OpenBIOS (CPU type PowerPC,750) ====================================================
Welcome to AIX. boot image timestamp: 00:39 35/2D The current time and date: 01:10:58 04/25/2011 processor count: 1; memory size: 2047MB; kernel size:
2293829 boot device: cd:\ppc\chrp\bootfile.exe [hangs here...]
I had a version of OpenBIOS on which AIX complains about the 750 and drops back to the prompt.
I'm still seeing the previous behavior on armel host, whereas on ppc64 host using identical OpenBIOS binary and .iso I'm observing the above hang... weird. Rules out an endianness issue.
Andreas
Am 22.05.2011 um 19:37 schrieb Andreas Färber:
Am 25.04.2011 um 19:11 schrieb Andreas Färber:
Am 25.04.2011 um 07:32 schrieb Kenneth Salerno:
==================================================== Booting AIX in QEMU+OpenBIOS (CPU type PowerPC,750) ====================================================
Welcome to AIX. boot image timestamp: 00:39 35/2D The current time and date: 01:10:58 04/25/2011 processor count: 1; memory size: 2047MB; kernel size:
2293829 boot device: cd:\ppc\chrp\bootfile.exe [hangs here...]
I had a version of OpenBIOS on which AIX complains about the 750 and drops back to the prompt.
I'm still seeing the previous behavior on armel host, whereas on ppc64 host using identical OpenBIOS binary and .iso I'm observing the above hang... weird. Rules out an endianness issue.
Hmm, on my OSX/ppc64 system it's being triggered starting with -m 260 (-m 259 last working). Don't have enough memory to cross-check on armel.
Andreas
----- Original Message -----
From: Andreas Färber andreas.faerber@web.de To: The OpenBIOS Mailinglist openbios@openbios.org Cc: Sent: Sunday, May 22, 2011 2:56 PM Subject: Re: [OpenBIOS] Getting Closer With Booting AIX? I Would Like to Help Please.
Am 22.05.2011 um 19:37 schrieb Andreas Färber:
Am 25.04.2011 um 19:11 schrieb Andreas Färber:
Am 25.04.2011 um 07:32 schrieb Kenneth Salerno:
==================================================== Booting AIX in QEMU+OpenBIOS (CPU type PowerPC,750) ====================================================
Welcome to AIX. boot image timestamp: 00:39 35/2D The current time and date: 01:10:58 04/25/2011 processor count: 1; memory size: 2047MB; kernel size: 2293829 boot device: cd:\ppc\chrp\bootfile.exe [hangs here...]
I had a version of OpenBIOS on which AIX complains about the 750 and drops back to the prompt.
I'm still seeing the previous behavior on armel host, whereas on ppc64 host using identical OpenBIOS binary and .iso I'm observing the above hang... weird. Rules out an endianness issue.
Hmm, on my OSX/ppc64 system it's being triggered starting with -m 260 (-m 259 last working). Don't have enough memory to cross-check on armel.
Andreas --OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you
Hi, Andreas. Yes, me too:
Configuration:
OpenBIOS subversion revision 1041 (2011-05-23 13:48:11 EDT) powerpc64-unknown-linux-gnu-gcc 4.6.0, binutils 2.21, glibc 2.13, Linux kernel headers version 2.6.38.2, gmp 5.0.1, mpfr 3.0.1, mpc 0.9 QEMU 0.14.1, MinGW gcc 3.4.4, MinGW zlib 1.2.3-10, Microsoft Windows XP Version 5.1.2600 (sorry, it's my work laptop...) ibmaix.iso = AIX 6.1
OpenBIOS config: KEN <option name="CONFIG_DEBUG_BOOT" type="boolean" value="true"/> --- OLD <option name="CONFIG_DEBUG_BOOT" type="boolean" value="false"/> 14c14 KEN <option name="CONFIG_DEBUG_OFMEM" type="boolean" value="true"/> --- OLD <option name="CONFIG_DEBUG_OFMEM" type="boolean" value="false"/> 42c42 KEN <option name="CONFIG_ISO9660" type="boolean" value="false"/> --- OLD <option name="CONFIG_ISO9660" type="boolean" value="true"/> 47c47 KEN <option name="CONFIG_FSYS_JFS" type="boolean" value="true"/> --- OLD <option name="CONFIG_FSYS_JFS" type="boolean" value="false"/> 52c52 KEN <option name="CONFIG_FSYS_ISO9660" type="boolean" value="true"/> --- OLD <option name="CONFIG_FSYS_ISO9660" type="boolean" value="false"/> 57c57 KEN <option name="CONFIG_DEBUG_FS" type="boolean" value="true"/> --- OLD <option name="CONFIG_DEBUG_FS" type="boolean" value="false"/> 61c61 KEN <option name="CONFIG_RTAS" type="boolean" value="true"/> --- OLD <option name="CONFIG_RTAS" type="boolean" value="false"/> 65c65 KEN <option name="CONFIG_DEBUG_PCI" type="boolean" value="true"/> --- OLD <option name="CONFIG_DEBUG_PCI" type="boolean" value="false"/> 71c71 KEN <option name="CONFIG_DEBUG_IDE" type="boolean" value="true"/> --- OLD <option name="CONFIG_DEBUG_IDE" type="boolean" value="false"/>
QEMU command-line parameters:
./qemu/ppc64-softmmu/qemu-system-ppc64 \ -L ./qemu-$QEMU_VER/pc-bios \ -m 1024 \ -bios ./openbios-devel/obj-ppc64/openbios-qemu.elf \ -drive file=images/aix.img,index=0,media=disk,cache=writeback \ -cdrom images/ibmaix.iso \ -boot d \ -nographic \ -rtc base=localtime,clock=host \ -uuid 17202d0a-45f8-4159-a8e1-78b866f50aa7 \ -serial tcp::9979,server,nowait \ -monitor tcp::9980,server,nowait
Output: =====
ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 IDE - macio_ide_init: ata-1: [io ports 0x808a0000] IDE - macio_ide_init: drive0 [ATA IDE - macio_ide_init: disk]: QEMU HARDDISK ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 IDE - macio_ide_init: ata-2: [io ports 0x808a1000] IDE - macio_ide_init: drive0 [ATAPI IDE - macio_ide_init: cdrom]: QEMU DVD-ROM ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 IDE - macio_ide_init: ata-3: [io ports 0x808a2000] ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 Cannot manage 'OHCI USB controller' PCI device type 'usb': 106b 3f (c 3 10) 0:f.0 - 106b:3f - /pci@0/pci106b,3f - *** missing pci_dev
ob_pci_encode_unit space=0 dev=15 fn=0 buf=f
=== CHANGED === package path old=/pci@0/pci106b,3f new=/pci@0/pci106b,3f@f pci_set_reg reg 00007800 00000000 00000000 00000000 00000000 02007810 00000000 00000000 00000000 00000100 bridge /pci@0 PCI bus primary=0 secondary=0 subordinate=0 setting bus range for /pci@0 PCI device, package handle fff1fd74 bus primary=0 secondary=0 subordinate=0
============================================================= OpenBIOS 1.0 [May 23 2011 17:31] Configuration device id QEMU version 1 machine id 3 CPUs: 1 Memory: 1024M UUID: 17202d0a-45f8-4159-a8e1-78b866f50aa7 CPU type PowerPC,970FX ob_pci_decode_unit idx=000000003fc5a908 ob_pci_decode_unit idx=000000003fc5a908 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5aa10 ob_pci_decode_unit idx=000000003fc5aa10 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5ab38 ob_pci_decode_unit idx=000000003fc5ab38 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5ac40 ob_pci_decode_unit idx=000000003fc5ac40 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5ad48 ob_pci_decode_unit idx=000000003fc5ad48 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5aeb0 ob_pci_decode_unit idx=000000003fc5aeb0 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5afb8 ob_pci_decode_unit idx=000000003fc5afb8 addr=00000000 00000000 00007000
Welcome to OpenBIOS v1.0 built on May 23 2011 17:31 Trying cd:,\:tbxi...
ob_pci_decode_unit idx=000000003fc5b0e8 ob_pci_decode_unit idx=000000003fc5b0e8 addr=00000000 00000000 00007000 IDE - ob_ide_open: opening channel 1070182148 unit 0 IDE DRIVE @3fc9af04: unit: 0 present: 1 type: 2 media: 5 model: QEMU DVD-ROM nr: 2 cyl: 0 head: 0 sect: 0 bs: 2048 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_block_size: ob_ide_block_size: block size 800 IDE - ob_ide_max_transfer: max_transfer f800 IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fc9ca90 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
Probing for jfs Probing for iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Trying jfs Trying iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Mounted iso9660 Path=//:tbxi IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=23 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=23 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
File not found Trying cd:,\ppc\bootinfo.txt...
ob_pci_decode_unit idx=000000003fc5b368 ob_pci_decode_unit idx=000000003fc5b368 addr=00000000 00000000 00007000 IDE - ob_ide_open: opening channel 1070182148 unit 0 IDE DRIVE @3fc9af04: unit: 0 present: 1 type: 2 media: 5 model: QEMU DVD-ROM nr: 2 cyl: 0 head: 0 sect: 0 bs: 2048 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_block_size: ob_ide_block_size: block size 800 IDE - ob_ide_max_transfer: max_transfer f800 IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fc9ca90 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
Probing for jfs Probing for iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Trying jfs Trying iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Mounted iso9660 Path=/ppc/bootinfo.txt IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=23 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=23 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=87 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=87 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready ob_pci_decode_unit idx=000000003fc5b5d8 ob_pci_decode_unit idx=000000003fc5b5d8 addr=00000000 00000000 00007000 IDE - ob_ide_open: opening channel 1070182148 unit 0 IDE DRIVE @3fc9af04: unit: 0 present: 1 type: 2 media: 5 model: QEMU DVD-ROM nr: 2 cyl: 0 head: 0 sect: 0 bs: 2048 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_block_size: ob_ide_block_size: block size 800 IDE - ob_ide_max_transfer: max_transfer f800 IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fc9ca90 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
Probing for jfs Probing for iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Trying jfs Trying iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Mounted iso9660 Path=/ppc/bootinfo.txt IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=23 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=23 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=87 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=87 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 4000000 block=349361 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=349361 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
ob_pci_decode_unit idx=000000003fc5b820 ob_pci_decode_unit idx=000000003fc5b820 addr=00000000 00000000 00007000 IDE - ob_ide_open: opening channel 1070182148 unit 0 IDE DRIVE @3fc9af04: unit: 0 present: 1 type: 2 media: 5 model: QEMU DVD-ROM nr: 2 cyl: 0 head: 0 sect: 0 bs: 2048 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_block_size: ob_ide_block_size: block size 800 IDE - ob_ide_max_transfer: max_transfer f800 IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fc9ca90 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
Probing for jfs Probing for iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Trying jfs Trying iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Mounted iso9660 Path=/ppc/chrp/bootfile.exe IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=23 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=23 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=87 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=87 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=88 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=88 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=356944 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready OFMEM: ofmem_claim 0000412c 00000040 00000000 OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00001000 mode 00000002 OFMEM: ofmem_claim 0000416c 00ecc600 00000000 OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00ecd000 mode 00000002 OFMEM: ofmem_claim 0fe00000 00200000 00000000 OFMEM: ofmem_map_page_range 0fe00000 -> 000000000fe00000 00200000 mode 00000002
------------------------------------------------------------------------------- Welcome to AIX. boot image timestamp: 00:39 35/2D
ob_pci_encode_unit space=0 dev=14 fn=0 buf=e ob_pci_decode_unit idx=000000003fc5ba68 ob_pci_decode_unit idx=000000003fc5ba68 addr=00000000 00000000 00007000
NULL ihandle The current time and date: 00:00:00 228784/00/0008 processor count: 1; memory size: 1024MB; kernel size: 2293829 boot device: cd:\ppc\chrp\bootfile.exe
ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5bb08 ob_pci_decode_unit idx=000000003fc5bb08 addr=00000000 00000000 00007000 IDE - ob_ide_open: opening channel 1070182148 unit 0 IDE DRIVE @3fc9af04: unit: 0 present: 1 type: 2 media: 5 model: QEMU DVD-ROM nr: 2 cyl: 0 head: 0 sect: 0 bs: 2048 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_block_size: ob_ide_block_size: block size 800 IDE - ob_ide_max_transfer: max_transfer f800 IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Probing for jfs Probing for iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=17 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=17 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[hangs here]
QEMU debugging: ============= info registers NIP 00000000fff91ac4 LR 00000000fff91aa8 CTR 00000000fff93a00 XER 0000000020000000 MSR 0000000000003032 HID0 0000000060000000 HF 0000000000002000 idx 1 TB 00000001 5028899818 DECR 3561034911 GPR00 000000003fca1764 000000003fdf69e0 00000000fffc8900 000000003fc9e0ac GPR04 00000000fffc2088 000000003fc5bc68 00000000fffc2860 0000000000044200 GPR08 0000000000000002 000000003fc9e0ac 0000000000000024 0000000000000810 GPR12 00000000000088ac 0000000000000000 00000000fffb7839 00000000fffb9293 GPR16 00000000fffb9fae 00000000fffb783c 0000000004000000 00000000fffc16b8 GPR20 00000000fffc1634 00000000fffc8900 00000000fffc1634 00000000fffb7640 GPR24 00000000fffb762e 00000000fffb75ae 00000000fffb7636 00000000fffb763b GPR28 00000000fffb8653 0000000000000027 0000000000000027 000000003fca1774 CR 48000088 [ G L - - - - L L ] RES ffffffffffffffff FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPSCR 00000000 SRR0 00000000fffab188 SRR1 0000000000003032 SDR1 000000003fe00000
(qemu) info registers NIP 00000000fff91ac4 LR 00000000fff91aa8 CTR 00000000fff93a00 XER 0000000020000000 MSR 0000000000003032 HID0 0000000060000000 HF 0000000000002000 idx 1 TB 00000001 5402143624 DECR 3187791105 GPR00 000000003fca1764 000000003fdf69e0 00000000fffc8900 000000003fc9e0ac GPR04 00000000fffc2088 000000003fc5bc68 00000000fffc2860 0000000000044200 GPR08 0000000000000002 000000003fc9e0ac 0000000000000024 0000000000000810 GPR12 00000000000088ac 0000000000000000 00000000fffb7839 00000000fffb9293 GPR16 00000000fffb9fae 00000000fffb783c 0000000004000000 00000000fffc16b8 GPR20 00000000fffc1634 00000000fffc8900 00000000fffc1634 00000000fffb7640 GPR24 00000000fffb762e 00000000fffb75ae 00000000fffb7636 00000000fffb763b GPR28 00000000fffb8653 0000000000000027 0000000000000027 000000003fca1774 CR 48000088 [ G L - - - - L L ] RES ffffffffffffffff FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPSCR 00000000 SRR0 00000000fffab188 SRR1 0000000000003032 SDR1 000000003fe00000
(qemu) x/20i $pc-4 0x00000000fff91ad0: beq- cr7,0xfff91ae4 0x00000000fff91ad4: lwz r10,8(r9) 0x00000000fff91ad8: lwz r11,-8(r31) 0x00000000fff91adc: cmplw cr7,r10,r11 0x00000000fff91ae0: blt+ cr7,0xfff91ac4 0x00000000fff91ae4: std r9,-16(r31) 0x00000000fff91ae8: std r0,0(r3) 0x00000000fff91aec: addi r1,r1,128 0x00000000fff91af0: b 0xfffac288 0x00000000fff91af4: .long 0x0 0x00000000fff91af8: .long 0x1 0x00000000fff91afc: lwz r0,0(r1) 0x00000000fff91b00: mflr r0 0x00000000fff91b04: bl 0xfffac21c 0x00000000fff91b08: mr. r30,r3 0x00000000fff91b0c: stdu r1,-144(r1) 0x00000000fff91b10: mr r29,r4 0x00000000fff91b14: bne+ 0xfff91b2c 0x00000000fff91b18: extsw r3,r4 0x00000000fff91b1c: bl 0xfff885e8
(qemu) info cpus * CPU #0: nip=0x00000000fff91ac4
And by the way, while we're on the subject, can someone please look into this change I always have to make to get OpenBIOS ppc64 to compile? :)
--- arch/ppc/qemu/methods.c.ORIG 2011-05-23 14:00:23.832161400 -0400 +++ arch/ppc/qemu/methods.c 2011-05-23 14:00:36.769661400 -0400 @@ -38,7 +38,7 @@ rtas_instantiate( void ) { ucell physbase = POP(); - ucell s=0x1000, size = (ucell)of_rtas_end - (ucell)of_rtas_start; + ucell s=0x1000, size = (ducell)of_rtas_end - (ducell)of_rtas_start; unsigned long virt; while( s < size )
Regards,
Ken
On Mon, May 23, 2011 at 9:08 PM, Kenneth Salerno kennethsalerno@yahoo.com wrote:
----- Original Message -----
From: Andreas Färber andreas.faerber@web.de To: The OpenBIOS Mailinglist openbios@openbios.org Cc: Sent: Sunday, May 22, 2011 2:56 PM Subject: Re: [OpenBIOS] Getting Closer With Booting AIX? I Would Like to Help Please.
Am 22.05.2011 um 19:37 schrieb Andreas Färber:
Am 25.04.2011 um 19:11 schrieb Andreas Färber:
Am 25.04.2011 um 07:32 schrieb Kenneth Salerno:
==================================================== Booting AIX in QEMU+OpenBIOS (CPU type PowerPC,750) ====================================================
Welcome to AIX. boot image timestamp: 00:39 35/2D The current time and date: 01:10:58 04/25/2011 processor count: 1; memory size: 2047MB; kernel size: 2293829 boot device: cd:\ppc\chrp\bootfile.exe [hangs here...]
I had a version of OpenBIOS on which AIX complains about the 750 and drops back to the prompt.
I'm still seeing the previous behavior on armel host, whereas on ppc64 host using identical OpenBIOS binary and .iso I'm observing the above hang... weird. Rules out an endianness issue.
Hmm, on my OSX/ppc64 system it's being triggered starting with -m 260 (-m 259 last working). Don't have enough memory to cross-check on armel.
Andreas --OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you
Hi, Andreas. Yes, me too:
Configuration:
OpenBIOS subversion revision 1041 (2011-05-23 13:48:11 EDT) powerpc64-unknown-linux-gnu-gcc 4.6.0, binutils 2.21, glibc 2.13, Linux kernel headers version 2.6.38.2, gmp 5.0.1, mpfr 3.0.1, mpc 0.9 QEMU 0.14.1, MinGW gcc 3.4.4, MinGW zlib 1.2.3-10, Microsoft Windows XP Version 5.1.2600 (sorry, it's my work laptop...) ibmaix.iso = AIX 6.1
OpenBIOS config: KEN <option name="CONFIG_DEBUG_BOOT" type="boolean" value="true"/> --- OLD <option name="CONFIG_DEBUG_BOOT" type="boolean" value="false"/> 14c14 KEN <option name="CONFIG_DEBUG_OFMEM" type="boolean" value="true"/> --- OLD <option name="CONFIG_DEBUG_OFMEM" type="boolean" value="false"/> 42c42 KEN <option name="CONFIG_ISO9660" type="boolean" value="false"/> --- OLD <option name="CONFIG_ISO9660" type="boolean" value="true"/> 47c47 KEN <option name="CONFIG_FSYS_JFS" type="boolean" value="true"/> --- OLD <option name="CONFIG_FSYS_JFS" type="boolean" value="false"/> 52c52 KEN <option name="CONFIG_FSYS_ISO9660" type="boolean" value="true"/> --- OLD <option name="CONFIG_FSYS_ISO9660" type="boolean" value="false"/> 57c57 KEN <option name="CONFIG_DEBUG_FS" type="boolean" value="true"/> --- OLD <option name="CONFIG_DEBUG_FS" type="boolean" value="false"/> 61c61 KEN <option name="CONFIG_RTAS" type="boolean" value="true"/> --- OLD <option name="CONFIG_RTAS" type="boolean" value="false"/> 65c65 KEN <option name="CONFIG_DEBUG_PCI" type="boolean" value="true"/> --- OLD <option name="CONFIG_DEBUG_PCI" type="boolean" value="false"/> 71c71 KEN <option name="CONFIG_DEBUG_IDE" type="boolean" value="true"/> --- OLD <option name="CONFIG_DEBUG_IDE" type="boolean" value="false"/>
QEMU command-line parameters:
./qemu/ppc64-softmmu/qemu-system-ppc64 \ -L ./qemu-$QEMU_VER/pc-bios \ -m 1024 \ -bios ./openbios-devel/obj-ppc64/openbios-qemu.elf \ -drive file=images/aix.img,index=0,media=disk,cache=writeback \ -cdrom images/ibmaix.iso \ -boot d \ -nographic \ -rtc base=localtime,clock=host \ -uuid 17202d0a-45f8-4159-a8e1-78b866f50aa7 \ -serial tcp::9979,server,nowait \ -monitor tcp::9980,server,nowait
Output:
ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 IDE - macio_ide_init: ata-1: [io ports 0x808a0000] IDE - macio_ide_init: drive0 [ATA IDE - macio_ide_init: disk]: QEMU HARDDISK ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 IDE - macio_ide_init: ata-2: [io ports 0x808a1000] IDE - macio_ide_init: drive0 [ATAPI IDE - macio_ide_init: cdrom]: QEMU DVD-ROM ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 IDE - macio_ide_init: ata-3: [io ports 0x808a2000] ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 Cannot manage 'OHCI USB controller' PCI device type 'usb': 106b 3f (c 3 10) 0:f.0 - 106b:3f - /pci@0/pci106b,3f - *** missing pci_dev
ob_pci_encode_unit space=0 dev=15 fn=0 buf=f
=== CHANGED === package path old=/pci@0/pci106b,3f new=/pci@0/pci106b,3f@f pci_set_reg reg 00007800 00000000 00000000 00000000 00000000 02007810 00000000 00000000 00000000 00000100 bridge /pci@0 PCI bus primary=0 secondary=0 subordinate=0 setting bus range for /pci@0 PCI device, package handle fff1fd74 bus primary=0 secondary=0 subordinate=0
============================================================= OpenBIOS 1.0 [May 23 2011 17:31] Configuration device id QEMU version 1 machine id 3 CPUs: 1 Memory: 1024M UUID: 17202d0a-45f8-4159-a8e1-78b866f50aa7 CPU type PowerPC,970FX ob_pci_decode_unit idx=000000003fc5a908 ob_pci_decode_unit idx=000000003fc5a908 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5aa10 ob_pci_decode_unit idx=000000003fc5aa10 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5ab38 ob_pci_decode_unit idx=000000003fc5ab38 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5ac40 ob_pci_decode_unit idx=000000003fc5ac40 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5ad48 ob_pci_decode_unit idx=000000003fc5ad48 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5aeb0 ob_pci_decode_unit idx=000000003fc5aeb0 addr=00000000 00000000 00007000 ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5afb8 ob_pci_decode_unit idx=000000003fc5afb8 addr=00000000 00000000 00007000
Welcome to OpenBIOS v1.0 built on May 23 2011 17:31 Trying cd:,\:tbxi...
ob_pci_decode_unit idx=000000003fc5b0e8 ob_pci_decode_unit idx=000000003fc5b0e8 addr=00000000 00000000 00007000 IDE - ob_ide_open: opening channel 1070182148 unit 0 IDE DRIVE @3fc9af04: unit: 0 present: 1 type: 2 media: 5 model: QEMU DVD-ROM nr: 2 cyl: 0 head: 0 sect: 0 bs: 2048 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_block_size: ob_ide_block_size: block size 800 IDE - ob_ide_max_transfer: max_transfer f800 IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fc9ca90 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
Probing for jfs Probing for iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Trying jfs Trying iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Mounted iso9660 Path=//:tbxi IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=23 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=23 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
File not found Trying cd:,\ppc\bootinfo.txt...
ob_pci_decode_unit idx=000000003fc5b368 ob_pci_decode_unit idx=000000003fc5b368 addr=00000000 00000000 00007000 IDE - ob_ide_open: opening channel 1070182148 unit 0 IDE DRIVE @3fc9af04: unit: 0 present: 1 type: 2 media: 5 model: QEMU DVD-ROM nr: 2 cyl: 0 head: 0 sect: 0 bs: 2048 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_block_size: ob_ide_block_size: block size 800 IDE - ob_ide_max_transfer: max_transfer f800 IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fc9ca90 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
Probing for jfs Probing for iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Trying jfs Trying iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Mounted iso9660 Path=/ppc/bootinfo.txt IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=23 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=23 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=87 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=87 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready ob_pci_decode_unit idx=000000003fc5b5d8 ob_pci_decode_unit idx=000000003fc5b5d8 addr=00000000 00000000 00007000 IDE - ob_ide_open: opening channel 1070182148 unit 0 IDE DRIVE @3fc9af04: unit: 0 present: 1 type: 2 media: 5 model: QEMU DVD-ROM nr: 2 cyl: 0 head: 0 sect: 0 bs: 2048 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_block_size: ob_ide_block_size: block size 800 IDE - ob_ide_max_transfer: max_transfer f800 IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fc9ca90 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
Probing for jfs Probing for iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Trying jfs Trying iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Mounted iso9660 Path=/ppc/bootinfo.txt IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=23 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=23 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=87 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=87 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 4000000 block=349361 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=349361 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
ob_pci_decode_unit idx=000000003fc5b820 ob_pci_decode_unit idx=000000003fc5b820 addr=00000000 00000000 00007000 IDE - ob_ide_open: opening channel 1070182148 unit 0 IDE DRIVE @3fc9af04: unit: 0 present: 1 type: 2 media: 5 model: QEMU DVD-ROM nr: 2 cyl: 0 head: 0 sect: 0 bs: 2048 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_block_size: ob_ide_block_size: block size 800 IDE - ob_ide_max_transfer: max_transfer f800 IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fc9ca90 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
Probing for jfs Probing for iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Trying jfs Trying iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Mounted iso9660 Path=/ppc/chrp/bootfile.exe IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=23 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=23 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=87 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=87 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc48e8 block=88 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=88 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[snipped by Ken]
IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=356944 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready OFMEM: ofmem_claim 0000412c 00000040 00000000 OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00001000 mode 00000002 OFMEM: ofmem_claim 0000416c 00ecc600 00000000 OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00ecd000 mode 00000002 OFMEM: ofmem_claim 0fe00000 00200000 00000000 OFMEM: ofmem_map_page_range 0fe00000 -> 000000000fe00000 00200000 mode 00000002
Welcome to AIX. boot image timestamp: 00:39 35/2D
ob_pci_encode_unit space=0 dev=14 fn=0 buf=e ob_pci_decode_unit idx=000000003fc5ba68 ob_pci_decode_unit idx=000000003fc5ba68 addr=00000000 00000000 00007000
NULL ihandle The current time and date: 00:00:00 228784/00/0008 processor count: 1; memory size: 1024MB; kernel size: 2293829 boot device: cd:\ppc\chrp\bootfile.exe
ob_pci_decode_unit idx=fffffffffff1fdfc ob_pci_decode_unit idx=fffffffffff1fdfc addr=00000000 00000000 00007000 ob_pci_decode_unit idx=000000003fc5bb08 ob_pci_decode_unit idx=000000003fc5bb08 addr=00000000 00000000 00007000 IDE - ob_ide_open: opening channel 1070182148 unit 0 IDE DRIVE @3fc9af04: unit: 0 present: 1 type: 2 media: 5 model: QEMU DVD-ROM nr: 2 cyl: 0 head: 0 sect: 0 bs: 2048 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_block_size: ob_ide_block_size: block size 800 IDE - ob_ide_max_transfer: max_transfer f800 IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=0 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=0 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready Probing for jfs Probing for iso9660 IDE - ob_ide_read_blocks: ob_ide_read_blocks fffc40e8 block=16 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=16 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready IDE - ob_ide_read_blocks: ob_ide_read_blocks 3fca1774 block=17 n=1 IDE - ob_ide_read_sectors: ob_ide_read_sectors: block=17 sectors=1 IDE - ob_ide_atapi_drive_ready: ob_ide_atapi_drive_ready
[hangs here]
QEMU debugging:
info registers NIP 00000000fff91ac4 LR 00000000fff91aa8 CTR 00000000fff93a00 XER 0000000020000000 MSR 0000000000003032 HID0 0000000060000000 HF 0000000000002000 idx 1 TB 00000001 5028899818 DECR 3561034911 GPR00 000000003fca1764 000000003fdf69e0 00000000fffc8900 000000003fc9e0ac GPR04 00000000fffc2088 000000003fc5bc68 00000000fffc2860 0000000000044200 GPR08 0000000000000002 000000003fc9e0ac 0000000000000024 0000000000000810 GPR12 00000000000088ac 0000000000000000 00000000fffb7839 00000000fffb9293 GPR16 00000000fffb9fae 00000000fffb783c 0000000004000000 00000000fffc16b8 GPR20 00000000fffc1634 00000000fffc8900 00000000fffc1634 00000000fffb7640 GPR24 00000000fffb762e 00000000fffb75ae 00000000fffb7636 00000000fffb763b GPR28 00000000fffb8653 0000000000000027 0000000000000027 000000003fca1774 CR 48000088 [ G L - - - - L L ] RES ffffffffffffffff FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPSCR 00000000 SRR0 00000000fffab188 SRR1 0000000000003032 SDR1 000000003fe00000
(qemu) info registers NIP 00000000fff91ac4 LR 00000000fff91aa8 CTR 00000000fff93a00 XER 0000000020000000 MSR 0000000000003032 HID0 0000000060000000 HF 0000000000002000 idx 1 TB 00000001 5402143624 DECR 3187791105 GPR00 000000003fca1764 000000003fdf69e0 00000000fffc8900 000000003fc9e0ac GPR04 00000000fffc2088 000000003fc5bc68 00000000fffc2860 0000000000044200 GPR08 0000000000000002 000000003fc9e0ac 0000000000000024 0000000000000810 GPR12 00000000000088ac 0000000000000000 00000000fffb7839 00000000fffb9293 GPR16 00000000fffb9fae 00000000fffb783c 0000000004000000 00000000fffc16b8 GPR20 00000000fffc1634 00000000fffc8900 00000000fffc1634 00000000fffb7640 GPR24 00000000fffb762e 00000000fffb75ae 00000000fffb7636 00000000fffb763b GPR28 00000000fffb8653 0000000000000027 0000000000000027 000000003fca1774 CR 48000088 [ G L - - - - L L ] RES ffffffffffffffff FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPSCR 00000000 SRR0 00000000fffab188 SRR1 0000000000003032 SDR1 000000003fe00000
(qemu) x/20i $pc-4 0x00000000fff91ad0: beq- cr7,0xfff91ae4 0x00000000fff91ad4: lwz r10,8(r9) 0x00000000fff91ad8: lwz r11,-8(r31) 0x00000000fff91adc: cmplw cr7,r10,r11 0x00000000fff91ae0: blt+ cr7,0xfff91ac4 0x00000000fff91ae4: std r9,-16(r31) 0x00000000fff91ae8: std r0,0(r3) 0x00000000fff91aec: addi r1,r1,128 0x00000000fff91af0: b 0xfffac288 0x00000000fff91af4: .long 0x0 0x00000000fff91af8: .long 0x1 0x00000000fff91afc: lwz r0,0(r1) 0x00000000fff91b00: mflr r0 0x00000000fff91b04: bl 0xfffac21c 0x00000000fff91b08: mr. r30,r3 0x00000000fff91b0c: stdu r1,-144(r1) 0x00000000fff91b10: mr r29,r4 0x00000000fff91b14: bne+ 0xfff91b2c 0x00000000fff91b18: extsw r3,r4 0x00000000fff91b1c: bl 0xfff885e8
(qemu) info cpus * CPU #0: nip=0x00000000fff91ac4
And by the way, while we're on the subject, can someone please look into this change I always have to make to get OpenBIOS ppc64 to compile? :)
--- arch/ppc/qemu/methods.c.ORIG 2011-05-23 14:00:23.832161400 -0400 +++ arch/ppc/qemu/methods.c 2011-05-23 14:00:36.769661400 -0400 @@ -38,7 +38,7 @@ rtas_instantiate( void ) { ucell physbase = POP(); - ucell s=0x1000, size = (ucell)of_rtas_end - (ucell)of_rtas_start; + ucell s=0x1000, size = (ducell)of_rtas_end - (ducell)of_rtas_start;
I guess this should be something like ptr2cell(of_rtas_end) - ptr2cell(of_rtas_start).
Am 23.05.2011 um 20:08 schrieb Kenneth Salerno:
can someone please look into this change I always have to make to get OpenBIOS ppc64 to compile? :)
--- arch/ppc/qemu/methods.c.ORIG 2011-05-23 14:00:23.832161400 -0400 +++ arch/ppc/qemu/methods.c 2011-05-23 14:00:36.769661400 -0400 @@ -38,7 +38,7 @@ rtas_instantiate( void ) { ucell physbase = POP();
ucell s=0x1000, size = (ucell)of_rtas_end -
(ucell)of_rtas_start;
ucell s=0x1000, size = (ducell)of_rtas_end -
(ducell)of_rtas_start; unsigned long virt;
while( s < size )
First mention thereof, no error here.
Anyway, the real fix will be to change the cell size on ppc64 to 64- bit and to revert any workarounds for 32-bit ucell I applied before. That way, the size of ucell will be large enough for ptrdiff_t, too.
Now that I have QEMU working again for debugging, I'll focus on the cell issue the next days.
If you feel tempted to investigate the magic 260 further that would be appreciated. You posted logs of -m 1024, does it work with -m 259 and break with -m 260? Or is it different numbers on your host?
Cheers, Andreas
----- Original Message -----
From: Andreas Färber andreas.faerber@web.de To: The OpenBIOS Mailinglist openbios@openbios.org Cc: Sent: Monday, May 23, 2011 4:14 PM Subject: Re: [OpenBIOS] Getting Closer With Booting AIX? I Would Like to Help Please.
Am 23.05.2011 um 20:08 schrieb Kenneth Salerno:
can someone please look into this change I always have to make to get OpenBIOS ppc64 to compile? :)
--- arch/ppc/qemu/methods.c.ORIG 2011-05-23 14:00:23.832161400 -0400 +++ arch/ppc/qemu/methods.c 2011-05-23 14:00:36.769661400 -0400 @@ -38,7 +38,7 @@ rtas_instantiate( void ) { ucell physbase = POP(); - ucell s=0x1000, size = (ucell)of_rtas_end - (ucell)of_rtas_start; + ucell s=0x1000, size = (ducell)of_rtas_end - (ducell)of_rtas_start; unsigned long virt;
while( s < size )
First mention thereof, no error here.
Anyway, the real fix will be to change the cell size on ppc64 to 64-bit and to revert any workarounds for 32-bit ucell I applied before. That way, the size of ucell will be large enough for ptrdiff_t, too.
Now that I have QEMU working again for debugging, I'll focus on the cell issue the next days.
If you feel tempted to investigate the magic 260 further that would be appreciated. You posted logs of -m 1024, does it work with -m 259 and break with -m 260? Or is it different numbers on your host?
Cheers, Andreas
--OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you
Andreas, here is the behavior I'm seeing: if I set the memory allocation to 259M, I get this fatal error just as it finishes reading cd:,\ppc\bootinfo.txt:
OFMEM: ofmem_claim 0000412c 00000040 00000000 OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00001000 mode 00000002 OFMEM: ofmem_claim 0000416c 00ecc600 00000000 OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00ecd000 mode 00000002 OFMEM: ofmem_claim 0fe00000 00200000 00000000 OFMEM: **** ofmem_claim failure ***!
This is the moment where it would normally print "Welcome to AIX."
But, if I set the memory to 260, it gets further along, as you stated, however it eventually hangs with the NIP (Next Instruction Pointer register) just flapping between addresses 00000000fff91ac4 and 00000000fff91ad4
Regards,
Ken
On 23/05/11 22:36, Kenneth Salerno wrote:
Andreas, here is the behavior I'm seeing: if I set the memory allocation to 259M, I get this fatal error just as it finishes reading cd:,\ppc\bootinfo.txt:
OFMEM: ofmem_claim 0000412c 00000040 00000000 OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00001000 mode 00000002 OFMEM: ofmem_claim 0000416c 00ecc600 00000000 OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00ecd000 mode 00000002 OFMEM: ofmem_claim 0fe00000 00200000 00000000 OFMEM: **** ofmem_claim failure ***!
Now that's interesting. The above message comes from this snippet of code here (libopenbios/ofmem_common.c:606):
if( !align ) { if( is_free(addr, size, ofmem->virt_range) && is_free(addr, size, ofmem->phys_range) ) { ofmem_claim_phys_( addr, size, 0, 0, 0, 0 ); ofmem_claim_virt_( addr, size, 0, 0, 0, 0 ); virt = phys = addr; } else { OFMEM_TRACE("**** ofmem_claim failure ***!\n"); return -1; } }
So what is happening is that OFMEM is failing to claim either the physical or virtual address for that particular section of memory. Looking further, it seems that the secret is actually in the numbers:
0xfe00000 = 266M
Because in the above code we claim both physical and virtual memory at the same address, then the above will only be valid with at least 260M of RAM.
Now I understand this better, I'm beginning to think that since these routines are called by the MMU node claim functions, in actual fact it is just the virtual address that is being specified and hence we should just allocate the next free physical address rather than creating a 1:1 virtual to physical mapping.
What happens if you change the physical allocation in the section above to the following?
ofmem_claim_phys_( 0, size, PAGE_SIZE, 0, ofmem_arch_get_phys_top(), -1 );
That should pick the next free page-aligned physical region instead, and therefore guarantee that the allocated range will lie within the physical machine RAM.
ATB,
Mark.
----- Original Message -----
From: Mark Cave-Ayland mark.cave-ayland@siriusit.co.uk To: openbios@openbios.org Cc: Sent: Tuesday, May 24, 2011 5:56 AM Subject: Re: [OpenBIOS] Getting Closer With Booting AIX? I Would Like to Help Please.
On 23/05/11 22:36, Kenneth Salerno wrote:
Andreas, here is the behavior I'm seeing: if I set the memory
allocation to 259M, I get this fatal error just as it finishes reading cd:,\ppc\bootinfo.txt:
OFMEM: ofmem_claim 0000412c 00000040 00000000 OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000
00001000 mode 00000002
OFMEM: ofmem_claim 0000416c 00ecc600 00000000 OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000
00ecd000 mode 00000002
OFMEM: ofmem_claim 0fe00000 00200000 00000000 OFMEM: **** ofmem_claim failure ***!
Now that's interesting. The above message comes from this snippet of code here (libopenbios/ofmem_common.c:606):
if( !align ) { if( is_free(addr, size, ofmem->virt_range) && is_free(addr, size, ofmem->phys_range) ) { ofmem_claim_phys_( addr, size, 0, 0, 0, 0 ); ofmem_claim_virt_( addr, size, 0, 0, 0, 0 ); virt = phys = addr; } else { OFMEM_TRACE("**** ofmem_claim failure ***!\n"); return -1; } }
So what is happening is that OFMEM is failing to claim either the physical or virtual address for that particular section of memory. Looking further, it seems that the secret is actually in the numbers:
0xfe00000 = 266M
Because in the above code we claim both physical and virtual memory at the same address, then the above will only be valid with at least 260M of RAM.
Now I understand this better, I'm beginning to think that since these routines are called by the MMU node claim functions, in actual fact it is just the virtual address that is being specified and hence we should just allocate the next free physical address rather than creating a 1:1 virtual to physical mapping.
What happens if you change the physical allocation in the section above to the following?
ofmem_claim_phys_( 0, size, PAGE_SIZE, 0, ofmem_arch_get_phys_top(), -1 );
That should pick the next free page-aligned physical region instead, and therefore guarantee that the allocated range will lie within the physical machine RAM.
ATB,
Mark.
-- Mark Cave-Ayland - Senior Technical Architect PostgreSQL - PostGIS Sirius Corporation plc - control through freedom http://www.siriusit.co.uk t: +44 870 608 0063
Sirius Labs: http://www.siriusit.co.uk/labs
-- OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you
Changed code as requested:
if( !align ) { OFMEM_TRACE("we are here! KPS\n"); if( is_free(addr, size, ofmem->virt_range) && is_free(addr, size, ofmem->phys_range) ) { ofmem_claim_phys_( 0, size, PAGE_SIZE, 0, ofmem_arch_get_phys_top(), -1 ); ofmem_claim_virt_( addr, size, 0, 0, 0, 0 ); virt = phys = addr; } else { OFMEM_TRACE("**** ofmem_claim failure ***!\n"); return -1; }
Same result however:
OFMEM: ofmem_claim 0000412c 00000040 00000000 OFMEM: we are here! KPS OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00001000 mode 00000002 OFMEM: ofmem_claim 0000416c 00ecc600 00000000 OFMEM: we are here! KPS OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00ecd000 mode 00000002 OFMEM: ofmem_claim 0fe00000 00200000 00000000 OFMEM: we are here! KPS OFMEM: **** ofmem_claim failure ***!
Only now when I try -m 260 I'm getting the error either way:
OFMEM: ofmem_claim 0000412c 00000040 00000000 OFMEM: we are here! KPS OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00001000 mode 00000002 OFMEM: ofmem_claim 0000416c 00ecc600 00000000 OFMEM: we are here! KPS OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00ecd000 mode 00000002 OFMEM: ofmem_claim 0fe00000 00200000 00000000 OFMEM: we are here! KPS OFMEM: **** ofmem_claim failure ***!
If I put -m 512 it works:
OFMEM: ofmem_claim 0000412c 00000040 00000000 OFMEM: we are here! KPS OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00001000 mode 00000002 OFMEM: ofmem_claim 0000416c 00ecc600 00000000 OFMEM: we are here! KPS OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00ecd000 mode 00000002 OFMEM: ofmem_claim 0fe00000 00200000 00000000 OFMEM: we are here! KPS OFMEM: ofmem_map_page_range 0fe00000 -> 000000000fe00000 00200000 mode 00000002
If I revert back to the original code, I can use -m 260 again:
OFMEM: ofmem_claim 0000412c 00000040 00000000 OFMEM: we are here! KPS OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00001000 mode 00000002 OFMEM: ofmem_claim 0000416c 00ecc600 00000000 OFMEM: we are here! KPS OFMEM: ofmem_map_page_range 00004000 -> 0000000000004000 00ecd000 mode 00000002 OFMEM: ofmem_claim 0fe00000 00200000 00000000 OFMEM: we are here! KPS OFMEM: ofmem_map_page_range 0fe00000 -> 000000000fe00000 00200000 mode 00000002
Ken
On 24/05/11 14:17, Kenneth Salerno wrote:
Changed code as requested:
if( !align ) { OFMEM_TRACE("we are here! KPS\n"); if( is_free(addr, size, ofmem->virt_range)&& is_free(addr, size, ofmem->phys_range) ) { ofmem_claim_phys_( 0, size, PAGE_SIZE, 0, ofmem_arch_get_phys_top(), -1 ); ofmem_claim_virt_( addr, size, 0, 0, 0, 0 ); virt = phys = addr; } else { OFMEM_TRACE("**** ofmem_claim failure ***!\n"); return -1; }
Same result however:
Hi Ken,
Ah okay - I just realised we also need to remove the is_free() check for the physical region as we are now allocating it ourselves, and plus we now need to set phys. Note that I am currently not able to compile-test until tomorrow so you may need to tweak it a little further in order to get it to work.
This is not ready for commit yet, but the following should hopefully work better:
if( !align ) { if( is_free(addr, size, ofmem->virt_range) ) { phys = ofmem_claim_phys_( addr, size, PAGE_SIZE, 0, ofmem_arch_get_phys_top(), -1 ); ofmem_claim_virt_( addr, size, 0, 0, 0, 0 ); if ( phys == -1 ) { OFMEM_TRACE("ofmem_claim failed\n"); return -1; } } else { OFMEM_TRACE("**** ofmem_claim failure ***!\n"); return -1; } }
ATB,
Mark.
On 24/05/11 15:02, Mark Cave-Ayland wrote:
Hi Ken,
Ah okay - I just realised we also need to remove the is_free() check for the physical region as we are now allocating it ourselves, and plus we now need to set phys. Note that I am currently not able to compile-test until tomorrow so you may need to tweak it a little further in order to get it to work.
This is not ready for commit yet, but the following should hopefully work better:
(cut)
[CC to Andreas]
Okay - something strange is happening here. I tried the attached patch in order to use the standard physical memory range allocator (top down, instead of forcing phys = virt) , but this causes my test Fedora Core 12 PPC32 ISO image to hang just after "returning from prom_init".
Andreas - can you take a look at this and see if I'm doing something obviously wrong in PPC land? I can't understand why changing the underlying physical addresses causes the PPC kernel boot to fail when the same phys -> virt mappings are still in place.
I'm fairly sure this is the right fix and the patch shows no regressions under SPARC32/SPARC64...
ATB,
Mark.
----- Original Message -----
From: Andreas Färber andreas.faerber@web.de To: The OpenBIOS Mailinglist openbios@openbios.org Cc: Sent: Monday, May 23, 2011 4:14 PM Subject: Re: [OpenBIOS] Getting Closer With Booting AIX? I Would Like to Help Please.
Am 23.05.2011 um 20:08 schrieb Kenneth Salerno:
can someone please look into this change I always have to make to get OpenBIOS ppc64 to compile? :)
--- arch/ppc/qemu/methods.c.ORIG 2011-05-23 14:00:23.832161400 -0400 +++ arch/ppc/qemu/methods.c 2011-05-23 14:00:36.769661400 -0400 @@ -38,7 +38,7 @@ rtas_instantiate( void ) { ucell physbase = POP(); - ucell s=0x1000, size = (ucell)of_rtas_end - (ucell)of_rtas_start; + ucell s=0x1000, size = (ducell)of_rtas_end - (ducell)of_rtas_start; unsigned long virt;
while( s < size )
First mention thereof, no error here.
Anyway, the real fix will be to change the cell size on ppc64 to 64-bit and to revert any workarounds for 32-bit ucell I applied before. That way, the size of ucell will be large enough for ptrdiff_t, too.
Now that I have QEMU working again for debugging, I'll focus on the cell issue the next days.
If you feel tempted to investigate the magic 260 further that would be appreciated. You posted logs of -m 1024, does it work with -m 259 and break with -m 260? Or is it different numbers on your host?
Cheers, Andreas
--OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you
The reason no one else has noticed this ucell/ducell compiler warning is because I'm probably the only one using such a recent version of GCC as my cross-compiler. It gets caught with -Werror
Ken
Am 25.04.2011 um 07:32 schrieb Kenneth Salerno:
Hello, I would like to help debug booting AIX with qemu-system-ppc. Here is what I have so far, please let me know what further information I should provide to aid in pinpointing where the following hang occurs:
==================================================== Booting AIX in QEMU+OpenBIOS (CPU type PowerPC,750) ====================================================
Welcome to AIX. boot image timestamp: 00:39 35/2D The current time and date: 01:10:58 04/25/2011 processor count: 1; memory size: 2047MB; kernel size:
2293829 boot device: cd:\ppc\chrp\bootfile.exe [hangs here...]
After some QEMU patching I'm able to confirm this. QEMU hangs a lot on my Darwin/ppc64 host though, not just here. My Haiku/i386 guest keeps hanging for multiple seconds.
It appears there's some QEMU regression, introduced within the last four weeks. Any help bisecting/fixing would be appreciated.
Andreas