################################################################
#
# qemu -M q35 creates a bare machine with just the very essential
# chipset devices being present:
#
#     00.0 - Host bridge
#     1f.0 - ISA bridge / LPC
#     1f.2 - SATA (AHCI) controller
#     1f.3 - SMBus controller
#
# This config file documents the other devices and how they are
# created.  You can simply use "-readconfig $thisfile" to create
# them all.  Here is a overview:
#
#     19.0 - Ethernet controller (not created, our e1000 emulation
#                                 doesn't emulate the ich9 device).
#     1a.* - USB Controller #2 (ehci + uhci companions)
#     1b.0 - HD Audio Controller
#     1c.* - PCI Express Ports
#     1d.* - USB Controller #1 (ehci + uhci companions,
#                               "qemu -M q35 -usb" creates these too)
#     1e.0 - PCI Bridge
#

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

##
# Example PCIe switch with two downstream ports
#
#[device "pcie-switch-upstream-port-1"]
#  driver = "x3130-upstream"
#  bus = "ich9-pcie-port-4"
#  addr = "00.0"
#
#[device "pcie-switch-downstream-port-1-1"]
#  driver = "xio3130-downstream"
#  multifunction = "on"
#  bus = "pcie-switch-upstream-port-1"
#  addr = "00.0"
#  port = "1"
#  chassis = "5"
#
#[device "pcie-switch-downstream-port-1-2"]
#  driver = "xio3130-downstream"
#  multifunction = "on"
#  bus = "pcie-switch-upstream-port-1"
#  addr = "00.1"
#  port = "1"
#  chassis = "6"

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