Specifications: SOC: Qualcomm IPQ4018 (DAKOTA) ARM Quad-Core RAM: 256 MB Winbond W632GU6KB12J FLASH: 16 MiB Macronix MX25L12805D ETH: Qualcomm QCA8072 WLAN1: Qualcomm Atheros QCA4018 2.4GHz 802.11b/g/n/ac 2x2 WLAN2: Qualcomm Atheros QCA4018 5GHz 802.11n/ac 1x1 (EX6100) 2x2 (EX6150) INPUT: Power, WPS, reset button AP / Range-extender toggle LED: Power, Router, Extender (dual), WPS, Left-/Right-arrow SERIAL: Header next to QCA8072 chip. VCC, TX, RX, GND (Square hole is VCC) WARNING: The serial port needs a TTL/RS-232 v3.3 level converter! The Serial setting is 115200-8-N-1. Tested and working: - Ethernet - 2.4 GHz WiFi (Correct MAC-address) - 5 GHz WiFi (Correct MAC-address) - Factory installation from WebIF - Factory installation from tftp - OpenWRT sysupgrade (Preserving and non-preserving) - LEDs - Buttons Not Working: - AP/Extender toggle-switch Untested: - Support on EX6100v2. They share the same GPL-Code and vendor-images. The 6100v2 seems to lack one 5GHz stream and differs in the 5GHz board-blob. I only own a EX6150v2, therefore i am only able to verify functionality on this device. Install via Web-Interface: Upload the factory image to the device to the Netgear Web-Interface. The device might asks you to confirm the update a second time due to detecting the OpenWRT firmware as older. The device will automatically reboot after the image is written to flash. Install via TFTP: Connect to the devices serial. Hit Enter-Key in bootloader to stop autobooting. Command "fw_recovery" will start a tftp server, waiting for a DNI image to be pushed. Assign your computer the IP-address 192.168.1.10/24. Push image with tftp -4 -v -m binary 192.168.1.1 -c put <OPENWRT_FACTORY> Device will erase factory-partition first, then writes the pushed image to flash and reboots. Parts of this commit are based on Thomas Hebb's work on the openwrt-devel mailinglist. See https://lists.openwrt.org/pipermail/openwrt-devel/2018-January/043418.html Signed-off-by: David Bauer <mail@david-bauer.net>master
parent
be6e28b516
commit
970f1914be
Binary file not shown.
@ -0,0 +1,33 @@ |
|||||||
|
/* Copyright (c) 2015, The Linux Foundation. All rights reserved. |
||||||
|
* Copyright (c) 2018, David Bauer <mail@david-bauer.net> |
||||||
|
* |
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any |
||||||
|
* purpose with or without fee is hereby granted, provided that the above |
||||||
|
* copyright notice and this permission notice appear in all copies. |
||||||
|
* |
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
||||||
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
||||||
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
||||||
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
||||||
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
||||||
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
||||||
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
#include "qcom-ipq4018-ex61x0v2.dtsi" |
||||||
|
#include <dt-bindings/gpio/gpio.h> |
||||||
|
#include <dt-bindings/input/input.h> |
||||||
|
|
||||||
|
/ { |
||||||
|
model = "Netgear EX6100v2"; |
||||||
|
compatible = "netgear,ex6100v2", "qcom,ipq4019"; |
||||||
|
}; |
||||||
|
|
||||||
|
&wifi0 { |
||||||
|
qcom,ath10k-calibration-variant = "Netgear-EX6100v2"; |
||||||
|
}; |
||||||
|
|
||||||
|
&wifi1 { |
||||||
|
qcom,ath10k-calibration-variant = "Netgear-EX6100v2"; |
||||||
|
}; |
@ -0,0 +1,33 @@ |
|||||||
|
/* Copyright (c) 2015, The Linux Foundation. All rights reserved. |
||||||
|
* Copyright (c) 2018, David Bauer <mail@david-bauer.net> |
||||||
|
* |
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any |
||||||
|
* purpose with or without fee is hereby granted, provided that the above |
||||||
|
* copyright notice and this permission notice appear in all copies. |
||||||
|
* |
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
||||||
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
||||||
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
||||||
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
||||||
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
||||||
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
||||||
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
#include "qcom-ipq4018-ex61x0v2.dtsi" |
||||||
|
#include <dt-bindings/gpio/gpio.h> |
||||||
|
#include <dt-bindings/input/input.h> |
||||||
|
|
||||||
|
/ { |
||||||
|
model = "Netgear EX6150v2"; |
||||||
|
compatible = "netgear,ex6150v2", "qcom,ipq4019"; |
||||||
|
}; |
||||||
|
|
||||||
|
&wifi0 { |
||||||
|
qcom,ath10k-calibration-variant = "Netgear-EX6150v2"; |
||||||
|
}; |
||||||
|
|
||||||
|
&wifi1 { |
||||||
|
qcom,ath10k-calibration-variant = "Netgear-EX6150v2"; |
||||||
|
}; |
@ -0,0 +1,322 @@ |
|||||||
|
/* Copyright (c) 2015, The Linux Foundation. All rights reserved. |
||||||
|
* Copyright (c) 2018, David Bauer <mail@david-bauer.net> |
||||||
|
* |
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any |
||||||
|
* purpose with or without fee is hereby granted, provided that the above |
||||||
|
* copyright notice and this permission notice appear in all copies. |
||||||
|
* |
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
||||||
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
||||||
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
||||||
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
||||||
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
||||||
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
||||||
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
#include "qcom-ipq4019.dtsi" |
||||||
|
#include "qcom-ipq4019-bus.dtsi" |
||||||
|
#include <dt-bindings/gpio/gpio.h> |
||||||
|
#include <dt-bindings/input/input.h> |
||||||
|
#include <dt-bindings/soc/qcom,tcsr.h> |
||||||
|
|
||||||
|
/ { |
||||||
|
model = "Netgear EX61X0v2"; |
||||||
|
compatible = "netgear,ex61x0v2", "qcom,ipq4019"; |
||||||
|
|
||||||
|
reserved-memory { |
||||||
|
#address-cells = <0x1>; |
||||||
|
#size-cells = <0x1>; |
||||||
|
ranges; |
||||||
|
|
||||||
|
smem@87e00000 { |
||||||
|
reg = <0x87e00000 0x080000>; |
||||||
|
no-map; |
||||||
|
}; |
||||||
|
|
||||||
|
tz@87e80000 { |
||||||
|
reg = <0x87e80000 0x180000>; |
||||||
|
no-map; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
soc { |
||||||
|
mdio@90000 { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
ess-psgmii@98000 { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
tcsr@1949000 { |
||||||
|
compatible = "qcom,tcsr"; |
||||||
|
reg = <0x1949000 0x100>; |
||||||
|
qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; |
||||||
|
}; |
||||||
|
|
||||||
|
ess_tcsr@1953000 { |
||||||
|
compatible = "qcom,tcsr"; |
||||||
|
reg = <0x1953000 0x1000>; |
||||||
|
qcom,ess-interface-select = <TCSR_ESS_PSGMII>; |
||||||
|
}; |
||||||
|
|
||||||
|
tcsr@1957000 { |
||||||
|
compatible = "qcom,tcsr"; |
||||||
|
reg = <0x1957000 0x100>; |
||||||
|
qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; |
||||||
|
}; |
||||||
|
|
||||||
|
serial@78af000 { |
||||||
|
pinctrl-0 = <&serial_pins>; |
||||||
|
pinctrl-names = "default"; |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
crypto@8e3a000 { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
watchdog@b017000 { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
ess-switch@c000000 { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
edma@c080000 { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
aliases { |
||||||
|
led-boot = &power_amber; |
||||||
|
led-failsafe = &power_amber; |
||||||
|
led-running = &power_green; |
||||||
|
led-upgrade = &power_amber; |
||||||
|
}; |
||||||
|
|
||||||
|
gpio-keys { |
||||||
|
compatible = "gpio-keys"; |
||||||
|
|
||||||
|
wps { |
||||||
|
label = "wps"; |
||||||
|
gpios = <&tlmm 0 GPIO_ACTIVE_LOW>; |
||||||
|
linux,code = <KEY_WPS_BUTTON>; |
||||||
|
}; |
||||||
|
|
||||||
|
reset { |
||||||
|
label = "reset"; |
||||||
|
gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; |
||||||
|
linux,code = <KEY_RESTART>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
led_spi { |
||||||
|
compatible = "spi-gpio"; |
||||||
|
#address-cells = <1>; |
||||||
|
ranges; |
||||||
|
|
||||||
|
gpio-sck = <&tlmm 5 GPIO_ACTIVE_HIGH>; |
||||||
|
gpio-mosi = <&tlmm 4 GPIO_ACTIVE_HIGH>; |
||||||
|
num-chipselects = <0>; |
||||||
|
|
||||||
|
led_gpio: led_gpio@0 { |
||||||
|
compatible = "fairchild,74hc595"; |
||||||
|
reg = <0>; |
||||||
|
gpio-controller; |
||||||
|
#gpio-cells = <2>; |
||||||
|
registers-number = <1>; |
||||||
|
spi-max-frequency = <1000000>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
gpio-leds { |
||||||
|
compatible = "gpio-leds"; |
||||||
|
|
||||||
|
power_amber: power_amber { |
||||||
|
label = "ex61x0v2:amber:power"; |
||||||
|
gpios = <&led_gpio 7 GPIO_ACTIVE_LOW>; |
||||||
|
}; |
||||||
|
|
||||||
|
power_green: power_green { |
||||||
|
label = "ex61x0v2:green:power"; |
||||||
|
gpios = <&led_gpio 6 GPIO_ACTIVE_LOW>; |
||||||
|
}; |
||||||
|
|
||||||
|
right { |
||||||
|
label = "ex61x0v2:blue:right"; |
||||||
|
gpios = <&led_gpio 5 GPIO_ACTIVE_LOW>; |
||||||
|
}; |
||||||
|
|
||||||
|
left { |
||||||
|
label = "ex61x0v2:blue:left"; |
||||||
|
gpios = <&led_gpio 4 GPIO_ACTIVE_LOW>; |
||||||
|
}; |
||||||
|
|
||||||
|
client_green { |
||||||
|
label = "ex61x0v2:green:client"; |
||||||
|
gpios = <&led_gpio 3 GPIO_ACTIVE_LOW>; |
||||||
|
}; |
||||||
|
|
||||||
|
client_red { |
||||||
|
label = "ex61x0v2:red:client"; |
||||||
|
gpios = <&led_gpio 2 GPIO_ACTIVE_LOW>; |
||||||
|
}; |
||||||
|
|
||||||
|
router_green { |
||||||
|
label = "ex61x0v2:green:router"; |
||||||
|
gpios = <&led_gpio 1 GPIO_ACTIVE_LOW>; |
||||||
|
}; |
||||||
|
|
||||||
|
router_red { |
||||||
|
label = "ex61x0v2:red:router"; |
||||||
|
gpios = <&led_gpio 0 GPIO_ACTIVE_LOW>; |
||||||
|
}; |
||||||
|
|
||||||
|
wps { |
||||||
|
label = "ex61x0v2:green:wps"; |
||||||
|
gpios = <&tlmm 1 GPIO_ACTIVE_LOW>; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
&tlmm { |
||||||
|
serial_pins: serial_pinmux { |
||||||
|
mux { |
||||||
|
pins = "gpio60", "gpio61"; |
||||||
|
function = "blsp_uart0"; |
||||||
|
bias-disable; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
spi_0_pins: spi_0_pinmux { |
||||||
|
pin { |
||||||
|
function = "blsp_spi0"; |
||||||
|
pins = "gpio55", "gpio56", "gpio57"; |
||||||
|
drive-strength = <12>; |
||||||
|
bias-disable; |
||||||
|
}; |
||||||
|
pin_cs { |
||||||
|
function = "gpio"; |
||||||
|
pins = "gpio54"; |
||||||
|
drive-strength = <2>; |
||||||
|
bias-disable; |
||||||
|
output-high; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
&spi_0 { |
||||||
|
pinctrl-0 = <&spi_0_pins>; |
||||||
|
pinctrl-names = "default"; |
||||||
|
status = "okay"; |
||||||
|
cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; |
||||||
|
|
||||||
|
mx25l12805d@0 { |
||||||
|
compatible = "jedec,spi-nor"; |
||||||
|
reg = <0>; |
||||||
|
spi-max-frequency = <24000000>; |
||||||
|
|
||||||
|
partitions { |
||||||
|
compatible = "fixed-partitions"; |
||||||
|
#address-cells = <1>; |
||||||
|
#size-cells = <1>; |
||||||
|
|
||||||
|
partition0@0 { |
||||||
|
label = "SBL1"; |
||||||
|
reg = <0x00000000 0x00040000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
|
||||||
|
partition1@40000 { |
||||||
|
label = "MIBIB"; |
||||||
|
reg = <0x00040000 0x00020000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
|
||||||
|
partition2@60000 { |
||||||
|
label = "QSEE"; |
||||||
|
reg = <0x00060000 0x00060000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
|
||||||
|
partition3@c0000 { |
||||||
|
label = "CDT"; |
||||||
|
reg = <0x000c0000 0x00010000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
|
||||||
|
partition4@d0000 { |
||||||
|
label = "DDRPARAMS"; |
||||||
|
reg = <0x000d0000 0x00010000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
|
||||||
|
partition5@E0000 { |
||||||
|
label = "APPSBLENV"; |
||||||
|
reg = <0x000e0000 0x00010000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
|
||||||
|
partition6@F0000 { |
||||||
|
label = "APPSBL"; |
||||||
|
reg = <0x000f0000 0x00080000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
|
||||||
|
partition7@170000 { |
||||||
|
label = "ART"; |
||||||
|
reg = <0x00170000 0x00010000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
|
||||||
|
partition8@180000 { |
||||||
|
label = "config"; |
||||||
|
reg = <0x00180000 0x00010000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
|
||||||
|
partition9@190000 { |
||||||
|
label = "pot"; |
||||||
|
reg = <0x00190000 0x00010000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
|
||||||
|
partition10@1a0000 { |
||||||
|
label = "dnidata"; |
||||||
|
reg = <0x001a0000 0x00010000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
|
||||||
|
partition11@1b0000 { |
||||||
|
label = "firmware"; |
||||||
|
reg = <0x001b0000 0x00e10000>; |
||||||
|
}; |
||||||
|
|
||||||
|
partition12@fc0000 { |
||||||
|
label = "language"; |
||||||
|
reg = <0x00fc0000 0x00040000>; |
||||||
|
read-only; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
||||||
|
}; |
||||||
|
|
||||||
|
&blsp_dma { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&cryptobam { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&wifi0 { |
||||||
|
status = "okay"; |
||||||
|
}; |
||||||
|
|
||||||
|
&wifi1 { |
||||||
|
status = "okay"; |
||||||
|
}; |
Loading…
Reference in new issue