Statistics
| Branch: | Revision:

root / hw / pci.c @ 6f3279b5

History | View | Annotate | Download (64.6 kB)

# Date Author Comment
5256d8bf 03/28/2011 07:34 pm Isaku Yamahata

pci: use devfn for pci_find_device() instead of (slot, fn) pair

(slot, fn) pair is somewhat confusing because of ARI.
So use devfn for pci_find_device() instead of (slot, fn).

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

6ff534b6 03/28/2011 07:34 pm Isaku Yamahata

pci: use PCI_DEVFN in pci_get_bus_devfn()

Replace hardcoded logic by a common macro.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

6f3279b5 03/28/2011 07:34 pm Isaku Yamahata

pci: use uint8_t for devfn_min

use uint8_t for devfn_min instead of int.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

386bbf45 02/20/2011 07:23 pm Stefan Weil

pci: Fix memory leak

Signed-off-by: Stefan Weil <>
Signed-off-by: Aurelien Jarno <>

7cc050b1 02/12/2011 10:27 am Blue Swirl

pci: add creation functions that may fail

Signed-off-by: Blue Swirl <>

4c900518 01/27/2011 06:55 am Isaku Yamahata

pci: typo in pcibus_get_dev_path()

This patch fixes typo in pcibus_get_dev_path().
Without this patch, the result of pcibus_get_dev_path() isn't unique.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

bb34007e 01/27/2011 06:54 am Michael S. Tsirkin

pci: bridge control fixup

PCI_BRIDGE_CTL_DISCARD_STATUS (bit 10 in bridge control register)
is W1C so we should not make it writeable, otherwise the assert(!(wmask
& w1cmask)) in pci_default_write_config() is hit

Signed-off-by: Michael S. Tsirkin <>...

be7052c2 01/24/2011 03:40 pm Isaku Yamahata

pci: memory leak of PCIDevice::rom_file

PCIDevice::rom_file is leaked.
PCIDevice::rom_file is allocated in pci_qdev_init(), but not freed anywhere.
free it in qemu_unregister_device().

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

e10990c3 01/20/2011 03:44 pm Isaku Yamahata

pci: use qemu_malloc() in pcibus_get_dev_path()

use qemu_malloc() instead of direct use of malloc().

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

4c92325b 01/20/2011 03:33 pm Isaku Yamahata

pci: deassert intx on reset.

deassert intx on device reset.
So far pci_device_reset() is used for system reset.
In that case, interrupt controller is reset at the same time so that
all irq is are deasserted.
But now pci bus reset/flr is supported, and in that case irq needs to be...

2991181a 01/19/2011 09:18 pm Michael S. Tsirkin

pci: fix device paths

