configs/qemu_ppc64le_powernv8: new defconfig

PowerNV is the platform using the OPAL [1] firmware on OpenPOWER
systems. OPAL first loads a kernel and an initramfs image based on
buildroot including a second boot loader petitboot [2]. The latter
does device discovery and kexecs a new Linux image from disk or
network.

QEMU implements PowerNV machines [3] for the POWER8, POWER9 and
Power10 processors which are used for dev and tests. POWER8 images
being compatible with POWER9 and Power10, simply add a single
qemu_ppc64le_powernv8 board for all.

The QEMU script boots directly from a nvme disk because it is simple
enough but a real system would boot from a ramfs first.

[1] https://github.com/open-power/skiboot/blob/master/doc/overview.rst
[2] https://github.com/open-power/petitboot/
[3] https://qemu.readthedocs.io/en/latest/system/ppc/powernv.html

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Cédric Le Goater 2022-01-10 21:58:42 +01:00 committed by Thomas Petazzoni
parent bdb390085f
commit 7d914839a4
3 changed files with 38 additions and 0 deletions

View File

@ -504,6 +504,10 @@ F: package/libsvg-cairo/
N: Cédric Chépied <cedric.chepied@gmail.com>
F: package/znc/
N: Cédric Le Goater <clg@kaod.org>
F: board/qemu/ppc64le-powernv8/readme.txt
F: configs/qemu_ppc64le_powernv8_defconfig
N: Charles Hardin <ckhardin@gmail.com>
F: package/alsa-plugins/

View File

@ -0,0 +1,5 @@
Run the emulation with:
qemu-system-ppc64 -M powernv9 -kernel vmlinux -append "console=hvc0 rootwait root=/dev/nvme0n1" -device nvme,bus=pcie.3,addr=0x0,drive=drive0,serial=1234 -drive file=./rootfs.ext2,if=none,id=drive0,format=raw,cache=none -device e1000e,netdev=net0,mac=C0:FF:EE:00:01:03,bus=pcie.1,addr=0x0 -netdev user,id=net0 -serial mon:stdio -nographic # qemu_ppc64le_powernv8_defconfig
The login prompt will appear in the terminal window.

View File

@ -0,0 +1,29 @@
# Architecture
BR2_powerpc64le=y
BR2_powerpc_power8=y
# System
BR2_TARGET_GENERIC_GETTY_PORT="hvc0"
BR2_SYSTEM_DHCP="eth0"
# Filesystem
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
# Image
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/qemu/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"
# Linux headers same as kernel
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_15=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.15"
BR2_LINUX_KERNEL_DEFCONFIG="powernv"
BR2_LINUX_KERNEL_VMLINUX=y
# host-qemu for gitlab testing
BR2_PACKAGE_HOST_QEMU=y
BR2_PACKAGE_HOST_QEMU_SYSTEM_MODE=y