On 12/28/23 14:37, Simon Glass wrote:
Hi Heinrich,

On Thu, Dec 28, 2023 at 7:30 AM Heinrich Schuchardt
<heinrich.schucha...@canonical.com> wrote:

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.schucha...@canonical.com>
---
  lib/smbios.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)


Reviewed-by: Simon Glass <s...@chromium.org>

diff --git a/lib/smbios.c b/lib/smbios.c
index 45480b01af..550b2471f9 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;

Why not use 'family' if it fits?

Using family for values less then 0x100 is allowable.
But there would be no benefit in making our code more complicated.

Best regards

Heinrich


         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;
--
2.43.0


Regards,
Simon

Reply via email to