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 <chrisrblake93@gmail.com>v19.07.3_mercusys_ac12_duma
parent
8cd6686ef8
commit
f2b7d9dc1c
@ -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
|
@ -0,0 +1,227 @@
|
||||
/*
|
||||
* Aerohive HiveAP-330 Device Tree Source
|
||||
*
|
||||
* Copyright (C) 2017 Chris Blake <chrisrblake93@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
/include/ "fsl/p1020si-pre.dtsi"
|
||||
/ {
|
||||
model = "Aerohive HiveAP-330";
|
||||
compatible = "aerohive,hiveap-330";
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,9600";
|
||||
bootargs-override = "console=ttyS0,9600 noinitrd";
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
board_lbc: lbc: localbus@ffe05000 {
|
||||
reg = <0 0xffe05000 0 0x1000>;
|
||||
ranges = <0x0 0x0 0x0 0xec000000 0x4000000>;
|
||||
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x4000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
partition@0 {
|
||||
reg = <0x0 0x40000>;
|
||||
label = "dtb";
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
reg = <0x40000 0x40000>;
|
||||
label = "initramfs";
|
||||
};
|
||||
|
||||
partition@80000 {
|
||||
reg = <0x80000 0x27c0000>;
|
||||
label = "rootfs";
|
||||
};
|
||||
|
||||
partition@2840000 {
|
||||
reg = <0x2840000 0x800000>;
|
||||
label = "kernel";
|
||||
};
|
||||
|
||||
partition@3040000 {
|
||||
reg = <0x3040000 0xec0000>;
|
||||
label = "stock-jffs2";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@3f00000 {
|
||||
reg = <0x3f00000 0x20000>;
|
||||
label = "hw-info";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@3f20000 {
|
||||
reg = <0x3f20000 0x20000>;
|
||||
label = "boot-info";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@3f40000 {
|
||||
reg = <0x3f40000 0x20000>;
|
||||
label = "boot-info-backup";
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@3f60000 {
|
||||
reg = <0x3f60000 0x20000>;
|
||||
label = "u-boot-env";
|
||||
};
|
||||
|
||||
partition@3f80000 {
|
||||
reg = <0x3f80000 0x80000>;
|
||||
label = "u-boot";
|
||||
read-only;
|
||||
};
|
||||
|
||||
firmware@0 {
|
||||
reg = <0x0 0x3040000>;
|
||||
label = "firmware";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
board_soc: soc: soc@ffe00000 {
|
||||
ranges = <0x0 0x0 0xffe00000 0x100000>;
|
||||
|
||||
i2c@3100 {
|
||||
tpm@29 {
|
||||
compatible = "atmel,at97sc3204t";
|
||||
reg = <0x29>;
|
||||
};
|
||||
|
||||
lp5521@32 {
|
||||
compatible = "national,lp5521";
|
||||
reg = <0x32>;
|
||||
clock-mode = /bits/ 8 <2>;
|
||||
chan0 {
|
||||
chan-name = "hiveap-330:red:tricolor0";
|
||||
led-cur = /bits/ 8 <0x2f>;
|
||||
max-cur = /bits/ 8 <0x5f>;
|
||||
};
|
||||
chan1 {
|
||||
chan-name = "hiveap-330:green:tricolor0";
|
||||
led-cur = /bits/ 8 <0x2f>;
|
||||
max-cur = /bits/ 8 <0x5f>;
|
||||
};
|
||||
chan2 {
|
||||
chan-name = "hiveap-330:blue:tricolor0";
|
||||
led-cur = /bits/ 8 <0x2f>;
|
||||
max-cur = /bits/ 8 <0x5f>;
|
||||
};
|
||||
};
|
||||
|
||||
/* Most likely SoC boot config */
|
||||
eeprom@51 {
|
||||
compatible = "eeprom";
|
||||
reg = <0x51>;
|
||||
};
|
||||
};
|
||||
|
||||
mdio@24000 {
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupts = <3 1 0 0>;
|
||||
reg = <0x1>;
|
||||
};
|
||||
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupts = <2 1 0 0>;
|
||||
reg = <0x2>;
|
||||
};
|
||||
};
|
||||
|
||||
mdio@25000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
mdio@26000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
enet0: ethernet@b0000 {
|
||||
status = "okay";
|
||||
phy-handle = <&phy0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
|
||||
};
|
||||
|
||||
enet1: ethernet@b1000 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
enet2: ethernet@b2000 {
|
||||
status = "okay";
|
||||
phy-handle = <&phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
gpio0: gpio-controller@fc00 {
|
||||
};
|
||||
|
||||
usb@22000 {
|
||||
phy_type = "ulpi";
|
||||
dr_mode = "host";
|
||||
};
|
||||
|
||||
usb@23000 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
pci0: pcie@ffe09000 {
|
||||
reg = <0x0 0xffe09000 0x0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xa0000000 0x0 0xa0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0x0 0xffc30000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@ffe0a000 {
|
||||
reg = <0x0 0xffe0a000 0x0 0x1000>;
|
||||
ranges = <0x2000000 0x0 0xc0000000 0x0 0xc0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0x0 0xffc20000 0x0 0x10000>;
|
||||
pcie@0 {
|
||||
ranges = <0x2000000 0x0 0xc0000000
|
||||
0x2000000 0x0 0xc0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
buttons {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "Reset button";
|
||||
gpios = <&gpio0 8 1>; /* active low */
|
||||
linux,code = <0x198>; /* KEY_RESTART */
|
||||
};
|
||||
};
|
||||
};
|
||||
/include/ "fsl/p1020si-post.dtsi"
|
@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Aerohive HiveAP-330 Board Setup
|
||||
*
|
||||
* Copyright (C) 2017 Chris Blake <chrisrblake93@gmail.com>
|
||||
*
|
||||
* Based on:
|
||||
* mpc85xx_rdb.c:
|
||||
* MPC85xx RDB Board Setup
|
||||
* Copyright 2013 Freescale Semiconductor Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
#include <linux/stddef.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/of_platform.h>
|
||||
|
||||
#include <asm/time.h>
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/pci-bridge.h>
|
||||
#include <mm/mmu_decl.h>
|
||||
#include <asm/prom.h>
|
||||
#include <asm/udbg.h>
|
||||
#include <asm/mpic.h>
|
||||
|
||||
#include <sysdev/fsl_soc.h>
|
||||
#include <sysdev/fsl_pci.h>
|
||||
#include "smp.h"
|
||||
|
||||
#include "mpc85xx.h"
|
||||
|
||||
void __init hiveap_330_pic_init(void)
|
||||
{
|
||||
struct mpic *mpic;
|
||||
|
||||
mpic = mpic_alloc(NULL, 0,
|
||||
MPIC_BIG_ENDIAN |
|
||||
MPIC_SINGLE_DEST_CPU,
|
||||
0, 256, " OpenPIC ");
|
||||
|
||||
BUG_ON(mpic == NULL);
|
||||
mpic_init(mpic);
|
||||
}
|
||||
|
||||
/*
|
||||
* Setup the architecture
|
||||
*/
|
||||
static void __init hiveap_330_setup_arch(void)
|
||||
{
|
||||
if (ppc_md.progress)
|
||||
ppc_md.progress("hiveap_330_setup_arch()", 0);
|
||||
|
||||
mpc85xx_smp_init();
|
||||
|
||||
fsl_pci_assign_primary();
|
||||
|
||||
printk(KERN_INFO "HiveAP-330 board from Aerohive\n");
|
||||
}
|
||||
|
||||
machine_arch_initcall(hiveap_330, mpc85xx_common_publish_devices);
|
||||
|
||||
/*
|
||||
* Called very early, device-tree isn't unflattened
|
||||
*/
|
||||
static int __init hiveap_330_probe(void)
|
||||
{
|
||||
if (of_machine_is_compatible("aerohive,hiveap-330"))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
define_machine(hiveap_330) {
|
||||
.name = "P1020 RDB",
|
||||
.probe = hiveap_330_probe,
|
||||
.setup_arch = hiveap_330_setup_arch,
|
||||
.init_IRQ = hiveap_330_pic_init,
|
||||
#ifdef CONFIG_PCI
|
||||
.pcibios_fixup_bus = fsl_pcibios_fixup_bus,
|
||||
.pcibios_fixup_phb = fsl_pcibios_fixup_phb,
|
||||
#endif
|
||||
.get_irq = mpic_get_irq,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
.progress = udbg_progress,
|
||||
};
|
@ -0,0 +1,16 @@
|
||||
#
|
||||
# Copyright (C) 2017 Chris Blake <chrisrblake93@gmail.com>
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
define Profile/hiveap-330
|
||||
NAME:=Aerohive HiveAP-330
|
||||
PACKAGES:=kmod-usb-storage kmod-ath9k wpad-mini kmod-tpm-i2c-atmel
|
||||
endef
|
||||
|
||||
define Profile/hiveap-330/Description
|
||||
Package set optimized for the Aerohive HiveAP-330.
|
||||
endef
|
||||
$(eval $(call Profile,hiveap-330))
|
@ -0,0 +1,30 @@
|
||||
--- a/arch/powerpc/platforms/85xx/Kconfig
|
||||
+++ b/arch/powerpc/platforms/85xx/Kconfig
|
||||
@@ -48,6 +48,17 @@ config BSC9132_QDS
|
||||
and dual StarCore SC3850 DSP cores.
|
||||
Manufacturer : Freescale Semiconductor, Inc
|
||||
|
||||
+config HIVEAP_330
|
||||
+ bool "Aerohive HiveAP-330"
|
||||
+ select DEFAULT_UIMAGE
|
||||
+ select ARCH_REQUIRE_GPIOLIB
|
||||
+ select GPIO_MPC8XXX
|
||||
+ help
|
||||
+ This option enables support for the Aerohive HiveAP-330 board.
|
||||
+
|
||||
+ This board is a Concurrent Dual-Band wireless access point with a
|
||||
+ Freescale P1020 SoC.
|
||||
+
|
||||
config MPC8540_ADS
|
||||
bool "Freescale MPC8540 ADS"
|
||||
select DEFAULT_UIMAGE
|
||||
--- a/arch/powerpc/platforms/85xx/Makefile
|
||||
+++ b/arch/powerpc/platforms/85xx/Makefile
|
||||
@@ -9,6 +9,7 @@ obj-y += common.o
|
||||
obj-$(CONFIG_BSC9131_RDB) += bsc913x_rdb.o
|
||||
obj-$(CONFIG_BSC9132_QDS) += bsc913x_qds.o
|
||||
obj-$(CONFIG_C293_PCIE) += c293pcie.o
|
||||
+obj-$(CONFIG_HIVEAP_330) += hiveap-330.o
|
||||
obj-$(CONFIG_MPC8540_ADS) += mpc85xx_ads.o
|
||||
obj-$(CONFIG_MPC8560_ADS) += mpc85xx_ads.o
|
||||
obj-$(CONFIG_MPC85xx_CDS) += mpc85xx_cds.o
|
Loading…
Reference in New Issue