build: scripts: add input parameters to sprd_mkdzimage.sh 10/86310/1
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Wed, 31 Aug 2016 11:21:04 +0000 (20:21 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Wed, 31 Aug 2016 11:21:20 +0000 (20:21 +0900)
Instead of fixed kernel and dtb files, this patch adds input
parameters to get proper kernel and dtb files.

Change-Id: Icd253cff63e7bccf12ddead4360417da05a7c7ef
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
release.sh
release_obs.sh
scripts/sprd_mkdzimage.sh

index e7d03c0..2844293 100755 (executable)
@@ -53,7 +53,7 @@ if [ "$?" != "0" ]; then
        exit 1
 fi
 
-./scripts/sprd_mkdzimage.sh
+./scripts/sprd_mkdzimage.sh -o ${BOOT_PATH}/${DZIMAGE} -k ${BOOT_PATH}/zImage -d ${BOOT_PATH}/merged-dtb
 if [ "$?" != "0" ]; then
        echo "Failed to make mkdzImage"
        exit 1
index e875862..8f475db 100755 (executable)
@@ -86,7 +86,7 @@ if [ "$?" != "0" ]; then
        exit 1
 fi
 
-./scripts/sprd_mkdzimage.sh
+./scripts/sprd_mkdzimage.sh -o ${BOOT_PATH}/${DZIMAGE} -k ${BOOT_PATH}/zImage -d ${BOOT_PATH}/merged-dtb
 if [ "$?" != "0" ]; then
        echo "Failed to make mkdzImage"
        exit 1
index f6ea777..eb6f862 100755 (executable)
@@ -33,13 +33,21 @@ function write_to_padding_binary()
        echo -en " | PAD: $PAD_SIZE[B]\n"
 }
 
+function help() {
+       echo "sprd_mkdzimage.sh [OPTIONS] -o <output file> -k <kernel file>"
+       echo "  options:"
+       echo "  --output-file/-o    output file"
+       echo "  --kernel/-k         kernel file"
+       echo "  --devicetree/-d     devicetree file"
+       echo "  --help/-h           this help screen"
+       exit 0
+}
+
 
 ## Defines
 OUT="dzImage"
 OUT_TMP="dzImage.tmp"
-
 OUT_DIR="./arch/arm/boot"
-BOOT_DIR="./arch/arm/boot"
 
 MAGIC="NZIT"           # 0x54495A4E
 KERNEL_ADDR=32768      # 0x00008000
@@ -48,6 +56,65 @@ ATAGS_ADDR=31457280  # 0x01e00000
 PAD=2048
 
 
+if [ "$#" -eq "0" ]; then
+       help
+fi
+
+
+## Input parameters
+params="$(getopt -o o:k:d:h -l output-file:,:kernel:,devicetree:,help --name "$0" -- "$@")"
+eval set -- "$params"
+while true
+do
+       case "$1" in
+               -o|--output-file)
+                       OUTPUT_FILE=$2
+                       shift 2
+                       OUT_DIR=`dirname $OUTPUT_FILE`
+                       if [ ! -d "$OUT_DIR" ]; then
+                               echo "invalid output path '$OUT_DIR'."
+                               exit 1
+                       fi
+                       OUT=${OUTPUT_FILE#${OUT_DIR}}
+                       OUT=${OUT//\//}
+                       OUT_TMP=${OUT}.tmp
+                       ;;
+               -k|--kernel)
+                       KERNEL=$2
+                       shift 2
+                       ;;
+               -d|--devicetree)
+                       DEVICETREE=$2
+                       shift 2
+                       ;;
+               -h|--help)
+                       help
+                       ;;
+               --)
+                       shift
+                       break
+                       ;;
+               *)
+                       help
+                       ;;
+       esac
+done
+
+if [ "z${KERNEL}" == "z" ] || [ "z${DEVICETREE}" == "z" ]; then
+       help
+fi
+
+if [ ! -e "${KERNEL}" ]; then
+       echo -en "kernel '${KERNEL}' not found.\nexit\n"
+       exit -1
+fi
+
+if [ ! -e "${DEVICETREE}" ]; then
+       echo -en "devicetree '${DEVICETREE}' not found.\nexit\n"
+       exit -1
+fi
+
+
 ## Header
 rm -f $OUT
 rm -f $OUT_TMP
