1;;-------------------------------------------------------------------------
2;;      Declarations of SFR registers and SFR groups
3;;
4;;      This file is included by ddf files
5;;
6;;      Copyright 2019 IAR Systems AB.
7;;
8;;-------------------------------------------------------------------------
9
10;;-------------------------------------------------------------------------
11;;      NOTE:
12;;      This is an example file for RISC-V
13;;-------------------------------------------------------------------------
14
15;;-------------------------------------------------------------------------
16;; SFR declarations
17;;
18;; Syntax: sfr = "sfr name", "zone name", address, size, base=viewbase, bitRange=bit[-bit](optional), readOnly/writeOnly(optional)
19;;-------------------------------------------------------------------------
20[Sfr]
21
22;;User Trap Setup
23sfr = "ustatus",                                   "CSRMemory",    0x000,     1, base=16
24sfr = "uie",                                       "CSRMemory",    0x004,     1, base=16
25sfr = "utvec",                                     "CSRMemory",    0x005,     1, base=16
26
27;;User Trap Handling
28sfr = "uscratch",                                  "CSRMemory",    0x040,     1, base=16
29sfr = "uepc",                                      "CSRMemory",    0x041,     1, base=16
30sfr = "ucause",                                    "CSRMemory",    0x042,     1, base=16
31sfr = "utval",                                     "CSRMemory",    0x043,     1, base=16
32sfr = "uip",                                       "CSRMemory",    0x044,     1, base=16
33
34;;User Counter/Timers
35sfr = "cycle",                                     "CSRMemory",    0xC00,     1, base=16, readOnly
36sfr = "time",                                      "CSRMemory",    0xC01,     1, base=16, readOnly
37sfr = "instret",                                   "CSRMemory",    0xC02,     1, base=16, readOnly
38sfr = "hpmcounter3",                               "CSRMemory",    0xC03,     1, base=16, readOnly
39sfr = "hpmcounter4",                               "CSRMemory",    0xC04,     1, base=16, readOnly
40sfr = "hpmcounter5",                               "CSRMemory",    0xC05,     1, base=16, readOnly
41sfr = "hpmcounter6",                               "CSRMemory",    0xC06,     1, base=16, readOnly
42sfr = "hpmcounter7",                               "CSRMemory",    0xC07,     1, base=16, readOnly
43sfr = "hpmcounter8",                               "CSRMemory",    0xC08,     1, base=16, readOnly
44sfr = "hpmcounter9",                               "CSRMemory",    0xC09,     1, base=16, readOnly
45sfr = "hpmcounter10",                              "CSRMemory",    0xC0A,     1, base=16, readOnly
46sfr = "hpmcounter11",                              "CSRMemory",    0xC0B,     1, base=16, readOnly
47sfr = "hpmcounter12",                              "CSRMemory",    0xC0C,     1, base=16, readOnly
48sfr = "hpmcounter13",                              "CSRMemory",    0xC0D,     1, base=16, readOnly
49sfr = "hpmcounter14",                              "CSRMemory",    0xC0E,     1, base=16, readOnly
50sfr = "hpmcounter15",                              "CSRMemory",    0xC0F,     1, base=16, readOnly
51sfr = "hpmcounter16",                              "CSRMemory",    0xC10,     1, base=16, readOnly
52sfr = "hpmcounter17",                              "CSRMemory",    0xC11,     1, base=16, readOnly
53sfr = "hpmcounter18",                              "CSRMemory",    0xC12,     1, base=16, readOnly
54sfr = "hpmcounter19",                              "CSRMemory",    0xC13,     1, base=16, readOnly
55sfr = "hpmcounter20",                              "CSRMemory",    0xC14,     1, base=16, readOnly
56sfr = "hpmcounter21",                              "CSRMemory",    0xC15,     1, base=16, readOnly
57sfr = "hpmcounter22",                              "CSRMemory",    0xC16,     1, base=16, readOnly
58sfr = "hpmcounter23",                              "CSRMemory",    0xC17,     1, base=16, readOnly
59sfr = "hpmcounter24",                              "CSRMemory",    0xC18,     1, base=16, readOnly
60sfr = "hpmcounter25",                              "CSRMemory",    0xC19,     1, base=16, readOnly
61sfr = "hpmcounter26",                              "CSRMemory",    0xC1A,     1, base=16, readOnly
62sfr = "hpmcounter27",                              "CSRMemory",    0xC1B,     1, base=16, readOnly
63sfr = "hpmcounter28",                              "CSRMemory",    0xC1C,     1, base=16, readOnly
64sfr = "hpmcounter29",                              "CSRMemory",    0xC1D,     1, base=16, readOnly
65sfr = "hpmcounter30",                              "CSRMemory",    0xC1E,     1, base=16, readOnly
66sfr = "hpmcounter31",                              "CSRMemory",    0xC1F,     1, base=16
67sfr = "cycleh",                                    "CSRMemory",    0xC80,     1, base=16, readOnly
68sfr = "timeh",                                     "CSRMemory",    0xC81,     1, base=16, readOnly
69sfr = "instreth",                                  "CSRMemory",    0xC82,     1, base=16, readOnly
70sfr = "hpmcounter3h",                              "CSRMemory",    0xC83,     1, base=16, readOnly
71sfr = "hpmcounter4h",                              "CSRMemory",    0xC84,     1, base=16, readOnly
72sfr = "hpmcounter5h",                              "CSRMemory",    0xC85,     1, base=16, readOnly
73sfr = "hpmcounter6h",                              "CSRMemory",    0xC86,     1, base=16, readOnly
74sfr = "hpmcounter7h",                              "CSRMemory",    0xC87,     1, base=16, readOnly
75sfr = "hpmcounter8h",                              "CSRMemory",    0xC88,     1, base=16, readOnly
76sfr = "hpmcounter9h",                              "CSRMemory",    0xC89,     1, base=16, readOnly
77sfr = "hpmcounter10h",                             "CSRMemory",    0xC8A,     1, base=16, readOnly
78sfr = "hpmcounter11h",                             "CSRMemory",    0xC8B,     1, base=16, readOnly
79sfr = "hpmcounter12h",                             "CSRMemory",    0xC8C,     1, base=16, readOnly
80sfr = "hpmcounter13h",                             "CSRMemory",    0xC8D,     1, base=16, readOnly
81sfr = "hpmcounter14h",                             "CSRMemory",    0xC8E,     1, base=16, readOnly
82sfr = "hpmcounter15h",                             "CSRMemory",    0xC8F,     1, base=16, readOnly
83sfr = "hpmcounter16h",                             "CSRMemory",    0xC90,     1, base=16, readOnly
84sfr = "hpmcounter17h",                             "CSRMemory",    0xC91,     1, base=16, readOnly
85sfr = "hpmcounter18h",                             "CSRMemory",    0xC92,     1, base=16, readOnly
86sfr = "hpmcounter19h",                             "CSRMemory",    0xC93,     1, base=16, readOnly
87sfr = "hpmcounter20h",                             "CSRMemory",    0xC94,     1, base=16, readOnly
88sfr = "hpmcounter21h",                             "CSRMemory",    0xC95,     1, base=16, readOnly
89sfr = "hpmcounter22h",                             "CSRMemory",    0xC96,     1, base=16, readOnly
90sfr = "hpmcounter23h",                             "CSRMemory",    0xC97,     1, base=16, readOnly
91sfr = "hpmcounter24h",                             "CSRMemory",    0xC98,     1, base=16, readOnly
92sfr = "hpmcounter25h",                             "CSRMemory",    0xC99,     1, base=16, readOnly
93sfr = "hpmcounter26h",                             "CSRMemory",    0xC9A,     1, base=16, readOnly
94sfr = "hpmcounter27h",                             "CSRMemory",    0xC9B,     1, base=16, readOnly
95sfr = "hpmcounter28h",                             "CSRMemory",    0xC9C,     1, base=16, readOnly
96sfr = "hpmcounter29h",                             "CSRMemory",    0xC9D,     1, base=16, readOnly
97sfr = "hpmcounter30h",                             "CSRMemory",    0xC9E,     1, base=16, readOnly
98sfr = "hpmcounter31h",                             "CSRMemory",    0xC9F,     1, base=16, readOnly
99
100;;Supervisor Trap Setup
101sfr = "sstatus",                                   "CSRMemory",    0x100,     1, base=16
102sfr = "sedeleg",                                   "CSRMemory",    0x102,     1, base=16
103sfr = "sideleg",                                   "CSRMemory",    0x103,     1, base=16
104sfr = "sie",                                       "CSRMemory",    0x104,     1, base=16
105sfr = "stvec",                                     "CSRMemory",    0x105,     1, base=16
106sfr = "scounteren",                                "CSRMemory",    0x106,     1, base=16
107
108;;Supervisor Trap Handling
109sfr = "sscratch",                                  "CSRMemory",    0x140,     1, base=16
110sfr = "sepc",                                      "CSRMemory",    0x141,     1, base=16
111sfr = "scause",                                    "CSRMemory",    0x142,     1, base=16
112sfr = "stval",                                     "CSRMemory",    0x143,     1, base=16
113sfr = "sip",                                       "CSRMemory",    0x144,     1, base=16
114
115;;Supervisor Protection and Translation
116sfr = "satp",                                      "CSRMemory",    0x180,     1, base=16
117
118;;Machine Information Registers
119sfr = "mvendorid",                                 "CSRMemory",    0xF11,     1, base=16, readOnly
120sfr = "marchid",                                   "CSRMemory",    0xF12,     1, base=16, readOnly
121sfr = "mimpid",                                    "CSRMemory",    0xF13,     1, base=16, readOnly
122sfr = "mhartid",                                   "CSRMemory",    0xF14,     1, base=16, readOnly
123
124
125;;Machine Trap Setup
126sfr = "mstatus",                                   "CSRMemory",    0x300,     1, base=16
127sfr = "mstatus.mie",                               "CSRMemory",    0x300,     1, base=16, bitRange=3
128sfr = "mstatus.mpie",                              "CSRMemory",    0x300,     1, base=16, bitRange=7
129sfr = "mstatus.mpp",                               "CSRMemory",    0x300,     1, base=16, bitRange=11-12
130sfr = "misa",                                      "CSRMemory",    0x301,     1, base=16
131sfr = "medeleg",                                   "CSRMemory",    0x302,     1, base=16
132sfr = "mideleg",                                   "CSRMemory",    0x303,     1, base=16
133sfr = "mie",                                       "CSRMemory",    0x304,     1, base=16
134sfr = "mie.msie",                                  "CSRMemory",    0x304,     1, base=16, bitRange=3
135sfr = "mie.mtie",                                  "CSRMemory",    0x304,     1, base=16, bitRange=7
136sfr = "mie.meie",                                  "CSRMemory",    0x304,     1, base=16, bitRange=11
137sfr = "mie.lie0",                                  "CSRMemory",    0x304,     1, base=16, bitRange=16
138sfr = "mie.lie1",                                  "CSRMemory",    0x304,     1, base=16, bitRange=17
139sfr = "mie.lie2",                                  "CSRMemory",    0x304,     1, base=16, bitRange=18
140sfr = "mie.lie3",                                  "CSRMemory",    0x304,     1, base=16, bitRange=19
141sfr = "mie.lie4",                                  "CSRMemory",    0x304,     1, base=16, bitRange=20
142sfr = "mie.lie5",                                  "CSRMemory",    0x304,     1, base=16, bitRange=21
143sfr = "mie.lie6",                                  "CSRMemory",    0x304,     1, base=16, bitRange=22
144sfr = "mie.lie7",                                  "CSRMemory",    0x304,     1, base=16, bitRange=23
145sfr = "mie.lie8",                                  "CSRMemory",    0x304,     1, base=16, bitRange=24
146sfr = "mie.lie9",                                  "CSRMemory",    0x304,     1, base=16, bitRange=25
147sfr = "mie.lie10",                                 "CSRMemory",    0x304,     1, base=16, bitRange=26
148sfr = "mie.lie11",                                 "CSRMemory",    0x304,     1, base=16, bitRange=27
149sfr = "mie.lie12",                                 "CSRMemory",    0x304,     1, base=16, bitRange=28
150sfr = "mie.lie13",                                 "CSRMemory",    0x304,     1, base=16, bitRange=29
151sfr = "mie.lie14",                                 "CSRMemory",    0x304,     1, base=16, bitRange=30
152sfr = "mie.lie15",                                 "CSRMemory",    0x304,     1, base=16, bitRange=31
153sfr = "mtvec",                                     "CSRMemory",    0x305,     1, base=16
154sfr = "mtvec.mode",                                "CSRMemory",    0x305,     1, base=16, bitRange=0-1
155sfr = "mtvec.base",                                "CSRMemory",    0x305,     1, base=16, bitRange=2-31
156sfr = "mtvt",                                      "CSRMemory",    0x307,     1, base=16
157
158;;Machine Trap Handling
159sfr = "mscratch",                                  "CSRMemory",    0x340,     1, base=16
160sfr = "mepc",                                      "CSRMemory",    0x341,     1, base=16
161sfr = "mcause",                                    "CSRMemory",    0x342,     1, base=16
162sfr = "mcause.exception",                          "CSRMemory",    0x342,     1, base=16, bitRange=0-30
163sfr = "mcause.interrupt",                          "CSRMemory",    0x342,     1, base=16, bitRange=31
164sfr = "mtval",                                     "CSRMemory",    0x343,     1, base=16
165sfr = "mip",                                       "CSRMemory",    0x344,     1, base=16, readOnly
166sfr = "mip.msip",                                  "CSRMemory",    0x344,     1, base=16, bitRange=3, readOnly
167sfr = "mip.mtip",                                  "CSRMemory",    0x344,     1, base=16, bitRange=7, readOnly
168sfr = "mip.meip",                                  "CSRMemory",    0x344,     1, base=16, bitRange=11, readOnly
169sfr = "mip.lip0",                                  "CSRMemory",    0x344,     1, base=16, bitRange=16, readOnly
170sfr = "mip.lip1",                                  "CSRMemory",    0x344,     1, base=16, bitRange=17, readOnly
171sfr = "mip.lip2",                                  "CSRMemory",    0x344,     1, base=16, bitRange=18, readOnly
172sfr = "mip.lip3",                                  "CSRMemory",    0x344,     1, base=16, bitRange=19, readOnly
173sfr = "mip.lip4",                                  "CSRMemory",    0x344,     1, base=16, bitRange=20, readOnly
174sfr = "mip.lip5",                                  "CSRMemory",    0x344,     1, base=16, bitRange=21, readOnly
175sfr = "mip.lip6",                                  "CSRMemory",    0x344,     1, base=16, bitRange=22, readOnly
176sfr = "mip.lip7",                                  "CSRMemory",    0x344,     1, base=16, bitRange=23, readOnly
177sfr = "mip.lip8",                                  "CSRMemory",    0x344,     1, base=16, bitRange=24, readOnly
178sfr = "mip.lip9",                                  "CSRMemory",    0x344,     1, base=16, bitRange=25, readOnly
179sfr = "mip.lip10",                                 "CSRMemory",    0x344,     1, base=16, bitRange=26, readOnly
180sfr = "mip.lip11",                                 "CSRMemory",    0x344,     1, base=16, bitRange=27, readOnly
181sfr = "mip.lip12",                                 "CSRMemory",    0x344,     1, base=16, bitRange=28, readOnly
182sfr = "mip.lip13",                                 "CSRMemory",    0x344,     1, base=16, bitRange=29, readOnly
183sfr = "mip.lip14",                                 "CSRMemory",    0x344,     1, base=16, bitRange=30, readOnly
184sfr = "mip.lip15",                                 "CSRMemory",    0x344,     1, base=16, bitRange=31, readOnly
185sfr = "mnxti",                                     "CSRMemory",    0x345,     1, base=16
186sfr = "mintstatus",                                "CSRMemory",    0x346,     1, base=16
187sfr = "mscratchcsw",                               "CSRMemory",    0x348,     1, base=16
188sfr = "mscratchcswl",                              "CSRMemory",    0x349,     1, base=16
189
190;;Machine Protection and Translation
191sfr = "pmpcfg0",                                   "CSRMemory",    0x3A0,     1, base=16
192sfr = "pmpcfg1",                                   "CSRMemory",    0x3A1,     1, base=16
193sfr = "pmpcfg2",                                   "CSRMemory",    0x3A2,     1, base=16
194sfr = "pmpcfg3",                                   "CSRMemory",    0x3A3,     1, base=16
195sfr = "pmpaddr0",                                  "CSRMemory",    0x3B0,     1, base=16
196sfr = "pmpaddr1",                                  "CSRMemory",    0x3B1,     1, base=16
197sfr = "pmpaddr2",                                  "CSRMemory",    0x3B2,     1, base=16
198sfr = "pmpaddr3",                                  "CSRMemory",    0x3B3,     1, base=16
199sfr = "pmpaddr4",                                  "CSRMemory",    0x3B4,     1, base=16
200sfr = "pmpaddr5",                                  "CSRMemory",    0x3B5,     1, base=16
201sfr = "pmpaddr6",                                  "CSRMemory",    0x3B6,     1, base=16
202sfr = "pmpaddr7",                                  "CSRMemory",    0x3B7,     1, base=16
203sfr = "pmpaddr8",                                  "CSRMemory",    0x3B8,     1, base=16
204sfr = "pmpaddr9",                                  "CSRMemory",    0x3B9,     1, base=16
205sfr = "pmpaddr10",                                 "CSRMemory",    0x3BA,     1, base=16
206sfr = "pmpaddr11",                                 "CSRMemory",    0x3BB,     1, base=16
207sfr = "pmpaddr12",                                 "CSRMemory",    0x3BC,     1, base=16
208sfr = "pmpaddr13",                                 "CSRMemory",    0x3BD,     1, base=16
209sfr = "pmpaddr14",                                 "CSRMemory",    0x3BE,     1, base=16
210sfr = "pmpaddr15",                                 "CSRMemory",    0x3BF,     1, base=16
211
212;; Machine Counter/Timers
213sfr = "mcycle",                                    "CSRMemory",    0xB00,     1, base=16
214sfr = "minstret",                                  "CSRMemory",    0xB02,     1, base=16
215sfr = "mhpmcounter3",                              "CSRMemory",    0xB03,     1, base=16
216sfr = "mhpmcounter4",                              "CSRMemory",    0xB04,     1, base=16
217sfr = "mhpmcounter5",                              "CSRMemory",    0xB05,     1, base=16
218sfr = "mhpmcounter6",                              "CSRMemory",    0xB06,     1, base=16
219sfr = "mhpmcounter7",                              "CSRMemory",    0xB07,     1, base=16
220sfr = "mhpmcounter8",                              "CSRMemory",    0xB08,     1, base=16
221sfr = "mhpmcounter9",                              "CSRMemory",    0xB09,     1, base=16
222sfr = "mhpmcounter10",                             "CSRMemory",    0xB0A,     1, base=16
223sfr = "mhpmcounter11",                             "CSRMemory",    0xB0B,     1, base=16
224sfr = "mhpmcounter12",                             "CSRMemory",    0xB0C,     1, base=16
225sfr = "mhpmcounter13",                             "CSRMemory",    0xB0D,     1, base=16
226sfr = "mhpmcounter14",                             "CSRMemory",    0xB0E,     1, base=16
227sfr = "mhpmcounter15",                             "CSRMemory",    0xB0F,     1, base=16
228sfr = "mhpmcounter16",                             "CSRMemory",    0xB10,     1, base=16
229sfr = "mhpmcounter17",                             "CSRMemory",    0xB11,     1, base=16
230sfr = "mhpmcounter18",                             "CSRMemory",    0xB12,     1, base=16
231sfr = "mhpmcounter19",                             "CSRMemory",    0xB13,     1, base=16
232sfr = "mhpmcounter20",                             "CSRMemory",    0xB14,     1, base=16
233sfr = "mhpmcounter21",                             "CSRMemory",    0xB15,     1, base=16
234sfr = "mhpmcounter22",                             "CSRMemory",    0xB16,     1, base=16
235sfr = "mhpmcounter23",                             "CSRMemory",    0xB17,     1, base=16
236sfr = "mhpmcounter24",                             "CSRMemory",    0xB18,     1, base=16
237sfr = "mhpmcounter25",                             "CSRMemory",    0xB19,     1, base=16
238sfr = "mhpmcounter26",                             "CSRMemory",    0xB1A,     1, base=16
239sfr = "mhpmcounter27",                             "CSRMemory",    0xB1B,     1, base=16
240sfr = "mhpmcounter28",                             "CSRMemory",    0xB1C,     1, base=16
241sfr = "mhpmcounter29",                             "CSRMemory",    0xB1D,     1, base=16
242sfr = "mhpmcounter30",                             "CSRMemory",    0xB1E,     1, base=16
243sfr = "mhpmcounter31",                             "CSRMemory",    0xB1F,     1, base=16
244sfr = "mcycleh",                                   "CSRMemory",    0xB80,     1, base=16
245sfr = "minstreth",                                 "CSRMemory",    0xB82,     1, base=16
246sfr = "mhpmcounter3h",                             "CSRMemory",    0xB83,     1, base=16
247sfr = "mhpmcounter4h",                             "CSRMemory",    0xB84,     1, base=16
248sfr = "mhpmcounter5h",                             "CSRMemory",    0xB85,     1, base=16
249sfr = "mhpmcounter6h",                             "CSRMemory",    0xB86,     1, base=16
250sfr = "mhpmcounter7h",                             "CSRMemory",    0xB87,     1, base=16
251sfr = "mhpmcounter8h",                             "CSRMemory",    0xB88,     1, base=16
252sfr = "mhpmcounter9h",                             "CSRMemory",    0xB89,     1, base=16
253sfr = "mhpmcounter10h",                            "CSRMemory",    0xB8A,     1, base=16
254sfr = "mhpmcounter11h",                            "CSRMemory",    0xB8B,     1, base=16
255sfr = "mhpmcounter12h",                            "CSRMemory",    0xB8C,     1, base=16
256sfr = "mhpmcounter13h",                            "CSRMemory",    0xB8D,     1, base=16
257sfr = "mhpmcounter14h",                            "CSRMemory",    0xB8E,     1, base=16
258sfr = "mhpmcounter15h",                            "CSRMemory",    0xB8F,     1, base=16
259sfr = "mhpmcounter16h",                            "CSRMemory",    0xB90,     1, base=16
260sfr = "mhpmcounter17h",                            "CSRMemory",    0xB91,     1, base=16
261sfr = "mhpmcounter18h",                            "CSRMemory",    0xB92,     1, base=16
262sfr = "mhpmcounter19h",                            "CSRMemory",    0xB93,     1, base=16
263sfr = "mhpmcounter20h",                            "CSRMemory",    0xB94,     1, base=16
264sfr = "mhpmcounter21h",                            "CSRMemory",    0xB95,     1, base=16
265sfr = "mhpmcounter22h",                            "CSRMemory",    0xB96,     1, base=16
266sfr = "mhpmcounter23h",                            "CSRMemory",    0xB97,     1, base=16
267sfr = "mhpmcounter24h",                            "CSRMemory",    0xB98,     1, base=16
268sfr = "mhpmcounter25h",                            "CSRMemory",    0xB99,     1, base=16
269sfr = "mhpmcounter26h",                            "CSRMemory",    0xB9A,     1, base=16
270sfr = "mhpmcounter27h",                            "CSRMemory",    0xB9B,     1, base=16
271sfr = "mhpmcounter28h",                            "CSRMemory",    0xB9C,     1, base=16
272sfr = "mhpmcounter29h",                            "CSRMemory",    0xB9D,     1, base=16
273sfr = "mhpmcounter30h",                            "CSRMemory",    0xB9E,     1, base=16
274sfr = "mhpmcounter31h",                            "CSRMemory",    0xB9F,     1, base=16
275
276;;Machine Counter Setup
277sfr = "mhpmevent3",                                "CSRMemory",    0x323,     1, base=16
278sfr = "mhpmevent4",                                "CSRMemory",    0x324,     1, base=16
279sfr = "mhpmevent5",                                "CSRMemory",    0x325,     1, base=16
280sfr = "mhpmevent6",                                "CSRMemory",    0x326,     1, base=16
281sfr = "mhpmevent7",                                "CSRMemory",    0x327,     1, base=16
282sfr = "mhpmevent8",                                "CSRMemory",    0x328,     1, base=16
283sfr = "mhpmevent9",                                "CSRMemory",    0x329,     1, base=16
284sfr = "mhpmevent10",                               "CSRMemory",    0x32A,     1, base=16
285sfr = "mhpmevent11",                               "CSRMemory",    0x32B,     1, base=16
286sfr = "mhpmevent12",                               "CSRMemory",    0x32C,     1, base=16
287sfr = "mhpmevent13",                               "CSRMemory",    0x32D,     1, base=16
288sfr = "mhpmevent14",                               "CSRMemory",    0x32E,     1, base=16
289sfr = "mhpmevent15",                               "CSRMemory",    0x32F,     1, base=16
290sfr = "mhpmevent16",                               "CSRMemory",    0x330,     1, base=16
291sfr = "mhpmevent17",                               "CSRMemory",    0x331,     1, base=16
292sfr = "mhpmevent18",                               "CSRMemory",    0x332,     1, base=16
293sfr = "mhpmevent19",                               "CSRMemory",    0x333,     1, base=16
294sfr = "mhpmevent20",                               "CSRMemory",    0x334,     1, base=16
295sfr = "mhpmevent21",                               "CSRMemory",    0x335,     1, base=16
296sfr = "mhpmevent22",                               "CSRMemory",    0x336,     1, base=16
297sfr = "mhpmevent23",                               "CSRMemory",    0x337,     1, base=16
298sfr = "mhpmevent24",                               "CSRMemory",    0x338,     1, base=16
299sfr = "mhpmevent25",                               "CSRMemory",    0x339,     1, base=16
300sfr = "mhpmevent26",                               "CSRMemory",    0x33A,     1, base=16
301sfr = "mhpmevent27",                               "CSRMemory",    0x33B,     1, base=16
302sfr = "mhpmevent28",                               "CSRMemory",    0x33C,     1, base=16
303sfr = "mhpmevent29",                               "CSRMemory",    0x33D,     1, base=16
304sfr = "mhpmevent30",                               "CSRMemory",    0x33E,     1, base=16
305sfr = "mhpmevent31",                               "CSRMemory",    0x33F,     1, base=16
306
307;;Debug/Trace registers
308sfr = "tselect",                                   "CSRMemory",    0x7A0,     1, base=16
309sfr = "tdata1",                                    "CSRMemory",    0x7A1,     1, base=16
310sfr = "tdata2",                                    "CSRMemory",    0x7A2,     1, base=16
311sfr = "tdata3",                                    "CSRMemory",    0x7A3,     1, base=16
312sfr = "dcsr",                                      "CSRMemory",    0x7B0,     1, base=16
313sfr = "dpc",                                       "CSRMemory",    0x7B1,     1, base=16
314sfr = "dscratch",                                  "CSRMemory",    0x7B2,     1, base=16
315
316
317;;-------------------------------------------------------------------------
318;; SFR group declarations
319;;
320;; Syntax: group = "group name", "sfr name", "sfr name", ...
321;;-------------------------------------------------------------------------
322[SfrGroupInfo]
323group = "CSR", "ustatus", "uie", "utvec", "uscratch", "uepc", "ucause", "utval", "uip", "cycle", "time", "instret", "hpmcounter3", "hpmcounter4", "hpmcounter5", "hpmcounter6", "hpmcounter7", "hpmcounter8", "hpmcounter9", "hpmcounter10", "hpmcounter11", "hpmcounter12", "hpmcounter13", "hpmcounter14", "hpmcounter15", "hpmcounter16", "hpmcounter17", "hpmcounter18", "hpmcounter19", "hpmcounter20", "hpmcounter21", "hpmcounter22", "hpmcounter23", "hpmcounter24", "hpmcounter25", "hpmcounter26", "hpmcounter27", "hpmcounter28", "hpmcounter29", "hpmcounter30", "hpmcounter31", "cycleh", "timeh", "instreth", "hpmcounter3h", "hpmcounter4h", "hpmcounter5h", "hpmcounter6h", "hpmcounter7h", "hpmcounter8h", "hpmcounter9h", "hpmcounter10h", "hpmcounter11h", "hpmcounter12h", "hpmcounter13h", "hpmcounter14h", "hpmcounter15h", "hpmcounter16h", "hpmcounter17h", "hpmcounter18h", "hpmcounter19h", "hpmcounter20h", "hpmcounter21h", "hpmcounter22h", "hpmcounter23h", "hpmcounter24h", "hpmcounter25h", "hpmcounter26h", "hpmcounter27h", "hpmcounter28h", "hpmcounter29h", "hpmcounter30h", "hpmcounter31h", "sstatus", "sedeleg", "sideleg", "sie", "stvec", "scounteren", "sscratch", "sepc", "scause", "stval", "sip", "satp", "mvendorid", "marchid", "mimpid", "mhartid", "mstatus", "misa", "medeleg", "mideleg", "mie", "mtvec", "mtvt", "mscratch", "mepc", "mcause", "mtval", "mip", "mnxti", "mintstatus", "mscratchcsw", "mscratchcswl", "pmpcfg0", "pmpcfg1", "pmpcfg2", "pmpcfg3", "pmpaddr0", "pmpaddr1", "pmpaddr2", "pmpaddr3", "pmpaddr4", "pmpaddr5", "pmpaddr6", "pmpaddr7", "pmpaddr8", "pmpaddr9", "pmpaddr10", "pmpaddr11", "pmpaddr12", "pmpaddr13", "pmpaddr14", "pmpaddr15", "mcycle", "minstret", "mhpmcounter3", "mhpmcounter4", "mhpmcounter5", "mhpmcounter6", "mhpmcounter7", "mhpmcounter8", "mhpmcounter9", "mhpmcounter10", "mhpmcounter11", "mhpmcounter12", "mhpmcounter13", "mhpmcounter14", "mhpmcounter15", "mhpmcounter16", "mhpmcounter17", "mhpmcounter18", "mhpmcounter19", "mhpmcounter20", "mhpmcounter21", "mhpmcounter22", "mhpmcounter23", "mhpmcounter24", "mhpmcounter25", "mhpmcounter26", "mhpmcounter27", "mhpmcounter28", "mhpmcounter29", "mhpmcounter30", "mhpmcounter31", "mcycleh", "minstreth", "mhpmcounter3h", "mhpmcounter4h", "mhpmcounter5h", "mhpmcounter6h", "mhpmcounter7h", "mhpmcounter8h", "mhpmcounter9h", "mhpmcounter10h", "mhpmcounter11h", "mhpmcounter12h", "mhpmcounter13h", "mhpmcounter14h", "mhpmcounter15h", "mhpmcounter16h", "mhpmcounter17h", "mhpmcounter18h", "mhpmcounter19h", "mhpmcounter20h", "mhpmcounter21h", "mhpmcounter22h", "mhpmcounter23h", "mhpmcounter24h", "mhpmcounter25h", "mhpmcounter26h", "mhpmcounter27h", "mhpmcounter28h", "mhpmcounter29h", "mhpmcounter30h", "mhpmcounter31h", "mhpmevent3", "mhpmevent4", "mhpmevent5", "mhpmevent6", "mhpmevent7", "mhpmevent8", "mhpmevent9", "mhpmevent10", "mhpmevent11", "mhpmevent12", "mhpmevent13", "mhpmevent14", "mhpmevent15", "mhpmevent16", "mhpmevent17", "mhpmevent18", "mhpmevent19", "mhpmevent20", "mhpmevent21", "mhpmevent22", "mhpmevent23", "mhpmevent24", "mhpmevent25", "mhpmevent26", "mhpmevent27", "mhpmevent28", "mhpmevent29", "mhpmevent30", "mhpmevent31", "tselect", "tdata1", "tdata2", "tdata3", "dcsr", "dpc", "dscratch"
324
325;;-------------------------------------------------------------------------
326;; End of file
327;;-------------------------------------------------------------------------
328