[CHID_SMBIOS_PRODUCT_SKU] = "product-sku",
[CHID_SMBIOS_BASEBOARD_MANUFACTURER] = "baseboard-manufacturer",
[CHID_SMBIOS_BASEBOARD_PRODUCT] = "baseboard-product",
+ [CHID_SMBIOS_BIOS_VENDOR] = "bios-vendor",
+ [CHID_SMBIOS_BIOS_VERSION] = "bios-version",
+ [CHID_SMBIOS_BIOS_MAJOR] = "bios-major",
+ [CHID_SMBIOS_BIOS_MINOR] = "bios-minor",
+ [CHID_SMBIOS_ENCLOSURE_TYPE] = "enclosure-type",
};
static const char chid_smbios_fields_char[_CHID_SMBIOS_FIELDS_MAX] = {
[CHID_SMBIOS_PRODUCT_SKU] = 'S',
[CHID_SMBIOS_BASEBOARD_MANUFACTURER] = 'm',
[CHID_SMBIOS_BASEBOARD_PRODUCT] = 'p',
+ [CHID_SMBIOS_BIOS_VENDOR] = 'B',
+ [CHID_SMBIOS_BIOS_VERSION] = 'v',
+ [CHID_SMBIOS_BIOS_MAJOR] = 'R',
+ [CHID_SMBIOS_BIOS_MINOR] = 'r',
+ [CHID_SMBIOS_ENCLOSURE_TYPE] = 'e',
};
static char *chid_smbios_fields_string(uint32_t combination) {
}
const uint32_t chid_smbios_table[CHID_TYPES_MAX] = {
+ [0] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER) |
+ (UINT32_C(1) << CHID_SMBIOS_FAMILY) |
+ (UINT32_C(1) << CHID_SMBIOS_PRODUCT_NAME) |
+ (UINT32_C(1) << CHID_SMBIOS_PRODUCT_SKU) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_VENDOR) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_VERSION) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_MAJOR) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_MINOR),
+
+ [1] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER) |
+ (UINT32_C(1) << CHID_SMBIOS_FAMILY) |
+ (UINT32_C(1) << CHID_SMBIOS_PRODUCT_NAME) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_VENDOR) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_VERSION) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_MAJOR) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_MINOR),
+
+ [2] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER) |
+ (UINT32_C(1) << CHID_SMBIOS_PRODUCT_NAME) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_VENDOR) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_VERSION) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_MAJOR) |
+ (UINT32_C(1) << CHID_SMBIOS_BIOS_MINOR),
+
[3] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER) |
(UINT32_C(1) << CHID_SMBIOS_FAMILY) |
(UINT32_C(1) << CHID_SMBIOS_PRODUCT_NAME) |
[11] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER) |
(UINT32_C(1) << CHID_SMBIOS_FAMILY),
+ [12] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER) |
+ (UINT32_C(1) << CHID_SMBIOS_ENCLOSURE_TYPE),
+
[13] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER) |
(UINT32_C(1) << CHID_SMBIOS_BASEBOARD_MANUFACTURER) |
(UINT32_C(1) << CHID_SMBIOS_BASEBOARD_PRODUCT),
+
+ [14] = (UINT32_C(1) << CHID_SMBIOS_MANUFACTURER),
};
void chid_calculate(const char16_t *const smbios_fields[static _CHID_SMBIOS_FIELDS_MAX], EFI_GUID ret_chids[static CHID_TYPES_MAX]) {
[CHID_SMBIOS_FAMILY] = u"To be filled by O.E.M.",
[CHID_SMBIOS_BASEBOARD_PRODUCT] = u"MPG X670E CARBON WIFI (MS-7D70)",
[CHID_SMBIOS_BASEBOARD_MANUFACTURER] = u"Micro-Star International Co., Ltd.",
+ [CHID_SMBIOS_ENCLOSURE_TYPE] = u"3",
};
/* Actual output of `fwupdtool hwids`:
{7b3d90ce-ed79-5951-a48a-764ea9f11146} <- Manufacturer + BiosVendor
*/
-static const EFI_GUID actual_chids[] = {
+static const EFI_GUID actual_chids[CHID_TYPES_MAX] = {
{0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
{0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
{0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
{0xc12c1f4a, 0x332d, 0x5d72, {0xaa, 0x36, 0x7a, 0x3d, 0x41, 0x3b, 0x47, 0x9a}},
{0x28ac9cf2, 0x5bde, 0x59f7, {0xae, 0xbe, 0x4b, 0x3d, 0x00, 0x80, 0x90, 0xfe}},
{0xe821e0e2, 0xe11a, 0x5e94, {0xbf, 0x5d, 0xff, 0xe5, 0x3c, 0x5e, 0x50, 0x48}},
- {0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
+ {0xbdd76d3e, 0x147f, 0x58a9, {0xa0, 0xb2, 0x42, 0x13, 0x64, 0x54, 0xed, 0x07}},
{0xb2e58e8b, 0xfb10, 0x5cd0, {0x8f, 0xb0, 0x5b, 0xd9, 0x31, 0xf1, 0x87, 0x1a}},
- {0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}},
+ {0x50af5797, 0xa2f2, 0x58b1, {0x9a, 0x1a, 0x45, 0x3b, 0xcb, 0xb2, 0xe0, 0x25}},
};
TEST(chid) {