From: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Date: Thu, 28 Dec 2023 07:30:23 +0000 (+0100)
Subject: smbios: enable setting processor family > 0xff
X-Git-Tag: v2025.01-rc5-pxa1908~719^2~3
X-Git-Url: http://git.dujemihanovic.xyz/img/static/html/%7B%7B?a=commitdiff_plain;h=0920bd50dc1d5e58a6afd74fcbd6aaf0405d7c65;p=u-boot.git

smbios: enable setting processor family > 0xff

Many value of processor type exceed 0xff and have to be stored as u16
value. In the type 4 table set processor_family = 0xfe signaling that
field processor_family2 is used and write the actual value into the
processor_family2 field.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---

diff --git a/lib/smbios.c b/lib/smbios.c
index d9d52bd58d..41aa936c4c 100644
--- a/lib/smbios.c
+++ b/lib/smbios.c
@@ -467,7 +467,8 @@ static void smbios_write_type4_dm(struct smbios_type4 *t,
 	}
 #endif
 
-	t->processor_family = processor_family;
+	t->processor_family = 0xfe;
+	t->processor_family2 = processor_family;
 	t->processor_manufacturer = smbios_add_prop(ctx, NULL, vendor);
 	t->processor_version = smbios_add_prop(ctx, NULL, name);
 }
@@ -489,7 +490,6 @@ static int smbios_write_type4(ulong *current, int handle,
 	t->l1_cache_handle = 0xffff;
 	t->l2_cache_handle = 0xffff;
 	t->l3_cache_handle = 0xffff;
-	t->processor_family2 = t->processor_family;
 
 	len = t->length + smbios_string_table_len(ctx);
 	*current += len;