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

Adrian Schmutzler mail at adrianschmutzler.de
Thu Feb 27 08:44:12 EST 2020


> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces at lists.openwrt.org] On
> Behalf Of Heppler, J. Scott
> Sent: Donnerstag, 27. Februar 2020 14:29
> To: openwrt-devel at openwrt.org
> Subject: Re: [OpenWrt-Devel] [PATCH v2] ramips: add TRENDnet TEW-810DR
> support
> 
> On Feb 27, 2020: 13:37, Adrian Schmutzler wrote:
> >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 ?
> 
> I'm worried about altering the DIR-810L code.  I do not have the D-Link
> to test and it was submitted by someone else.

I will send a some patches for the DIR-810L in a minute. Those should make it easier to move a lot of code into a shared DTSI. Obviously, stuff that still deviates would be kept in the DTSes.

> >
> >> @@ -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?  Would the code also need to be
> >altered on the DIR-810L?  Can you point me to reference?

See my patch for DIR-810L coming in a minute.

> >
> >> +		};
> >> +	};
> >> +
> >> +	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?
> The Trendnet also has 2 pairs of green/orange LEDs

So, what's the second green LED then?

> >
> >> +			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?
> Would this would go in a shared dtsi.  Should I make a change on a
> device I do not have access to?

This depends. If it really is the same board as you say, one could move the spi-max-frequency to the DTSI and then increase it for both devices in a second commit. Otherwise, one could also keep only the spi-max-frequency in the local DTSes.

> >
> >> +
> >> +		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?
> It was given in the Device page I linked above.  The DIR-810L stock
> partition table is also in the respective link.  I verified that both
> devices use the same flash/ram chips in the Bootlogs and Wikidevi
> archive.

The information on the device pages is correct, and the implementation here is wrong.
I will fix this for the DIR-810L, so you can then just copy the updated partitioning to the DTSI.

> >
> >> +				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?
> Will do later today.
> >
> >> +	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?
> According to device pages linked above, Both the Trendnet and the D-Link
> have mtd4: 00010000 00010000 "5G_RF".  5G did not initially work on the
> D-link.  From https://openwrt.org/toh/hwdata/d-link/d-link_dir-810l_b1
> 
> Comments: WiFi 5GHz unsupported up to 18.06.1; WiFi 5GHz support added
> in snapshot (https://git.openwrt.org/?p=openwrt/openwrt.git;a=
> commit;h=cb6a8aa584a2be62aeac9b5b1573303d5615c672)

Well, that doesn't really answer my question, but if support was added separately in this commit I just assume they did it properly.

Despite, if @rogerpueyo still owns that device, he might also test a higher spi frequency on it.

> >
> >> +		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.
> Would all the concerns you raised for the TEW-810DR also apply to the
> DIR-810L?

Yes.

And I'm just about to fix some of them.

Best

Adrian

> >
> >> +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
> >
> 
> --
> J. Scott Heppler
> 
> Penguin Innovations
> 
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> 
> 
> NOTICE: This e-mail message and any attachments may
> contain legally privileged and confidential information intended
> solely for the use of the intended recipients. If you are not an
> intended recipient, you are hereby notified that you have
> received this message in error and any review, dissemination,
> distribution, copying, or other unauthorized use of this email
> and any attachment is strictly prohibited. If you have received
> this email in error, please notify the sender immediately and
> delete the message and any attachments from your system.
> 
> _______________________________________________
> 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