From 0d1fb7224196d1e4c829687550b343546829d760 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 11 Oct 2016 20:32:25 +0200 Subject: [PATCH] ar71xx: add relocation loader Signed-off-by: Matthias Schiffer --- target/linux/ar71xx/image/Makefile | 9 +++++++++ target/linux/ar71xx/image/legacy.mk | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile index bce5cd3774..56e07d82f3 100644 --- a/target/linux/ar71xx/image/Makefile +++ b/target/linux/ar71xx/image/Makefile @@ -78,6 +78,15 @@ define Build/loader-okli mv "$@.new" "$@" endef +define Build/relocate-kernel + ( \ + dd if=$(KDIR)/relocate.bin bs=32 conv=sync && \ + perl -e '@s = stat("$@"); print pack("N", @s[7])' && \ + cat "$@" \ + ) > "$@.new" + mv "$@.new" "$@" +endef + define Build/copy-file cat "$(1)" > "$@" endef diff --git a/target/linux/ar71xx/image/legacy.mk b/target/linux/ar71xx/image/legacy.mk index 92f3469b73..ed01dc77c1 100644 --- a/target/linux/ar71xx/image/legacy.mk +++ b/target/linux/ar71xx/image/legacy.mk @@ -1103,6 +1103,12 @@ ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) $(call Image/BuildLoader,generic,elf,,,-initramfs) endif $(call Image/BuildLoader,generic,elf) + + # Note: not only used for legacy images + rm -rf $(KDIR)/relocate + $(CP) ../../generic/image/relocate $(KDIR) + $(MAKE) -C $(KDIR)/relocate KERNEL_ADDR=$(KERNEL_LOADADDR) CROSS_COMPILE=$(TARGET_CROSS) + $(CP) $(KDIR)/relocate/loader.bin $(KDIR)/relocate.bin endef define Image/Prepare/Profile