3 # U-BOOT binary signature tool
5 # Copyright (C) 2014 Samsung Electronics
6 # Przemyslaw Marczak <p.marczak@samsung.com>
11 # uint32_t magic; /* image magic number */
12 # uint32_t size; /* image data size */
13 # uint32_t valid; /* valid flag */
14 # char date[12]; /* image creation timestamp - YYMMDDHH */
15 # char version[24]; /* image version */
16 # char bd_name[16]; /* target board name */
17 # char reserved[448]; /* reserved */
24 OUTPUT_BIN="u-boot-mmc.bin"
25 OUTPUT_SIZE=$((1024*1024))
28 INPUT_SIZE_LIMIT=$((${OUTPUT_SIZE} - ${SIGN_HDR_SIZE}))
30 # Check arguments count
31 if [ $# != $INPUT_ARGS ]; then
32 echo Bad arguments number!
34 echo "./mksigimage.sh input.bin config"
36 echo "./mksigimage.sh u-boot-multi.bin tizen_config"
40 echo "#####################################"
41 echo "Running script: $0"
42 echo "Config: $CONFIG"
43 echo "Input binary: $INPUT_BIN"
45 # Check if given binary exists
46 if [ -s $INPUT_BIN ]; then
47 # Check given binary size
48 INPUT_SIZE=`du -b $INPUT_BIN | awk '{print $1}'`
50 if [ ${INPUT_SIZE} -gt ${INPUT_SIZE_LIMIT} ]; then
51 echo "Input binary size exceeds size limit!"
52 echo "Max input size: ${INPUT_SIZE_LIMIT}"
55 echo "Input bytes: $INPUT_SIZE (Max size: ${INPUT_SIZE_LIMIT} B)"
58 echo "File: $INPUT_BIN not exists!"
62 echo -n "BoOt" > sig-magic
63 echo -n `date +%Y%m%d%H` > sig-date
64 echo -n "none" > sig-product
66 if [ $CONFIG == "tizen_tm1" ]; then
67 echo -n "tizen_tm1" > sig-board
69 echo -n "none" > sig-board
72 cat sig-magic /dev/zero | head -c 12 > sig-tmp
73 cat sig-tmp sig-date /dev/zero | head -c 24 > sig-tmp2
74 cat sig-tmp2 sig-product /dev/zero | head -c 48 > sig-tmp
75 cat sig-tmp sig-board /dev/zero | head -c 512 > sig-hdr
76 cat $INPUT_BIN /dev/zero | head -c 1048064 > u-boot-pad.bin
77 cat u-boot-pad.bin sig-hdr > $OUTPUT_BIN
81 echo "HDR length: $SIGN_HDR_SIZE Bytes"
82 echo "SIG magic: \"`cat sig-magic`\""
85 echo "SIG date: \"`cat sig-date`\" (YYMMDDHH)"
86 echo "SIG version: \"none\""
87 echo "SIG board: \"`cat sig-board`\""
89 rm -f sig-* u-boot-pad.bin
92 echo "Output signed binary: ${OUTPUT_BIN}"
93 echo "#####################################"