util/qemu: Add `qemu` make target
Add some mechanics to automatically have a `qemu` make target for supported configurations. So with a QEMU target selected in Kconfig, one would ideally only have to run `make qemu` to test things. There are some notable variables that can be set or adapted in `Makefile.inc` files, the make command line or the environment. Primarily for `Makefile.inc` 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= Change-Id: I658f86e05df416ae09be6d432f9a80f7f71f9f75 Signed-off-by: Nico Huber <nico.h@gmx.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/46767 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
6df3870012
commit
a08328ecff
|
@ -83,7 +83,7 @@ subdirs-y += src/superio
|
||||||
subdirs-y += $(wildcard src/drivers/*) $(wildcard src/drivers/*/*) $(wildcard src/drivers/*/*/*)
|
subdirs-y += $(wildcard src/drivers/*) $(wildcard src/drivers/*/*) $(wildcard src/drivers/*/*/*)
|
||||||
subdirs-y += src/cpu src/vendorcode
|
subdirs-y += src/cpu src/vendorcode
|
||||||
subdirs-y += util/cbfstool util/sconfig util/nvramtool util/pgtblgen util/amdfwtool
|
subdirs-y += util/cbfstool util/sconfig util/nvramtool util/pgtblgen util/amdfwtool
|
||||||
subdirs-y += util/futility util/marvell util/bincfg util/supermicro
|
subdirs-y += util/futility util/marvell util/bincfg util/supermicro util/qemu
|
||||||
subdirs-y += $(wildcard src/arch/*)
|
subdirs-y += $(wildcard src/arch/*)
|
||||||
subdirs-y += src/mainboard/$(MAINBOARDDIR)
|
subdirs-y += src/mainboard/$(MAINBOARDDIR)
|
||||||
subdirs-y += src/security
|
subdirs-y += src/security
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
# 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.inc` files, the make
|
||||||
|
# command line or the environment:
|
||||||
|
#
|
||||||
|
# Primarily for `Makefile.inc` 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_X86_I440FX) ?= qemu-system-x86_64 -M pc
|
||||||
|
QEMU-$(CONFIG_BOARD_EMULATION_QEMU_X86_Q35) ?= qemu-system-x86_64 -M q35
|
||||||
|
|
||||||
|
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
|
Loading…
Reference in New Issue