123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
- /*
- * 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
- /* Bits in WT */
- #define OCD_WT_DTE_START 20
- #define OCD_WT_DTE_SIZE 3
- #define OCD_WT_DTS_START 23
- #define OCD_WT_DTS_SIZE 3
- #define OCD_WT_PTE_START 26
- #define OCD_WT_PTE_SIZE 3
- #define OCD_WT_PTS_START 29
- #define OCD_WT_PTS_SIZE 3
- /* Bits in DTC */
- #define OCD_DTC_T0WP_BIT 0
- #define OCD_DTC_T1WP_BIT 1
- #define OCD_DTC_ASID0EN_BIT 2
- #define OCD_DTC_ASID0_START 3
- #define OCD_DTC_ASID0_SIZE 8
- #define OCD_DTC_ASID1EN_BIT 11
- #define OCD_DTC_ASID1_START 12
- #define OCD_DTC_ASID1_SIZE 8
- #define OCD_DTC_RWT1_START 28
- #define OCD_DTC_RWT1_SIZE 2
- #define OCD_DTC_RWT0_START 30
- #define OCD_DTC_RWT0_SIZE 2
- /* Bits in DTSA0 */
- #define OCD_DTSA0_DTSA_START 0
- #define OCD_DTSA0_DTSA_SIZE 32
- /* Bits in DTSA1 */
- #define OCD_DTSA1_DTSA_START 0
- #define OCD_DTSA1_DTSA_SIZE 32
- /* Bits in DTEA0 */
- #define OCD_DTEA0_DTEA_START 0
- #define OCD_DTEA0_DTEA_SIZE 32
- /* Bits in DTEA1 */
- #define OCD_DTEA1_DTEA_START 0
- #define OCD_DTEA1_DTEA_SIZE 32
- /* Bits in BWC0A */
- #define OCD_BWC0A_ASIDEN_BIT 0
- #define OCD_BWC0A_ASID_START 1
- #define OCD_BWC0A_ASID_SIZE 8
- #define OCD_BWC0A_EOC_BIT 14
- #define OCD_BWC0A_AME_BIT 25
- #define OCD_BWC0A_BWE_START 30
- #define OCD_BWC0A_BWE_SIZE 2
- /* Bits in BWC0B */
- #define OCD_BWC0B_ASIDEN_BIT 0
- #define OCD_BWC0B_ASID_START 1
- #define OCD_BWC0B_ASID_SIZE 8
- #define OCD_BWC0B_EOC_BIT 14
- #define OCD_BWC0B_AME_BIT 25
- #define OCD_BWC0B_BWE_START 30
- #define OCD_BWC0B_BWE_SIZE 2
- /* Bits in BWC1A */
- #define OCD_BWC1A_ASIDEN_BIT 0
- #define OCD_BWC1A_ASID_START 1
- #define OCD_BWC1A_ASID_SIZE 8
- #define OCD_BWC1A_EOC_BIT 14
- #define OCD_BWC1A_AME_BIT 25
- #define OCD_BWC1A_BWE_START 30
- #define OCD_BWC1A_BWE_SIZE 2
- /* Bits in BWC1B */
- #define OCD_BWC1B_ASIDEN_BIT 0
- #define OCD_BWC1B_ASID_START 1
- #define OCD_BWC1B_ASID_SIZE 8
- #define OCD_BWC1B_EOC_BIT 14
- #define OCD_BWC1B_AME_BIT 25
- #define OCD_BWC1B_BWE_START 30
- #define OCD_BWC1B_BWE_SIZE 2
- /* Bits in BWC2A */
- #define OCD_BWC2A_ASIDEN_BIT 0
- #define OCD_BWC2A_ASID_START 1
- #define OCD_BWC2A_ASID_SIZE 8
- #define OCD_BWC2A_EOC_BIT 14
- #define OCD_BWC2A_AMB_START 20
- #define OCD_BWC2A_AMB_SIZE 5
- #define OCD_BWC2A_AME_BIT 25
- #define OCD_BWC2A_BWE_START 30
- #define OCD_BWC2A_BWE_SIZE 2
- /* Bits in BWC2B */
- #define OCD_BWC2B_ASIDEN_BIT 0
- #define OCD_BWC2B_ASID_START 1
- #define OCD_BWC2B_ASID_SIZE 8
- #define OCD_BWC2B_EOC_BIT 14
- #define OCD_BWC2B_AME_BIT 25
- #define OCD_BWC2B_BWE_START 30
- #define OCD_BWC2B_BWE_SIZE 2
- /* Bits in BWC3A */
- #define OCD_BWC3A_ASIDEN_BIT 0
- #define OCD_BWC3A_ASID_START 1
- #define OCD_BWC3A_ASID_SIZE 8
- #define OCD_BWC3A_SIZE_START 9
- #define OCD_BWC3A_SIZE_SIZE 3
- #define OCD_BWC3A_EOC_BIT 14
- #define OCD_BWC3A_BWO_START 16
- #define OCD_BWC3A_BWO_SIZE 2
- #define OCD_BWC3A_BME_START 20
- #define OCD_BWC3A_BME_SIZE 4
- #define OCD_BWC3A_BRW_START 28
- #define OCD_BWC3A_BRW_SIZE 2
- #define OCD_BWC3A_BWE_START 30
- #define OCD_BWC3A_BWE_SIZE 2
- /* Bits in BWC3B */
- #define OCD_BWC3B_ASIDEN_BIT 0
- #define OCD_BWC3B_ASID_START 1
- #define OCD_BWC3B_ASID_SIZE 8
- #define OCD_BWC3B_SIZE_START 9
- #define OCD_BWC3B_SIZE_SIZE 3
- #define OCD_BWC3B_EOC_BIT 14
- #define OCD_BWC3B_BWO_START 16
- #define OCD_BWC3B_BWO_SIZE 2
- #define OCD_BWC3B_BME_START 20
- #define OCD_BWC3B_BME_SIZE 4
- #define OCD_BWC3B_BRW_START 28
- #define OCD_BWC3B_BRW_SIZE 2
- #define OCD_BWC3B_BWE_START 30
- #define OCD_BWC3B_BWE_SIZE 2
- /* Bits in BWA0A */
- #define OCD_BWA0A_BWA_START 0
- #define OCD_BWA0A_BWA_SIZE 32
- /* Bits in BWA0B */
- #define OCD_BWA0B_BWA_START 0
- #define OCD_BWA0B_BWA_SIZE 32
- /* Bits in BWA1A */
- #define OCD_BWA1A_BWA_START 0
- #define OCD_BWA1A_BWA_SIZE 32
- /* Bits in BWA1B */
- #define OCD_BWA1B_BWA_START 0
- #define OCD_BWA1B_BWA_SIZE 32
- /* Bits in BWA2A */
- #define OCD_BWA2A_BWA_START 0
- #define OCD_BWA2A_BWA_SIZE 32
- /* Bits in BWA2B */
- #define OCD_BWA2B_BWA_START 0
- #define OCD_BWA2B_BWA_SIZE 32
- /* Bits in BWA3A */
- #define OCD_BWA3A_BWA_START 0
- #define OCD_BWA3A_BWA_SIZE 32
- /* Bits in BWA3B */
- #define OCD_BWA3B_BWA_START 0
- #define OCD_BWA3B_BWA_SIZE 32
- /* Bits in NXCFG */
- #define OCD_NXCFG_NXARCH_START 0
- #define OCD_NXCFG_NXARCH_SIZE 4
- #define OCD_NXCFG_NXOCD_START 4
- #define OCD_NXCFG_NXOCD_SIZE 4
- #define OCD_NXCFG_NXPCB_START 8
- #define OCD_NXCFG_NXPCB_SIZE 4
- #define OCD_NXCFG_NXDB_START 12
- #define OCD_NXCFG_NXDB_SIZE 4
- #define OCD_NXCFG_MXMSEO_BIT 16
- #define OCD_NXCFG_NXMDO_START 17
- #define OCD_NXCFG_NXMDO_SIZE 4
- #define OCD_NXCFG_NXPT_BIT 21
- #define OCD_NXCFG_NXOT_BIT 22
- #define OCD_NXCFG_NXDWT_BIT 23
- #define OCD_NXCFG_NXDRT_BIT 24
- #define OCD_NXCFG_NXDTC_START 25
- #define OCD_NXCFG_NXDTC_SIZE 3
|