El 14/04/2017 a las 21:05, Daniel Schwierzeck escribió: > > > Am 13.04.2017 um 17:52 schrieb Álvaro Fernández Rojas: >> CFE supports loading .elf images instead of raw binaries. >> >> Signed-off-by: Álvaro Fernández Rojas <nolt...@gmail.com> >> --- >> Makefile | 22 ++++++++++++++++++++++ >> arch/mips/cpu/u-boot-elf.lds | 10 ++++++++++ >> 2 files changed, 32 insertions(+) >> create mode 100644 arch/mips/cpu/u-boot-elf.lds >> >> diff --git a/Makefile b/Makefile >> index 09b597d..667b5f2 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -568,6 +568,15 @@ ifndef LDSCRIPT >> endif >> endif >> >> +ifndef LDSCRIPT_ELF >> + ifeq ($(wildcard $(LDSCRIPT_ELF)),) >> + LDSCRIPT_ELF := $(srctree)/$(CPUDIR)/u-boot-elf.lds >> + endif >> + ifeq ($(wildcard $(LDSCRIPT_ELF)),) >> + LDSCRIPT_ELF := $(srctree)/arch/$(ARCH)/cpu/u-boot-elf.lds >> + endif >> +endif > > could you try to build the ELF binary without a custom linker script? I > think the built-in one should work too. > >> + >> else >> # Dummy target needed, because used as prerequisite >> include/config/auto.conf: ; >> @@ -786,6 +795,7 @@ ifneq ($(CONFIG_SPL_TARGET),) >> ALL-$(CONFIG_SPL) += $(CONFIG_SPL_TARGET:"%"=%) >> endif >> ALL-$(CONFIG_REMAKE_ELF) += u-boot.elf >> +ALL-$(CONFIG_ARCH_BMIPS) += u-boot-bmips.elf >> ALL-$(CONFIG_EFI_APP) += u-boot-app.efi >> ALL-$(CONFIG_EFI_STUB) += u-boot-payload.efi >> >> @@ -1192,6 +1202,15 @@ u-boot.elf: u-boot.bin >> --defsym=_start=$(CONFIG_SYS_TEXT_BASE) \ >> -Ttext=$(CONFIG_SYS_TEXT_BASE) >> >> +# Rules to link u-boot-bmips >> +quiet_cmd_u-boot-bmips ?= LD $@ >> + cmd_u-boot-bmips ?= $(LD) -e startup -T u-boot-elf.lds \ >> + -Ttext $(CONFIG_SYS_TEXT_BASE) -o $@ u-boot-bmips.o >> + >> +u-boot-bmips.elf: u-boot.bin u-boot-elf.lds >> + $(Q)$(LD) -r -b binary --oformat elf32-tradbigmips -o u-boot-bmips.o $< >> + $(call if_changed,u-boot-bmips) > > could you try to generate the ELF binary like in the existing rule > above? If that works, we could refactor the generic rule to remove the > hard-coded aarch64 flags. If not, move this code and the > "ALL-$(CONFIG_ARCH_BMIPS) += u-boot-bmips.elf" to arch/mips/Makefile Sure, I will try and see if it works.
> > Also don't forget to add new binaries to .gitignore and the Makefile > clean targets. Right, my fault :). > >> + >> # Rule to link u-boot >> # May be overridden by arch/$(ARCH)/config.mk >> quiet_cmd_u-boot__ ?= LD $@ >> @@ -1340,6 +1359,9 @@ cmd_cpp_lds = $(CPP) -Wp,-MD,$(depfile) $(cpp_flags) >> $(LDPPFLAGS) \ >> u-boot.lds: $(LDSCRIPT) prepare FORCE >> $(call if_changed_dep,cpp_lds) >> >> +u-boot-elf.lds: $(LDSCRIPT_ELF) prepare >> + $(call if_changed_dep,cpp_lds) >> + >> spl/u-boot-spl.bin: spl/u-boot-spl >> @: >> spl/u-boot-spl: tools prepare \ >> diff --git a/arch/mips/cpu/u-boot-elf.lds b/arch/mips/cpu/u-boot-elf.lds >> new file mode 100644 >> index 0000000..db0bb46 >> --- /dev/null >> +++ b/arch/mips/cpu/u-boot-elf.lds >> @@ -0,0 +1,10 @@ >> +OUTPUT_ARCH(mips) >> +SECTIONS { >> + .text : { >> + startup = .; >> + *(.text) >> + *(.text.*) >> + *(.data) >> + *(.data.*) >> + } >> +} >> > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot