From 0f9858f5a1690bce8b7111c60a0d01206e67af34 Mon Sep 17 00:00:00 2001 From: Jeremy Compostella Date: Thu, 12 Dec 2019 14:39:11 -0700 Subject: soc/intel/apollolake: add support for extracting LBP2 from IFWI Add support for automatic extraction of the Second Logical Boot Partition from the supplied IFWI binary. Change-Id: Ia2a9ca233bddb8e9fb4e980f0ae5e6fcf3fc757c Signed-off-by: Jeremy Compostella Reviewed-on: https://review.coreboot.org/c/coreboot/+/37681 Reviewed-by: Furquan Shaikh Tested-by: build bot (Jenkins) --- src/soc/intel/apollolake/Kconfig | 10 +++++++++- src/soc/intel/apollolake/Makefile.inc | 12 ++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/soc/intel/apollolake/Kconfig b/src/soc/intel/apollolake/Kconfig index 0b3b30a4f8..a39765f8f6 100644 --- a/src/soc/intel/apollolake/Kconfig +++ b/src/soc/intel/apollolake/Kconfig @@ -211,9 +211,17 @@ config LBP2_FMAP_NAME help Name of FMAP region to write logical boot partition 2 data. +config LBP2_FROM_IFWI + bool "Extract the LBP2 from the IFWI binary" + depends on NEED_LBP2 + default n + help + The Logical Boot Partition will be automatically extracted + from the supplied IFWI binary + config LBP2_FILE_NAME string "Path of file to write to logical boot partition 2 region" - depends on NEED_LBP2 + depends on NEED_LBP2 && !LBP2_FROM_IFWI default "3rdparty/blobs/mainboard/$(CONFIG_MAINBOARD_DIR)/lbp2.bin" help Name of file to store in the logical boot partition 2 region. diff --git a/src/soc/intel/apollolake/Makefile.inc b/src/soc/intel/apollolake/Makefile.inc index 24375b3599..d63316969b 100644 --- a/src/soc/intel/apollolake/Makefile.inc +++ b/src/soc/intel/apollolake/Makefile.inc @@ -117,8 +117,16 @@ pdpt-type := raw endif ifeq ($(CONFIG_NEED_LBP2),y) -files_added:: - $(CBFSTOOL) $(obj)/coreboot.rom write -r $(CONFIG_LBP2_FMAP_NAME) -f $(CONFIG_LBP2_FILE_NAME) --fill-upward +$(objcbfs)/lbp2.bin: $(IFWITOOL) +ifeq ($(CONFIG_LBP2_FROM_IFWI),y) + $(IFWITOOL) $(CONFIG_IFWI_FILE_NAME) create -f $@ -s + $(IFWITOOL) $@ delete -n OBBP +else + cp $(CONFIG_LBP2_FILE_NAME) $@ +endif + +files_added:: $(objcbfs)/lbp2.bin + $(CBFSTOOL) $(obj)/coreboot.rom write -r $(CONFIG_LBP2_FMAP_NAME) -f $< --fill-upward endif # Bootblock on Apollolake platform lies in the IFWI region. In order to place -- cgit v1.2.3