PPC emulation loops on booting a FreeBSD kernel

Bug #623852 reported by Nigel Horne on 2010-08-25
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Undecided
Unassigned

Bug Description

Has anyone tried booting FreeBSD8.1-ppc under QEMU (Linux x86_64 host; PPC guest)? I can get Linux/PPC to run fine, and FreeBSD8.1-i386 as well; but there seems to be a problem with whatever the FreeBSD8.1 kernel does, that QEMU's PPC emulation can't handle.

I am using the latest version of QEMU from GIT as of 25/8/10. I don't know how to get a "git commit hash", so I can't quote it.

The kernel starts OK then loops after "Kernel entry at 0x100100 ...".

The command I am running is

qemu-system-ppc -cdrom FreeBSD-8.1-RELEASE-powerpc-disc1.iso -hda freebsd8.1-ppc -m 94 -boot d"

I obtained the kernel from ftp://ftp.freebsd.org/pub/FreeBSD/releases/powerpc/ISO-IMAGES/8.1/FreeBSD-8.1-RELEASE-powerpc-disc1.iso.

Nigel Horne (njh-bandsman) wrote :

I did a "git log" command, and the first line is "2446333cd5b5c985f6517dee7004e542ecacd21c". Is that what you mean by a git hash? If so, I hope it helps.

agraf (agraf) wrote :

It looks like a firmware issue. Please report this to <email address hidden>. You get the output below by using the -nographic option.

>> =============================================================
>> OpenBIOS 1.0 [Aug 17 2010 14:41]
>> Configuration device id QEMU version 1 machine id 2
>> CPUs: 1
>> Memory: 512M
>> UUID: 00000000-0000-0000-0000-000000000000
>> CPU type PowerPC,750
Welcome to OpenBIOS v1.0 built on Aug 17 2010 14:41
Trying cd:,\\:tbxi...
Consoles: Open Firmware console

FreeBSD/powerpc Open Firmware loader, Revision 0.1
(<email address hidden>, Sun Jul 18 04:50:11 UTC 2010)
Memory: 524288KB
Booted from: cd

Loading /boot/defaults/loader.conf
/boot/kernel/kernel data=0x72c6b8+0x3e280 syms=[0x4+0x5ac10+0x4+0x7d8ad]
/
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [/boot/kernel/kernel]...
Kernel entry at 0x100100 ...
panic: OFW translations above 32-bit boundary!
Uptime: 1s

I have been asked to forward this to you - could you help, please?

Thanks!

-Nigel

-------- Original Message --------

It looks like a firmware issue. Please report this to
<email address hidden>. You get the output below by using the -nographic
option.

>> =============================================================
>> OpenBIOS 1.0 [Aug 17 2010 14:41]
>> Configuration device id QEMU version 1 machine id 2
>> CPUs: 1
>> Memory: 512M
>> UUID: 00000000-0000-0000-0000-000000000000
>> CPU type PowerPC,750
Welcome to OpenBIOS v1.0 built on Aug 17 2010 14:41
Trying cd:,\\:tbxi...
Consoles: Open Firmware console

FreeBSD/powerpc Open Firmware loader, Revision 0.1
(<email address hidden>, Sun Jul 18 04:50:11 UTC 2010)
Memory: 524288KB
Booted from: cd

Loading /boot/defaults/loader.conf
/boot/kernel/kernel data=0x72c6b8+0x3e280 syms=[0x4+0x5ac10+0x4+0x7d8ad]
/
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [/boot/kernel/kernel]...
Kernel entry at 0x100100 ...
panic: OFW translations above 32-bit boundary!
Uptime: 1s

--
PPC emulation loops on booting a FreeBSD kernel
https://bugs.launchpad.net/bugs/623852
You received this bug notification because you are a direct subscriber
of the bug.

Status in QEMU: New

Bug description:
Has anyone tried booting FreeBSD8.1-ppc under QEMU (Linux x86_64 host; PPC guest)? I can get Linux/PPC to run fine, and FreeBSD8.1-i386 as well; but there seems to be a problem with whatever the FreeBSD8.1 kernel does, that QEMU's PPC emulation can't handle.

I am using the latest version of QEMU from GIT as of 25/8/10. I don't know how to get a "git commit hash", so I can't quote it.

The kernel starts OK then loops after "Kernel entry at 0x100100 ...".

The command I am running is

qemu-system-ppc -cdrom FreeBSD-8.1-RELEASE-powerpc-disc1.iso -hda freebsd8.1-ppc -m 94 -boot d"

I obtained the kernel from ftp://ftp.freebsd.org/pub/FreeBSD/releases/powerpc/ISO-IMAGES/8.1/FreeBSD-8.1-RELEASE-powerpc-disc1.iso.

To unsubscribe from this bug, go to:
https://bugs.launchpad.net/qemu/+bug/623852/+subscribe

