diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c index 8c595ff3d4..c7827ed5e5 100644 --- a/src/arch/x86/smbios.c +++ b/src/arch/x86/smbios.c @@ -686,15 +686,16 @@ static int smbios_write_type4(unsigned long *current, int handle) 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);