soc/amd/picasso/soc_util: use cpuid_match
Now that there is a cpuid_match function, we can use it instead of doing basically the same thing manually. In the functions is_fam17_1x and is_fam17_2x both the stepping number and the lower nibble of the model number are masked out. To avoid having magic constants in the code, introduce the CPUID_ALL_STEPPINGS_AND_BASE_MODELS_MASK definition. Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Change-Id: I758f9564c08c62c747cc4f93a8d6b540a1834a62 Reviewed-on: https://review.coreboot.org/c/coreboot/+/72860 Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com> Reviewed-by: Martin Roth <martin.roth@amd.corp-partner.google.com> Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
e1a84db3e0
commit
b6969db5c2
|
@ -121,8 +121,9 @@ struct device;
|
|||
((model) & 0xf) << 4 | \
|
||||
((stepping) & 0xf) << 0)
|
||||
|
||||
#define CPUID_EXACT_MATCH_MASK 0xffffffff
|
||||
#define CPUID_ALL_STEPPINGS_MASK 0xfffffff0
|
||||
#define CPUID_EXACT_MATCH_MASK 0xffffffff
|
||||
#define CPUID_ALL_STEPPINGS_MASK 0xfffffff0
|
||||
#define CPUID_ALL_STEPPINGS_AND_BASE_MODELS_MASK 0xffffff00
|
||||
|
||||
static inline bool cpuid_match(uint32_t a, uint32_t b, uint32_t mask)
|
||||
{
|
||||
|
|
|
@ -93,32 +93,29 @@ static bool is_mystery_silicon(void)
|
|||
|
||||
static bool is_fam17_1x(void)
|
||||
{
|
||||
/* mask lower model number nibble and stepping */
|
||||
return cpuid_eax(1) >> 8 == PICASSO_B0_CPUID >> 8;
|
||||
return cpuid_match(cpuid_eax(1), PICASSO_B0_CPUID,
|
||||
CPUID_ALL_STEPPINGS_AND_BASE_MODELS_MASK);
|
||||
}
|
||||
|
||||
static bool is_fam17_11(void)
|
||||
{
|
||||
/* only mask stepping */
|
||||
return cpuid_eax(1) >> 4 == RAVEN1_B0_CPUID >> 4;
|
||||
return cpuid_match(cpuid_eax(1), RAVEN1_B0_CPUID, CPUID_ALL_STEPPINGS_MASK);
|
||||
}
|
||||
|
||||
static bool is_fam17_18(void)
|
||||
{
|
||||
/* only mask stepping */
|
||||
return cpuid_eax(1) >> 4 == PICASSO_B0_CPUID >> 4;
|
||||
return cpuid_match(cpuid_eax(1), PICASSO_B0_CPUID, CPUID_ALL_STEPPINGS_MASK);
|
||||
}
|
||||
|
||||
static bool is_fam17_2x(void)
|
||||
{
|
||||
/* mask lower model number nibble and stepping */
|
||||
return cpuid_eax(1) >> 8 == RAVEN2_A0_CPUID >> 8;
|
||||
return cpuid_match(cpuid_eax(1), RAVEN2_A0_CPUID,
|
||||
CPUID_ALL_STEPPINGS_AND_BASE_MODELS_MASK);
|
||||
}
|
||||
|
||||
static bool is_fam17_20(void)
|
||||
{
|
||||
/* only mask stepping */
|
||||
return cpuid_eax(1) >> 4 == RAVEN2_A0_CPUID >> 4;
|
||||
return cpuid_match(cpuid_eax(1), RAVEN2_A0_CPUID, CPUID_ALL_STEPPINGS_MASK);
|
||||
}
|
||||
|
||||
enum silicon_type get_silicon_type(void)
|
||||
|
|
Loading…
Reference in New Issue