diff options
Diffstat (limited to 'target/linux/mpc85xx/base-files')
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." |