On 25/08/10 10:08, agraf wrote:
> It looks like a firmware issue. Please report this to
> <email address hidden>. You get the output below by using the -nographic
> option.
>
I have done so, though to be honest I don't see that panic even if I use
-nographic, QEMU still silently loops for me.
>>> =============================================================
>>> OpenBIOS 1.0 [Aug 17 2010 14:41]
>>> Configuration device id QEMU version 1 machine id 2
>>> CPUs: 1
>>> Memory: 512M
>>> UUID: 00000000-0000-0000-0000-000000000000
>>> CPU type PowerPC,750
>>>
> Welcome to OpenBIOS v1.0 built on Aug 17 2010 14:41
> Trying cd:,\\:tbxi...
> Consoles: Open Firmware console
>
> FreeBSD/powerpc Open Firmware loader, Revision 0.1
> (<email address hidden>, Sun Jul 18 04:50:11 UTC 2010)
> Memory: 524288KB
> Booted from: cd
>
> Loading /boot/defaults/loader.conf
> /boot/kernel/kernel data=0x72c6b8+0x3e280 syms=[0x4+0x5ac10+0x4+0x7d8ad]
> /
> Hit [Enter] to boot immediately, or any other key for command prompt.
> Booting [/boot/kernel/kernel]...
> Kernel entry at 0x100100 ...
> panic: OFW translations above 32-bit boundary!
> Uptime: 1s
>
>
-Nigel

--
Nigel Horne. Arranger, Adjudicator, Band Trainer, Composer, Tutor, Typesetter.
NJH Music, ICQ#20252325, twitter: @nigelhorne
<email address hidden> http://www.bandsman.co.uk

Nigel Horne (njh-bandsman) wrote :

Please confirm that you tested with qemu-system-ppc, not qemu-system-ppc64.

I got the "above 32-bit boundary" message with ppc64 - but that's to be expected. And given that I didn't see your message running 32-bit PPC I want to ensure that you did try with the 32-bit emulator.

Also I can confirm that I have this problem on QEMU.
I had tried booting FreeBSD8.1-ppc under QEMU (Linux x86_64 host; PPC guest) but there seems to be a problem with whatever the FreeBSD8.1 kernel does, that QEMU's PPC emulation can't handle.

I am using the latest version of QEMU from GIT as of 11/9/10.
The kernel starts OK then loops after "Kernel entry at 0x100100 ...".

Adolfo Maltez (adolfomaltez) wrote :

Hi.

The same issue from here.

---------------------------------------------
me@host:~$ qemu-system-ppc -cdrom FreeBSD-8.2-RELEASE-powerpc-disc1.iso \
-hda freebsd8.2-ppc.img -m 94 -boot d -bios /usr/share/openbios/openbios-ppc -nographic
qemu: warning: could not load VGA bios 'video.x'

>> =============================================================
>> OpenBIOS 1.0 [Feb 19 2011 11:37]
>> Configuration device id QEMU version 1 machine id 2
>> CPUs: 1
>> Memory: 94M
>> UUID: 00000000-0000-0000-0000-000000000000
>> CPU type PowerPC,750
Welcome to OpenBIOS v1.0 built on Feb 19 2011 11:37
Trying cd:,\\:tbxi...
Consoles: Open Firmware console

FreeBSD/powerpc Open Firmware loader, Revision 0.1
(<email address hidden>, Fri Feb 18 18:49:01 UTC 2011)
Memory: 96256KB
Booted from: cd

Loading /boot/defaults/loader.conf
/boot/kernel/kernel data=0x7417ac+0x3e3dc syms=[0x4+0x5c110+0x4+0x7f9c7]
|
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [/boot/kernel/kernel]...
Kernel entry at 0x100100 ...
invalid/unsupported opcode: 1f - 12 - 05 (7d200164) 005a6ae0 0
---------------------------------------------------

My host machine is a Debian "squeeze".
I'm using the openbios-ppc from "wheeze" package.

QEMU version: 0.12.5+dfsg-3squeeze1
openbios-ppc version: 1.0+svn1018-1_all
freebsd version: FreeBSD-8.2-RELEASE-powerpc-disc1.iso

The only diference from previos posts is the last line.

------------------------
invalid/unsupported opcode: 1f - 12 - 05 (7d200164) 005a6ae0 0
------------------------

Thanks.

Samuel Bronson (naesten) on 2012-08-03
tags: added: openbios ppc
Stewart Smith (stewart-ibm) wrote :

On 732c66ce641c69702a7e7fdb73b68f0c1b583ab5, I instead get:

Welcome to OpenBIOS v1.1 built on Oct 2 2013 22:57
Trying cd:,\\:tbxi...
Consoles: Open Firmware console

FreeBSD/powerpc Open Firmware loader, Revision 0.1
(<email address hidden>, Sun Jul 18 04:50:11 UTC 2010)
Memory: 96256KB
Booted from: /pci@80000000/mac-io@3/ata-2@21000/cdrom@0

panic: free: guard1 fail @ 0x5d80418 from /usr/src/sys/boot/powerpc/ofw/../../common/interp_parse.c:184
--> Press a key on the console to reboot <--

