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