From d5583a5e61c4dbb870ceddc13fbee49b0d46d52f Mon Sep 17 00:00:00 2001 From: Furquan Shaikh Date: Wed, 1 Jun 2016 01:53:18 -0700 Subject: cbfs: Use NO_XIP_EARLY_STAGES to decide if stage is XIP Modern platforms like Apollolake do not use XIP for early stages. In such cases, cbfs_prog_stage_load should check for NO_XIP_EARLY_STAGES instead of relying on ARCH_X86 to decide if a stage is XIP. Change-Id: I1729ce82b5f678ce8c37256090fcf353cc22b1ec Signed-off-by: Furquan Shaikh Reviewed-on: https://review.coreboot.org/15045 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/Kconfig | 3 +-- src/lib/cbfs.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Kconfig b/src/Kconfig index f93c2cc23d..6e6e9447ff 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -204,8 +204,7 @@ config NO_XIP_EARLY_STAGES default n if ARCH_X86 default y help - Identify if --xip parameter needs to be passed into cbfstool for early - stages. + Identify if early stages are eXecute-In-Place(XIP). config EARLY_CBMEM_INIT def_bool !LATE_CBMEM_INIT diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c index 764a6f70d8..aa652c2ee4 100644 --- a/src/lib/cbfs.c +++ b/src/lib/cbfs.c @@ -192,7 +192,7 @@ int cbfs_prog_stage_load(struct prog *pstage) /* Hacky way to not load programs over read only media. The stages * that would hit this path initialize themselves. */ - if (ENV_VERSTAGE && IS_ENABLED(CONFIG_ARCH_X86) && + if (ENV_VERSTAGE && !IS_ENABLED(CONFIG_NO_XIP_EARLY_STAGES) && IS_ENABLED(CONFIG_SPI_FLASH_MEMORY_MAPPED)) { void *mapping = rdev_mmap(fh, foffset, fsize); rdev_munmap(fh, mapping); -- cgit v1.2.3