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 <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/17184 Tested-by: build bot (Jenkins) Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
parent
9a2790e328
commit
8cd723bc0c
|
@ -264,13 +264,3 @@ void asmlinkage romstage_after_car(void)
|
||||||
/* Load the ramstage. */
|
/* Load the ramstage. */
|
||||||
run_ramstage();
|
run_ramstage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM)
|
|
||||||
void ramstage_cache_invalid(void)
|
|
||||||
{
|
|
||||||
#if CONFIG_RESET_ON_INVALID_RAMSTAGE_CACHE
|
|
||||||
reset_system();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -380,13 +380,6 @@ __attribute__((weak)) void raminit(struct romstage_params *params)
|
||||||
die("ERROR - No RAM initialization specified!\n");
|
die("ERROR - No RAM initialization specified!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ramstage_cache_invalid(void)
|
|
||||||
{
|
|
||||||
if (IS_ENABLED(CONFIG_RESET_ON_INVALID_RAMSTAGE_CACHE))
|
|
||||||
/* Perform cold reset on invalid ramstage cache. */
|
|
||||||
hard_reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Display the memory configuration */
|
/* Display the memory configuration */
|
||||||
__attribute__((weak)) void report_memory_config(void)
|
__attribute__((weak)) void report_memory_config(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,10 +28,3 @@ void stage_cache_external_region(void **base, size_t *size)
|
||||||
*size = 0;
|
*size = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ramstage_cache_invalid(void)
|
|
||||||
{
|
|
||||||
if (IS_ENABLED(CONFIG_RESET_ON_INVALID_RAMSTAGE_CACHE))
|
|
||||||
/* Perform cold reset on invalid ramstage cache. */
|
|
||||||
hard_reset();
|
|
||||||
}
|
|
||||||
|
|
|
@ -167,9 +167,6 @@ void run_romstage(void);
|
||||||
/* Run ramstage from romstage. */
|
/* Run ramstage from romstage. */
|
||||||
void run_ramstage(void);
|
void run_ramstage(void);
|
||||||
|
|
||||||
/* Called when the stage cache couldn't load ramstage on resume. */
|
|
||||||
void ramstage_cache_invalid(void);
|
|
||||||
|
|
||||||
/* Determine where stack for ramstage loader is located. */
|
/* Determine where stack for ramstage loader is located. */
|
||||||
enum { ROMSTAGE_STACK_CBMEM, ROMSTAGE_STACK_LOW_MEM };
|
enum { ROMSTAGE_STACK_CBMEM, ROMSTAGE_STACK_LOW_MEM };
|
||||||
uintptr_t romstage_ram_stack_base(size_t size, int src);
|
uintptr_t romstage_ram_stack_base(size_t size, int src);
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include <halt.h>
|
#include <halt.h>
|
||||||
#include <lib.h>
|
#include <lib.h>
|
||||||
#include <program_loading.h>
|
#include <program_loading.h>
|
||||||
|
#include <reset.h>
|
||||||
#include <romstage_handoff.h>
|
#include <romstage_handoff.h>
|
||||||
#include <rmodule.h>
|
#include <rmodule.h>
|
||||||
#include <rules.h>
|
#include <rules.h>
|
||||||
|
@ -74,7 +75,15 @@ void __attribute__((weak)) stage_cache_add(int stage_id,
|
||||||
const struct prog *stage) {}
|
const struct prog *stage) {}
|
||||||
void __attribute__((weak)) stage_cache_load_stage(int stage_id,
|
void __attribute__((weak)) stage_cache_load_stage(int stage_id,
|
||||||
struct prog *stage) {}
|
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,
|
static void run_ramstage_from_resume(struct romstage_handoff *handoff,
|
||||||
struct prog *ramstage)
|
struct prog *ramstage)
|
||||||
|
|
|
@ -333,14 +333,6 @@ static void *setup_stack_and_mttrs(void)
|
||||||
return slot;
|
return slot;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ramstage_cache_invalid(void)
|
|
||||||
{
|
|
||||||
#if CONFIG_RESET_ON_INVALID_RAMSTAGE_CACHE
|
|
||||||
/* Perform cold reset on invalid ramstage cache. */
|
|
||||||
cold_reset();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
int get_sw_write_protect_state(void)
|
int get_sw_write_protect_state(void)
|
||||||
{
|
{
|
||||||
u8 status;
|
u8 status;
|
||||||
|
|
|
@ -133,14 +133,6 @@ void asmlinkage romstage_after_car(void)
|
||||||
while (1);
|
while (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ramstage_cache_invalid(void)
|
|
||||||
{
|
|
||||||
#if CONFIG_RESET_ON_INVALID_RAMSTAGE_CACHE
|
|
||||||
/* Perform cold reset on invalid ramstage cache. */
|
|
||||||
reset_system();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
int get_sw_write_protect_state(void)
|
int get_sw_write_protect_state(void)
|
||||||
{
|
{
|
||||||
u8 status;
|
u8 status;
|
||||||
|
|
Loading…
Reference in New Issue