forked from openwrt/openwrt
-
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ipq806x: add support for Linksys EA7500 V1
This patch adds support for the Linksys EA7500 V1 router. Specification: - CPU: Qualcomm IPQ8064 - RAM: 256MB - Flash: NAND 128MB - WiFi: QCA9982 an+ac + QCA9983 bgn - Ethernet: 5 GBE Ports (WAN+ 4xLAN) (QCA8337) - USB: 1x USB 3.0 1x USB2.0 - Serial console: RJ-45 115200 8n1 (1V8 Voltage level) - 2 Buttons - 1 LED Known issues: - Some devices won't flash via web gui Installation: - Newer stock images doesn't allow to install custom firmware. - Please downgrade software to 1.1.2 version. Official firmware: https://downloads.linksys.com/downloads/firmware/FW_EA7500_1.1.2.172843_prod.gpg.img - Do it two times to downgrade all stored images. - Apply factory image via web-gui. Serial + TFTP method: - downgrade to 1.1.2 two times - connect ehternet and serial cable - set ip address of tftp server to 192.168.1.254 - put openwrt factory image to tftp folder and rename it to macan.bin - stop device while booting in u-boot - run command: "run flashimg" - run command: "setenv boot_part 1" - run command "saveenv" - reset Back to stock: - Please use old non-gpg image like this 1.1.2: https://downloads.linksys.com/downloads/firmware/FW_EA7500_1.1.2.172843_prod.img - ssh to router and copy image to tmp - use sysupgrade -n -F Tested by github users: @jack338c and @grzesiczek1 Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> [removed i2c4_pins, mdio0_pins, nand_pins, rgmii2_pins from DTSI] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
- Loading branch information
Showing
9 changed files
with
375 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
302 changes: 302 additions & 0 deletions
302
target/linux/ipq806x/files-5.4/arch/arm/boot/dts/qcom-ipq8064-ea7500-v1.dts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,302 @@ | ||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||
#include "qcom-ipq8064-v2.0.dtsi" | ||
|
||
#include <dt-bindings/input/input.h> | ||
|
||
/ { | ||
model = "Linksys EA7500 V1 WiFi Router"; | ||
compatible = "linksys,ea7500-v1", "qcom,ipq8064"; | ||
|
||
memory@0 { | ||
reg = <0x42000000 0xe000000>; | ||
device_type = "memory"; | ||
}; | ||
|
||
reserved-memory { | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
ranges; | ||
rsvd@41200000 { | ||
reg = <0x41200000 0x300000>; | ||
no-map; | ||
}; | ||
}; | ||
|
||
aliases { | ||
serial0 = &gsbi4_serial; | ||
|
||
led-boot = &led_power; | ||
led-failsafe = &led_power; | ||
led-running = &led_power; | ||
led-upgrade = &led_power; | ||
}; | ||
|
||
chosen { | ||
bootargs = "console=ttyMSM0,115200n8"; | ||
stdout-path = "serial0:115200n8"; | ||
append-rootblock = "ubi.mtd="; /* append to bootargs adding the root deviceblock nbr from bootloader */ | ||
find-rootblock = "ubi.mtd="; /* look for root deviceblock nbr in this bootarg */ | ||
}; | ||
|
||
keys { | ||
compatible = "gpio-keys"; | ||
pinctrl-0 = <&button_pins>; | ||
pinctrl-names = "default"; | ||
|
||
reset { | ||
label = "reset"; | ||
gpios = <&qcom_pinmux 68 GPIO_ACTIVE_LOW>; | ||
linux,code = <KEY_RESTART>; | ||
}; | ||
|
||
wps { | ||
label = "wps"; | ||
gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>; | ||
linux,code = <KEY_WPS_BUTTON>; | ||
}; | ||
}; | ||
|
||
leds { | ||
compatible = "gpio-leds"; | ||
pinctrl-0 = <&led_pins>; | ||
pinctrl-names = "default"; | ||
|
||
led_power: power { | ||
label = "ea7500-v1:white:power"; | ||
gpios = <&qcom_pinmux 6 GPIO_ACTIVE_LOW>; | ||
default-state = "keep"; | ||
}; | ||
}; | ||
}; | ||
|
||
&qcom_pinmux { | ||
button_pins: button_pins { | ||
mux { | ||
pins = "gpio65", "gpio68"; | ||
function = "gpio"; | ||
drive-strength = <2>; | ||
bias-pull-up; | ||
}; | ||
}; | ||
|
||
led_pins: led_pins { | ||
mux { | ||
pins = "gpio6"; | ||
function = "gpio"; | ||
drive-strength = <2>; | ||
bias-pull-up; | ||
}; | ||
}; | ||
}; | ||
|
||
&gsbi4 { | ||
qcom,mode = <GSBI_PROT_I2C_UART>; | ||
status = "okay"; | ||
serial@16340000 { | ||
status = "okay"; | ||
}; | ||
/* | ||
* The i2c device on gsbi4 should not be enabled. | ||
* On ipq806x designs gsbi4 i2c is meant for exclusive | ||
* RPM usage. Turning this on in kernel manifests as | ||
* i2c failure for the RPM. | ||
*/ | ||
}; | ||
|
||
&usb3_0 { | ||
status = "okay"; | ||
}; | ||
|
||
&usb3_1 { | ||
status = "okay"; | ||
}; | ||
|
||
&pcie0 { | ||
status = "okay"; | ||
force_gen1 = <1>; | ||
}; | ||
|
||
&pcie1 { | ||
status = "okay"; | ||
}; | ||
|
||
&pcie2 { | ||
status = "okay"; | ||
}; | ||
|
||
&nand_controller { | ||
status = "okay"; | ||
|
||
pinctrl-0 = <&nand_pins>; | ||
pinctrl-names = "default"; | ||
|
||
nand@0 { | ||
reg = <0>; | ||
compatible = "qcom,nandcs"; | ||
|
||
nand-ecc-strength = <4>; | ||
nand-bus-width = <8>; | ||
nand-ecc-step-size = <512>; | ||
|
||
partitions { | ||
compatible = "fixed-partitions"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
partition@0 { | ||
label = "SBL1"; | ||
reg = <0x0000000 0x0040000>; | ||
read-only; | ||
}; | ||
|
||
partition@40000 { | ||
label = "MIBIB"; | ||
reg = <0x0040000 0x0140000>; | ||
read-only; | ||
}; | ||
|
||
partition@180000 { | ||
label = "SBL2"; | ||
reg = <0x0180000 0x0140000>; | ||
read-only; | ||
}; | ||
|
||
partition@2c0000 { | ||
label = "SBL3"; | ||
reg = <0x02c0000 0x0280000>; | ||
read-only; | ||
}; | ||
|
||
partition@540000 { | ||
label = "DDRCONFIG"; | ||
reg = <0x0540000 0x0120000>; | ||
read-only; | ||
}; | ||
|
||
partition@660000 { | ||
label = "SSD"; | ||
reg = <0x0660000 0x0120000>; | ||
read-only; | ||
}; | ||
|
||
partition@780000 { | ||
label = "TZ"; | ||
reg = <0x0780000 0x0280000>; | ||
read-only; | ||
}; | ||
|
||
partition@a00000 { | ||
label = "RPM"; | ||
reg = <0x0a00000 0x0280000>; | ||
read-only; | ||
}; | ||
|
||
art: partition@c80000 { | ||
label = "art"; | ||
reg = <0x0c80000 0x0140000>; | ||
read-only; | ||
}; | ||
|
||
partition@dc0000 { | ||
label = "APPSBL"; | ||
reg = <0x0dc0000 0x0100000>; | ||
read-only; | ||
}; | ||
|
||
partition@ec0000 { | ||
label = "u_env"; | ||
reg = <0x0ec0000 0x0040000>; | ||
}; | ||
|
||
partition@f00000 { | ||
label = "s_env"; | ||
reg = <0x0f00000 0x0040000>; | ||
}; | ||
|
||
partition@f40000 { | ||
label = "devinfo"; | ||
reg = <0x0f40000 0x0040000>; | ||
}; | ||
|
||
partition@f80000 { | ||
label = "kernel1"; | ||
reg = <0x0f80000 0x2800000>; /* 3 MB spill to rootfs*/ | ||
}; | ||
|
||
partition@1280000 { | ||
label = "rootfs1"; | ||
reg = <0x1280000 0x2500000>; | ||
}; | ||
|
||
partition@3780000 { | ||
label = "kernel2"; | ||
reg = <0x3780000 0x2800000>; | ||
}; | ||
|
||
partition@3a80000 { | ||
label = "rootfs2"; | ||
reg = <0x3a80000 0x2500000>; | ||
}; | ||
|
||
partition@5f80000 { | ||
label = "sysdiag"; | ||
reg = <0x5f80000 0x100000>; | ||
}; | ||
|
||
partition@6080000 { | ||
label = "syscfg"; | ||
reg = <0x6080000 0x1f80000>; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
&mdio0 { | ||
status = "okay"; | ||
|
||
pinctrl-0 = <&mdio0_pins>; | ||
pinctrl-names = "default"; | ||
|
||
phy0: ethernet-phy@0 { | ||
reg = <0>; | ||
qca,ar8327-initvals = < | ||
0x00004 0x7600000 /* PAD0_MODE */ | ||
0x00008 0x1000000 /* PAD5_MODE */ | ||
0x0000c 0x80 /* PAD6_MODE */ | ||
0x00010 0x2613a0 /* PWS_REG */ | ||
0x000e4 0x6a545 /* MAC_POWER_SEL */ | ||
0x000e0 0xc74164de /* SGMII_CTRL */ | ||
0x0007c 0x4e /* PORT0_STATUS */ | ||
0x00094 0x4e /* PORT6_STATUS */ | ||
>; | ||
}; | ||
}; | ||
|
||
&gmac1 { | ||
status = "okay"; | ||
phy-mode = "rgmii"; | ||
qcom,id = <1>; | ||
|
||
pinctrl-0 = <&rgmii2_pins>; | ||
pinctrl-names = "default"; | ||
|
||
fixed-link { | ||
speed = <1000>; | ||
full-duplex; | ||
}; | ||
}; | ||
|
||
&gmac2 { | ||
status = "okay"; | ||
phy-mode = "sgmii"; | ||
qcom,id = <2>; | ||
|
||
fixed-link { | ||
speed = <1000>; | ||
full-duplex; | ||
}; | ||
}; | ||
|
||
&adm_dma { | ||
status = "okay"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.