aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFred Reitberger <reitbergerfred@gmail.com>2023-07-17 08:26:02 -0400
committerFred Reitberger <reitbergerfred@gmail.com>2023-07-24 11:19:37 +0000
commit7bb960d7dfc4a90d7e007070c668e5cd95dccabf (patch)
treef5d648c994a1a3bf5f0230b613e8704e2b1a4c7f
parent5f5e73cddd7feaf3f3c8eb097e74721defca86d6 (diff)
soc/amd/common/block/apob: Add Kconfig option to disable APOB NV
Add Kconfig option to disable the non-volatile APOB cache for a mainboard using an SOC that supports APOB. BUG=b:290763369 TEST=verify APOB cache is disabled when selected Signed-off-by: Fred Reitberger <reitbergerfred@gmail.com> Change-Id: I0170355bbf29ea6386fa69a318e61f057b9a9a3f Reviewed-on: https://review.coreboot.org/c/coreboot/+/76566 Reviewed-by: Karthik Ramasubramanian <kramasub@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin L Roth <gaumless@gmail.com>
-rw-r--r--src/soc/amd/common/block/apob/Kconfig9
-rw-r--r--src/soc/amd/common/block/apob/Makefile.inc8
-rw-r--r--src/soc/amd/common/block/include/amdblocks/apob_cache.h6
3 files changed, 16 insertions, 7 deletions
diff --git a/src/soc/amd/common/block/apob/Kconfig b/src/soc/amd/common/block/apob/Kconfig
index c8ebc19ef8..a1cd0049e9 100644
--- a/src/soc/amd/common/block/apob/Kconfig
+++ b/src/soc/amd/common/block/apob/Kconfig
@@ -4,6 +4,15 @@ config SOC_AMD_COMMON_BLOCK_APOB
Select this option to add firmware support for the non-volatile APOB
cache to the build.
+config SOC_AMD_COMMON_BLOCK_APOB_NV_DISABLE
+ bool "Disable non-volatile APOB support"
+ depends on SOC_AMD_COMMON_BLOCK_APOB
+ help
+ Select this to disable non-volatile APOB cache and train memory
+ on every boot.
+
+ If unsure, say N.
+
config SOC_AMD_COMMON_BLOCK_APOB_HASH
bool
help
diff --git a/src/soc/amd/common/block/apob/Makefile.inc b/src/soc/amd/common/block/apob/Makefile.inc
index ae550bc522..d7e27a2d14 100644
--- a/src/soc/amd/common/block/apob/Makefile.inc
+++ b/src/soc/amd/common/block/apob/Makefile.inc
@@ -1,6 +1,6 @@
## SPDX-License-Identifier: GPL-2.0-only
-ifeq ($(CONFIG_SOC_AMD_COMMON_BLOCK_APOB),y)
-romstage-y += apob_cache.c
-ramstage-y += apob_cache.c
+ifneq ($(CONFIG_SOC_AMD_COMMON_BLOCK_APOB_NV_DISABLE),y)
+romstage-$(CONFIG_SOC_AMD_COMMON_BLOCK_APOB) += apob_cache.c
+ramstage-$(CONFIG_SOC_AMD_COMMON_BLOCK_APOB) += apob_cache.c
-endif # CONFIG_SOC_AMD_COMMON_BLOCK_APOB
+endif # !CONFIG_SOC_AMD_COMMON_BLOCK_APOB_NV_DISABLE
diff --git a/src/soc/amd/common/block/include/amdblocks/apob_cache.h b/src/soc/amd/common/block/include/amdblocks/apob_cache.h
index bbb65a72e2..756b6b30cb 100644
--- a/src/soc/amd/common/block/include/amdblocks/apob_cache.h
+++ b/src/soc/amd/common/block/include/amdblocks/apob_cache.h
@@ -5,13 +5,13 @@
#include <stddef.h>
-#if CONFIG(SOC_AMD_COMMON_BLOCK_APOB)
+#if CONFIG(SOC_AMD_COMMON_BLOCK_APOB) && !CONFIG(SOC_AMD_COMMON_BLOCK_APOB_NV_DISABLE)
/* Start loading the APOB as soon as possible so it is ready by the time we need it. */
void start_apob_cache_read(void);
void *soc_fill_apob_cache(void);
-#else /* CONFIG(SOC_AMD_COMMON_BLOCK_APOB) */
+#else /* CONFIG(SOC_AMD_COMMON_BLOCK_APOB) && !CONFIG(SOC_AMD_COMMON_BLOCK_APOB_NV_DISABLE) */
static inline void start_apob_cache_read(void) {}
static inline void *soc_fill_apob_cache(void) { return NULL; }
-#endif /* CONFIG(SOC_AMD_COMMON_BLOCK_APOB) */
+#endif /* CONFIG(SOC_AMD_COMMON_BLOCK_APOB) && !CONFIG(SOC_AMD_COMMON_BLOCK_APOB_NV_DISABLE) */
#endif /* AMD_BLOCK_APOB_CACHE_H */