From f2b7d9dc1ca3d33f14961cf2885639f4f9e8965e Mon Sep 17 00:00:00 2001 From: Chris Blake Date: Sat, 30 Sep 2017 11:14:58 -0500 Subject: mpc85xx: Add Aerohive HiveAP-330 Access Point The following adds the Aerohive HiveAP-330 Access Point to LEDE under the mpc85xx/p1020 subtarget. Hardware: - SoC: Freescale P1020NSE2DFB - NAND: Intel JS28F512M29EWH 64MB - Memory: 2x ProMOS V59C1G01168QBJ3 128MB (Total of 256MB) - 2.4GHz WiFi: Atheros AR9390-AL1A - 5.0GHz WiFi: Atheros AR9390-AL1A - Eth1: Atheros AR8035-A PoE - Eth2: Atheros AR8035-A - TPM: Atmel AT97SC3204 - LED Driver: TI LP5521 Flashing: 1. Hook into UART (9600 baud) and enter U-Boot. You may need to enter a password of administrator or AhNf?d@ta06 if prompted. 2. Once in U-Boot, tftp boot the initramfs image: dhcp; tftpboot 0x1000000 192.168.1.101:lede- mpc85xx-p1020-hiveap-330-initramfs.zImage; tftpboot 0x6000000 192.168.1.101:lede-mpc85xx-p1020-hiveap-330.fdt; bootm 0x1000000 - 0x6000000; 3. Once booted, scp over the sysupgrade file and sysupgrade the device to flash LEDE to the NAND. sysupgrade /tmp/lede-mpc85xx-p1020-hiveap-330-sysupgrade.img Signed-off-by: Chris Blake --- .../mpc85xx/base-files/etc/board.d/02_network | 3 +++ target/linux/mpc85xx/base-files/etc/diag.sh | 13 +++++++---- target/linux/mpc85xx/base-files/lib/mpc85xx.sh | 3 +++ .../lib/preinit/05_set_iface_mac_mcp85xx | 17 ++++++++++++++ .../mpc85xx/base-files/lib/upgrade/platform.sh | 27 ++++++++++++++++++++++ 5 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 target/linux/mpc85xx/base-files/lib/preinit/05_set_iface_mac_mcp85xx (limited to 'target/linux/mpc85xx/base-files') 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." -- cgit v1.2.3