mirror of
https://github.com/openwrt/openwrt.git
synced 2025-03-12 07:24:22 +00:00
ramips: add support for Ubiquiti EdgeRouter X-SFP
This patch adds support for the Ubiquiti EdgeRouter X-SFP and improves support for the EdgeRouter X (PoE-passthrough). Specification: - SoC: MediaTek MT7621AT - Flash: 256 MiB - RAM: 265 MiB - Ethernet: 5 x LAN (1000 Mbps) - UART: 1 x UART on PCB (3.3V, RX, TX, GND) - 57600 8N1 - EdgeRouter X: - 1 x PoE-Passtrough (Eth4) - powered by Wallwart or passive PoE - EdgeRouter X-SFP: - 5 x PoE-Out (24V, passive) - 1 x SFP (unknown status) - powered by Wallwart (24V) Doesn't work: * SoC has crypto engine but no open driver. * SoC has nat acceleration, but no open driver. * This router has 2MB spi flash soldered in but MT nand/spi drivers do not support pin sharing, so it is not accessable and disabled. Stock firmware could read it and it was empty. Installation via vendor firmware: - build an Initrd-image (> 3MiB) and upload the factory-image - initrd can have luci-mod-failsafe - flash final firmware via LuCI / sysupgrade on rebooted system via TFTP: - stop uboot into tftp-load into option "1" - upload factory.bin image Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
This commit is contained in:
parent
e178d51a04
commit
9715beb04c
@ -170,6 +170,7 @@ ramips_setup_interfaces()
|
|||||||
rb750gr3|\
|
rb750gr3|\
|
||||||
rt-n14u|\
|
rt-n14u|\
|
||||||
ubnt-erx|\
|
ubnt-erx|\
|
||||||
|
ubnt-erx-sfp|\
|
||||||
ur-326n4g|\
|
ur-326n4g|\
|
||||||
wrtnode|\
|
wrtnode|\
|
||||||
wrtnode2p | \
|
wrtnode2p | \
|
||||||
|
25
target/linux/ramips/base-files/etc/board.d/03_gpio_switches
Executable file
25
target/linux/ramips/base-files/etc/board.d/03_gpio_switches
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. /lib/functions/uci-defaults.sh
|
||||||
|
. /lib/ramips.sh
|
||||||
|
|
||||||
|
board_config_update
|
||||||
|
|
||||||
|
board=$(ramips_board_name)
|
||||||
|
|
||||||
|
case "$board" in
|
||||||
|
ubnt-erx)
|
||||||
|
ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "0"
|
||||||
|
;;
|
||||||
|
ubnt-erx-sfp)
|
||||||
|
ucidef_add_gpio_switch "poe_power_port0" "PoE Power Port0" "496"
|
||||||
|
ucidef_add_gpio_switch "poe_power_port1" "PoE Power Port1" "497"
|
||||||
|
ucidef_add_gpio_switch "poe_power_port2" "PoE Power Port2" "498"
|
||||||
|
ucidef_add_gpio_switch "poe_power_port3" "PoE Power Port3" "499"
|
||||||
|
ucidef_add_gpio_switch "poe_power_port4" "PoE Power Port4" "500"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
board_config_flush
|
||||||
|
|
||||||
|
exit 0
|
@ -487,6 +487,9 @@ ramips_board_detect() {
|
|||||||
*"UBNT-ERX")
|
*"UBNT-ERX")
|
||||||
name="ubnt-erx"
|
name="ubnt-erx"
|
||||||
;;
|
;;
|
||||||
|
*"UBNT-ERX-SFP")
|
||||||
|
name="ubnt-erx-sfp"
|
||||||
|
;;
|
||||||
*"UR-326N4G")
|
*"UR-326N4G")
|
||||||
name="ur-326n4g"
|
name="ur-326n4g"
|
||||||
;;
|
;;
|
||||||
|
@ -252,7 +252,8 @@ platform_check_image() {
|
|||||||
# these boards use metadata images
|
# these boards use metadata images
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
ubnt-erx)
|
ubnt-erx|\
|
||||||
|
ubnt-erx-sfp)
|
||||||
nand_do_platform_check "$board" "$1"
|
nand_do_platform_check "$board" "$1"
|
||||||
return $?;
|
return $?;
|
||||||
;;
|
;;
|
||||||
@ -274,7 +275,8 @@ platform_nand_pre_upgrade() {
|
|||||||
local board=$(ramips_board_name)
|
local board=$(ramips_board_name)
|
||||||
|
|
||||||
case "$board" in
|
case "$board" in
|
||||||
ubnt-erx)
|
ubnt-erx|\
|
||||||
|
ubnt-erx-sfp)
|
||||||
platform_upgrade_ubnt_erx "$ARGV"
|
platform_upgrade_ubnt_erx "$ARGV"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -286,7 +288,8 @@ platform_do_upgrade() {
|
|||||||
case "$board" in
|
case "$board" in
|
||||||
hc5962|\
|
hc5962|\
|
||||||
r6220|\
|
r6220|\
|
||||||
ubnt-erx)
|
ubnt-erx|\
|
||||||
|
ubnt-erx-sfp)
|
||||||
nand_do_upgrade "$ARGV"
|
nand_do_upgrade "$ARGV"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
106
target/linux/ramips/dts/UBNT-ER-e50.dtsi
Normal file
106
target/linux/ramips/dts/UBNT-ER-e50.dtsi
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
#include "mt7621.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/input/input.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
compatible = "ubiquiti,edgerouterx";
|
||||||
|
|
||||||
|
memory@0 {
|
||||||
|
device_type = "memory";
|
||||||
|
reg = <0x0 0x10000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
bootargs = "console=ttyS0,57600";
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio-keys-polled {
|
||||||
|
compatible = "gpio-keys-polled";
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
poll-interval = <20>;
|
||||||
|
|
||||||
|
reset {
|
||||||
|
label = "reset";
|
||||||
|
gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
|
||||||
|
linux,code = <KEY_RESTART>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
ðernet {
|
||||||
|
mtd-mac-address = <&factory 0x22>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&nand {
|
||||||
|
status = "okay";
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
label = "u-boot";
|
||||||
|
reg = <0x0 0x80000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@80000 {
|
||||||
|
label = "u-boot-env";
|
||||||
|
reg = <0x80000 0x60000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
factory: partition@e0000 {
|
||||||
|
label = "factory";
|
||||||
|
reg = <0xe0000 0x60000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@140000 {
|
||||||
|
label = "kernel1";
|
||||||
|
reg = <0x140000 0x300000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@440000 {
|
||||||
|
label = "kernel2";
|
||||||
|
reg = <0x440000 0x300000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
partition@740000 {
|
||||||
|
label = "ubi";
|
||||||
|
reg = <0x740000 0xf7c0000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&pinctrl {
|
||||||
|
state_default: pinctrl0 {
|
||||||
|
gpio {
|
||||||
|
ralink,group = "uart2", "uart3", "i2c", "pcie", "rgmii2", "jtag";
|
||||||
|
ralink,function = "gpio";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&spi0 {
|
||||||
|
/* This board has 2Mb spi flash soldered in and visible
|
||||||
|
from manufacturer's firmware.
|
||||||
|
But this SoC shares spi and nand pins,
|
||||||
|
and current driver does't handle this sharing well */
|
||||||
|
status = "disabled";
|
||||||
|
|
||||||
|
m25p80@0 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
compatible = "jedec,spi-nor";
|
||||||
|
reg = <1>;
|
||||||
|
spi-max-frequency = <10000000>;
|
||||||
|
m25p,chunked-io = <32>;
|
||||||
|
|
||||||
|
partition@0 {
|
||||||
|
label = "spi";
|
||||||
|
reg = <0x0 0x200000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&xhci {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
24
target/linux/ramips/dts/UBNT-ERX-SFP.dts
Normal file
24
target/linux/ramips/dts/UBNT-ERX-SFP.dts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "UBNT-ER-e50.dtsi"
|
||||||
|
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "UBNT-ERX-SFP";
|
||||||
|
compatible = "ubiquiti,edgerouterx-sfp";
|
||||||
|
|
||||||
|
i2c-gpio {
|
||||||
|
compatible = "i2c-gpio";
|
||||||
|
gpios = <&gpio0 3 GPIO_ACTIVE_HIGH /* sda */
|
||||||
|
&gpio0 4 GPIO_ACTIVE_HIGH /* scl */
|
||||||
|
>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
pca9555@25 {
|
||||||
|
compatible = "pca9555";
|
||||||
|
reg = <0x25>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -1,108 +1,7 @@
|
|||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
|
|
||||||
#include "mt7621.dtsi"
|
#include "UBNT-ER-e50.dtsi"
|
||||||
|
|
||||||
#include <dt-bindings/gpio/gpio.h>
|
|
||||||
#include <dt-bindings/input/input.h>
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
model = "UBNT-ERX";
|
model = "UBNT-ERX";
|
||||||
|
|
||||||
memory@0 {
|
|
||||||
device_type = "memory";
|
|
||||||
reg = <0x0 0x10000000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
chosen {
|
|
||||||
bootargs = "console=ttyS0,57600";
|
|
||||||
};
|
|
||||||
|
|
||||||
gpio-keys-polled {
|
|
||||||
compatible = "gpio-keys-polled";
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
poll-interval = <20>;
|
|
||||||
|
|
||||||
reset {
|
|
||||||
label = "reset";
|
|
||||||
gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
|
|
||||||
linux,code = <KEY_RESTART>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ðernet {
|
|
||||||
mtd-mac-address = <&factory 0x22>;
|
|
||||||
};
|
|
||||||
|
|
||||||
&nand {
|
|
||||||
status = "okay";
|
|
||||||
|
|
||||||
partition@0 {
|
|
||||||
label = "u-boot";
|
|
||||||
reg = <0x0 0x80000>;
|
|
||||||
read-only;
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@80000 {
|
|
||||||
label = "u-boot-env";
|
|
||||||
reg = <0x80000 0x60000>;
|
|
||||||
read-only;
|
|
||||||
};
|
|
||||||
|
|
||||||
factory: partition@e0000 {
|
|
||||||
label = "factory";
|
|
||||||
reg = <0xe0000 0x60000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@140000 {
|
|
||||||
label = "kernel1";
|
|
||||||
reg = <0x140000 0x300000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@440000 {
|
|
||||||
label = "kernel2";
|
|
||||||
reg = <0x440000 0x300000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
partition@740000 {
|
|
||||||
label = "ubi";
|
|
||||||
reg = <0x740000 0xf7c0000>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&pinctrl {
|
|
||||||
state_default: pinctrl0 {
|
|
||||||
gpio {
|
|
||||||
ralink,group = "uart2", "uart3", "i2c", "pcie", "rgmii2", "jtag";
|
|
||||||
ralink,function = "gpio";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&spi0 {
|
|
||||||
/* This board has 2Mb spi flash soldered in and visible
|
|
||||||
from manufacturer's firmware.
|
|
||||||
But this SoC shares spi and nand pins,
|
|
||||||
and current driver does't handle this sharing well */
|
|
||||||
status = "disabled";
|
|
||||||
|
|
||||||
m25p80@0 {
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
compatible = "jedec,spi-nor";
|
|
||||||
reg = <1>;
|
|
||||||
spi-max-frequency = <10000000>;
|
|
||||||
m25p,chunked-io = <32>;
|
|
||||||
|
|
||||||
partition@0 {
|
|
||||||
label = "spi";
|
|
||||||
reg = <0x0 0x200000>;
|
|
||||||
read-only;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&xhci {
|
|
||||||
status = "disabled";
|
|
||||||
};
|
};
|
||||||
|
@ -184,6 +184,19 @@ define Device/ubnt-erx
|
|||||||
endef
|
endef
|
||||||
TARGET_DEVICES += ubnt-erx
|
TARGET_DEVICES += ubnt-erx
|
||||||
|
|
||||||
|
define Device/ubnt-erx-sfp
|
||||||
|
DTS := UBNT-ERX-SFP
|
||||||
|
FILESYSTEMS := squashfs
|
||||||
|
KERNEL_SIZE := 3145728
|
||||||
|
KERNEL := $(KERNEL_DTB) | uImage lzma
|
||||||
|
IMAGES := sysupgrade.tar
|
||||||
|
KERNEL_INITRAMFS := $$(KERNEL) | ubnt-erx-factory-image $(KDIR)/tmp/$$(KERNEL_INITRAMFS_PREFIX)-factory.tar
|
||||||
|
IMAGE/sysupgrade.tar := sysupgrade-tar | append-metadata
|
||||||
|
DEVICE_TITLE := Ubiquiti EdgeRouter X-SFP
|
||||||
|
DEVICE_PACKAGES := -kmod-mt76 -kmod-rt2x00-lib -kmod-mac80211 -kmod-cfg80211 -wpad-mini -iwinfo kmod-i2c-algo-pca kmod-gpio-pca953x kmod-i2c-gpio-custom
|
||||||
|
endef
|
||||||
|
TARGET_DEVICES += ubnt-erx-sfp
|
||||||
|
|
||||||
define Device/vr500
|
define Device/vr500
|
||||||
DTS := VR500
|
DTS := VR500
|
||||||
IMAGE_SIZE := 66453504
|
IMAGE_SIZE := 66453504
|
||||||
|
Loading…
x
Reference in New Issue
Block a user