tizen: bootscript: Use set bootmode also for cpio initramfs
[platform/kernel/u-boot.git] / tizen / bootscript / tizen-boot-vf2.scr
1 # U-boot script for tizen VF2 and QEMU
2
3 if test -z "${devtype}"; then
4         setenv devtype "${bootdevtype}"
5         if test "${target}" = "virtio0"; then;
6                 setenv devtype virtio
7         fi
8         if test "${target}" = "mmc0" -o "${target}" = "mmc1"; then;
9                 setenv devtype mmc
10         fi
11         if test "${target}" = "usb0"; then;
12                 setenv devtype usb
13         fi
14         if test "${target}" = "nvme" -o "${target}" = "nvme0"; then;
15                 setenv devtype nvme
16         fi
17 fi
18 if test "${devtype}" = "usb"; then;
19         setenv opts "${opts} rootdelay=2"
20 fi
21
22 if test -e $devtype $devnum:$informpart $slotfile; then;
23         ext4load $devtype $devnum:$informpart $slot_addr $slotfile;
24         if itest.b *${slot_addr} == 0x62; then;
25                 setenv ramdiskpart 0xf
26                 setenv part 15
27                 setenv partition_ab b
28                 echo "boot from slot_b";
29         else
30                 setenv ramdiskpart 9
31                 setenv part 9
32                 setenv partition_ab a
33                 echo "boot from slot_a";
34         fi
35 else
36         setenv ramdiskpart 9
37         setenv part 9
38         setenv partition_ab a
39         echo "boot from slot_a";
40 fi
41
42 if test -e $devtype $devnum:$informpart $rebootparamfile; then;
43         ext4load $devtype $devnum:$informpart $rebootparam_addr $rebootparamfile;
44         if itest.l *${rebootparam_addr} == ${upgrade_val}; then;
45                 if test "${partition_ab}" = "b"; then
46                         setenv ramdiskpart 0x10
47                         setenv part 16
48                 else
49                         setenv ramdiskpart 0xa
50                         setenv part 10
51                 fi
52                 setenv bootmode fota
53         elif itest.l *${rebootparam_addr} == ${recovery_val}; then;
54                 if test "${partition_ab}" = "b"; then
55                         setenv ramdiskpart 0x10
56                         setenv part 16
57                 else
58                         setenv ramdiskpart 0xa
59                         setenv part 10
60                 fi
61                 setenv bootmode recovery
62         elif itest.l *${rebootparam_addr} == ${download_val}; then;
63                 if test "${partition_ab}" = "b"; then
64                         setenv ramdiskpart 0x10
65                         setenv part 16
66                 else
67                         setenv ramdiskpart 0xa
68                         setenv part 10
69                 fi
70                 setenv bootmode flash
71         elif itest.l *${rebootparam_addr} == ${nodef_val}; then;
72                 echo "This reboot parameter is not supported...";
73         fi
74 fi
75
76 # This is for jumping to flash mode on u-boot.
77 if test "${bootmode}" = "download"; then;
78         if test "${partition_ab}" = "b"; then
79                 setenv ramdiskpart 0x10
80                 setenv part 16
81         else
82                 setenv ramdiskpart 0xa
83                 setenv part 10
84         fi
85         setenv bootmode flash
86 fi
87
88 if test "${bootmode}" = "flash"; then;
89         if test -n "${ipaddr}"; then;
90                 ip_opt=\"ip=${ipaddr}::${gateway}:${netmask}::eth0:off\"
91         fi
92 fi
93
94 # setting console device if noting is set
95 if test -z "${console}"; then;
96         setenv console "console=ttyS0,115200 earlycon"
97 fi
98 echo "console: ${console}"
99
100 # DT image by model
101 if setexpr pcb_revision sub "^VF7110(.).*" "\\1" "${serial#}"; then
102         if test "${pcb_revision}" = "A" -o "${pcb_revision}" = "a"; then
103                 setenv fdtfile "jh7110-starfive-visionfive-2-v1.2a.dtb"
104         fi
105         if test "${pcb_revision}" = "B" -o "${pcb_revision}" = "b"; then
106                 setenv fdtfile "jh7110-starfive-visionfive-2-v1.3b.dtb"
107         fi
108 fi
109
110 setenv boot_prefixes \"/\"
111
112 # Find the ramdisk offset and block count
113 part start $devtype $devnum $ramdiskpart ramdisk_start
114 part size $devtype $devnum $ramdiskpart ramdisk_size
115
116 # Set to ramdisksize with real partition size. (Need to multiply block-size 0x200)
117 setexpr ramdisksize $ramdisk_size * 200
118 setexpr tizen_kernel_addr_r $ramdisk_addr_r + $ramdisksize
119
120 # boot from ramdisk if there is sbin or it is initramfs
121 if test -e $devtype $devnum:$ramdiskpart sbin/init; then;
122         setenv rootdev ram0
123         echo "Loading Ramdisk from partition" ${part};
124         echo "Environment value of ramdiskpart is" ${ramdiskpart};
125         $devtype dev $devnum
126         $devtype read $ramdisk_addr_r $ramdisk_start $ramdisk_size;
127 else
128         # Check for gzip (initramfs) magic
129         $devtype dev $devnum;
130         $devtype read $ramdisk_addr_r $ramdisk_start 1;
131         if itest.w *$ramdisk_addr_r == 0x8b1f; then;
132                 setenv rootdev ram0
133                 echo "Loading initramfs from partition ${part}";
134                 echo "Environment value of ramdiskpart is" ${ramdiskpart};
135                 $devtype read $ramdisk_addr_r $ramdisk_start $ramdisk_size;
136         else
137                 if test "${devtype}" = "mmc"; then;
138                         setenv rootdev mmcblk${devnum}p${rootpart}
139                 fi
140                 if test "${devtype}" = "usb"; then;
141                         setenv rootdev sda${rootpart}
142                 fi
143                 if test "${devtype}" = "nvme"; then;
144                         setenv rootdev nvme0n1p${rootpart}
145                 fi
146                 if test "${devtype}" = "virtio"; then;
147                         setenv rootdev vda${rootpart}
148                 fi
149                 setenv bootmode normal
150         fi
151 fi
152
153 # To use cmdline for using serial console. /* Normal mode */
154 setenv bootargs \"${tizen_bootarg} root=/dev/${rootdev} rw bootmode=${bootmode} partition_ab=${partition_ab} rootwait ${console} ${opts} ${ip_opt} stmmaceth=chain_mode:1\"
155
156 echo "Searching for kernel in"; for prefix in $boot_prefixes; do
157 if load $devtype $devnum:$distro_bootpart $tizen_kernel_addr_r $prefix$kernel; then;
158         echo ${bootmode} "boot";
159
160         if test "${board_name}" = "qemu-riscv"; then
161                 # If running in QEMU use the DeviceTree provided by
162                 # the emulator. It is the most accurate description of
163                 # the platform.
164                 fdt move $fdt_addr $fdt_addr_r
165         else
166                 load $devtype $devnum:$distro_bootpart $fdt_addr_r $prefix$fdtfile
167         fi
168         booti $tizen_kernel_addr_r $ramdisk_addr_r:$ramdisksize $fdt_addr_r;
169 fi
170 done