
Pete Popov, ppopov@pacbell.net
07/11/2001

This README briefly explains how to use the pci and pci_auto
code in arch/mips/kernel.  The code was ported from PowerPC and
modified slightly. It has been tested pretty well on PPC on some
rather complex systems with multiple bridges and devices behind
each bridge. However, at the time this README was written, the
mips port was tested only on boards with a single pci bus and
no P2P bridges.  It's very possible that on boards with P2P
bridges some modifications have to be made. The code will 
evolve, no doubt, but currently every single mips board
is doing its own pcibios thing and it has become a big
mess.  This generic pci code is meant to clean up the mips
pci mess and make it easier to add pci support to new boards.

inside the define for your board in arch/mips/config.in. 
For example, the Galileo EV96100 board  looks like this:

if [ "$CONFIG_MIPS_EV96100" = "y" ]; then
	define_bool CONFIG_PCI y
	define_bool CONFIG_MIPS_GT96100 y
	define_bool CONFIG_NEW_PCI y
	define_bool CONFIG_SWAP_IO_SPACE y
fi 


Next, if you want to use the arch/mips/kernel/pci code, which has the
pcibios_init() function, add

define_bool CONFIG_NEW_PCI y
 
inside the define for your board. Again, the EV96100 example above
show NEW_PCI turned on.


Now you need to add your files to hook in your pci configuration
cycles.  Usually you'll need only a couple of files named something
like pci_fixups.c and pci_ops.c.  You can copy the templates
provided and fill in the code.

The file pci_ops.c should contain the pci configuration cycles routines.
It also has the mips_pci_channels[] array which contains the descriptors
of each pci controller.

The file pci_fixups.c contains a few routines to do interrupt fixups,
resources fixups, and, if needed, pci bios fixups.

Usually you'll put your pci_fixups.c file in your board specific directory, 
since the functions in that file are board specific.  The functions in
pci_ops.c, on the other hand, are usually pci controller specific so that
file could be shared among a few different boards using the same
pci controller.
