* Copyright (C) 2005 by Dominic Rath *
* Dominic.Rath@gmx.de *
* *
+ * Copyright (C) 2007,2008 Øyvind Harboe *
+ * oyvind.harboe@zylin.com *
+ * *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
#ifndef XSCALE_H
#define XSCALE_H
-#include "target.h"
-#include "register.h"
#include "armv4_5.h"
#include "armv4_5_mmu.h"
#include "trace.h"
-#include "image.h"
#define XSCALE_COMMON_MAGIC 0x58534341
typedef struct xscale_jtag_s
{
/* position in JTAG scan chain */
- int chain_pos;
+ jtag_tap_t *tap;
/* IR length and instructions */
int ir_length;
enum xscale_trace_entry_type
{
- XSCALE_TRACE_MESSAGE,
- XSCALE_TRACE_ADDRESS,
+ XSCALE_TRACE_MESSAGE = 0x0,
+ XSCALE_TRACE_ADDRESS = 0x1,
};
typedef struct xscale_trace_entry_s
{
- u8 data;
+ uint8_t data;
enum xscale_trace_entry_type type;
} xscale_trace_entry_t;
typedef struct xscale_trace_s
{
trace_status_t capture_status; /* current state of capture run */
- image_t *image; /* source for target opcodes */
+ struct image_s *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) */
u32 high_vectors[8];
/* static low vectors */
- u8 static_low_vectors_set; /* bit field with static vectors set by the user */
- u8 static_high_vectors_set; /* bit field with static vectors set by the user */
+ uint8_t static_low_vectors_set; /* bit field with static vectors set by the user */
+ uint8_t static_high_vectors_set; /* bit field with static vectors set by the user */
u32 static_low_vectors[8];
u32 static_high_vectors[8];
int external_debug_break;
/* breakpoint / watchpoint handling */
- int force_hw_bkpts;
int dbr_available;
int dbr0_used;
int dbr1_used;
int ibcr0_used;
int ibcr1_used;
u32 arm_bkpt;
- u16 thumb_bkpt;
+ uint16_t thumb_bkpt;
- u8 vector_catch;
+ uint8_t vector_catch;
xscale_trace_t trace;
/* possible future enhancements that go beyond XScale common stuff */
void *arch_info;
+
+ int fast_memory_access;
} xscale_common_t;
typedef struct xscale_reg_s