summaryrefslogtreecommitdiff
path: root/Makefile.inc
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2018-05-15 17:36:59 -0700
committerJulius Werner <jwerner@chromium.org>2018-05-22 02:38:57 +0000
commit1ca26664e60372cb66104b4c448a442a472f7b8a (patch)
tree602050476135b0a7814f8ee7add6801a34a25f33 /Makefile.inc
parent88f4e08acf1dc39367aaa4bc121386c899193253 (diff)
downloadcoreboot-1ca26664e60372cb66104b4c448a442a472f7b8a.tar.xz
Makefile.inc: Add separate bootblock.raw.elf with allocatable BSS
This patch moves the objcopy invocation that changes the bootblock's section flags to make sure .data and .bss are preserved in the binary image from the generation of bootblock.raw.bin into a separate bootblock.raw.elf file. Some SoCs (like SDM845) like to have an ELF rather than a raw binary as input to their masked ROM wrapper generation script. Also move those objcopy flags out into a variable because I'll need them again in a later patch. Change-Id: I9557b184df7f753a442c7e0ceb58e81c5e19f2c5 Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://review.coreboot.org/26338 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'Makefile.inc')
-rw-r--r--Makefile.inc13
1 files changed, 9 insertions, 4 deletions
diff --git a/Makefile.inc b/Makefile.inc
index bc96941e88..fcdc72ccce 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -623,11 +623,16 @@ find-class = $(if $(filter $(1),$(basename $(1))),$(if $(CC_$(1)), $(1), $(call
# include the bss section in the binary so the BootROM clears the bss on
# loading of the bootblock stage. Achieve this by marking the bss section
# loadable,allocatable, and data. Do the same for the .data section in case
-# it's marked as NOBITS.
-$(objcbfs)/bootblock.raw.bin: $(objcbfs)/bootblock.elf
+# the linker marked it NOBITS automatically because there are only zeroes in it.
+preserve-bss-flags := --set-section-flags .bss=load,alloc,data --set-section-flags .data=load,alloc,data
+
+$(objcbfs)/bootblock.raw.elf: $(objcbfs)/bootblock.elf
+ @printf " OBJCOPY $(notdir $(@))\n"
+ $(OBJCOPY_bootblock) $(preserve-bss-flags) $< $@
+
+$(objcbfs)/bootblock.raw.bin: $(objcbfs)/bootblock.raw.elf
@printf " OBJCOPY $(notdir $(@))\n"
- $(OBJCOPY_bootblock) --set-section-flags .bss=load,alloc,data --set-section-flags .data=load,alloc,data $< $<.tmp
- $(OBJCOPY_bootblock) -O binary $<.tmp $@
+ $(OBJCOPY_bootblock) -O binary $< $@
$(objcbfs)/%.bin: $(objcbfs)/%.raw.bin
cp $< $@