aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mpc85xx/base-files/lib
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mpc85xx/base-files/lib')
-rwxr-xr-xtarget/linux/mpc85xx/base-files/lib/mpc85xx.sh3
-rw-r--r--target/linux/mpc85xx/base-files/lib/preinit/05_set_iface_mac_mcp85xx17
-rwxr-xr-xtarget/linux/mpc85xx/base-files/lib/upgrade/platform.sh27
3 files changed, 47 insertions, 0 deletions
diff --git a/target/linux/mpc85xx/base-files/lib/mpc85xx.sh b/target/linux/mpc85xx/base-files/lib/mpc85xx.sh
index 1a2a671e28..065589f18f 100755
--- a/target/linux/mpc85xx/base-files/lib/mpc85xx.sh
+++ b/target/linux/mpc85xx/base-files/lib/mpc85xx.sh
@@ -13,6 +13,9 @@ mpc85xx_board_detect() {
model=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /model/ {print $2}' /proc/cpuinfo)
case "$model" in
+ *"HiveAP-330")
+ name="hiveap-330"
+ ;;
*"TL-WDR4900 v1")
name="tl-wdr4900-v1"
;;
diff --git a/target/linux/mpc85xx/base-files/lib/preinit/05_set_iface_mac_mcp85xx b/target/linux/mpc85xx/base-files/lib/preinit/05_set_iface_mac_mcp85xx
new file mode 100644
index 0000000000..cecaee86b0
--- /dev/null
+++ b/target/linux/mpc85xx/base-files/lib/preinit/05_set_iface_mac_mcp85xx
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+. /lib/functions.sh
+. /lib/functions/system.sh
+
+preinit_set_mac_address() {
+ case $(board_name) in
+ hiveap-330)
+ mac_wan=$(mtd_get_mac_binary hw-info 0)
+ [ -n "$mac_wan" ] && ifconfig eth0 hw ether "$mac_wan"
+ mac_lan=$(macaddr_add $(mtd_get_mac_binary hw-info 0) +1)
+ [ -n "$mac_lan" ] && ifconfig eth1 hw ether "$mac_lan"
+ ;;
+ esac
+}
+
+boot_hook_add preinit_main preinit_set_mac_address
diff --git a/target/linux/mpc85xx/base-files/lib/upgrade/platform.sh b/target/linux/mpc85xx/base-files/lib/upgrade/platform.sh
index 65b3674769..9e3a3d661a 100755
--- a/target/linux/mpc85xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mpc85xx/base-files/lib/upgrade/platform.sh
@@ -4,6 +4,10 @@
PART_NAME=firmware
+get_magic_long_at() {
+ (get_image "$1" | dd bs=4 count=1 skip="$2" | hexdump -v -n 4 -e '1/1 "%02x"') 2>/dev/null
+}
+
tplink_get_hwid() {
local part
@@ -28,6 +32,29 @@ platform_check_image() {
[ "$#" -gt 1 ] && return 1
case $board in
+ hiveap-330)
+ local init_magic=$(get_magic_long_at "$1" "65536")
+ local root_magic=$(get_magic_long_at "$1" "131072")
+ local kernel_magic=$(get_magic_long_at "$1" "10551296")
+
+ [ "$magic" != "d00dfeed" ] && {
+ echo "Invalid dtb image type."
+ return 1
+ }
+ [ "$init_magic" != "27051956" ] && {
+ echo "Invalid initramfs image type."
+ return 1
+ }
+ [ "$root_magic" != "68737173" ] && {
+ echo "Invalid rootfs image type."
+ return 1
+ }
+ [ "$kernel_magic" != "27051956" ] && {
+ echo "Invalid kernel image type."
+ return 1
+ }
+ return 0
+ ;;
tl-wdr4900-v1)
[ "$magic" != "01000000" ] && {
echo "Invalid image type."