aboutsummaryrefslogtreecommitdiff
path: root/tcl
diff options
context:
space:
mode:
authorVivien Didelot <vivien.didelot@savoirfairelinux.com>2016-09-21 11:16:47 -0400
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>2016-10-17 09:16:33 +0100
commit9d98f8b7a7d0a4c1d50c1d5d9df62dc2d0ede26c (patch)
treea1e99c37a554add715d417c7df1cd8d44aeefc25 /tcl
parent537c019ced7dd91ad1fd9ac58908d94f24650357 (diff)
tcl/board: add Linksys WAG200G config
The Linksys WAG200G router has a TI AR7 SoC and a 4MB Flash layout similar to the Netgear DG834v3 router [1]. Below is an example of a successful flash recovery, using a TUMPA, connected to the MIPS EJTAG 2.6 header (JP102) of the router. WAG200G [2] TUMPA [3] Desc Pin Pin Desc ------------------------ nTRST 1 3 nTRST TDI 3 5 TDI TDO 5 13 TDO TMS 7 7 TMS TCK 9 9 TCK nSRST 11 15 RST GND 2 4 GND Note that nSRST is optional to halt the CPU, but is required to probe the flash. For instance, recover the kernel with: $ sudo ./src/openocd -s tcl \ -f interface/ftdi/tumpa.cfg \ -f tools/firmware-recovery.tcl \ -c 'board linksys-wag200g; reset_config srst_only; flash_part kernel /path/to/kernel.bin; shutdown' [1] https://wiki.openwrt.org/toh/linksys/wag200g [2] https://www.linux-mips.org/wiki/JTAG#JTAG_headers [3] http://www.tiaowiki.com/w/TIAO_USB_Multi_Protocol_Adapter_User's_Manual#20_PIN_JTAG_Connector Change-Id: I952ba9f706e2e4f8f95ca03a5fa58f391ca030b6 Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Reviewed-on: http://openocd.zylin.com/3776 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'tcl')
-rw-r--r--tcl/board/linksys-wag200g.cfg27
-rw-r--r--tcl/tools/firmware-recovery.tcl1
2 files changed, 28 insertions, 0 deletions
diff --git a/tcl/board/linksys-wag200g.cfg b/tcl/board/linksys-wag200g.cfg
new file mode 100644
index 00000000..aa4887f9
--- /dev/null
+++ b/tcl/board/linksys-wag200g.cfg
@@ -0,0 +1,27 @@
+#
+# Linksys WAG200G Router
+#
+# The stock firmware Flash layout is organized as follow:
+#
+# Start End Device
+# 0x90000000 0x90020000 /dev/mtdblock/2
+# 0x90020000 0x900d0000 /dev/mtdblock/1
+# 0x900d0000 0x903a0000 /dev/mtdblock/0
+# 0x903a0000 0x903e0000 /dev/mtdblock/5
+# 0x903e0000 0x903f0000 /dev/mtdblock/3
+# 0x903f0000 0x90400000 /dev/mtdblock/4
+
+set partition_list {
+ adam2 { "Adam2 bootloader" 0x90000000 0x00020000 }
+ kernel { "Kernel" 0x90020000 0x000b0000 }
+ rootfs { "Root FS" 0x900d0000 0x002d0000 }
+ lang { "Minix language part" 0x903a0000 0x00040000 }
+ config { "Firmware config" 0x903e0000 0x00010000 }
+ adam2env { "Adam2 environment" 0x903f0000 0x00010000 }
+}
+
+source [find target/ti-ar7.cfg]
+
+# External 4MB MXIC 29LV320MBTC Flash (Manufacturer/Device: 0x00c2 0x227e)
+set _FLASHNAME $_CHIPNAME.flash
+flash bank $_FLASHNAME cfi 0x90000000 0x00400000 2 2 $_TARGETNAME
diff --git a/tcl/tools/firmware-recovery.tcl b/tcl/tools/firmware-recovery.tcl
index 6e23540f..8e017ce5 100644
--- a/tcl/tools/firmware-recovery.tcl
+++ b/tcl/tools/firmware-recovery.tcl
@@ -4,6 +4,7 @@ echo "Use -c firmware_help to get help\n"
set known_boards {
"asus-rt-n16 ASUS RT-N16"
"asus-rt-n66u ASUS RT-N66U"
+ "linksys-wag200g Linksys WAG200G"
"linksys-wrt54gl Linksys WRT54GL v1.1"
"netgear-dg834v3 Netgear DG834G v3"
"tp-link_tl-mr3020 TP-LINK TL-MR3020"