xref: /aosp_15_r20/external/coreboot/util/qemu/Makefile.mk (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1# SPDX-License-Identifier: BSD-3-Clause
2
3# This automatically adds a `qemu` make target if a compatible
4# configuration is selected. There are some notable variables
5# that can be set or adapted in `Makefile.mk` files, the make
6# command line or the environment:
7#
8# Primarily for `Makefile.mk` use:
9# QEMU-y		the QEMU executable
10# QEMU_CFG-y		a QEMU config that sets the available default devices,
11#			used to run more comprehensive tests by default,
12#			e.g. many more PCI devices
13#
14# For general use:
15# QEMU_ARGS		additional command line arguments (default: -serial stdio)
16# QEMU_EXTRA_CFGS	additional config files that can add devices
17#
18# QEMU_CFG_ARGS		gathers config file related arguments,
19#			can be used to override a default config (QEMU_CFG-y)
20#
21# Examples:
22#
23#   $ # Run coreboot's default config with additional command line args
24#   $ make qemu QEMU_ARGS="-cdrom site-local/grml64-small_2018.12.iso"
25#
26#   $ # Force QEMU's built-in config
27#   $ make qemu QEMU_CFG_ARGS=
28
29QEMU-$(CONFIG_BOARD_EMULATION_QEMU_AARCH64)	?= qemu-system-aarch64 \
30	-M virt,secure=on,virtualization=on -cpu cortex-a53 -m 1G
31
32QEMU-$(CONFIG_BOARD_EMULATION_QEMU_RISCV_RV64)	?= qemu-system-riscv64 -M virt -m 1G -drive \
33	if=pflash,file=build/coreboot.rom,format=raw
34
35QEMU-$(CONFIG_BOARD_EMULATION_QEMU_RISCV_RV32)	?= qemu-system-riscv32 -M virt -m 1G -drive \
36	if=pflash,file=build/coreboot.rom,format=raw
37
38QEMU-$(CONFIG_BOARD_EMULATION_QEMU_X86_I440FX)	?= qemu-system-x86_64 -M pc
39
40QEMU-$(CONFIG_BOARD_EMULATION_QEMU_X86_Q35)	?= qemu-system-x86_64 -M q35
41QEMU_CFG-$(CONFIG_BOARD_EMULATION_QEMU_X86_Q35)	?= util/qemu/q35-base.cfg
42
43ifneq ($(QEMU-y),)
44
45QEMU_ARGS ?= -serial stdio
46QEMU_EXTRA_CFGS ?=
47
48QEMU_CFG_ARGS ?= \
49	$(if $(QEMU_CFG-y),-nodefaults) \
50	$(addprefix -readconfig ,$(QEMU_CFG-y) $(QEMU_EXTRA_CFGS))
51
52qemu: $(obj)/coreboot.rom
53	$(QEMU-y) $(QEMU_CFG_ARGS) $(QEMU_ARGS) -bios $<
54
55.PHONY: qemu
56
57endif
58