aboutsummaryrefslogtreecommitdiff
path: root/src/target/nds32.c
diff options
context:
space:
mode:
authorHsiangkai Wang <hsiangkai@gmail.com>2013-07-17 10:57:07 +0800
committerSpencer Oliver <spen@spen-soft.co.uk>2013-09-13 19:36:27 +0000
commitcd0ef0cd3f738a8e1b81cfc06b8ec46345f970f0 (patch)
tree78e7e9ba4b06861412e326c87a3c8e8e5f2ffd66 /src/target/nds32.c
parent4be6e268254c7b82bd32d25af903c2d0812dce07 (diff)
nds32: refine nds32_v2 implement
Change-Id: I6e26ffbdcd426a15b34bff022964946f613f318c Signed-off-by: Hsiangkai Wang <hsiangkai@gmail.com> Reviewed-on: http://openocd.zylin.com/1569 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
Diffstat (limited to 'src/target/nds32.c')
-rw-r--r--src/target/nds32.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/target/nds32.c b/src/target/nds32.c
index 50d6e3b9..11bb01d0 100644
--- a/src/target/nds32.c
+++ b/src/target/nds32.c
@@ -2159,11 +2159,17 @@ int nds32_assert_reset(struct target *target)
{
struct nds32 *nds32 = target_to_nds32(target);
struct aice_port_s *aice = target_to_aice(target);
+ struct nds32_cpu_version *cpu_version = &(nds32->cpu_version);
jtag_poll_set_enabled(true);
if (target->reset_halt) {
- if (nds32->soft_reset_halt)
+ if ((nds32->soft_reset_halt)
+ || (nds32->edm.version < 0x51)
+ || ((nds32->edm.version == 0x51)
+ && (cpu_version->revision == 0x1C)
+ && (cpu_version->cpu_id_family == 0xC)
+ && (cpu_version->cpu_id_version == 0x0)))
target->type->soft_reset_halt(target);
else
aice_assert_srst(aice, AICE_RESET_HOLD);