Next Previous Contents

# Plug-and-Play-HOWTO

## David S. Lawyer `mailto:dave@lafn.org`

v1.15, August 2007

Explains in detail low-level resources such as addresses, interrupts, etc. Covers both the PCI bus, which is inherently Plug and Play (PnP) and PnP on the old ISA bus. If PnP did it's job right, you wouldn't need this howto. But in case it doesn't, or if you have old hardware that doesn't use PnP for all the cards, then this HOWTO should help. It doesn't cover what's called "Universal Plug and Play" (UPnP).

## 1. Introduction

- 1.1 1. Copyright, Trademarks, Disclaimer, & Credits
- 1.2 Future Plans; You Can Help
- 1.3 New Versions of this HOWTO
- 1.4 New in Recent Versions
- 1.5 General Introduction. Do you need this HOWTO?

## 2. What PnP Should Do: Allocate "Bus-Resources"

- 2.1 What is Plug-and-Play (PnP)?
- 2.2 Hardware Devices and Communication with them
- 2.3 Addresses
- 2.4 I/O Addresses (principles relevant to other resources too)
- 2.5 Memory Ranges
- 2.6 IRQs --Overview
- 2.7 DMA (Direct Memory Access) or Bus Mastering
- 2.8 DMA Channels (not for PCI bus)
- 2.9 "Resources" for both Device and Driver
- 2.10 Resources are Limited
- 2.11 Second Introduction to PnP
- 2.12 How Pnp Works (simplified)
- 2.13 Starting Up the PC
- 2.14 Buses
- 2.15 How Linux Does PnP
- 2.16 Problems with Linux PnP

## 3. Setting up a PnP BIOS

- 3.1 Do you have a PnP operating system?
- 3.2 Assigning Resources by the BIOS
- 3.3 Reset the configuration?

## 4. How to Deal with PnP Cards

- 4.1 Introduction to Dealing with PnP Devices
- 4.2 Device Driver Configures, Reserving Resources
- 4.3 /sys User Interface Configures
- 4.4 BIOS Configures
- 4.5 ISA cards only: Disable PnP ?
- 4.6 ISA Bus: Isapnp (part of isapnptools)
- 4.7 PCI Utilities
- 4.8 Windows Configures
- 4.9 PnP Software/Documents

## 5. Tell the Driver the Configuration ??

- 5.1 Introduction
- 5.2 Serial Port Driver Example

## 6. How Do I Find Devices and How Are They Configured?

- 6.1 Finding and How-Configured Are Related
- 6.2 Devices May Have Two "Configurations"
- 6.3 Finding Hardware
- 6.4 Boot-time Messages
- 6.5 The /proc Tree
- 6.6 The /sys Tree
- 6.7 PCI Bus Inspection
- 6.8 ISA Bus Introduction
- 6.9 ISA PnP cards
- 6.10 LPC Bus
- 6.11 X-bus
- 6.12 Non-PnP Cards
- 6.13 Non-PnP Cards with jumpers
- 6.14 Neither PnP nor jumpers
- 6.15 Tools for Detecting and/or Configuring all Hardware
- 6.16 Tools for Detecting and Configuring One Type of Hardware
- 6.17 Use MS Windows

## 7. PCI Interrupts

- 7.1 Introduction
- 7.2 History: From ISA to PCI Interrupts
- 7.3 Advanced Programmable Interrupt Controller (APIC)
- 7.4 Message Signalled Interrupts (MSI)
- 7.5 Sharing PCI Interrupts
- 7.6 Looking at Routing Tables
- 7.7 For More Information
- 7.8 PCI Interrupt Linking

## 8. PnP for External and Plug-in Devices

- 8.1 USB Bus
- 8.2 Hot Plug
- 8.3 Hot Swap
- 8.4 PnP Finds Devices Plugged Into Serial Ports

## 9. Error Messages

- 9.1 Unexpected Interrupt
- 9.2 Plug and Play Configuration Error (Dell BIOS)
- 9.3 isapnp: Write Data Register 0xa79 already used (from logs)
- 9.4 Can't allocate region (PCI)

## 10. Interrupt Sharing and Interrupt Conflicts

- 10.1 Introduction
- 10.2 Real Interrupt Conflict
- 10.3 No Interrupt Available

## 11. Appendix

- 11.1 Universal Plug and Play (UPnP)
- 11.2 Address Details
- 11.3 ISA Bus Configuration Addresses (Read-Port etc.)
- 11.4 Interrupts --Details
- 11.5 How the Device Driver Catches its Interrupt
- 11.6 ISA Isolation
- 11.7 Bus Mastering and DMA resources
- 11.8 Historical and Obsolete

Next Previous Contents