This is an industry registry of PNP ID and ACPI ID used in the _HID (Hardware ID), _CID (Compatibility ID) or _SUB (Subsystem ID) objects as described in the ACPI Specification for devices that do not have standard enumeration mechanism. All these devices must contain a _HID (and possibly _CID and _SUB as well) in order to allow the operating system to uniquely recognize the device so that it can load the appropriate driver software. Each device manufacturer is responsible for assigning the PNP ID or ACPI ID for each of these products.
Both PNP ID and ACPI ID consist of two parts: a Vendor ID, followed by a product identifier. Each manufacturer of these devices must be assigned an industry-unique Vendor ID. Your company may already have a Vendor ID from previous work, such as EISA boards or other Plug and Play devices (PNPISA cards, PNP serial devices, PNP monitors, and so on). If you do not have a vendor ID, or do not know if you have one, the UEFI Forum can assign one for you as described on this page, or can verify an existing ID.
The format of Vendor IDs varies depending on the form of ID you choose:
- PNP ID: PNP Vendor IDs consist of 3 characters, each character being an uppercase letter (A-Z).
- ACPI ID: ACPI Vendor IDs consist of 4 characters, each character being either an uppercase letter (A-Z) or a numeral (0-9).
It is important to note that the use of PNP ID and ACPI ID are completely interchangeable for use with ACPI. The decision is strictly related to the availability of the characters you want. The PNP ID is legacy, intended for the Plug and Play Specifications that could not support 4 characters, but is still supported in ACPI. ACPI ID enables a much bigger namespace for the ecosystem.
Vendor IDs are subject to uniqueness requirements and some ID requests may not be available. For instance, Microsoft has reserved the PNP ID’s Vendor ID "PNP" to identify various devices that do not have an existing EISA ID, as well as defining compatibility devices. These IDs are defined in the file. The ACPI Specification reserves the ACPI ID’s Vendor ID “ACPI” for use only with devices defined in that specification. Additionally, Vendor IDs consisting only of valid hexadecimal characters (0-9 and A-F) are reserved for assignment by the PCI SIG (these Vendor IDs must be registered with the PCI SIG but can still be used in ACPI). Finally, it may simply be that the character string you request has previously been assigned to another company.
Product Identifiers are always four-character hexadecimal numbers (0-9 and A-F). The Device Manufacturer is responsible for assigning this identifier to each individual product MODEL. Once an identifier is assigned to a product model, it must not be assigned to any other product model manufactured by the same company (that is, that uses the same Vendor ID).
The registry aims to ensure fair, orderly, consistent and conflict free naming of the Vendor IDs. Originally implemented by Microsoft, this registry is used to help companies avoid unnecessary collisions in implementation.
To register a new unique Vendor ID for the PNP ID or ACPI ID
Send a request to the ACPI Specification Workgroup Chairperson specifying whether the Vendor ID is for PNP ID or ACPI ID. All requests are subject to Work Group approval based on the objectives noted above.