# q35 - Emulated guest (graphical console)
# =========================================================
#
# Usage:
#
#   $ qemu-system-x86_64 \
#     -nodefaults \
#     -readconfig q35-emulated.cfg
#
# You will probably need to tweak the lines marked as
# CHANGE ME before being able to use this configuration!
#
# The guest will have a selection of emulated devices that
# closely resembles that of a physical machine, and will be
# accessed through a graphical console.
#
# ---------------------------------------------------------
#
# Using -nodefaults is required to have full control over
# the virtual hardware: when it's specified, QEMU will
# populate the board with only the builtin peripherals
# plus a small selection of core PCI devices and
# controllers; the user will then have to explicitly add
# further devices.
#
# The core PCI devices show up in the guest as:
#
#   00:00.0 Host bridge
#   00:1f.0 ISA bridge / LPC
#   00:1f.2 SATA (AHCI) controller
#   00:1f.3 SMBus controller
#
# This configuration file adds a number of devices that
# are pretty much guaranteed to be present in every single
# physical machine based on q35, more specifically:
#
#   00:01.0 VGA compatible controller
#   00:19.0 Ethernet controller
#   00:1a.* USB controller (#2)
#   00:1b.0 Audio device
#   00:1c.* PCI bridge (PCI Express Root Ports)
#   00:1d.* USB Controller (#1)
#   00:1e.0 PCI bridge (legacy PCI bridge)
#
# More information about these devices is available below.


# Machine options
# =========================================================
#
# We use the q35 machine type and enable KVM acceleration
# for better performance.
#
# Using less than 1 GiB of memory is probably not going to
# yield good performance in the guest, and might even lead
# to obscure boot issues in some cases.
#
# Unfortunately, there is no way to configure the CPU model
# in this file, so it will have to be provided on the
# command line.

[machine]
  type = "q35"
  accel = "kvm"

[memory]
  size = "1024"


# PCI bridge (PCI Express Root Ports)
# =========================================================
#
# We add four PCI Express Root Ports, all sharing the same
# slot on the PCI Express  Root Bus. These ports support
# hotplug.

[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"


# PCI bridge (legacy PCI bridge)
# =========================================================
#
# This bridge can be used to build an independent topology
# for legacy PCI devices. PCI Express devices should be
# plugged into PCI Express slots instead, so ideally there
# will be no devices connected to this bridge.

[device "ich9-pci-bridge"]
  driver = "i82801b11-bridge"
  bus = "pcie.0"
  addr = "1e.0"


# SATA storage
# =========================================================
#
# An implicit SATA controller is created automatically for
# every single q35 guest; here we create a disk, backed by
# a qcow2 disk image on the host's filesystem, and attach
# it to that controller so that the guest can use it.
#
# We also create an optical disk, mostly for installation
# purposes: once the guest OS has been succesfully
# installed, the guest will no longer boot from optical
# media. If you don't want, or no longer want, to have an
# optical disk in the guest you can safely comment out
# all relevant sections below.

[device "sata-disk"]
  driver = "ide-hd"
  bus = "ide.0"
  drive = "disk"
  bootindex = "1"

[drive "disk"]
  file = "guest.qcow2"                          # CHANGE ME
  format = "qcow2"
  if = "none"

[device "sata-optical-disk"]
  driver = "ide-cd"
  bus = "ide.1"
  drive = "optical-disk"
  bootindex = "2"

[drive "optical-disk"]
  file = "install.iso"                          # CHANGE ME
  format = "raw"
  if = "none"


# USB controller (#1)
# =========================================================
#
# EHCI controller + UHCI companion controllers.

[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"


# USB controller (#2)
# =========================================================
#
# EHCI controller + UHCI companion controllers.

[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"


# Ethernet controller
# =========================================================
#
# We add a Gigabit Ethernet interface to the guest; on the
# host side, we take advantage of user networking so that
# the QEMU process doesn't require any additional
# privileges.

[netdev "hostnet"]
  type = "user"

[device "net"]
  driver = "e1000"
  netdev = "hostnet"
  bus = "pcie.0"
  addr = "19.0"


# VGA compatible controller
# =========================================================
#
# We use stdvga instead of Cirrus as it supports more video
# modes and is closer to what actual hardware looks like.
#
# If you're running the guest on a remote, potentially
# headless host, you will probably want to append something
# like
#
#   -display vnc=127.0.0.1:0
#
# to the command line in order to prevent QEMU from
# creating a graphical display window on the host and
# enable remote access instead.

[device "video"]
  driver = "VGA"
  bus = "pcie.0"
  addr = "01.0"


# Audio device
# =========================================================
#
# The sound card is a legacy PCI device that is plugged
# directly into the PCI Express Root Bus.

[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"
