| Branch: | Revision:

root / hw / apb_pci.c @ 1a1ea6f0

History | View | Annotate | Download (13.8 kB)

# Date Author Comment
68f79994 09/07/2010 08:01 pm Isaku Yamahata

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

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

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 <>

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 <>

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

pci: don't overwrite multi functio bit in pci header type.

Don't overwrite pci header type.
Otherwise, multi function bit which pci_init_header_type() sets
appropriately is lost.
Anyway PCI_HEADER_TYPE_NORMAL is zero, so it is unnecessary to zero
which is already zero cleared....

666daa68 06/04/2010 04:20 pm Markus Armbruster

blockdev: Collect block device code in new blockdev.c

Anything that moves hundreds of lines out of vl.c can't be all bad.

Signed-off-by: Markus Armbruster <>
Signed-off-by: Kevin Wolf <>

d63baf92 05/26/2010 10:14 pm Igor V. Kovalenko

sparc64: clean up pci bridge map

- remove unused host state and store pci bus pointer only
- do not map host state access into unused 1fe.10000000 range
- reorder pci region registration
- assign pci i/o region to isa_mem_base

Signed-off-by: Igor V. Kovalenko <>...

9c0afd0e 05/12/2010 10:27 pm Blue Swirl

apb: don't use any static state

Signed-off-by: Blue Swirl <>

c9a43af9 03/21/2010 10:37 pm Blue Swirl

Fix Sparc64 build

952760bb7bce7fbfe0afcf04fee268745f297b87 missed one change.

Signed-off-by: Blue Swirl <>

63e6f31d 02/22/2010 11:23 pm Michael S. Tsirkin

apc_pci: simplify using rwhandler

Use rwhandler to simplify apb_pci.

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

8414f45c 02/22/2010 11:02 pm Michael S. Tsirkin

apb_pci: minor cleanup

pci_data_write ignores high 8 bit in address,
so there seems to be no need to set them
in apb_pci.

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

9fe52c7f 02/14/2010 10:27 am Blue Swirl

sparc64: use PCI accessors for APB/PBM

Remove useless set to zero lines. Latency programming should be
done by BIOS, reset value is zero.

Add revision to APB, don't enable PCI_COMMAND_MASTER and set status
according to APB specification.

Signed-off-by: Blue Swirl <>

95819af0 01/30/2010 09:48 pm Blue Swirl

sparc64: implement basic IOMMU/interrupt handling

Also add reset control.

Signed-off-by: Blue Swirl <>

a4d5f62c 01/29/2010 08:15 pm Blue Swirl

Sparc64: byte swap IO port access

This requires an updated OpenBIOS image.

Signed-off-by: Blue Swirl <>

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,

Signed-off-by: Blue Swirl <>

204c7a39 01/22/2010 08:39 pm Blue Swirl

Sparc64: fix PCI probe problems

Byte swap PCI config values.

Remove old bogus PCI config mechanism so that device 0:0.0 can be probed.
This requires OpenBIOS r667.

Signed-off-by: Blue Swirl <>

3eb26cc2 01/12/2010 10:04 pm Blue Swirl

Sparc64: Fix PCI config accessor order

Fix by Igor Kovalenko.

Signed-off-by: Blue Swirl <>

5a5d4a76 01/11/2010 11:20 pm Blue Swirl

Sparc64: enable real access to PCI configuration space

Leave the bogus access method used by OpenBIOS in place for now.

Signed-off-by: Blue Swirl <>

bae7b517 01/10/2010 08:25 pm Blue Swirl

Sparc64: increase APB register range

Signed-off-by: Blue Swirl <>

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

Sparc64: move APB PCI memory base to correct location

Signed-off-by: Blue Swirl <>

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 <>

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

pci: shorten pci_host_{conf, data}_register_xxx function a bit.

pci_host_data_register_io_memory and its variants are too long a bit.
So shorten them. Now they are
pci_host_{conf, data}_register_{mmio, mmio_noswap, ioport}()

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

18e08a55 12/01/2009 05:51 pm Michael S. Tsirkin

pci: pci.h cleanup: move out stuff not in pci.c

pci.h declares some functions which aren't
defined in pci.h. Clean up moving things
to appropriate headers, and update all users.

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

a455783b 11/09/2009 04:43 pm Isaku Yamahata

pci_host: consolidate pci config address access.

consolidate pci_config address access into pci_host.c

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Anthony Liguori <>

4f5e19e6 11/09/2009 04:43 pm Isaku Yamahata

pci_host.h: move functions in pci_host.h into .c file.

split static functions in pci_host.h into pci_host.c and
Later a structures declared in pci_host.h, PCIHostState, will be used.
However pci_host.h doesn't allow to include itself easily. This patches...

2217dcff 11/09/2009 04:43 pm Isaku Yamahata

pci: use PCI_SLOT() and PCI_FUNC().

use PCI_SLOT() and PCI_FUNC() where appropriate instead of
direct use of bit operation.

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

930f3fe1 10/13/2009 09:56 pm Blue Swirl

Add some chipset doc links

Signed-off-by: Blue Swirl <>

e23a1b33 10/07/2009 04:54 pm Markus Armbruster

New qdev_init_nofail()

Like qdev_init(), but terminate program via hw_error() instead of
returning an error value.

Use it instead of qdev_init() where terminating the program on failure
is okay, either because it's during machine construction, or because...

c227f099 10/02/2009 12:12 am Anthony Liguori

