Merge remote-tracking branch 'kraxel/q35.1' into staging
* kraxel/q35.1: Makefile: install the "acpi-dsdt.aml" and "q35-acpi-dsdt.aml" blobs too pc: rename machine types q35: document chipset devices q35: add ich9 intel hda controller Conflicts: hw/intel-hda.c aliguori: resolve conflict with static const change from Andreas. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
commit
e2848a78b0
1
Makefile
1
Makefile
@ -280,6 +280,7 @@ bepo
|
||||
ifdef INSTALL_BLOBS
|
||||
BLOBS=bios.bin sgabios.bin vgabios.bin vgabios-cirrus.bin \
|
||||
vgabios-stdvga.bin vgabios-vmware.bin vgabios-qxl.bin \
|
||||
acpi-dsdt.aml q35-acpi-dsdt.aml \
|
||||
ppc_rom.bin openbios-sparc32 openbios-sparc64 openbios-ppc \
|
||||
pxe-e1000.rom pxe-eepro100.rom pxe-ne2k_pci.rom \
|
||||
pxe-pcnet.rom pxe-rtl8139.rom pxe-virtio.rom \
|
||||
|
129
docs/q35-chipset.cfg
Normal file
129
docs/q35-chipset.cfg
Normal file
@ -0,0 +1,129 @@
|
||||
################################################################
|
||||
#
|
||||
# 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"
|
||||
|
||||
|
||||
[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"
|
@ -1232,7 +1232,7 @@ static Property intel_hda_properties[] = {
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
};
|
||||
|
||||
static void intel_hda_class_init(ObjectClass *klass, void *data)
|
||||
static void intel_hda_class_init_common(ObjectClass *klass)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
|
||||
@ -1240,20 +1240,46 @@ static void intel_hda_class_init(ObjectClass *klass, void *data)
|
||||
k->init = intel_hda_init;
|
||||
k->exit = intel_hda_exit;
|
||||
k->vendor_id = PCI_VENDOR_ID_INTEL;
|
||||
k->device_id = 0x2668;
|
||||
k->revision = 1;
|
||||
k->class_id = PCI_CLASS_MULTIMEDIA_HD_AUDIO;
|
||||
dc->desc = "Intel HD Audio Controller";
|
||||
dc->reset = intel_hda_reset;
|
||||
dc->vmsd = &vmstate_intel_hda;
|
||||
dc->props = intel_hda_properties;
|
||||
}
|
||||
|
||||
static const TypeInfo intel_hda_info = {
|
||||
static void intel_hda_class_init_ich6(ObjectClass *klass, void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
|
||||
|
||||
intel_hda_class_init_common(klass);
|
||||
k->device_id = 0x2668;
|
||||
k->revision = 1;
|
||||
dc->desc = "Intel HD Audio Controller (ich6)";
|
||||
}
|
||||
|
||||
static void intel_hda_class_init_ich9(ObjectClass *klass, void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
|
||||
|
||||
intel_hda_class_init_common(klass);
|
||||
k->device_id = 0x293e;
|
||||
k->revision = 3;
|
||||
dc->desc = "Intel HD Audio Controller (ich9)";
|
||||
}
|
||||
|
||||
static const TypeInfo intel_hda_info_ich6 = {
|
||||
.name = "intel-hda",
|
||||
.parent = TYPE_PCI_DEVICE,
|
||||
.instance_size = sizeof(IntelHDAState),
|
||||
.class_init = intel_hda_class_init,
|
||||
.class_init = intel_hda_class_init_ich6,
|
||||
};
|
||||
|
||||
static const TypeInfo intel_hda_info_ich9 = {
|
||||
.name = "ich9-intel-hda",
|
||||
.parent = TYPE_PCI_DEVICE,
|
||||
.instance_size = sizeof(IntelHDAState),
|
||||
.class_init = intel_hda_class_init_ich9,
|
||||
};
|
||||
|
||||
static void hda_codec_device_class_init(ObjectClass *klass, void *data)
|
||||
@ -1277,7 +1303,8 @@ static const TypeInfo hda_codec_device_type_info = {
|
||||
static void intel_hda_register_types(void)
|
||||
{
|
||||
type_register_static(&hda_codec_bus_info);
|
||||
type_register_static(&intel_hda_info);
|
||||
type_register_static(&intel_hda_info_ich6);
|
||||
type_register_static(&intel_hda_info_ich9);
|
||||
type_register_static(&hda_codec_device_type_info);
|
||||
}
|
||||
|
||||
|
@ -282,10 +282,10 @@ static void pc_xen_hvm_init(QEMUMachineInitArgs *args)
|
||||
}
|
||||
#endif
|
||||
|
||||
static QEMUMachine pc_machine_v1_4 = {
|
||||
.name = "pc-1.4",
|
||||
static QEMUMachine pc_i440fx_machine_v1_4 = {
|
||||
.name = "pc-i440fx-1.4",
|
||||
.alias = "pc",
|
||||
.desc = "Standard PC",
|
||||
.desc = "Standard PC (i440FX + PIIX, 1996)",
|
||||
.init = pc_init_pci_1_3,
|
||||
.max_cpus = 255,
|
||||
.is_default = 1,
|
||||
@ -646,7 +646,7 @@ static QEMUMachine xenfv_machine = {
|
||||
|
||||
static void pc_machine_init(void)
|
||||
{
|
||||
qemu_register_machine(&pc_machine_v1_4);
|
||||
qemu_register_machine(&pc_i440fx_machine_v1_4);
|
||||
qemu_register_machine(&pc_machine_v1_3);
|
||||
qemu_register_machine(&pc_machine_v1_2);
|
||||
qemu_register_machine(&pc_machine_v1_1);
|
||||
|
@ -209,9 +209,9 @@ static void pc_q35_init(QEMUMachineInitArgs *args)
|
||||
}
|
||||
|
||||
static QEMUMachine pc_q35_machine = {
|
||||
.name = "q35-next",
|
||||
.name = "pc-q35-1.4",
|
||||
.alias = "q35",
|
||||
.desc = "Q35 chipset PC",
|
||||
.desc = "Standard PC (Q35 + ICH9, 2009)",
|
||||
.init = pc_q35_init,
|
||||
.max_cpus = 255,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user