[LEDE-DEV] [PATCH] ramips: add support for Loewe WMDR-143N

Mathias Kresin dev at kresin.me
Tue Jul 25 23:26:12 PDT 2017


20.07.2017 21:02, Oliver Fleischmann:
> The WMDR-143N is a small module originally used as a Wifi client
> in some Loewe smart TV sets. It is sold cheaply at german surplus
> shops. The module contains a RT3662 SOC.
> 
> Specifications:
> 
> - 500 MHz CPU Clock
> - 1x 10/100Mbps Ethernet (pin header)
> - 32 MB of RAM
> - 8 MB of FLASH
> - 2T3R 2.4/5 GHz (SOC internal)
> - 3 Antennas on PCB
> - UART pads on PCB (J3: 1 = +3.3V, 2 = RX, 3 = TX, 4 = GND), TX
>    and RX are 3,3V only! The square hole is pin 1
> - Power supply pads on PCB (J6: 1 and 2 = +5V, 3 and 4 = GND)
>    The square hole is pin 1
> 
> The original firmware has two identical kernel/rootfs images and
> two "Factory" calibration data blocks in flash. The LEDE image
> leaves only the first "Factory" block in place and uses both
> "Kernel" blocks and the redundant "Factory" block together to gain
> enough space for the jffs2 partition.
> 
> Flash instructions:
> 
> You need UART and Ethernet connections to flash the board. Use
> the LEDE "sysupgrade.bin" image with tftp.
> 
> Apply power to the board and in the first 5 seconds, hit 2 to
> select TFTP upload. The bootloader asks for board- and server IP
> addresses and filename.
> 
> Alternate method: With the vendor firmware running, assign an IP
> address to the ethernet port, tftp the firmware image to
> /tmp and write to mtd4 ("KernelA").
> 
> Signed-off-by: Oliver Fleischmann <ogf at bnv-bamberg.de>
> ---
>   .../linux/ramips/base-files/etc/board.d/02_network |  4 +-
>   target/linux/ramips/base-files/lib/ramips.sh       |  3 +
>   .../ramips/base-files/lib/upgrade/platform.sh      |  1 +
>   target/linux/ramips/dts/WMDR-143N.dts              | 73 ++++++++++++++++++++++
>   target/linux/ramips/image/rt3883.mk                |  8 +++
>   5 files changed, 88 insertions(+), 1 deletion(-)
>   create mode 100644 target/linux/ramips/dts/WMDR-143N.dts
> 
> 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 78ba10342b..fce754e295 100755
> --- a/target/linux/ramips/base-files/etc/board.d/02_network
> +++ b/target/linux/ramips/base-files/etc/board.d/02_network
> @@ -222,6 +222,7 @@ ramips_setup_interfaces()
>   	na930|\
>   	pbr-d1|\
>   	wli-tx4-ag300n|\
> +	wmdr-143n|\
>   	wmr-300|\
>   	wn3000rpv3|\
>   	wrh-300cr)
> @@ -333,7 +334,8 @@ ramips_setup_macs()
>   
>   	case $board in
>   	a5-v11|\
> -	ht-tm02)
> +	ht-tm02|\
> +	wmdr-143n)
>   		lan_mac=$(cat /sys/class/net/eth0/address)
>   		;;
>   	all0239-3g|\
> diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
> index 056fab9def..9b02d98ce2 100755
> --- a/target/linux/ramips/base-files/lib/ramips.sh
> +++ b/target/linux/ramips/base-files/lib/ramips.sh
> @@ -589,6 +589,9 @@ ramips_board_detect() {
>   	*"WLR-6000")
>   		name="wlr-6000"
>   		;;
> +	*"WMDR-143N")
> +		name="wmdr-143n"
> +		;;
>   	*"WMR-300")
>   		name="wmr-300"
>   		;;
> diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh
> index e0a260216d..2a2625ca89 100755
> --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh
> +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
> @@ -168,6 +168,7 @@ platform_check_image() {
>   	wl-wn575a3|\
>   	wli-tx4-ag300n|\
>   	wlr-6000|\
> +	wmdr-143n|\
>   	wmr-300|\
>   	wn3000rpv3|\
>   	wnce2001|\
> diff --git a/target/linux/ramips/dts/WMDR-143N.dts b/target/linux/ramips/dts/WMDR-143N.dts
> new file mode 100644
> index 0000000000..291f46f856
> --- /dev/null
> +++ b/target/linux/ramips/dts/WMDR-143N.dts
> @@ -0,0 +1,73 @@
> +/dts-v1/;
> +
> +#include "rt3883.dtsi"
> +
> +/ {
> +	compatible = "loewe,wmdr-143n", "ralink,rt3883-soc";
> +	model = "Loewe WMDR-143N";
> +};
> +
> +&spi0 {
> +	status = "okay";
> +
> +	m25p80 at 0 {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		compatible = "jedec,spi-nor";
> +		reg = <0>;
> +		spi-max-frequency = <25000000>;
> +
> +		partition at 0 {
> +			label = "u-boot";
> +			reg = <0x0 0x30000>;
> +			read-only;
> +		};
> +
> +		partition at 30000 {
> +			label = "u-boot-env";
> +			reg = <0x30000 0x00010000>;
> +			read-only;
> +		};
> +
> +		factory: partition at 40000 {
> +			label = "factory";
> +			reg = <0x40000 0x10000>;
> +			read-only;
> +		};
> +
> +		partition at 50000 {
> +			label = "firmware";
> +			reg = <0x50000 0x7b0000>;
> +		};
> +	};
> +};
> +
> +&pinctrl {
> +	state_default: pinctrl0 {
> +		gpio {
> +			ralink,group = "i2c", "jtag", "uartf";
> +			ralink,function = "gpio";
> +		};
> +	};
> +};


I added a fix for the pinmux related hang you reported to my staging 
tree[0]. I've merge your patch with the removed pinmux on top.

Would you please build an image for the Loewe WMDR-143N from my staging 
tree and report back whether the issue is fixed!

Mathias

[0] https://git.lede-project.org/?p=lede/mkresin/staging.git;a=summary



More information about the Lede-dev mailing list