mips: add breakpoint support for EJTAG 2.0
[openocd.git] / src / target / nds32_edm.h
blob1eab7b007a22aba3f778783d191c01988c2914b4
1 /***************************************************************************
2 * Copyright (C) 2013 Andes Technology *
3 * Hsiangkai Wang <hkwang@andestech.com> *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
19 ***************************************************************************/
20 #ifndef __NDS32_EDM_H__
21 #define __NDS32_EDM_H__
23 /**
24 * @file
25 * This is the interface to the Embedded Debug Module for Andes cores.
28 /* EDM misc registers */
29 enum nds_edm_misc_reg {
30 NDS_EDM_MISC_DIMIR = 0x0,
31 NDS_EDM_MISC_SBAR,
32 NDS_EDM_MISC_EDM_CMDR,
33 NDS_EDM_MISC_DBGER,
34 NDS_EDM_MISC_ACC_CTL,
35 NDS_EDM_MISC_EDM_PROBE,
36 NDS_EDM_MISC_GEN_PORT0,
37 NDS_EDM_MISC_GEN_PORT1,
40 /* EDM system registers */
41 enum nds_edm_system_reg {
42 NDS_EDM_SR_BPC0 = 0x00,
43 NDS_EDM_SR_BPC1,
44 NDS_EDM_SR_BPC2,
45 NDS_EDM_SR_BPC3,
46 NDS_EDM_SR_BPC4,
47 NDS_EDM_SR_BPC5,
48 NDS_EDM_SR_BPC6,
49 NDS_EDM_SR_BPC7,
50 NDS_EDM_SR_BPA0 = 0x08,
51 NDS_EDM_SR_BPA1,
52 NDS_EDM_SR_BPA2,
53 NDS_EDM_SR_BPA3,
54 NDS_EDM_SR_BPA4,
55 NDS_EDM_SR_BPA5,
56 NDS_EDM_SR_BPA6,
57 NDS_EDM_SR_BPA7,
58 NDS_EDM_SR_BPAM0 = 0x10,
59 NDS_EDM_SR_BPAM1,
60 NDS_EDM_SR_BPAM2,
61 NDS_EDM_SR_BPAM3,
62 NDS_EDM_SR_BPAM4,
63 NDS_EDM_SR_BPAM5,
64 NDS_EDM_SR_BPAM6,
65 NDS_EDM_SR_BPAM7,
66 NDS_EDM_SR_BPV0 = 0x18,
67 NDS_EDM_SR_BPV1,
68 NDS_EDM_SR_BPV2,
69 NDS_EDM_SR_BPV3,
70 NDS_EDM_SR_BPV4,
71 NDS_EDM_SR_BPV5,
72 NDS_EDM_SR_BPV6,
73 NDS_EDM_SR_BPV7,
74 NDS_EDM_SR_BPCID0 = 0x20,
75 NDS_EDM_SR_BPCID1,
76 NDS_EDM_SR_BPCID2,
77 NDS_EDM_SR_BPCID3,
78 NDS_EDM_SR_BPCID4,
79 NDS_EDM_SR_BPCID5,
80 NDS_EDM_SR_BPCID6,
81 NDS_EDM_SR_BPCID7,
82 NDS_EDM_SR_EDM_CFG = 0x28,
83 NDS_EDM_SR_EDMSW = 0x30,
84 NDS_EDM_SR_EDM_CTL = 0x38,
85 NDS_EDM_SR_EDM_DTR = 0x40,
86 NDS_EDM_SR_BPMTV = 0x48,
87 NDS_EDM_SR_DIMBR = 0x50,
88 NDS_EDM_SR_TECR0 = 0x70,
89 NDS_EDM_SR_TECR1 = 0x71,
92 enum nds_memory_access {
93 NDS_MEMORY_ACC_BUS = 0,
94 NDS_MEMORY_ACC_CPU,
97 enum nds_memory_select {
98 NDS_MEMORY_SELECT_AUTO = 0,
99 NDS_MEMORY_SELECT_MEM = 1,
100 NDS_MEMORY_SELECT_ILM = 2,
101 NDS_MEMORY_SELECT_DLM = 3,
104 #define NDS_DBGER_DEX (0x1)
105 #define NDS_DBGER_DPED (0x2)
106 #define NDS_DBGER_CRST (0x4)
107 #define NDS_DBGER_AT_MAX (0x8)
108 #define NDS_DBGER_ILL_SEC_ACC (0x10)
109 #define NDS_DBGER_ALL_SUPRS_EX (0x40000000)
110 #define NDS_DBGER_RESACC (0x80000000)
111 #define NDS_DBGER_CLEAR_ALL (0x1F)
113 #define NDS_EDMSW_WDV (1 << 0)
114 #define NDS_EDMSW_RDV (1 << 1)
116 #endif /* __NDS32_EDM_H__ */