@@ -63,29 +130,19 @@ cat $OUT >> $OUT_TMP
 write_to_4bytes_binary $KERNEL_ADDR $OUT
 cat $OUT >> $OUT_TMP
 
-FILE="$BOOT_DIR/zImage"
-if [ -e $FILE ]; then
-       SIZE=`du -b $FILE | awk '{print $1}'`
-       write_to_4bytes_binary $SIZE $OUT
-       cat $OUT >> $OUT_TMP
-else
-       echo -en "$FILE not found.\nexit\n"
-       exit -1
-fi
+FILE="${KERNEL}"
+SIZE=`du -b $FILE | awk '{print $1}'`
+write_to_4bytes_binary $SIZE $OUT
+cat $OUT >> $OUT_TMP
 
 DTB_ADDR=$(($KERNEL_ADDR + $SIZE))
 write_to_4bytes_binary $DTB_ADDR $OUT
 cat $OUT >> $OUT_TMP
 
-FILE="$BOOT_DIR/merged-dtb"
-if [ -e $FILE ]; then
-       SIZE=`du -b $FILE | awk '{print $1}'`
-       write_to_4bytes_binary $SIZE $OUT
-       cat $OUT >> $OUT_TMP
-else
-       echo -en "$FILE not found.\nexit\n"
-       exit -1
-fi
+FILE="${DEVICETREE}"
+SIZE=`du -b $FILE | awk '{print $1}'`
+write_to_4bytes_binary $SIZE $OUT
+cat $OUT >> $OUT_TMP
 
 write_to_4bytes_binary $ATAGS_ADDR $OUT
 cat $OUT >> $OUT_TMP
@@ -97,37 +154,35 @@ cat $OUT_TMP padding > $OUT
 
 
 ## Kernel Binary
-FILE="$BOOT_DIR/zImage"
-if [ -e $FILE ]; then
-       echo -en " *zImage "
-       cat $OUT $FILE > $OUT_TMP
-
-       SIZE=`du -b $FILE | awk '{print $1}'`
-       echo -en "$SIZE[B]\n"
-
-       write_to_padding_binary $SIZE
-       cat $OUT_TMP padding > $OUT
-else
-       echo -en "zImage not found.\nexit\n"
-       exit -1
-fi
+FILE="${KERNEL}"
+FILE_PATH=`dirname ${KERNEL}`
+FILE_NAME=${FILE#${FILE_PATH}}
+FILE_NAME=${FILE_NAME//\//}
 
+echo -en " *${FILE_NAME} "
+cat $OUT $FILE > $OUT_TMP
 
-## merged-dtb Binary
-FILE="$BOOT_DIR/merged-dtb"
-if [ -e $FILE ]; then
-       echo -en " *merged-dtb "
-       cat $OUT $FILE > $OUT_TMP
+SIZE=`du -b $FILE | awk '{print $1}'`
+echo -en "$SIZE[B]\n"
 
-       SIZE=`du -b $FILE | awk '{print $1}'`
-       echo -en "$SIZE[B]\n"
+write_to_padding_binary $SIZE
+cat $OUT_TMP padding > $OUT
 
-       write_to_padding_binary $SIZE
-       cat $OUT_TMP padding > $OUT
-else
-       echo -en "merged-dtb not found.\nexit\n"
-       exit -1
-fi
+
+## Devicetree Binary
+FILE="${DEVICETREE}"
+FILE_PATH=`dirname ${DEVICETREE}`
+FILE_NAME=${FILE#${FILE_PATH}}
+FILE_NAME=${FILE_NAME//\//}
+
+echo -en " *${FILE_NAME} "
+cat $OUT $FILE > $OUT_TMP
+
+SIZE=`du -b $FILE | awk '{print $1}'`
+echo -en "$SIZE[B]\n"
+
+write_to_padding_binary $SIZE
+cat $OUT_TMP padding > $OUT
 
 
 ## END
@@ -138,4 +193,4 @@ mv -f $OUT $OUT_DIR/
 
 S=`du -b $OUT_DIR/$OUT | awk '{print $1}'`
 S_K=$(($S/1024))
-echo -en "## OUT: $OUT size: $S[B]; $S_K[K]\n"
+echo -en "## OUT: $OUT size: $S[B]; $S_K[KB]\n"