coreboot-kgpe-d16/Documentation/acpi/uid.md
Patrick Rudolph c83bab62b3 acpi: Be more ACPI compliant when generating _UID
* Add function to generate unique _UID using CRC32
* Add function to write the _UID based on a device's ACPI path

ACPI devices that have the same _HID must use different _UID.
Linux doesn't care about _UID if it's not used.
Windows 10 verifies the ACPI code on boot and BSODs if two devices
with the same _HID share the same _UID.

Fixes BSOD seen on Windows 10.

Change-Id: I47cd5396060d325f9ce338afced6af021e7ff2b4
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/37695
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
2020-01-09 14:22:51 +00:00

566 B

ACPI SSDT _UID generation

According to the ACPI spec:

The _UID must be unique across all devices with either a common _HID or _CID.

When generating SSDTs in coreboot the independent drivers don't know which _UID is already in use for a specific _HID or _CID. To generate unique _UIDs the ACPI device's path is hashed and used as ID. As every ACPI device has a different path, the hash will be also different for every device.

Windows 10 verifies all devices with the same _HID or _CID and makes sure that no _UID is duplicated. If it is it'll BSOD.