mirror of https://github.com/hak5/openwrt.git
ath79: add AVM FRITZ!WLAN Repeater 300E
No known issues, everything works fine. Signed-off-by: Mathias Kresin <dev@kresin.me>openwrt-19.07
parent
bc04cf780e
commit
75ed56a08a
|
@ -5,8 +5,19 @@
|
||||||
board_config_update
|
board_config_update
|
||||||
|
|
||||||
board=$(board_name)
|
board=$(board_name)
|
||||||
|
boardname="${board##*,}"
|
||||||
|
|
||||||
case "$board" in
|
case "$board" in
|
||||||
|
"avm,fritz300e")
|
||||||
|
ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth0"
|
||||||
|
ucidef_set_led_wlan "wlan" "WLAN" "$boardname:green:wlan" "phy0tpt"
|
||||||
|
ucidef_set_rssimon "wlan0" "200000" "1"
|
||||||
|
ucidef_set_led_rssi "rssilow" "RSSILOW" "$boardname:green:rssi0" "wlan0" "1" "100"
|
||||||
|
ucidef_set_led_rssi "rssimediumlow" "RSSIMEDIUMLOW" "$boardname:green:rssi1" "wlan0" "20" "100"
|
||||||
|
ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "$boardname:green:rssi2" "wlan0" "40" "100"
|
||||||
|
ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "$boardname:green:rssi3" "wlan0" "60" "100"
|
||||||
|
ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "$boardname:green:rssi4" "wlan0" "80" "100"
|
||||||
|
;;
|
||||||
"glinet,ar150")
|
"glinet,ar150")
|
||||||
ucidef_set_led_wlan "wlan" "WLAN" "gl-ar150:orange:wlan" "phy0tpt"
|
ucidef_set_led_wlan "wlan" "WLAN" "gl-ar150:orange:wlan" "phy0tpt"
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -8,6 +8,7 @@ ath79_setup_interfaces()
|
||||||
local board="$1"
|
local board="$1"
|
||||||
|
|
||||||
case "$board" in
|
case "$board" in
|
||||||
|
"avm,fritz300e"|\
|
||||||
"ubnt,unifi")
|
"ubnt,unifi")
|
||||||
ucidef_set_interface_lan "eth0"
|
ucidef_set_interface_lan "eth0"
|
||||||
;;
|
;;
|
||||||
|
@ -36,9 +37,23 @@ ath79_setup_interfaces()
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ath79_setup_macs()
|
||||||
|
{
|
||||||
|
local board="$1"
|
||||||
|
|
||||||
|
case "$board" in
|
||||||
|
avm,fritz300e)
|
||||||
|
lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
|
||||||
|
}
|
||||||
|
|
||||||
board_config_update
|
board_config_update
|
||||||
board=$(board_name)
|
board=$(board_name)
|
||||||
ath79_setup_interfaces $board
|
ath79_setup_interfaces $board
|
||||||
|
ath79_setup_macs $board
|
||||||
board_config_flush
|
board_config_flush
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -4,8 +4,12 @@
|
||||||
|
|
||||||
get_status_led() {
|
get_status_led() {
|
||||||
local board=$(board_name)
|
local board=$(board_name)
|
||||||
|
local boardname="${board##*,}"
|
||||||
|
|
||||||
case $board in
|
case $board in
|
||||||
|
"avm,fritz300e")
|
||||||
|
status_led="${boardname}:green:power"
|
||||||
|
;;
|
||||||
"glinet,ar150")
|
"glinet,ar150")
|
||||||
status_led="gl-ar150:orange:wlan"
|
status_led="gl-ar150:orange:wlan"
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -24,11 +24,32 @@ ath9k_eeprom_extract() {
|
||||||
ath9k_eeprom_die "failed to extract from $mtd"
|
ath9k_eeprom_die "failed to extract from $mtd"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ath9k_eeprom_extract_reverse() {
|
||||||
|
local part=$1
|
||||||
|
local offset=$2
|
||||||
|
local count=$3
|
||||||
|
local mtd
|
||||||
|
local reversed
|
||||||
|
local caldata
|
||||||
|
|
||||||
|
mtd=$(find_mtd_chardev "$part")
|
||||||
|
reversed=$(hexdump -v -s $offset -n $count -e '/1 "%02x "' $mtd)
|
||||||
|
|
||||||
|
for byte in $reversed; do
|
||||||
|
caldata="\x${byte}${caldata}"
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "%b" "$caldata" > /lib/firmware/$FIRMWARE
|
||||||
|
}
|
||||||
|
|
||||||
board=$(board_name)
|
board=$(board_name)
|
||||||
|
|
||||||
case "$FIRMWARE" in
|
case "$FIRMWARE" in
|
||||||
"ath9k-eeprom-pci-0000:00:00.0.bin")
|
"ath9k-eeprom-pci-0000:00:00.0.bin")
|
||||||
case $board in
|
case $board in
|
||||||
|
"avm,fritz300e")
|
||||||
|
ath9k_eeprom_extract_reverse "urloader" 5441 1088
|
||||||
|
;;
|
||||||
"ubnt,unifi")
|
"ubnt,unifi")
|
||||||
ath9k_eeprom_extract "art" 4096 2048
|
ath9k_eeprom_extract "art" 4096 2048
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -0,0 +1,169 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
|
||||||
|
#include "ar7242.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
compatible = "avm,fritz300e", "qca,ar7242";
|
||||||
|
model = "AVM FRITZ!WLAN Repeater 300E";
|
||||||
|
|
||||||
|
memory@0 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x0 0x4000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio-keys {
|
||||||
|
compatible = "gpio-keys-polled";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
poll-interval = <20>;
|
||||||
|
|
||||||
|
wps {
|
||||||
|
label = "wps";
|
||||||
|
linux,code = <KEY_WPS_BUTTON>;
|
||||||
|
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
|
||||||
|
debounce-interval = <60>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
power {
|
||||||
|
label = "fritz300e:green:power";
|
||||||
|
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
|
||||||
|
default-state = "on";
|
||||||
|
};
|
||||||
|
|
||||||
|
lan {
|
||||||
|
label = "fritz300e:green:lan";
|
||||||
|
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
wlan {
|
||||||
|
label = "fritz300e:green:wlan";
|
||||||
|
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ath9k-leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
rssi0 {
|
||||||
|
label = "fritz300e:green:rssi0";
|
||||||
|
gpios = <&ath9k 10 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
rssi1 {
|
||||||
|
label = "fritz300e:green:rssi1";
|
||||||
|
gpios = <&ath9k 4 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
rssi2 {
|
||||||
|
label = "fritz300e:green:rssi2";
|
||||||
|
gpios = <&ath9k 6 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
rssi3 {
|
||||||
|
label = "fritz300e:green:rssi3";
|
||||||
|
gpios = <&ath9k 7 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
|
||||||
|
rssi4 {
|
||||||
|
label = "fritz300e:green:rssi4";
|
||||||
|
gpios = <&ath9k 5 GPIO_ACTIVE_LOW>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
eth-phy-reset {
|
||||||
|
compatible = "regulator-fixed";
|
||||||
|
|
||||||
|
regulator-name = "eth-phy-reset";
|
||||||
|
regulator-min-microvolt = <3300000>;
|
||||||
|
regulator-max-microvolt = <3300000>;
|
||||||
|
|
||||||
|
gpio = <&gpio 11 GPIO_ACTIVE_LOW>;
|
||||||
|
startup-delay-us = <300000>;
|
||||||
|
enable-active-high;
|
||||||
|
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi {
|
||||||
|
status = "okay";
|
||||||
|
num-cs = <1>;
|
||||||
|
|
||||||
|
flash@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "jedec,spi-nor";
|
||||||
|
reg = <0>;
|
||||||
|
spi-max-frequency = <25000000>;
|
||||||
|
|
||||||
|
partitions {
|
||||||
|
compatible = "fixed-partitions";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
reg = <0x0 0x20000>;
|
||||||
|
label = "urloader";
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@20000 {
|
||||||
|
reg = <0x20000 0xee0000>;
|
||||||
|
label = "firmware";
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@f00000 {
|
||||||
|
reg = <0xf00000 0x80000>;
|
||||||
|
label = "tffs (1)";
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@f80000 {
|
||||||
|
reg = <0xf80000 0x80000>;
|
||||||
|
label = "tffs (2)";
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pcie {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
ath9k: wifi@0000 {
|
||||||
|
reg = <0x0000 0 0 0 0>;
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-controller;
|
||||||
|
qca,no-eeprom;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&mdio0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
phy0: ethernet-phy@0 {
|
||||||
|
reg = <0>;
|
||||||
|
phy-mode = "rgmii";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ð0 {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
phy-mode = "rgmii";
|
||||||
|
phy-handle = <&phy0>;
|
||||||
|
|
||||||
|
pll-data = <0x16000000 0x00000101 0x00001313>;
|
||||||
|
};
|
|
@ -1,5 +1,7 @@
|
||||||
CONFIG_BLK_MQ_PCI=y
|
CONFIG_BLK_MQ_PCI=y
|
||||||
|
CONFIG_INTEL_XWAY_PHY=y
|
||||||
CONFIG_LEDS_RESET=y
|
CONFIG_LEDS_RESET=y
|
||||||
|
CONFIG_MTD_SPLIT_EVA_FW=y
|
||||||
CONFIG_OF_ADDRESS_PCI=y
|
CONFIG_OF_ADDRESS_PCI=y
|
||||||
CONFIG_OF_PCI=y
|
CONFIG_OF_PCI=y
|
||||||
CONFIG_OF_PCI_IRQ=y
|
CONFIG_OF_PCI_IRQ=y
|
||||||
|
@ -10,3 +12,5 @@ CONFIG_PCI_DISABLE_COMMON_QUIRKS=y
|
||||||
CONFIG_PCI_DOMAINS=y
|
CONFIG_PCI_DOMAINS=y
|
||||||
CONFIG_PHY_AR7100_USB=y
|
CONFIG_PHY_AR7100_USB=y
|
||||||
CONFIG_PHY_AR7200_USB=y
|
CONFIG_PHY_AR7200_USB=y
|
||||||
|
CONFIG_REGULATOR=y
|
||||||
|
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||||
|
|
|
@ -21,6 +21,20 @@ define Build/netgear-uImage
|
||||||
$(call Build/uImage,$(1) -M $(NETGEAR_KERNEL_MAGIC))
|
$(call Build/uImage,$(1) -M $(NETGEAR_KERNEL_MAGIC))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
define Device/avm_fritz300e
|
||||||
|
ATH_SOC := ar7242
|
||||||
|
DEVICE_TITLE := AVM FRITZ!WLAN Repeater 300E
|
||||||
|
KERNEL := kernel-bin | append-dtb | lzma | eva-image
|
||||||
|
KERNEL_INITRAMFS := $$(KERNEL)
|
||||||
|
IMAGE_SIZE := 15232k
|
||||||
|
IMAGE/sysupgrade.bin := append-kernel | pad-to 64k | \
|
||||||
|
append-squashfs-fakeroot-be | pad-to 256 | \
|
||||||
|
append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
|
||||||
|
DEVICE_PACKAGES := fritz-tffs rssileds -swconfig
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += avm_fritz300e
|
||||||
|
|
||||||
define Device/embeddedwireless_dorin
|
define Device/embeddedwireless_dorin
|
||||||
ATH_SOC := ar9331
|
ATH_SOC := ar9331
|
||||||
DEVICE_TITLE := Embedded Wireless Dorin
|
DEVICE_TITLE := Embedded Wireless Dorin
|
||||||
|
|
Loading…
Reference in New Issue