tcl: add bcm47xx config and Asus RT-N16 board using it
[fw/openocd] / tcl / target / bcm47xx.cfg
diff --git a/tcl/target/bcm47xx.cfg b/tcl/target/bcm47xx.cfg
new file mode 100644 (file)
index 0000000..0132bb8
--- /dev/null
@@ -0,0 +1,21 @@
+echo "Forcing reset_config to none to prevent OpenOCD from pulling SRST after the switch from LV is already performed"
+reset_config none
+
+jtag newtap $_CHIPNAME-lv tap -irlen 32 -ircapture 0x1 -irmask 0x1f -expected-id $_LVTAPID -expected-id $_CPUID
+jtag configure $_CHIPNAME-lv.tap -event setup "jtag tapenable $_CHIPNAME.cpu"
+jtag configure $_CHIPNAME-lv.tap -event tap-disable {}
+
+jtag newtap $_CHIPNAME cpu -irlen 5 -ircapture 0x1 -irmask 0x1f -expected-id $_CPUID -disable
+jtag configure $_CHIPNAME.cpu -event tap-enable "switch_lv_to_ejtag"
+
+set _TARGETNAME $_CHIPNAME.cpu
+target create $_TARGETNAME mips_m4k -endian little -chain-position $_TARGETNAME
+
+proc switch_lv_to_ejtag {} {
+    global _CHIPNAME
+    poll 0
+    irscan $_CHIPNAME-lv.tap 0x143ff3a
+    drscan $_CHIPNAME-lv.tap 32 1
+    jtag tapdisable $_CHIPNAME-lv.tap
+    poll 1
+}