summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-08-20 07:27:24 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-08-20 07:27:24 +0000
commit7e94e2e8b18a382455a9e5965f813d781dc0218a (patch)
treef0721aac18c3bb706c3623d833dd44dea699e27c /src
parentc4567145ae8da57070e24824b8727b79dddc99a0 (diff)
downloadopenocd+libswd-7e94e2e8b18a382455a9e5965f813d781dc0218a.tar.gz
openocd+libswd-7e94e2e8b18a382455a9e5965f813d781dc0218a.tar.bz2
openocd+libswd-7e94e2e8b18a382455a9e5965f813d781dc0218a.tar.xz
openocd+libswd-7e94e2e8b18a382455a9e5965f813d781dc0218a.zip
Daniel Gimpelevich fix reset halt on feroceon
git-svn-id: svn://svn.berlios.de/openocd/trunk@950 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src')
-rw-r--r--src/target/feroceon.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/target/feroceon.c b/src/target/feroceon.c
index 38444ab7..e4874620 100644
--- a/src/target/feroceon.c
+++ b/src/target/feroceon.c
@@ -60,6 +60,19 @@ int feroceon_bulk_write_memory(target_t *target, u32 address, u32 count, u8 *buf
int feroceon_init_target(struct command_context_s *cmd_ctx, struct target_s *target);
int feroceon_quit(void);
+int feroceon_assert_reset(target_t *target)
+{
+ armv4_5_common_t *armv4_5 = target->arch_info;
+ arm7_9_common_t *arm7_9 = armv4_5->arch_info;
+ int ud = arm7_9->use_dbgrq;
+
+ arm7_9->use_dbgrq = 0;
+ if (target->reset_halt)
+ arm7_9_halt(target);
+ arm7_9->use_dbgrq = ud;
+ return arm7_9_assert_reset(target);
+}
+
target_type_t feroceon_target =
{
.name = "feroceon",
@@ -73,7 +86,7 @@ target_type_t feroceon_target =
.resume = arm7_9_resume,
.step = arm7_9_step,
- .assert_reset = arm7_9_assert_reset,
+ .assert_reset = feroceon_assert_reset,
.deassert_reset = arm7_9_deassert_reset,
.soft_reset_halt = arm926ejs_soft_reset_halt,