aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/base-files
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2017-01-08 14:27:38 +0100
committerFelix Fietkau <nbd@nbd.name>2017-02-01 14:58:57 +0100
commit0656bee36b157c19a248f35999001f48b91c8ec1 (patch)
tree3eb9aef390fa255974f47d275d11bff9e069ed0e /target/linux/ar71xx/base-files
parente53e44a0ad4873645c7a22bf036ab2a5d538e029 (diff)
downloadupstream-0656bee36b157c19a248f35999001f48b91c8ec1.tar.gz
upstream-0656bee36b157c19a248f35999001f48b91c8ec1.tar.bz2
upstream-0656bee36b157c19a248f35999001f48b91c8ec1.zip
ar71xx: convert mikrotik routerboard support to UBI
Remove the wget2nand script, drop the need for manual installation, use sysupgrade instead. There are now two different NAND images, one for 64 MiB flashes, the other for >= 128 MiB Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'target/linux/ar71xx/base-files')
-rwxr-xr-xtarget/linux/ar71xx/base-files/lib/upgrade/platform.sh30
-rwxr-xr-xtarget/linux/ar71xx/base-files/sbin/wget2nand85
2 files changed, 30 insertions, 85 deletions
diff --git a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
index 6341a31791..82ed041d66 100755
--- a/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ar71xx/base-files/lib/upgrade/platform.sh
@@ -7,6 +7,7 @@
PART_NAME=firmware
RAMFS_COPY_DATA=/lib/ar71xx.sh
+[ -x /usr/sbin/nandwrite ] && RAMFS_COPY_BIN=/usr/sbin/nandwrite
CI_BLKSZ=65536
CI_LDADR=0x80060000
@@ -164,6 +165,15 @@ alfa_check_image() {
return 0
}
+platform_nand_board_name() {
+ local board=$(ar71xx_board_name)
+
+ case "$board" in
+ rb*) echo "routerboard";;
+ *) echo "$board";;
+ esac
+}
+
platform_check_image() {
local board=$(ar71xx_board_name)
local magic="$(get_magic_word "$1")"
@@ -443,6 +453,10 @@ platform_check_image() {
tew-673gru)
dir825b_check_image "$1" && return 0
;;
+ rb*)
+ nand_do_platform_check routerboard $1
+ return $?
+ ;;
c-60|\
nbg6716|\
r6100|\
@@ -570,6 +584,7 @@ platform_pre_upgrade() {
local board=$(ar71xx_board_name)
case "$board" in
+ rb*|\
c-60|\
nbg6716|\
r6100|\
@@ -584,6 +599,21 @@ platform_pre_upgrade() {
esac
}
+platform_nand_pre_upgrade() {
+ local board=$(ar71xx_board_name)
+
+ case "$board" in
+ rb*)
+ CI_KERNPART=none
+ local fw_mtd=$(find_mtd_part kernel)
+ fw_mtd="${fw_mtd/block/}"
+ [ -n "$fw_mtd" ] || return
+ mtd erase kernel
+ tar xf "$1" sysupgrade-routerboard/kernel -O | nandwrite -o "$fw_mtd" -
+ ;;
+ esac
+}
+
platform_do_upgrade() {
local board=$(ar71xx_board_name)
diff --git a/target/linux/ar71xx/base-files/sbin/wget2nand b/target/linux/ar71xx/base-files/sbin/wget2nand
deleted file mode 100755
index c80e21ccc7..0000000000
--- a/target/linux/ar71xx/base-files/sbin/wget2nand
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/bin/sh
-# wget2nand
-# This script can be used to download a TGZ file from your build system which
-# contains the files to be installed on the NAND flash on your RB1xx card.
-# The one parameter is the URL of the TGZ file to be downloaded.
-# Licence GPL V2
-# Author david.goodenough@linkchoose.co.uk
-# Based on cf2nand from RB532 support
-. /lib/functions.sh
-
-wget2nand_dir=/tmp/wget2nand
-mnt_kernel=$wget2nand_dir/mnt_kernel
-mnt_rootfs=$wget2nand_dir/mnt_rootfs
-src_rootfs=$wget2nand_dir/rootfs.tgz
-src_kernel=$wget2nand_dir/kernel
-
-[ -d "$wget2nand_dir" ] && {
- echo "$wget2nand_dir already exists"
- exit 1
-}
-
-# need to find the wget server from the command line
-url=$1
-[ -z "$url" ] && {
- echo "No URL specified for image TGZ"
- echo "Usage : $0 URL"
- exit 1
-}
-
-url_kernel=$url/lede-ar71xx-mikrotik-vmlinux-lzma.elf
-url_rootfs=$url/lede-ar71xx-mikrotik-defaultnowifi-rootfs.tar.gz
-
-mtd_kernel="$(find_mtd_part 'kernel')"
-mtd_rootfs="$(find_mtd_part 'rootfs')"
-[ -z "$mtd_kernel" -o -z "$mtd_rootfs" ] && {
- echo "Cannot find NAND Flash partitions"
- exit 1
-}
-
-mkdir "$wget2nand_dir"
-wget $url_kernel -O "$src_kernel" || {
- echo "Unable to download $url_kernel"
- exit 1
-}
-
-wget $url_rootfs -O "$src_rootfs" || {
- echo "Unable to download $url_rootfs"
- exit 1
-}
-
-echo "Erasing filesystem..."
-mtd erase kernel 2>/dev/null >/dev/null
-mtd erase rootfs 2>/dev/null >/dev/null
-
-echo "Mounting $mtd_rootfs as new root and $mtd_kernel as kernel partition"
-
-mkdir "$mnt_kernel"
-mkdir "$mnt_rootfs"
-mount -t yaffs2 "$mtd_kernel" "$mnt_kernel"
-mount -t yaffs2 "$mtd_rootfs" "$mnt_rootfs"
-
-echo "Copying kernel..."
-cp $src_kernel $mnt_kernel/kernel || {
- echo "Error occured while copying the kernel"
- exit 1
-}
-chmod +x $mnt_kernel/kernel
-
-echo "Preparing filesystem..."
-( cd "$mnt_rootfs"; tar xvz -f "$src_rootfs" )
-
-# make sure everything is written before we unmount the partitions
-echo "chmod ugo+x /" > $mnt_rootfs/etc/uci-defaults/set_root_permission
-sync
-ls $mnt_kernel >/dev/null
-ls $mnt_rootfs >/dev/null
-
-echo "Cleaning up..."
-# unmount the partitions and remove the directories into which they were mounted
-umount $mnt_kernel
-umount $mnt_rootfs
-rm -rf $wget2nand_dir
-
-# all done
-echo "Image written, you can now reboot. Remember to change the boot source to Boot from Nand"