From ecbfa99f64c117f45dc6d1b0c50947f46daa3280 Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Fri, 15 May 2020 17:01:58 -0600 Subject: drivers/intel/fsp2_0: add option to compress FSP-M in cbfs Allow the ability for chipset or mainboard to choose to compress FSP-M in cbfs using LZMA or LZ4 routines. However, only non-XIP platforms will support FSP-M compression. Since the main cbfs decompression paths are utilized add the appropriate checks for including compression algorithms under the FSP-M compression options. On picasso FSP-M (debug builds) the following savings were measured: no-compression: fspm.bin 720896 none FSP_COMPRESS_FSP_M_LZ4: fspm.bin 138379 LZ4 (720896 decompressed) -80% FSP_COMPRESS_FSP_M_LZMA: fspm.bin 98921 LZMA (720896 decompressed) -86% BUG=b:155322763,b:150746858,b:152909132 Change-Id: I5c88510c134b56a36ff1cd97a64b51ab2fea0ab0 Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/c/coreboot/+/41450 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh --- src/lib/cbfs.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/lib/cbfs.c') diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c index ec5156c09c..cb66f81d99 100644 --- a/src/lib/cbfs.c +++ b/src/lib/cbfs.c @@ -99,10 +99,20 @@ static inline bool fsps_env(void) return false; } +static inline bool fspm_env(void) +{ + /* FSP-M is assumed to be loaded in romstage. */ + if (ENV_ROMSTAGE) + return true; + return false; +} + static inline bool cbfs_lz4_enabled(void) { if (fsps_env() && CONFIG(FSP_COMPRESS_FSP_S_LZ4)) return true; + if (fspm_env() && CONFIG(FSP_COMPRESS_FSP_M_LZ4)) + return true; if ((ENV_BOOTBLOCK || ENV_SEPARATE_VERSTAGE) && !CONFIG(COMPRESS_PRERAM_STAGES)) return false; @@ -114,6 +124,8 @@ static inline bool cbfs_lzma_enabled(void) { if (fsps_env() && CONFIG(FSP_COMPRESS_FSP_S_LZMA)) return true; + if (fspm_env() && CONFIG(FSP_COMPRESS_FSP_M_LZMA)) + return true; /* We assume here romstage and postcar are never compressed. */ if (ENV_BOOTBLOCK || ENV_SEPARATE_VERSTAGE) return false; -- cgit v1.2.3