openwrtv3/target/linux/ramips/base-files/lib/upgrade/platform.sh
Oliver Fleischmann a92c64e8ae ramips: add support for Loewe WMDR-143N
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@bnv-bamberg.de>
[remove pinctrl node from dts, no pin is used as GPIO]
Signed-off-by: Mathias Kresin <dev@kresin.me>
2017-07-27 09:13:27 +02:00

324 lines
4.2 KiB
Bash
Executable file

#
# Copyright (C) 2010 OpenWrt.org
#
PART_NAME=firmware
platform_check_image() {
local board=$(board_name)
local magic="$(get_magic_long "$1")"
[ "$#" -gt 1 ] && return 1
case "$board" in
3g150b|\
3g300m|\
a5-v11|\
ai-br100|\
air3gii|\
all0239-3g|\
all0256n-4M|\
all0256n-8M|\
all5002|\
all5003|\
ar725w|\
asl26555-8M|\
asl26555-16M|\
awapn2403|\
awm002-evb-4M|\
awm002-evb-8M|\
awm003-evb|\
bc2|\
broadway|\
carambola|\
cf-wr800n|\
cs-qr10|\
d105|\
d240|\
dap-1350|\
db-wrt01|\
dcs-930|\
dcs-930l-b1|\
dir-300-b1|\
dir-300-b7|\
dir-320-b1|\
dir-600-b1|\
dir-615-d|\
dir-615-h1|\
dir-620-a1|\
dir-620-d1|\
dir-810l|\
duzun-dm06|\
dwr-512-b|\
e1700|\
esr-9753|\
ew1200|\
ex2700|\
ex3700|\
f7c027|\
firewrt|\
fonera20n|\
freestation5|\
gb-pc1|\
gl-mt300a|\
gl-mt300n|\
gl-mt750|\
gl-mt300n-v2|\
hc5*61|\
hc5661a|\
hg255d|\
hlk-rm04|\
hpm|\
ht-tm02|\
hw550-3g|\
ip2202|\
jhr-n805r|\
jhr-n825r|\
jhr-n926r|\
k2p|\
kn|\
kn_rc|\
kn_rf|\
kng_rc|\
linkits7688|\
linkits7688d|\
m2m|\
m3|\
m4-4M|\
m4-8M|\
mac1200rv2|\
microwrt|\
miniembplug|\
miniembwifi|\
miwifi-mini|\
miwifi-nano|\
mlw221|\
mlwg2|\
mofi3500-3gn|\
mpr-a1|\
mpr-a2|\
mr-102n|\
mt7628|\
mzk-750dhp|\
mzk-dp150n|\
mzk-ex300np|\
mzk-ex750np|\
mzk-w300nh2|\
mzk-wdpr|\
nbg-419n|\
nbg-419n2|\
newifi-d1|\
nixcore-x1-8M|\
nixcore-x1-16M|\
nw718|\
omega2|\
omega2p|\
oy-0001|\
pbr-d1|\
pbr-m1|\
psg1208|\
psg1218a|\
psg1218b|\
psr-680w|\
px-4885-4M|\
px-4885-8M|\
rb750gr3|\
re6500|\
rp-n53|\
rt5350f-olinuxino|\
rt5350f-olinuxino-evb|\
rt-ac51u|\
rt-g32-b1|\
rt-n10-plus|\
rt-n13u|\
rt-n14u|\
rt-n15|\
rt-n56u|\
rut5xx|\
sap-g3200u3|\
sk-wb8|\
sl-r7205|\
tew-638apb-v2|\
tew-691gr|\
tew-692gr|\
tew-714tru|\
timecloud|\
tiny-ac|\
ur-326n4g|\
ur-336un|\
v22rw-2x2|\
vocore-8M|\
vocore-16M|\
vocore2|\
vr500|\
w150m|\
w2914nsv2|\
w306r-v20|\
w502u|\
wf-2881|\
whr-1166d|\
whr-300hp2|\
whr-600d|\
whr-g300n|\
widora-neo|\
witi|\
wizfi630a|\
wl-330n|\
wl-330n3g|\
wl-341v3|\
wl-351|\
wl-wn575a3|\
wli-tx4-ag300n|\
wlr-6000|\
wmdr-143n|\
wmr-300|\
wn3000rpv3|\
wnce2001|\
wndr3700v5|\
wr512-3gn-4M|\
wr512-3gn-8M|\
wr6202|\
wrh-300cr|\
wrtnode|\
wrtnode2r |\
wrtnode2p |\
wsr-600|\
wt1520-4M|\
wt1520-8M|\
wt3020-4M|\
wt3020-8M|\
wzr-agl300nh|\
x5|\
x8|\
y1|\
y1s|\
zbt-ape522ii|\
zbt-cpe102|\
zbt-wa05|\
zbt-we1326|\
zbt-we2026|\
zbt-we826-16M|\
zbt-we826-32M|\
zbt-wg2626|\
zbt-wg3526-16M|\
zbt-wg3526-32M|\
zbt-wr8305rt|\
zte-q7|\
youku-yk1)
[ "$magic" != "27051956" ] && {
echo "Invalid image type."
return 1
}
return 0
;;
3g-6200n|\
3g-6200nl|\
br-6475nd)
[ "$magic" != "43535953" ] && {
echo "Invalid image type."
return 1
}
return 0
;;
ar670w)
[ "$magic" != "6d000080" ] && {
echo "Invalid image type."
return 1
}
return 0
;;
c20i|\
c50|\
mr200|\
tl-wr840n-v4|\
tl-wr841n-v13)
[ "$magic" != "03000000" ] && {
echo "Invalid image type."
return 1
}
return 0
;;
cy-swr1100|\
dch-m225|\
dir-610-a1|\
dir-645|\
dir-860l-b1)
[ "$magic" != "5ea3a417" ] && {
echo "Invalid image type."
return 1
}
return 0
;;
hc5962|\
r6220)
# these boards use metadata images
return 0
;;
re350-v1)
[ "$magic" != "01000000" ] && {
echo "Invalid image type."
return 1
}
return 0
;;
ubnt-erx|\
ubnt-erx-sfp)
nand_do_platform_check "$board" "$1"
return $?;
;;
wcr-1166ds|\
wsr-1166)
[ "$magic" != "48445230" ] && {
echo "Invalid image type."
return 1
}
return 0
;;
esac
echo "Sysupgrade is not yet supported on $board."
return 1
}
platform_nand_pre_upgrade() {
local board=$(board_name)
case "$board" in
ubnt-erx|\
ubnt-erx-sfp)
platform_upgrade_ubnt_erx "$ARGV"
;;
esac
}
platform_do_upgrade() {
local board=$(board_name)
case "$board" in
hc5962|\
r6220|\
ubnt-erx|\
ubnt-erx-sfp)
nand_do_upgrade "$ARGV"
;;
*)
default_do_upgrade "$ARGV"
;;
esac
}
disable_watchdog() {
killall watchdog
( ps | grep -v 'grep' | grep '/dev/watchdog' ) && {
echo 'Could not disable watchdog'
return 1
}
}
blink_led() {
. /etc/diag.sh; set_state upgrade
}
append sysupgrade_pre_upgrade disable_watchdog
append sysupgrade_pre_upgrade blink_led