aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mpc85xx/base-files
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mpc85xx/base-files')
-rwxr-xr-xtarget/linux/mpc85xx/base-files/etc/board.d/02_network3
-rw-r--r--target/linux/mpc85xx/base-files/etc/diag.sh13
-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
5 files changed, 58 insertions, 5 deletions
diff --git a/target/linux/mpc85xx/base-files/etc/board.d/02_network b/target/linux/mpc85xx/base-files/etc/board.d/02_network
index 511b56b1cc..1fedb7962e 100755
--- a/target/linux/mpc85xx/base-files/etc/board.d/02_network
+++ b/target/linux/mpc85xx/base-files/etc/board.d/02_network
@@ -10,6 +10,9 @@ board_config_update
board=$(board_name)
case "$board" in
+hiveap-330)
+ ucidef_set_interfaces_lan_wan "eth1" "eth0"
+ ;;
tl-wdr4900-v1)
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
diff --git a/target/linux/mpc85xx/base-files/etc/diag.sh b/target/linux/mpc85xx/base-files/etc/diag.sh
index b269427a51..7261795197 100644
--- a/target/linux/mpc85xx/base-files/etc/diag.sh
+++ b/target/linux/mpc85xx/base-files/etc/diag.sh
@@ -5,11 +5,14 @@
. /lib/functions/leds.sh
get_status_led() {
- case $(board_name) in
- tl-wdr4900-v1)
- status_led="tp-link:blue:system"
- ;;
- esac
+ case $(board_name) in
+ hiveap-330)
+ status_led="hiveap-330:green:tricolor0"
+ ;;
+ tl-wdr4900-v1)
+ status_led="tp-link:blue:system"
+ ;;
+esac
}
set_state() {
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."