Next Previous Contents

# Plug-and-Play-HOWTO

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

v1.14, February 2006

Explains resources used in Plug-and-Play (PnP) such as addresses, interrupts, etc. Covers both the PCI bus (inherently PnP) and PnP on the old ISA bus. If PnP did it's job right, you wouldn't need this howto. Otherwise, this will both explain PnP and help you detect and assign resources to hardware (low level configuring). 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 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

## 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