samsung: tizen_amlogic: increase ramdisk size from 8M to 32M
[platform/kernel/u-boot.git] / tools / mkimage_multidtb.sh
1 #!/bin/bash
2
3 INPUT_BIN=${1}
4 OUTPUT_BIN="u-boot-multi.bin"
5 OUT="multi.dtb"
6 OUT_TMP="multi.tmp"
7
8 P="./arch/arm/dts"
9
10 DTB=(
11 "exynos4412-trats2.dtb"
12 "exynos4412-odroid.dtb"
13 )
14 DTB_CNT=2
15
16 PAD=4
17
18 PWD=`pwd`
19
20 echo -en "##\n"
21 echo -en "## PWD: $PWD\n"
22 echo -en "## Running script: $0\n##\n"
23
24 # Check if given binary exists
25 if [ -s "$INPUT_BIN" ]; then
26         echo -en "## Input binary: $INPUT_BIN\n"
27         IN_S=`du -b $INPUT_BIN | awk '{print $1}'`
28         IN_S_K=$(($IN_S/1024))
29         echo -en "## size: $IN_S[B]; $IN_S_K[K]"
30 else
31         echo "## Input binary: $INPUT_BIN: Not Exists!"
32         exit
33 fi
34
35 echo -en "\n##"
36 echo -en "\n## Preparing multi DTB binary: $OUT"
37 echo -en "\n##"
38
39 echo -en "\n## Multi DTB layout:\n## |"
40
41 if [ -e $OUT ]; then
42         rm $OUT
43 fi
44
45 touch $OUT
46 CNT=0
47 for I in ${DTB[*]}; do
48         FILE="$P/$I"
49         if [ -e $FILE ]; then
50                 NAME=`echo $I | tail -c16`
51                 echo -en " *$NAME "
52                 S=`du -b $FILE | awk '{print $1}'`
53                 SIZE[$CNT]=$S
54                 echo -en "$S B"
55
56                 cat $OUT $FILE > $OUT_TMP
57
58                 if [ -e padding ]; then rm padding; fi
59                 touch padding
60
61                 if [ $CNT -lt $(($DTB_CNT)) ]; then
62                         PAD_CNT=$(($(($PAD - $(($SIZE % $PAD)))) % $PAD))
63                         if [ $PAD_CNT -ge 0 ]; then
64                                 echo -en " | PAD: $PAD_CNT B |"
65                                 rm padding
66                                 dd if=/dev/zero of=./padding bs=1 count=$PAD_CNT 2>/dev/zero
67 #                               echo -en "\n \$\$make padding\n"
68                         else
69                                 echo -en " |"
70                         fi
71                 else
72                         echo -en " |"
73                 fi
74
75                 cat $OUT_TMP padding > $OUT
76         else
77                 echo -en "$I not found.\nexit\n"
78                 exit
79         fi
80         CNT=$(($CNT + 1))
81 done
82
83 rm $OUT_TMP
84 rm padding
85
86 echo -en "\n##\n"
87 S=`du -b $OUT | awk '{print $1}'`
88 S_K=$(($S/1024))
89 echo -en "## OUT: $OUT size: $S[B]; $S_K[K]\n"
90 echo -en "##\n"
91 echo -en "## Preparing multi platform binary: $OUTPUT_BIN\n"
92 echo -en "##\n"
93 echo -en "## BIN Layout:\n"
94 echo -en "## | $INPUT_BIN $IN_S_K [K] | $OUT $S_K [K] (align: $PAD [B]) |\n"
95
96 cat $INPUT_BIN $OUT > $OUTPUT_BIN
97 S=`du -b $OUTPUT_BIN | awk '{print $1}'`
98 S_K=$(($S/1024))
99
100 echo -en "##\n"
101 echo -en "## OUT: $OUTPUT_BIN size: $S[B]; $S_K[K]\n"
102 echo -en "##\n## Multi platform binary: $OUTPUT_BIN. Done\n"
103 echo -en "##\n"
104