summaryrefslogtreecommitdiff
path: root/utils/ypr0tools/pack-firmware.sh
diff options
context:
space:
mode:
Diffstat (limited to 'utils/ypr0tools/pack-firmware.sh')
-rwxr-xr-xutils/ypr0tools/pack-firmware.sh132
1 files changed, 132 insertions, 0 deletions
diff --git a/utils/ypr0tools/pack-firmware.sh b/utils/ypr0tools/pack-firmware.sh
new file mode 100755
index 0000000000..f3b55548d9
--- /dev/null
+++ b/utils/ypr0tools/pack-firmware.sh
@@ -0,0 +1,132 @@
1#!/bin/bash
2
3######################################################################
4# __________ __ ___.
5# Open \______ \ ____ ____ | | _\_ |__ _______ ___
6# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
7# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
8# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
9# \/ \/ \/ \/ \/
10#
11# * Script to generate a Samsung YP-R0 firmware file (R0.ROM) */
12######################################################################
13#
14# This file was oringally called NewPack.sh, its origin is the R0 open source
15# package from Samsung.
16#
17# Muon Platform
18# Copyright (c) 2004-2009 Samsung Electronics, Inc.
19# All rights reserved.
20#
21# Rom Packaging Script
22# It needs sudoer privilege of rm, mkdir, cp, mkcramfs.
23# You can configure it in the /etc/sudoer file.
24# This script is very dangerous. Be careful to use.
25#
26# SangMan Sim<sangman.sim@samsung.com>
27
28# bail out early
29set -e
30
31DIR=${2:-"."}
32DIR=${DIR%/}
33REVISION="$DIR/RevisionInfo.txt"
34CRAMFS="$DIR/cramfs-fsl.rom"
35SYSDATA="$DIR/SYSDATA.bin"
36MBOOT="$DIR/MBoot.bin"
37MBOOT_TMP="${TMP_DIR:-$DIR}/MBoot.tmp"
38LINUX="$DIR/zImage"
39R0ROM=$1
40
41# some sanity checks
42if [ $# -lt 1 ] || [ $# -gt 2 ]; then
43 echo "Usage $0 <rom file> [path to image files]"
44 exit 1
45fi
46
47if [ ! -f ./MuonEncrypt ]; then
48 echo "Couldn't find MuonEncrypt binary (try 'make')"
49 exit 1
50fi
51
52if [ ! -e $REVISION ]; then
53 cat >$REVISION <<EOF
54Version : V2.30
55Target : KR
56EOF
57fi
58
59
60function WriteImage {
61 echo "Adding $1 to $R0ROM"
62 #HEAD_STR=[`stat -c%s $1`/`md5sum $1 | cut -d " " -f 1`]
63 #HEAD_SIZE=`echo $HEAD_STR | wc -c`
64 #PACK_SIZE=`expr 44 - $HEAD_SIZE`
65
66 #while [ $PACK_SIZE -gt 0 ]
67 #do
68 #PACK_SIZE=`expr $PACK_SIZE - 1`
69 #echo -n 0
70 #done
71
72 ./MuonEncrypt $1 >> $R0ROM
73 #cat $MBOOT >> $R0ROM
74}
75
76function Pack4Byte {
77 FILE_SIZE=`stat -c%s $R0ROM`
78 PACK_SIZE=`expr 4 - $FILE_SIZE % 4`
79
80 if [ $PACK_SIZE != 4 ]
81 then
82 while [ $PACK_SIZE -gt 0 ]
83 do
84 PACK_SIZE=`expr $PACK_SIZE - 1` || true
85 echo -en $1 >> $R0ROM
86 done
87 fi
88
89}
90
91echo Make $R0ROM
92
93cat $REVISION > $R0ROM
94echo User : $USER >> $R0ROM
95echo Dir : $PWD >> $R0ROM
96echo BuildTime : `date "+%y/%m/%d %H:%M:%S"` >> $R0ROM
97echo MBoot : size\(`stat -c%s $MBOOT`\),checksum\(`md5sum $MBOOT | cut -d " " -f 1`\) >> $R0ROM
98echo Linux : size\(`stat -c%s $LINUX`\),checksum\(`md5sum $LINUX | cut -d " " -f 1`\) >> $R0ROM
99echo RootFS : size\(`stat -c%s $CRAMFS`\),checksum\(`md5sum $CRAMFS | cut -d " " -f 1`\) >> $R0ROM
100echo Sysdata : size\(`stat -c%s $SYSDATA`\),checksum\(`md5sum $SYSDATA | cut -d " " -f 1`\) >> $R0ROM
101
102Pack4Byte "\\n"
103
104
105dd if=$MBOOT of=$MBOOT_TMP bs=96 count=1 2> /dev/null
106
107echo `stat -c%s $MBOOT`:`md5sum $MBOOT | cut -d " " -f 1` >> $MBOOT_TMP
108echo `stat -c%s $LINUX`:`md5sum $LINUX | cut -d " " -f 1` >> $MBOOT_TMP
109echo `stat -c%s $CRAMFS`:`md5sum $CRAMFS | cut -d " " -f 1` >> $MBOOT_TMP
110echo `stat -c%s $SYSDATA`:`md5sum $SYSDATA | cut -d " " -f 1` >> $MBOOT_TMP
111
112dd if=$MBOOT of=$MBOOT_TMP bs=1088 skip=1 seek=1 2> /dev/null
113WriteImage $MBOOT_TMP
114
115#rm $MBOOT_TMP
116
117Pack4Byte "0"
118
119WriteImage $LINUX
120
121Pack4Byte "0"
122
123WriteImage $CRAMFS
124
125Pack4Byte "0"
126
127WriteImage $SYSDATA
128
129echo $R0ROM : `stat -c%s $R0ROM`, `md5sum $R0ROM | cut -d " " -f 1`
130#head -9 $R0ROM
131
132echo "Done"