summaryrefslogtreecommitdiff
path: root/src/target/xscale.h
diff options
context:
space:
mode:
authordrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2007-06-28 10:32:58 +0000
committerdrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2007-06-28 10:32:58 +0000
commit32c6d70f6acd41dd1af5ea73051dd6c8a46eac14 (patch)
tree7e9cf887c56d41c12cc894f95481c7aa85ddb73e /src/target/xscale.h
parent8c290412d28f9eef568dac0cfc20ccd4a9eca4d5 (diff)
downloadopenocd+libswd-32c6d70f6acd41dd1af5ea73051dd6c8a46eac14.tar.gz
openocd+libswd-32c6d70f6acd41dd1af5ea73051dd6c8a46eac14.tar.bz2
openocd+libswd-32c6d70f6acd41dd1af5ea73051dd6c8a46eac14.tar.xz
openocd+libswd-32c6d70f6acd41dd1af5ea73051dd6c8a46eac14.zip
- fixed endianness helper macros (thanks to obilix and wiml for finding and fixing this bug)
- added declarations for 32bit fileio access functions (network byte order) - fixed bug in etm trace dump file handling - added XScale trace buffer decoding - fixed arm_simulator ERROR numbers (-7xx used twice) - fixed minor bug in debug output in stellaris.c git-svn-id: svn://svn.berlios.de/openocd/trunk@178 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/target/xscale.h')
-rw-r--r--src/target/xscale.h43
1 files changed, 40 insertions, 3 deletions
diff --git a/src/target/xscale.h b/src/target/xscale.h
index 9fcb265e..86acfbde 100644
--- a/src/target/xscale.h
+++ b/src/target/xscale.h
@@ -24,6 +24,8 @@
#include "register.h"
#include "armv4_5.h"
#include "armv4_5_mmu.h"
+#include "trace.h"
+#include "image.h"
#define XSCALE_COMMON_MAGIC 0x58534341
@@ -47,6 +49,40 @@ enum xscale_debug_reason
XSCALE_DBG_REASON_TB_FULL,
};
+enum xscale_trace_entry_type
+{
+ XSCALE_TRACE_MESSAGE,
+ XSCALE_TRACE_ADDRESS,
+};
+
+typedef struct xscale_trace_entry_s
+{
+ u8 data;
+ enum xscale_trace_entry_type type;
+} xscale_trace_entry_t;
+
+typedef struct xscale_trace_data_s
+{
+ xscale_trace_entry_t *entries;
+ int depth;
+ u32 chkpt0;
+ u32 chkpt1;
+ u32 last_instruction;
+ struct xscale_trace_data_s *next;
+} xscale_trace_data_t;
+
+typedef struct xscale_trace_s
+{
+ trace_status_t capture_status; /* current state of capture run */
+ image_t *image; /* source for target opcodes */
+ xscale_trace_data_t *data; /* linked list of collected trace data */
+ int buffer_enabled; /* whether trace buffer is enabled */
+ int buffer_fill; /* maximum number of trace runs to read (-1 for wrap-around) */
+ int pc_ok;
+ u32 current_pc;
+ armv4_5_state_t core_state; /* current core state (ARM, Thumb, Jazelle) */
+} xscale_trace_t;
+
typedef struct xscale_common_s
{
int common_magic;
@@ -93,9 +129,8 @@ typedef struct xscale_common_s
u16 thumb_bkpt;
u8 vector_catch;
-
- int trace_buffer_enabled;
- int trace_buffer_fill;
+
+ xscale_trace_t trace;
int arch_debug_reason;
@@ -142,4 +177,6 @@ enum
XSCALE_TXRXCTRL,
};
+#define ERROR_XSCALE_NO_TRACE_DATA (-1500)
+
#endif /* XSCALE_H */