58 lines
1.9 KiB
Diff
58 lines
1.9 KiB
Diff
From e52fdbd850b49304c5bbd5f19c9f518b80efef42 Mon Sep 17 00:00:00 2001
|
|
From: zhanghailiang <zhang.zhanghailiang@huawei.com>
|
|
Date: Wed, 31 Jul 2019 15:40:55 +0800
|
|
Subject: [PATCH] smbios: Add missing member of type 4 for smbios 3.0
|
|
|
|
According to smbios 3.0 spec, for processor information (type 4),
|
|
it adds three new members (Core Count 2, Core enabled 2, thread count 2) for 3.0,
|
|
|
|
Without this three members, we can not get correct cpu frequency from dmi,
|
|
Because it will failed to check the length of Processor Infomation in DMI.
|
|
|
|
The corresponding codes in kernel is like:
|
|
if (dm->type == DMI_ENTRY_PROCESSOR &&
|
|
dm->length >= DMI_ENTRY_PROCESSOR_MIN_LENGTH) {
|
|
u16 val = (u16)get_unaligned((const u16 *)
|
|
(dmi_data + DMI_PROCESSOR_MAX_SPEED));
|
|
*mhz = val > *mhz ? val : *mhz;
|
|
}
|
|
|
|
Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
|
|
---
|
|
hw/smbios/smbios.c | 4 +++-
|
|
include/hw/firmware/smbios.h | 3 +++
|
|
2 files changed, 6 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
|
|
index 47be9071..b11ec6e3 100644
|
|
--- a/hw/smbios/smbios.c
|
|
+++ b/hw/smbios/smbios.c
|
|
@@ -600,7 +600,9 @@ static void smbios_build_type_4_table(unsigned instance)
|
|
t->thread_count = smp_threads;
|
|
t->processor_characteristics = cpu_to_le16(0x02); /* Unknown */
|
|
t->processor_family2 = cpu_to_le16(0x01); /* Other */
|
|
-
|
|
+ t->corecount2 = 0;
|
|
+ t->enabledcorecount2 = 0;
|
|
+ t->threadcount2 = 0;
|
|
SMBIOS_BUILD_TABLE_POST;
|
|
smbios_type4_count++;
|
|
}
|
|
diff --git a/include/hw/firmware/smbios.h b/include/hw/firmware/smbios.h
|
|
index 6fef32a3..70eb7304 100644
|
|
--- a/include/hw/firmware/smbios.h
|
|
+++ b/include/hw/firmware/smbios.h
|
|
@@ -193,6 +193,9 @@ struct smbios_type_4 {
|
|
uint8_t thread_count;
|
|
uint16_t processor_characteristics;
|
|
uint16_t processor_family2;
|
|
+ uint16_t corecount2;
|
|
+ uint16_t enabledcorecount2;
|
|
+ uint16_t threadcount2;
|
|
} QEMU_PACKED;
|
|
|
|
/* SMBIOS type 11 - OEM strings */
|
|
--
|
|
2.19.1
|
|
|