#
a53ae8e9 |
| 16-Sep-2013 |
Marcel Apfelbaum <marcel.a@redhat.com> |
hw/pci: partially handle pci master abort
A MemoryRegion with negative priority was created and it spans over all the pci address space. It "intercepts" the accesses to unassigned pci address space
hw/pci: partially handle pci master abort
A MemoryRegion with negative priority was created and it spans over all the pci address space. It "intercepts" the accesses to unassigned pci address space and will follow the pci spec: 1. returns -1 on read 2. does nothing on write
Note: setting the RECEIVED MASTER ABORT bit in the STATUS register of the device that initiated the transaction will be implemented in another series
Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
f055e96b |
| 11-Jul-2013 |
Andreas Färber <afaerber@suse.de> |
pci-bridge: Turn PCIBridge into abstract QOM type
Introduce TYPE_PCI_BRIDGE as base type and use PCI_BRIDGE() casts.
Reviewed-by: Don Koch <dkoch@verizon.com> Acked-by: Michael S. Tsirkin <mst@redh
pci-bridge: Turn PCIBridge into abstract QOM type
Introduce TYPE_PCI_BRIDGE as base type and use PCI_BRIDGE() casts.
Reviewed-by: Don Koch <dkoch@verizon.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> [AF: Updated pbm-bridge parent to TYPE_PCI_BRIDGE] Signed-off-by: Andreas Färber <afaerber@suse.de>
show more ...
|
#
e00387d5 |
| 30-Oct-2012 |
Avi Kivity <avi.kivity@gmail.com> |
pci: use memory core for iommu support
Use the new iommu support in the memory core for iommu support. The only user, spapr, is also converted, but it still provides a DMAContext interface until th
pci: use memory core for iommu support
Use the new iommu support in the memory core for iommu support. The only user, spapr, is also converted, but it still provides a DMAContext interface until the non-PCI bits switch to AddressSpace.
Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Avi Kivity <avi.kivity@gmail.com> [ Do not calls memory_region_del_subregion() on the device's bus_master_enable_region, it is an alias; return an AddressSpace from the IOMMU hook and remove the destructor hook. - David Gibson ] Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
0d09e41a |
| 05-Feb-2013 |
Paolo Bonzini <pbonzini@redhat.com> |
hw: move headers to include/
Many of these should be cleaned up with proper qdev-/QOM-ification. Right now there are many catch-all headers in include/hw/ARCH depending on cpu.h, and this makes it n
hw: move headers to include/
Many of these should be cleaned up with proper qdev-/QOM-ification. Right now there are many catch-all headers in include/hw/ARCH depending on cpu.h, and this makes it necessary to compile these files per-target. However, fixing this does not belong in these patches.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
|
#
cf09458d |
| 14-Mar-2013 |
Alex Williamson <alex.williamson@redhat.com> |
pci: Move PCI and PCIE type defines
Move these so that we can reference them from a more common header instead of including pci_bus.h everywhere.
Signed-off-by: Alex Williamson <alex.williamson@red
pci: Move PCI and PCIE type defines
Move these so that we can reference them from a more common header instead of including pci_bus.h everywhere.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
3a861c46 |
| 14-Mar-2013 |
Alex Williamson <alex.williamson@redhat.com> |
pci: Create and register a new PCI Express TypeInfo
This will allow us to differentiate Express and Legacy buses.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Michael
pci: Create and register a new PCI Express TypeInfo
This will allow us to differentiate Express and Legacy buses.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
ba7d8515 |
| 03-Mar-2013 |
Alex Williamson <alex.williamson@redhat.com> |
pci: Teach PCI Bridges about VGA routing
Each PCI Bridge has a set of implied VGA regions that are enabled when the VGA bit is set in the bridge control register. This allows VGA devices behind bri
pci: Teach PCI Bridges about VGA routing
Each PCI Bridge has a set of implied VGA regions that are enabled when the VGA bit is set in the bridge control register. This allows VGA devices behind bridges. Unfortunately with VGA Enable, which we formerly allowed but didn't back, comes along some required VGA baggage. VGA Palette Snooping is required, along with VGA 16-bit decoding. We don't yet have support for palette snooping. We also don't have support for 10-bit VGA aliases, the default mode, but we enable the register, even on root ports, to avoid confusing guests. Fortunately there's likely nothing from this century that requires these features, so the missing bits are noted with TODOs.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
20599463 |
| 12-Dec-2012 |
Michael S. Tsirkin <mst@redhat.com> |
pci_bus.h: tweak include guards
Now that header has been renamed, tweak include guards to match.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
#
952deab6 |
| 12-Dec-2012 |
Michael S. Tsirkin <mst@redhat.com> |
pci_bus: update comment
Don't ask everyone to desist from including this header, simply recommend using accessors.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
#
06aac7bd |
| 12-Dec-2012 |
Michael S. Tsirkin <mst@redhat.com> |
pci: rename pci_internals.h pci_bus.h
There are lots of external users of pci_internals.h, apparently making it an internal interface only didn't work out. Let's stop pretending it's an internal hea
pci: rename pci_internals.h pci_bus.h
There are lots of external users of pci_internals.h, apparently making it an internal interface only didn't work out. Let's stop pretending it's an internal header.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
315a1350 |
| 12-Dec-2012 |
Michael S. Tsirkin <mst@redhat.com> |
pci: move pci core code to hw/pci
Move files and modify makefiles to pick them at the new location.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
#
b308c82c |
| 25-Oct-2012 |
Avi Kivity <avi@redhat.com> |
pci: avoid destroying bridge address space windows in a transaction
Calling memory_region_destroy() in a transaction is illegal (and aborts), as until the transaction is committed, the region remain
pci: avoid destroying bridge address space windows in a transaction
Calling memory_region_destroy() in a transaction is illegal (and aborts), as until the transaction is committed, the region remains live.
Fix by moving destruction until after the transaction commits. This requires having an extra set of regions, so the new and old regions can coexist.
Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
5e59b024 |
| 29-Jul-2012 |
Michael S. Tsirkin <mst@redhat.com> |
Merge branch pci into master
Merge master and pci branch, resolve build breakage in hw/esp.c introduced by f90c2bcd.
Conflicts: hw/esp.c
|
#
3afa9bb4 |
| 19-Jul-2012 |
Michael S. Tsirkin <mst@redhat.com> |
pci: Add pci_device_route_intx_to_irq
Device assigned on KVM needs to know the mode (enabled/inverted/disabled) and the IRQ number that a given device triggers in the attached interrupt controller.
pci: Add pci_device_route_intx_to_irq
Device assigned on KVM needs to know the mode (enabled/inverted/disabled) and the IRQ number that a given device triggers in the attached interrupt controller.
Add a PCI IRQ path discovery function that walks from a given device to the host bridge, and gets this information. For this purpose, a host bridge callback function is introduced: route_intx_to_irq. It is so far only implemented by the PIIX3, other host bridges can be added later on as required.
Will be used for KVM PCI device assignment and VFIO.
Based on patch by Jan Kiszka, with minor tweaks.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
5fa45de5 |
| 27-Jun-2012 |
David Gibson <david@gibson.dropbear.id.au> |
iommu: Allow PCI to use IOMMU infrastructure
This patch adds some hooks to let PCI devices and busses use the new IOMMU infrastructure. When IOMMU support is enabled, each PCI device now contains a
iommu: Allow PCI to use IOMMU infrastructure
This patch adds some hooks to let PCI devices and busses use the new IOMMU infrastructure. When IOMMU support is enabled, each PCI device now contains a DMAContext * which is used by the pci_dma_*() wrapper functions.
By default, the contexts are initialized to NULL, assuming no IOMMU. However the platform or host bridge code which sets up the PCI bus can use pci_setup_iommu() to set a function which will determine the correct DMAContext for a given PCI device.
Cc: Michael S. Tsirkin <mst@redhat.com> Cc: Richard Henderson <rth@twiddle.net>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Eduard - Gabriel Munteanu <eduard.munteanu@linux360.ro> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
0d936928 |
| 02-May-2012 |
Anthony Liguori <aliguori@us.ibm.com> |
qdev: Convert busses to QEMU Object Model
This is far less interesting than it sounds. We simply add an Object to each BusState and then register the types appropriately. Most of the interesting r
qdev: Convert busses to QEMU Object Model
This is far less interesting than it sounds. We simply add an Object to each BusState and then register the types appropriately. Most of the interesting refactoring will follow in the next patches.
Since we're changing fundamental type names (BusInfo -> BusClass), it all needs to convert at once. Fortunately, not a lot of code is affected.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> [AF: Made all new bus TypeInfos static const.] [AF: Made qbus_free() call object_delete(), required {qom,glib}_allocated] Signed-off-by: Andreas Färber <afaerber@suse.de>
show more ...
|
#
336411ca |
| 06-Sep-2011 |
Michael S. Tsirkin <mst@redhat.com> |
pci_bridge: simplify memory regions some more
replace alloc/free with struct members. todo: smash with initial implementation after testing.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
#
7df32ca0 |
| 04-Sep-2011 |
Michael S. Tsirkin <mst@redhat.com> |
pci: implement bridge filtering
Support bridge filtering on top of the memory API as suggested by Avi Kivity:
Create a memory region for the bridge's address space. This region is not directly add
pci: implement bridge filtering
Support bridge filtering on top of the memory API as suggested by Avi Kivity:
Create a memory region for the bridge's address space. This region is not directly added to system_memory or its descendants. Devices under the bridge see this region as its pci_address_space(). The region is as large as the entire address space - it does not take into account any windows.
For each of the three windows (pref, non-pref, vga), create an alias with the appropriate start and size. Map the alias into the bridge's parent's pci_address_space(), as subregions.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
a92eb87a |
| 12-Sep-2011 |
Jan Kiszka <jan.kiszka@siemens.com> |
pci: Remove unused mem_base from PCIBus
Obsoleted by f64e02b6cc.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
#
5968eca3 |
| 08-Aug-2011 |
Avi Kivity <avi@redhat.com> |
pci: allow I/O BARs to be registered with pci_register_bar_region()
Reviewed-by: Richard Henderson <rth@twiddle.net> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Avi Kivity <avi
pci: allow I/O BARs to be registered with pci_register_bar_region()
Reviewed-by: Richard Henderson <rth@twiddle.net> Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
1e39101c |
| 26-Jul-2011 |
Avi Kivity <avi@redhat.com> |
pci: pass address space to pci bus when created
This is now done sloppily, via get_system_memory(). Eventually callers will be converted to stop using that.
Reviewed-by: Anthony Liguori <aliguori@
pci: pass address space to pci bus when created
This is now done sloppily, via get_system_memory(). Eventually callers will be converted to stop using that.
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
show more ...
|
#
6f3279b5 |
| 27-Jan-2011 |
Isaku Yamahata <yamahata@valinux.co.jp> |
pci: use uint8_t for devfn_min
use uint8_t for devfn_min instead of int.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
#
90a20dbb |
| 27-Jan-2011 |
Isaku Yamahata <yamahata@valinux.co.jp> |
pci: replace the magic, 256, for the maximum of devfn
Introduce symbol PCI_SLOT_MAX for the # of slots, and replace the magic, 256.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off
pci: replace the magic, 256, for the maximum of devfn
Introduce symbol PCI_SLOT_MAX for the # of slots, and replace the magic, 256.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
68f79994 |
| 13-Jul-2010 |
Isaku Yamahata <yamahata@valinux.co.jp> |
pci_bridge: introduce pci bridge library.
introduce pci bridge library. convert apb bridge and dec p2p bridge to use new pci bridge library. save/restore is supported as a side effect. This is also
pci_bridge: introduce pci bridge library.
introduce pci bridge library. convert apb bridge and dec p2p bridge to use new pci bridge library. save/restore is supported as a side effect. This is also preparation for pci express root/upstream/downstream port.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|
#
7e98e3af |
| 13-Jul-2010 |
Isaku Yamahata <yamahata@valinux.co.jp> |
pci_bridge: rename PCIBridge::bus -> PCIBridge::sec_bus.
To avoid confusion of primary bus with secondary bus, rename PCIBridge::bus to PCIBridge::sec_bus.
Signed-off-by: Isaku Yamahata <yamahata@v
pci_bridge: rename PCIBridge::bus -> PCIBridge::sec_bus.
To avoid confusion of primary bus with secondary bus, rename PCIBridge::bus to PCIBridge::sec_bus.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
show more ...
|