diff --git a/src/Kconfig b/src/Kconfig index e24eb78037..95afbe1acc 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -539,9 +539,9 @@ endchoice config TIANOCORE_FILE string "Tianocore FILE" depends on PAYLOAD_TIANOCORE - default "DXEFV.Fv" + default "COREBOOT.FD" help - TBD + The result of a corebootPkg build config PAYLOAD_FILE string "Payload path and filename" @@ -558,15 +558,11 @@ config PAYLOAD_FILE depends on PAYLOAD_FILO default "payloads/external/FILO/filo/build/filo.elf" -config PAYLOAD_FILE - depends on PAYLOAD_TIANOCORE - default "$(obj)/tiano/tianocoreboot.elf" - # TODO: Defined if no payload? Breaks build? config COMPRESSED_PAYLOAD_LZMA bool "Use LZMA compression for payloads" default y - depends on PAYLOAD_ELF || PAYLOAD_SEABIOS || PAYLOAD_FILO + depends on PAYLOAD_ELF || PAYLOAD_SEABIOS || PAYLOAD_FILO || PAYLOAD_TIANOCORE help In order to reduce the size payloads take up in the ROM chip coreboot can compress them using the LZMA algorithm. diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc index e498121dbe..4d02fcea98 100644 --- a/src/arch/x86/Makefile.inc +++ b/src/arch/x86/Makefile.inc @@ -48,9 +48,6 @@ endif ifeq ($(CONFIG_PAYLOAD_FILO),y) COREBOOT_ROM_DEPENDENCIES+=filo endif -ifeq ($(CONFIG_PAYLOAD_TIANOCORE),y) -COREBOOT_ROM_DEPENDENCIES+=tianocore -endif ifeq ($(CONFIG_AP_CODE_IN_CAR),y) COREBOOT_ROM_DEPENDENCIES+=$(objcbfs)/coreboot_ap.elf endif @@ -103,10 +100,20 @@ ifeq ($(CONFIG_PAYLOAD_FILO),y) $(CBFSTOOL) $@.tmp add-payload -f $(CONFIG_PAYLOAD_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -c $(CBFS_PAYLOAD_COMPRESS_FLAG) endif ifeq ($(CONFIG_PAYLOAD_TIANOCORE),y) - @printf " PAYLOAD Tiano Core (internal, compression: $(CBFS_PAYLOAD_COMPRESS_FLAG))\n" - $(CBFSTOOL) $@.tmp add-payload -f $(CONFIG_PAYLOAD_FILE) -n $(CONFIG_CBFS_PREFIX)/payload -c $(CBFS_PAYLOAD_COMPRESS_FLAG) - @printf " PAYLOAD Tiano Core FD $(CONFIG_TIANOCORE_FILE)\n" - $(CBFSTOOL) $@.tmp add -f $(CONFIG_TIANOCORE_FILE) -n $(CONFIG_CBFS_PREFIX)/tianocore.fd -t raw + @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) endif ifeq ($(CONFIG_INCLUDE_CONFIG_FILE),y) @printf " CONFIG $(DOTCONFIG)\n" @@ -417,8 +424,3 @@ filo: CONFIG_FILO_MASTER=$(CONFIG_FILO_MASTER) \ CONFIG_FILO_STABLE=$(CONFIG_FILO_STABLE) -tianocore: - $(MAKE) -C payloads/tianocoreboot \ - CC="$(CC)" AS="$(AS)" OBJCOPY="$(OBJCOPY)" \ - obj=$(abspath $(obj))/tiano -