aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/image
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ar71xx/image')
-rw-r--r--target/linux/ar71xx/image/Makefile9
-rw-r--r--target/linux/ar71xx/image/legacy.mk6
2 files changed, 15 insertions, 0 deletions
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