* 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>
		
			
				
	
	
		
			15 lines
		
	
	
		
			566 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			15 lines
		
	
	
		
			566 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 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.
 |