lib: Update fmap cache error for psp_verstage

The assumption was that the fmap cache would be initialized in
bootblock, otherwise an error is shown.  This error is showing
up in psp_verstage when the fmap cache is initialized there, so
create a new ENV value for ENV_INITIAL_STAGE.

BUG=None
TEST=Boot, see that error message is gone from psp_verstage

Signed-off-by: Martin Roth <martinroth@chromium.org>
Change-Id: I142f2092ade7b4327780d423d121728bfbdab247
Reviewed-on: https://review.coreboot.org/c/coreboot/+/43488
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Martin Roth 2020-07-15 13:57:54 -06:00 committed by Aaron Durbin
parent e2d0ba0acb
commit 1594e8ff9c
2 changed files with 9 additions and 3 deletions

View File

@ -274,6 +274,13 @@
#define ENV_USER_SPACE 0 #define ENV_USER_SPACE 0
#endif #endif
/* Define the first stage to run */
#if CONFIG(VBOOT_STARTS_BEFORE_BOOTBLOCK)
#define ENV_INITIAL_STAGE ENV_SEPARATE_VERSTAGE
#else
#define ENV_INITIAL_STAGE ENV_BOOTBLOCK
#endif
/** /**
* For pre-DRAM stages and post-CAR always build with simple device model, ie. * For pre-DRAM stages and post-CAR always build with simple device model, ie.
* PCI, PNP and CPU functions operate without use of devicetree. The reason * PCI, PNP and CPU functions operate without use of devicetree. The reason

View File

@ -56,9 +56,8 @@ static void setup_preram_cache(struct mem_region_device *cache_mrdev)
} }
struct fmap *fmap = (struct fmap *)_fmap_cache; struct fmap *fmap = (struct fmap *)_fmap_cache;
if (!ENV_BOOTBLOCK) { if (!(ENV_INITIAL_STAGE)) {
/* NOTE: This assumes that for all platforms running this code, /* NOTE: This assumes that the first stage will make
the bootblock is the first stage and the bootblock will make
at least one FMAP access (usually from finding CBFS). */ at least one FMAP access (usually from finding CBFS). */
if (!check_signature(fmap)) if (!check_signature(fmap))
goto register_cache; goto register_cache;