All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: "Michael S. Tsirkin" <mst@redhat.com>, Jason Baron <jbaron@redhat.com>
Cc: alex.williamson@redhat.com, jan.kiszka@siemens.com,
	qemu-devel@nongnu.org, agraf@suse.de, yamahata@valinux.co.jp,
	juzhang@redhat.com, kevin@koconnor.net, avi@redhat.com,
	mkletzan@redhat.com, lcapitulino@redhat.com, afaerber@suse.de,
	armbru@redhat.com
Subject: Re: [Qemu-devel] [PATCH 11/25] q35: Introduce q35 pc based chipset emulator
Date: Sun, 16 Sep 2012 09:48:25 -0500	[thread overview]
Message-ID: <87k3vunhvq.fsf@codemonkey.ws> (raw)
In-Reply-To: <20120915181412.GA15606@redhat.com>

"Michael S. Tsirkin" <mst@redhat.com> writes:

> On Thu, Sep 13, 2012 at 04:12:42PM -0400, Jason Baron wrote:
>> diff --git a/hw/pc_q35.c b/hw/pc_q35.c
>> new file mode 100644
>> index 0000000..4f75d97
>> --- /dev/null
>> +++ b/hw/pc_q35.c
>> @@ -0,0 +1,378 @@
>> +/*
>> + * QEMU PC System Emulator
>> + *
>> + * Copyright (c) 2003-2004 Fabrice Bellard
>> + *
>> + * Permission is hereby granted, free of charge, to any person obtaining a copy
>> + * of this software and associated documentation files (the "Software"), to deal
>> + * in the Software without restriction, including without limitation the rights
>> + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
>> + * copies of the Software, and to permit persons to whom the Software is
>> + * furnished to do so, subject to the following conditions:
>> + *
>> + * The above copyright notice and this permission notice shall be included in
>> + * all copies or substantial portions of the Software.
>> + *
>> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
>> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
>> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
>> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
>> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
>> + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
>> + * THE SOFTWARE.
>> + */
>> +/*
>> + *  Q35 chipset based pc system emulator
>> + *
>> + *  Copyright (c) 2009, 2010
>> + *                     Isaku Yamahata <yamahata at valinux co jp>
>> + *                     VA Linux Systems Japan K.K.
>> + *
>> + *  This is based on pc.c, but heavily modified.
>> + *
>> + * This library is free software; you can redistribute it and/or
>> + * modify it under the terms of the GNU Lesser General Public
>> + * License as published by the Free Software Foundation; either
>> + * version 2 of the License, or (at your option) any later version.
>> + *
>> + * This library is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
>> + * Lesser General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU Lesser General Public
>> + * License along with this library; if not, see <http://www.gnu.org/licenses/>
>> + */
>> +#include "hw.h"
>> +#include "arch_init.h"
>> +#include "pc.h"
>> +#include "fdc.h"
>> +#include "pci.h"
>> +#include "pci_bridge.h"
>> +#include "pci_p2pbr.h"
>> +#include "ioh3420.h"
>> +#include "xio3130_upstream.h"
>> +#include "xio3130_downstream.h"
>> +#include "block.h"
>> +#include "blockdev.h"
>> +#include "sysemu.h"
>> +#include "audio/audio.h"
>> +#include "net.h"
>> +#include "smbus.h"
>> +#include "boards.h"
>> +#include "monitor.h"
>> +#include "fw_cfg.h"
>> +#include "hpet_emul.h"
>> +#include "watchdog.h"
>> +#include "smbios.h"
>> +#include "ide.h"
>> +#include "usb-uhci.h"
>> +
>> +#include "q35.h"
>> +
>> +/* ICH9 AHCI has 6 ports */
>> +#define MAX_SATA_PORTS     6
>> +
>> +#define I21154_REV            0x05
>> +#define I21154_PI             0x00
>> +
>> +static PCIBridge *i21154_init(PCIBus *bus, int devfn, const char *bus_name,
>> +                              bool multifunction)
>> +{
>> +    const PCIP2PBridgeInit init = {
>> +        .bus = bus,
>> +        .devfn = devfn,
>> +        .multifunction = multifunction,
>> +
>> +        .bus_name = bus_name,
>> +        .map_irq = pci_swizzle_map_irq_fn,
>> +    };
>> +    const PCIP2PBridgeProp prop = {
>> +        .vendor_id = PCI_VENDOR_ID_DEC,
>> +        .device_id = PCI_DEVICE_ID_DEC_21154,
>> +        .revision_id = I21154_REV,
>> +        .prog_interface = I21154_PI,
>> +    };
>> +    return pci_p2pbr_create_simple(&init, &prop);
>> +}
>> +
>> +static void pc_q35_bridge_init(PCIBus *host_bus, PCIBus *pci_bus)
>> +{
>> +    uint8_t dev;
>> +    uint8_t sec_bus;
>> +    uint8_t port = 0;
>> +    uint8_t chassis = 0;
>> +    uint16_t slot = 0;
>> +    uint8_t upstream_port;
>> +    PCIESlot *s;
>> +    uint8_t fn;
>> +    PCIESlot *root_port;
>> +    PCIBus *root_port_bus;
>> +    char buf[16];
>> +
>> +    /* PCI to PCI bridge b6:d[29 - 31]:f0, 6:[1c - 1f].0 with subordinate bus
>> +       of 7 - 9 on b0:d30:f0, 0.1e.0 = bus */
>> +#define Q35_P2P_BRDIGE_DEV_BASE         28
>> +#define Q35_P2P_BRDIGE_DEV_MAX          32
>> +#define Q35_P2P_BRDIGE_SUBBUS_BASE      (ICH9_D2P_SECONDARY_DEFAULT + 1)
>> +    for (dev = Q35_P2P_BRDIGE_DEV_BASE; dev < Q35_P2P_BRDIGE_DEV_MAX; dev++) {
>> +        PCIBridge *br;
>> +        sec_bus = Q35_P2P_BRDIGE_SUBBUS_BASE + dev - Q35_P2P_BRDIGE_DEV_BASE;
>> +
>> +        snprintf(buf, sizeof(buf), "pci.%d", sec_bus);
>> +        br = i21154_init(pci_bus, PCI_DEVFN(dev, 0), buf, true);
>> +    }
>> +
>> +    /* PCIe root port b0:d1:f0 in GMCH.
>> +     * Actually it's vid/did = 0x8086:0x29c1, but we substitute ioh for it.
>> +     */
>> +    sec_bus = 32;
>> +    snprintf(buf, sizeof(buf), "pcie.%d", sec_bus);
>> +    s = ioh3420_init(host_bus, PCI_DEVFN(GMCH_PCIE_DEV, GMCH_PCIE_FUNC), true,
>> +                     buf, pci_swizzle_map_irq_fn, port, chassis, slot);
>> +
>> +
>> +    /* more slots. ICH9 doesn't have those, but many slots are wanted. */
>> +//#define Q35_MANY_SLOTS
>> +#undef Q35_MANY_SLOTS
>> +
>> +#ifdef Q35_MANY_SLOTS
>> +#define Q35_NR_ROOTPORT         6
>> +#define Q35_NR_UPSTREAM         8
>> +#define Q35_NR_DOWNSTREAM       16
>> +#else
>> +#define Q35_NR_ROOTPORT         1
>> +#define Q35_NR_UPSTREAM         1
>> +#define Q35_NR_DOWNSTREAM       1
>> +#endif
>> +
>> +    /* PCIe root port b0:d23:f[0-5], 0.17.[0-5] */
>> +    for (fn = 0; fn < Q35_NR_ROOTPORT; fn++) {
>> +        sec_bus++;
>> +        port++;
>> +        slot++;
>> +
>> +        snprintf(buf, sizeof(buf), "pcie.%d", sec_bus);
>> +        s = ioh3420_init(host_bus, PCI_DEVFN(23, fn), true,
>> +                         buf, pci_swizzle_map_irq_fn, port, chassis, slot);
>> +    }
>> +
>> +    /* PCIe root port b0:d24:f0 */
>> +    sec_bus++;
>> +    port++;
>> +    slot++;
>> +    snprintf(buf, sizeof(buf), "pcie.%d", sec_bus);
>> +    root_port = ioh3420_init(host_bus, PCI_DEVFN(24, 0), true,
>> +                             buf, pci_swizzle_map_irq_fn, port, chassis, slot);
>> +    root_port_bus = pci_bridge_get_sec_bus(&root_port->port.br);
>> +
>> +    /* 8 * 16 = 128 slots */
>> +    upstream_port = 0;
>> +    for (fn = 0; fn < Q35_NR_UPSTREAM; fn++) {
>> +        PCIEPort *upstream;
>> +        PCIBus *upstream_bus;
>> +        uint16_t downstream_port;
>> +
>> +        uint8_t ds_dev_max;
>> +        uint8_t ds_dev;
>> +        uint8_t ds_fn_max;
>> +        uint8_t ds_fn;
>> +
>> +        /* PCIe upstream port d0:f[0-7] */
>> +        sec_bus++;
>> +        snprintf(buf, sizeof(buf), "pcie.%d", sec_bus);
>> +        upstream = xio3130_upstream_init(root_port_bus, PCI_DEVFN(0, fn),
>> +                                         true, buf, pci_swizzle_map_irq_fn,
>> +                                         upstream_port);
>> +
>> +        upstream_bus = pci_bridge_get_sec_bus(&upstream->br);
>> +        upstream_port++;
>> +
>> +        /* PCIe downstream port */
>> +        downstream_port = 0;
>> +        ds_fn_max = MIN(Q35_NR_DOWNSTREAM / PCI_SLOT_MAX, PCI_FUNC_MAX);
>> +        ds_dev_max = MIN(Q35_NR_DOWNSTREAM / (ds_fn_max + 1), PCI_SLOT_MAX);
>> +
>> +        for (ds_dev = 0; ds_dev <= ds_dev_max &&
>> +                 downstream_port < Q35_NR_DOWNSTREAM; ds_dev++) {
>> +            for (ds_fn = 0; ds_fn <= ds_fn_max &&
>> +                     downstream_port < Q35_NR_DOWNSTREAM; ds_fn++) {
>> +                sec_bus++;
>> +                slot++;
>> +                snprintf(buf, sizeof(buf), "pcie.%d", sec_bus);
>> +
>> +                xio3130_downstream_init(upstream_bus, PCI_DEVFN(ds_dev, ds_fn),
>> +                                        true, buf, pci_swizzle_map_irq_fn,
>> +                                        downstream_port, chassis, slot);
>> +                downstream_port++;
>> +            }
>> +        }
>> +    }
>> +
>> +    /* PCIe root port b0:d28:f[0-6] in ICH9.
>> +     * Actually it's vid/did = 0x8086:0x294[02468A], but we substitute ioh
>> +     * for them.
>> +     */
>> +    for (fn = 0; fn < ICH9_PCIE_FUNC_MAX; fn++) {
>> +        sec_bus++;
>> +        port++;
>> +        slot++;
>> +
>> +        snprintf(buf, sizeof(buf), "pcie.%d", sec_bus);
>> +        s = ioh3420_init(host_bus, PCI_DEVFN(ICH9_PCIE_DEV, fn), true,
>> +                         buf, pci_swizzle_map_irq_fn,
>> +                         port, chassis, slot);
>> +    }
>> +}
>> +
>> +static void pc_q35_init_early(qemu_irq *isa_irq, IsaIrqState *isa_irq_state,
>> +                              DeviceState **gmch_host_p,
>> +                              PCIBus **host_bus_p, PCIBus **pci_bus_p,
>> +                              PCIDevice **lpc_p)
>> +{
>> +    DeviceState *gmch_host;
>> +    PCIBus *host_bus;
>> +    PCIBus *pci_bus;
>> +
>> +    PCIDevice *gmch_state;
>> +    PCIDevice *lpc;
>> +
>> +    /* create pci host bus */
>> +    host_bus = gmch_host_init(&gmch_host, isa_irq, isa_irq_state->ioapic);
>> +    gmch_state = gmch_init(gmch_host, host_bus);
>> +
>> +    /* create conventional pci bus: pcie2pci bridge */
>> +    pci_bus = ich9_d2pbr_init(host_bus, PCI_DEVFN(ICH9_D2P_BRIDGE_DEV,
>> +                                                  ICH9_D2P_BRIDGE_FUNC),
>> +                              ICH9_D2P_SECONDARY_DEFAULT);
>> +
>> +    /* create child pci/pcie buses */
>> +    pc_q35_bridge_init(host_bus, pci_bus);
>> +
>> +    /* create ISA bus */
>> +    lpc = gmch_lpc_init(gmch_host, host_bus);
>> +
>> +    *gmch_host_p = gmch_host;
>> +    *host_bus_p = host_bus;
>> +    *pci_bus_p = pci_bus;
>> +    *lpc_p = lpc;
>> +}
>> +
>> +static void pc_q35_init_late(BusState **idebus, ISADevice *rtc_state,
>> +                             DeviceState *gmch_host,
>> +                             PCIBus *host_bus, PCIBus *pci_bus,
>> +                             PCIDevice *lpc)
>> +{
>> +    qemu_irq *cmos_s3;
>> +    PCIDevice *ahci;
>> +    DriveInfo *hd[MAX_SATA_PORTS * MAX_IDE_DEVS];
>> +
>> +    /* connect pm stuff to lpc */
>> +    cmos_s3 = qemu_allocate_irqs(pc_cmos_set_s3_resume, rtc_state, 1);
>> +    ich9_lpc_pm_init(gmch_host, lpc, *cmos_s3);
>> +
>> +    /* ahci and SATA device */
>> +    ide_drive_get(hd, MAX_SATA_PORTS);
>> +    ahci = pci_create_simple_multifunction(host_bus,
>> +                                           PCI_DEVFN(ICH9_SATA1_DEV,
>> +                                                     ICH9_SATA1_FUNC),
>> +                                           true, "ich9-ahci");
>> +    pci_ahci_ide_create_devs(ahci, hd);
>> +    idebus[0] = qdev_get_child_bus(&ahci->qdev, "ide.0");
>> +    idebus[1] = qdev_get_child_bus(&ahci->qdev, "ide.1");
>> +
>> +    if (usb_enabled) {
>> +        /* Should we create 6 UHCI according to ich9 spec? */
>> +        pci_create_simple_multifunction(
>> +            host_bus, PCI_DEVFN(ICH9_USB_UHCI1_DEV, ICH9_USB_UHCI1_FUNC),
>> +            true, "ich9-usb-uhci1");
>> +        /* XXX: EHCI */
>> +    }
>> +
>> +    /* TODO: Populate SPD eeprom data.  */
>> +    smbus_eeprom_init(ich9_smb_init(host_bus,
>> +                                    PCI_DEVFN(ICH9_SMB_DEV, ICH9_SMB_FUNC),
>> +                                    0xb100),
>> +                      8, NULL, 0);
>> +}
>> +
>> +/* PC hardware initialisation */
>> +static void pc_q35_init(ram_addr_t ram_size,
>> +                        const char *boot_device,
>> +                        const char *kernel_filename,
>> +                        const char *kernel_cmdline,
>> +                        const char *initrd_filename,
>> +                        const char *cpu_model)
>> +{
>> +    ram_addr_t below_4g_mem_size, above_4g_mem_size;
>> +    DeviceState *gmch_host;
>> +    PCIBus *host_bus;
>> +    PCIBus *pci_bus;
>> +    PCIDevice *lpc;
>> +    qemu_irq *isa_irq;
>> +    IsaIrqState *isa_irq_state;
>> +    BusState *idebus[MAX_SATA_PORTS];
>> +    ISADevice *rtc_state;
>> +    MemoryRegion *pci_memory;
>> +    MemoryRegion *rom_memory;
>> +    MemoryRegion *ram_memory;
>> +
>> +    pc_cpus_init(cpu_model);
>> +
>> +    /* FIXME: add kvm clock ? */
>> +
>> +    if (ram_size >= 0xe0000000) {
>> +        above_4g_mem_size = ram_size - 0xe0000000;
>> +        below_4g_mem_size = 0xe0000000;
>> +    } else {
>> +        above_4g_mem_size = 0;
>> +        below_4g_mem_size = ram_size;
>> +    }
>> +
>> +    /* pci enabled */
>> +    pci_memory = g_new(MemoryRegion, 1);
>> +    memory_region_init(pci_memory, "pci", INT64_MAX);
>> +    rom_memory = pci_memory;
>> +
>> +    /* allocate ram and load rom/bios */
>> +    pc_memory_init(get_system_memory(), kernel_filename, kernel_cmdline,
>> +                   initrd_filename, below_4g_mem_size, above_4g_mem_size,
>> +                   rom_memory, &ram_memory);
>> +
>> +    /* irq lines */
>> +    isa_irq = pc_isa_irq(&isa_irq_state);
>> +    ioapic_init(isa_irq_state);
>> +
>> +    pc_q35_init_early(isa_irq, isa_irq_state,
>> +                      &gmch_host, &host_bus, &pci_bus, &lpc);
>> +    isa_bus_irqs(isa_irq);
>> +    pc_register_ferr_irq(isa_get_irq(13));
>> +
>> +    /* init basic PC hardware */
>> +    pc_basic_device_init(isa_irq, &rtc_state, false);
>> +
>> +    pc_q35_init_late(idebus, rtc_state, gmch_host, host_bus, pci_bus, lpc);
>> +
>> +    pc_cmos_init(below_4g_mem_size, above_4g_mem_size, boot_device,
>> +                 idebus[0], idebus[1], rtc_state);
>> +
>> +    /* the rest devices to which pci devfn is automatically assigned */
>> +    pc_vga_init(host_bus);
>> +    audio_init(isa_irq, pci_bus);
>> +    pc_nic_init(pci_bus);
>> +    pc_pci_device_init(pci_bus);
>> +}
>> +
>> +static QEMUMachine pc_q35_machine = {
>> +    .name = "pc_q35",
>> +    .desc = "Q35 chipset PC",
>> +    .init = pc_q35_init,
>> +    .max_cpus = 255,
>> +};
>> +
>> +static void pc_q35_machine_init(void)
>> +{
>> +    qemu_register_machine(&pc_q35_machine);
>> +}
>> +
>> +machine_init(pc_q35_machine_init);
>
> I wonder if it's possible for q35 to have no devices
> at all in the default machine and have it
> fully qualified by -device switches?
>
> I envision -M qemu-1.3 switch that does exactly that,
> so that machine type only handles things like
> cross version compatibility.

