util/qemu: Add comprehensive default config for QEMU Q35

This config tries to mimic the actual devices of a mainboard
with Intel's Q35 chipset. It provides a much better base to
test coreboot (e.g. its allocator) and payloads.

Change-Id: Id465016e37ee75628a55b9da68facb4ae0efe822
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46768
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>
diff --git a/util/qemu/Makefile.inc b/util/qemu/Makefile.inc
index 33463498..651ef21 100644
--- a/util/qemu/Makefile.inc
+++ b/util/qemu/Makefile.inc
@@ -27,7 +27,9 @@
 #   $ 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
+QEMU_CFG-$(CONFIG_BOARD_EMULATION_QEMU_X86_Q35)	?= util/qemu/q35-base.cfg
 
 ifneq ($(QEMU-y),)
 
diff --git a/util/qemu/q35-base.cfg b/util/qemu/q35-base.cfg
new file mode 100644
index 0000000..87dcfcd
--- /dev/null
+++ b/util/qemu/q35-base.cfg
@@ -0,0 +1,180 @@
+# $ qemu-system-x86_64 -nodefaults -readconfig q35-base.cfg -readconfig ...
+#
+# Devices that show up even with `-nodefaults`:
+#   00.0 Host bridge
+#   1f.0 LPC bridge
+#   1f.2 SATA controller (AHCI mode)
+#   1f.3 SMBus controller
+
+[machine]
+	type = "q35"
+	accel = "kvm:tcg"
+
+[memory]
+	size = "1024"
+
+
+[device "q35-peg"]
+	driver = "pcie-root-port"
+	bus = "pcie.0"
+	addr = "01.0"
+
+
+[device "q35-igpu"]
+	driver = "VGA"
+	bus = "pcie.0"
+	addr = "02.0"
+
+
+[netdev "hostnet"]
+	type = "user"
+
+[device "net"]
+	driver = "e1000"
+	netdev = "hostnet"
+	bus = "pcie.0"
+	addr = "19.0"
+
+
+[device "ich9-ehci-2"]
+	driver = "ich9-usb-ehci2"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1a.7"
+
+[device "ich9-uhci-4"]
+	driver = "ich9-usb-uhci4"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1a.0"
+	masterbus = "ich9-ehci-2.0"
+	firstport = "0"
+
+[device "ich9-uhci-5"]
+	driver = "ich9-usb-uhci5"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1a.1"
+	masterbus = "ich9-ehci-2.0"
+	firstport = "2"
+
+[device "ich9-uhci-6"]
+	driver = "ich9-usb-uhci6"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1a.2"
+	masterbus = "ich9-ehci-2.0"
+	firstport = "4"
+
+
+[device "ich9-hda-audio"]
+	driver = "ich9-intel-hda"
+	bus = "pcie.0"
+	addr = "1b.0"
+
+[device "ich9-hda-duplex"]
+	driver = "hda-duplex"
+	bus = "ich9-hda-audio.0"
+	cad = "0"
+
+
+[device "ich9-pcie-port-1"]
+	driver = "ioh3420"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1c.0"
+	port = "1"
+	chassis = "1"
+
+[device "ich9-pcie-port-2"]
+	driver = "ioh3420"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1c.1"
+	port = "2"
+	chassis = "2"
+
+[device "ich9-pcie-port-3"]
+	driver = "ioh3420"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1c.2"
+	port = "3"
+	chassis = "3"
+
+[device "ich9-pcie-port-4"]
+	driver = "ioh3420"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1c.3"
+	port = "4"
+	chassis = "4"
+
+[device "ich9-pcie-port-5"]
+	driver = "ioh3420"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1c.4"
+	port = "5"
+	chassis = "5"
+
+[device "ich9-pcie-port-6"]
+	driver = "ioh3420"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1c.5"
+	port = "6"
+	chassis = "6"
+
+[device "ich9-pcie-port-7"]
+	driver = "ioh3420"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1c.6"
+	port = "7"
+	chassis = "7"
+
+[device "ich9-pcie-port-8"]
+	driver = "ioh3420"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1c.7"
+	port = "8"
+	chassis = "8"
+
+
+[device "ich9-ehci-1"]
+	driver = "ich9-usb-ehci1"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1d.7"
+
+[device "ich9-uhci-1"]
+	driver = "ich9-usb-uhci1"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1d.0"
+	masterbus = "ich9-ehci-1.0"
+	firstport = "0"
+
+[device "ich9-uhci-2"]
+	driver = "ich9-usb-uhci2"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1d.1"
+	masterbus = "ich9-ehci-1.0"
+	firstport = "2"
+
+[device "ich9-uhci-3"]
+	driver = "ich9-usb-uhci3"
+	multifunction = "on"
+	bus = "pcie.0"
+	addr = "1d.2"
+	masterbus = "ich9-ehci-1.0"
+	firstport = "4"
+
+
+[device "ich9-pci-bridge"]
+	driver = "i82801b11-bridge"
+	bus = "pcie.0"
+	addr = "1e.0"