Introduction to PCI: from hardware to your program
PCI is an industry standard peripheral interconnect found in pretty much
all desktops, laptops and servers, used for accelerators, graphics, networking
and more. In this presentation we'll go over what PCI is, what it's used for,
and how it works: from the card you plug in to your motherboard to the program
that ends up using it.
We'll cover the following:
- what PCI is
- what it's used for, with examples
- versions of PCI (e.g. PCI-X, PCI Express)
- a basic overview of the hardware
- firmware, and how different architectures do it differently (x86/ARM/POWER8)
- what Linux does: in general, for each architecture, and how drivers work
- how your userspace code can actually use PCI devices
Russell Currey | IBM |
Russell Currey is an open source hacker who works at OzLabs, part of
IBM's Linux Technology Center, in Canberra. Russell grew up in country
Queensland and likes computers, music, video games, and generally not going
outside much. At OzLabs he works on the Linux kernel and OpenPOWER firmware,
mostly around PCI, and is the maintainer of PCI Enhanced Error Handling in
Linux. He has a BSc in computer science from the University of Queensland, and
in a previous life worked on security software.