Hi,
Real Q35 hardware has an ICH9 chip that includes several integrated
devices at particular addresses (see the file docs/q35-chipset.cfg in
the qemu source). libvirt already attempts to put the first two sets
of ich9 USB2 controllers it finds at 00:1D.* and 00:1A.* to match the
real hardware. This patch does the same for the ich9 "HD audio"
device.
While being at it: Ethernet is in the same boat. It is a integrated
device at slot 00:19.0. Some e1000 version on older chipsets, e1000e on
newer ones (here my T530):
nilsson root ~# lspci -vs19
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network
Connection (rev 04)
Subsystem: Lenovo Device 21f3
Flags: bus master, fast devsel, latency 0, IRQ 27
Memory at f2500000 (32-bit, non-prefetchable) [size=128K]
Memory at f253b000 (32-bit, non-prefetchable) [size=4K]
I/O ports at 5080 [size=32]
Capabilities: [c8] Power Management version 2
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [e0] PCI Advanced Features
Kernel driver in use: e1000e
Kernel modules: e1000e
So we might do the same here instead of placing it in a pcie root port
(patch 12/18). I think we don't emulate the ich9 e1000 variant though.
2) convince qemu to add a PCI Express sound device (I'm not sure
which
one would be most appropriate).
For reference: It's still @ 00:1b.0 in recent chipsets as integrated
device, it is still the same hardware (again my T530):
nilsson root ~# lspci -vs1b
00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset
Family High Definition Audio Controller (rev 04)
Subsystem: Lenovo Device 21f6
Flags: bus master, fast devsel, latency 0, IRQ 32
Memory at f2530000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Root Complex Integrated Endpoint, MSI
00
Capabilities: [100] Virtual Channel
Capabilities: [130] Root Complex Link
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
cheers,
Gerd