fm3: add Fujitsu MB9Ax family support
[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, 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__
22
23 /**
24  * @file
25  * This is the interface to the Embedded Debug Module for Andes cores.
26  */
27
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,
38 };
39
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,
90 };
91
92 enum nds_memory_access {
93         NDS_MEMORY_ACC_BUS = 0,
94         NDS_MEMORY_ACC_CPU,
95 };
96
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,
102 };
103
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)
112
113 #define NDS_EDMSW_WDV           (1 << 0)
114 #define NDS_EDMSW_RDV           (1 << 1)
115
116 #endif /* __NDS32_EDM_H__ */