aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/adm8668/image/my-mkimage
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/adm8668/image/my-mkimage')
-rwxr-xr-xtarget/linux/adm8668/image/my-mkimage32
1 files changed, 32 insertions, 0 deletions
diff --git a/target/linux/adm8668/image/my-mkimage b/target/linux/adm8668/image/my-mkimage
new file mode 100755
index 000000000..7ed6666e7
--- /dev/null
+++ b/target/linux/adm8668/image/my-mkimage
@@ -0,0 +1,32 @@
+#!/bin/sh
+# my-mkimage
+# This will pad given files to 64k boundaries to make a single u-boot image.
+# we have to be fancy because u-boot mkimage is going to add 64 byte header, ...
+# and i only know basic arithmetic.. ;)
+#
+# Copyright (C) 2010 Scott Nicholas <neutronscott@scottn.us>
+[ $# -lt 2 ] && {
+ echo usage: $0 loader.bin [rootfs.squashfs [fs_mark [...]]] output.bin
+}
+
+OLDSIZE=$(stat -c%s $1)
+NEWSIZE=$(((OLDSIZE / 65536 + 1) * 65536 - 64))
+
+dd if=$1 of=vmlinuz.tmp bs=$NEWSIZE conv=sync >/dev/null 2>&1
+shift
+appends=$(($# - 1))
+echo
+while [ $appends -gt 0 ]; do
+ dd if=$1 of=temp bs=64k conv=sync >/dev/null 2>&1
+ printf "### '%s' starts at 0x%x\n" "`basename $1`" "$((NEWSIZE+64))"
+ cat temp >>vmlinuz.tmp
+ shift
+ appends=$((appends-1))
+ NEWSIZE=$(stat -c%s vmlinuz.tmp)
+done
+echo
+../../../../staging_dir/host/bin/mkimage -A mips -O linux -T kernel \
+-C none -a 0x80400000 -e 0x80400000 -n "ADM8668 Linux Kernel(2.4.31)" \
+-d vmlinuz.tmp $1
+
+rm temp vmlinuz.tmp