aboutsummaryrefslogtreecommitdiff
path: root/src/arch/x86/smbios.c
diff options
context:
space:
mode:
authorNico Huber <nico.huber@secunet.com>2019-03-26 17:18:38 +0100
committerPatrick Georgi <pgeorgi@google.com>2019-03-27 08:30:18 +0000
commita02161c41e0c2c5d835e936b779f8bf8827b713e (patch)
tree420d24493ee0f035b6a0eeb4dad991fd55dc6d63 /src/arch/x86/smbios.c
parentcd23f7f6c7c16443db65df7ee27f794a403ffa36 (diff)
Revert "src/arch: An upgrade of SMBIOS to latest version 3.2"
This reverts commit b7daf7e8fa18de7bfb3cd102791bc6af89bac4b6. The review was spread across four different change-ids. Of course, not all comments were addressed, now coverity complains too. Change-Id: If5dbc1ae37120330ab192fb15eb4984afc84a7af Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/32059 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'src/arch/x86/smbios.c')
-rw-r--r--src/arch/x86/smbios.c43
1 files changed, 1 insertions, 42 deletions
diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c
index b82780db11..8cb59df6a3 100644
--- a/src/arch/x86/smbios.c
+++ b/src/arch/x86/smbios.c
@@ -328,17 +328,6 @@ static int create_smbios_type17_for_dimm(struct dimm_info *dimm,
t->handle = *handle;
*handle += 1;
t->length = sizeof(struct smbios_type17) - 2;
- t->memory_technology = MEMORY_TECHNOLOGY_UNKNOWN;
- t->operating_mode_capability = MEMORY_OPERATING_MODE_CAP_UNKNOWN;
- t->fw_version = 0xff;
- t->manufacturer_id = dimm->mod_id;
- t->product_id = 0x0000;
- t->sub_ctrl_manufacturer_id = 0x0000;
- t->sub_ctrl_product_id = 0x0000;
- t->non_volatile_size = 0xffffffffffffffff;
- t->volatile_size = 0xffffffffffffffff;
- t->cache_size = 0xffffffffffffffff;
- t->logical_size = 0xffffffffffffffff;
return t->length + smbios_string_table_len(t->eos);
}
@@ -558,31 +547,9 @@ static int smbios_write_type3(unsigned long *current, int handle)
return len;
}
-u16 __weak smbios_processor_core_thread_count(u16 level_type)
-{
- u16 count = 0;
- int ecx = 0;
-
- for (ecx = 0 ; ecx < 255 ; ecx++) {
- struct cpuid_result leaf_b;
- leaf_b = cpuid_ext(0xb, ecx);
- if ((cpuid_eax(0) < 0xb) ||
- !(leaf_b.eax | leaf_b.ebx | leaf_b.ecx | leaf_b.edx))
- return (((cpuid(1).ebx) >> 16) & 0x00ff);
-
- if ((leaf_b.ecx & 0xff00) == level_type) {
- count = leaf_b.ebx & 0xffff;
- break;
- }
- }
-
- return count;
-}
-
static int smbios_write_type4(unsigned long *current, int handle)
{
struct cpuid_result res;
- u16 core_count = 0, thread_count = 0;
struct smbios_type4 *t = (struct smbios_type4 *)*current;
int len = sizeof(struct smbios_type4);
@@ -603,15 +570,7 @@ static int smbios_write_type4(unsigned long *current, int handle)
t->processor_version = smbios_processor_name(t->eos);
t->processor_family = (res.eax > 0) ? 0x0c : 0x6;
t->processor_type = 3; /* System Processor */
-
- core_count = smbios_processor_core_thread_count(PROC_CORE_TYPE);
- thread_count = smbios_processor_core_thread_count(PROC_THREAD_TYPE);
- t->core_count2 = core_count;
- t->core_count = (core_count > BYTE_LIMIT) ? 0xff : core_count;
- t->thread_count2 = thread_count;
- t->thread_count = (thread_count > BYTE_LIMIT) ? 0xff : core_count;
- t->core_enabled2 = core_count;
-
+ t->core_count = (res.ebx >> 16) & 0xff;
t->l1_cache_handle = 0xffff;
t->l2_cache_handle = 0xffff;
t->l3_cache_handle = 0xffff;