Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
pci.README
Package: linux-2.4.20.tar.gz [view]
Upload User: jlfgdled
Upload Date: 2013-04-10
Package Size: 33168k
Code Size: 3k
Category:
Linux-Unix program
Development Platform:
Unix_Linux
- 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.
- arch/mips/kernel/pci_auto.c has the pci bus enumeration code.
- This code scans the pci bus(es) and assigns all of the resources.
- Thus, you don't need the boot code to that, and many boot codes
- don't do it correctly anyway. To enable the pci_auto code, add
- define_bool CONFIG_PCI_AUTO y
- 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_PCI_AUTO 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.
- Note that you can enable CONFIG_NEW_PCI code without enabling
- CONFIG_PCI_AUTO. But you can't do the opposite because the pci_auto
- routines are called from pcibios_init(), which is part of the
- CONFIG_NEW_PCI code.
- 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.