# 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 successfully
# 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"
