1 /**
2  * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
3  *
4  *  SPDX-License-Identifier: Apache-2.0
5  */
6 #pragma once
7 
8 #include <stdint.h>
9 #include "soc/soc.h"
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 /** EXTMEM_ICACHE_CTRL_REG register
15  *  This description will be updated in the near future.
16  */
17 #define EXTMEM_ICACHE_CTRL_REG (DR_REG_EXTMEM_BASE + 0x0)
18 /** EXTMEM_ICACHE_ENABLE : R/W; bitpos: [0]; default: 0;
19  *  The bit is used to activate the data cache. 0: disable, 1: enable
20  */
21 #define EXTMEM_ICACHE_ENABLE    (BIT(0))
22 #define EXTMEM_ICACHE_ENABLE_M  (EXTMEM_ICACHE_ENABLE_V << EXTMEM_ICACHE_ENABLE_S)
23 #define EXTMEM_ICACHE_ENABLE_V  0x00000001U
24 #define EXTMEM_ICACHE_ENABLE_S  0
25 
26 /** EXTMEM_ICACHE_CTRL1_REG register
27  *  This description will be updated in the near future.
28  */
29 #define EXTMEM_ICACHE_CTRL1_REG (DR_REG_EXTMEM_BASE + 0x4)
30 /** EXTMEM_ICACHE_SHUT_IBUS : R/W; bitpos: [0]; default: 1;
31  *  The bit is used to disable core0 ibus, 0: enable, 1: disable
32  */
33 #define EXTMEM_ICACHE_SHUT_IBUS    (BIT(0))
34 #define EXTMEM_ICACHE_SHUT_IBUS_M  (EXTMEM_ICACHE_SHUT_IBUS_V << EXTMEM_ICACHE_SHUT_IBUS_S)
35 #define EXTMEM_ICACHE_SHUT_IBUS_V  0x00000001U
36 #define EXTMEM_ICACHE_SHUT_IBUS_S  0
37 /** EXTMEM_ICACHE_SHUT_DBUS : R/W; bitpos: [1]; default: 1;
38  *  The bit is used to disable core1 ibus, 0: enable, 1: disable
39  */
40 #define EXTMEM_ICACHE_SHUT_DBUS    (BIT(1))
41 #define EXTMEM_ICACHE_SHUT_DBUS_M  (EXTMEM_ICACHE_SHUT_DBUS_V << EXTMEM_ICACHE_SHUT_DBUS_S)
42 #define EXTMEM_ICACHE_SHUT_DBUS_V  0x00000001U
43 #define EXTMEM_ICACHE_SHUT_DBUS_S  1
44 
45 /** EXTMEM_ICACHE_TAG_POWER_CTRL_REG register
46  *  This description will be updated in the near future.
47  */
48 #define EXTMEM_ICACHE_TAG_POWER_CTRL_REG (DR_REG_EXTMEM_BASE + 0x8)
49 /** EXTMEM_ICACHE_TAG_MEM_FORCE_ON : R/W; bitpos: [0]; default: 1;
50  *  The bit is used to close clock gating of  icache tag memory. 1: close gating, 0:
51  *  open clock gating.
52  */
53 #define EXTMEM_ICACHE_TAG_MEM_FORCE_ON    (BIT(0))
54 #define EXTMEM_ICACHE_TAG_MEM_FORCE_ON_M  (EXTMEM_ICACHE_TAG_MEM_FORCE_ON_V << EXTMEM_ICACHE_TAG_MEM_FORCE_ON_S)
55 #define EXTMEM_ICACHE_TAG_MEM_FORCE_ON_V  0x00000001U
56 #define EXTMEM_ICACHE_TAG_MEM_FORCE_ON_S  0
57 /** EXTMEM_ICACHE_TAG_MEM_FORCE_PD : R/W; bitpos: [1]; default: 0;
58  *  The bit is used to power  icache tag memory down, 0: follow rtc_lslp, 1: power down
59  */
60 #define EXTMEM_ICACHE_TAG_MEM_FORCE_PD    (BIT(1))
61 #define EXTMEM_ICACHE_TAG_MEM_FORCE_PD_M  (EXTMEM_ICACHE_TAG_MEM_FORCE_PD_V << EXTMEM_ICACHE_TAG_MEM_FORCE_PD_S)
62 #define EXTMEM_ICACHE_TAG_MEM_FORCE_PD_V  0x00000001U
63 #define EXTMEM_ICACHE_TAG_MEM_FORCE_PD_S  1
64 /** EXTMEM_ICACHE_TAG_MEM_FORCE_PU : R/W; bitpos: [2]; default: 1;
65  *  The bit is used to power  icache tag memory up, 0: follow rtc_lslp, 1: power up
66  */
67 #define EXTMEM_ICACHE_TAG_MEM_FORCE_PU    (BIT(2))
68 #define EXTMEM_ICACHE_TAG_MEM_FORCE_PU_M  (EXTMEM_ICACHE_TAG_MEM_FORCE_PU_V << EXTMEM_ICACHE_TAG_MEM_FORCE_PU_S)
69 #define EXTMEM_ICACHE_TAG_MEM_FORCE_PU_V  0x00000001U
70 #define EXTMEM_ICACHE_TAG_MEM_FORCE_PU_S  2
71 
72 /** EXTMEM_ICACHE_SYNC_CTRL_REG register
73  *  This description will be updated in the near future.
74  */
75 #define EXTMEM_ICACHE_SYNC_CTRL_REG (DR_REG_EXTMEM_BASE + 0x28)
76 /** EXTMEM_ICACHE_INVALIDATE_ENA : R/W/SS; bitpos: [0]; default: 1;
77  *  The bit is used to enable invalidate operation. It will be cleared by hardware
78  *  after invalidate operation done.
79  */
80 #define EXTMEM_ICACHE_INVALIDATE_ENA    (BIT(0))
81 #define EXTMEM_ICACHE_INVALIDATE_ENA_M  (EXTMEM_ICACHE_INVALIDATE_ENA_V << EXTMEM_ICACHE_INVALIDATE_ENA_S)
82 #define EXTMEM_ICACHE_INVALIDATE_ENA_V  0x00000001U
83 #define EXTMEM_ICACHE_INVALIDATE_ENA_S  0
84 /** EXTMEM_ICACHE_SYNC_DONE : RO; bitpos: [1]; default: 0;
85  *  The bit is used to indicate invalidate operation is finished.
86  */
87 #define EXTMEM_ICACHE_SYNC_DONE    (BIT(1))
88 #define EXTMEM_ICACHE_SYNC_DONE_M  (EXTMEM_ICACHE_SYNC_DONE_V << EXTMEM_ICACHE_SYNC_DONE_S)
89 #define EXTMEM_ICACHE_SYNC_DONE_V  0x00000001U
90 #define EXTMEM_ICACHE_SYNC_DONE_S  1
91 
92 /** EXTMEM_ICACHE_SYNC_ADDR_REG register
93  *  This description will be updated in the near future.
94  */
95 #define EXTMEM_ICACHE_SYNC_ADDR_REG (DR_REG_EXTMEM_BASE + 0x2c)
96 /** EXTMEM_ICACHE_SYNC_ADDR : R/W; bitpos: [31:0]; default: 0;
97  *  The bits are used to configure the start virtual address for clean operations. It
98  *  should be combined with ICACHE_SYNC_SIZE_REG.
99  */
100 #define EXTMEM_ICACHE_SYNC_ADDR    0xFFFFFFFFU
101 #define EXTMEM_ICACHE_SYNC_ADDR_M  (EXTMEM_ICACHE_SYNC_ADDR_V << EXTMEM_ICACHE_SYNC_ADDR_S)
102 #define EXTMEM_ICACHE_SYNC_ADDR_V  0xFFFFFFFFU
103 #define EXTMEM_ICACHE_SYNC_ADDR_S  0
104 
105 /** EXTMEM_ICACHE_SYNC_SIZE_REG register
106  *  This description will be updated in the near future.
107  */
108 #define EXTMEM_ICACHE_SYNC_SIZE_REG (DR_REG_EXTMEM_BASE + 0x30)
109 /** EXTMEM_ICACHE_SYNC_SIZE : R/W; bitpos: [22:0]; default: 0;
110  *  The bits are used to configure the length for sync operations. The bits are the
111  *  counts of cache block. It should be combined with ICACHE_SYNC_ADDR_REG.
112  */
113 #define EXTMEM_ICACHE_SYNC_SIZE    0x007FFFFFU
114 #define EXTMEM_ICACHE_SYNC_SIZE_M  (EXTMEM_ICACHE_SYNC_SIZE_V << EXTMEM_ICACHE_SYNC_SIZE_S)
115 #define EXTMEM_ICACHE_SYNC_SIZE_V  0x007FFFFFU
116 #define EXTMEM_ICACHE_SYNC_SIZE_S  0
117 
118 /** EXTMEM_IBUS_TO_FLASH_START_VADDR_REG register
119  *  This description will be updated in the near future.
120  */
121 #define EXTMEM_IBUS_TO_FLASH_START_VADDR_REG (DR_REG_EXTMEM_BASE + 0x54)
122 /** EXTMEM_IBUS_TO_FLASH_START_VADDR : R/W; bitpos: [31:0]; default: 1107296256;
123  *  The bits are used to configure the start virtual address of ibus to access flash.
124  *  The register is used to give constraints to ibus access counter.
125  */
126 #define EXTMEM_IBUS_TO_FLASH_START_VADDR    0xFFFFFFFFU
127 #define EXTMEM_IBUS_TO_FLASH_START_VADDR_M  (EXTMEM_IBUS_TO_FLASH_START_VADDR_V << EXTMEM_IBUS_TO_FLASH_START_VADDR_S)
128 #define EXTMEM_IBUS_TO_FLASH_START_VADDR_V  0xFFFFFFFFU
129 #define EXTMEM_IBUS_TO_FLASH_START_VADDR_S  0
130 
131 /** EXTMEM_IBUS_TO_FLASH_END_VADDR_REG register
132  *  This description will be updated in the near future.
133  */
134 #define EXTMEM_IBUS_TO_FLASH_END_VADDR_REG (DR_REG_EXTMEM_BASE + 0x58)
135 /** EXTMEM_IBUS_TO_FLASH_END_VADDR : R/W; bitpos: [31:0]; default: 1111490559;
136  *  The bits are used to configure the end virtual address of ibus to access flash. The
137  *  register is used to give constraints to ibus access counter.
138  */
139 #define EXTMEM_IBUS_TO_FLASH_END_VADDR    0xFFFFFFFFU
140 #define EXTMEM_IBUS_TO_FLASH_END_VADDR_M  (EXTMEM_IBUS_TO_FLASH_END_VADDR_V << EXTMEM_IBUS_TO_FLASH_END_VADDR_S)
141 #define EXTMEM_IBUS_TO_FLASH_END_VADDR_V  0xFFFFFFFFU
142 #define EXTMEM_IBUS_TO_FLASH_END_VADDR_S  0
143 
144 /** EXTMEM_DBUS_TO_FLASH_START_VADDR_REG register
145  *  This description will be updated in the near future.
146  */
147 #define EXTMEM_DBUS_TO_FLASH_START_VADDR_REG (DR_REG_EXTMEM_BASE + 0x5c)
148 /** EXTMEM_DBUS_TO_FLASH_START_VADDR : R/W; bitpos: [31:0]; default: 1006632960;
149  *  The bits are used to configure the start virtual address of dbus to access flash.
150  *  The register is used to give constraints to dbus access counter.
151  */
152 #define EXTMEM_DBUS_TO_FLASH_START_VADDR    0xFFFFFFFFU
153 #define EXTMEM_DBUS_TO_FLASH_START_VADDR_M  (EXTMEM_DBUS_TO_FLASH_START_VADDR_V << EXTMEM_DBUS_TO_FLASH_START_VADDR_S)
154 #define EXTMEM_DBUS_TO_FLASH_START_VADDR_V  0xFFFFFFFFU
155 #define EXTMEM_DBUS_TO_FLASH_START_VADDR_S  0
156 
157 /** EXTMEM_DBUS_TO_FLASH_END_VADDR_REG register
158  *  This description will be updated in the near future.
159  */
160 #define EXTMEM_DBUS_TO_FLASH_END_VADDR_REG (DR_REG_EXTMEM_BASE + 0x60)
161 /** EXTMEM_DBUS_TO_FLASH_END_VADDR : R/W; bitpos: [31:0]; default: 1010827263;
162  *  The bits are used to configure the end virtual address of dbus to access flash. The
163  *  register is used to give constraints to dbus access counter.
164  */
165 #define EXTMEM_DBUS_TO_FLASH_END_VADDR    0xFFFFFFFFU
166 #define EXTMEM_DBUS_TO_FLASH_END_VADDR_M  (EXTMEM_DBUS_TO_FLASH_END_VADDR_V << EXTMEM_DBUS_TO_FLASH_END_VADDR_S)
167 #define EXTMEM_DBUS_TO_FLASH_END_VADDR_V  0xFFFFFFFFU
168 #define EXTMEM_DBUS_TO_FLASH_END_VADDR_S  0
169 
170 /** EXTMEM_CACHE_ACS_CNT_CLR_REG register
171  *  This description will be updated in the near future.
172  */
173 #define EXTMEM_CACHE_ACS_CNT_CLR_REG (DR_REG_EXTMEM_BASE + 0x64)
174 /** EXTMEM_IBUS_ACS_CNT_CLR : WOD; bitpos: [0]; default: 0;
175  *  The bit is used to clear ibus counter.
176  */
177 #define EXTMEM_IBUS_ACS_CNT_CLR    (BIT(0))
178 #define EXTMEM_IBUS_ACS_CNT_CLR_M  (EXTMEM_IBUS_ACS_CNT_CLR_V << EXTMEM_IBUS_ACS_CNT_CLR_S)
179 #define EXTMEM_IBUS_ACS_CNT_CLR_V  0x00000001U
180 #define EXTMEM_IBUS_ACS_CNT_CLR_S  0
181 /** EXTMEM_DBUS_ACS_CNT_CLR : WOD; bitpos: [1]; default: 0;
182  *  The bit is used to clear dbus counter.
183  */
184 #define EXTMEM_DBUS_ACS_CNT_CLR    (BIT(1))
185 #define EXTMEM_DBUS_ACS_CNT_CLR_M  (EXTMEM_DBUS_ACS_CNT_CLR_V << EXTMEM_DBUS_ACS_CNT_CLR_S)
186 #define EXTMEM_DBUS_ACS_CNT_CLR_V  0x00000001U
187 #define EXTMEM_DBUS_ACS_CNT_CLR_S  1
188 
189 /** EXTMEM_CACHE_ILG_INT_ENA_REG register
190  *  This description will be updated in the near future.
191  */
192 #define EXTMEM_CACHE_ILG_INT_ENA_REG (DR_REG_EXTMEM_BASE + 0x78)
193 /** EXTMEM_ICACHE_SYNC_OP_FAULT_INT_ENA : R/W; bitpos: [0]; default: 0;
194  *  The bit is used to enable interrupt by sync configurations fault.
195  */
196 #define EXTMEM_ICACHE_SYNC_OP_FAULT_INT_ENA    (BIT(0))
197 #define EXTMEM_ICACHE_SYNC_OP_FAULT_INT_ENA_M  (EXTMEM_ICACHE_SYNC_OP_FAULT_INT_ENA_V << EXTMEM_ICACHE_SYNC_OP_FAULT_INT_ENA_S)
198 #define EXTMEM_ICACHE_SYNC_OP_FAULT_INT_ENA_V  0x00000001U
199 #define EXTMEM_ICACHE_SYNC_OP_FAULT_INT_ENA_S  0
200 /** EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_ENA : R/W; bitpos: [1]; default: 0;
201  *  The bit is used to enable interrupt by preload configurations fault.
202  */
203 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_ENA    (BIT(1))
204 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_ENA_M  (EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_ENA_V << EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_ENA_S)
205 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_ENA_V  0x00000001U
206 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_ENA_S  1
207 /** EXTMEM_MMU_ENTRY_FAULT_INT_ENA : R/W; bitpos: [5]; default: 0;
208  *  The bit is used to enable interrupt by mmu entry fault.
209  */
210 #define EXTMEM_MMU_ENTRY_FAULT_INT_ENA    (BIT(5))
211 #define EXTMEM_MMU_ENTRY_FAULT_INT_ENA_M  (EXTMEM_MMU_ENTRY_FAULT_INT_ENA_V << EXTMEM_MMU_ENTRY_FAULT_INT_ENA_S)
212 #define EXTMEM_MMU_ENTRY_FAULT_INT_ENA_V  0x00000001U
213 #define EXTMEM_MMU_ENTRY_FAULT_INT_ENA_S  5
214 /** EXTMEM_IBUS_CNT_OVF_INT_ENA : R/W; bitpos: [7]; default: 0;
215  *  The bit is used to enable interrupt by ibus counter overflow.
216  */
217 #define EXTMEM_IBUS_CNT_OVF_INT_ENA    (BIT(7))
218 #define EXTMEM_IBUS_CNT_OVF_INT_ENA_M  (EXTMEM_IBUS_CNT_OVF_INT_ENA_V << EXTMEM_IBUS_CNT_OVF_INT_ENA_S)
219 #define EXTMEM_IBUS_CNT_OVF_INT_ENA_V  0x00000001U
220 #define EXTMEM_IBUS_CNT_OVF_INT_ENA_S  7
221 /** EXTMEM_DBUS_CNT_OVF_INT_ENA : R/W; bitpos: [8]; default: 0;
222  *  The bit is used to enable interrupt by dbus counter overflow.
223  */
224 #define EXTMEM_DBUS_CNT_OVF_INT_ENA    (BIT(8))
225 #define EXTMEM_DBUS_CNT_OVF_INT_ENA_M  (EXTMEM_DBUS_CNT_OVF_INT_ENA_V << EXTMEM_DBUS_CNT_OVF_INT_ENA_S)
226 #define EXTMEM_DBUS_CNT_OVF_INT_ENA_V  0x00000001U
227 #define EXTMEM_DBUS_CNT_OVF_INT_ENA_S  8
228 
229 /** EXTMEM_CACHE_ILG_INT_CLR_REG register
230  *  This description will be updated in the near future.
231  */
232 #define EXTMEM_CACHE_ILG_INT_CLR_REG (DR_REG_EXTMEM_BASE + 0x7c)
233 /** EXTMEM_ICACHE_SYNC_OP_FAULT_INT_CLR : WOD; bitpos: [0]; default: 0;
234  *  The bit is used to clear interrupt by sync configurations fault.
235  */
236 #define EXTMEM_ICACHE_SYNC_OP_FAULT_INT_CLR    (BIT(0))
237 #define EXTMEM_ICACHE_SYNC_OP_FAULT_INT_CLR_M  (EXTMEM_ICACHE_SYNC_OP_FAULT_INT_CLR_V << EXTMEM_ICACHE_SYNC_OP_FAULT_INT_CLR_S)
238 #define EXTMEM_ICACHE_SYNC_OP_FAULT_INT_CLR_V  0x00000001U
239 #define EXTMEM_ICACHE_SYNC_OP_FAULT_INT_CLR_S  0
240 /** EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_CLR : WOD; bitpos: [1]; default: 0;
241  *  The bit is used to clear interrupt by preload configurations fault.
242  */
243 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_CLR    (BIT(1))
244 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_CLR_M  (EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_CLR_V << EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_CLR_S)
245 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_CLR_V  0x00000001U
246 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_INT_CLR_S  1
247 /** EXTMEM_MMU_ENTRY_FAULT_INT_CLR : WOD; bitpos: [5]; default: 0;
248  *  The bit is used to clear interrupt by mmu entry fault.
249  */
250 #define EXTMEM_MMU_ENTRY_FAULT_INT_CLR    (BIT(5))
251 #define EXTMEM_MMU_ENTRY_FAULT_INT_CLR_M  (EXTMEM_MMU_ENTRY_FAULT_INT_CLR_V << EXTMEM_MMU_ENTRY_FAULT_INT_CLR_S)
252 #define EXTMEM_MMU_ENTRY_FAULT_INT_CLR_V  0x00000001U
253 #define EXTMEM_MMU_ENTRY_FAULT_INT_CLR_S  5
254 /** EXTMEM_IBUS_CNT_OVF_INT_CLR : WOD; bitpos: [7]; default: 0;
255  *  The bit is used to clear interrupt by ibus counter overflow.
256  */
257 #define EXTMEM_IBUS_CNT_OVF_INT_CLR    (BIT(7))
258 #define EXTMEM_IBUS_CNT_OVF_INT_CLR_M  (EXTMEM_IBUS_CNT_OVF_INT_CLR_V << EXTMEM_IBUS_CNT_OVF_INT_CLR_S)
259 #define EXTMEM_IBUS_CNT_OVF_INT_CLR_V  0x00000001U
260 #define EXTMEM_IBUS_CNT_OVF_INT_CLR_S  7
261 /** EXTMEM_DBUS_CNT_OVF_INT_CLR : WOD; bitpos: [8]; default: 0;
262  *  The bit is used to clear interrupt by dbus counter overflow.
263  */
264 #define EXTMEM_DBUS_CNT_OVF_INT_CLR    (BIT(8))
265 #define EXTMEM_DBUS_CNT_OVF_INT_CLR_M  (EXTMEM_DBUS_CNT_OVF_INT_CLR_V << EXTMEM_DBUS_CNT_OVF_INT_CLR_S)
266 #define EXTMEM_DBUS_CNT_OVF_INT_CLR_V  0x00000001U
267 #define EXTMEM_DBUS_CNT_OVF_INT_CLR_S  8
268 
269 /** EXTMEM_CACHE_ILG_INT_ST_REG register
270  *  This description will be updated in the near future.
271  */
272 #define EXTMEM_CACHE_ILG_INT_ST_REG (DR_REG_EXTMEM_BASE + 0x80)
273 /** EXTMEM_ICACHE_SYNC_OP_FAULT_ST : RO; bitpos: [0]; default: 0;
274  *  The bit is used to indicate interrupt by sync configurations fault.
275  */
276 #define EXTMEM_ICACHE_SYNC_OP_FAULT_ST    (BIT(0))
277 #define EXTMEM_ICACHE_SYNC_OP_FAULT_ST_M  (EXTMEM_ICACHE_SYNC_OP_FAULT_ST_V << EXTMEM_ICACHE_SYNC_OP_FAULT_ST_S)
278 #define EXTMEM_ICACHE_SYNC_OP_FAULT_ST_V  0x00000001U
279 #define EXTMEM_ICACHE_SYNC_OP_FAULT_ST_S  0
280 /** EXTMEM_ICACHE_PRELOAD_OP_FAULT_ST : RO; bitpos: [1]; default: 0;
281  *  The bit is used to indicate interrupt by preload configurations fault.
282  */
283 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_ST    (BIT(1))
284 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_ST_M  (EXTMEM_ICACHE_PRELOAD_OP_FAULT_ST_V << EXTMEM_ICACHE_PRELOAD_OP_FAULT_ST_S)
285 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_ST_V  0x00000001U
286 #define EXTMEM_ICACHE_PRELOAD_OP_FAULT_ST_S  1
287 /** EXTMEM_MMU_ENTRY_FAULT_ST : RO; bitpos: [5]; default: 0;
288  *  The bit is used to indicate interrupt by mmu entry fault.
289  */
290 #define EXTMEM_MMU_ENTRY_FAULT_ST    (BIT(5))
291 #define EXTMEM_MMU_ENTRY_FAULT_ST_M  (EXTMEM_MMU_ENTRY_FAULT_ST_V << EXTMEM_MMU_ENTRY_FAULT_ST_S)
292 #define EXTMEM_MMU_ENTRY_FAULT_ST_V  0x00000001U
293 #define EXTMEM_MMU_ENTRY_FAULT_ST_S  5
294 /** EXTMEM_IBUS_ACS_CNT_OVF_ST : RO; bitpos: [7]; default: 0;
295  *  The bit is used to indicate interrupt by ibus access flash/spiram counter overflow.
296  */
297 #define EXTMEM_IBUS_ACS_CNT_OVF_ST    (BIT(7))
298 #define EXTMEM_IBUS_ACS_CNT_OVF_ST_M  (EXTMEM_IBUS_ACS_CNT_OVF_ST_V << EXTMEM_IBUS_ACS_CNT_OVF_ST_S)
299 #define EXTMEM_IBUS_ACS_CNT_OVF_ST_V  0x00000001U
300 #define EXTMEM_IBUS_ACS_CNT_OVF_ST_S  7
301 /** EXTMEM_IBUS_ACS_MISS_CNT_OVF_ST : RO; bitpos: [8]; default: 0;
302  *  The bit is used to indicate interrupt by ibus access flash/spiram miss counter
303  *  overflow.
304  */
305 #define EXTMEM_IBUS_ACS_MISS_CNT_OVF_ST    (BIT(8))
306 #define EXTMEM_IBUS_ACS_MISS_CNT_OVF_ST_M  (EXTMEM_IBUS_ACS_MISS_CNT_OVF_ST_V << EXTMEM_IBUS_ACS_MISS_CNT_OVF_ST_S)
307 #define EXTMEM_IBUS_ACS_MISS_CNT_OVF_ST_V  0x00000001U
308 #define EXTMEM_IBUS_ACS_MISS_CNT_OVF_ST_S  8
309 /** EXTMEM_DBUS_ACS_CNT_OVF_ST : RO; bitpos: [9]; default: 0;
310  *  The bit is used to indicate interrupt by dbus access flash/spiram counter overflow.
311  */
312 #define EXTMEM_DBUS_ACS_CNT_OVF_ST    (BIT(9))
313 #define EXTMEM_DBUS_ACS_CNT_OVF_ST_M  (EXTMEM_DBUS_ACS_CNT_OVF_ST_V << EXTMEM_DBUS_ACS_CNT_OVF_ST_S)
314 #define EXTMEM_DBUS_ACS_CNT_OVF_ST_V  0x00000001U
315 #define EXTMEM_DBUS_ACS_CNT_OVF_ST_S  9
316 /** EXTMEM_DBUS_ACS_FLASH_MISS_CNT_OVF_ST : RO; bitpos: [10]; default: 0;
317  *  The bit is used to indicate interrupt by dbus access flash miss counter overflow.
318  */
319 #define EXTMEM_DBUS_ACS_FLASH_MISS_CNT_OVF_ST    (BIT(10))
320 #define EXTMEM_DBUS_ACS_FLASH_MISS_CNT_OVF_ST_M  (EXTMEM_DBUS_ACS_FLASH_MISS_CNT_OVF_ST_V << EXTMEM_DBUS_ACS_FLASH_MISS_CNT_OVF_ST_S)
321 #define EXTMEM_DBUS_ACS_FLASH_MISS_CNT_OVF_ST_V  0x00000001U
322 #define EXTMEM_DBUS_ACS_FLASH_MISS_CNT_OVF_ST_S  10
323 
324 /** EXTMEM_CORE0_ACS_CACHE_INT_ENA_REG register
325  *  This description will be updated in the near future.
326  */
327 #define EXTMEM_CORE0_ACS_CACHE_INT_ENA_REG (DR_REG_EXTMEM_BASE + 0x84)
328 /** EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_ENA : R/W; bitpos: [0]; default: 0;
329  *  The bit is used to enable interrupt by cpu access icache while the corresponding
330  *  ibus is disabled which include speculative access.
331  */
332 #define EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_ENA    (BIT(0))
333 #define EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_ENA_M  (EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_ENA_V << EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_ENA_S)
334 #define EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_ENA_V  0x00000001U
335 #define EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_ENA_S  0
336 /** EXTMEM_CORE0_IBUS_WR_IC_INT_ENA : R/W; bitpos: [1]; default: 0;
337  *  The bit is used to enable interrupt by ibus trying to write icache
338  */
339 #define EXTMEM_CORE0_IBUS_WR_IC_INT_ENA    (BIT(1))
340 #define EXTMEM_CORE0_IBUS_WR_IC_INT_ENA_M  (EXTMEM_CORE0_IBUS_WR_IC_INT_ENA_V << EXTMEM_CORE0_IBUS_WR_IC_INT_ENA_S)
341 #define EXTMEM_CORE0_IBUS_WR_IC_INT_ENA_V  0x00000001U
342 #define EXTMEM_CORE0_IBUS_WR_IC_INT_ENA_S  1
343 /** EXTMEM_CORE0_IBUS_REJECT_INT_ENA : R/W; bitpos: [2]; default: 0;
344  *  The bit is used to enable interrupt by authentication fail.
345  */
346 #define EXTMEM_CORE0_IBUS_REJECT_INT_ENA    (BIT(2))
347 #define EXTMEM_CORE0_IBUS_REJECT_INT_ENA_M  (EXTMEM_CORE0_IBUS_REJECT_INT_ENA_V << EXTMEM_CORE0_IBUS_REJECT_INT_ENA_S)
348 #define EXTMEM_CORE0_IBUS_REJECT_INT_ENA_V  0x00000001U
349 #define EXTMEM_CORE0_IBUS_REJECT_INT_ENA_S  2
350 /** EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_ENA : R/W; bitpos: [3]; default: 0;
351  *  The bit is used to enable interrupt by cpu access icache while the corresponding
352  *  dbus is disabled which include speculative access.
353  */
354 #define EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_ENA    (BIT(3))
355 #define EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_ENA_M  (EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_ENA_V << EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_ENA_S)
356 #define EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_ENA_V  0x00000001U
357 #define EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_ENA_S  3
358 /** EXTMEM_CORE0_DBUS_REJECT_INT_ENA : R/W; bitpos: [4]; default: 0;
359  *  The bit is used to enable interrupt by authentication fail.
360  */
361 #define EXTMEM_CORE0_DBUS_REJECT_INT_ENA    (BIT(4))
362 #define EXTMEM_CORE0_DBUS_REJECT_INT_ENA_M  (EXTMEM_CORE0_DBUS_REJECT_INT_ENA_V << EXTMEM_CORE0_DBUS_REJECT_INT_ENA_S)
363 #define EXTMEM_CORE0_DBUS_REJECT_INT_ENA_V  0x00000001U
364 #define EXTMEM_CORE0_DBUS_REJECT_INT_ENA_S  4
365 /** EXTMEM_CORE0_DBUS_WR_IC_INT_ENA : R/W; bitpos: [5]; default: 0;
366  *  The bit is used to enable interrupt by dbus trying to write icache
367  */
368 #define EXTMEM_CORE0_DBUS_WR_IC_INT_ENA    (BIT(5))
369 #define EXTMEM_CORE0_DBUS_WR_IC_INT_ENA_M  (EXTMEM_CORE0_DBUS_WR_IC_INT_ENA_V << EXTMEM_CORE0_DBUS_WR_IC_INT_ENA_S)
370 #define EXTMEM_CORE0_DBUS_WR_IC_INT_ENA_V  0x00000001U
371 #define EXTMEM_CORE0_DBUS_WR_IC_INT_ENA_S  5
372 
373 /** EXTMEM_CORE0_ACS_CACHE_INT_CLR_REG register
374  *  This description will be updated in the near future.
375  */
376 #define EXTMEM_CORE0_ACS_CACHE_INT_CLR_REG (DR_REG_EXTMEM_BASE + 0x88)
377 /** EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_CLR : WOD; bitpos: [0]; default: 0;
378  *  The bit is used to clear interrupt by cpu access icache while the corresponding
379  *  ibus is disabled or icache is disabled which include speculative access.
380  */
381 #define EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_CLR    (BIT(0))
382 #define EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_CLR_M  (EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_CLR_V << EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_CLR_S)
383 #define EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_CLR_V  0x00000001U
384 #define EXTMEM_CORE0_IBUS_ACS_MSK_IC_INT_CLR_S  0
385 /** EXTMEM_CORE0_IBUS_WR_IC_INT_CLR : WOD; bitpos: [1]; default: 0;
386  *  The bit is used to clear interrupt by ibus trying to write icache
387  */
388 #define EXTMEM_CORE0_IBUS_WR_IC_INT_CLR    (BIT(1))
389 #define EXTMEM_CORE0_IBUS_WR_IC_INT_CLR_M  (EXTMEM_CORE0_IBUS_WR_IC_INT_CLR_V << EXTMEM_CORE0_IBUS_WR_IC_INT_CLR_S)
390 #define EXTMEM_CORE0_IBUS_WR_IC_INT_CLR_V  0x00000001U
391 #define EXTMEM_CORE0_IBUS_WR_IC_INT_CLR_S  1
392 /** EXTMEM_CORE0_IBUS_REJECT_INT_CLR : WOD; bitpos: [2]; default: 0;
393  *  The bit is used to clear interrupt by authentication fail.
394  */
395 #define EXTMEM_CORE0_IBUS_REJECT_INT_CLR    (BIT(2))
396 #define EXTMEM_CORE0_IBUS_REJECT_INT_CLR_M  (EXTMEM_CORE0_IBUS_REJECT_INT_CLR_V << EXTMEM_CORE0_IBUS_REJECT_INT_CLR_S)
397 #define EXTMEM_CORE0_IBUS_REJECT_INT_CLR_V  0x00000001U
398 #define EXTMEM_CORE0_IBUS_REJECT_INT_CLR_S  2
399 /** EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_CLR : WOD; bitpos: [3]; default: 0;
400  *  The bit is used to clear interrupt by cpu access icache while the corresponding
401  *  dbus is disabled or icache is disabled which include speculative access.
402  */
403 #define EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_CLR    (BIT(3))
404 #define EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_CLR_M  (EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_CLR_V << EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_CLR_S)
405 #define EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_CLR_V  0x00000001U
406 #define EXTMEM_CORE0_DBUS_ACS_MSK_IC_INT_CLR_S  3
407 /** EXTMEM_CORE0_DBUS_REJECT_INT_CLR : WOD; bitpos: [4]; default: 0;
408  *  The bit is used to clear interrupt by authentication fail.
409  */
410 #define EXTMEM_CORE0_DBUS_REJECT_INT_CLR    (BIT(4))
411 #define EXTMEM_CORE0_DBUS_REJECT_INT_CLR_M  (EXTMEM_CORE0_DBUS_REJECT_INT_CLR_V << EXTMEM_CORE0_DBUS_REJECT_INT_CLR_S)
412 #define EXTMEM_CORE0_DBUS_REJECT_INT_CLR_V  0x00000001U
413 #define EXTMEM_CORE0_DBUS_REJECT_INT_CLR_S  4
414 /** EXTMEM_CORE0_DBUS_WR_IC_INT_CLR : WOD; bitpos: [5]; default: 0;
415  *  The bit is used to clear interrupt by dbus trying to write icache
416  */
417 #define EXTMEM_CORE0_DBUS_WR_IC_INT_CLR    (BIT(5))
418 #define EXTMEM_CORE0_DBUS_WR_IC_INT_CLR_M  (EXTMEM_CORE0_DBUS_WR_IC_INT_CLR_V << EXTMEM_CORE0_DBUS_WR_IC_INT_CLR_S)
419 #define EXTMEM_CORE0_DBUS_WR_IC_INT_CLR_V  0x00000001U
420 #define EXTMEM_CORE0_DBUS_WR_IC_INT_CLR_S  5
421 
422 /** EXTMEM_CORE0_ACS_CACHE_INT_ST_REG register
423  *  This description will be updated in the near future.
424  */
425 #define EXTMEM_CORE0_ACS_CACHE_INT_ST_REG (DR_REG_EXTMEM_BASE + 0x8c)
426 /** EXTMEM_CORE0_IBUS_ACS_MSK_ICACHE_ST : RO; bitpos: [0]; default: 0;
427  *  The bit is used to indicate interrupt by cpu access  icache while the core0_ibus is
428  *  disabled or icache is disabled which include speculative access.
429  */
430 #define EXTMEM_CORE0_IBUS_ACS_MSK_ICACHE_ST    (BIT(0))
431 #define EXTMEM_CORE0_IBUS_ACS_MSK_ICACHE_ST_M  (EXTMEM_CORE0_IBUS_ACS_MSK_ICACHE_ST_V << EXTMEM_CORE0_IBUS_ACS_MSK_ICACHE_ST_S)
432 #define EXTMEM_CORE0_IBUS_ACS_MSK_ICACHE_ST_V  0x00000001U
433 #define EXTMEM_CORE0_IBUS_ACS_MSK_ICACHE_ST_S  0
434 /** EXTMEM_CORE0_IBUS_WR_ICACHE_ST : RO; bitpos: [1]; default: 0;
435  *  The bit is used to indicate interrupt by ibus trying to write icache
436  */
437 #define EXTMEM_CORE0_IBUS_WR_ICACHE_ST    (BIT(1))
438 #define EXTMEM_CORE0_IBUS_WR_ICACHE_ST_M  (EXTMEM_CORE0_IBUS_WR_ICACHE_ST_V << EXTMEM_CORE0_IBUS_WR_ICACHE_ST_S)
439 #define EXTMEM_CORE0_IBUS_WR_ICACHE_ST_V  0x00000001U
440 #define EXTMEM_CORE0_IBUS_WR_ICACHE_ST_S  1
441 /** EXTMEM_CORE0_IBUS_REJECT_ST : RO; bitpos: [2]; default: 0;
442  *  The bit is used to indicate interrupt by authentication fail.
443  */
444 #define EXTMEM_CORE0_IBUS_REJECT_ST    (BIT(2))
445 #define EXTMEM_CORE0_IBUS_REJECT_ST_M  (EXTMEM_CORE0_IBUS_REJECT_ST_V << EXTMEM_CORE0_IBUS_REJECT_ST_S)
446 #define EXTMEM_CORE0_IBUS_REJECT_ST_V  0x00000001U
447 #define EXTMEM_CORE0_IBUS_REJECT_ST_S  2
448 /** EXTMEM_CORE0_DBUS_ACS_MSK_ICACHE_ST : RO; bitpos: [3]; default: 0;
449  *  The bit is used to indicate interrupt by cpu access icache while the core0_dbus is
450  *  disabled or icache is disabled which include speculative access.
451  */
452 #define EXTMEM_CORE0_DBUS_ACS_MSK_ICACHE_ST    (BIT(3))
453 #define EXTMEM_CORE0_DBUS_ACS_MSK_ICACHE_ST_M  (EXTMEM_CORE0_DBUS_ACS_MSK_ICACHE_ST_V << EXTMEM_CORE0_DBUS_ACS_MSK_ICACHE_ST_S)
454 #define EXTMEM_CORE0_DBUS_ACS_MSK_ICACHE_ST_V  0x00000001U
455 #define EXTMEM_CORE0_DBUS_ACS_MSK_ICACHE_ST_S  3
456 /** EXTMEM_CORE0_DBUS_REJECT_ST : RO; bitpos: [4]; default: 0;
457  *  The bit is used to indicate interrupt by authentication fail.
458  */
459 #define EXTMEM_CORE0_DBUS_REJECT_ST    (BIT(4))
460 #define EXTMEM_CORE0_DBUS_REJECT_ST_M  (EXTMEM_CORE0_DBUS_REJECT_ST_V << EXTMEM_CORE0_DBUS_REJECT_ST_S)
461 #define EXTMEM_CORE0_DBUS_REJECT_ST_V  0x00000001U
462 #define EXTMEM_CORE0_DBUS_REJECT_ST_S  4
463 /** EXTMEM_CORE0_DBUS_WR_ICACHE_ST : RO; bitpos: [5]; default: 0;
464  *  The bit is used to indicate interrupt by dbus trying to write icache
465  */
466 #define EXTMEM_CORE0_DBUS_WR_ICACHE_ST    (BIT(5))
467 #define EXTMEM_CORE0_DBUS_WR_ICACHE_ST_M  (EXTMEM_CORE0_DBUS_WR_ICACHE_ST_V << EXTMEM_CORE0_DBUS_WR_ICACHE_ST_S)
468 #define EXTMEM_CORE0_DBUS_WR_ICACHE_ST_V  0x00000001U
469 #define EXTMEM_CORE0_DBUS_WR_ICACHE_ST_S  5
470 
471 /** EXTMEM_CORE0_DBUS_REJECT_ST_REG register
472  *  This description will be updated in the near future.
473  */
474 #define EXTMEM_CORE0_DBUS_REJECT_ST_REG (DR_REG_EXTMEM_BASE + 0x90)
475 /** EXTMEM_CORE0_DBUS_ATTR : RO; bitpos: [2:0]; default: 0;
476  *  The bits are used to indicate the attribute of CPU access dbus when authentication
477  *  fail. 0: invalidate, 1: execute-able, 2: read-able, 4: write-able.
478  */
479 #define EXTMEM_CORE0_DBUS_ATTR    0x00000007U
480 #define EXTMEM_CORE0_DBUS_ATTR_M  (EXTMEM_CORE0_DBUS_ATTR_V << EXTMEM_CORE0_DBUS_ATTR_S)
481 #define EXTMEM_CORE0_DBUS_ATTR_V  0x00000007U
482 #define EXTMEM_CORE0_DBUS_ATTR_S  0
483 /** EXTMEM_CORE0_DBUS_WORLD : RO; bitpos: [3]; default: 0;
484  *  The bit is used to indicate the world of CPU access dbus when authentication fail.
485  *  0: WORLD0, 1: WORLD1
486  */
487 #define EXTMEM_CORE0_DBUS_WORLD    (BIT(3))
488 #define EXTMEM_CORE0_DBUS_WORLD_M  (EXTMEM_CORE0_DBUS_WORLD_V << EXTMEM_CORE0_DBUS_WORLD_S)
489 #define EXTMEM_CORE0_DBUS_WORLD_V  0x00000001U
490 #define EXTMEM_CORE0_DBUS_WORLD_S  3
491 
492 /** EXTMEM_CORE0_DBUS_REJECT_VADDR_REG register
493  *  This description will be updated in the near future.
494  */
495 #define EXTMEM_CORE0_DBUS_REJECT_VADDR_REG (DR_REG_EXTMEM_BASE + 0x94)
496 /** EXTMEM_CORE0_DBUS_VADDR : RO; bitpos: [31:0]; default: 4294967295;
497  *  The bits are used to indicate the virtual address of CPU access dbus when
498  *  authentication fail.
499  */
500 #define EXTMEM_CORE0_DBUS_VADDR    0xFFFFFFFFU
501 #define EXTMEM_CORE0_DBUS_VADDR_M  (EXTMEM_CORE0_DBUS_VADDR_V << EXTMEM_CORE0_DBUS_VADDR_S)
502 #define EXTMEM_CORE0_DBUS_VADDR_V  0xFFFFFFFFU
503 #define EXTMEM_CORE0_DBUS_VADDR_S  0
504 
505 /** EXTMEM_CORE0_IBUS_REJECT_ST_REG register
506  *  This description will be updated in the near future.
507  */
508 #define EXTMEM_CORE0_IBUS_REJECT_ST_REG (DR_REG_EXTMEM_BASE + 0x98)
509 /** EXTMEM_CORE0_IBUS_ATTR : RO; bitpos: [2:0]; default: 0;
510  *  The bits are used to indicate the attribute of CPU access ibus when authentication
511  *  fail. 0: invalidate, 1: execute-able, 2: read-able
512  */
513 #define EXTMEM_CORE0_IBUS_ATTR    0x00000007U
514 #define EXTMEM_CORE0_IBUS_ATTR_M  (EXTMEM_CORE0_IBUS_ATTR_V << EXTMEM_CORE0_IBUS_ATTR_S)
515 #define EXTMEM_CORE0_IBUS_ATTR_V  0x00000007U
516 #define EXTMEM_CORE0_IBUS_ATTR_S  0
517 /** EXTMEM_CORE0_IBUS_WORLD : RO; bitpos: [3]; default: 0;
518  *  The bit is used to indicate the world of CPU access ibus when authentication fail.
519  *  0: WORLD0, 1: WORLD1
520  */
521 #define EXTMEM_CORE0_IBUS_WORLD    (BIT(3))
522 #define EXTMEM_CORE0_IBUS_WORLD_M  (EXTMEM_CORE0_IBUS_WORLD_V << EXTMEM_CORE0_IBUS_WORLD_S)
523 #define EXTMEM_CORE0_IBUS_WORLD_V  0x00000001U
524 #define EXTMEM_CORE0_IBUS_WORLD_S  3
525 
526 /** EXTMEM_CORE0_IBUS_REJECT_VADDR_REG register
527  *  This description will be updated in the near future.
528  */
529 #define EXTMEM_CORE0_IBUS_REJECT_VADDR_REG (DR_REG_EXTMEM_BASE + 0x9c)
530 /** EXTMEM_CORE0_IBUS_VADDR : RO; bitpos: [31:0]; default: 4294967295;
531  *  The bits are used to indicate the virtual address of CPU access  ibus when
532  *  authentication fail.
533  */
534 #define EXTMEM_CORE0_IBUS_VADDR    0xFFFFFFFFU
535 #define EXTMEM_CORE0_IBUS_VADDR_M  (EXTMEM_CORE0_IBUS_VADDR_V << EXTMEM_CORE0_IBUS_VADDR_S)
536 #define EXTMEM_CORE0_IBUS_VADDR_V  0xFFFFFFFFU
537 #define EXTMEM_CORE0_IBUS_VADDR_S  0
538 
539 /** EXTMEM_CACHE_MMU_FAULT_CONTENT_REG register
540  *  This description will be updated in the near future.
541  */
542 #define EXTMEM_CACHE_MMU_FAULT_CONTENT_REG (DR_REG_EXTMEM_BASE + 0xa0)
543 /** EXTMEM_CACHE_MMU_FAULT_CONTENT : RO; bitpos: [7:0]; default: 0;
544  *  The bits are used to indicate the content of mmu entry which cause mmu fault..
545  */
546 #define EXTMEM_CACHE_MMU_FAULT_CONTENT    0x000000FFU
547 #define EXTMEM_CACHE_MMU_FAULT_CONTENT_M  (EXTMEM_CACHE_MMU_FAULT_CONTENT_V << EXTMEM_CACHE_MMU_FAULT_CONTENT_S)
548 #define EXTMEM_CACHE_MMU_FAULT_CONTENT_V  0x000000FFU
549 #define EXTMEM_CACHE_MMU_FAULT_CONTENT_S  0
550 /** EXTMEM_CACHE_MMU_FAULT_CODE : RO; bitpos: [13:10]; default: 0;
551  *  The right-most 3 bits are used to indicate the operations which cause mmu fault
552  *  occurrence. 0: default, 1: cpu miss, 2: preload miss, 3: writeback, 4: cpu miss
553  *  evict recovery address, 5: load miss evict recovery address, 6: external dma tx, 7:
554  *  external dma rx. The most significant bit is used to indicate this operation occurs
555  *  in which one icache.
556  */
557 #define EXTMEM_CACHE_MMU_FAULT_CODE    0x0000000FU
558 #define EXTMEM_CACHE_MMU_FAULT_CODE_M  (EXTMEM_CACHE_MMU_FAULT_CODE_V << EXTMEM_CACHE_MMU_FAULT_CODE_S)
559 #define EXTMEM_CACHE_MMU_FAULT_CODE_V  0x0000000FU
560 #define EXTMEM_CACHE_MMU_FAULT_CODE_S  10
561 
562 /** EXTMEM_CACHE_MMU_FAULT_VADDR_REG register
563  *  This description will be updated in the near future.
564  */
565 #define EXTMEM_CACHE_MMU_FAULT_VADDR_REG (DR_REG_EXTMEM_BASE + 0xa4)
566 /** EXTMEM_CACHE_MMU_FAULT_VADDR : RO; bitpos: [31:0]; default: 0;
567  *  The bits are used to indicate the virtual address which cause mmu fault..
568  */
569 #define EXTMEM_CACHE_MMU_FAULT_VADDR    0xFFFFFFFFU
570 #define EXTMEM_CACHE_MMU_FAULT_VADDR_M  (EXTMEM_CACHE_MMU_FAULT_VADDR_V << EXTMEM_CACHE_MMU_FAULT_VADDR_S)
571 #define EXTMEM_CACHE_MMU_FAULT_VADDR_V  0xFFFFFFFFU
572 #define EXTMEM_CACHE_MMU_FAULT_VADDR_S  0
573 
574 /** EXTMEM_CACHE_WRAP_AROUND_CTRL_REG register
575  *  This description will be updated in the near future.
576  */
577 #define EXTMEM_CACHE_WRAP_AROUND_CTRL_REG (DR_REG_EXTMEM_BASE + 0xa8)
578 /** EXTMEM_CACHE_FLASH_WRAP_AROUND : R/W; bitpos: [0]; default: 0;
579  *  The bit is used to enable wrap around mode when read data from flash.
580  */
581 #define EXTMEM_CACHE_FLASH_WRAP_AROUND    (BIT(0))
582 #define EXTMEM_CACHE_FLASH_WRAP_AROUND_M  (EXTMEM_CACHE_FLASH_WRAP_AROUND_V << EXTMEM_CACHE_FLASH_WRAP_AROUND_S)
583 #define EXTMEM_CACHE_FLASH_WRAP_AROUND_V  0x00000001U
584 #define EXTMEM_CACHE_FLASH_WRAP_AROUND_S  0
585 
586 /** EXTMEM_CACHE_MMU_POWER_CTRL_REG register
587  *  This description will be updated in the near future.
588  */
589 #define EXTMEM_CACHE_MMU_POWER_CTRL_REG (DR_REG_EXTMEM_BASE + 0xac)
590 /** EXTMEM_CACHE_MMU_MEM_FORCE_ON : R/W; bitpos: [0]; default: 1;
591  *  The bit is used to enable clock gating to save power when access mmu memory, 0:
592  *  enable, 1: disable
593  */
594 #define EXTMEM_CACHE_MMU_MEM_FORCE_ON    (BIT(0))
595 #define EXTMEM_CACHE_MMU_MEM_FORCE_ON_M  (EXTMEM_CACHE_MMU_MEM_FORCE_ON_V << EXTMEM_CACHE_MMU_MEM_FORCE_ON_S)
596 #define EXTMEM_CACHE_MMU_MEM_FORCE_ON_V  0x00000001U
597 #define EXTMEM_CACHE_MMU_MEM_FORCE_ON_S  0
598 /** EXTMEM_CACHE_MMU_MEM_FORCE_PD : R/W; bitpos: [1]; default: 0;
599  *  The bit is used to power mmu memory down, 0: follow_rtc_lslp_pd, 1: power down
600  */
601 #define EXTMEM_CACHE_MMU_MEM_FORCE_PD    (BIT(1))
602 #define EXTMEM_CACHE_MMU_MEM_FORCE_PD_M  (EXTMEM_CACHE_MMU_MEM_FORCE_PD_V << EXTMEM_CACHE_MMU_MEM_FORCE_PD_S)
603 #define EXTMEM_CACHE_MMU_MEM_FORCE_PD_V  0x00000001U
604 #define EXTMEM_CACHE_MMU_MEM_FORCE_PD_S  1
605 /** EXTMEM_CACHE_MMU_MEM_FORCE_PU : R/W; bitpos: [2]; default: 1;
606  *  The bit is used to power mmu memory down, 0: follow_rtc_lslp_pd, 1: power up
607  */
608 #define EXTMEM_CACHE_MMU_MEM_FORCE_PU    (BIT(2))
609 #define EXTMEM_CACHE_MMU_MEM_FORCE_PU_M  (EXTMEM_CACHE_MMU_MEM_FORCE_PU_V << EXTMEM_CACHE_MMU_MEM_FORCE_PU_S)
610 #define EXTMEM_CACHE_MMU_MEM_FORCE_PU_V  0x00000001U
611 #define EXTMEM_CACHE_MMU_MEM_FORCE_PU_S  2
612 
613 /** EXTMEM_CACHE_STATE_REG register
614  *  This description will be updated in the near future.
615  */
616 #define EXTMEM_CACHE_STATE_REG (DR_REG_EXTMEM_BASE + 0xb0)
617 /** EXTMEM_ICACHE_STATE : RO; bitpos: [11:0]; default: 1;
618  *  The bit is used to indicate whether  icache main fsm is in idle state or not. 1: in
619  *  idle state,  0: not in idle state
620  */
621 #define EXTMEM_ICACHE_STATE    0x00000FFFU
622 #define EXTMEM_ICACHE_STATE_M  (EXTMEM_ICACHE_STATE_V << EXTMEM_ICACHE_STATE_S)
623 #define EXTMEM_ICACHE_STATE_V  0x00000FFFU
624 #define EXTMEM_ICACHE_STATE_S  0
625 
626 /** EXTMEM_CACHE_ENCRYPT_DECRYPT_RECORD_DISABLE_REG register
627  *  This description will be updated in the near future.
628  */
629 #define EXTMEM_CACHE_ENCRYPT_DECRYPT_RECORD_DISABLE_REG (DR_REG_EXTMEM_BASE + 0xb4)
630 /** EXTMEM_RECORD_DISABLE_DB_ENCRYPT : R/W; bitpos: [0]; default: 0;
631  *  Reserved.
632  */
633 #define EXTMEM_RECORD_DISABLE_DB_ENCRYPT    (BIT(0))
634 #define EXTMEM_RECORD_DISABLE_DB_ENCRYPT_M  (EXTMEM_RECORD_DISABLE_DB_ENCRYPT_V << EXTMEM_RECORD_DISABLE_DB_ENCRYPT_S)
635 #define EXTMEM_RECORD_DISABLE_DB_ENCRYPT_V  0x00000001U
636 #define EXTMEM_RECORD_DISABLE_DB_ENCRYPT_S  0
637 /** EXTMEM_RECORD_DISABLE_G0CB_DECRYPT : R/W; bitpos: [1]; default: 0;
638  *  Reserved.
639  */
640 #define EXTMEM_RECORD_DISABLE_G0CB_DECRYPT    (BIT(1))
641 #define EXTMEM_RECORD_DISABLE_G0CB_DECRYPT_M  (EXTMEM_RECORD_DISABLE_G0CB_DECRYPT_V << EXTMEM_RECORD_DISABLE_G0CB_DECRYPT_S)
642 #define EXTMEM_RECORD_DISABLE_G0CB_DECRYPT_V  0x00000001U
643 #define EXTMEM_RECORD_DISABLE_G0CB_DECRYPT_S  1
644 
645 /** EXTMEM_CACHE_ENCRYPT_DECRYPT_CLK_FORCE_ON_REG register
646  *  This description will be updated in the near future.
647  */
648 #define EXTMEM_CACHE_ENCRYPT_DECRYPT_CLK_FORCE_ON_REG (DR_REG_EXTMEM_BASE + 0xb8)
649 /** EXTMEM_CLK_FORCE_ON_MANUAL_CRYPT : R/W; bitpos: [0]; default: 1;
650  *  The bit is used to close clock gating of manual crypt clock. 1: close gating, 0:
651  *  open clock gating.
652  */
653 #define EXTMEM_CLK_FORCE_ON_MANUAL_CRYPT    (BIT(0))
654 #define EXTMEM_CLK_FORCE_ON_MANUAL_CRYPT_M  (EXTMEM_CLK_FORCE_ON_MANUAL_CRYPT_V << EXTMEM_CLK_FORCE_ON_MANUAL_CRYPT_S)
655 #define EXTMEM_CLK_FORCE_ON_MANUAL_CRYPT_V  0x00000001U
656 #define EXTMEM_CLK_FORCE_ON_MANUAL_CRYPT_S  0
657 /** EXTMEM_CLK_FORCE_ON_AUTO_CRYPT : R/W; bitpos: [1]; default: 1;
658  *  The bit is used to close clock gating of automatic crypt clock. 1: close gating, 0:
659  *  open clock gating.
660  */
661 #define EXTMEM_CLK_FORCE_ON_AUTO_CRYPT    (BIT(1))
662 #define EXTMEM_CLK_FORCE_ON_AUTO_CRYPT_M  (EXTMEM_CLK_FORCE_ON_AUTO_CRYPT_V << EXTMEM_CLK_FORCE_ON_AUTO_CRYPT_S)
663 #define EXTMEM_CLK_FORCE_ON_AUTO_CRYPT_V  0x00000001U
664 #define EXTMEM_CLK_FORCE_ON_AUTO_CRYPT_S  1
665 /** EXTMEM_CLK_FORCE_ON_CRYPT : R/W; bitpos: [2]; default: 1;
666  *  The bit is used to close clock gating of external memory encrypt and decrypt clock.
667  *  1: close gating, 0: open clock gating.
668  */
669 #define EXTMEM_CLK_FORCE_ON_CRYPT    (BIT(2))
670 #define EXTMEM_CLK_FORCE_ON_CRYPT_M  (EXTMEM_CLK_FORCE_ON_CRYPT_V << EXTMEM_CLK_FORCE_ON_CRYPT_S)
671 #define EXTMEM_CLK_FORCE_ON_CRYPT_V  0x00000001U
672 #define EXTMEM_CLK_FORCE_ON_CRYPT_S  2
673 
674 /** EXTMEM_CACHE_PRELOAD_INT_CTRL_REG register
675  *  This description will be updated in the near future.
676  */
677 #define EXTMEM_CACHE_PRELOAD_INT_CTRL_REG (DR_REG_EXTMEM_BASE + 0xbc)
678 /** EXTMEM_ICACHE_PRELOAD_INT_ST : RO; bitpos: [0]; default: 0;
679  *  The bit is used to indicate the interrupt by  icache pre-load done.
680  */
681 #define EXTMEM_ICACHE_PRELOAD_INT_ST    (BIT(0))
682 #define EXTMEM_ICACHE_PRELOAD_INT_ST_M  (EXTMEM_ICACHE_PRELOAD_INT_ST_V << EXTMEM_ICACHE_PRELOAD_INT_ST_S)
683 #define EXTMEM_ICACHE_PRELOAD_INT_ST_V  0x00000001U
684 #define EXTMEM_ICACHE_PRELOAD_INT_ST_S  0
685 /** EXTMEM_ICACHE_PRELOAD_INT_ENA : R/W; bitpos: [1]; default: 0;
686  *  The bit is used to enable the interrupt by  icache pre-load done.
687  */
688 #define EXTMEM_ICACHE_PRELOAD_INT_ENA    (BIT(1))
689 #define EXTMEM_ICACHE_PRELOAD_INT_ENA_M  (EXTMEM_ICACHE_PRELOAD_INT_ENA_V << EXTMEM_ICACHE_PRELOAD_INT_ENA_S)
690 #define EXTMEM_ICACHE_PRELOAD_INT_ENA_V  0x00000001U
691 #define EXTMEM_ICACHE_PRELOAD_INT_ENA_S  1
692 /** EXTMEM_ICACHE_PRELOAD_INT_CLR : WOD; bitpos: [2]; default: 0;
693  *  The bit is used to clear the interrupt by  icache pre-load done.
694  */
695 #define EXTMEM_ICACHE_PRELOAD_INT_CLR    (BIT(2))
696 #define EXTMEM_ICACHE_PRELOAD_INT_CLR_M  (EXTMEM_ICACHE_PRELOAD_INT_CLR_V << EXTMEM_ICACHE_PRELOAD_INT_CLR_S)
697 #define EXTMEM_ICACHE_PRELOAD_INT_CLR_V  0x00000001U
698 #define EXTMEM_ICACHE_PRELOAD_INT_CLR_S  2
699 
700 /** EXTMEM_CACHE_SYNC_INT_CTRL_REG register
701  *  This description will be updated in the near future.
702  */
703 #define EXTMEM_CACHE_SYNC_INT_CTRL_REG (DR_REG_EXTMEM_BASE + 0xc0)
704 /** EXTMEM_ICACHE_SYNC_INT_ST : RO; bitpos: [0]; default: 0;
705  *  The bit is used to indicate the interrupt by  icache sync done.
706  */
707 #define EXTMEM_ICACHE_SYNC_INT_ST    (BIT(0))
708 #define EXTMEM_ICACHE_SYNC_INT_ST_M  (EXTMEM_ICACHE_SYNC_INT_ST_V << EXTMEM_ICACHE_SYNC_INT_ST_S)
709 #define EXTMEM_ICACHE_SYNC_INT_ST_V  0x00000001U
710 #define EXTMEM_ICACHE_SYNC_INT_ST_S  0
711 /** EXTMEM_ICACHE_SYNC_INT_ENA : R/W; bitpos: [1]; default: 0;
712  *  The bit is used to enable the interrupt by  icache sync done.
713  */
714 #define EXTMEM_ICACHE_SYNC_INT_ENA    (BIT(1))
715 #define EXTMEM_ICACHE_SYNC_INT_ENA_M  (EXTMEM_ICACHE_SYNC_INT_ENA_V << EXTMEM_ICACHE_SYNC_INT_ENA_S)
716 #define EXTMEM_ICACHE_SYNC_INT_ENA_V  0x00000001U
717 #define EXTMEM_ICACHE_SYNC_INT_ENA_S  1
718 /** EXTMEM_ICACHE_SYNC_INT_CLR : WOD; bitpos: [2]; default: 0;
719  *  The bit is used to clear the interrupt by  icache sync done.
720  */
721 #define EXTMEM_ICACHE_SYNC_INT_CLR    (BIT(2))
722 #define EXTMEM_ICACHE_SYNC_INT_CLR_M  (EXTMEM_ICACHE_SYNC_INT_CLR_V << EXTMEM_ICACHE_SYNC_INT_CLR_S)
723 #define EXTMEM_ICACHE_SYNC_INT_CLR_V  0x00000001U
724 #define EXTMEM_ICACHE_SYNC_INT_CLR_S  2
725 
726 /** EXTMEM_CACHE_MMU_OWNER_REG register
727  *  This description will be updated in the near future.
728  */
729 #define EXTMEM_CACHE_MMU_OWNER_REG (DR_REG_EXTMEM_BASE + 0xc4)
730 /** EXTMEM_CACHE_MMU_OWNER : R/W; bitpos: [3:0]; default: 0;
731  *  The bits are used to specify the owner of MMU.bit0/bit2: ibus, bit1/bit3: dbus
732  */
733 #define EXTMEM_CACHE_MMU_OWNER    0x0000000FU
734 #define EXTMEM_CACHE_MMU_OWNER_M  (EXTMEM_CACHE_MMU_OWNER_V << EXTMEM_CACHE_MMU_OWNER_S)
735 #define EXTMEM_CACHE_MMU_OWNER_V  0x0000000FU
736 #define EXTMEM_CACHE_MMU_OWNER_S  0
737 
738 /** EXTMEM_CACHE_CONF_MISC_REG register
739  *  This description will be updated in the near future.
740  */
741 #define EXTMEM_CACHE_CONF_MISC_REG (DR_REG_EXTMEM_BASE + 0xc8)
742 /** EXTMEM_CACHE_IGNORE_PRELOAD_MMU_ENTRY_FAULT : R/W; bitpos: [0]; default: 1;
743  *  The bit is used to disable checking mmu entry fault by preload operation.
744  */
745 #define EXTMEM_CACHE_IGNORE_PRELOAD_MMU_ENTRY_FAULT    (BIT(0))
746 #define EXTMEM_CACHE_IGNORE_PRELOAD_MMU_ENTRY_FAULT_M  (EXTMEM_CACHE_IGNORE_PRELOAD_MMU_ENTRY_FAULT_V << EXTMEM_CACHE_IGNORE_PRELOAD_MMU_ENTRY_FAULT_S)
747 #define EXTMEM_CACHE_IGNORE_PRELOAD_MMU_ENTRY_FAULT_V  0x00000001U
748 #define EXTMEM_CACHE_IGNORE_PRELOAD_MMU_ENTRY_FAULT_S  0
749 /** EXTMEM_CACHE_IGNORE_SYNC_MMU_ENTRY_FAULT : R/W; bitpos: [1]; default: 1;
750  *  The bit is used to disable checking mmu entry fault by sync operation.
751  */
752 #define EXTMEM_CACHE_IGNORE_SYNC_MMU_ENTRY_FAULT    (BIT(1))
753 #define EXTMEM_CACHE_IGNORE_SYNC_MMU_ENTRY_FAULT_M  (EXTMEM_CACHE_IGNORE_SYNC_MMU_ENTRY_FAULT_V << EXTMEM_CACHE_IGNORE_SYNC_MMU_ENTRY_FAULT_S)
754 #define EXTMEM_CACHE_IGNORE_SYNC_MMU_ENTRY_FAULT_V  0x00000001U
755 #define EXTMEM_CACHE_IGNORE_SYNC_MMU_ENTRY_FAULT_S  1
756 /** EXTMEM_CACHE_TRACE_ENA : R/W; bitpos: [2]; default: 1;
757  *  The bit is used to enable cache trace function.
758  */
759 #define EXTMEM_CACHE_TRACE_ENA    (BIT(2))
760 #define EXTMEM_CACHE_TRACE_ENA_M  (EXTMEM_CACHE_TRACE_ENA_V << EXTMEM_CACHE_TRACE_ENA_S)
761 #define EXTMEM_CACHE_TRACE_ENA_V  0x00000001U
762 #define EXTMEM_CACHE_TRACE_ENA_S  2
763 /** EXTMEM_CACHE_MMU_PAGE_SIZE : R/W; bitpos: [4:3]; default: 0;
764  *  This bit is used to choose mmu page size. 2:64KB. 1. 32KB. 0: 16KB
765  */
766 #define EXTMEM_CACHE_MMU_PAGE_SIZE    0x00000003U
767 #define EXTMEM_CACHE_MMU_PAGE_SIZE_M  (EXTMEM_CACHE_MMU_PAGE_SIZE_V << EXTMEM_CACHE_MMU_PAGE_SIZE_S)
768 #define EXTMEM_CACHE_MMU_PAGE_SIZE_V  0x00000003U
769 #define EXTMEM_CACHE_MMU_PAGE_SIZE_S  3
770 
771 /** EXTMEM_ICACHE_FREEZE_REG register
772  *  This description will be updated in the near future.
773  */
774 #define EXTMEM_ICACHE_FREEZE_REG (DR_REG_EXTMEM_BASE + 0xcc)
775 /** EXTMEM_ICACHE_FREEZE_ENA : R/W; bitpos: [0]; default: 0;
776  *  The bit is used to enable icache freeze mode
777  */
778 #define EXTMEM_ICACHE_FREEZE_ENA    (BIT(0))
779 #define EXTMEM_ICACHE_FREEZE_ENA_M  (EXTMEM_ICACHE_FREEZE_ENA_V << EXTMEM_ICACHE_FREEZE_ENA_S)
780 #define EXTMEM_ICACHE_FREEZE_ENA_V  0x00000001U
781 #define EXTMEM_ICACHE_FREEZE_ENA_S  0
782 /** EXTMEM_ICACHE_FREEZE_MODE : R/W; bitpos: [1]; default: 0;
783  *  The bit is used to configure freeze mode, 0:  assert busy if CPU miss 1: assert hit
784  *  if CPU miss
785  */
786 #define EXTMEM_ICACHE_FREEZE_MODE    (BIT(1))
787 #define EXTMEM_ICACHE_FREEZE_MODE_M  (EXTMEM_ICACHE_FREEZE_MODE_V << EXTMEM_ICACHE_FREEZE_MODE_S)
788 #define EXTMEM_ICACHE_FREEZE_MODE_V  0x00000001U
789 #define EXTMEM_ICACHE_FREEZE_MODE_S  1
790 /** EXTMEM_ICACHE_FREEZE_DONE : RO; bitpos: [2]; default: 0;
791  *  The bit is used to indicate icache freeze success
792  */
793 #define EXTMEM_ICACHE_FREEZE_DONE    (BIT(2))
794 #define EXTMEM_ICACHE_FREEZE_DONE_M  (EXTMEM_ICACHE_FREEZE_DONE_V << EXTMEM_ICACHE_FREEZE_DONE_S)
795 #define EXTMEM_ICACHE_FREEZE_DONE_V  0x00000001U
796 #define EXTMEM_ICACHE_FREEZE_DONE_S  2
797 
798 /** EXTMEM_ICACHE_ATOMIC_OPERATE_ENA_REG register
799  *  This description will be updated in the near future.
800  */
801 #define EXTMEM_ICACHE_ATOMIC_OPERATE_ENA_REG (DR_REG_EXTMEM_BASE + 0xd0)
802 /** EXTMEM_ICACHE_ATOMIC_OPERATE_ENA : R/W; bitpos: [0]; default: 1;
803  *  The bit is used to activate icache atomic operation protection. In this case,
804  *  sync/lock operation can not interrupt miss-work. This feature does not work during
805  *  invalidateAll operation.
806  */
807 #define EXTMEM_ICACHE_ATOMIC_OPERATE_ENA    (BIT(0))
808 #define EXTMEM_ICACHE_ATOMIC_OPERATE_ENA_M  (EXTMEM_ICACHE_ATOMIC_OPERATE_ENA_V << EXTMEM_ICACHE_ATOMIC_OPERATE_ENA_S)
809 #define EXTMEM_ICACHE_ATOMIC_OPERATE_ENA_V  0x00000001U
810 #define EXTMEM_ICACHE_ATOMIC_OPERATE_ENA_S  0
811 
812 /** EXTMEM_CACHE_REQUEST_REG register
813  *  This description will be updated in the near future.
814  */
815 #define EXTMEM_CACHE_REQUEST_REG (DR_REG_EXTMEM_BASE + 0xd4)
816 /** EXTMEM_CACHE_REQUEST_BYPASS : R/W; bitpos: [0]; default: 0;
817  *  The bit is used to disable request recording which could cause performance issue
818  */
819 #define EXTMEM_CACHE_REQUEST_BYPASS    (BIT(0))
820 #define EXTMEM_CACHE_REQUEST_BYPASS_M  (EXTMEM_CACHE_REQUEST_BYPASS_V << EXTMEM_CACHE_REQUEST_BYPASS_S)
821 #define EXTMEM_CACHE_REQUEST_BYPASS_V  0x00000001U
822 #define EXTMEM_CACHE_REQUEST_BYPASS_S  0
823 
824 /** EXTMEM_CLOCK_GATE_REG register
825  *  This description will be updated in the near future.
826  */
827 #define EXTMEM_CLOCK_GATE_REG (DR_REG_EXTMEM_BASE + 0x100)
828 /** EXTMEM_CLK_EN : R/W; bitpos: [0]; default: 1;
829  *  clock gate enable.
830  */
831 #define EXTMEM_CLK_EN    (BIT(0))
832 #define EXTMEM_CLK_EN_M  (EXTMEM_CLK_EN_V << EXTMEM_CLK_EN_S)
833 #define EXTMEM_CLK_EN_V  0x00000001U
834 #define EXTMEM_CLK_EN_S  0
835 
836 /** EXTMEM_REG_DATE_REG register
837  *  This description will be updated in the near future.
838  */
839 #define EXTMEM_REG_DATE_REG (DR_REG_EXTMEM_BASE + 0x3fc)
840 /** EXTMEM_DATE : R/W; bitpos: [27:0]; default: 34631760;
841  *  version information
842  */
843 #define EXTMEM_DATE    0x0FFFFFFFU
844 #define EXTMEM_DATE_M  (EXTMEM_DATE_V << EXTMEM_DATE_S)
845 #define EXTMEM_DATE_V  0x0FFFFFFFU
846 #define EXTMEM_DATE_S  0
847 
848 #ifdef __cplusplus
849 }
850 #endif
851