diff --git a/doc/openocd.texi b/doc/openocd.texi index a2a06251596a0d2eaa281b869d4aa6c597a4db9b..7859e9a64dec0b04756f96cc601d4414e09db006 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -596,6 +596,13 @@ ARM920t options are similar to ARM9TDMI options. @cindex arm966e options ARM966e options are similar to ARM9TDMI options. +@subsection cortex_m3 options +@cindex cortex_m3 options +use variant <@var{variant}> @option{lm3s} when debugging luminary lm3s targets. This will cause +openocd to use a software reset rather than asserting SRST to avoid a issue with clearing +the debug registers. This is fixed in Fury Rev B, DustDevil Rev B, Tempest, these revisions will +be detected and the normal reset behaviour used. + @subsection xscale options @cindex xscale options Supported variants are @option{ixp42x}, @option{ixp45x}, @option{ixp46x}, diff --git a/src/target/cortex_m3.c b/src/target/cortex_m3.c index 1f9674fad000590b9890896120275ae7bc3448a7..ec3851667d386a380766b89af9e11397c21e34ff 100644 --- a/src/target/cortex_m3.c +++ b/src/target/cortex_m3.c @@ -710,7 +710,7 @@ int cortex_m3_assert_reset(target_t *target) * when srst is asserted the luminary device seesm to also clear the debug registers * which does not match the armv7 debug TRM */ - if (strcmp(cortex_m3->variant, "luminary") == 0) + if (strcmp(cortex_m3->variant, "lm3s") == 0) { /* this causes the luminary device to reset using the watchdog */ ahbap_write_system_atomic_u32(swjdp, NVIC_AIRCR, AIRCR_VECTKEY | AIRCR_SYSRESETREQ ); diff --git a/src/target/target/lm3s6965.cfg b/src/target/target/lm3s6965.cfg index ffef12e02fc3970ca25a77c0a84c84a6b9bbdfa4..9b21cba0e1ea12261d678f3ef4a5a7d8bed5d9d4 100644 --- a/src/target/target/lm3s6965.cfg +++ b/src/target/target/lm3s6965.cfg @@ -11,7 +11,7 @@ jtag_device 4 0x1 0xf 0xe # the luminary variant causes a software reset rather than asserting SRST # this stops the debug registers from being cleared # this will be fixed in later revisions of silicon -target cortex_m3 little reset_halt 0 luminary +target cortex_m3 little reset_halt 0 lm3s # 4k working area at base of ram working_area 0 0x20000000 0x4000 nobackup diff --git a/src/target/target/lm3s811.cfg b/src/target/target/lm3s811.cfg index 56d6410fe7b15abb49647491d9c1ceb28505d470..9d13d7b1a46f3a41d6e47d97ded3af6cf220d5d9 100644 --- a/src/target/target/lm3s811.cfg +++ b/src/target/target/lm3s811.cfg @@ -11,7 +11,7 @@ jtag_device 4 0x1 0xf 0xe # the luminary variant causes a software reset rather than asserting SRST # this stops the debug registers from being cleared # this will be fixed in later revisions of silicon -target cortex_m3 little reset_halt 0 luminary +target cortex_m3 little reset_halt 0 lm3s # 2k working area at base of ram working_area 0 0x20000000 0x2000 nobackup