Configuring an IBM PowerNV-9 FreeBSD QEMU guest
This will describe configuring an IBM PowerNV 9 QEMU guest.
Note this is under development and will expose some sharp edges.
Contents
Pre-reading
The QEMU powernv page - https://www.qemu.org/docs/master/system/ppc/powernv.html
Pre-requisites
- QEMU - this uses QEMU-10, earlier versions with powervm 9 support should work
- FreeBSD - this example uses FreeBSD-15, but there are some issues with FreeBSD-15 as a powervm 9 QEMU guest
- petitboot/skiboot files - the openpower website has pre-builts -
https://github.com/open-power/op-build/releases/ - if it's changed since jan 2026, you're looking for the "v2.7" release files.
Status
- This does boot to installer with -15 and -16 powerpc64le snapshots, however the mfi driver for the megaraid SAS card never finishes setup
Setup
- You'll need an iso file to boot - note it needs to be little endian
- You'll need to create an image file - eg
$ qemu-img create -f qcow2 freebsd-16-ppc-powernv9-1.qcow2 8G
- This example uses a tap interface to local networking; please adjust accordingly.
Configuration File
# -smp 2,thread=1,sockets=1,maxcpus=2
X_CDROM_FILE="../iso/FreeBSD-15.0-STABLE-powerpc-powerpc64le-20260101-785d429c2b93-281645-bootonly.iso"
X_DISK_FILE="freebsd-16-ppc-powernv9-1.qcow2"
ifconfig tap0 up
qemu-system-ppc64 -machine powernv9 \
-cpu power9 \
-m 2048M \
-smp 2 \
-nographic \
-vga none \
-kernel zImage.epapr \
-append radix_mmu=1 \
-initrd rootfs.cpio.xz \
-device megasas,id=scsi0,bus=pcie.0,addr=0x0 \
-drive file=${X_DISK_FILE},format=qcow2,id=drive0,if=none \
-drive file=${X_CDROM_FILE},format=raw,readonly=on,id=cdrom0,if=none \
-device scsi-hd,bus=scsi0.0,drive=drive0,channel=0,scsi-id=0,lun=0,bootindex=2 \
\
-device pcie-pci-bridge,id=bridge1,bus=pcie.1,addr=0x0 \
-device ich9-ahci,id=sata0,bus=bridge1,addr=0x1 \
-device ide-cd,bus=sata0.0,unit=0,drive=cdrom0,id=ide,bootindex=1 \
-device nec-usb-xhci,bus=bridge1,addr=0x7 \
-netdev tap,ifname=tap0,script=no,id=net0 \
-device e1000e,netdev=net0,mac=C0:FF:EE:00:00:02,bus=bridge1,addr=0x2 \
Known Issues
- The boot environment directly boots the kernel, not a loader, so ZFS, modules, etc aren't yet available
(jan 2026) https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292167 - QEMU and >1 CPU occasionally wouldn't start
- (jan 2026) The above example uses a megaraid controller (mfi) but probe/attach hangs in "mfiwait"; will need to fix this or adjust the config