c83bab62b3
* 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>
566 B
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.