aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79/mikrotik/base-files/lib
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ath79/mikrotik/base-files/lib')
-rw-r--r--target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh21
-rw-r--r--target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh35
2 files changed, 56 insertions, 0 deletions
diff --git a/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh b/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
new file mode 100644
index 0000000000..9c4016ee5d
--- /dev/null
+++ b/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
@@ -0,0 +1,21 @@
+# Copyright (C) 2019 Robert Marko <robimarko@gmail.com>
+# Copyright (C) 2019 Roger Pueyo Centelles <roger.pueyo@guifi.net>
+#
+# Helper function to extract MAC addresses and calibration data for MikroTik
+#
+
+mikrotik_caldata_extract() {
+ local part=$1
+ local offset=$(($2))
+ local count=$(($3))
+ local mtd
+ local erdfile="/lib/firmware/erd.bin"
+
+ mtd=$(find_mtd_chardev $part)
+ [ -n "$mtd" ] || caldata_die "no mtd device found for partition $part"
+
+ rbextract -e $mtd $erdfile
+
+ dd if=$erdfile of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
+ caldata_die "failed to extract calibration data from $mtd"
+}
diff --git a/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh b/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
new file mode 100644
index 0000000000..a568689536
--- /dev/null
+++ b/target/linux/ath79/mikrotik/base-files/lib/upgrade/platform.sh
@@ -0,0 +1,35 @@
+# Copyright (C) 2011 OpenWrt.org
+
+PART_NAME=firmware
+
+REQUIRE_IMAGE_METADATA=1
+platform_check_image() {
+ return 0
+}
+
+RAMFS_COPY_BIN='fw_printenv fw_setenv nandwrite'
+RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
+
+platform_do_upgrade_mikrotik_nand() {
+ 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" -
+
+ nand_do_upgrade "$1"
+}
+
+platform_do_upgrade() {
+ local board=$(board_name)
+
+ case "$board" in
+ mikrotik,routerboard-922uags-5hpacd)
+ platform_do_upgrade_mikrotik_nand "$1"
+ ;;
+ *)
+ default_do_upgrade "$1"
+ ;;
+ esac
+}