@@ -6,15 +6,16 @@ DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
6
6
BUILD_PATH=$DIR /build
7
7
ARMBIAN_PATH=$BUILD_PATH /armbian-build
8
8
ARMBIAN_IMAGE_PATH=$ARMBIAN_PATH /output/images
9
+ BOOTLOADER_IMAGE_PATH=$ARMBIAN_PATH /cache/sources/u-boot-worktree/u-boot-rockchip64/next-dev-v2024.03/
9
10
# #######################################################
10
11
Main () {
11
12
12
13
# read all variable from config file
13
14
source $DIR /config
14
15
15
- if [ -d $BUILD_PATH ]; then
16
- rm -rf " $BUILD_PATH "
17
- fi
16
+ # if [ -d $BUILD_PATH ]; then
17
+ # rm -rf "$BUILD_PATH"
18
+ # fi
18
19
mkdir -p $BUILD_PATH
19
20
20
21
# download armbian src
@@ -56,10 +57,10 @@ ArmbianSrcInit()
56
57
57
58
sudo apt-get -y -qq install git
58
59
59
- # get armbian-biuld
60
- if [ -d $ARMBIAN_PATH ]; then
61
- rm -rf " $ARMBIAN_PATH "
62
- fi
60
+ # get armbian-build
61
+ # if [ -d $ARMBIAN_PATH ]; then
62
+ # rm -rf "$ARMBIAN_PATH"
63
+ # fi
63
64
64
65
echo " clone armbian-build branch $ARMBIAN_REPO_BRANCH "
65
66
git clone --depth=1 --branch=$ARMBIAN_BRANCH https://github.com/armbian/build $ARMBIAN_PATH
@@ -145,6 +146,9 @@ ArmbianCompileDesktop()
145
146
CreateUsbFlashUpdate ()
146
147
{
147
148
echo " Create USB Flash Update files"
149
+
150
+ echo " copy bootloader to output folder"
151
+ cp $BOOTLOADER_IMAGE_PATH /rkspi_loader.img $BUILD_PATH /flash.img
148
152
149
153
echo " Split update file to 1GB parts"
150
154
split -d -a 1 -b 1G $ARMBIAN_IMAGE_PATH /* .img $BUILD_PATH /update.img. --verbose
@@ -158,8 +162,9 @@ CreateUsbFlashUpdate()
158
162
echo "usb update starting"
159
163
echo "******************************************"
160
164
161
- setenv load_addr "0x9000000"
162
- setenv load_size "0x40000000"
165
+ setenv load_addr0 "0x09000000"
166
+ setenv load_addr1 "0x0B000000"
167
+ setenv load_size "0x40000000"
163
168
164
169
setenv load_addr_part_0 "0x0000000"
165
170
setenv load_addr_part_1 "0x0200000"
@@ -185,38 +190,87 @@ CreateUsbFlashUpdate()
185
190
usb reset
186
191
usb dev 0
187
192
193
+ mtd_blk dev 2
194
+
188
195
mmc list
189
196
mmc dev
190
197
198
+ fatload usb 0:1 \$ {load_addr0} flash.img
199
+ echo "usb: flash image size: \$ {filesize} bytes"
200
+
201
+ setexpr file_size_blk \$ {filesize} / 0x200
202
+ echo "mtd: flash image block size: \$ {file_size_blk}"
203
+
204
+ mtd_blk read \$ {load_addr1} 0 \$ {file_size_blk}
205
+
206
+ setexpr cmp_size \$ {filesize} / 4
207
+ echo "cmp: cmp size: \$ {cmp_size}"
208
+
209
+ echo "cmp: compare usb flash.img with mtd content"
210
+ cmp \$ {load_addr0} \$ {load_addr1} \$ {cmp_size}
211
+
212
+ if test \$ ? -eq 0 ; then
213
+ echo "******************************************"
214
+ echo "usb: flash already updated"
215
+ echo "******************************************"
216
+ else
217
+ if test -e usb 0:1 flash.img ; then
218
+ echo "******************************************"
219
+ echo "usb: there is flash update file"
220
+
221
+ #turn on red led
222
+ gpio clear gpio211
223
+
224
+ #turn off blue led
225
+ gpio set gpio212
226
+
227
+ echo "mtd: wait for copy flash image to Nor Flash"
228
+ mtd_blk write \$ {load_addr0} 0 \$ {file_size_blk}
229
+ echo "mtd: copy completed"
230
+
231
+ rkimgtest mtd 2
232
+
233
+ echo " "
234
+ echo "please remove USB"
235
+ echo ""
236
+ echo "******************************************"
237
+ else
238
+ echo "******************************************"
239
+ echo "usb: there is no flash update file"
240
+ echo "******************************************"
241
+ fi
242
+ fi
243
+
244
+ echo "update rootfs"
245
+
191
246
if test -e usb 0:1 update.img.0 ; then
192
247
echo "******************************************"
193
248
echo "usb: there is update file"
194
249
195
250
#turn on red led
196
251
gpio clear gpio211
252
+ gpio clear gpio411
197
253
198
254
#turn off blue led
199
255
gpio set gpio212
200
-
256
+ gpio set gpio412
201
257
EOF
202
258
203
- # for (( i=0; i<$fileCnt; i++ ))
204
- # do
205
259
i=0
206
260
while [ " $i " -lt $fileCnt ]; do
207
261
cat >> $BUILD_PATH /boot.cmd << - EOF
208
262
209
263
size usb 0:1 update.img.$i
210
- echo "usb: part $i image size: \$ {filesize} bytes"
264
+ echo "usb: part $i image size: \$ {filesize} bytes"
211
265
echo "usb: wait for copy part $i image to DDR"
212
- fatload usb 0:1 \$ {load_addr } update.img.$i
213
- echo "usb: part $i copy complete"
266
+ fatload usb 0:1 \$ {load_addr0 } update.img.$i
267
+ echo "usb: part $i copy complete"
214
268
setexpr file_size_blk \$ {filesize} / 0x200
215
- echo "emmc: part $i image block size: \$ {file_size_blk}"
269
+ echo "emmc: part $i image block size: \$ {file_size_blk}"
216
270
echo "emmc: wait for copy part $i image to eMMC"
217
- mmc write \$ {load_addr } \$ {load_addr_part_$i } \$ {file_size_blk}
271
+ mmc write \$ {load_addr0 } \$ {load_addr_part_$i } \$ {file_size_blk}
218
272
echo "emmc: part $i copy completed"
219
-
273
+
220
274
EOF
221
275
i=$(( i + 1 ))
222
276
done
@@ -233,14 +287,18 @@ CreateUsbFlashUpdate()
233
287
234
288
#turn off red led
235
289
gpio set gpio211
290
+ gpio set gpio411
236
291
237
292
#turn on blue led
238
- gpio clear gpio212
293
+ gpio clear gpio212
294
+ gpio clear gpio412
239
295
240
- while true ; do ;
241
- gpio set gpio212 &&
296
+ while true ; do ;
297
+ gpio set gpio212 &&
298
+ gpio set gpio412 &&
242
299
usb reset &&
243
- gpio clear gpio212 &&
300
+ gpio clear gpio212 &&
301
+ gpio clear gpio412 &&
244
302
usb reset &&
245
303
; done;
246
304
@@ -256,7 +314,7 @@ CreateUsbFlashUpdate()
256
314
echo " zip all update file to $BUILD_PATH /update.zip"
257
315
cd $BUILD_PATH
258
316
sudo rm -f update.zip
259
- zip -s 1900m -r update.zip update.img.* boot.scr
317
+ zip -s 1900m -r update.zip update.img.* boot.scr flash.img
260
318
261
319
} # CreateUsbFlashUpdate
262
320
# #######################################################
0 commit comments