-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathbuild-uboot.sh
More file actions
executable file
·75 lines (62 loc) · 2.05 KB
/
build-uboot.sh
File metadata and controls
executable file
·75 lines (62 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/bash
: "${BOARD:=all}"
: "${UBOOT_DIR:=src/u-boot}"
: "${TFA_DIR:=src/tfa}"
: "${RKBIN_DIR:=src/rkbin}"
: "${KEEP_SRC:=no}"
: "${UBOOT_OUT:=prebuilt/u-boot}"
: "${CROSS_COMPILE:=aarch64-linux-gnu-}"
: "${UBOOT_GIT:=https://github.com/flipperdevices/u-boot.git}"
: "${UBOOT_BRANCH:=rk3576}"
: "${TFA_GIT:=https://github.com/ARM-software/arm-trusted-firmware.git}"
: "${TFA_BRANCH:=master}"
: "${RKBIN_GIT:=https://github.com/radxa/rkbin}"
: "${RKBIN_BRANCH:=develop-v2025.04}"
: "${USE_BL31:=opensource}"
set -e
for i in "$UBOOT_DIR" "$RKBIN_DIR" "$TFA_DIR"; do
if [ -d "$i" ]; then
if [ x"$KEEP_SRC" = x"update" ]; then
pushd "$i"
git pull
popd
elif [ x"$KEEP_SRC" = x"no" ]; then
rm -rf "$i"
fi
fi
done
[ ! -d "$UBOOT_DIR" ] && git clone --depth 1 -b "$UBOOT_BRANCH" "$UBOOT_GIT" "$UBOOT_DIR"
[ ! -d "$RKBIN_DIR" ] && git clone --depth 1 -b "$RKBIN_BRANCH" "$RKBIN_GIT" "$RKBIN_DIR"
[ ! -d "$TFA_DIR" ] && [ x"$USE_BL31" = x"opensource" ] && git clone --depth 1 -b "$TFA_BRANCH" "$TFA_GIT" "$TFA_DIR"
ROCKCHIP_TPL=`realpath "$RKBIN_DIR"/bin/rk35/rk3576_ddr_*.bin | tail -n1`
BL31=
if [ x"$USE_BL31" = x"opensource" ]; then
pushd "$TFA_DIR"
make PLAT=rk3576 -j$(nproc) clean
make PLAT=rk3576 -j$(nproc)
popd
BL31=`realpath "$TFA_DIR"/build/rk3576/release/bl31/bl31.elf`
else
BL31=`realpath "$RKBIN_DIR"/bin/rk35/rk3576_bl31_v*.elf`
fi
pushd "$RKBIN_DIR"
rm -f rk3576_*loader_*.bin
./tools/boot_merger RKBOOT/RK3576MINIALL.ini
./tools/boot_merger RKBOOT/RK3576MINIALL_FSPI1.ini
popd
if [ x"$BOARD" = x"all" ]; then
BOARDS=`basename -a -s "-rk3576_defconfig" "$UBOOT_DIR"/configs/*-rk3576_defconfig`
else
BOARDS="$BOARD"
fi
for i in $BOARDS; do
pushd "$UBOOT_DIR"
make -j$(nproc) CROSS_COMPILE="$CROSS_COMPILE" clean
make -j$(nproc) CROSS_COMPILE="$CROSS_COMPILE" "$i"-rk3576_defconfig
make -j$(nproc) CROSS_COMPILE="$CROSS_COMPILE" BL31="$BL31" ROCKCHIP_TPL="$ROCKCHIP_TPL"
popd
rm -rf "$UBOOT_OUT"/"$i"
mkdir -p "$UBOOT_OUT"/"$i"
cp "$UBOOT_DIR"/u-boot-rockchip*.bin "$UBOOT_OUT"/"$i"/
cp "$RKBIN_DIR"/rk3576_*loader_*.bin "$UBOOT_OUT"/"$i"
done