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>
diff --git a/src/superio/common/ssdt.c b/src/superio/common/ssdt.c
index 41cafdf..541fa99 100644
--- a/src/superio/common/ssdt.c
+++ b/src/superio/common/ssdt.c
@@ -196,7 +196,8 @@
 	/* Device */
 	acpigen_write_device(name);
 
-	acpigen_write_name_byte("_UID", 0);
+	acpi_device_write_uid(dev);
+
 	acpigen_write_name_byte("LDN", ldn);
 	acpigen_write_name_byte("VLDN", vldn);