blob: 18a18fe96ac6912bfe7acbede2978d6273d9e086 [file] [log] [blame]
Riku Voipio25234d12018-05-04 14:49:29 +03001#!/bin/bash
2#===============================================================================
3#
4# FILE: update_default_boot.sh
5#
6# USAGE: ./update_default_boot.sh [TYPE]
7# [TYPE]: kernel, uboot, optee, netboot
8#
9# AUTHOR: Christophe Priouzeau
10# ORGANIZATION: STMicroelectronics
11# COPYRIGHT: Copyright (C) 2016, STMicroelectronics - All Rights Reserved
12# CREATED: 08/23/2016 11:53
13#===============================================================================
14_DEFAULT_BOOTSCRIPT=u-bootrom.script
15_DEFAULT_TYPE=kernel
16
17_TYPE=
18
19usage() {
20 echo "Usage:"
21 echo " $1 <type>"
22 echo " type: type of boot can be \"kernel\", \"uboot\" or \"optee\" or \"netboot\""
23 echo ""
24}
25parse_argument() {
26 case $1 in
27 kernel)
28 _TYPE=kernel
29 ;;
30 uboot)
31 _TYPE=uboot
32 ;;
33 optee)
34 _TYPE=optee_uboot
35 ;;
36 netboot)
37 _TYPE=netboot
38 ;;
39 esac
40}
41
42ask_tftp_ip_address() {
43 IP_ETH0=`ifconfig eth0 | awk '/inet addr/{print substr($2,6)}'`
44 echo "Please enter the IP address of your TFTP server [$IP_ETH0]: "
45 read _ip
46
47 if [ -z "$_ip" ];
48 then
49 #use ip address of eth0
50 IP_ADDRESS=$IP_ETH0
51 else
52 echo "Would you like to use this IP address '$_ip' ? [Y/n] "
53 read answer
54 if [ -z "$answer" ]
55 then
56 # yes selected
57 IP_ADDRESS=$_ip
58 elif (echo -n $answer | grep -q -e "^[yY][a-zA-Z]*$")
59 then
60 # yes selected
61 IP_ADDRESS=$_ip
62 else
63 echo "[EXIT] you don't validate the ip address entered."
64 echo ""
65 exit 1
66 fi
67 fi
68}
69# -----------------------------------
70# Parse option
71
72case $# in
730)
74 parse_argument kernel
75 ;;
761)
77 case $1 in
78 -h|--help)
79 usage $1
80 exit 1
81 ;;
82 kernel|uboot|optee|netboot)
83 parse_argument $1
84 shift
85 ;;
86 *)
87 usage $1
88 exit 1
89 ;;
90 esac
91
92 ;;
93*)
94 #error
95 usage $1
96 exit 1
97 ;;
98esac
99
100if [ -z $_TYPE ];
101then
102 echo "FORCE type of boot to : $_DEFAULT_TYPE"
103 _TYPE=$_DEFAULT_TYPE
104fi
105
106echo ""
107echo " Type of boot: $_TYPE"
108echo ""
109
110if [ "$_TYPE" == "netboot" ];
111then
112 ask_tftp_ip_address
113 echo "IP ADDRESS $IP_ADDRESS"
114fi
115
116# generate script of mkimage
117#for f in `find . -name *.script -print`;
118#do
119# filename="$f"
120# mkimage -A arm -T script -C none -n "Open SDK Boot Script" -d $f ${filename%.*}.scr > /dev/null
121#done
122
123for d in `find . -maxdepth 1 -type d | grep "./" | sort`;
124do
125 BOOTSCRIPT_ROOT=`basename $d`
126 if [ -f $d/$_DEFAULT_BOOTSCRIPT ];
127 then
128 # apply default configuration
129 if [ -f $d/$_DEFAULT_BOOTSCRIPT-$_TYPE ];
130 then
131 echo "INFO: update $BOOTSCRIPT_ROOT/$_DEFAULT_BOOTSCRIPT script"
132 sed -i 's#\(script_path=\".*/'"$_DEFAULT_BOOTSCRIPT"'\).*$#\1-$_TYPE\"#g' $d/$_DEFAULT_BOOTSCRIPT
133 if [ "$_TYPE" == "netboot" ];
134 then
135 if [ -f $d/$_DEFAULT_BOOTSCRIPT-$_TYPE ];
136 then
137 sed -i 's#setenv serverip '\(.*\)'#setenv serverip '$IP_ADDRESS'#g' $d/$_DEFAULT_BOOTSCRIPT-$_TYPE
138 fi
139 fi
140 else
141 echo "ERROR: missing '$_DEFAULT_BOOTSCRIPT-$_TYPE' in $BOOTSCRIPT_ROOT folder."
142 echo "ERROR: skip update in $BOOTSCRIPT_ROOT/$_DEFAULT_BOOTSCRIPT script"
143 fi
144 else
145 echo "ERROR: missing '$_DEFAULT_BOOTSCRIPT' in $BOOTSCRIPT_ROOT folder"
146 echo "ERROR: cannot update default boot for $BOOTSCRIPT_ROOT folder"
147 fi
148done