aboutsummaryrefslogtreecommitdiff
path: root/tcl/target/bcm47xx.cfg
blob: 0132bb80246659209c3b3f70015e1f7e8d922741 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
}