2010-04-11 17:47:25 +00:00
|
|
|
#
|
|
|
|
# Copyright (C) 2010 OpenWrt.org
|
|
|
|
#
|
|
|
|
|
|
|
|
. /lib/ramips.sh
|
|
|
|
|
|
|
|
PART_NAME=firmware
|
|
|
|
RAMFS_COPY_DATA=/lib/ramips.sh
|
|
|
|
|
|
|
|
platform_check_image() {
|
|
|
|
local board=$(ramips_board_name)
|
2012-10-18 07:23:00 +00:00
|
|
|
local magic="$(get_magic_long "$1")"
|
2010-04-11 17:47:25 +00:00
|
|
|
|
2014-06-02 12:43:22 +00:00
|
|
|
[ "$#" -gt 1 ] && return 1
|
2010-04-11 17:47:25 +00:00
|
|
|
|
|
|
|
case "$board" in
|
2015-08-17 06:01:49 +00:00
|
|
|
3g150b|\
|
|
|
|
3g300m|\
|
|
|
|
3g-6200n|\
|
|
|
|
3g-6200nl|\
|
|
|
|
a5-v11|\
|
|
|
|
ai-br100|\
|
|
|
|
air3gii|\
|
|
|
|
all0239-3g|\
|
|
|
|
all0256n|\
|
|
|
|
all5002|\
|
|
|
|
all5003|\
|
|
|
|
ar725w|\
|
|
|
|
asl26555|\
|
|
|
|
awapn2403|\
|
|
|
|
awm002-evb|\
|
|
|
|
awm003-evb|\
|
|
|
|
bc2|\
|
|
|
|
broadway|\
|
|
|
|
carambola|\
|
|
|
|
cf-wr800n|\
|
2016-04-26 11:43:01 +00:00
|
|
|
cs-qr10|\
|
2015-08-17 06:01:49 +00:00
|
|
|
d105|\
|
|
|
|
dap-1350|\
|
2015-09-14 20:08:55 +00:00
|
|
|
db-wrt01|\
|
2015-08-17 06:01:49 +00:00
|
|
|
dcs-930|\
|
|
|
|
dcs-930l-b1|\
|
|
|
|
dir-300-b1|\
|
|
|
|
dir-300-b7|\
|
|
|
|
dir-320-b1|\
|
|
|
|
dir-600-b1|\
|
|
|
|
dir-600-b2|\
|
|
|
|
dir-615-d|\
|
|
|
|
dir-615-h1|\
|
|
|
|
dir-620-a1|\
|
|
|
|
dir-620-d1|\
|
|
|
|
dir-810l|\
|
|
|
|
e1700|\
|
|
|
|
esr-9753|\
|
2016-02-12 08:29:33 +00:00
|
|
|
ex2700|\
|
2015-08-17 06:01:49 +00:00
|
|
|
f7c027|\
|
|
|
|
firewrt|\
|
|
|
|
fonera20n|\
|
|
|
|
freestation5|\
|
2016-03-10 19:11:57 +00:00
|
|
|
gl-mt300a|\
|
2016-03-10 19:12:04 +00:00
|
|
|
gl-mt300n|\
|
2016-03-10 19:12:10 +00:00
|
|
|
gl-mt750|\
|
2015-10-05 10:25:47 +00:00
|
|
|
hc5*61|\
|
2015-08-17 06:01:49 +00:00
|
|
|
hg255d|\
|
|
|
|
hlk-rm04|\
|
|
|
|
hpm|\
|
|
|
|
ht-tm02|\
|
|
|
|
hw550-3g|\
|
|
|
|
ip2202|\
|
2016-03-04 08:33:09 +00:00
|
|
|
jhr-n805r|\
|
|
|
|
jhr-n825r|\
|
|
|
|
jhr-n926r|\
|
2015-10-19 10:07:38 +00:00
|
|
|
linkits7688|\
|
|
|
|
linkits7688d|\
|
2015-08-17 06:01:49 +00:00
|
|
|
m2m|\
|
|
|
|
m3|\
|
|
|
|
m4|\
|
|
|
|
microwrt|\
|
|
|
|
miniembplug|\
|
|
|
|
miniembwifi|\
|
|
|
|
miwifi-mini|\
|
2016-03-16 09:26:48 +00:00
|
|
|
miwifi-nano|\
|
2015-08-17 06:01:49 +00:00
|
|
|
mlw221|\
|
|
|
|
mlwg2|\
|
|
|
|
mofi3500-3gn|\
|
|
|
|
mpr-a1|\
|
|
|
|
mpr-a2|\
|
|
|
|
mr-102n|\
|
2016-02-28 15:46:27 +00:00
|
|
|
mt7628|\
|
2016-04-20 17:19:05 +00:00
|
|
|
mzk-750dhp|\
|
2015-08-17 06:01:49 +00:00
|
|
|
mzk-dp150n|\
|
2016-04-26 11:43:06 +00:00
|
|
|
mzk-ex300np|\
|
2016-04-29 11:34:56 +00:00
|
|
|
mzk-ex750np|\
|
2015-08-17 06:01:49 +00:00
|
|
|
mzk-w300nh2|\
|
2016-03-08 18:11:59 +00:00
|
|
|
mzk-wdpr|\
|
2015-08-17 06:01:49 +00:00
|
|
|
nbg-419n|\
|
|
|
|
nw718|\
|
|
|
|
oy-0001|\
|
|
|
|
pbr-m1|\
|
2016-02-15 18:45:22 +00:00
|
|
|
psg1208|\
|
2015-08-17 06:01:49 +00:00
|
|
|
psr-680w|\
|
|
|
|
px-4885|\
|
|
|
|
re6500|\
|
|
|
|
rp-n53|\
|
|
|
|
rt5350f-olinuxino|\
|
|
|
|
rt5350f-olinuxino-evb|\
|
|
|
|
rt-g32-b1|\
|
|
|
|
rt-n10-plus|\
|
|
|
|
rt-n13u|\
|
|
|
|
rt-n14u|\
|
|
|
|
rt-n15|\
|
|
|
|
rt-n56u|\
|
|
|
|
rut5xx|\
|
|
|
|
sap-g3200u3|\
|
2016-05-10 16:17:54 +00:00
|
|
|
sk-wb8|\
|
2015-08-17 06:01:49 +00:00
|
|
|
sl-r7205|\
|
|
|
|
tew-691gr|\
|
|
|
|
tew-692gr|\
|
2015-11-02 10:17:51 +00:00
|
|
|
tiny-ac|\
|
2015-08-17 06:01:49 +00:00
|
|
|
ur-326n4g|\
|
|
|
|
ur-336un|\
|
|
|
|
v22rw-2x2|\
|
|
|
|
vocore|\
|
|
|
|
w150m|\
|
|
|
|
w306r-v20|\
|
|
|
|
w502u|\
|
2015-11-24 18:29:26 +00:00
|
|
|
wf-2881|\
|
2015-08-17 06:01:49 +00:00
|
|
|
whr-1166d|\
|
|
|
|
whr-300hp2|\
|
|
|
|
whr-600d|\
|
|
|
|
whr-g300n|\
|
2015-12-11 15:04:13 +00:00
|
|
|
witi|\
|
2015-09-14 20:09:31 +00:00
|
|
|
wizfi630a|\
|
2015-08-17 06:01:49 +00:00
|
|
|
wl-330n|\
|
|
|
|
wl-330n3g|\
|
|
|
|
wl-341v3|\
|
|
|
|
wl-351|\
|
|
|
|
wli-tx4-ag300n|\
|
|
|
|
wmr-300|\
|
|
|
|
wnce2001|\
|
2016-04-26 11:43:53 +00:00
|
|
|
wndr3700v5|\
|
2015-08-17 06:01:49 +00:00
|
|
|
wr512-3gn|\
|
|
|
|
wr6202|\
|
2016-04-21 19:46:59 +00:00
|
|
|
wrh-300cr|\
|
2015-08-17 06:01:49 +00:00
|
|
|
wrtnode|\
|
2016-01-01 21:19:50 +00:00
|
|
|
wrtnode2r |\
|
|
|
|
wrtnode2p |\
|
2015-08-17 06:01:49 +00:00
|
|
|
wsr-600|\
|
|
|
|
wt1520|\
|
|
|
|
wt3020|\
|
|
|
|
wzr-agl300nh|\
|
|
|
|
x5|\
|
|
|
|
x8|\
|
|
|
|
y1|\
|
|
|
|
y1s|\
|
|
|
|
zbt-wa05|\
|
2016-03-01 09:17:06 +00:00
|
|
|
zbt-we826|\
|
2015-11-02 10:18:19 +00:00
|
|
|
zbt-wg2626|\
|
2016-04-21 19:47:08 +00:00
|
|
|
zbt-wg3526|\
|
2015-08-17 06:01:49 +00:00
|
|
|
zbt-wr8305rt|\
|
2015-11-24 18:29:02 +00:00
|
|
|
zte-q7|\
|
|
|
|
youku-yk1)
|
2012-10-18 07:23:00 +00:00
|
|
|
[ "$magic" != "27051956" ] && {
|
2010-04-11 17:47:25 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
2015-08-17 06:18:38 +00:00
|
|
|
ar670w)
|
|
|
|
[ "$magic" != "6d000080" ] && {
|
2015-01-03 18:31:06 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
2015-08-17 06:18:38 +00:00
|
|
|
br-6475nd)
|
|
|
|
[ "$magic" != "43535953" ] && {
|
2014-11-03 08:00:13 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
2015-08-17 06:18:38 +00:00
|
|
|
c20i)
|
|
|
|
[ "$magic" != "03000000" ] && {
|
2012-10-18 07:23:03 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
2015-08-17 06:18:38 +00:00
|
|
|
cy-swr1100|\
|
|
|
|
dir-610-a1|\
|
|
|
|
dir-645|\
|
|
|
|
dir-860l-b1)
|
|
|
|
[ "$magic" != "5ea3a417" ] && {
|
2014-01-15 18:29:44 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
2015-08-17 06:18:38 +00:00
|
|
|
wsr-1166)
|
|
|
|
[ "$magic" != "48445230" ] && {
|
2015-01-09 15:40:51 +00:00
|
|
|
echo "Invalid image type."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return 0
|
|
|
|
;;
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
ubnt-erx)
|
|
|
|
nand_do_platform_check "$board" "$1"
|
|
|
|
return $?;
|
|
|
|
;;
|
2010-04-11 17:47:25 +00:00
|
|
|
esac
|
|
|
|
|
|
|
|
echo "Sysupgrade is not yet supported on $board."
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
ramips: add support for Ubiquiti EdgeRouter X (UBNT-ERX)
This router is based on MT7621 SoC, no wifi, no usb, nand.
Works:
* Boots.
* Ethernet.
* Switch.
* Button (reset).
* Flashing OpenWrt from stock firmware.
* Upgrading OpenWrt.
Doesn't work:
* No GPIO leds. All leds are controlled by switch,
but stock firmware was able to control them.
* SoC has crypto engine but no open driver.
* SoC has nat acceleration, but no open driver.
* This router has 2MB spi flash soldered in but MT
nand/spi drivers do not support pin sharing,
so it is not accessable and disabled. Stock
firmware could read it and it was empty.
* PoE out.
Router has serial pins populated. If looking at the top
of the router, then counting from Eth sockets pins go as:
'GND, RX, TX, GND'. 3.3v, 57600.
U-boot bootloader supports tftpboot, controlled from serial.
This router has two kernel partitions: 'live' and 'backup'.
They are swapped during flashing (on both stock and OpenWrt).
Active partition is controlled by a flag in a factory partition.
U-boot has custom command to switch active kernel partition.
Kernel partitions are 'bare flash' 3MB. Stock bootloader has
no UBI support. Stock rootfs is UBIFS.
Flashing procedure.
Stock firmware uses custom kernel patch to mount squashfs
from a file that is located on UBIFS volume. This makes wiping
out this volume from within stock firmware difficult.
Instead this patch builds image that is flashable by stock firmware
and contains initrams image (with minimal set of packages
to fit into kernel partition). Once this is flashed one can reboot
into initramfs OpenWrt and use sysupgrade to flash OpenWrt including
rootfs into nand.
Note: factory image is only built if initramfs image is enabled.
Signed-off-by: Nikolay Martynov <mar.kolya@gmail.com>
SVN-Revision: 47881
2015-12-12 07:38:06 +00:00
|
|
|
platform_nand_pre_upgrade() {
|
|
|
|
local board=$(ramips_board_name)
|
|
|
|
|
|
|
|
case "$board" in
|
|
|
|
ubnt-erx)
|
|
|
|
platform_upgrade_ubnt_erx "$ARGV"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
|
|
|
platform_pre_upgrade() {
|
|
|
|
local board=$(ramips_board_name)
|
|
|
|
|
|
|
|
case "$board" in
|
|
|
|
ubnt-erx)
|
|
|
|
nand_do_upgrade "$ARGV"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
2010-04-11 17:47:25 +00:00
|
|
|
platform_do_upgrade() {
|
|
|
|
local board=$(ramips_board_name)
|
|
|
|
|
|
|
|
case "$board" in
|
|
|
|
*)
|
|
|
|
default_do_upgrade "$ARGV"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
2011-07-03 15:01:43 +00:00
|
|
|
|
|
|
|
disable_watchdog() {
|
|
|
|
killall watchdog
|
|
|
|
( ps | grep -v 'grep' | grep '/dev/watchdog' ) && {
|
|
|
|
echo 'Could not disable watchdog'
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-11-03 13:32:02 +00:00
|
|
|
blink_led() {
|
|
|
|
. /etc/diag.sh; set_state upgrade
|
|
|
|
}
|
|
|
|
|
2011-07-03 15:01:43 +00:00
|
|
|
append sysupgrade_pre_upgrade disable_watchdog
|
2015-11-03 13:32:02 +00:00
|
|
|
append sysupgrade_pre_upgrade blink_led
|