Patch a6a7005d14b3c32d4864a718fb1cb19c789f58a5 generated
broken device paths. We snprintf with a length shorter
than the output, so the last character is discarded and replaced
by the null byte. Fix it up by snprintf to a buffer
which is larger by 1 byte and then memcpy the data (without...

180c22e1 01/10/2011 01:29 pm Gerd Hoffmann

pci: allow devices being tagged as not hotpluggable.

This patch adds a field to PCIDeviceInfo to tag devices as being
not hotpluggable. Any attempt to plug-in or -out such a device
will throw an error.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Michael S. Tsirkin <>

a6a7005d 12/27/2010 11:21 am Michael S. Tsirkin

pci: fix migration path for devices behind bridges

The device path used for migration is currently broken for
for all devices behind a nested bridge.

Replace this by a hierarchical list of slot/function numbers, walking
the path from root down to device. Add :00 after the domain number...

f3006dd1 12/24/2010 10:35 am Isaku Yamahata

pci: introduce a helper function to convert qdev id to PCIDevice

This patch introduce a helper function to get PCIDevice from qdev id.
This function will be used later.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

0ead87c8 12/22/2010 09:01 am Isaku Yamahata

pcie: add flr support

Support flr: trigger device reset on flr config write.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

af0669f0 12/19/2010 02:06 pm Michael S. Tsirkin

pci: don't use bus number in migration, stub out

Using bus numbers in migration is clearly wrong as
they are guest assigned. Not really sure what the
right thing to do is, for now stick 0 in there so things
keep working for non-nested setups, add a TODO....

b254b0d1 12/17/2010 04:21 pm Anthony Liguori

Merge remote branch 'mst/for_anthony' into staging

2e55e842 12/11/2010 11:32 pm Gleb Natapov

Add bootindex for option roms.

Extend -option-rom command to have additional parameter ,bootindex=.

Signed-off-by: Gleb Natapov <>
Signed-off-by: Blue Swirl <>

5e0259e7 12/11/2010 11:32 pm Gleb Natapov

Add get_fw_dev_path callback for pci bus.

Signed-off-by: Gleb Natapov <>
Signed-off-by: Blue Swirl <>

4a9dd665 12/09/2010 12:48 pm Michael S. Tsirkin

pci: untangle pci/msi dependency

msi depends on pci but pci should not depend on msi.
The only dependency we have is a recent addition
of pci_msi_ functions, IMO they add little enough to
open-code in the small number of users.

Follow-up patches add more cleanups....

b1aeb926 12/09/2010 12:47 pm Isaku Yamahata

pci: make command SERR bit writable

pcie aer needs SERR bit to be writable, and the PCI spec requires
this as well. For compatibility, introduce compat global property
command_serr_enable and make this bit readonly for a pre 0.14 pc
machine.

Signed-off-by: Isaku Yamahata <>...

929176c3 11/24/2010 05:04 pm Michael S. Tsirkin

pci: fix bus walk under secondary bus reset

Take into account secondary bus reset bit for
bus walk: devices behind a reset bus should not
respond to configuration cycles.

Signed-off-by: Michael S. Tsirkin <>

ab85ceb1 11/22/2010 10:00 am Stefan Weil

pci: Automatically patch PCI vendor id and device id in PCI ROM

PCI devices with different vendor or device ids sometimes share
the same rom code. Only the ids and the checksum
differs in a boot rom for such devices.

The i825xx ethernet controller family is a typical example...

9bb33586 11/22/2010 10:00 am Isaku Yamahata

pci: use qdev reset framework for pci bus reset

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Anthony Liguori <>
Signed-off-by: Michael S. Tsirkin <>

89d437df 11/22/2010 10:00 am Isaku Yamahata

pci: add W1C bits to pci status register

This patch adds W1C bit support in the initialization/reset of pci
status registers.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

f6bdfcc9 11/22/2010 10:00 am Michael S. Tsirkin

pci: fix bridge control bit wmask

Bits 12 to 15 in bridge control register are reserver and must be
read-only zero, curent mask is 0xffff which makes them writeable. Fix
this up by using symbolic bit names for writeable bits instead of a
hardcoded constant....

e927d487 11/16/2010 02:55 pm Michael S. Tsirkin

pci: allow hotplug removal of cold-plugged devices

This patch fixes hot unplug of cold plugged devices
(those present at system start), which got broken by
5beb8ad503c88a76f2b8106c3b74b4ce485a60e1 .

Signed-off-by: Isaku Yamahata <>...

7f5feab4 11/16/2010 02:53 pm Alex Williamson

PCI: Bus number from the bridge, not the device

pcibus_dev_print() was erroneously retrieving the device bus
number from the secondary bus number offset of the device
instead of the bridge above the device. This ends of landing
in the 2nd byte of the 3rd BAR for devices, which thankfully...

b907b69d 10/27/2010 08:07 pm Michael S. Tsirkin

Merge branch 'pci' into for_anthony

f9aebe2e 10/27/2010 08:01 pm Michael S. Tsirkin

pci: improve w1c mask handling

- save/restore must not check w1c bits
since they are in fact guest controlled
- clear w1c bits on reset

Note: for express there are different kinds of
reset, some leave part of config space alone.
We will likely need a sticky bit mask to implement this....

99443c21 10/19/2010 02:57 pm Isaku Yamahata

pci: use pci_word_test_and_clear_mask() in pci_device_reset()

use pci_clear_bit_word() in pci_device_reset() where appropriate.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

a5d1fd20 10/19/2010 02:57 pm Isaku Yamahata

pci: introduce helper function to handle msi-x and msi.

this patch implements helper functions to handle msi-x and msi
uniformly.
They will be used later.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

1a4f5971 10/18/2010 09:07 am Isaku Yamahata

pci: make pci_del_capability() update for w1cmask

Clear w1cmask when deleting a pci capability.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

b0cd712c 10/05/2010 09:53 pm Stefan Weil

Fix spelling in comments

multifuction -> multifunction
successfull -> successful.

Signed-off-by: Stefan Weil <>

92ba5f51 09/20/2010 09:10 pm Isaku Yamahata

pci: implement RW1C register framework.

Implement RW1C register framework.
With this patch, it would be easy to implement
W1C register by just setting w1cmask.
Later RW1C register will be used by pcie.

Signed-off-by: Isaku Yamahata <>...

bf1b0071 09/18/2010 08:53 am Blue Swirl

Introduce range.h

Extract range functions from pci.h. These will be used by later patches
by non-PCI devices. Adjust current users.

Signed-off-by: Blue Swirl <>

5a9ff381 09/13/2010 10:03 pm Isaku Yamahata

pci: sorting out type confusion in pci_register_bar().

This patch sorts out invalid use of pcibus_t.

In pci_register_bar(), pcibus_t wmask is used. It should,
however, be uint64_t because it is used to set
pci configuration space value(PCIDevice::wmask)...

2bbb9c2f 09/13/2010 10:03 pm Isaku Yamahata

pci: don't ignore invalid parameter for pci_register_bar().

Abort when invalid value for region_num is passed to pci_register_bar.
That is caller's bug. Abort instead of silently ignoring invalid value.

Signed-off-by: Isaku Yamahata <>...

0bb750ef 09/13/2010 10:03 pm Isaku Yamahata

pci: improve signature of pci_register_bar().

Make type uint8_t from int because PCIIORegion::type is uint8_t.

Signed-off-by: Isaku Yamahata <>

ca77089d 09/07/2010 08:10 pm Isaku Yamahata

pci: consolidate pci_add_capability_at_offset() into pci_add_capability().

By making pci_add_capability() the special case of
pci_add_capability_at_offset() of offset = 0,
consolidate pci_add_capability_at_offset() into pci_add_capability().

Cc: Stefan Weil <>...

5beb8ad5 09/07/2010 08:10 pm Isaku Yamahata

pci: call hotplug callback even when not hotplug case for later use.

call hotplug callback even when not hotplug case for later use.
And move hotplug check into hotplug callback.
PCIE slot needs this for card presence detection.

Signed-off-by: Isaku Yamahata <>...

43c945f1 09/07/2010 08:10 pm Isaku Yamahata

pci: make pci_parse_devfn() aware of func.

make pci_parse_devfn() aware of func. With func = NULL it behave as before.
This will be used later.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

783753fd 07/22/2010 12:21 pm Isaku Yamahata

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.c
for 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....

cfb0a50a 07/19/2010 02:20 pm Isaku Yamahata

pci: move out pci internal structures, PCIBus, PCIBridge, and pci_bus_info.

move out pci internal structures, PCIBus, PCIBridge and pci_bus_info into
private header file, pci_internals.h.
This is a preparation. Later pci bridge implementation will be
split out form pci.c into pci_bridge.c....

a213ff63 07/11/2010 11:31 pm Isaku Yamahata

pci hotplug: make pci hotplug return value to caller

make pci hotplug callback return value to caller.
And when returning error, allocated resources are freed.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

eb0557db 07/11/2010 11:31 pm Michael S. Tsirkin

pci: fix bridge update

bridge config write should trigger updates
on the secondary bus. never on the primary bus.

Signed-off-by: Michael S. Tsirkin <>

71ebd6dc 07/11/2010 11:14 pm Isaku Yamahata

pci: fix pci_device_reset

Clear interrupt disable bit on reset, according to PCI spec.
Fix pci_device_reset() with 64bit BAR.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

6eab3de1 07/11/2010 08:01 pm Isaku Yamahata

pci: set PCI multi-function bit appropriately.

Set PCI multi-function bit according to multifunction property.
PCI address, devfn ,is exported to users as addr property,
so users can populate pci function(PCIDevice in qemu)
at arbitrary devfn.
It means each function(PCIDevice) don't know whether pci device...

7c7b829e 07/11/2010 08:01 pm Isaku Yamahata

pci_bridge: make pci bridge aware of pci multi function bit.

make pci bridge aware of pci multi function property and let pci generic
code to set the bit.

Cc: Blue Swirl <>
Signed-off-by: Isaku Yamahata <>
Signed-off-by: Blue Swirl <>

49823868 07/11/2010 08:00 pm Isaku Yamahata

pci: introduce multifunction property.

introduce multifunction property.
Also introduce new convenient device creation function which
will be used later.

For bisectability this patch doesn't do anything, but sets the property
resulting in no functional changes....

e327e323 07/11/2010 08:00 pm Isaku Yamahata

pci: remove PCIDeviceInfo::header_type

replace PCIDeviceInfo::header_type with is_bridge
as suggested by Michael S. Tsirkin <>

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Blue Swirl <>

6fa84913 07/11/2010 08:00 pm Isaku Yamahata

pci: insert assert that auto-assigned-address function is single function device.

Auto-assigned-address pci function (passing devfn = -1) is always
single function.
This patch adds assert() to guarantee that auto-assigned-address function
is always single function device at function = 0....

4f43c1ff 07/06/2010 06:36 pm Alex Williamson

pci: Implement BusInfo.get_dev_path()

This works great for PCI since a <segment>:<bus>:<dev>.<fn> uniquely
describes a global address. No need to traverse up the qdev tree.
PCI segment support is a placeholder for compatibility once we
support multiple segments....

0be71e32 07/06/2010 06:36 pm Alex Williamson

savevm: Add DeviceState param

When available, we'd like to be able to access the DeviceState
when registering a savevm. For buses with a get_dev_path()
function, this will allow us to create more unique savevm
id strings.

Signed-off-by: Alex Williamson <>...

1724f049 07/06/2010 06:36 pm Alex Williamson

qemu_ram_alloc: Add DeviceState and name parameters

These will be used to generate unique id strings for ramblocks. The name
field is required, the device pointer is optional as most callers don't
have a device. When there's no device or the device isn't a child of...

230741dc 07/06/2010 06:36 pm Alex Williamson

pci: Free the space allocated for the option rom on removal

Signed-off-by: Alex Williamson <>
Signed-off-by: Anthony Liguori <>

3709c1b7 06/14/2010 11:46 pm Daniel P. Berrange

Clarify error message when a PCI slot is already in use (v2)

When mistakenly configuring two devices in the same PCI slot,
QEMU gives a not entirely obvious message about a 'devfn' being
in use:

$ qemu -device rtl8139 -device virtio-balloon-pci,bus=pci.0,addr=0x3...

1bb65042 06/14/2010 11:46 pm Markus Armbruster

qdev: Revert the hack to let -net nic and pci_add set qdev ID

Setting the ID in pci_nic_init() is a blatant violation of the
DeviceState abstraction. Which even carries a comment advising
against this:

/* This structure should not be accessed directly. We declare it here...

637503d1 06/01/2010 09:48 pm Luiz Capitulino

Monitor: Drop QMP documentation from code

Previous commit added QMP documentation to the qemu-monitor.hx
file, it's is a copy of this information.

While it's good to keep it near code, maintaining two copies of
the same information is too hard and has little benefit as we...

e075e788 05/31/2010 04:39 pm Isaku Yamahata

pci-hotplug: make them aware of pci domain.

add helper function which converts root bus to pci domain.
make them aware of pci domain.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

5e434f4e 05/31/2010 04:33 pm Isaku Yamahata

pci: clean up of pci_set_default_subsystem_id().

Use pci accessor function.
don't return value because it always return 0 and
the caller doesn't check the return value.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

f7ce7287 05/17/2010 08:41 pm Anthony Liguori

Merge remote branch 'mst/for_anthony' into staging

87c30546 05/15/2010 07:26 pm Isaku Yamahata

pci hotplug: add argument to pci hot plug callback.

Add argument, DeviceState*, to pci hot plug callback.
The argument will be used later to remove global variable.

Signed-off-by: Isaku Yamahata <>
Acked-by: Gerd Hoffmann <>...

c3f8f611 05/12/2010 02:02 am Michael S. Tsirkin

pci: irq_state vmstate breakage

Code for saving irq_state got vm_state
macros wrong, passing in the wrong parameter.
As a result, we both saved a wrong value
and restored it to a wrong offset.

This leads to device and bus irq counts getting
out of sync, which in turn leads to interrupts getting lost or...

925fe64a 05/12/2010 01:59 am Alex Williamson

pci: cleanly backout of pci_qdev_init()

If the init function of a device fails, as might happen with device
assignment, we never undo the work done by do_pci_register_device().
This not only causes a bit of a memory leak, but also leaves a bogus
pointer in the bus devices array that can cause a segfault or...

470e6363 04/20/2010 08:15 pm Isaku Yamahata

pci: fix pci_find_bus().

When looking down child bus, it should look parent bridge's
bus number, not child bus's.
Optimized tail recursion and style fix.

Cc: Blue Swirl <>
Cc: "Michael S. Tsirkin" <>
Signed-off-by: Isaku Yamahata <>...

1db5a3aa 04/11/2010 07:37 pm Michael S. Tsirkin

pci: add API to add capability at a known offset

Unlike virtio, device emulations need to add pci capabilities
at known offsets to match real hardware. Make this possible
by adding an appropriate API.

Signed-off-by: Michael S. Tsirkin <>

1ecda02b 03/16/2010 05:58 pm Markus Armbruster

error: Replace qemu_error() by error_report()

error_report() terminates the message with a newline. Strip it it
from its arguments.

This fixes a few error messages lacking a newline:
net_handle_fd_param()'s "No file descriptor named %s found", and
tap_open()'s "vnet_hdr=1 requested, but no kernel support for...

b5937f29 02/13/2010 09:37 am Isaku Yamahata

pci: fix info pci with host bridge.

This patch fixes 525e05147d5a3bdc08caa422d108c1ef71b584b5.
pci host bridge doesn't have header type of bridge.
The check should be by header type, instead of pci class device.

Cc: Blue Swirl <>
Cc: "Michael S. Tsirkin" <>...

8fd5cf4b 02/08/2010 12:14 pm Isaku Yamahata

pci: fix pci_find_bus()

typo in c021f8e65f5009a5ab5711d9d5326fcab553ef1c.
comparison fix.

Cc: Blue Swirl <>
Cc: "Michael S. Tsirkin" <>
Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

525e0514 02/06/2010 04:57 pm Blue Swirl

PCI: show also host bridge data in "info pci" output

Signed-off-by: Blue Swirl <>

c021f8e6 02/06/2010 11:20 am Blue Swirl

PCI: fix multiple bridge problems

When several PCI bridges were in use, monitor command "info pci" would
enter into infinite loop. Buses behind the bridge were not discoverable
because secondary and subordinate bus numbers were not used properly.
Other buses were not found because bus search terminated on first miss....

776e1bbb 01/26/2010 11:59 pm Blue Swirl

PCI: fix bridge configuration

PCI bridges' qdev info structures must indicate bridge header type,
otherwise critical bridge registers (esp. PCI_PRIMARY_BUS,
PCI_SECONDARY_BUS, PCI_SUBORDINATE_BUS) will not be writable.

Signed-off-by: Blue Swirl <>

163c8a59 01/26/2010 11:42 pm Luiz Capitulino

PCI: Convert pci_info() to QObject

The returned QObject is a QList of all buses. Each bus is
represented by a QDict, which has a key with a QList of all
PCI devices attached to it. Each device is represented by
a QDict.

As has happended to other complex conversions, it's hard to...

d5e4acf7 01/26/2010 11:42 pm Luiz Capitulino

PCI: do_pci_info(): PCI bridge devices support

This commit completes the do_pci_info() conversion to
QObject by adding support to PCI bridge devices.

This is done by recursively adding devices in the
"pci_bridge" key.

IMPORTANT: This code is being added separately because I could...

88169ddf 01/11/2010 09:41 pm Gerd Hoffmann

pci: allow loading roms via fw_cfg.

This patch adds a pci bus property 'rombar' which specifies whenever
the pci rom should be loaded via pci rom bar (default) or via fw_cfg.
The later can be used for compatibility with older qemu versions where
no pci rom bar is present....

ea3fdd5d 01/06/2010 03:16 pm Anthony Liguori

Merge remote branch 'mst/for_anthony' into staging

cf616802 12/27/2009 10:52 pm Blue Swirl

PCI: Fix bus address conversion

Pass physical addresses to map functions instead of PCI bus addresses.

Signed-off-by: Blue Swirl <>

c71b5b4a 12/25/2009 08:18 pm Blue Swirl

PCI: partially revert 2e01c8cf4b076b05013c87723e3fc710b50a0a7a

Bus address conversion was not correct.

Signed-off-by: Blue Swirl <>

2e01c8cf 12/25/2009 06:50 pm Blue Swirl

PCI: make pci_mem_base private

Make pci_mem_base private to PCIBus. Add a function to set it.

Signed-off-by: Blue Swirl <>

b8ba4176 12/23/2009 04:35 pm Isaku Yamahata

pci: remove PCIBus::config_reg.

PCIBus::config_reg isn't used anymore, so remove it.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

3d09c490 12/23/2009 04:35 pm Isaku Yamahata

pci: s/PCI_SUBVENDOR_ID/PCI_SUBSYSTEM_VENDOR_ID/g

To match Linux PCI register definition,
rename PCI_SUBVENDOR_ID to PCI_SUBSYSTEM_VENDOR_ID.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

a7b15a5c 12/23/2009 04:33 pm Michael S. Tsirkin

Revert "Revert "pci: interrupt disable bit support""

This reverts commit d587e0787153f0224a6140c5015609963ceaabfb.

c2039bd0 12/18/2009 07:26 pm Anthony Liguori

Support PCI based option rom loading

Currently, we preload option roms into the option rom space in memory. This
prevents DDIM from functioning correctly which severely limits the number
of roms we can support.

This patch introduces a pci_add_option_rom() which registers the...

8c52c8f3 12/18/2009 07:26 pm Gerd Hoffmann

pci romfiles: add property, add default to PCIDeviceInfo

This patch adds a romfile property to the pci bus. It allows to specify
a romfile to load into the rom bar of the pci device. The default value
comes from a new field in PCIDeviceInfo. The property allows to change...

d587e078 12/18/2009 07:26 pm Anthony Liguori

Revert "pci: interrupt disable bit support"

This reverts commit 0ea5709a32085f7d14901a09d12bd35f9b267607.

Per discussion with Michael Tsirkin, this is too risky for 0.12

Signed-off-by: Anthony Liguori <>

09e3acc6 12/12/2009 03:59 pm Gerd Hoffmann

pci: don't hw_error() when no slot is available.

Current PCI code will simply hw_error() and thus abort in case no free
PCI slot is available or the requested PCI slot is already in use by
another device. For the hotplug case this behavior is not acceptable....

d036bb21 12/07/2009 09:50 pm Michael S. Tsirkin

pci: prepare irq code for interrupt state

This rearranges code in preparation for interrupt state
implementation.
Changes:
- split up bus walk away from interrupt handling
into a subroutine
- change irq_state from an array to bitmask
- verify that irq_state values are 0 or 1 on load...

f9bf77dd 12/07/2009 09:50 pm Michael S. Tsirkin

pci: interrupt status bit implementation

interrupt status is a mandatory feature in PCI spec,
so devices must implement it to be spec compliant.

Signed-off-by: Michael S. Tsirkin <>
Acked-by: Isaku Yamahata <>

b6981cb5 12/07/2009 09:50 pm Michael S. Tsirkin

pci: interrupt disable bit support

Interrupt disable bit is mandatory in PCI spec.
Implement it to make devices spec compliant.

Signed-off-by: Michael S. Tsirkin <>
Acked-by: Isaku Yamahata <>

5084bca1 12/03/2009 06:04 pm Juan Quintela

pci: vmstate_register() already assign consecutive numbers starting at 0

Signed-off-by: Juan Quintela <>
Signed-off-by: Anthony Liguori <>

d6318738 12/02/2009 04:57 pm Michael S. Tsirkin

pci: move apb specific stuff to apb_pci.c

pci code had a TODO to move apb specific
pci bridge initialization to apb_pci.
Implement this and remove the TODO.

Signed-off-by: Michael S. Tsirkin <>
Signed-off-by: Anthony Liguori <>

88a95564 12/01/2009 05:52 pm Michael S. Tsirkin

pci: convert goto into scope in bridge_filter

goto into scope is evil. rearrange pci_bridge_filter
so that we always go to end of function on error.

Signed-off-by: Michael S. Tsirkin <>
Acked-by: Isaku Yamahata <>

d46636b8 12/01/2009 05:52 pm Isaku Yamahata

pci: pci bridge related clean up.

- fix bridge prefetchable memory accesser to check 64bit or not.
- use pcibus_t consistently instead mixing pcibus_t and uint64_t.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

10c9c329 12/01/2009 05:52 pm Isaku Yamahata

pci: fix pci_config_get_io_base().

fix typo in pci_config_get_io_base().

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

b47b0706 12/01/2009 05:52 pm Isaku Yamahata

pci: remove magic number, 256 in pci.c

This patch replaces magic number, 256, with ARRAY_SIZE().

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

876a350d 12/01/2009 05:52 pm Michael S. Tsirkin

pci: split up up pci_update mappings

Split bar address math into a separate function.
In particular, this gets rid of an ugly forward goto
into scope that we have there.

Signed-off-by: Michael S. Tsirkin <>
Acked-by: Isaku Yamahata <>

ec503442 12/01/2009 05:52 pm Isaku Yamahata

pci: clean up of pci_update_mappings()

This patch converts r->size == 0 to !r_size.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

3e21ffc9 12/01/2009 05:52 pm Isaku Yamahata

pci: clean up of pci_init_wmask().

This patch replaces for loop by memset in pci_init_wmask().

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>

c34369d4 12/01/2009 05:51 pm Isaku Yamahata

pci: kill unnecessary included in pci.c

including pci_host.h isn't needed by pci.c.
This patch kills it.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Michael S. Tsirkin <>