 1da177e4c3
			
		
	
	
	1da177e4c3
	
	
	
		
			
			Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
		
			
				
	
	
		
			54 lines
		
	
	
	
		
			2.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			2.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
 | |
| 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.
 |