Click here to start

Table of contents

Title

The PCI standard

Architecture

Buses, devices, and functions (1)

Buses, devices, and functions (2)

Resources

I/O ports

Local memory

IRQ lines

Configuration registers

Plug and Play support (1)

Plug and Play support (2)

Plug and Play support (3)

PCI support in Linux

Writing a PCI driver in 5+3 steps

Step #1: the pci_device_id table (1)

Step #1: the pci_device_id table (2)

Step #1: the pci_device_id table (3)

Step #2: the pci_driver descriptor (1)

Step #2: the pci_driver descriptor (2)

Step #3: initialize the peripheral (1)

Step #3: initialize the peripheral (2)

Step #3: initialize the peripheral (3)

Step #3a: the driver's peripheral descriptor

Step #3b: allocate the data structures

Step #3c: link the peripheral descriptor

Step #3d: enable the PCI peripheral

Step #3e: reserving the I&O addresses

Step #3f: get the memory addresses (1)

Step #3f: get the memory addresses (2)

Step #3g: register the IRQ handler

Step #4: release the device driver

Step #5: module loading and unloading

Author: D. P. Bovet, M. Cesati

E-mail: lkh@bravo.ce.uniroma2.it

Homepage: http://bravo.ce.uniroma2.it/kernelhacking2003/

Further information:
GNU Free Documentation License