Hi Sven, the patch doesn't apply on the current master branch. Commit 4c3953b it the problem because UBNT-ERX.dts was altered. Applying it on the previous commit 64f2efc works fine.
PS: What about renaming UBNT-ERX.dtsi to ER-e50.dtsi which is the name of the series ERX and ERX-SFTP are based on because we have also the EP-R6 which is mostly a ERX-SFP in an outdoor case. Regards, Julian On 05/27/2017 10:26 PM, Sven Roederer wrote: > This patch adds support for the Ubiquiti EdgeRouter X-SFP and > improves support for the EdgeRouter X. > > 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-s...@geroedel.de> > --- > .../linux/ramips/base-files/etc/board.d/02_network | 1 + > .../ramips/base-files/etc/board.d/03_gpio_switches | 25 +++++ > target/linux/ramips/base-files/lib/ramips.sh | 3 + > .../ramips/base-files/lib/upgrade/platform.sh | 9 +- > target/linux/ramips/dts/UBNT-ERX-SFP.dts | 24 +++++ > target/linux/ramips/dts/UBNT-ERX.dts | 102 +------------------- > target/linux/ramips/dts/UBNT-ERX.dtsi | 106 > +++++++++++++++++++++ > target/linux/ramips/image/mt7621.mk | 13 +++ > 8 files changed, 179 insertions(+), 104 deletions(-) > create mode 100755 > target/linux/ramips/base-files/etc/board.d/03_gpio_switches > create mode 100644 target/linux/ramips/dts/UBNT-ERX-SFP.dts > create mode 100644 target/linux/ramips/dts/UBNT-ERX.dtsi > > diff --git a/target/linux/ramips/base-files/etc/board.d/02_network > b/target/linux/ramips/base-files/etc/board.d/02_network > index 80a3bc2..490a41e 100755 > --- a/target/linux/ramips/base-files/etc/board.d/02_network > +++ b/target/linux/ramips/base-files/etc/board.d/02_network > @@ -165,6 +165,7 @@ ramips_setup_interfaces() > rb750gr3|\ > rt-n14u|\ > ubnt-erx|\ > + ubnt-erx-sfp|\ > ur-326n4g|\ > wrtnode|\ > wrtnode2p | \ > diff --git a/target/linux/ramips/base-files/etc/board.d/03_gpio_switches > b/target/linux/ramips/base-files/etc/board.d/03_gpio_switches > new file mode 100755 > index 0000000..859dfb3 > --- /dev/null > +++ b/target/linux/ramips/base-files/etc/board.d/03_gpio_switches > @@ -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 > diff --git a/target/linux/ramips/base-files/lib/ramips.sh > b/target/linux/ramips/base-files/lib/ramips.sh > index 87cb7ff..b5f0617 100755 > --- a/target/linux/ramips/base-files/lib/ramips.sh > +++ b/target/linux/ramips/base-files/lib/ramips.sh > @@ -481,6 +481,9 @@ ramips_board_detect() { > *"UBNT-ERX") > name="ubnt-erx" > ;; > + *"UBNT-ERX-SFP") > + name="ubnt-erx-sfp" > + ;; > *"UR-326N4G") > name="ur-326n4g" > ;; > diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh > b/target/linux/ramips/base-files/lib/upgrade/platform.sh > index adad8da..d8a7c08 100755 > --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh > +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh > @@ -249,7 +249,8 @@ platform_check_image() { > # these boards use metadata images > return 0 > ;; > - ubnt-erx) > + ubnt-erx|\ > + ubnt-erx-sfp) > nand_do_platform_check "$board" "$1" > return $?; > ;; > @@ -271,7 +272,8 @@ platform_nand_pre_upgrade() { > local board=$(ramips_board_name) > > case "$board" in > - ubnt-erx) > + ubnt-erx|\ > + ubnt-erx-sfp) > platform_upgrade_ubnt_erx "$ARGV" > ;; > esac > @@ -283,7 +285,8 @@ platform_pre_upgrade() { > case "$board" in > hc5962|\ > r6220|\ > - ubnt-erx) > + ubnt-erx|\ > + ubnt-erx-sfp) > nand_do_upgrade "$ARGV" > ;; > esac > diff --git a/target/linux/ramips/dts/UBNT-ERX-SFP.dts > b/target/linux/ramips/dts/UBNT-ERX-SFP.dts > new file mode 100644 > index 0000000..69599fe > --- /dev/null > +++ b/target/linux/ramips/dts/UBNT-ERX-SFP.dts > @@ -0,0 +1,24 @@ > +/dts-v1/; > + > +#include "UBNT-ERX.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>; > + }; > + }; > +}; > diff --git a/target/linux/ramips/dts/UBNT-ERX.dts > b/target/linux/ramips/dts/UBNT-ERX.dts > index 0b2da95..7715162 100644 > --- a/target/linux/ramips/dts/UBNT-ERX.dts > +++ b/target/linux/ramips/dts/UBNT-ERX.dts > @@ -1,107 +1,7 @@ > -#include <dt-bindings/input/input.h> > - > /dts-v1/; > > -#include "mt7621.dtsi" > +#include "UBNT-ERX.dtsi" > > / { > 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 1>; > - 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"; > }; > diff --git a/target/linux/ramips/dts/UBNT-ERX.dtsi > b/target/linux/ramips/dts/UBNT-ERX.dtsi > new file mode 100644 > index 0000000..b38c719 > --- /dev/null > +++ b/target/linux/ramips/dts/UBNT-ERX.dtsi > @@ -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"; > +}; > diff --git a/target/linux/ramips/image/mt7621.mk > b/target/linux/ramips/image/mt7621.mk > index b57552a..f65449a 100644 > --- a/target/linux/ramips/image/mt7621.mk > +++ b/target/linux/ramips/image/mt7621.mk > @@ -176,6 +176,19 @@ define Device/ubnt-erx > endef > 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 > DTS := VR500 > IMAGE_SIZE := 66453504 > _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev