PCI is a widely used bus standard, it provides many superior to other bus standards (such as EISA) new features, has become the most widely used in computer systems, and the most common bus standards. Linux kernel can better support PCI bus, this paper based on the Intel 386 architecture, discusses the development of PCI device driver under Linux basic framework.
First, PCI bus system architecture
PCI is the abbreviation of peripheral equipment Interconnection (peripheral Component interconnect), as a universal bus interface standard, it has been widely used in the current computer system. PCI provides a complete set of bus interface specifications to describe how peripherals in a computer system are connected in a structured and controllable manner, while also portraying the electrical characteristics and behavior specifications of peripherals as they are connected, And the detailed definition of how the different parts of the computer system should interact correctly.
Whether in an intel-based PC or on an alpha-chip workstation, PCI is undoubtedly the most widely used bus interface standard at the moment. Unlike the Legacy ISA bus, PCI completely separates the bus subsystem of the computer system from the storage subsystem, and the CPU completes the interaction with the bus subsystem through a device called a PCI Bridge (Pci-bridge), as shown in Figure 1.
Figure 1 Architecture of the PCI subsystem
With a higher clock frequency, the PCI bus can achieve better overall performance than the ISA bus. The PCI bus clock frequency is generally in 25MHz to 33MHz range, some can even reach 66MHz or 133MHz, and in 64-bit system can achieve the highest 266MHz. Although the current PCI devices are mostly 32-bit data bus, but the PCI specification has given a 64-bit extension implementation, so that the PCI bus can better achieve platform-independent, now the PCI bus has been able to IA-32, Alpha, PowerPC, SPARC64 and ia- 64 architecture.