Skip to content

Commit 2f60370

Browse files
committed
WIP: qemu: Add ppc64le targets and config files
This gives us a target to build. It does not work yet. Note: This should use the power9 qemu target for coreboot once it's merged: https://review.coreboot.org/c/coreboot/+/57084 Signed-off-by: David Hendricks <[email protected]>
1 parent a698747 commit 2f60370

File tree

4 files changed

+163
-0
lines changed

4 files changed

+163
-0
lines changed

examples/qemu/Makefile

+17
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,15 @@ GOARCH := arm64
2020
PLATFORM := qemu-$(ARCH)
2121
QEMU_SYSTEM := qemu-system-$(ARCH)
2222
endif
23+
ifeq ($(ARCH), ppc64le)
24+
COREBOOT_TOOLCHAIN_ARCH=$(ARCH)
25+
GOARCH := $(ARCH)
26+
LINUX_ARCH := powerpc
27+
LINUX_IMAGE_RELATIVE_PATH := arch/powerpc/boot/zImage
28+
LINUX_GCC_TUPLE := powerpc64-linux-gnu-
29+
PLATFORM := qemu-$(ARCH)
30+
QEMU_SYSTEM := qemu-system-$(ARCH)
31+
endif
2332
ifeq ($(ARCH), x86_64)
2433
COREBOOT_TOOLCHAIN_ARCH := i386
2534
LINUX_ARCH := $(ARCH)
@@ -52,6 +61,14 @@ ifeq ($(ARCH), aarch64)
5261
-M virt,secure=on,virtualization=on \
5362
-cpu cortex-a53
5463
endif
64+
ifeq ($(ARCH), ppc64le)
65+
$(QEMU_SYSTEM) $(QEMU_COMMON_OPTS) \
66+
-M powernv,hb-mode=on \
67+
-cpu power9 \
68+
-drive file=build/coreboot.rom,if=mtd \
69+
-serial stdio \
70+
-display none
71+
endif
5572
ifeq ($(ARCH), x86_64)
5673
$(QEMU_SYSTEM) $(QEMU_COMMON_OPTS) \
5774
-M q35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
{
2+
"initramfs": {
3+
"untar": [
4+
{
5+
"label": "go",
6+
"url": "https://golang.org/dl/go1.16.6.linux-ppc64le.tar.gz",
7+
"hash": "sha256:62b5e9bb9440b7166241e5b7d5f49c7372b36429c8308a8456ee46fc1397a0fe"
8+
}
9+
],
10+
"goget": [
11+
{
12+
"label": "uroot",
13+
"pkg": "https://github.com/u-root/u-root",
14+
"branch": "master",
15+
"hash": "ba3c4503673291183f54568dc0c0d0d7411302cd"
16+
}
17+
]
18+
},
19+
"kernel": {
20+
"untar": [
21+
{
22+
"label": "kernel",
23+
"url": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-5.10.50.tar.gz",
24+
"hash": "sha256:81338158ebc77b35e426e1c47826458dada4e8500030553ef911e6cf729817de",
25+
"subdir": "linux-5.10.50"
26+
}
27+
]
28+
},
29+
"coreboot": {
30+
"git": [
31+
{
32+
"label": "coreboot",
33+
"url": "https://review.coreboot.org/coreboot",
34+
"branch": "master",
35+
"hash": "37a977dde945de15464925d4501d4b85e01c3a16"
36+
},
37+
{
38+
"label": "vboot",
39+
"url": "https://review.coreboot.org/vboot",
40+
"dest": "3rdparty/vboot",
41+
"branch": "master",
42+
"hash": "48195e5878006ac2cf74cb7f02953ab06c68202d"
43+
}
44+
],
45+
"files": {
46+
"label": "crossgcc_tarballs",
47+
"dest": "util/crossgcc/tarballs",
48+
"filelist": [
49+
{
50+
"url": "https://ftpmirror.gnu.org/gmp/gmp-6.2.1.tar.xz",
51+
"hash": "sha256:fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2"
52+
},
53+
{
54+
"url": "https://ftpmirror.gnu.org/mpfr/mpfr-4.1.0.tar.xz",
55+
"hash": "sha256:0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f"
56+
},
57+
{
58+
"url": "https://ftpmirror.gnu.org/mpc/mpc-1.2.1.tar.gz",
59+
"hash": "sha256:17503d2c395dfcf106b622dc142683c1199431d095367c6aacba6eec30340459"
60+
},
61+
{
62+
"url": "https://ftpmirror.gnu.org/binutils/binutils-2.37.tar.xz",
63+
"hash": "sha256:820d9724f020a3e69cb337893a0b63c2db161dadcb0e06fc11dc29eb1e84a32c"
64+
},
65+
{
66+
"url": "https://ftpmirror.gnu.org/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz",
67+
"hash": "sha256:d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b"
68+
},
69+
{
70+
"url": "https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2",
71+
"hash": "sha256:3c4b8339e5ab54b1bcb2316101f8985a5da50a3f9e504d43fa6f35668bee2fd0"
72+
},
73+
{
74+
"url": "https://acpica.org/sites/acpica/files/acpica-unix2-20210331.tar.gz",
75+
"hash": "sha256:3dab326c262d4f3eaf380bbbbd7aa8c2eb5f2697f7821659222cf898d8be28c1"
76+
}
77+
]
78+
}
79+
}
80+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CONFIG_VENDOR_EMULATION=y
2+
CONFIG_BOARD_EMULATION_QEMU_POWER8=y
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Generic
2+
CONFIG_KERNEL_XZ=y
3+
CONFIG_DEFAULT_HOSTNAME="linuxboot"
4+
CONFIG_HZ_PERIODIC=y
5+
CONFIG_PREEMPT_NONE=y
6+
CONFIG_BLK_DEV_INITRD=y
7+
CONFIG_INITRAMFS_SOURCE=""
8+
CONFIG_INITRAMFS_ROOT_UID=0
9+
CONFIG_INITRAMFS_ROOT_GID=0
10+
CONFIG_INITRAMFS_COMPRESSION_LZMA=y
11+
CONFIG_INITRAMFS_COMPRESSION=".lzma"
12+
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
13+
CONFIG_EXPERT=y
14+
CONFIG_EMBEDDED=y
15+
CONFIG_SLOB=y
16+
17+
# QEMU-related
18+
CONFIG_VIRTIO_BLK=y
19+
CONFIG_VIRTIO_NET=y
20+
CONFIG_VIRTIO_PCI=y
21+
CONFIG_HW_RANDOM=y
22+
CONFIG_HW_RANDOM_VIRTIO=y
23+
CONFIG_CRYPTO_DEV_VIRTIO=y
24+
25+
CONFIG_BLOCK=y
26+
CONFIG_BLK_SCSI_REQUEST=y
27+
CONFIG_SCSI_LOWLEVEL=y
28+
CONFIG_SATA_AHCI_PLATFORM=y
29+
30+
# Serial drivers
31+
CONFIG_SERIAL_EARLYCON=y
32+
CONFIG_SERIAL_8250=y
33+
CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
34+
CONFIG_SERIAL_8250_PNP=y
35+
CONFIG_SERIAL_8250_CONSOLE=y
36+
CONFIG_SERIAL_8250_DMA=y
37+
CONFIG_SERIAL_8250_PCI=y
38+
CONFIG_SERIAL_8250_EXAR=y
39+
CONFIG_SERIAL_8250_NR_UARTS=32
40+
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
41+
CONFIG_SERIAL_8250_EXTENDED=y
42+
CONFIG_SERIAL_8250_MANY_PORTS=y
43+
CONFIG_SERIAL_8250_SHARE_IRQ=y
44+
CONFIG_SERIAL_8250_DETECT_IRQ=y
45+
CONFIG_SERIAL_8250_RSA=y
46+
CONFIG_SERIAL_8250_LPSS=y
47+
CONFIG_SERIAL_8250_MID=y
48+
CONFIG_SERIAL_CORE=y
49+
CONFIG_SERIAL_CORE_CONSOLE=y
50+
51+
# IPMI
52+
CONFIG_IPMI_HANDLER=y
53+
CONFIG_IPMI_DMI_DECODE=y
54+
CONFIG_IPMI_PLAT_DATA=y
55+
CONFIG_IPMI_DEVICE_INTERFACE=y
56+
CONFIG_IPMI_SI=y
57+
58+
# TPM
59+
CONFIG_TCG_TPM=y
60+
CONFIG_HW_RANDOM_TPM=y
61+
CONFIG_TCG_TIS_CORE=y
62+
CONFIG_TCG_TIS=y
63+
CONFIG_TCG_INFINEON=y
64+
CONFIG_TCG_CRB=y

0 commit comments

Comments
 (0)