aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ar71xx')
-rwxr-xr-xtarget/linux/ar71xx/base-files/lib/upgrade/platform.sh30
-rwxr-xr-xtarget/linux/ar71xx/base-files/sbin/wget2nand85
-rw-r--r--target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c2
-rw-r--r--target/linux/ar71xx/files/arch/mips/ath79/mach-rb922.c2
-rw-r--r--target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c2
-rw-r--r--target/linux/ar71xx/files/arch/mips/ath79/mach-rbsxtlite.c2
-rw-r--r--target/linux/ar71xx/files/drivers/mtd/nand/rb4xx_nand.c2
-rw-r--r--target/linux/ar71xx/files/drivers/mtd/nand/rb750_nand.c2
-rw-r--r--target/linux/ar71xx/files/drivers/mtd/nand/rb91x_nand.c2
-rw-r--r--target/linux/ar71xx/image/Makefile3
-rw-r--r--target/linux/ar71xx/image/mikrotik.mk22
-rw-r--r--target/linux/ar71xx/mikrotik/config-default38
-rw-r--r--target/linux/ar71xx/mikrotik/target.mk2
13 files changed, 80 insertions, 114 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"
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c
index afd56085c7..0db359c9a1 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb2011.c
@@ -94,7 +94,7 @@ static struct mtd_partition rb2011_nand_partitions[] = {
.size = (4 * 1024 * 1024) - (256 * 1024),
},
{
- .name = "rootfs",
+ .name = "ubi",
.offset = MTDPART_OFS_NXTBLK,
.size = MTDPART_SIZ_FULL,
},
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb922.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb922.c
index c88c522b80..0c5373c365 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb922.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb922.c
@@ -167,7 +167,7 @@ static struct mtd_partition rb922gs_nand_partitions[] = {
.size = (4 * 1024 * 1024) - (256 * 1024),
},
{
- .name = "rootfs",
+ .name = "ubi",
.offset = MTDPART_OFS_NXTBLK,
.size = MTDPART_SIZ_FULL,
},
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c
index c2261ab9f1..05e15e77e1 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rb95x.c
@@ -53,7 +53,7 @@ static struct mtd_partition rb95x_nand_partitions[] = {
.size = (4 * 1024 * 1024) - (256 * 1024),
},
{
- .name = "rootfs",
+ .name = "ubi",
.offset = MTDPART_OFS_NXTBLK,
.size = MTDPART_SIZ_FULL,
},
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbsxtlite.c b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbsxtlite.c
index 94e0b4483e..129195dde6 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-rbsxtlite.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-rbsxtlite.c
@@ -69,7 +69,7 @@ static struct mtd_partition rbsxtlite_nand_partitions[] = {
.size = (4 * 1024 * 1024) - (256 * 1024),
},
{
- .name = "rootfs",
+ .name = "ubi",
.offset = MTDPART_OFS_NXTBLK,
.size = MTDPART_SIZ_FULL,
},
diff --git a/target/linux/ar71xx/files/drivers/mtd/nand/rb4xx_nand.c b/target/linux/ar71xx/files/drivers/mtd/nand/rb4xx_nand.c
index f2b430ec4b..96ec5dd1e5 100644
--- a/target/linux/ar71xx/files/drivers/mtd/nand/rb4xx_nand.c
+++ b/target/linux/ar71xx/files/drivers/mtd/nand/rb4xx_nand.c
@@ -65,7 +65,7 @@ static struct mtd_partition rb4xx_nand_partitions[] = {
.size = (4 * 1024 * 1024) - (256 * 1024),
},
{
- .name = "rootfs",
+ .name = "ubi",
.offset = MTDPART_OFS_NXTBLK,
.size = MTDPART_SIZ_FULL,
},
diff --git a/target/linux/ar71xx/files/drivers/mtd/nand/rb750_nand.c b/target/linux/ar71xx/files/drivers/mtd/nand/rb750_nand.c
index a9b287be10..0604c5a235 100644
--- a/target/linux/ar71xx/files/drivers/mtd/nand/rb750_nand.c
+++ b/target/linux/ar71xx/files/drivers/mtd/nand/rb750_nand.c
@@ -71,7 +71,7 @@ static struct mtd_partition rb750_nand_partitions[] = {
.offset = (256 * 1024),
.size = (4 * 1024 * 1024) - (256 * 1024),
}, {
- .name = "rootfs",
+ .name = "ubi",
.offset = MTDPART_OFS_NXTBLK,
.size = MTDPART_SIZ_FULL,
},
diff --git a/target/linux/ar71xx/files/drivers/mtd/nand/rb91x_nand.c b/target/linux/ar71xx/files/drivers/mtd/nand/rb91x_nand.c
index bfc5d4dca0..1308e18ba6 100644
--- a/target/linux/ar71xx/files/drivers/mtd/nand/rb91x_nand.c
+++ b/target/linux/ar71xx/files/drivers/mtd/nand/rb91x_nand.c
@@ -78,7 +78,7 @@ static struct mtd_partition rb91x_nand_partitions[] = {
.offset = (256 * 1024),
.size = (4 * 1024 * 1024) - (256 * 1024),
}, {
- .name = "rootfs",
+ .name = "ubi",
.offset = MTDPART_OFS_NXTBLK,
.size = MTDPART_SIZ_FULL,
},
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index b9c3fc350f..8eac5fc997 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -21,6 +21,9 @@ endif
ifeq ($(SUBTARGET),nand)
include ./nand.mk
endif
+ifeq ($(SUBTARGET),mikrotik)
+include ./mikrotik.mk
+endif
include ./legacy.mk
define Build/netgear-squashfs
diff --git a/target/linux/ar71xx/image/mikrotik.mk b/target/linux/ar71xx/image/mikrotik.mk
new file mode 100644
index 0000000000..000253b622
--- /dev/null
+++ b/target/linux/ar71xx/image/mikrotik.mk
@@ -0,0 +1,22 @@
+define Device/mikrotik
+ PROFILES := Default
+ BOARD_NAME := routerboard
+ KERNEL_INITRAMFS :=
+ KERNEL_NAME := loader-generic.elf
+ KERNEL := kernel-bin | kernel2minor -s 2048 -e -c
+ FILESYSTEMS := squashfs
+ IMAGES := sysupgrade.bin
+ IMAGE/sysupgrade.bin := sysupgrade-tar
+endef
+
+define Device/nand-64m
+$(Device/mikrotik)
+ KERNEL := kernel-bin | kernel2minor -s 512 -e -c
+endef
+
+define Device/nand-large
+$(Device/mikrotik)
+ KERNEL := kernel-bin | kernel2minor -s 2048 -e -c
+endef
+
+TARGET_DEVICES += nand-64m nand-large
diff --git a/target/linux/ar71xx/mikrotik/config-default b/target/linux/ar71xx/mikrotik/config-default
index 3e7cfd5f27..328e17632b 100644
--- a/target/linux/ar71xx/mikrotik/config-default
+++ b/target/linux/ar71xx/mikrotik/config-default
@@ -100,8 +100,8 @@ CONFIG_ATH79_MACH_RBSXTLITE=y
# CONFIG_ATH79_MACH_TL_WR841N_V1 is not set
# CONFIG_ATH79_MACH_TL_WR841N_V8 is not set
# CONFIG_ATH79_MACH_TL_WR841N_V9 is not set
-# CONFIG_ATH79_MACH_TL_WR941ND is not set
# CONFIG_ATH79_MACH_TL_WR940N_V4 is not set
+# CONFIG_ATH79_MACH_TL_WR941ND is not set
# CONFIG_ATH79_MACH_TUBE2H is not set
# CONFIG_ATH79_MACH_UBNT is not set
# CONFIG_ATH79_MACH_UBNT_UNIFIAC is not set
@@ -130,18 +130,18 @@ CONFIG_ATH79_MACH_RBSXTLITE=y
# CONFIG_ATH79_MACH_WZR_HP_G300NH2 is not set
# CONFIG_ATH79_MACH_WZR_HP_G450H is not set
# CONFIG_ATH79_MACH_ZCN_1523H is not set
-# CONFIG_ATH79_NVRAM is not set
CONFIG_ATH79_ROUTERBOOT=y
-CONFIG_CMDLINE="rootfstype=yaffs noinitrd"
+CONFIG_CMDLINE="rootfstype=squashfs noinitrd"
+CONFIG_CRC16=y
+CONFIG_CRYPTO_DEFLATE=y
CONFIG_GPIO_74X164=y
CONFIG_GPIO_LATCH=y
# CONFIG_JFFS2_FS is not set
CONFIG_LEDS_RB750=y
CONFIG_LZO_DECOMPRESS=y
-CONFIG_MDIO_BITBANG=y
-CONFIG_MDIO_GPIO=y
# CONFIG_MTD_CFI is not set
CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CYBERTAN_PARTS is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MYLOADER_PARTS is not set
@@ -154,22 +154,18 @@ CONFIG_MTD_NAND_RB91X=y
# CONFIG_MTD_REDBOOT_PARTS is not set
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
# CONFIG_MTD_TPLINK_PARTS is not set
-# CONFIG_OVERLAY_FS is not set
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_BEB_LIMIT=20
+CONFIG_MTD_UBI_BLOCK=y
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
CONFIG_RLE_DECOMPRESS=y
-# CONFIG_SOC_AR913X is not set
-# CONFIG_SOC_AR933X is not set
-# CONFIG_SOC_QCA953X is not set
CONFIG_SPI_RB4XX=y
CONFIG_SPI_RB4XX_CPLD=y
-# CONFIG_SQUASHFS is not set
-CONFIG_YAFFS_9BYTE_TAGS=y
-CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED=y
-CONFIG_YAFFS_AUTO_YAFFS2=y
-# CONFIG_YAFFS_DISABLE_BACKGROUND is not set
-# CONFIG_YAFFS_DISABLE_BLOCK_REFRESHING is not set
-# CONFIG_YAFFS_DISABLE_TAGS_ECC is not set
-# CONFIG_YAFFS_EMPTY_LOST_AND_FOUND is not set
-CONFIG_YAFFS_FS=y
-CONFIG_YAFFS_XATTR=y
-CONFIG_YAFFS_YAFFS1=y
-CONFIG_YAFFS_YAFFS2=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+# CONFIG_UBIFS_FS_LZO is not set
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
diff --git a/target/linux/ar71xx/mikrotik/target.mk b/target/linux/ar71xx/mikrotik/target.mk
index cb2447aee8..90ef51e41b 100644
--- a/target/linux/ar71xx/mikrotik/target.mk
+++ b/target/linux/ar71xx/mikrotik/target.mk
@@ -1,5 +1,5 @@
BOARDNAME:=Mikrotik devices with NAND/NOR flash
-FEATURES += targz ramdisk minor
+FEATURES += squashfs ramdisk minor nand
define Target/Description
Build firmware images for Atheros AR71xx/AR913x based Mikrotik boards.