# SPDX-License-Identifier: BSD-3-Clause

# This automatically adds a `qemu` make target if a compatible
# configuration is selected. There are some notable variables
# that can be set or adapted in `Makefile.mk` files, the make
# command line or the environment:
#
# Primarily for `Makefile.mk` use:
# QEMU-y		the QEMU executable
# QEMU_CFG-y		a QEMU config that sets the available default devices,
#			used to run more comprehensive tests by default,
#			e.g. many more PCI devices
#
# For general use:
# QEMU_ARGS		additional command line arguments (default: -serial stdio)
# QEMU_EXTRA_CFGS	additional config files that can add devices
#
# QEMU_CFG_ARGS		gathers config file related arguments,
#			can be used to override a default config (QEMU_CFG-y)
#
# Examples:
#
#   $ # Run coreboot's default config with additional command line args
#   $ make qemu QEMU_ARGS="-cdrom site-local/grml64-small_2018.12.iso"
#
#   $ # Force QEMU's built-in config
#   $ make qemu QEMU_CFG_ARGS=

QEMU-$(CONFIG_BOARD_EMULATION_QEMU_AARCH64)	?= qemu-system-aarch64 \
	-M virt,secure=on,virtualization=on -cpu cortex-a53 -m 1G

QEMU-$(CONFIG_BOARD_EMULATION_QEMU_RISCV_RV64)	?= qemu-system-riscv64 -M virt -m 1G -drive \
	if=pflash,file=build/coreboot.rom,format=raw

QEMU-$(CONFIG_BOARD_EMULATION_QEMU_RISCV_RV32)	?= qemu-system-riscv32 -M virt -m 1G -drive \
	if=pflash,file=build/coreboot.rom,format=raw

QEMU-$(CONFIG_BOARD_EMULATION_QEMU_X86_I440FX)	?= qemu-system-x86_64 -M pc

QEMU-$(CONFIG_BOARD_EMULATION_QEMU_X86_Q35)	?= qemu-system-x86_64 -M q35
QEMU_CFG-$(CONFIG_BOARD_EMULATION_QEMU_X86_Q35)	?= util/qemu/q35-base.cfg

ifneq ($(QEMU-y),)

QEMU_ARGS ?= -serial stdio
QEMU_EXTRA_CFGS ?=

QEMU_CFG_ARGS ?= \
	$(if $(QEMU_CFG-y),-nodefaults) \
	$(addprefix -readconfig ,$(QEMU_CFG-y) $(QEMU_EXTRA_CFGS))

qemu: $(obj)/coreboot.rom
	$(QEMU-y) $(QEMU_CFG_ARGS) $(QEMU_ARGS) -bios $<

.PHONY: qemu

endif
