summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubrata Banik <subrata.banik@intel.com>2021-09-01 12:35:15 +0530
committerTim Wawrzynczak <twawrzynczak@chromium.org>2021-09-03 19:14:16 +0000
commit72f1e62bbbdd0ed5f45765e3c6cd5ef45a18e028 (patch)
treea1dbf1688e910a753e6f1beb6b1e1005364d384c
parent04096b97739f3ce603f95c4d22ec18d88f38b746 (diff)
arch/x86: Skip returning default leaf value as `0`
`cpu_get_cache_info_leaf()` function is responsible to report leaf value for CPU that have support for deterministic cache cpuid. As per available datasheets from AMD and Intel the supported CPUID leafs are 0x8000_001d for AMD and 0x04 for Intel. Hence, this CL skips returning default leaf value as `0`. TEST=Verified fixes: e2b5fee3b006 (arch/x86: smbios write 7 table using deterministic cache functions) hang issue on ASRock E350M1. Change-Id: Iee33b39298e7821ac5280d998172b58a70c8715b Signed-off-by: Subrata Banik <subrata.banik@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/57305 Reviewed-by: Paul Menzel <paulepanter@mailbox.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/arch/x86/cpu_common.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/arch/x86/cpu_common.c b/src/arch/x86/cpu_common.c
index 835cddd686..302a14e6d2 100644
--- a/src/arch/x86/cpu_common.c
+++ b/src/arch/x86/cpu_common.c
@@ -109,14 +109,11 @@ enum cpu_type cpu_check_deterministic_cache_cpuid_supported(void)
static uint32_t cpu_get_cache_info_leaf(void)
{
- switch (cpu_check_deterministic_cache_cpuid_supported()) {
- case CPUID_TYPE_AMD:
- return DETERMINISTIC_CACHE_PARAMETERS_CPUID_AMD;
- case CPUID_TYPE_INTEL:
- return DETERMINISTIC_CACHE_PARAMETERS_CPUID_IA;
- default:
- return 0;
- }
+ uint32_t leaf = (cpu_check_deterministic_cache_cpuid_supported() == CPUID_TYPE_AMD) ?
+ DETERMINISTIC_CACHE_PARAMETERS_CPUID_AMD :
+ DETERMINISTIC_CACHE_PARAMETERS_CPUID_IA;
+
+ return leaf;
}
size_t cpu_get_cache_ways_assoc_info(const struct cpu_cache_info *info)