cbfstool: support parsing UEFI firmware volumes

This removes the hack implemented in http://review.coreboot.org/#/c/2280
(and should make using 64bit Tiano easier, but that's not yet supported)

Change-Id: Ie30129c4102dfbd41584177f39057b31f5a937fd
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: http://review.coreboot.org/2281
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Stefan Reinauer
2013-02-04 15:39:13 -08:00
committed by Stefan Reinauer
parent c13e4bf3e1
commit 543a682458
6 changed files with 257 additions and 15 deletions

View File

@@ -101,19 +101,7 @@ ifeq ($(CONFIG_PAYLOAD_FILO),y)
endif
ifeq ($(CONFIG_PAYLOAD_TIANOCORE),y)
@printf " PAYLOAD Tiano Core (compression: $(CBFS_PAYLOAD_COMPRESS_FLAG))\n"
$(eval $(shell \
TMPFILE=`mktemp`; \
head -c1200 $(CONFIG_TIANOCORE_FILE) | \
tail -c1100 > $$TMPFILE && \
LC_ALL=C objdump -x $$TMPFILE | \
grep .text | while read idx nam size vma lma off align; do \
printf "TIANO_ENTRY:=%d " 0x$$vma; \
expr `printf "%d - %d - 100" 0x$$vma 0x$$off`; \
done && \
rm $$TMPFILE))
$(eval TIANO_BASE:=$(word 2,$(TIANO_ENTRY)))
$(eval TIANO_ENTRY:=$(word 1,$(TIANO_ENTRY)))
$(CBFSTOOL) $@.tmp add-flat-binary -f $(CONFIG_TIANOCORE_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -l $(TIANO_BASE) -e $(TIANO_ENTRY) -c $(CBFS_PAYLOAD_COMPRESS_FLAG)
$(CBFSTOOL) $@.tmp add-payload -f $(CONFIG_TIANOCORE_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -c $(CBFS_PAYLOAD_COMPRESS_FLAG)
endif
ifeq ($(CONFIG_INCLUDE_CONFIG_FILE),y)
@printf " CONFIG $(DOTCONFIG)\n"