1db55e14fb4ceab2292c205971bd1cc6b6606031
[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 # boot from ramdisk if there is sbin
95 if test -e $devtype $devnum:$ramdiskpart sbin/init; then;
96         setenv rootdev ram0
97 else
98         if test "${devtype}" = "mmc"; then;
99                 setenv rootdev mmcblk${devnum}p${rootpart}
100         fi
101         if test "${devtype}" = "usb"; then;
102                 setenv rootdev sda${rootpart}
103         fi
104         if test "${devtype}" = "nvme"; then;
105                 setenv rootdev nvme0n1p${rootpart}
106         fi
107         if test "${devtype}" = "virtio"; then;
108                 setenv rootdev vda${rootpart}
109         fi
110         setenv bootmode normal
111 fi
112
113 # setting console device if noting is set
114 if test -z "${console}"; then;
115         setenv console "console=ttyS0,115200 earlycon"
116 fi
117 echo "console: ${console}"
118
119 # DT image by model
120 if setexpr pcb_revision sub "^VF7110(.).*" "\\1" "${serial#}"; then
121         if test "${pcb_revision}" = "A" -o "${pcb_revision}" = "a"; then
122                 setenv fdtfile "jh7110-starfive-visionfive-2-v1.2a.dtb"
123         fi
124         if test "${pcb_revision}" = "B" -o "${pcb_revision}" = "b"; then
125                 setenv fdtfile "jh7110-starfive-visionfive-2-v1.3b.dtb"
126         fi
127 fi
128
129 setenv boot_prefixes \"/\"
130
131 # To use cmdline for using serial console. /* Normal mode */
132 setenv bootargs \"${tizen_bootarg} root=/dev/${rootdev} rw bootmode=${bootmode} partition_ab=${partition_ab} rootwait ${console} ${opts} ${ip_opt} stmmaceth=chain_mode:1\"
133
134 # Find the ramdisk offset and block count
135 part start $devtype $devnum $ramdiskpart ramdisk_start
136 part size $devtype $devnum $ramdiskpart ramdisk_size
137
138 # Set to ramdisksize with real partition size. (Need to multiply block-size 0x200)
139 setexpr ramdisksize $ramdisk_size * 200
140 setexpr tizen_kernel_addr_r $ramdisk_addr_r + $ramdisksize
141
142 echo "Searching for kernel in"; for prefix in $boot_prefixes; do
143 if load $devtype $devnum:$distro_bootpart $tizen_kernel_addr_r $prefix$kernel; then;
144         echo ${bootmode} "boot";
145
146         if test -e $devtype $devnum:$ramdiskpart sbin/init; then;
147                 echo "Loading Ramdisk from partition" ${part};
148                 echo "Environment value of ramdiskpart is" ${ramdiskpart};
149                 $devtype dev $devnum
150                 $devtype read $ramdisk_addr_r $ramdisk_start $ramdisk_size;
151         else
152                 # Check for gzip (initramfs) magic
153                 $devtype dev $devnum;
154                 $devtype read $ramdisk_addr_r $ramdisk_start 1;
155                 if itest.w *$ramdisk_addr_r == 0x8b1f; then;
156                         echo "Loading initramfs from partition ${part}";
157                         echo "Environment value of ramdiskpart is" ${ramdiskpart};
158                         $devtype read $ramdisk_addr_r $ramdisk_start $ramdisk_size;
159                 fi
160         fi
161
162         if test "${board_name}" = "qemu-riscv"; then
163                 # If running in QEMU use the DeviceTree provided by
164                 # the emulator. It is the most accurate description of
165                 # the platform.
166                 fdt move $fdt_addr $fdt_addr_r
167         else
168                 load $devtype $devnum:$distro_bootpart $fdt_addr_r $prefix$fdtfile
169         fi
170         booti $tizen_kernel_addr_r $ramdisk_addr_r:$ramdisksize $fdt_addr_r;
171 fi
172 done