|
@@ -0,0 +1,136 @@
|
|
|
+/*
|
|
|
+ * AVR32 OCD Interface and register definitions
|
|
|
+ *
|
|
|
+ * Copyright (C) 2004-2007 Atmel Corporation
|
|
|
+ *
|
|
|
+ * This program is free software; you can redistribute it and/or modify
|
|
|
+ * it under the terms of the GNU General Public License version 2 as
|
|
|
+ * published by the Free Software Foundation.
|
|
|
+ */
|
|
|
+#ifndef __ASM_AVR32_OCD_H
|
|
|
+#define __ASM_AVR32_OCD_H
|
|
|
+
|
|
|
+/* OCD Register offsets. Abbreviations used below:
|
|
|
+ *
|
|
|
+ * BP Breakpoint
|
|
|
+ * Comm Communication
|
|
|
+ * DT Data Trace
|
|
|
+ * PC Program Counter
|
|
|
+ * PID Process ID
|
|
|
+ * R/W Read/Write
|
|
|
+ * WP Watchpoint
|
|
|
+ */
|
|
|
+#define OCD_DID 0x0000 /* Device ID */
|
|
|
+#define OCD_DC 0x0008 /* Development Control */
|
|
|
+#define OCD_DS 0x0010 /* Development Status */
|
|
|
+#define OCD_RWCS 0x001c /* R/W Access Control */
|
|
|
+#define OCD_RWA 0x0024 /* R/W Access Address */
|
|
|
+#define OCD_RWD 0x0028 /* R/W Access Data */
|
|
|
+#define OCD_WT 0x002c /* Watchpoint Trigger */
|
|
|
+#define OCD_DTC 0x0034 /* Data Trace Control */
|
|
|
+#define OCD_DTSA0 0x0038 /* DT Start Addr Channel 0 */
|
|
|
+#define OCD_DTSA1 0x003c /* DT Start Addr Channel 1 */
|
|
|
+#define OCD_DTEA0 0x0048 /* DT End Addr Channel 0 */
|
|
|
+#define OCD_DTEA1 0x004c /* DT End Addr Channel 1 */
|
|
|
+#define OCD_BWC0A 0x0058 /* PC BP/WP Control 0A */
|
|
|
+#define OCD_BWC0B 0x005c /* PC BP/WP Control 0B */
|
|
|
+#define OCD_BWC1A 0x0060 /* PC BP/WP Control 1A */
|
|
|
+#define OCD_BWC1B 0x0064 /* PC BP/WP Control 1B */
|
|
|
+#define OCD_BWC2A 0x0068 /* PC BP/WP Control 2A */
|
|
|
+#define OCD_BWC2B 0x006c /* PC BP/WP Control 2B */
|
|
|
+#define OCD_BWC3A 0x0070 /* Data BP/WP Control 3A */
|
|
|
+#define OCD_BWC3B 0x0074 /* Data BP/WP Control 3B */
|
|
|
+#define OCD_BWA0A 0x0078 /* PC BP/WP Address 0A */
|
|
|
+#define OCD_BWA0B 0x007c /* PC BP/WP Address 0B */
|
|
|
+#define OCD_BWA1A 0x0080 /* PC BP/WP Address 1A */
|
|
|
+#define OCD_BWA1B 0x0084 /* PC BP/WP Address 1B */
|
|
|
+#define OCD_BWA2A 0x0088 /* PC BP/WP Address 2A */
|
|
|
+#define OCD_BWA2B 0x008c /* PC BP/WP Address 2B */
|
|
|
+#define OCD_BWA3A 0x0090 /* Data BP/WP Address 3A */
|
|
|
+#define OCD_BWA3B 0x0094 /* Data BP/WP Address 3B */
|
|
|
+#define OCD_NXCFG 0x0100 /* Nexus Configuration */
|
|
|
+#define OCD_DINST 0x0104 /* Debug Instruction */
|
|
|
+#define OCD_DPC 0x0108 /* Debug Program Counter */
|
|
|
+#define OCD_CPUCM 0x010c /* CPU Control Mask */
|
|
|
+#define OCD_DCCPU 0x0110 /* Debug Comm CPU */
|
|
|
+#define OCD_DCEMU 0x0114 /* Debug Comm Emulator */
|
|
|
+#define OCD_DCSR 0x0118 /* Debug Comm Status */
|
|
|
+#define OCD_PID 0x011c /* Ownership Trace PID */
|
|
|
+#define OCD_EPC0 0x0120 /* Event Pair Control 0 */
|
|
|
+#define OCD_EPC1 0x0124 /* Event Pair Control 1 */
|
|
|
+#define OCD_EPC2 0x0128 /* Event Pair Control 2 */
|
|
|
+#define OCD_EPC3 0x012c /* Event Pair Control 3 */
|
|
|
+#define OCD_AXC 0x0130 /* AUX port Control */
|
|
|
+
|
|
|
+/* Bits in DID */
|
|
|
+#define OCD_DID_MID_START 1
|
|
|
+#define OCD_DID_MID_SIZE 11
|
|
|
+#define OCD_DID_PN_START 12
|
|
|
+#define OCD_DID_PN_SIZE 16
|
|
|
+#define OCD_DID_RN_START 28
|
|
|
+#define OCD_DID_RN_SIZE 4
|
|
|
+
|
|
|
+/* Bits in DC */
|
|
|
+#define OCD_DC_TM_START 0
|
|
|
+#define OCD_DC_TM_SIZE 2
|
|
|
+#define OCD_DC_EIC_START 3
|
|
|
+#define OCD_DC_EIC_SIZE 2
|
|
|
+#define OCD_DC_OVC_START 5
|
|
|
+#define OCD_DC_OVC_SIZE 3
|
|
|
+#define OCD_DC_SS_BIT 8
|
|
|
+#define OCD_DC_DBR_BIT 12
|
|
|
+#define OCD_DC_DBE_BIT 13
|
|
|
+#define OCD_DC_EOS_START 20
|
|
|
+#define OCD_DC_EOS_SIZE 2
|
|
|
+#define OCD_DC_SQA_BIT 22
|
|
|
+#define OCD_DC_IRP_BIT 23
|
|
|
+#define OCD_DC_IFM_BIT 24
|
|
|
+#define OCD_DC_TOZ_BIT 25
|
|
|
+#define OCD_DC_TSR_BIT 26
|
|
|
+#define OCD_DC_RID_BIT 27
|
|
|
+#define OCD_DC_ORP_BIT 28
|
|
|
+#define OCD_DC_MM_BIT 29
|
|
|
+#define OCD_DC_RES_BIT 30
|
|
|
+#define OCD_DC_ABORT_BIT 31
|
|
|
+
|
|
|
+/* Bits in DS */
|
|
|
+#define OCD_DS_SSS_BIT 0
|
|
|
+#define OCD_DS_SWB_BIT 1
|
|
|
+#define OCD_DS_HWB_BIT 2
|
|
|
+#define OCD_DS_HWE_BIT 3
|
|
|
+#define OCD_DS_STP_BIT 4
|
|
|
+#define OCD_DS_DBS_BIT 5
|
|
|
+#define OCD_DS_BP_START 8
|
|
|
+#define OCD_DS_BP_SIZE 8
|
|
|
+#define OCD_DS_INC_BIT 24
|
|
|
+#define OCD_DS_BOZ_BIT 25
|
|
|
+#define OCD_DS_DBA_BIT 26
|
|
|
+#define OCD_DS_EXB_BIT 27
|
|
|
+#define OCD_DS_NTBF_BIT 28
|
|
|
+
|
|
|
+/* Bits in RWCS */
|
|
|
+#define OCD_RWCS_DV_BIT 0
|
|
|
+#define OCD_RWCS_ERR_BIT 1
|
|
|
+#define OCD_RWCS_CNT_START 2
|
|
|
+#define OCD_RWCS_CNT_SIZE 14
|
|
|
+#define OCD_RWCS_CRC_BIT 19
|
|
|
+#define OCD_RWCS_NTBC_START 20
|
|
|
+#define OCD_RWCS_NTBC_SIZE 2
|
|
|
+#define OCD_RWCS_NTE_BIT 22
|
|
|
+#define OCD_RWCS_NTAP_BIT 23
|
|
|
+#define OCD_RWCS_WRAPPED_BIT 24
|
|
|
+#define OCD_RWCS_CCTRL_START 25
|
|
|
+#define OCD_RWCS_CCTRL_SIZE 2
|
|
|
+#define OCD_RWCS_SZ_START 27
|
|
|
+#define OCD_RWCS_SZ_SIZE 3
|
|
|
+#define OCD_RWCS_RW_BIT 30
|
|
|
+#define OCD_RWCS_AC_BIT 31
|
|
|
+
|
|
|
+/* Bits in RWA */
|
|
|
+#define OCD_RWA_RWA_START 0
|
|
|
+#define OCD_RWA_RWA_SIZE 32
|
|
|
+
|
|
|
+/* Bits in RWD */
|
|
|
+#define OCD_RWD_RWD_START 0
|
|
|
+#define OCD_RWD_RWD_SIZE 32
|
|
|
+
|