[OpenWrt-Devel] [PATCH v2] ramips: add TRENDnet TEW-810DR support

Adrian Schmutzler mail at adrianschmutzler.de
Thu Feb 27 07:37:31 EST 2020


Hi,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org] On
> Behalf Of Heppler, J. Scott
> Sent: Donnerstag, 27. Februar 2020 03:39
> To: openwrt-devel at openwrt.org
> Subject: [OpenWrt-Devel] [PATCH v2] ramips: add TRENDnet TEW-810DR support
> 
> Signed-off-by: J. Scott Heppler <shep971 at centurylink.net>
> 
> ramips: add support for TRENDnet TEW-810DR
> 
> Exact hardware clone for the D-Link DIR-810L.  See OpenWRT device pages
> and review the PCB photos, boot logs and MTP flash partitions.
> https://openwrt.org/toh/trendnet/trendnet_tew-810dr_1.0_1.1
> https://openwrt.org/toh/d-link/dir-810l
> 
> Specification:
> 
> * MediaTek MT7620A (580 Mhz)
> * 8 MB of FLASH
> * 64 MB of RAM
> * 5x 10/100 Mbps Ethernet (1 WAN and 4 LAN)
> * UART header on PCB (57600 8n1)
> * 2x BiColor LED (GPIO-controlled)
> * 2x button - power and reset
> * U-boot bootloader
> 
> Installation:
> 
> The sysupgrade.bin image needs to have a cameo hardware ID appended
> with ncc_att_hwid.  ncc_att_hwid is available in the GPL Source
> download for either the TEW-810DR or DIR-810L and is located at
> source/user/wolf/cameo/ncc/hostTools
> The invocation is:
> ncc_att_hwid -f tew-810-squashfs-factory.bin -a -m “TEW-810DR”
> -H “1.0R” -r “WW” -c “1.0”
> More information is available in the device page for TEW-810DR linked
> above The appended image can then be flash via the Web rescue interface
> 192.168.10.1 or TFTP's to the same IP address.  Subsequent upgrades
> can be done using the Luci web interface or the ssh command line per the
> OpenWRT documentation
> ---
>  .../ramips/dts/mt7620a_trendnet_tew-810dr.dts | 157 ++++++++++++++++++
>  target/linux/ramips/image/mt7620.mk           |  10 ++
>  .../mt7620/base-files/etc/board.d/02_network  |   3 +-
>  3 files changed, 169 insertions(+), 1 deletion(-)
>  create mode 100644 target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts
> 
> diff --git a/target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts
> b/target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts
> new file mode 100644
> index 0000000000..eb38110801
> --- /dev/null
> +++ b/target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts

shared DTSI with dir-810l ?

