From ecfc1e39a2621cf3f2d2c67841cc31cb670326c0 Mon Sep 17 00:00:00 2001
From: drath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Tue, 21 Aug 2007 16:21:05 +0000
Subject: - correctly initialize start address for XScale trace buffer decodes
 in fill-once mode

git-svn-id: svn://svn.berlios.de/openocd/trunk@202 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 src/target/xscale.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

(limited to 'src/target')

diff --git a/src/target/xscale.c b/src/target/xscale.c
index 59f1795e..b207dbb2 100644
--- a/src/target/xscale.c
+++ b/src/target/xscale.c
@@ -3440,6 +3440,19 @@ int xscale_handle_trace_buffer_command(struct command_context_s *cmd_ctx, char *
 		xscale->trace.buffer_fill = -1;
 	}
 	
+	if (xscale->trace.buffer_enabled)
+	{
+		/* if we enable the trace buffer in fill-once
+		 * mode we know the address of the first instruction */
+		xscale->trace.pc_ok = 1;
+		xscale->trace.current_pc = buf_get_u32(armv4_5->core_cache->reg_list[15].value, 0, 32);
+	}
+	else
+	{
+		/* otherwise the address is unknown, and we have no known good PC */
+		xscale->trace.pc_ok = 0;
+	}
+	
 	command_print(cmd_ctx, "trace buffer %s (%s)", 
 		(xscale->trace.buffer_enabled) ? "enabled" : "disabled",
 		(xscale->trace.buffer_fill > 0) ? "fill" : "wrap");
-- 
cgit v1.2.3