soc/amd/picasso: Add helper functions for finding SOC type

We're running into more and more situations where we need to tell one
SOC type from another, and instead of rewriting them every time, just
add some helper functions to the picasso SOC directory.

Change-Id: I24b73145cdfa80c09fbe036d1fb6079696c6d013
Signed-off-by: Martin Roth <martinroth@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/2051514
Reviewed-on: https://chromium-review.googlesource.com/2060904
Reviewed-on: https://chromium-review.googlesource.com/2060905
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Eric Peers <epeers@google.com>
Reviewed-by: Raul E Rangel <rrangel@chromium.org>
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/39886
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Martin Roth 2020-02-17 13:17:19 -07:00 committed by Patrick Georgi
parent 91dddd47b3
commit 97bd2a7f33
3 changed files with 43 additions and 0 deletions

View File

@ -43,6 +43,7 @@ romstage-$(CONFIG_PICASSO_UART) += uart.c
romstage-y += tsc_freq.c romstage-y += tsc_freq.c
romstage-y += southbridge.c romstage-y += southbridge.c
romstage-$(CONFIG_HAVE_SMI_HANDLER) += smi_util.c romstage-$(CONFIG_HAVE_SMI_HANDLER) += smi_util.c
romstage-y += soc_util.c
verstage-y += gpio.c verstage-y += gpio.c
verstage-y += i2c.c verstage-y += i2c.c
@ -74,6 +75,7 @@ ramstage-$(CONFIG_PICASSO_UART) += uart.c
ramstage-y += usb.c ramstage-y += usb.c
ramstage-y += tsc_freq.c ramstage-y += tsc_freq.c
ramstage-y += finalize.c ramstage-y += finalize.c
ramstage-y += soc_util.c
all-y += cfg_util.c all-y += cfg_util.c
all-y += reset.c all-y += reset.c

View File

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/* This file is part of the coreboot project. */
int soc_is_pollock(void);
int soc_is_dali(void);
int soc_is_picasso(void);
int soc_is_raven2(void);
int soc_is_zen_plus(void);

View File

@ -0,0 +1,33 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/* This file is part of the coreboot project. */
#include <arch/cpu.h>
#include <soc/cpu.h>
#include <soc/soc_util.h>
int soc_is_pollock(void)
{
return soc_is_zen_plus() && CONFIG(AMD_FT5);
}
int soc_is_dali(void)
{
return soc_is_raven2() && CONFIG(AMD_FP5);
}
int soc_is_picasso(void)
{
return soc_is_zen_plus() && CONFIG(AMD_FP5);
}
int soc_is_raven2(void)
{
/* mask lower model number nibble and stepping */
return cpuid_eax(1) >> 8 == RAVEN2_CPUID >> 8;
}
int soc_is_zen_plus(void)
{
/* mask lower model number nibble and stepping */
return cpuid_eax(1) >> 8 == PICASSO_CPUID >> 8;
}