> @@ -0,0 +1,157 @@
> +/dts-v1/;
> +
> +#include "mt7620a.dtsi"
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +
> +/ {
> +	compatible = "trendnet,tew-810dr", "ralink,mt7620a-soc";
> +	model = "TRENDnet TEW-810DR";
> +
> +	aliases {
> +		led-boot = &led_power_green;
> +		led-failsafe = &led_power_green;
> +		led-running = &led_power_green;
> +		led-upgrade = &led_power_green;
> +		label-mac-device = ðernet;
> +	};
> +
> +	keys {
> +		compatible = "gpio-keys";
> +
> +		reset {
> +			label = "reset";
> +			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
> +			linux,code = <BTN_0>;
> +		};
> +
> +		wps {
> +			label = "wps";
> +			gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
> +			linux,code = <BTN_0>;

Why not use the proper codes on these?

> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		led_power_green: power {

led_power_green: power_green {

> +			label = "dir-810l:green:power";

That would be one of the few parts where both devices will be different (and which would not belong into a shared DTSI). But if you didn't even change the name, have you actually checked whether the LED GPIOs are the same?

> +			gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		wan {
> +			label = "dir-810l:orange:wan";
> +			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		power2 {

power_orange

> +			label = "dir-810l:orange:power";
> +			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
> +		};
> +	};
> +};
> +
> +&spi0 {
> +	status = "okay";
> +
> +	m25p80 at 0 {

flash at 0

> +		compatible = "jedec,spi-nor";
> +		reg = <0>;
> +		spi-max-frequency = <10000000>;

Can this go faster?

> +
> +		partitions {
> +			compatible = "fixed-partitions";
> +			#address-cells = <1>;
> +			#size-cells = <1>;
> +
> +			partition at 0 {
> +				label = "u-boot";
> +				reg = <0x0 0x30000>;
> +				read-only;
> +			};
> +
> +			partition at 30000 {
> +				label = "u-boot-env";
> +				reg = <0x30000 0x10000>;
> +				read-only;
> +			};
> +
> +			factory: partition at 40000 {
> +				label = "factory";
> +				reg = <0x40000 0x10000>;
> +				read-only;
> +			};
> +
> +			factory5g: partition at 50000 {
> +				label = "factory5g";
> +				reg = <0x50000 0x10000>;
> +				read-only;
> +			};
> +
> +			partition at 60000 {
> +				label = "Wolf_Config";
> +				reg = <0x60000 0x10000>;
> +				read-only;
> +			};
> +
> +			partition at 70000 {
> +				label = "MyDlink";
> +				reg = <0x70000 0x80000>;
> +				read-only;
> +			};
> +
> +			partition at e0000 {
> +				label = "Jffs2";
> +				reg = <0xe0000 0x80000>;

Based on the previous partition's size, this should be 0xf0000. This would also match the start of the subsequent partition.

Can you provide the partitioning of the device with stock firmware?

> +				read-only;
> +			};
> +
> +			partition at 170000 {
> +				compatible = "denx,uimage";
> +				label = "firmware";
> +				reg = <0x170000 0x690000>;
> +			};
> +		};
> +	};
> +};
> +
> +&state_default {
> +	gpio {
> +		ralink,group = "mdio", "rgmii1", "i2c", "wled", "uartf";

I only see "i2c" and "uartf" required above.

> +		ralink,function = "gpio";
> +	};
> +};
> +
> +&ethernet {
> +	mtd-mac-address = <&factory 0x28>;

Have you verified the MAC address assignment for WiFi and ethernet with vendor OS?

> +	mediatek,portmap = "llllw";
> +};
> +
> +&gsw {
> +	mediatek,port4 = "ephy";
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&ephy_pins>;
> +};
> +
> +&pcie {
> +	status = "okay";
> +};
> +
> +&wmac {
> +	ralink,mtd-eeprom = <&factory 0x0>;
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&pa_pins>;
> +	mtd-mac-address = <&factory 0x28>;

Is there no valid address in factory 0x4?

> +};
> +
> +&pcie0 {
> +	wifi at 0,0 {
> +		reg = <0x0000 0 0 0 0>;
> +		mediatek,mtd-eeprom = <&factory 0x8000>;

I wonder why there is a factory5g partition then?

> +		ieee80211-freq-limit = <5000000 6000000>;
> +		mtd-mac-address = <&factory 0x28>;
> +		mtd-mac-address-increment = <2>;

Is there no valid address in factory 0x8004?

> +	};
> +};
> diff --git a/target/linux/ramips/image/mt7620.mk
> b/target/linux/ramips/image/mt7620.mk
> index 3512a1c55a..71e4270a20 100644
> --- a/target/linux/ramips/image/mt7620.mk
> +++ b/target/linux/ramips/image/mt7620.mk
> @@ -942,6 +942,16 @@ define Device/tplink_re200-v1
>  endef
>  TARGET_DEVICES += tplink_re200-v1
> 
> +define Device/trendnet_tew-810dr
> +  SOC := mt7620a
> +  DEVICE_PACKAGES := kmod-mt76x0e
> +  DEVICE_VENDOR := TRENDnet
> +  DEVICE_MODEL := TEW-810DR
> +  IMAGE_SIZE := 6720k
> +  SUPPORTED_DEVICES += dir-810l

I do not see a reason to enable cross-flashing between different devices. I see that this is meant for those who used dir-810l image on this device before, but still I do not think it's a good idea to have this path available by default.

> +endef
> +TARGET_DEVICES += trendnet_tew-810dr
> +
>  define Device/vonets_var11n-300
>    SOC := mt7620n
>    IMAGE_SIZE := 3776k
> diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
> b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
> index 7397ddcc2c..a1b3f4bd0c 100755
> --- a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
> +++ b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
> @@ -255,7 +255,8 @@ ramips_setup_macs()

You neither set up the LEDs nor the switch.

So, there's still a lot to do.

Best

Adrian

>  	alfa-network,ac1200rm|\
>  	dlink,dir-810l|\
>  	phicomm,psg1218a|\
> -	phicomm,psg1218b)
> +	phicomm,psg1218b|\
> +	trendnet,tew-810dr)
>  		wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory
> 0x28)" 1)
>  		;;
>  	alfa-network,r36m-e4g|\
> --
> 2.20.1
> 
> --
> J. Scott Heppler
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list