Plug-and-Play: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
No edit summary
 
No edit summary
 
(10 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Stub}}
{{Stub}}


Plug-and-play 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.
----Where can I find info on PNP?----
You can get the official Plug-and-Play documentation from the Microsoft ftp site. These documents are .EXE (self extracting) MS-Word format files. The documents are the industry (MS) specifications for PNP on BIOS, SCSI, Peripherals, etc.


There is a PnP specification for the following:
ftp://ftp.microsoft.com/developr/drg/Plug-and-Play/Pnpspecs/
* Serial port [https://web.archive.org/web/20160322040318/http://www.osdever.net/documents/PNP-ExternalSerial-v1.00.pdf]
* Parallel port [https://web.archive.org/web/20200926105816/http://www.osdever.net/documents/PNP-Parellel-v1.0b.pdf?the_id=55]
* ISA cards [https://web.archive.org/web/20160423133722/http://download.intel.com/support/motherboards/desktop/sb/pnpbiosspecificationv10a.pdf]
* BIOS [https://www.intel.com/content/dam/support/us/en/documents/motherboards/desktop/sb/pnpbiosspecificationv10a.pdf]
* SCSI [https://web.archive.org/web/20180116205211/http://ftpmirror.your.org/pub/misc/ftp.microsoft.com/developr/drg/Plug-and-Play/Pnpspecs/PNPSCSI.EXE]


== Goal of Plug-and-Play ==
Craig Hart also has a good page on PNP programming at http://members.datafast.net.au/dft0802/

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. Plug-and-play 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.

== Resources ==

You can get the official Plug-and-Play documentation from an archive of the Microsoft FTP site (The original has been down since late 2015):

https://web.archive.org/web/20180116205211/http://ftpmirror.your.org/pub/misc/ftp.microsoft.com/developr/drg/Plug-and-Play/Pnpspecs/

These documents are self-extracting MS-Word files describing the industry (MS) specifications for PNP on BIOS, SCSI, Peripherals, etc...

You can combine that with the links on this page from Microsoft circa 2003: https://web.archive.org/web/20030207142304/http://www.microsoft.com:80/hwdev/tech/PnP/default.asp

Craig Hart has a good page on PNP programming at http://web.archive.org/web/20080829130750/http://members.datafast.net.au/dft0802 (archive of [http://members.datafast.net.au/dft0802/ http://members.datafast.net.au/dft0802/])


You could also check out http://linux-sxs.org/programming/interfac.html
You could also check out http://linux-sxs.org/programming/interfac.html


[[Category:FAQ]]
[[Category:Hardware Detection]]

Latest revision as of 02:44, 10 July 2023

This page is a stub.
You can help the wiki by accurately adding more contents to it.

Plug-and-play 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.

There is a PnP specification for the following:

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. Plug-and-play 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.

Resources

You can get the official Plug-and-Play documentation from an archive of the Microsoft FTP site (The original has been down since late 2015):

https://web.archive.org/web/20180116205211/http://ftpmirror.your.org/pub/misc/ftp.microsoft.com/developr/drg/Plug-and-Play/Pnpspecs/

These documents are self-extracting MS-Word files describing the industry (MS) specifications for PNP on BIOS, SCSI, Peripherals, etc...

You can combine that with the links on this page from Microsoft circa 2003: https://web.archive.org/web/20030207142304/http://www.microsoft.com:80/hwdev/tech/PnP/default.asp

Craig Hart has a good page on PNP programming at http://web.archive.org/web/20080829130750/http://members.datafast.net.au/dft0802 (archive of http://members.datafast.net.au/dft0802/)

You could also check out http://linux-sxs.org/programming/interfac.html