Skip to content
Snippets Groups Projects
Select Git revision
  • d2d8bfa7bdcf22e15de9cf4b84f708c0c45ddaeb
  • v2018.2.x default protected
  • 0x4A6F-rpi4
  • 0x4A6F-master
  • master
  • v2018.2.2-ffs
  • v2016.2.4-batmanbug
  • radv-filterd
  • v2016.2.x
  • hoodselector
  • v2016.1.x
  • babel
  • v2015.1.x
  • 2014.4.x
  • 2014.3.x
  • v2018.2.2-ffs0.1
  • v2018.2.1-ffs0.1
  • v2018.2.1
  • v2018.2-ffs0.1
  • v2018.2
  • v2018.1.4
  • v2018.1.3
  • v2018.1.2
  • v2018.1.1
  • v2018.1
  • v2017.1.8
  • v2017.1.7
  • v2017.1.6
  • v2017.1.5
  • v2017.1.4
  • v2017.1.3
  • v2017.1.2
  • v2016.2.7
  • v2017.1.1
  • v2017.1
35 results

0041-ramips-add-support-for-Ubiquiti-EdgeRouter-X-SFP.patch

Blame
  • Forked from firmware / FFS Gluon
    3269 commits behind, 73 commits ahead of the upstream repository.
    user avatar
    kb-light authored
    (backported from commit 64cfd648)
    21ded59c
    History
    0041-ramips-add-support-for-Ubiquiti-EdgeRouter-X-SFP.patch 9.77 KiB
    From: Sven Roederer <devel-sven@geroedel.de>
    Date: Mon, 29 May 2017 11:24:49 +0200
    Subject: 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>
    
    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 1778dc93297136e3196ad3f74e4b3bea7535cee0..1f5c6429201ba05fc14ff09c6c562d2c114f2a63 100755
    --- a/target/linux/ramips/base-files/etc/board.d/02_network
    +++ b/target/linux/ramips/base-files/etc/board.d/02_network
    @@ -146,6 +146,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 0000000000000000000000000000000000000000..859dfb31f51244e69d3dce5fc80b329cb57729f3
    --- /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 17ada648931f16d3e85630dd341defb89ba50d6f..b1091f66b2897a19bd01d4a26a1b3647656fa62b 100755
    --- a/target/linux/ramips/base-files/lib/ramips.sh
    +++ b/target/linux/ramips/base-files/lib/ramips.sh
    @@ -466,6 +466,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 a5cca2080d3b96cef92286b1b15f4f8832d9f8c5..d3efc2dd37ed855a1c0e966e448b67ae73324d5f 100755
    --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh
    +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
    @@ -234,7 +234,8 @@ platform_check_image() {
     		}
     		return 0
     		;;
    -	ubnt-erx)
    +	ubnt-erx|\
    +	ubnt-erx-sfp)
     		nand_do_platform_check "$board" "$1"
     		return $?;
     		;;
    @@ -248,7 +249,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
    @@ -258,7 +260,8 @@ platform_do_upgrade() {
     	local board=$(ramips_board_name)
     
     	case "$board" in
    -    	ubnt-erx)
    +	ubnt-erx|\
    +	ubnt-erx-sfp)
     		nand_do_upgrade "$ARGV"
     		;;
     	*)
    diff --git a/target/linux/ramips/dts/UBNT-ER-e50.dtsi b/target/linux/ramips/dts/UBNT-ER-e50.dtsi
    new file mode 100644
    index 0000000000000000000000000000000000000000..b38c7194942db9f0a713fd8f707b53820d07c78e
    --- /dev/null
    +++ b/target/linux/ramips/dts/UBNT-ER-e50.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>;
    +		};
    +	};
    +};
    +
    +&ethernet {
    +	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-SFP.dts b/target/linux/ramips/dts/UBNT-ERX-SFP.dts
    new file mode 100644
    index 0000000000000000000000000000000000000000..ca26d817211e5a5a20a7da926cd2aee726875780
    --- /dev/null
    +++ b/target/linux/ramips/dts/UBNT-ERX-SFP.dts
    @@ -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>;
    +		};
    +	};
    +};
    diff --git a/target/linux/ramips/dts/UBNT-ERX.dts b/target/linux/ramips/dts/UBNT-ERX.dts
    index cf86bbb7e67b1c521c279367ee9e99fee88fae85..556d1156c352f76a94c6e39bc3b58c88f08815be 100644
    --- a/target/linux/ramips/dts/UBNT-ERX.dts
    +++ b/target/linux/ramips/dts/UBNT-ERX.dts
    @@ -1,108 +1,7 @@
     /dts-v1/;
     
    -#include "mt7621.dtsi"
    -
    -#include <dt-bindings/gpio/gpio.h>
    -#include <dt-bindings/input/input.h>
    +#include "UBNT-ER-e50.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 GPIO_ACTIVE_LOW>;
    -			linux,code = <KEY_RESTART>;
    -		};
    -	};
    -};
    -
    -&ethernet {
    -	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 15ea9a13b6310b1454b5b3b92cd8ed30ee6255b3..8218bea84410536151a216cd2cc0300369ad977a 100644
    --- a/target/linux/ramips/image/mt7621.mk
    +++ b/target/linux/ramips/image/mt7621.mk
    @@ -144,6 +144,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