This is an automated email from Gerrit. Hsiangkai Wang ([email protected]) just uploaded a new patch set to Gerrit, which you can find at http://openocd.zylin.com/1316
-- gerrit commit 45a1cfbb529014f801fb120fed493c745a801be6 Author: Hsiangkai <[email protected]> Date: Fri Apr 12 09:41:43 2013 +0800 nds32: avoid redundant polling To enable/disable polling appropriately. Enable polling when 1. exit debug mode 2. assert_reset Disable polling when 1. enter debug mode 2. deassert_reset Change-Id: I724071feb4e9563d43e7e18fb876eb6800c6c402 Signed-off-by: Hsiangkai <[email protected]> diff --git a/src/target/nds32.c b/src/target/nds32.c index 0738461..d948c82 100644 --- a/src/target/nds32.c +++ b/src/target/nds32.c @@ -2176,6 +2176,8 @@ int nds32_assert_reset(struct target *target) struct nds32 *nds32 = target_to_nds32(target); struct aice_port_s *aice = target_to_aice(target); + jtag_poll_set_enabled(true); + if (target->reset_halt) { if (nds32->soft_reset_halt) target->type->soft_reset_halt(target); @@ -2213,6 +2215,7 @@ static int nds32_gdb_attach(struct nds32 *nds32) } target_halt(nds32->target); + target_poll(nds32->target); gdb_attached = true; } diff --git a/src/target/nds32_v2.c b/src/target/nds32_v2.c index 683fb33..6c286f9 100644 --- a/src/target/nds32_v2.c +++ b/src/target/nds32_v2.c @@ -275,6 +275,10 @@ static int nds32_v2_restore_interrupt_stack(struct nds32_v2_common *nds32_v2) */ static int nds32_v2_debug_entry(struct nds32 *nds32, bool enable_watchpoint) { + LOG_DEBUG("nds32_v2_debug_entry"); + + jtag_poll_set_enabled(false); + struct nds32_v2_common *nds32_v2 = target_to_nds32_v2(nds32->target); CHECK_RETVAL(nds32_v2_deactivate_hardware_breakpoint(nds32->target)); @@ -352,6 +356,8 @@ static int nds32_v2_leave_debug_state(struct nds32 *nds32, bool enable_watchpoin register_cache_invalidate(nds32->core_cache); + jtag_poll_set_enabled(true); + return ERROR_OK; } @@ -389,6 +395,10 @@ static int nds32_v2_deassert_reset(struct target *target) retval = target_halt(target); if (retval != ERROR_OK) return retval; + /* call target_poll() to avoid "Halt timed out" */ + CHECK_RETVAL(target_poll(target)); + } else { + jtag_poll_set_enabled(false); } return ERROR_OK; diff --git a/src/target/nds32_v3.c b/src/target/nds32_v3.c index 82e6fb6..0e80592 100644 --- a/src/target/nds32_v3.c +++ b/src/target/nds32_v3.c @@ -475,8 +475,12 @@ static int nds32_v3_deassert_reset(struct target *target) retval = target_halt(target); if (retval != ERROR_OK) return retval; + + /* call target_poll() to avoid "Halt timed out" */ + CHECK_RETVAL(target_poll(target)); } else { /* reset-halt */ + jtag_poll_set_enabled(false); struct nds32_v3_common *nds32_v3 = target_to_nds32_v3(target); struct nds32 *nds32 = &(nds32_v3->nds32); diff --git a/src/target/nds32_v3m.c b/src/target/nds32_v3m.c index 781f686..d28f766 100644 --- a/src/target/nds32_v3m.c +++ b/src/target/nds32_v3m.c @@ -209,6 +209,10 @@ static int nds32_v3m_restore_interrupt_stack(struct nds32_v3m_common *nds32_v3m) */ static int nds32_v3m_debug_entry(struct nds32 *nds32, bool enable_watchpoint) { + LOG_DEBUG("nds32_v3m_debug_entry"); + + jtag_poll_set_enabled(false); + struct nds32_v3m_common *nds32_v3m = target_to_nds32_v3m(nds32->target); /* deactivate all hardware breakpoints */ @@ -290,6 +294,9 @@ static int nds32_v3m_leave_debug_state(struct nds32 *nds32, bool enable_watchpoi register_cache_invalidate(nds32->core_cache); + /* enable polling */ + jtag_poll_set_enabled(true); + return ERROR_OK; } @@ -312,6 +319,10 @@ static int nds32_v3m_deassert_reset(struct target *target) retval = target_halt(target); if (retval != ERROR_OK) return retval; + /* call target_poll() to avoid "Halt timed out" */ + CHECK_RETVAL(target_poll(target)); + } else { + jtag_poll_set_enabled(false); } return ERROR_OK; -- ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ OpenOCD-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openocd-devel
