Tim Chu has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/48636 )
Change subject: arch/x86/smbios: Correct SMBIOS type 4 max speed ......................................................................
arch/x86/smbios: Correct SMBIOS type 4 max speed
Now smbios type 4 max speed field will use the maximum speed of processor itself if CPUID value can be accessed. However, this field should be the maximum processor speed supported by th system. Here we use smbios_cpu_get_max_speed_mhz only to get correct value.
Tested=Execute "dmidecode -t 4" to check max speed is correct.
Signed-off-by: Tim Chu Tim.Chu@quantatw.com Change-Id: Iae8e01a5e455709a57d60a840f279685c8aab80f --- M src/arch/x86/smbios.c 1 file changed, 3 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/36/48636/1
diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c index aaf989d..3caf1c1 100644 --- a/src/arch/x86/smbios.c +++ b/src/arch/x86/smbios.c @@ -673,15 +673,16 @@ t->processor_upgrade = get_socket_type(); len = t->length + smbios_string_table_len(t->eos); if (cpu_have_cpuid() && cpuid_get_max_func() >= 0x16) { - t->max_speed = cpuid_ebx(0x16); t->current_speed = cpuid_eax(0x16); /* base frequency */ t->external_clock = cpuid_ecx(0x16); } else { - t->max_speed = smbios_cpu_get_max_speed_mhz(); t->current_speed = smbios_cpu_get_current_speed_mhz(); t->external_clock = smbios_processor_external_clock(); }
+ /* This field identifies a capability for the system, not the processor itself. */ + t->max_speed = smbios_cpu_get_max_speed_mhz(); + if (cpu_have_cpuid()) { res = cpuid(1);