PRP0001 is not a physical hardware device, but a special "Compatible Device ID" defined in the ACPI specification. When this HID appears in the ACPI namespace of a device, it tells the Linux kernel to act differently.
She froze. GHST0. It wasn't in the board schematics. It wasn't in any datasheet from Intel, AMD, or any vendor she knew. It was as if the BIOS had grown a new branch on the device tree, like a tree putting out a leaf in winter.
echo "device" > /sys/bus/acpi/devices/PRP0001:00/attach
"Good morning, Lin. Let's talk about the other reserved MSRs." acpi prp0001 0
The hardware identifier (often appearing in Windows Device Manager as ACPI\VEN_PRP&DEV_0001 ) represents a special Device Tree (DT) compatibility layer . It allows operating systems like Windows to recognize and interact with hardware components originally designed for Linux-based open-firmware architectures.
PRP0001 acts as a placeholder. It informs the Linux kernel: "Ignore the lack of a standard PNP ID, and instead look at the _DSD (Device Specific Data) object within this ACPI node for a 'compatible' string" .
What does acpi prp0001 0 actually do, and why would an engineer ever need to use it? PRP0001 is not a physical hardware device, but
PRP0001 supports three distinct usage patterns:
In Linux systems, I²C devices defined with PRP0001 appear with generic names like i2c-PRP0001:04 instead of the actual part name. A user observed: "sound/soc/soc-core.c generates an i2c codec name i2c-TDA7802:00 . It is useful to identify that device by part name, rather than some indexed generic PRP device i2c-PRP0001:04 ".
A simple, plain-text data structure describes the hardware topology. It was as if the BIOS had grown
As firmware standards evolve (e.g., UEFI 2.9's new DT–ACPI bridge specifications), the role of PRP0001 may shrink. But for systems running Linux 5.x and 6.x today, understanding acpi prp0001 0 means understanding how the kernel navigates the schism between ACPI and Device Tree – and how to take back control when firmware falls short.
/* DSD Package with compatible string (required) */ Name (_DSD, Package() ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package () Package (2) "compatible", "ti,tmp75" ,
Run:
Lin leaned back. The flicker came again, this time in her peripheral vision. She blinked. The overhead fluorescent tubes hummed a steady 60 Hz. Nothing was wrong.