It's more than just "no devices".  It's a matter of proper modeling of
the chipset, the super I/O chip, and peripherals.

Regards,

Anthony Liguori

>
> -- 
> MST

  reply	other threads:[~2012-09-16 14:48 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-13 20:12 [Qemu-devel] [PATCH 00/25] q35 series take #1 Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 01/25] pci: pci capability must be in PCI space Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 02/25] pci: add opaque argument to pci_map_irq_fn Jason Baron
2012-09-14 16:32   ` Alex Williamson
2012-09-13 20:12 ` [Qemu-devel] [PATCH 03/25] pci: introduce pci_swizzle_map_irq_fn() for standardized interrupt pin swizzle Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 04/25] ahci: add ide device initialization helper Jason Baron
2012-09-21 14:05   ` Markus Armbruster
2012-09-21 19:37     ` Jason Baron
2012-09-24 16:52       ` Markus Armbruster
2012-09-24 17:23         ` Jason Baron
2012-09-26  8:15           ` Markus Armbruster
2012-09-26 10:43             ` Kevin Wolf
2012-09-27 17:59             ` Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 05/25] pc, pc_piix: split out pc nic initialization Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 06/25] pc: Move ioapic_init() from pc_piix.c to pc.c Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 07/25] pc/piix_pci: factor out smram/pam logic Jason Baron
2012-09-14 18:52   ` Blue Swirl
2012-09-13 20:12 ` [Qemu-devel] [PATCH 08/25] pci_ids: add intel 82801BA pci-to-pci bridge id and PCI_CLASS_SERIAL_SMBUS Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 10/25] pcie: Convert PCIExpressHost to use the QOM Jason Baron
2012-09-15 15:16   ` Andreas Färber
2012-09-13 20:12 ` [Qemu-devel] [PATCH 09/25] pcie: pass pcie window size to pcie_host_mmcfg_update() Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 11/25] q35: Introduce q35 pc based chipset emulator Jason Baron
2012-09-14  7:02   ` Paolo Bonzini
2012-09-14  7:37   ` Gerd Hoffmann
2012-09-14 14:11     ` Jason Baron
2012-09-18 21:28     ` Alex Williamson
2012-09-14 12:26   ` Michael S. Tsirkin
2012-09-14 15:20     ` Jason Baron
2012-09-15 18:14   ` Michael S. Tsirkin
2012-09-16 14:48     ` Anthony Liguori [this message]
2012-09-16 15:14       ` Michael S. Tsirkin
2012-09-13 20:12 ` [Qemu-devel] [PATCH 12/25] q35: Re-base q35 to 1.2 Jason Baron
2012-09-14 19:07   ` Blue Swirl
2012-09-13 20:12 ` [Qemu-devel] [PATCH 14/25] q35: Fix non-PCI IRQ processing in ich9_lpc_update_apic Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 13/25] q35: Suppress SMM BIOS initialization under KVM Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 15/25] q35: smbus: Remove PCI_STATUS_SIG_SYSTEM_ERROR and PCI_STATUS_DETECTED_PARITY from w1cmask Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 16/25] pci: Add class 0xc05 as 'SMBus' Jason Baron
2012-09-14  7:04   ` Paolo Bonzini
2012-09-14 14:24     ` Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 17/25] q35: Add kvmclock support Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 19/25] ahci: add migration support Jason Baron
2012-09-14  8:38   ` Juan Quintela
2012-09-13 20:12 ` [Qemu-devel] [PATCH 18/25] q35: Fix irr initialization for slots 25..31 Jason Baron
2012-09-14  7:05   ` Paolo Bonzini
2012-09-14 14:28     ` Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 20/25] pcie: drop version_id field for live migration Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 22/25] ahci: properly reset PxCMD on HBA reset Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 21/25] pcie_aer: clear cmask for Advanced Error Interrupt Message Number Jason Baron
2012-09-13 20:12 ` [Qemu-devel] [PATCH 23/25] q35: add acpi-based pci hotplug Jason Baron
2012-09-14 18:56   ` Blue Swirl
2012-09-13 20:12 ` [Qemu-devel] [PATCH 25/25] q35: automatically load the q35 dsdt table Jason Baron
2012-09-14  7:08   ` Paolo Bonzini
2012-09-14  7:25     ` Gerd Hoffmann
2012-09-14  7:34       ` Paolo Bonzini
2012-09-13 20:12 ` [Qemu-devel] [PATCH 24/25] Add a fallback bios file search, if -L fails Jason Baron
2012-09-14  7:09   ` Paolo Bonzini
2012-09-14 10:54   ` Peter Maydell
2012-09-14 19:15   ` Blue Swirl
2012-09-13 22:29 ` [Qemu-devel] [PATCH 00/25] q35 series take #1 Alexander Graf
2012-09-14 13:50   ` Jason Baron
2012-09-14 13:56     ` Alexander Graf
2012-09-14 14:08       ` Jason Baron
2012-09-14 14:12         ` Alexander Graf
2012-09-14 15:37           ` Kevin Wolf
2012-09-14 15:14 ` Isaku Yamahata
2012-09-14 15:23   ` Jason Baron
2012-09-14 17:34     ` Isaku Yamahata
2012-09-14 19:01       ` Jason Baron
2012-09-15  0:24         ` Isaku Yamahata
2012-09-15 11:33           ` Paolo Bonzini
2012-09-15 17:35             ` Michael S. Tsirkin
2012-09-15 18:05           ` Michael S. Tsirkin
2012-09-15 17:40         ` Michael S. Tsirkin
2012-09-15 18:02   ` Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k3vunhvq.fsf@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=afaerber@suse.de \
    --cc=agraf@suse.de \
    --cc=alex.williamson@redhat.com \
    --cc=armbru@redhat.com \
    --cc=avi@redhat.com \
    --cc=jan.kiszka@siemens.com \
    --cc=jbaron@redhat.com \
    --cc=juzhang@redhat.com \
    --cc=kevin@koconnor.net \
    --cc=lcapitulino@redhat.com \
    --cc=mkletzan@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yamahata@valinux.co.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.