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 Also don't forget to add new binaries to .gitignore and the Makefile clean targets. > + > # 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.*) > + } > +} > -- - Daniel
signature.asc
Description: OpenPGP digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot