[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