All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/61] Q35 chip set and stuff.
@ 2009-09-30 10:17 Isaku Yamahata
  2009-09-30 10:17 ` [Qemu-devel] [PATCH 01/61] acpi: split out pc smbus routines from acpi.c into pc_smbus.c Isaku Yamahata
                   ` (64 more replies)
  0 siblings, 65 replies; 84+ messages in thread
From: Isaku Yamahata @ 2009-09-30 10:17 UTC (permalink / raw)
  To: qemu-devel, anthony; +Cc: yamahata

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 

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 <mtosatti@redhat.com>
  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 <bonzini@gnu.org>
  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

^ permalink raw reply	[flat|nested] 84+ messages in thread

end of thread, other threads:[~2009-10-05 10:32 UTC | newest]

Thread overview: 84+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-30 10:17 [Qemu-devel] [PATCH 00/61] Q35 chip set and stuff Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 01/61] acpi: split out pc smbus routines from acpi.c into pc_smbus.c Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 02/61] acpi: split out apm register emulation from acpi.c Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 03/61] acpi: add acpi constants from linux header files and use them Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 04/61] acpi: split acpi.c into the common part and the piix4 part Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 05/61] acpi_piix4: remove unused variable in get_pmsts() Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 06/61] pc: fix file stream leak in multiboot loader Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 07/61] pc, i440fx: Make smm enable/disable function i440fx independent Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 08/61] pc: make an unnecessary global variable, pit, local Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 09/61] pc: remove a global variable, floppy_controller Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 10/61] pc: remove a global variable, RTCState *rtc_state Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 11/61] pc: introduce a function to allocate cpu irq Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 12/61] pc: make pc_init1() not refer ferr_irq directly Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 13/61] pc: split out cpu initialization from pc_init1() into pc_cpus_init() Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 14/61] pc: split out memory allocation from pc_init1() into pc_memory_init() Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 15/61] pc: split out vga initialization from pc_init1() into pc_vga_init() Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 16/61] pc: split out basic device init from pc_init1() into pc_basic_device_init() Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 17/61] pc: split out pci device init from pc_init1() into pc_pci_device_init() Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 18/61] pc: split out piix specific part from pc.c into pc_piix.c Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 19/61] pc_piix: initialize ioapic before use Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 20/61] pci: fix PCI_DPRINTF() wrt variadic macro Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 21/61] pci: introduce constant PCI_NUM_PINS for the number of interrupt pins, 4 Isaku Yamahata
2009-09-30 10:17 ` [Qemu-devel] [PATCH 22/61] pci: use appropriate PRIs in PCI_DPRINTF() Isaku Yamahata
2009-09-30 11:55   ` [Qemu-devel] " Michael S. Tsirkin
2009-10-01  7:22     ` Isaku Yamahata
2009-10-01  8:57       ` Michael S. Tsirkin
2009-09-30 10:17 ` [Qemu-devel] [PATCH 23/61] pci: use PCI_SLOT() and PCI_FUNC() Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 24/61] pci: define a constant to represent a unmapped bar and use it Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 25/61] pci: use uint64_t for bar addr and size instead of uint32_t Isaku Yamahata
2009-09-30 14:55   ` malc
2009-10-01  5:34     ` Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 26/61] pci: 64bit bar support Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 27/61] pci: clean up of pci_update_mappings() Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 28/61] pci: factor out while(bus) bus->next loop logic into pci_find_bus_from() Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 29/61] pci: factor out the logic to get pci device from address Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 30/61] pci_host.h: split non-inline static function in pci_host.h into pci_host_c.h Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 31/61] pci: pcie host and mmcfg support Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 32/61] pci: helper functions to access PCIDevice::config Isaku Yamahata
2009-09-30 10:47   ` [Qemu-devel] " Michael S. Tsirkin
2009-09-30 10:18 ` [Qemu-devel] [PATCH 33/61] pci: use the symbolic constant, PCI_ROM_ADDRESS_ENABLE instead of 1 Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 34/61] pci: introduce pci_swizzle_map_irq_fn() for interrupt pin swizzle Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 35/61] piix_pci: use pci_swizzle_map_irq_fn() Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 36/61] pci: use QLIST_ macro instead of direct list manipulation Isaku Yamahata
2009-09-30 11:54   ` [Qemu-devel] " Michael S. Tsirkin
2009-09-30 10:18 ` [Qemu-devel] [PATCH 37/61] pci: add helper function for pci config write function to check address Isaku Yamahata
2009-09-30 11:50   ` [Qemu-devel] " Michael S. Tsirkin
2009-09-30 10:18 ` [Qemu-devel] [PATCH 38/61] pci: fix pci_default_write_config() Isaku Yamahata
2009-09-30 10:44   ` [Qemu-devel] " Michael S. Tsirkin
2009-09-30 11:09     ` Isaku Yamahata
2009-09-30 12:50       ` Michael S. Tsirkin
2009-09-30 10:18 ` [Qemu-devel] [PATCH 39/61] pci: factor out config update logic Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 40/61] pci: use qdev to get parent bus with PCIBus Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 41/61] pci: make bar update function aware of pci bridge Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 42/61] pci/brdige: qdevfy and initialize secondary bus and subordinate bus Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 43/61] pci: add helper function to initialize wmask Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 44/61] pci: initialize wmask according to pci header type Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 45/61] pci/monitor: print out bridge's filtering values and so on Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 46/61] pci/bridge: implement intel 82801ba bridge Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 47/61] pci.h: add more status constats Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 48/61] pci id: add subclass codes for serial device Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 49/61] pci hot add: pass opaque argument to callback Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 50/61] pci hotadd, acpi_piix4: remove global variables Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 51/61] vmstate: add a macro for pointer to struct, VMSTATE_STRUCT_POINTER Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 52/61] pci: add a hook to replace default pci bus instead of 0 bus Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 53/61] pc q35 based chipset emulator Isaku Yamahata
2009-10-05 10:30   ` [Qemu-devel] " Michael S. Tsirkin
2009-09-30 10:18 ` [Qemu-devel] [PATCH 54/61] pci: add opaque argument to pci_map_irq_fn() Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 55/61] ioapic: make ioapic_set_irq() static Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 56/61] ioapic: clean up of #ifdef DEBUG_IOAPIC Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 57/61] ioapic: add callback when entry is set or ioapic is reset Isaku Yamahata
2009-10-01 13:37   ` Gleb Natapov
2009-10-01 16:04     ` Avi Kivity
2009-09-30 10:18 ` [Qemu-devel] [PATCH 58/61] ioapic: make the number of pins configurable Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 59/61] ioapic: make irr accept more than 32 pins Isaku Yamahata
2009-10-01  8:52   ` Avi Kivity
2009-09-30 10:18 ` [Qemu-devel] [PATCH 60/61] pci: add opaque arg to pci_map_irq_fn Isaku Yamahata
2009-09-30 10:18 ` [Qemu-devel] [PATCH 61/61] pc_q35: apic mode for pci interrupt routing Isaku Yamahata
2009-10-01  8:50   ` Avi Kivity
2009-10-01 16:33     ` Avi Kivity
2009-09-30 12:00 ` [Qemu-devel] Re: [PATCH 00/61] Q35 chip set and stuff Michael S. Tsirkin
2009-09-30 12:08 ` [Qemu-devel] " Aurelien Jarno
2009-10-01  5:40   ` Isaku Yamahata
2009-09-30 18:37 ` Blue Swirl
2009-09-30 20:53 ` [Qemu-devel] " Anthony Liguori

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.