Nigel Horne (njh-bandsman) wrote :

Latest version from git, using FreeBSD10.0:

qemu-system-ppc64 -cdrom FreeBSD-10.0-RELEASE-powerpc-disc1.iso -hda freebsd10.0-ppc -m 256 -boot d -k en-us:

SLOF **********************************************************************
QEMU Starting
 Build Date = Mar 13 2015 22:37:28
 FW Version = git-c89b0df661c0a6bf
 Press "s" to enter Open Firmware.

Populating /vdevice methods
Populating /vdevice/vty@71000000
Populating /vdevice/nvram@71000001
Populating /vdevice/l-lan@71000002
Populating /vdevice/v-scsi@71000003
       SCSI: Looking for devices
          8000000000000000 DISK : "QEMU QEMU HARDDISK 2.3."
          8200000000000000 CD-ROM : "QEMU QEMU CD-ROM 2.3."
Populating /pci@800000020000000
 Adapters on 0800000020000000
                     00 0000 (D) : 1234 1111 qemu vga
                     00 0800 (D) : 106b 003f serial bus [ usb-ohci ]
No NVRAM common partition, re-initializing...
Installing QEMU fb

Scanning USB
  OHCI: initializing
    USB Keyboard
    USB mouse
No console specified using screen & keyboard

  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: cdrom ... Successfully loaded
Trying to write invalid spr 540 (0x21c) at 0000000000731954

( 700 ) Program Exception [ 7319dc ]

    R0 .. R7 R8 .. R15 R16 .. R23 R24 .. R31
0000000000000000 0000000000000000 0000000000000000 000000000048099c
00000000009d9e50 0000000000000000 0000000000000000 00000000009d9ef4
0000000000a5e160 000000000000bf30 0000000000000000 00000000007319dc
00000000009d9f2c 0000000000000000 0000000000000000 000000000048099c
000000000048099c 0000000000000000 0000000000c0a000 0000000000000000
00000000007319dc 0000000000000000 0000000000000004 0000000000000000
000000000048099c 0000000000000000 0000000000000000 0000000000002000
00000000009d9ef4 0000000000000000 0000000000000000 00000000009d9e50

    CR / XER LR / CTR SRR0 / SRR1 DAR / DSISR
        84000022 0000000000731a14 0000000000731954 0000000000000000
0000000000000000 00000000007319dc 0000000000082000 00000000

Nigel Horne (njh-bandsman) wrote :

I used the -nographic option as well, but lost it in the copy and paste.

Thomas Huth (th-huth) wrote :

Nigel, looking at https://www.freebsd.org/platforms/ppc.html it seems like FreeBSD does not support the pseries machines yet, only some flavours of PowerMac machines. So you should either use the "qemu-system-ppc" binary (without the "64" suffix), or you've got to specify one of the Mac machines, i.e. either "-M g3beige" or "-M mac99".

Hi, Nigel.

Support for powerpc64 is available since FreeBSD 9.0-RELEASE, I think.
FreeBSD 11.2-RC2 boots fine in QEMU (at commit 46012db666990ff2eed1d3dc)
running on an x86 host with accel=tcg. Below are the steps I have
followed to boot it.

Build QEMU:

$ mkdir build && cd build
$ ../configure --target-list=ppc64-softmmu
$ make -j$(nproc)

Boot FreeBSD:

$ wget http://ftp.freebsd.org/pub/FreeBSD/releases/powerpc/powerpc64/ISO-IMAGES/11.2/FreeBSD-11.2-RC2-powerpc-powerpc64-disc1.iso
$ ./qemu-img create -f qcow2 freebsd.qcow2 10G
$ ./ppc64-softmmu/qemu-system-ppc64 -name freebsd -machine pseries,accel=tcg,usb=off -m 1024 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -nographic -no-user-config -nodefaults -rtc base=utc -no-shutdown -boot strict=on -device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x1 -device pci-ohci,id=usb,bus=pci.0,addr=0x2 -device spapr-vscsi,id=scsi0,reg=0x2000 -drive file=freebsd.qcow2,format=qcow2,if=none,id=drive-scsi0-0-0-0 -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=1 -drive file=FreeBSD-11.2-RC2-powerpc-powerpc64-disc1.iso,format=raw,if=none,id=drive-scsi0-0-1-0,readonly=on -device scsi-cd,bus=scsi0.0,channel=0,scsi-id=1,lun=0,drive=drive-scsi0-0-1-0,id=scsi0-0-1-0,bootindex=2 -netdev user,id=hostnet0 -device spapr-vlan,netdev=hostnet0,id=net0,mac=4c:45:42:45:01:18,reg=0x1000 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on -serial mon:stdio

Since this bug is almost 8 years old and FreeBSD powerpc64 seems to be
working just fine, I will close it. Feel free to submit a new one if
needed.

Cheers
Murilo

Changed in qemu:
status: New → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers