Plug-and-Play

From OSDev Wiki
(Redirected from PnP)
Jump to navigation Jump to search

HistoricalCuriosity.png

The content of this article or section is considered a historical curiosity and should not be considered for new designs.


This article is a stub! This page or section is a stub. You can help the wiki by accurately contributing to it.

Plug-and-Play (PnP) is a set of hardware and software specifications designed to reduce or eliminate user configuration for PC hardware by facilitating the discovery of devices and matching drivers as well as resource management (DMA, IRQ, etc.). As of 2001, ACPI has assumed the role of PnP BIOS and APM, and PCI has inherent plug-and-play functionality through the configuration space, thus making PnP obsolete.


Goal of Plug-and-Play

In the early days of the IBM PC platform, IRQs, DMA channels, ports, and memory addresses had to be manually configured by flipping DIP switches and jumping pins on the main board. Conflicts always caused errors because the ISA bus did not have any way of arbitrating shared resources (e.g. there was no way to know where an IRQ came from). Drivers would have to be set up manually. PnP ISA was developed for the standard 16-bit PC bus as a hardware extension. It did not allow for IRQ sharing but did allow resources to be reallocated through a configuration space to avoid conflicts.

To assist the OS in hardware configuration, the PnP BIOS specification was published. It provides a 16-bit protected and real mode interface with various functions like obtaining extended system configuration data and the number of ISA PnP cards, amongst other features.

PnP device specifications

There are PnP specifications for the following:

Resources

See Also

Articles