Leroy P Leahy (leroy.p.leahy@intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13591
-gerrit
commit c818b5f5990846800a9010717f00c2ea91ee68aa Author: Lee Leahy leroy.p.leahy@intel.com Date: Wed Feb 3 10:13:57 2016 -0800
lib: Support UNCOMPRESSED_RAMSTAGE
Selecting UNCOMPRESSED_RAMSTAGE prevents lzma.c from being compiled for romstage. Adjust the logic in rmodule.c to prevent calls to the ulzma routine when UNCOMPRESSED_RAMSTAGE is selected.
TEST=Build and run on Galileo
Change-Id: I7409e082baab3c2a086c57ad5aa9844ba788c7cd Signed-off-by: Lee Leahy leroy.p.leahy@intel.com --- src/lib/rmodule.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/lib/rmodule.c b/src/lib/rmodule.c index 84b8734..7afebe5 100644 --- a/src/lib/rmodule.c +++ b/src/lib/rmodule.c @@ -259,6 +259,7 @@ int rmodule_stage_load(struct rmod_stage_load *rsl) struct cbfs_stage stage; void *rmod_loc; struct region_device *fh; + int use_lzma;
if (rsl->prog == NULL || prog_name(rsl->prog) == NULL) return -1; @@ -282,11 +283,13 @@ int rmodule_stage_load(struct rmod_stage_load *rsl) printk(BIOS_INFO, "Decompressing stage %s @ 0x%p (%d bytes)\n", prog_name(rsl->prog), rmod_loc, stage.memlen);
+ use_lzma = (ENV_ROMSTAGE && IS_ENABLED(CONFIG_COMPRESS_RAMSTAGE)) + || ENV_RAMSTAGE; if (stage.compression == CBFS_COMPRESS_NONE) { if (rdev_readat(fh, rmod_loc, sizeof(stage), stage.len) != stage.len) return -1; - } else if (stage.compression == CBFS_COMPRESS_LZMA) { + } else if (use_lzma && (stage.compression == CBFS_COMPRESS_LZMA)) { size_t fsize; void *map = rdev_mmap(fh, sizeof(stage), stage.len);