From 8d6e0e0a72ed81d44ba61add0c2aab55bb217412 Mon Sep 17 00:00:00 2001 From: Marshall Dawson Date: Tue, 30 Jan 2018 15:33:23 -0700 Subject: lib/stage_cache: Add save/get raw storage Leverage the stage_cache mechanism to store a non-specific type of data. This is not interesting when the location for the cache is in cbmem. However it will be more useful when an external location is used, e.g. when the cache is in TSEG, locked from user modification. Change-Id: Iaf0b25ebe14c176bbd24fc8942f902f627ca8e6f Signed-off-by: Marshall Dawson Reviewed-on: https://review.coreboot.org/23518 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/include/stage_cache.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/include') diff --git a/src/include/stage_cache.h b/src/include/stage_cache.h index 08312ff554..28cb85998b 100644 --- a/src/include/stage_cache.h +++ b/src/include/stage_cache.h @@ -20,14 +20,24 @@ #include #include +/* Types of stages that may be stored in stage cache */ enum { STAGE_RAMSTAGE, STAGE_REFCODE, STAGE_POSTCAR, }; +/* Types of raw data that may be stored in stage cache */ +enum { + STAGE_S3_DATA, +}; + /* Cache the loaded stage provided according to the parameters. */ void stage_cache_add(int stage_id, const struct prog *stage); +/* Cache non-specific data or code. */ +void stage_cache_add_raw(int stage_id, const void *base, const size_t size); +/* Get a pointer to cached raw data and its size. */ +void stage_cache_get_raw(int stage_id, void **base, size_t *size); /* Load the cached stage at given location returning the stage entry point. */ void stage_cache_load_stage(int stage_id, struct prog *stage); /* Fill in parameters for the external stage cache, if utilized. */ -- cgit v1.2.3