cortex_a: do not try to use MMU for translation if it wasn't enabled on target stop
[fw/openocd] / src / target / xscale.h
index 49d4c71eccf445defdb126e89ab635461ee0066a..a71ec3514c0822ee214063d98df4f34126b14291 100644 (file)
@@ -18,8 +18,9 @@
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
  ***************************************************************************/
+
 #ifndef XSCALE_H
 #define XSCALE_H
 
 #define        XSCALE_IXP4XX_PXA2XX    0x0
 #define        XSCALE_PXA3XX           0x4
 
-enum xscale_debug_reason
-{
+enum xscale_debug_reason {
        XSCALE_DBG_REASON_GENERIC,
        XSCALE_DBG_REASON_RESET,
        XSCALE_DBG_REASON_TB_FULL,
 };
 
-enum xscale_trace_entry_type
-{
+enum xscale_trace_entry_type {
        XSCALE_TRACE_MESSAGE = 0x0,
        XSCALE_TRACE_ADDRESS = 0x1,
 };
 
-struct xscale_trace_entry
-{
+struct xscale_trace_entry {
        uint8_t data;
        enum xscale_trace_entry_type type;
 };
 
-struct xscale_trace_data
-{
+struct xscale_trace_data {
        struct xscale_trace_entry *entries;
        int depth;
        uint32_t chkpt0;
@@ -71,25 +68,22 @@ struct xscale_trace_data
        struct xscale_trace_data *next;
 };
 
-enum trace_mode
-{
-   XSCALE_TRACE_DISABLED,
-   XSCALE_TRACE_FILL,
-   XSCALE_TRACE_WRAP
+enum trace_mode {
+       XSCALE_TRACE_DISABLED,
+       XSCALE_TRACE_FILL,
+       XSCALE_TRACE_WRAP
 };
 
-struct xscale_trace
-{
+struct xscale_trace {
        struct image *image;                                    /* source for target opcodes */
        struct xscale_trace_data *data;         /* linked list of collected trace data */
        int buffer_fill;                                /* maximum number of trace runs to read */
-    int fill_counter;                          /* running count during trace collection */
-    enum trace_mode mode;
+       int fill_counter;                               /* running count during trace collection */
+       enum trace_mode mode;
        enum arm_state core_state;      /* current core state (ARM, Thumb) */
 };
 
-struct xscale_common
-{
+struct xscale_common {
        /* armv4/5 common stuff */
        struct arm arm;
 
@@ -147,18 +141,15 @@ struct xscale_common
 static inline struct xscale_common *
 target_to_xscale(struct target *target)
 {
-       return container_of(target->arch_info, struct xscale_common,
-                       arm);
+       return container_of(target->arch_info, struct xscale_common, arm);
 }
 
-struct xscale_reg
-{
+struct xscale_reg {
        int dbg_handler_number;
        struct target *target;
 };
 
-enum
-{
+enum {
        XSCALE_MAINID,          /* 0 */
        XSCALE_CACHETYPE,
        XSCALE_CTRL,
@@ -185,4 +176,15 @@ enum
 
 #define ERROR_XSCALE_NO_TRACE_DATA     (-700)
 
+/* DCSR bit and field definitions */
+#define DCSR_TR        (1 << 16)
+#define DCSR_TU        (1 << 17)
+#define DCSR_TS        (1 << 18)
+#define DCSR_TA        (1 << 19)
+#define DCSR_TD        (1 << 20)
+#define DCSR_TI        (1 << 22)
+#define DCSR_TF        (1 << 23)
+#define DCSR_TRAP_MASK \
+       (DCSR_TF | DCSR_TI | DCSR_TD | DCSR_TA | DCSR_TS | DCSR_TU | DCSR_TR)
+
 #endif /* XSCALE_H */