target/register: Minor code cleanup
[fw/openocd] / src / target / nds32_edm.h
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, see <http://www.gnu.org/licenses/>. *
17  ***************************************************************************/
18
19 #ifndef OPENOCD_TARGET_NDS32_EDM_H
20 #define OPENOCD_TARGET_NDS32_EDM_H
21
22 #include "helper/types.h"
23
24 /**
25  * @file
26  * This is the interface to the Embedded Debug Module for Andes cores.
27  */
28
29 /* EDM misc registers */
30 enum nds_edm_misc_reg {
31         NDS_EDM_MISC_DIMIR = 0x0,
32         NDS_EDM_MISC_SBAR,
33         NDS_EDM_MISC_EDM_CMDR,
34         NDS_EDM_MISC_DBGER,
35         NDS_EDM_MISC_ACC_CTL,
36         NDS_EDM_MISC_EDM_PROBE,
37         NDS_EDM_MISC_GEN_PORT0,
38         NDS_EDM_MISC_GEN_PORT1,
39 };
40
41 /* EDM system registers */
42 enum nds_edm_system_reg {
43         NDS_EDM_SR_BPC0 = 0x00,
44         NDS_EDM_SR_BPC1,
45         NDS_EDM_SR_BPC2,
46         NDS_EDM_SR_BPC3,
47         NDS_EDM_SR_BPC4,
48         NDS_EDM_SR_BPC5,
49         NDS_EDM_SR_BPC6,
50         NDS_EDM_SR_BPC7,
51         NDS_EDM_SR_BPA0 = 0x08,
52         NDS_EDM_SR_BPA1,
53         NDS_EDM_SR_BPA2,
54         NDS_EDM_SR_BPA3,
55         NDS_EDM_SR_BPA4,
56         NDS_EDM_SR_BPA5,
57         NDS_EDM_SR_BPA6,
58         NDS_EDM_SR_BPA7,
59         NDS_EDM_SR_BPAM0 = 0x10,
60         NDS_EDM_SR_BPAM1,
61         NDS_EDM_SR_BPAM2,
62         NDS_EDM_SR_BPAM3,
63         NDS_EDM_SR_BPAM4,
64         NDS_EDM_SR_BPAM5,
65         NDS_EDM_SR_BPAM6,
66         NDS_EDM_SR_BPAM7,
67         NDS_EDM_SR_BPV0 = 0x18,
68         NDS_EDM_SR_BPV1,
69         NDS_EDM_SR_BPV2,
70         NDS_EDM_SR_BPV3,
71         NDS_EDM_SR_BPV4,
72         NDS_EDM_SR_BPV5,
73         NDS_EDM_SR_BPV6,
74         NDS_EDM_SR_BPV7,
75         NDS_EDM_SR_BPCID0 = 0x20,
76         NDS_EDM_SR_BPCID1,
77         NDS_EDM_SR_BPCID2,
78         NDS_EDM_SR_BPCID3,
79         NDS_EDM_SR_BPCID4,
80         NDS_EDM_SR_BPCID5,
81         NDS_EDM_SR_BPCID6,
82         NDS_EDM_SR_BPCID7,
83         NDS_EDM_SR_EDM_CFG = 0x28,
84         NDS_EDM_SR_EDMSW = 0x30,
85         NDS_EDM_SR_EDM_CTL = 0x38,
86         NDS_EDM_SR_EDM_DTR = 0x40,
87         NDS_EDM_SR_BPMTV = 0x48,
88         NDS_EDM_SR_DIMBR = 0x50,
89         NDS_EDM_SR_TECR0 = 0x70,
90         NDS_EDM_SR_TECR1 = 0x71,
91 };
92
93 enum nds_memory_access {
94         NDS_MEMORY_ACC_BUS = 0,
95         NDS_MEMORY_ACC_CPU,
96 };
97
98 enum nds_memory_select {
99         NDS_MEMORY_SELECT_AUTO = 0,
100         NDS_MEMORY_SELECT_MEM = 1,
101         NDS_MEMORY_SELECT_ILM = 2,
102         NDS_MEMORY_SELECT_DLM = 3,
103 };
104
105 #define NDS_DBGER_DEX           (0x1)
106 #define NDS_DBGER_DPED          (0x2)
107 #define NDS_DBGER_CRST          (0x4)
108 #define NDS_DBGER_AT_MAX        (0x8)
109 #define NDS_DBGER_ILL_SEC_ACC   (0x10)
110 #define NDS_DBGER_ALL_SUPRS_EX  (0x40000000)
111 #define NDS_DBGER_RESACC        (0x80000000)
112 #define NDS_DBGER_CLEAR_ALL     (0x1F)
113
114 #define NDS_EDMSW_WDV           (1 << 0)
115 #define NDS_EDMSW_RDV           (1 << 1)
116
117 #endif /* OPENOCD_TARGET_NDS32_EDM_H */