From a816c298821ea7d587d615b178754ced8b4660bf Mon Sep 17 00:00:00 2001 From: Sergii Dmytruk Date: Wed, 27 Oct 2021 00:23:14 +0300 Subject: payloads/external: add skiboot (for QEMU/Power9) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an option to build skiboot as a payload. This makes QEMU Power9 board simpler to use as skiboot is necessary anyway. Change-Id: I0b49ea7464c97cc2ff0d5030629deed549851372 Signed-off-by: Igor Bagnucki Signed-off-by: Krystian Hebel Signed-off-by: Sergii Dmytruk Reviewed-on: https://review.coreboot.org/c/coreboot/+/58656 Tested-by: build bot (Jenkins) Reviewed-by: Michał Żygowski --- Documentation/mainboard/emulation/qemu-power9.md | 36 +++++++++++++++++++----- 1 file changed, 29 insertions(+), 7 deletions(-) (limited to 'Documentation') diff --git a/Documentation/mainboard/emulation/qemu-power9.md b/Documentation/mainboard/emulation/qemu-power9.md index 3e2c75f9f4e3..be7a8398e7a5 100644 --- a/Documentation/mainboard/emulation/qemu-power9.md +++ b/Documentation/mainboard/emulation/qemu-power9.md @@ -1,7 +1,19 @@ # QEMU PPC64 emulator This page describes how to build and run coreboot for QEMU/PPC64. -You can configure ELF payload via `make menuconfig` (make sure "ROM chip size" -is large enough). + +## Building coreboot +```bash +make defconfig KBUILD_DEFCONFIG=configs/config.emulation_qemu_power9 +make +``` + +This builds coreboot with no payload. + +## Payloads +You can configure ELF or `skiboot` payload via `make menuconfig`. In either case +you might need to adjust "ROM chip size" and make it large enough to accommodate +the payload (see how much space it needs in the error you get if it doesn't +fit). ## Running coreboot in QEMU ```bash @@ -15,16 +27,26 @@ qemu-system-ppc64 -M powernv,hb-mode=on \ - The default CPU in QEMU for AArch64 is a 604. You specify a suitable PowerPC CPU via `-cpu power9`. -- By default Hostboot mode is off and it needs to be turned on to run coreboot +- By default Hostboot mode is off and needs to be turned on to run coreboot as a firmware rather than like an OS. - `-bios` specifies initial program (bootloader should suffice, but whole image works fine too). - `-drive` specifies image for emulated flash device. -## Building coreboot +## Running with a kernel +Loading `skiboot` (built automatically by coreboot or otherwise) allows +specifying kernel and root file system to be run. + ```bash -make defconfig KBUILD_DEFCONFIG=configs/config.emulation_qemu_power9 -make +qemu-system-ppc64 -M powernv,hb-mode=on \ + -cpu power9 \ + -bios build/coreboot.rom \ + -drive file=build/coreboot.rom,if=mtd \ + -serial stdio \ + -display none \ + -kernel zImage \ + -initrd initrd.cpio.xz ``` -This builds coreboot with no payload. +- Specify path to your kernel via `-kernel`. +- Specify path to your rootfs via `-initrd`. -- cgit v1.2.3