From 8cd723bc0cb64f28b1009fd2fa55f6680a402b61 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Fri, 28 Oct 2016 17:32:24 -0500 Subject: lib/prog_loaders: use common ramstage_cache_invalid() All current implementations of ramstage_cache_invalid() were just resetting the system based on the RESET_ON_INVALID_RAMSTAGE_CACHE Kconfig option. Move that behavior to a single implementation within prog_loaders.c which removes duplication. Change-Id: I67aae73f9e1305732f90d947fe57c5aaf66ada9e Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/17184 Tested-by: build bot (Jenkins) Reviewed-by: Duncan Laurie Reviewed-by: Paul Menzel Reviewed-by: Furquan Shaikh --- src/lib/prog_loaders.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/lib') diff --git a/src/lib/prog_loaders.c b/src/lib/prog_loaders.c index c0dcd60d61..09933ae70c 100644 --- a/src/lib/prog_loaders.c +++ b/src/lib/prog_loaders.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -74,7 +75,15 @@ void __attribute__((weak)) stage_cache_add(int stage_id, const struct prog *stage) {} void __attribute__((weak)) stage_cache_load_stage(int stage_id, struct prog *stage) {} -void __attribute__((weak)) ramstage_cache_invalid(void) {} + +static void ramstage_cache_invalid(void) +{ + printk(BIOS_ERR, "ramstage cache invalid.\n"); + if (IS_ENABLED(CONFIG_RESET_ON_INVALID_RAMSTAGE_CACHE)) { + hard_reset(); + halt(); + } +} static void run_ramstage_from_resume(struct romstage_handoff *handoff, struct prog *ramstage) -- cgit v1.2.3