[Bug 284460] smbios driver does not discover the 64-bit table on BIOS boot
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.