History | View | Annotate | Download (12.9 kB)
Merge branch pci into master
Merge master and pci branch, resolve build breakage in hw/esp.cintroduced by f90c2bcd.
Conflicts: hw/esp.c
pci: convert PCIUnregisterFunc to void
Not a single driver has any possibility of failure on theirexit function, let's keep it that way.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Merge remote-tracking branch 'afaerber-or/qom-next-2' into staging
qdev: Convert busses to QEMU Object Model
This is far less interesting than it sounds. We simply add an Object to eachBusState and then register the types appropriately. Most of the interestingrefactoring will follow in the next patches.
Since we're changing fundamental type names (BusInfo -> BusClass), it all needs...
msi: Invoke msi/msix_reset from PCI core
There is no point in pushing this burden to the devices, they tend toforget to call them (like intel-hda, ahci, xhci did). Instead, resetfunctions are now called from pci_device_reset. They do nothing ifMSI/MSI-X is not in use....
pci_bridge: upper 32 bit are long registers
Use pci_set_long for accesses.
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
pci_bridge: fix status: do not override cap bit
pci_bridge: user-friendly default bus name
For a pci bridge device, if we don't overridethe name with custom code, the bus will be addressed as<id>.0, where id is the id specified by the user.
Since PCI Bridge devices have a single bus each, we don't need...
pci: convert to QEMU Object Model
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
pci_bridge: fix typo
Reviewed-by: Avi Kivity <avi@redhat.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
pci_bridge: simplify memory regions some more
replace alloc/free with struct members.todo: smash with initial implementation aftertesting.
pci_bridge: use parent bus's address space
The switch to the new memory API caused the following problem:
The pci device may call pci_register_bar() to use PCI bus's addressspace. But we don't init PCI bus's address space if it is not bus0. A crash was reported:...
pci: implement bridge filtering
Support bridge filtering on top of the memoryAPI as suggested by Avi Kivity:
Create a memory region for the bridge's address space. This region isnot directly added to system_memory or its descendants. Devices underthe bridge see this region as its pci_address_space(). The region is...
pci bridge: implement secondary bus reset
Trigger secondary bus reset when secondary bus reset bitvalue changes from 0 to 1.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Introduce range.h
Extract range functions from pci.h. These will be used by later patchesby non-PCI devices. Adjust current users.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>(cherry picked from commit bf1b00712375bea65f2254dea8281fa646eebbd5)
pci/bridge: fix pci_bridge_reset()
The lower bits of base/limit registers is RO and shouldn't be zerocleared on reset. This patch fixes it.In fact, the default value of base/limit registers aren't specifiedin the spec. And some bridges disable forwarding on reset instead of...
pci bridge: add helper function for ssvid capability.
helper function to add ssvid capability.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
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....
pci_bridge: clean up: remove pci_{register, unregister}_secondary_bus()
Remove pci_{register, unregister}_secondary_bus() by open code.They are old stype API and aren't used any more by others. So eliminate it.
Signed-off-by: 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.
pci/bridge: split out pci bridge code into pci_bridge.c from pci.c
Move pci bridge related code into pci_bridge.c from pci.cfor further enhancement. pci.c is big enough now, so split it out.No code change but exporting some accesser functions.
In fact, few pci bridge functions stays in pci.c....