aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq807x/base-files
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ipq807x/base-files')
-rw-r--r--target/linux/ipq807x/base-files/etc/board.d/01_leds8
-rw-r--r--target/linux/ipq807x/base-files/etc/board.d/02_network3
-rw-r--r--target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata1
-rw-r--r--target/linux/ipq807x/base-files/lib/upgrade/mmc.sh83
-rw-r--r--target/linux/ipq807x/base-files/lib/upgrade/platform.sh5
5 files changed, 100 insertions, 0 deletions
diff --git a/target/linux/ipq807x/base-files/etc/board.d/01_leds b/target/linux/ipq807x/base-files/etc/board.d/01_leds
index a13ddcbb08..f0a2bdd7bb 100644
--- a/target/linux/ipq807x/base-files/etc/board.d/01_leds
+++ b/target/linux/ipq807x/base-files/etc/board.d/01_leds
@@ -10,6 +10,14 @@ redmi,ax6|\
xiaomi,ax3600)
ucidef_set_led_netdev "wan" "WAN" "blue:network" "wan"
;;
+qnap,301w)
+ ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "lan1"
+ ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "lan2"
+ ucidef_set_led_netdev "lan3" "LAN3" "green:lan3" "lan3"
+ ucidef_set_led_netdev "lan4" "LAN4" "green:lan4" "lan4"
+ ucidef_set_led_netdev "10G_1" "10G_1" "green:10g_1" "10g-1"
+ ucidef_set_led_netdev "10G_2" "10G_2" "green:10g_2" "10g-2"
+ ;;
esac
board_config_flush
diff --git a/target/linux/ipq807x/base-files/etc/board.d/02_network b/target/linux/ipq807x/base-files/etc/board.d/02_network
index e3f4d4f576..a6ff418a19 100644
--- a/target/linux/ipq807x/base-files/etc/board.d/02_network
+++ b/target/linux/ipq807x/base-files/etc/board.d/02_network
@@ -14,6 +14,9 @@ ipq807x_setup_interfaces()
edimax,cax1800)
ucidef_set_interfaces_lan_wan "lan"
;;
+ qnap,301w)
+ ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 10g-2" "10g-1"
+ ;;
redmi,ax6|\
xiaomi,ax3600)
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
index 7f919bafc5..fd431d07da 100644
--- a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
+++ b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
@@ -10,6 +10,7 @@ case "$FIRMWARE" in
"ath11k/IPQ8074/hw2.0/cal-ahb-c000000.wifi.bin")
case "$board" in
edimax,cax1800|\
+ qnap,301w|\
redmi,ax6|\
xiaomi,ax3600)
caldata_extract "0:art" 0x1000 0x20000
diff --git a/target/linux/ipq807x/base-files/lib/upgrade/mmc.sh b/target/linux/ipq807x/base-files/lib/upgrade/mmc.sh
new file mode 100644
index 0000000000..dac9ddd568
--- /dev/null
+++ b/target/linux/ipq807x/base-files/lib/upgrade/mmc.sh
@@ -0,0 +1,83 @@
+#
+# Copyright (C) 2016 lede-project.org
+#
+
+# this can be used as a generic mmc upgrade script
+# just add a device entry in platform.sh,
+# define "kernelname" and "rootfsname" and call mmc_do_upgrade
+# after the kernel and rootfs flash a loopdev (as overlay) is
+# setup on top of the rootfs partition
+# for the proper function a padded rootfs image is needed, basically
+# append "pad-to 64k" to the image definition
+# this is based on the ipq806x zyxel.sh mmc upgrade
+
+. /lib/functions.sh
+
+mmc_do_upgrade() {
+ local tar_file="$1"
+ local rootfs=
+ local kernel=
+
+ [ -z "$kernel" ] && kernel=$(find_mmc_part ${kernelname})
+ [ -z "$rootfs" ] && rootfs=$(find_mmc_part ${rootfsname})
+
+ [ -z "$kernel" ] && echo "Upgrade failed: kernel partition not found! Rebooting..." && reboot -f
+ [ -z "$rootfs" ] && echo "Upgrade failed: rootfs partition not found! Rebooting..." && reboot -f
+
+ mmc_do_flash $tar_file $kernel $rootfs
+
+ return 0
+}
+
+mmc_do_flash() {
+ local tar_file=$1
+ local kernel=$2
+ local rootfs=$3
+
+ # keep sure its unbound
+ losetup --detach-all || {
+ echo Failed to detach all loop devices. Skip this try.
+ reboot -f
+ }
+
+ # use the first found directory in the tar archive
+ local board_dir=$(tar tf $tar_file | grep -m 1 '^sysupgrade-.*/$')
+ board_dir=${board_dir%/}
+
+ echo "flashing kernel to $kernel"
+ tar xf $tar_file ${board_dir}/kernel -O >$kernel
+
+ echo "flashing rootfs to ${rootfs}"
+ tar xf $tar_file ${board_dir}/root -O >"${rootfs}"
+
+ # a padded rootfs is needed for overlay fs creation
+ local offset=$(tar xf $tar_file ${board_dir}/root -O | wc -c)
+ [ $offset -lt 65536 ] && {
+ echo Wrong size for rootfs: $offset
+ sleep 10
+ reboot -f
+ }
+
+ # Mount loop for rootfs_data
+ local loopdev="$(losetup -f)"
+ losetup -o $offset $loopdev $rootfs || {
+ echo "Failed to mount looped rootfs_data."
+ sleep 10
+ reboot -f
+ }
+
+ echo "Format new rootfs_data at position ${offset}."
+ mkfs.ext4 -F -L rootfs_data $loopdev
+ mkdir /tmp/new_root
+ mount -t ext4 $loopdev /tmp/new_root && {
+ echo "Saving config to rootfs_data at position ${offset}."
+ cp -v "$UPGRADE_BACKUP" "/tmp/new_root/$BACKUP_FILE"
+ umount /tmp/new_root
+ }
+
+ # Cleanup
+ losetup -d $loopdev >/dev/null 2>&1
+ sync
+ umount -a
+ reboot -f
+}
diff --git a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
index d6e5d04a31..9e8f4796cf 100644
--- a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh
@@ -45,6 +45,11 @@ platform_do_upgrade() {
edimax,cax1800)
nand_do_upgrade "$1"
;;
+ qnap,301w)
+ kernelname="0:HLOS"
+ rootfsname="rootfs"
+ mmc_do_upgrade "$1"
+ ;;
redmi,ax6|\
xiaomi,ax3600)
# Make sure that UART is enabled