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