u-boot/pack

38 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
UB_VERSION="0.0.0.0"
TOP_DIR="."
BIN_DIR="$TOP_DIR/bin"
TEMP_DIR=$BIN_DIR/temp
START_MAGIC=424c5354
END_MAGIC=424c454e
LOADER_VERSION=$(echo $UB_VERSION | awk -F'.' '{ printf "%02X%02X%02x%02X", $$1, $$2, $$3, $$4; }')
rm -rf $BIN_DIR
rm -rf $TEMP_DIR
mkdir -p $BIN_DIR
mkdir -p $TEMP_DIR
dd if=$TOP_DIR/MLO of=$TEMP_DIR/MLO-start bs=480 count=1
dd if=$TOP_DIR/MLO of=$TEMP_DIR/MLO-end skip=512 bs=1
echo -ne "SPL V$UB_VERSION\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" | dd of=$TEMP_DIR/MLO-version count=1 bs=32
cat $TEMP_DIR/MLO-start $TEMP_DIR/MLO-version $TEMP_DIR/MLO-end > $BIN_DIR/emmc-spl
echo $START_MAGIC | xxd -p -l 4 -r > $TEMP_DIR/startMagic.bin
echo $END_MAGIC | xxd -p -l 4 -r > $TEMP_DIR/endMagic.bin
echo $LOADER_VERSION | xxd -p -l 4 -r > $TEMP_DIR/loaderVersion.bin
cat $TOP_DIR/u-boot.img | wc -c | sed "s/.*/obase=16\n\0/" | bc | sed "s/.*/0000000\0/" | tail -c 9 | xxd -p -l 4 -r > $TEMP_DIR/imageSize.bin
echo f4:0 | xxd -r | xxd | xxd -r > $TEMP_DIR/reserved.bin
cat $TEMP_DIR/startMagic.bin $TEMP_DIR/loaderVersion.bin $TEMP_DIR/imageSize.bin $TEMP_DIR/reserved.bin $TOP_DIR/u-boot.img $TEMP_DIR/endMagic.bin > $BIN_DIR/emmc-uboot
cp $TOP_DIR/spl/u-boot-spl.bin $BIN_DIR/xmodem-spl
cp $TOP_DIR/u-boot.bin $BIN_DIR/xmodem-uboot
rm -rf $TEMP_DIR
chmod 0666 $BIN_DIR/*