[Bug 284460] smbios driver does not discover the 64-bit table on BIOS boot
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 30 Jan 2025 10:12:46 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=284460 Bug ID: 284460 Summary: smbios driver does not discover the 64-bit table on BIOS boot Product: Base System Version: CURRENT Hardware: amd64 OS: Any Status: New Severity: Affects Some People Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: andreas.rogge@bareos.com I noticed that when running FreeBSD on the Hetzner Cloud since January 16th SMBIOS information is not available via kenv. As the cloud-init provider for Hetzner relies on smbios.system.maker and smbios.system.serial being available, this also breaks cloud-init. Investigating further, I noticed they provide a 64-bit SMBIOS table without providing a 32-bit compatibility table. While the standard strongly suggests to provide a 32-bit table, it is not required. The smbios driver can already handle the 64-bit table when being booted via UEFI, but these cloud machines are BIOS booted and the driver currently simply does not look for the 64-bit table. It does a bios_sigsearch() for "_SM_" (the 32-bit table), but does not try "_SM3_" (the 64-bit table) if that fails. Basically, adding the following after sys/dev/smbios/smbios.c:107 should fix the problem: --- CUT HERE --- if (addr == 0) { map_size = sizeof (*eps3); addr = bios_sigsearch(SMBIOS_START, SMBIOS3_SIG, SMBIOS3_LEN, SMBIOS_STEP, SMBIOS_OFF); } --- CUT HERE --- However, I haven't tested this yet. -- You are receiving this mail because: You are the assignee for the bug.