diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2023-04-09 21:01:11 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2023-04-10 10:04:08 +0200 |
commit | 6fd8e0f943a0e8216daf238e015b6a311512d4ae (patch) | |
tree | fccae96552a7fbdcb5b66535c57ad3892a4a8ab5 /target/linux/bmips/base-files | |
parent | e76556d967fac9e25ca49298996aeea491c9ef90 (diff) | |
download | upstream-6fd8e0f943a0e8216daf238e015b6a311512d4ae.tar.gz upstream-6fd8e0f943a0e8216daf238e015b6a311512d4ae.tar.bz2 upstream-6fd8e0f943a0e8216daf238e015b6a311512d4ae.zip |
bmips: add subtargets for each SoC
BMIPS is a generic arch that can be used for multiple Broadcom SoCs, each one
with its own specific drivers, so instead of having a huge kernel supporting
all of them, let's switch to a subtarget per SoC like other OpenWrt targets.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/bmips/base-files')
-rw-r--r-- | target/linux/bmips/base-files/lib/upgrade/cfe-jffs2-nand.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/target/linux/bmips/base-files/lib/upgrade/cfe-jffs2-nand.sh b/target/linux/bmips/base-files/lib/upgrade/cfe-jffs2-nand.sh new file mode 100644 index 0000000000..64b8df652b --- /dev/null +++ b/target/linux/bmips/base-files/lib/upgrade/cfe-jffs2-nand.sh @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + +cfe_jffs2_nand_upgrade() { + local tar_file="$1" + local kernel_mtd="$(find_mtd_index $CI_KERNPART)" + + if [ -z "$kernel_mtd" ]; then + echo "$CI_KERNPART partition not found" + return 1 + fi + + local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$') + board_dir=${board_dir%/} + + local kernel_length=$(tar xf $tar_file ${board_dir}/kernel -O | wc -c 2> /dev/null) + local rootfs_length=$(tar xf $tar_file ${board_dir}/root -O | wc -c 2> /dev/null) + + if [ "$kernel_length" = 0 ]; then + echo "kernel cannot be empty" + return 1 + fi + + flash_erase -j /dev/mtd${kernel_mtd} 0 0 + tar xf $tar_file ${board_dir}/kernel -O | nandwrite /dev/mtd${kernel_mtd} - + + local rootfs_type="$(identify_tar "$tar_file" ${board_dir}/root)" + + nand_upgrade_prepare_ubi "$rootfs_length" "$rootfs_type" "0" "0" + + local ubidev="$( nand_find_ubi "$CI_UBIPART" )" + + local root_ubivol="$(nand_find_volume $ubidev $CI_ROOTPART)" + tar xf $tar_file ${board_dir}/root -O | \ + ubiupdatevol /dev/$root_ubivol -s $rootfs_length - + + nand_do_upgrade_success +} |