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 <furquan@google.com> Reviewed-on: https://review.coreboot.org/15045 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
parent
ab90f96ba5
commit
d5583a5e61
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue