Matt DeVillier has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/62796 )
Change subject: x86/smbios_defaults: Set default system manufacturer for ChromeOS devices ......................................................................
x86/smbios_defaults: Set default system manufacturer for ChromeOS devices
Currently, many Linux drivers use DMI quirks to identify ChromeOS devices and handle them accordingly: namely they look for the SMBIOS system manufactuer to be "GOOGLE" or "Google", and the bios-vendor to be coreboot. Historically this was consistently the case, but recent model ChromeOS devices allow the OEM to set the mainboard manufacturer, which is also the default system manufacturer. This breaks many DMI quirks, notably ones used by SOF (sound open firmware) for audio.
To fix this, set the default system manufactuer for ChromeOS devices to "Google" conditional on CONFIG_MAINBOARD_HAS_CHROMEOS, leaving the OEM customization in place for the mainboard manufacturer.
Test: build/boot google/bloog with Linux 5.16, verify SOF drivers correctly detect device as a Chromebook and load the appropriate audio firmware.
Change-Id: I9de17fa12689ab4e627b995818aa3d2653102b04 Signed-off-by: Matt DeVillier matt.devillier@gmail.com --- M src/arch/x86/smbios_defaults.c 1 file changed, 4 insertions(+), 1 deletion(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/96/62796/1
diff --git a/src/arch/x86/smbios_defaults.c b/src/arch/x86/smbios_defaults.c index 8b62ebb..5f1731c 100644 --- a/src/arch/x86/smbios_defaults.c +++ b/src/arch/x86/smbios_defaults.c @@ -115,7 +115,10 @@
__weak const char *smbios_system_manufacturer(void) { - return smbios_mainboard_manufacturer(); + if (CONFIG(MAINBOARD_HAS_CHROMEOS)) + return "Google"; + else + return smbios_mainboard_manufacturer(); }
__weak const char *smbios_system_product_name(void)