fix(arm_fpga): streamline generated axf file
For convenience we let the build system generate an ELF file (named bl31.axf), containing all the trampolines, BL31 code and the DTB in one file. This can be fed directly into the FPGA payload tool, and it will load the bits at the right addresses. Since this ELF file is more used as a "container with load addresses", there is no need for normal ELF features like alignment or a symbol table. Remove unnecessary sections from that output file, by doing a static "link", dropping the NOBITS stacks section, and by adding "-n" to the linker command line (to avoid page alignment). This trims the generated .axf file, and makes it smaller. Change-Id: I5768543101d667fb4a3b70e60b08cfe970d2a2b6 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
This commit is contained in:
parent
de9fdb9b59
commit
9177e4fd93
|
@ -34,7 +34,6 @@ SECTIONS
|
|||
.bl31 (BL31_BASE): {
|
||||
ASSERT(. == ALIGN(PAGE_SIZE), "BL31_BASE is not page aligned");
|
||||
*bl31.elf(.text* .data* .rodata* ro* .bss*)
|
||||
*bl31.elf(.stack)
|
||||
}
|
||||
|
||||
.dtb (FPGA_PRELOADED_DTB_BASE): {
|
||||
|
@ -47,6 +46,7 @@ SECTIONS
|
|||
KEEP(*(.kern_tramp))
|
||||
}
|
||||
|
||||
/DISCARD/ : { *(stacks) }
|
||||
/DISCARD/ : { *(.debug_*) }
|
||||
/DISCARD/ : { *(.note*) }
|
||||
/DISCARD/ : { *(.comment*) }
|
||||
|
|
|
@ -123,6 +123,6 @@ $(eval $(call MAKE_LD,$(BUILD_PLAT)/build_axf.ld,plat/arm/board/arm_fpga/build_a
|
|||
|
||||
bl31.axf: bl31 dtbs ${BUILD_PLAT}/rom_trampoline.o ${BUILD_PLAT}/kernel_trampoline.o ${BUILD_PLAT}/build_axf.ld
|
||||
$(ECHO) " LD $@"
|
||||
$(Q)$(LD) -T ${BUILD_PLAT}/build_axf.ld -L ${BUILD_PLAT} --strip-debug -o ${BUILD_PLAT}/bl31.axf
|
||||
$(Q)$(LD) -T ${BUILD_PLAT}/build_axf.ld -L ${BUILD_PLAT} --strip-debug -s -n -o ${BUILD_PLAT}/bl31.axf
|
||||
|
||||
all: bl31.axf
|
||||
|
|
Loading…
Reference in New Issue