From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MsxtP-0006k3-PG for qemu-devel@nongnu.org; Wed, 30 Sep 2009 08:02:47 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MsxtL-0006iB-7a for qemu-devel@nongnu.org; Wed, 30 Sep 2009 08:02:47 -0400 Received: from [199.232.76.173] (port=34490 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MsxtK-0006i1-OU for qemu-devel@nongnu.org; Wed, 30 Sep 2009 08:02:42 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50677) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MsxtJ-0003HV-Rk for qemu-devel@nongnu.org; Wed, 30 Sep 2009 08:02:42 -0400 Date: Wed, 30 Sep 2009 14:00:38 +0200 From: "Michael S. Tsirkin" Message-ID: <20090930120038.GO18802@redhat.com> References: <1254305917-14784-1-git-send-email-yamahata@valinux.co.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1254305917-14784-1-git-send-email-yamahata@valinux.co.jp> Subject: [Qemu-devel] Re: [PATCH 00/61] Q35 chip set and stuff. List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Isaku Yamahata Cc: qemu-devel@nongnu.org On Wed, Sep 30, 2009 at 07:17:36PM +0900, Isaku Yamahata wrote: > This patch set is for Q35 chipset(GMCH and ICH9) based PC. > > Anthony, > I'm aware that this patch set is already conflicting to other's patches. > Which tree/changeset do you want me to rebase? > Your staging qemu repo doesn't seem to include the latest patches. > As I'm seeing regular patch conflicts, I need your help as a maintainer. > > The motivation is to support newer hardware features because > piix chipset is very old. > Especially I have PCI express in mind and this is the basic > infrastructure for PCI express hot plug and PCI express native > direct attach. > With this patch set, you can see PCIe MMCONFIG space and 3+ PCI busses. > I haven't implemented PCI express port/switch and PCI express hot plug. > This is my next TODO. and then PCI express native direct attach/passthrough > > I can boot Linux 2.6.30 with PCIe MMCONFIG with APIC mode pci interrupt > routing. I haven't tested other OSes. > (I patches linux kernel to test MMCONFIG because Linux uses conventional > IO port to PCI config space, i.e. 256) > To use this patch, bios also needs patches I'll sent out soon. > > > Firstly this patch set splits up current piix pc code into > piix specific code and common code. > Those patches are almost same as the one I sent out before. > And then PCI related patches comes in. They cleans up PCI related code > , implements PCIe MMCONFIG and fixes PCI bridge. > Thirdly q35 chipset is implemented. > Lastly IO apic related I don't really understand how these relate to pci patches you posted and some of which I acked previously. > Changes from split out piix specific part from pc emulator. V6 > - rebased to 731c54f86988d3f28268f184fabfe9b2a32fb5d3 > - PCIe MMCONFIG > - pci bridge related fixes > - chipset emulator works. > - IOAPIC patches > > Changes from v5: > - rebased 0.11.0-rc0 > - changed qemu_system_powerdown_register() to call > qemu_system_shutdown_request() if qemu_system_shutdown() is called before > registering. > > Changes from v4: > - fix version number. > - rebased anthony's staging tree whose latest change set is > 62969268f876c547ee64da6d60e0f363e0f1df75 > > Changes from v3: > - move qemu_system_powerdown() in vl.c and more generic > following the comment by Marcelo Tosatti > acpi.c: make qemu_system_powerdown() piix independent. > - define cmos_set_s3_resume_init() and cmos_set_s3_resume() in pc.c > even if TARGET_I386 isn't defined following th ecommit by > Paolo Bonzini > pc.c: remove a global variable, RTCState *rtc_state. > - minor compilation fixes > > Changes from v2: > - clean up pc_pci_device_init() not to use unnecessary braces. > > Changes from v1: > - make patches full bisectable > - typo s/allocte/allocate/ > - some minor fixes > - dropped a merged patch > > > Isaku Yamahata (61): > acpi: split out pc smbus routines from acpi.c into pc_smbus.c > acpi: split out apm register emulation from acpi.c > acpi: add acpi constants from linux header files and use them. > acpi: split acpi.c into the common part and the piix4 part. > acpi_piix4: remove unused variable in get_pmsts(). > pc: fix file stream leak in multiboot loader. > pc, i440fx: Make smm enable/disable function i440fx independent. > pc: make an unnecessary global variable, pit, local. > pc: remove a global variable, floppy_controller. > pc: remove a global variable, RTCState *rtc_state. > pc: introduce a function to allocate cpu irq. > pc: make pc_init1() not refer ferr_irq directly. > pc: split out cpu initialization from pc_init1() into pc_cpus_init(). > pc: split out memory allocation from pc_init1() into pc_memory_init() > pc: split out vga initialization from pc_init1() into pc_vga_init(). > pc: split out basic device init from pc_init1() into > pc_basic_device_init() > pc: split out pci device init from pc_init1() into > pc_pci_device_init() > pc: split out piix specific part from pc.c into pc_piix.c > pc_piix: initialize ioapic before use. > pci: fix PCI_DPRINTF() wrt variadic macro. > pci: introduce constant PCI_NUM_PINS for the number of interrupt > pins, 4. > pci: use appropriate PRIs in PCI_DPRINTF(). > pci: use PCI_SLOT() and PCI_FUNC(). > pci: define a constant to represent a unmapped bar and use it. > pci: use uint64_t for bar addr and size instead of uint32_t. > pci: 64bit bar support. > pci: clean up of pci_update_mappings() > pci: factor out while(bus) bus->next loop logic into > pci_find_bus_from(). > pci: factor out the logic to get pci device from address. > pci_host.h: split non-inline static function in pci_host.h into > pci_host_c.h > pci: pcie host and mmcfg support. > pci: helper functions to access PCIDevice::config > pci: use the symbolic constant, PCI_ROM_ADDRESS_ENABLE instead of 1. > pci: introduce pci_swizzle_map_irq_fn() for interrupt pin swizzle. > piix_pci: use pci_swizzle_map_irq_fn(). > pci: use QLIST_ macro instead of direct list manipulation. > pci: add helper function for pci config write function to check > address. > pci: fix pci_default_write_config() > pci: factor out config update logic. > pci: use qdev to get parent bus with PCIBus. > pci: make bar update function aware of pci bridge. > pci/brdige: qdevfy and initialize secondary bus and subordinate bus. > pci: add helper function to initialize wmask. > pci: initialize wmask according to pci header type. > pci/monitor: print out bridge's filtering values and so on. > pci/bridge: implement intel 82801ba bridge. > pci.h: add more status constats. > pci id: add subclass codes for serial device. > pci hot add: pass opaque argument to callback. > pci hotadd, acpi_piix4: remove global variables. > vmstate: add a macro for pointer to struct, VMSTATE_STRUCT_POINTER. > pci: add a hook to replace default pci bus instead of 0 bus. > pc q35 based chipset emulator > pci: add opaque argument to pci_map_irq_fn(). > ioapic: make ioapic_set_irq() static. > ioapic: clean up of #ifdef DEBUG_IOAPIC. > ioapic: add callback when entry is set or ioapic is reset > ioapic: make the number of pins configurable. > ioapic: make irr accept more than 32 pins. > pci: add opaque arg to pci_map_irq_fn. > pc_q35: apic mode for pci interrupt routing. > > Makefile.target | 5 +- > hw/ac97.c | 2 +- > hw/acpi.c | 736 +-------------------------- > hw/acpi.h | 78 +++ > hw/acpi_ich9.c | 565 ++++++++++++++++++++ > hw/acpi_ich9.h | 57 ++ > hw/acpi_piix4.c | 582 +++++++++++++++++++++ > hw/apb_pci.c | 16 +- > hw/cirrus_vga.c | 8 +- > hw/e1000.c | 12 +- > hw/eepro100.c | 10 +- > hw/es1370.c | 2 +- > hw/grackle_pci.c | 4 +- > hw/gt64xxx.c | 4 +- > hw/hw.h | 42 ++ > hw/ide/pci.c | 4 +- > hw/ioapic.c | 137 ++++-- > hw/lsi53c895a.c | 6 +- > hw/macio.c | 2 +- > hw/msix.c | 2 +- > hw/msix.h | 2 +- > hw/ne2000.c | 2 +- > hw/openpic.c | 2 +- > hw/pc.c | 344 ++++--------- > hw/pc.h | 48 ++- > hw/pc_apm.c | 89 ++++ > hw/pc_apm.h | 43 ++ > hw/pc_piix.c | 241 +++++++++ > hw/pc_q35.c | 220 ++++++++ > hw/pc_smbus.c | 178 +++++++ > hw/pc_smbus.h | 43 ++ > hw/pci-hotplug.c | 7 +- > hw/pci.c | 1102 +++++++++++++++++++++++++++++++-------- > hw/pci.h | 261 +++++++++- > hw/pci_bridge.c | 63 +++ > hw/pci_bridge.h | 38 ++ > hw/pci_host.h | 110 +--- > hw/{pci_host.h => pci_host_c.h} | 8 +- > hw/pci_ids.h | 28 + > hw/pcnet.c | 9 +- > hw/piix_pci.c | 14 +- > hw/ppc4xx_pci.c | 4 +- > hw/ppce500_pci.c | 4 +- > hw/prep_pci.c | 4 +- > hw/q35.c | 784 ++++++++++++++++++++++++++++ > hw/q35.h | 232 ++++++++ > hw/q35_smbus.c | 150 ++++++ > hw/r2d.c | 2 +- > hw/rtl8139.c | 4 +- > hw/sun4u.c | 2 +- > hw/unin_pci.c | 4 +- > hw/usb-ohci.c | 2 +- > hw/usb-uhci.c | 2 +- > hw/versatile_pci.c | 2 +- > hw/vga-pci.c | 2 +- > hw/virtio-pci.c | 2 +- > hw/vmware_vga.c | 4 +- > hw/wdt_i6300esb.c | 5 +- > sysemu.h | 4 +- > 59 files changed, 4932 insertions(+), 1407 deletions(-) > create mode 100644 hw/acpi.h > create mode 100644 hw/acpi_ich9.c > create mode 100644 hw/acpi_ich9.h > create mode 100644 hw/acpi_piix4.c > create mode 100644 hw/pc_apm.c > create mode 100644 hw/pc_apm.h > create mode 100644 hw/pc_piix.c > create mode 100644 hw/pc_q35.c > create mode 100644 hw/pc_smbus.c > create mode 100644 hw/pc_smbus.h > create mode 100644 hw/pci_bridge.c > create mode 100644 hw/pci_bridge.h > copy hw/{pci_host.h => pci_host_c.h} (96%) > create mode 100644 hw/q35.c > create mode 100644 hw/q35.h > create mode 100644 hw/q35_smbus.c > >