diff options
| author | Álvaro Fernández Rojas <noltari@gmail.com> | 2023-06-15 10:46:10 +0200 |
|---|---|---|
| committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2023-06-15 10:49:41 +0200 |
| commit | 434df8df549a4d709be9eb19c0d2bd8abb4d4881 (patch) | |
| tree | 90733d0e8c75eae375b55a5868ea228704568edd | |
| parent | cdfcac6e246de9f237d1425e498db3f34ddebbaf (diff) | |
| download | upstream-434df8df549a4d709be9eb19c0d2bd8abb4d4881.tar.gz upstream-434df8df549a4d709be9eb19c0d2bd8abb4d4881.tar.bz2 upstream-434df8df549a4d709be9eb19c0d2bd8abb4d4881.zip | |
base-files: upgrade: nand: add JFFS2 cleanmarkers support
Some Broadcom MIPS devices require JFFS2 cleanmarkers to be present on the
kernel partition or the bootloader will identify the partition as corrupt and
won't boot the kernel.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
| -rw-r--r-- | package/base-files/files/lib/upgrade/nand.sh | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/package/base-files/files/lib/upgrade/nand.sh b/package/base-files/files/lib/upgrade/nand.sh index fa29d575a81..d910bf17915 100644 --- a/package/base-files/files/lib/upgrade/nand.sh +++ b/package/base-files/files/lib/upgrade/nand.sh @@ -301,6 +301,7 @@ nand_upgrade_fit() { nand_upgrade_tar() { local tar_file="$1" local gz="$2" + local jffs2_markers="${CI_JFFS2_CLEAN_MARKERS:-0}" # WARNING: This fails if tar contains more than one 'sysupgrade-*' directory. local board_dir="$(tar t${gz}f "$tar_file" | grep -m 1 '^sysupgrade-.*/$')" @@ -329,6 +330,7 @@ nand_upgrade_tar() { ubi_kernel_length="$kernel_length" fi fi + local has_env=0 nand_upgrade_prepare_ubi "$rootfs_length" "$rootfs_type" "$ubi_kernel_length" "$has_env" || return 1 @@ -340,8 +342,14 @@ nand_upgrade_tar() { fi if [ "$kernel_length" ]; then if [ "$kernel_mtd" ]; then - tar xO${gz}f "$tar_file" "$board_dir/kernel" | \ - mtd write - "$CI_KERNPART" + if [ "$jffs2_markers" = 1 ]; then + flash_erase -j "/dev/mtd${kernel_mtd}" 0 0 + tar xO${gz}f "$tar_file" "$board_dir/kernel" | \ + nandwrite "/dev/mtd${kernel_mtd}" - + else + tar xO${gz}f "$tar_file" "$board_dir/kernel" | \ + mtd write - "$CI_KERNPART" + fi else local ubidev="$( nand_find_ubi "${CI_KERN_UBIPART:-$CI_UBIPART}" )" local kern_ubivol="$( nand_find_volume $ubidev "$CI_KERNPART" )" |
