Skip to content

Commit dd402fc

Browse files
committed
WIP: qemu: Add aarch64 targets and config files
This gives us a target to build. It does not work yet. Signed-off-by: David Hendricks <david.hendricks@gmail.com>
1 parent 25c2fd0 commit dd402fc

File tree

4 files changed

+185
-0
lines changed

4 files changed

+185
-0
lines changed

examples/qemu/Makefile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@ else
1111
CROSS_COMPILING := 0
1212
endif
1313

14+
ifeq ($(ARCH), aarch64)
15+
COREBOOT_TOOLCHAIN_ARCH := aarch64
16+
LINUX_ARCH := arm64
17+
LINUX_GCC_TUPLE := $(ARCH)-linux-
18+
LINUX_IMAGE_RELATIVE_PATH := arch/arm64/boot/Image.gz
19+
GOARCH := arm64
20+
PLATFORM := qemu-$(ARCH)
21+
QEMU_SYSTEM := qemu-system-$(ARCH)
22+
endif
1423
ifeq ($(ARCH), x86_64)
1524
COREBOOT_TOOLCHAIN_ARCH := i386
1625
LINUX_ARCH := $(ARCH)
@@ -38,6 +47,11 @@ QEMU_COMMON_OPTS := -bios $(OUT) $(QEMU_KVM_OPTS) \
3847
-nographic
3948

4049
run:
50+
ifeq ($(ARCH), aarch64)
51+
$(QEMU_SYSTEM) $(QEMU_COMMON_OPTS) \
52+
-M virt,secure=on,virtualization=on \
53+
-cpu cortex-a53
54+
endif
4155
ifeq ($(ARCH), x86_64)
4256
$(QEMU_SYSTEM) $(QEMU_COMMON_OPTS) \
4357
-M q35
Lines changed: 80 additions & 0 deletions
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.17.2.linux-arm64.tar.gz",
7+
"hash": "sha256:a5a43c9cdabdb9f371d56951b14290eba8ce2f9b0db48fb5fc657943984fd4fc"
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.14.14.tar.gz",
24+
"hash": "sha256:7649f5496c34eae104fc391988d5dc4993082cf6195984303433bafa358fd7da",
25+
"subdir": "linux-5.14.0"
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+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
CONFIG_VENDOR_EMULATION=y
2+
CONFIG_COLLECT_TIMESTAMPS=y
3+
CONFIG_TIMESTAMPS_ON_CONSOLE=y
4+
CONFIG_MAINBOARD_VENDOR="Emulation"
5+
CONFIG_CBFS_SIZE=0x1000000
6+
CONFIG_BOARD_EMULATION_QEMU_AARCH64=y
7+
CONFIG_COREBOOT_ROMSIZE_KB_16384=y
8+
CONFIG_PAYLOAD_FIT_SUPPORT=y
9+
CONFIG_PAYLOAD_LINUXBOOT
10+
CONFIG_PAYLOAD_FILE="Image"
11+
CONFIG_LINUXBOOT_KERNEL_PATH="Image"
12+
CONFIG_LINUXBOOT_INITRAMFS_PATH=""
13+
CONFIG_LINUXBOOT_INITRAMFS_COMPRESSION_XZ=y
14+
CONFIG_LINUX_INITRD=""
15+
CONFIG_LINUXBOOT_INITRAMFS_SUFFIX=".xz"
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
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+
# Firmware interfaces
31+
CONFIG_DMI=y
32+
CONFIG_DMIID=y
33+
CONFIG_DMI_SYSFS=y
34+
CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
35+
CONFIG_FIRMWARE_MEMMAP=y
36+
CONFIG_GOOGLE_FIRMWARE=y
37+
CONFIG_GOOGLE_COREBOOT_TABLE=y
38+
CONFIG_GOOGLE_MEMCONSOLE=y
39+
CONFIG_GOOGLE_MEMCONSOLE_COREBOOT=y
40+
CONFIG_GOOGLE_VPD=y
41+
42+
# Serial drivers
43+
CONFIG_SERIAL_EARLYCON=y
44+
CONFIG_SERIAL_8250=y
45+
CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
46+
CONFIG_SERIAL_8250_PNP=y
47+
CONFIG_SERIAL_8250_CONSOLE=y
48+
CONFIG_SERIAL_8250_DMA=y
49+
CONFIG_SERIAL_8250_PCI=y
50+
CONFIG_SERIAL_8250_EXAR=y
51+
CONFIG_SERIAL_8250_NR_UARTS=32
52+
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
53+
CONFIG_SERIAL_8250_EXTENDED=y
54+
CONFIG_SERIAL_8250_MANY_PORTS=y
55+
CONFIG_SERIAL_8250_SHARE_IRQ=y
56+
CONFIG_SERIAL_8250_DETECT_IRQ=y
57+
CONFIG_SERIAL_8250_RSA=y
58+
CONFIG_SERIAL_8250_LPSS=y
59+
CONFIG_SERIAL_8250_MID=y
60+
CONFIG_SERIAL_CORE=y
61+
CONFIG_SERIAL_CORE_CONSOLE=y
62+
63+
# IPMI
64+
CONFIG_IPMI_HANDLER=y
65+
CONFIG_IPMI_DMI_DECODE=y
66+
CONFIG_IPMI_PLAT_DATA=y
67+
CONFIG_IPMI_DEVICE_INTERFACE=y
68+
CONFIG_IPMI_SI=y
69+
70+
# TPM
71+
CONFIG_TCG_TPM=y
72+
CONFIG_HW_RANDOM_TPM=y
73+
CONFIG_TCG_TIS_CORE=y
74+
CONFIG_TCG_TIS=y
75+
CONFIG_TCG_INFINEON=y
76+
CONFIG_TCG_CRB=y

0 commit comments

Comments
 (0)