Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled

This commit is contained in:
domenico
2025-06-24 12:51:15 +02:00
commit 27c9d80f51
10493 changed files with 1885777 additions and 0 deletions

View File

@@ -0,0 +1,90 @@
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2019 Jeff Kletsky
#
glinet_using_boot_dev_switch() {
if [ "$(fw_printenv -n boot_dev 2>/dev/null)" = "on" ] ; then
>&2 echo "NOTE: boot_dev=on; use switch to control boot partition"
true
else
false
fi
}
glinet_set_next_boot_nand() {
mkdir -p /var/lock
! glinet_using_boot_dev_switch && \
fw_setenv bootcount 0 && \
>&2 echo "Next boot set for NAND"
}
glinet_set_next_boot_nor() {
mkdir -p /var/lock
! glinet_using_boot_dev_switch && \
fw_setenv bootcount 3 && \
>&2 echo "Next boot set for NOR"
}
glinet_nand_nor_do_upgrade() {
set_next_boot_nand() { glinet_set_next_boot_nand; }
set_next_boot_nor() { glinet_set_next_boot_nor; }
nand_nor_do_upgrade "$1"
}
nand_nor_do_upgrade() {
local upgrade_file="$1"
local pn
local found=""
local err
case "$(get_magic_long "$upgrade_file")" in
"27051956") # U-Boot Image Magic
for pn in "nor_${PART_NAME}" "$PART_NAME" ; do # firmware
if [ "$(find_mtd_index "$pn")" ] ; then
PART_NAME="$pn"
found="yes"
break
fi
done
if [ "$found" = "yes" ] ; then
>&2 echo "Running NOR upgrade"
default_do_upgrade "$upgrade_file"
# At this time, default_do_upgrade() exits on error
type set_next_boot_nor >/dev/null && set_next_boot_nor
else
>&2 echo "ERROR: UPGRADE FAILED: Unable to locate '$PART_NAME' or 'nor_${PART_NAME}'"
exit 1
fi
;;
*) # otherwise a file that nand_do_upgrade can process
for pn in "nand_${CI_KERNPART}" "$CI_KERNPART" ; do # kernel
if [ "$(find_mtd_index "$pn")" ] ; then
CI_KERNPART="$pn"
break
fi
done
for pn in "nand_${CI_UBIPART}" "$CI_UBIPART" ; do # ubi
if [ "$(find_mtd_index "$pn")" ] ; then
CI_UBIPART="$pn"
break
fi
done
for pn in "nand_${CI_ROOTPART}" "$CI_ROOTPART" ; do #rootfs
if [ "$(find_mtd_index "$pn")" ] ; then
CI_ROOTPART="$pn"
break
fi
done
>&2 echo "Running NAND upgrade"
# TODO: change order when NAND upgrade offers return
type set_next_boot_nand >/dev/null && set_next_boot_nand
nand_do_upgrade "$upgrade_file"
;;
esac
}