ARMv7: Drop XIP relocation code for romstage
It was never used, because we pushed romstage_null into the CBFS instead of romstage_xip. It's not surprising this worked, but it was a crude hack. Get rid of all the intermediate objects that are not needed. This could probably be further simplified to use the default cbfs mechanism in our build system instead of having a specific rule for romstage, but that's for another day. Change-Id: I492ca2015ec81e13499fcd8dd331371f46a31c78 Signed-off-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/2912 Tested-by: build bot (Jenkins) Reviewed-by: David Hendricks <dhendrix@chromium.org>
This commit is contained in:
parent
9427ca151e
commit
7f86c0586a
|
@ -193,11 +193,11 @@ endif
|
||||||
################################################################################
|
################################################################################
|
||||||
# Build the final rom image
|
# Build the final rom image
|
||||||
|
|
||||||
$(obj)/coreboot.pre: $(objcbfs)/romstage_xip.elf $(obj)/coreboot.pre1 $(CBFSTOOL)
|
$(obj)/coreboot.pre: $(objcbfs)/romstage.elf $(obj)/coreboot.pre1 $(CBFSTOOL)
|
||||||
@printf " CBFS $(subst $(obj)/,,$(@))\n"
|
@printf " CBFS $(subst $(obj)/,,$(@))\n"
|
||||||
cp $(obj)/coreboot.pre1 $@.tmp
|
cp $(obj)/coreboot.pre1 $@.tmp
|
||||||
$(CBFSTOOL) $@.tmp add-stage \
|
$(CBFSTOOL) $@.tmp add-stage \
|
||||||
-f $(objcbfs)/romstage_null.debug \
|
-f $(objcbfs)/romstage.elf \
|
||||||
-n $(CONFIG_CBFS_PREFIX)/romstage -c none
|
-n $(CONFIG_CBFS_PREFIX)/romstage -c none
|
||||||
mv $@.tmp $@
|
mv $@.tmp $@
|
||||||
|
|
||||||
|
@ -249,43 +249,21 @@ endif
|
||||||
################################################################################
|
################################################################################
|
||||||
# Build the romstage
|
# Build the romstage
|
||||||
|
|
||||||
$(objcbfs)/romstage_null.debug: $$(romstage-objs) $(stages_o) $(objgenerated)/romstage_null.ld
|
$(objcbfs)/romstage.debug: $$(romstage-objs) $(stages_o) $(objgenerated)/romstage.ld
|
||||||
@printf " LINK $(subst $(obj)/,,$(@))\n"
|
@printf " LINK $(subst $(obj)/,,$(@))\n"
|
||||||
ifeq ($(CONFIG_COMPILER_LLVM_CLANG),y)
|
ifeq ($(CONFIG_COMPILER_LLVM_CLANG),y)
|
||||||
$(LD) -nostdlib -nostartfiles -static -o $@ -L$(obj) $(romstage-objs) -T $(objgenerated)/romstage_null.ld
|
$(LD) -nostdlib -nostartfiles -static -o $@ -L$(obj) $(romstage-objs) -T $(objgenerated)/romstage.ld
|
||||||
else
|
else
|
||||||
$(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T $(objgenerated)/romstage_null.ld -Wl,--start-group $(romstage-objs) $(stages_o) $(LIBGCC_FILE_NAME) -Wl,--end-group
|
$(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T $(objgenerated)/romstage.ld -Wl,--start-group $(romstage-objs) $(stages_o) $(LIBGCC_FILE_NAME) -Wl,--end-group
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(objcbfs)/romstage_xip.debug: $$(romstage-objs) $(objgenerated)/romstage_xip.ld
|
$(objgenerated)/romstage.ld: $$(ldscripts) $(obj)/ldoptions
|
||||||
@printf " LINK $(subst $(obj)/,,$(@))\n"
|
|
||||||
ifeq ($(CONFIG_COMPILER_LLVM_CLANG),y)
|
|
||||||
$(LD) -nostdlib -nostartfiles -static -o $@ -L$(obj) $(romstage-objs) $(stages_o) -T $(objgenerated)/romstage_xip.ld
|
|
||||||
else
|
|
||||||
$(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T $(objgenerated)/romstage_xip.ld -Wl,--start-group $(romstage-objs) $(stages_o) $(LIBGCC_FILE_NAME) -Wl,--end-group
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(objgenerated)/romstage_null.ld: $$(ldscripts) $(obj)/ldoptions
|
|
||||||
@printf " GEN $(subst $(obj)/,,$(@))\n"
|
@printf " GEN $(subst $(obj)/,,$(@))\n"
|
||||||
rm -f $@
|
rm -f $@
|
||||||
printf "ROMSTAGE_BASE = 0x0;\n" > $@.tmp
|
printf "ROMSTAGE_BASE = 0x0;\n" > $@.tmp
|
||||||
printf '$(foreach ldscript,ldoptions $(ldscripts),INCLUDE "$(ldscript:$(obj)/%=%)"\n)' >> $@.tmp
|
printf '$(foreach ldscript,ldoptions $(ldscripts),INCLUDE "$(ldscript:$(obj)/%=%)"\n)' >> $@.tmp
|
||||||
mv $@.tmp $@
|
mv $@.tmp $@
|
||||||
|
|
||||||
$(objgenerated)/romstage_xip.ld: $(objgenerated)/romstage_null.ld $(objcbfs)/base_xip.txt
|
|
||||||
@printf " GEN $(subst $(obj)/,,$(@))\n"
|
|
||||||
rm -f $@
|
|
||||||
sed -e 's/^/ROMSTAGE_BASE = /g' -e 's/$$/;/g' $(objcbfs)/base_xip.txt > $@.tmp
|
|
||||||
sed -e '/ROMSTAGE_BASE/d' $(objgenerated)/romstage_null.ld >> $@.tmp
|
|
||||||
mv $@.tmp $@
|
|
||||||
|
|
||||||
$(objcbfs)/base_xip.txt: $(obj)/coreboot.pre1 $(objcbfs)/romstage_null.bin
|
|
||||||
@printf " generating base_xip.txt\n"
|
|
||||||
rm -f $@
|
|
||||||
$(CBFSTOOL) $(obj)/coreboot.pre1 locate -f $(objcbfs)/romstage_null.bin -n $(CONFIG_CBFS_PREFIX)/romstage -P $(CONFIG_XIP_ROM_SIZE) > $@.tmp \
|
|
||||||
|| { echo "The romstage is larger than XIP size. Please expand the CONFIG_XIP_ROM_SIZE" ; exit 1; }
|
|
||||||
mv $@.tmp $@
|
|
||||||
|
|
||||||
$(objgenerated)/crt0.romstage.S: $$(crt0s)
|
$(objgenerated)/crt0.romstage.S: $$(crt0s)
|
||||||
@printf " GEN $(subst $(obj)/,,$(@))\n"
|
@printf " GEN $(subst $(obj)/,,$(@))\n"
|
||||||
printf '$(foreach crt0,$(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@
|
printf '$(foreach crt0,$(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@
|
||||||
|
|
Loading…
Reference in New Issue