mirror of
https://github.com/armbian/build.git
synced 2026-01-06 09:58:46 -08:00
rockchip64: support binman images in write_uboot_platform_mtd
This commit is contained in:
@@ -35,54 +35,7 @@ function post_family_config__orangepi5_use_mainline_uboot() {
|
||||
declare -g BOOTDIR="u-boot-${BOARD}" # do not share u-boot directory
|
||||
declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB} $BOOTCONFIG_SATA;;u-boot-rockchip-spi-sata.bin
|
||||
BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB} $BOOTCONFIG;;u-boot-rockchip.bin u-boot-rockchip-spi.bin"
|
||||
unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd # disable stuff from rockchip64_common; we're using binman here which does all the work already
|
||||
|
||||
# Just use the binman-provided u-boot-rockchip.bin, which is ready-to-go
|
||||
function write_uboot_platform() {
|
||||
dd "if=$1/u-boot-rockchip.bin" "of=$2" bs=32k seek=1 conv=notrunc status=none
|
||||
}
|
||||
|
||||
function write_uboot_platform_mtd() {
|
||||
FILES=$(find "$1" -maxdepth 1 -type f -name "u-boot-rockchip-spi*.bin")
|
||||
if [ -z "$FILES" ]; then
|
||||
echo "No SPI image found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
MENU_ITEMS=()
|
||||
i=1
|
||||
|
||||
# Read the files into an array
|
||||
while IFS= read -r file; do
|
||||
filename=$(basename "$file")
|
||||
MENU_ITEMS+=("$i" "$filename" "")
|
||||
((i++))
|
||||
done <<< "$FILES"
|
||||
|
||||
# If there is only one image or the terminal is not interactive, we can skip the dialog
|
||||
if [[ ! -t 1 || $i -eq 2 ]]; then
|
||||
flashcp -v -p "$1/${MENU_ITEMS[1]}" /dev/mtd0
|
||||
return
|
||||
fi
|
||||
|
||||
[[ -f /etc/armbian-release ]] && source /etc/armbian-release
|
||||
backtitle="Armbian for $BOARD_NAME install script, https://www.armbian.com"
|
||||
|
||||
CHOICE=$(dialog --no-collapse \
|
||||
--title "armbian-install" \
|
||||
--backtitle $backtitle \
|
||||
--radiolist "Choose SPI image:" 0 56 4 \
|
||||
"${MENU_ITEMS[@]}" \
|
||||
3>&1 1>&2 2>&3)
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
idx=$((CHOICE*3-2))
|
||||
flashcp -v -p "$1/${MENU_ITEMS[$idx]}" /dev/mtd0
|
||||
else
|
||||
echo "No SPI image chosen."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
unset uboot_custom_postprocess # disable stuff from rockchip64_common; we're using binman here which does all the work already
|
||||
}
|
||||
|
||||
function pre_config_uboot_target__orangepi5_patch_uboot_bootconfig_hack_for_sata() {
|
||||
|
||||
@@ -305,9 +305,8 @@ write_uboot_platform() {
|
||||
fi
|
||||
}
|
||||
|
||||
# @TODO: this is not ready for BOOT_SCENARIO=binman yet
|
||||
write_uboot_platform_mtd() {
|
||||
FILES=$(find "$1" -maxdepth 1 -type f -name "rkspi_loader*.img")
|
||||
FILES=$(find "$1" -maxdepth 1 -type f \( -name "rkspi_loader*.img" -o -name "u-boot-rockchip-spi*.bin" \))
|
||||
if [ -z "$FILES" ]; then
|
||||
echo "No SPI image found."
|
||||
exit 1
|
||||
@@ -315,17 +314,23 @@ write_uboot_platform_mtd() {
|
||||
|
||||
MENU_ITEMS=()
|
||||
i=1
|
||||
FILE_ARRAY=()
|
||||
|
||||
# Read the files into an array
|
||||
while IFS= read -r file; do
|
||||
filename=$(basename "$file")
|
||||
MENU_ITEMS+=("$i" "$filename" "")
|
||||
FILE_ARRAY+=("$file")
|
||||
((i++))
|
||||
done <<< "$FILES"
|
||||
|
||||
# If there is only one image or the terminal is not interactive, we can skip the dialog
|
||||
if [[ ! -t 1 || $i -eq 2 ]]; then
|
||||
dd if=$1/${MENU_ITEMS[1]} of=$2 conv=notrunc status=none > /dev/null 2>&1
|
||||
first_file="${FILE_ARRAY[0]}"
|
||||
if [[ "$first_file" == *rkspi_loader*.img ]]; then
|
||||
dd if="$first_file" of="$2" conv=notrunc status=none > /dev/null 2>&1
|
||||
else
|
||||
flashcp -v -p "$first_file" /dev/mtd0
|
||||
fi
|
||||
return
|
||||
fi
|
||||
|
||||
@@ -333,15 +338,20 @@ write_uboot_platform_mtd() {
|
||||
backtitle="Armbian for $BOARD_NAME install script, https://www.armbian.com"
|
||||
|
||||
CHOICE=$(dialog --no-collapse \
|
||||
--title "armbian-install" \
|
||||
--backtitle "$backtitle" \
|
||||
--radiolist "Choose SPI image:" 0 56 4 \
|
||||
"${MENU_ITEMS[@]}" \
|
||||
3>&1 1>&2 2>&3)
|
||||
--title "armbian-install" \
|
||||
--backtitle "$backtitle" \
|
||||
--radiolist "Choose SPI image:" 0 56 4 \
|
||||
"${MENU_ITEMS[@]}" \
|
||||
3>&1 1>&2 2>&3)
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
idx=$((CHOICE*3-2))
|
||||
dd if=$1/${MENU_ITEMS[$idx]} of=$2 conv=notrunc status=none > /dev/null 2>&1
|
||||
idx=$((CHOICE-1))
|
||||
chosen_file="${FILE_ARRAY[$idx]}"
|
||||
if [[ "$chosen_file" == *rkspi_loader*.img ]]; then
|
||||
dd if="$chosen_file" of="$2" conv=notrunc status=none > /dev/null 2>&1
|
||||
else
|
||||
flashcp -v -p "$chosen_file" /dev/mtd0
|
||||
fi
|
||||
else
|
||||
echo "No SPI image chosen."
|
||||
exit 1
|
||||
|
||||
Reference in New Issue
Block a user