target/arc: Introduce Actionpoints support
[fw/openocd] / src / target / xscale.h
index 49d4c71eccf445defdb126e89ab635461ee0066a..a86edb2fba6a35bc091060ee475cf38ee2e89fb4 100644 (file)
  *   GNU General Public License for more details.                          *
  *                                                                         *
  *   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.             *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
-#ifndef XSCALE_H
-#define XSCALE_H
+
+#ifndef OPENOCD_TARGET_XSCALE_H
+#define OPENOCD_TARGET_XSCALE_H
 
 #include "arm.h"
 #include "armv4_5_mmu.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 +66,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 +139,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 +174,15 @@ enum
 
 #define ERROR_XSCALE_NO_TRACE_DATA     (-700)
 
-#endif /* XSCALE_H */
+/* 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 /* OPENOCD_TARGET_XSCALE_H */