[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V6 00/32] pci: various pci clean up and pci express
From: |
Isaku Yamahata |
Subject: |
[Qemu-devel] [PATCH V6 00/32] pci: various pci clean up and pci express support. |
Date: |
Fri, 30 Oct 2009 21:20:54 +0900 |
This patch set is preliminary for q35 based chipset support.
This patch sets does various pci related clean ups and
64bit bar, pciemmconfig and pci bridge support.
Now I updated the patches following Michael's comment and implemented
PCI bridge filtering.
Windows xp 32bit installs and boots. I don't see any boot
delay with windows and Linux. Anyway their boot are slow under qemu
so that some increase of code path is noise.
some random comments:
- The patches status is as follows.
Anthony, is there any way to merge first 11 patches?
If you want, I'm willing to send patch series which contains only
first 11 ones. Michael also want it, I suppose.
1-7,9-11,14,15,22: no change, acked-by Michael.
13, 16: no change
12, 17, 19-21, 24, 28,23: changed
8, 18, 23, 25-27, 29-31: new
- Although I implemented bridge filtering, I don't think of
how BIOS utilize bridge filtering.
Michael, could you please elaborate how BIOS utilses it?
What usage do you have in your mind?
- & 0xffff is necessary otherwise gcc comains. So I didn't remove it.
thanks,
changes from V5:
- rebased to f7cbc08ff0d712b0febcf84ce8458c3ae30db4fa
- introduced range check helper functions
- removed unnecessary member of PCIBus
- implemented bridge flitering
changes from V4:
- rebased to ad323081aa0e20d3d573ea64e88a893d576c05e0
- reordered patches.
- many clean up
- more consolidation of pci host stuff into pci_host.c
- move pci host stuff to pci_host.c
- move pcie host stuff to pcie_host.c
- introduced QEMU_PCI_CAP_EXPRESS
changes from V3:
- indentation
- reworked helper function to update pci configuration space
- dropped pci_conf_init[blw]()
- pci: use PCI_SLOT() and PCI_FUNC(). two more use.
I kept the acked-by hoping Michael won't be against it.
- pci 64bit bar
- comment
- s/PCI_BASE_ADDRESS_SPACE_MEM_64/PCI_BASE_ADDRESS_MEM_TYPE_64/g
- s/pci_bar_is_64big/pci_bar_is_mem64/g
- pci bridge
- refined pci_bar_config_offset().
- bridge/qdevfy
- pass -1 for vmstate_register()
- use pci_create_simple()
- some clean up
- pci/monitor: print out bridge's filtering values and so on.
- fixed io range calculation
- unified case
- indentation
changes from V2:
- bug fix pointed out by Gerd Hoffmann
pci_find_devie()
pci: make pci configuration transaction more accurate.
changes from V1:
- introduced pcibus_t
- dropped pci_config_[sg]et_xxx()
- many code clean up
- reworked pci_host.h
- reworked pci bus search to introduce tree representation for pci bus
- dropped some non essential patches
Isaku Yamahata (32):
pci: fix PCI_DPRINTF() wrt variadic macro.
pci: introduce constant PCI_NUM_PINS for the number of interrupt
pins, 4.
pci: use PCI_SLOT() and PCI_FUNC().
pci: define a constant to represent a unmapped bar and use it.
pci: helper functions to access PCIDevice::config
pci: use helper functions to access pci config space.
pci/bridge: clean up of pci_bridge_initfn()
pci: clean up pci_init_wmask()
pci: s/PCI_ADDRESS_SPACE_/PCI_BASE_ADDRESS_SPACE_/ to match
pci_regs.h
pci: clean up of pci_default_read_config.
pci: make pci_bar() aware of header type 1.
pci_host.h: move functions in pci_host.h into .c file.
pci_host: consolidate pci config address access.
pci: introduce pcibus_t to represent pci bus address/size instead of
uint32_t
pci: introduce FMT_PCIBUS for printf format for pcibus_t.
pci: typedef pcibus_t as uint64_t instead of uint32_t.
pci: 64bit bar support.
pci: remove bus_num member from struct PCIBus.
pci: make pci configuration transaction more accurate.
pci: factor out the conversion logic from io port address into pci
device.
pci: move pci host stuff from pci.c to pci_host.c
pci_host: change the signature of pci_data_{read, write}.
vmstate: introduce VMSTATE_BUFFER_UNSAFE_INFO.
pci: pcie host and mmcfg support.
pci: add helper functions to check ranges overlap.
pci: use range helper functions.
pci: teach pci_default_config_write() ROM bar for normal/bridge
device .
pci: initialize pci config headers depending it pci header type.
pci: cosmetic on pci_upadte_mappings()
pci: factor out pci_for_each_device().
pci: implement pci bridge filtering.
pci/monitor: print out bridge's filtering values and so on.
Makefile.target | 2 +-
hw/ac97.c | 7 +-
hw/apb_pci.c | 72 +---
hw/cirrus_vga.c | 11 +-
hw/e1000.c | 16 +-
hw/eepro100.c | 28 +-
hw/es1370.c | 4 +-
hw/grackle_pci.c | 69 +---
hw/gt64xxx.c | 11 +-
hw/hw.h | 18 +-
hw/ide/cmd646.c | 14 +-
hw/ide/piix.c | 4 +-
hw/lsi53c895a.c | 12 +-
hw/macio.c | 4 +-
hw/msix.c | 2 +-
hw/msix.h | 3 +-
hw/ne2000.c | 4 +-
hw/openpic.c | 4 +-
hw/pci-hotplug.c | 4 +-
hw/pci.c | 805 ++++++++++++++++++++++----------
hw/pci.h | 137 +++++-
hw/pci_host.c | 244 ++++++++++
hw/pci_host.h | 93 +----
hw/{pci_host.h => pci_host_template.h} | 36 +-
hw/pcie_host.c | 192 ++++++++
hw/pcie_host.h | 50 ++
hw/pcnet.c | 14 +-
hw/piix_pci.c | 26 +-
hw/ppc4xx_pci.c | 18 +-
hw/ppce500_pci.c | 51 +--
hw/prep_pci.c | 24 +-
hw/rtl8139.c | 8 +-
hw/sun4u.c | 6 +-
hw/unin_pci.c | 121 +-----
hw/usb-ohci.c | 4 +-
hw/usb-uhci.c | 4 +-
hw/vga-pci.c | 6 +-
hw/virtio-pci.c | 6 +-
hw/vmware_vga.c | 8 +-
hw/wdt_i6300esb.c | 7 +-
40 files changed, 1331 insertions(+), 818 deletions(-)
create mode 100644 hw/pci_host.c
copy hw/{pci_host.h => pci_host_template.h} (80%)
create mode 100644 hw/pcie_host.c
create mode 100644 hw/pcie_host.h
- [Qemu-devel] [PATCH V6 00/32] pci: various pci clean up and pci express support.,
Isaku Yamahata <=
- [Qemu-devel] [PATCH V6 10/32] pci: clean up of pci_default_read_config., Isaku Yamahata, 2009/10/30
- [Qemu-devel] [PATCH V6 06/32] pci: use helper functions to access pci config space., Isaku Yamahata, 2009/10/30
- [Qemu-devel] [PATCH V6 05/32] pci: helper functions to access PCIDevice::config, Isaku Yamahata, 2009/10/30
- [Qemu-devel] [PATCH V6 11/32] pci: make pci_bar() aware of header type 1., Isaku Yamahata, 2009/10/30
- [Qemu-devel] [PATCH V6 17/32] pci: 64bit bar support., Isaku Yamahata, 2009/10/30
- [Qemu-devel] [PATCH V6 16/32] pci: typedef pcibus_t as uint64_t instead of uint32_t., Isaku Yamahata, 2009/10/30
- [Qemu-devel] [PATCH V6 02/32] pci: introduce constant PCI_NUM_PINS for the number of interrupt pins, 4., Isaku Yamahata, 2009/10/30
- [Qemu-devel] [PATCH V6 14/32] pci: introduce pcibus_t to represent pci bus address/size instead of uint32_t, Isaku Yamahata, 2009/10/30
- [Qemu-devel] [PATCH V6 15/32] pci: introduce FMT_PCIBUS for printf format for pcibus_t., Isaku Yamahata, 2009/10/30
- [Qemu-devel] [PATCH V6 01/32] pci: fix PCI_DPRINTF() wrt variadic macro., Isaku Yamahata, 2009/10/30