From 9d98f8b7a7d0a4c1d50c1d5d9df62dc2d0ede26c Mon Sep 17 00:00:00 2001 From: Vivien Didelot Date: Wed, 21 Sep 2016 11:16:47 -0400 Subject: [PATCH] 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 Reviewed-on: http://openocd.zylin.com/3776 Tested-by: jenkins Reviewed-by: Spencer Oliver --- tcl/board/linksys-wag200g.cfg | 27 +++++++++++++++++++++++++++ tcl/tools/firmware-recovery.tcl | 1 + 2 files changed, 28 insertions(+) create mode 100644 tcl/board/linksys-wag200g.cfg diff --git a/tcl/board/linksys-wag200g.cfg b/tcl/board/linksys-wag200g.cfg new file mode 100644 index 000000000..aa4887f94 --- /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 6e23540f0..8e017ce5b 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"