Revert "Get rid of _t suffix"

In the very least, a change like this requires discussion on the list.

The naming convention is goofy and it causes a massive merge problem. Something
like this must be presented on the list first so people can provide input...

99a0949b 10/01/2009 09:45 pm malc

Get rid of _t suffix

Some not so obvious bits, slirp and Xen were left alone for the time

Signed-off-by: malc <>

afcea8cb 09/20/2009 07:05 pm Blue Swirl

ioports: remove unused env parameter and compile only once

The CPU state parameter is not used, remove it and adjust callers. Now we
can compile ioport.c once for all targets.

Signed-off-by: Blue Swirl <>

c5ff6d54 09/13/2009 11:32 am Blue Swirl

Sparc64: make system bus parent of PCI bus

Signed-off-by: Blue Swirl <>

5d4e84c8 09/04/2009 05:37 pm Juan Quintela

We want the argument pass to set_irq to be opaque

piix_pci want to pass more things that the pic

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

81a322d4 08/28/2009 04:43 am Gerd Hoffmann

qdev: add return value to init() callbacks.

Sorry folks, but it has to be. One more of these invasive qdev patches.

We have a serious design bug in the qdev interface: device init
callbacks can't signal failure because the init() callback has no
return value. This patch fixes it....

d60efc6b 08/25/2009 09:29 pm Blue Swirl

Make CPURead/WriteFunc structure 'const'

Signed-off-by: Blue Swirl <>

72f44c8c 07/21/2009 11:53 am Blue Swirl

Sparc64: convert APB to qdev

Thanks to Igor Kovalenko for a bugfix.

Signed-off-by: Blue Swirl <>

110c50fd 07/11/2009 11:38 am Blue Swirl

Revert "Fix the PCI header type of APB"

This reverts commit e8d2a88755b849bdadaf80d19e342eade3c017bc.

d56dd6cf 07/10/2009 12:06 am Isaku Yamahata

use constant IOPORTS_MASK instead of 0xffff.

Signed-off-by: Isaku Yamahata <>
Signed-off-by: Anthony Liguori <>

e8d2a887 07/05/2009 11:33 pm Blue Swirl

Fix the PCI header type of APB

Signed-off-by: Blue Swirl <>

1eed09cb 06/16/2009 11:18 pm Avi Kivity

Remove io_index argument from cpu_register_io_memory()

The parameter is always zero except when registering the three internal
io regions (ROM, unassigned, notdirty). Remove the parameter to reduce
the API's power, thus facilitating future change.

Signed-off-by: Avi Kivity <>...

02e2da45 05/23/2009 02:13 am Paul Brook

Add common BusState

Implement and use a common device bus state. The main side-effect is
that creating a bus and attaching it to a parent device are no longer
separate operations. For legacy code we allow a NULL parent, but that
should go away eventually....

001faf32 05/13/2009 08:53 pm Blue Swirl

Replace gcc variadic macro extension with C99 version

Signed-off-by: Blue Swirl <>

6407f373 05/03/2009 10:03 pm Isaku Yamahata


use symbolic value instead of 0x0e and related value.

Signed-off-by: Isaku Yamahata <>

173a543b 02/01/2009 09:26 pm blueswir1

Add and use #defines for PCI device classes

This patch adds and uses #defines for PCI device classes and subclases,
using a new pci_config_set_class() function, similar to the recently
added pci_config_set_vendor_id() and pci_config_set_device_id().

Change since v1: fixed compilation of hw/sun4u.c...

480b9f24 01/27/2009 09:15 pm blueswir1

Add Simba device ID

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

deb54399 01/26/2009 05:37 pm aliguori

Define PCI vendor and device IDs in pci.h (Stuart Brady)

This patch defines PCI vendor and device IDs in pci.h (matching those
from Linux's pci_ids.h), and uses those definitions where appropriate.

Change from v1:
Introduces pci_config_set_vendor_id() / pci_config_set_device_id()...

c190ea07 01/10/2009 01:33 pm blueswir1

Add EBUS bridge

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

a94fd955 01/09/2009 10:53 pm blueswir1


git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

1d6198c3 12/13/2008 11:32 am blueswir1

Remove unnecessary trailing newlines

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

77f193da 05/12/2008 07:13 pm blueswir1

Wrap long lines

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

87ecb68b 11/17/2007 07:14 pm pbrook

Break up vl.h.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

f930d07e 10/06/2007 02:28 pm blueswir1

More detabification

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

5fafdf24 09/17/2007 12:08 am ths

find -type f | xargs sed -i 's/[\t ]$//g' # on most files

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

fdf41d22 05/30/2007 09:54 pm blueswir1

Replace target_ulong with target_phys_addr_t

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

d537cf6c 04/07/2007 09:14 pm pbrook

Unify IRQ handling.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

4258b780 12/23/2006 12:35 am pbrook

Sparc64 build fix (Igor Kovalenko).

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

80b3ada7 09/24/2006 08:01 pm pbrook

Implement sun4u PCI IRQ routing.
Allow multiple PCI busses and PCI-PCI bridges.
Fix bugs in Versatile PCI implementation.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

d2b59317 09/24/2006 03:16 am pbrook

PCI shared IRQ fix (original patch by andrzej zaborowski).

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162

502a5395 05/13/2006 07:11 pm pbrook

Rearrange PCI host emulation code.
Add ARM PCI emulation.

git-svn-id: svn:// c046a42c-6fe2-441c-8c8c-71466251a162