Pavona Software APIs
top_dragonfly_memory.h
Go to the documentation of this file.
1// Copyright lowRISC contributors (OpenTitan project).
2// Licensed under the Apache License, Version 2.0, see LICENSE for details.
3// SPDX-License-Identifier: Apache-2.0
4//
5// ------------------- W A R N I N G: A U T O - G E N E R A T E D C O D E !! -------------------//
6// PLEASE DO NOT HAND-EDIT THIS FILE. IT HAS BEEN AUTO-GENERATED WITH THE FOLLOWING COMMAND:
7// util/topgen.py -t hw/top_dragonfly/data/top_dragonfly.hjson
8// -o hw/top_dragonfly/
9
10#ifndef OPENTITAN_HW_TOP_DRAGONFLY_SW_AUTOGEN_TOP_DRAGONFLY_MEMORY_H_
11#define OPENTITAN_HW_TOP_DRAGONFLY_SW_AUTOGEN_TOP_DRAGONFLY_MEMORY_H_
12
13/**
14 * @file
15 * @brief Assembler-only Top-Specific Definitions.
16 *
17 * This file contains preprocessor definitions for use within assembly code.
18 *
19 * These are not shared with C/C++ code because these are only allowed to be
20 * preprocessor definitions, no data or type declarations are allowed. The
21 * assembler is also stricter about literals (not allowing suffixes for
22 * signed/unsigned which are sensible to use for unsigned values in C/C++).
23 */
24
25// Include guard for assembler
26#ifdef __ASSEMBLER__
27
28/**
29 * Memory base for ctn memory on soc_proxy in top dragonfly.
30 */
31#define TOP_DRAGONFLY_SOC_PROXY_CTN_BASE_ADDR 0x40000000
32
33/**
34 * Memory size for ctn memory on soc_proxy in top dragonfly.
35 */
36#define TOP_DRAGONFLY_SOC_PROXY_CTN_SIZE_BYTES 0x80000000
37
38/**
39 * Memory base for for ram_ctn in top dragonfly.
40 */
41#define TOP_DRAGONFLY_SOC_PROXY_RAM_CTN_BASE_ADDR 0x41000000
42
43/**
44 * Memory size for ram_ctn in top dragonfly.
45 */
46#define TOP_DRAGONFLY_SOC_PROXY_RAM_CTN_SIZE_BYTES 0x100000
47
48/**
49 * Memory base for ram memory on sram_ctrl_ret_aon in top dragonfly.
50 */
51#define TOP_DRAGONFLY_SRAM_CTRL_RET_AON_RAM_BASE_ADDR 0x30600000
52
53/**
54 * Memory size for ram memory on sram_ctrl_ret_aon in top dragonfly.
55 */
56#define TOP_DRAGONFLY_SRAM_CTRL_RET_AON_RAM_SIZE_BYTES 0x1000
57
58/**
59 * Memory base for ram memory on sram_ctrl_main in top dragonfly.
60 */
61#define TOP_DRAGONFLY_SRAM_CTRL_MAIN_RAM_BASE_ADDR 0x10000000
62
63/**
64 * Memory size for ram memory on sram_ctrl_main in top dragonfly.
65 */
66#define TOP_DRAGONFLY_SRAM_CTRL_MAIN_RAM_SIZE_BYTES 0x10000
67
68/**
69 * Memory base for ram memory on sram_ctrl_mbox in top dragonfly.
70 */
71#define TOP_DRAGONFLY_SRAM_CTRL_MBOX_RAM_BASE_ADDR 0x11000000
72
73/**
74 * Memory size for ram memory on sram_ctrl_mbox in top dragonfly.
75 */
76#define TOP_DRAGONFLY_SRAM_CTRL_MBOX_RAM_SIZE_BYTES 0x1000
77
78/**
79 * Memory base for rom memory on rom_ctrl0 in top dragonfly.
80 */
81#define TOP_DRAGONFLY_ROM_CTRL0_ROM_BASE_ADDR 0x8000
82
83/**
84 * Memory size for rom memory on rom_ctrl0 in top dragonfly.
85 */
86#define TOP_DRAGONFLY_ROM_CTRL0_ROM_SIZE_BYTES 0x8000
87
88/**
89 * Memory base for rom memory on rom_ctrl1 in top dragonfly.
90 */
91#define TOP_DRAGONFLY_ROM_CTRL1_ROM_BASE_ADDR 0x20000
92
93/**
94 * Memory size for rom memory on rom_ctrl1 in top dragonfly.
95 */
96#define TOP_DRAGONFLY_ROM_CTRL1_ROM_SIZE_BYTES 0x10000
97
98
99/**
100 * Peripheral base address for uart0 in top dragonfly.
101 *
102 * This should be used with #mmio_region_from_addr to access the memory-mapped
103 * registers associated with the peripheral (usually via a DIF).
104 */
105#define TOP_DRAGONFLY_UART0_BASE_ADDR 0x30010000
106
107/**
108 * Peripheral size for uart0 in top dragonfly.
109 *
110 * This is the size (in bytes) of the peripheral's reserved memory area. All
111 * memory-mapped registers associated with this peripheral should have an
112 * address between #TOP_DRAGONFLY_UART0_BASE_ADDR and
113 * `TOP_DRAGONFLY_UART0_BASE_ADDR + TOP_DRAGONFLY_UART0_SIZE_BYTES`.
114 */
115#define TOP_DRAGONFLY_UART0_SIZE_BYTES 0x40
116/**
117 * Peripheral base address for gpio in top dragonfly.
118 *
119 * This should be used with #mmio_region_from_addr to access the memory-mapped
120 * registers associated with the peripheral (usually via a DIF).
121 */
122#define TOP_DRAGONFLY_GPIO_BASE_ADDR 0x30000000
123
124/**
125 * Peripheral size for gpio in top dragonfly.
126 *
127 * This is the size (in bytes) of the peripheral's reserved memory area. All
128 * memory-mapped registers associated with this peripheral should have an
129 * address between #TOP_DRAGONFLY_GPIO_BASE_ADDR and
130 * `TOP_DRAGONFLY_GPIO_BASE_ADDR + TOP_DRAGONFLY_GPIO_SIZE_BYTES`.
131 */
132#define TOP_DRAGONFLY_GPIO_SIZE_BYTES 0x100
133/**
134 * Peripheral base address for spi_device in top dragonfly.
135 *
136 * This should be used with #mmio_region_from_addr to access the memory-mapped
137 * registers associated with the peripheral (usually via a DIF).
138 */
139#define TOP_DRAGONFLY_SPI_DEVICE_BASE_ADDR 0x30310000
140
141/**
142 * Peripheral size for spi_device in top dragonfly.
143 *
144 * This is the size (in bytes) of the peripheral's reserved memory area. All
145 * memory-mapped registers associated with this peripheral should have an
146 * address between #TOP_DRAGONFLY_SPI_DEVICE_BASE_ADDR and
147 * `TOP_DRAGONFLY_SPI_DEVICE_BASE_ADDR + TOP_DRAGONFLY_SPI_DEVICE_SIZE_BYTES`.
148 */
149#define TOP_DRAGONFLY_SPI_DEVICE_SIZE_BYTES 0x2000
150/**
151 * Peripheral base address for i2c0 in top dragonfly.
152 *
153 * This should be used with #mmio_region_from_addr to access the memory-mapped
154 * registers associated with the peripheral (usually via a DIF).
155 */
156#define TOP_DRAGONFLY_I2C0_BASE_ADDR 0x30080000
157
158/**
159 * Peripheral size for i2c0 in top dragonfly.
160 *
161 * This is the size (in bytes) of the peripheral's reserved memory area. All
162 * memory-mapped registers associated with this peripheral should have an
163 * address between #TOP_DRAGONFLY_I2C0_BASE_ADDR and
164 * `TOP_DRAGONFLY_I2C0_BASE_ADDR + TOP_DRAGONFLY_I2C0_SIZE_BYTES`.
165 */
166#define TOP_DRAGONFLY_I2C0_SIZE_BYTES 0x80
167/**
168 * Peripheral base address for rv_timer in top dragonfly.
169 *
170 * This should be used with #mmio_region_from_addr to access the memory-mapped
171 * registers associated with the peripheral (usually via a DIF).
172 */
173#define TOP_DRAGONFLY_RV_TIMER_BASE_ADDR 0x30100000
174
175/**
176 * Peripheral size for rv_timer in top dragonfly.
177 *
178 * This is the size (in bytes) of the peripheral's reserved memory area. All
179 * memory-mapped registers associated with this peripheral should have an
180 * address between #TOP_DRAGONFLY_RV_TIMER_BASE_ADDR and
181 * `TOP_DRAGONFLY_RV_TIMER_BASE_ADDR + TOP_DRAGONFLY_RV_TIMER_SIZE_BYTES`.
182 */
183#define TOP_DRAGONFLY_RV_TIMER_SIZE_BYTES 0x200
184/**
185 * Peripheral base address for core device on otp_ctrl in top dragonfly.
186 *
187 * This should be used with #mmio_region_from_addr to access the memory-mapped
188 * registers associated with the peripheral (usually via a DIF).
189 */
190#define TOP_DRAGONFLY_OTP_CTRL_CORE_BASE_ADDR 0x30130000
191
192/**
193 * Peripheral size for core device on otp_ctrl in top dragonfly.
194 *
195 * This is the size (in bytes) of the peripheral's reserved memory area. All
196 * memory-mapped registers associated with this peripheral should have an
197 * address between #TOP_DRAGONFLY_OTP_CTRL_CORE_BASE_ADDR and
198 * `TOP_DRAGONFLY_OTP_CTRL_CORE_BASE_ADDR + TOP_DRAGONFLY_OTP_CTRL_CORE_SIZE_BYTES`.
199 */
200#define TOP_DRAGONFLY_OTP_CTRL_CORE_SIZE_BYTES 0x10000
201/**
202 * Peripheral base address for prim device on otp_macro in top dragonfly.
203 *
204 * This should be used with #mmio_region_from_addr to access the memory-mapped
205 * registers associated with the peripheral (usually via a DIF).
206 */
207#define TOP_DRAGONFLY_OTP_MACRO_PRIM_BASE_ADDR 0x30140000
208
209/**
210 * Peripheral size for prim device on otp_macro in top dragonfly.
211 *
212 * This is the size (in bytes) of the peripheral's reserved memory area. All
213 * memory-mapped registers associated with this peripheral should have an
214 * address between #TOP_DRAGONFLY_OTP_MACRO_PRIM_BASE_ADDR and
215 * `TOP_DRAGONFLY_OTP_MACRO_PRIM_BASE_ADDR + TOP_DRAGONFLY_OTP_MACRO_PRIM_SIZE_BYTES`.
216 */
217#define TOP_DRAGONFLY_OTP_MACRO_PRIM_SIZE_BYTES 0x20
218/**
219 * Peripheral base address for regs device on lc_ctrl in top dragonfly.
220 *
221 * This should be used with #mmio_region_from_addr to access the memory-mapped
222 * registers associated with the peripheral (usually via a DIF).
223 */
224#define TOP_DRAGONFLY_LC_CTRL_REGS_BASE_ADDR 0x30150000
225
226/**
227 * Peripheral size for regs device on lc_ctrl in top dragonfly.
228 *
229 * This is the size (in bytes) of the peripheral's reserved memory area. All
230 * memory-mapped registers associated with this peripheral should have an
231 * address between #TOP_DRAGONFLY_LC_CTRL_REGS_BASE_ADDR and
232 * `TOP_DRAGONFLY_LC_CTRL_REGS_BASE_ADDR + TOP_DRAGONFLY_LC_CTRL_REGS_SIZE_BYTES`.
233 */
234#define TOP_DRAGONFLY_LC_CTRL_REGS_SIZE_BYTES 0x100
235/**
236 * Peripheral base address for alert_handler in top dragonfly.
237 *
238 * This should be used with #mmio_region_from_addr to access the memory-mapped
239 * registers associated with the peripheral (usually via a DIF).
240 */
241#define TOP_DRAGONFLY_ALERT_HANDLER_BASE_ADDR 0x30160000
242
243/**
244 * Peripheral size for alert_handler in top dragonfly.
245 *
246 * This is the size (in bytes) of the peripheral's reserved memory area. All
247 * memory-mapped registers associated with this peripheral should have an
248 * address between #TOP_DRAGONFLY_ALERT_HANDLER_BASE_ADDR and
249 * `TOP_DRAGONFLY_ALERT_HANDLER_BASE_ADDR + TOP_DRAGONFLY_ALERT_HANDLER_SIZE_BYTES`.
250 */
251#define TOP_DRAGONFLY_ALERT_HANDLER_SIZE_BYTES 0x800
252/**
253 * Peripheral base address for spi_host0 in top dragonfly.
254 *
255 * This should be used with #mmio_region_from_addr to access the memory-mapped
256 * registers associated with the peripheral (usually via a DIF).
257 */
258#define TOP_DRAGONFLY_SPI_HOST0_BASE_ADDR 0x30300000
259
260/**
261 * Peripheral size for spi_host0 in top dragonfly.
262 *
263 * This is the size (in bytes) of the peripheral's reserved memory area. All
264 * memory-mapped registers associated with this peripheral should have an
265 * address between #TOP_DRAGONFLY_SPI_HOST0_BASE_ADDR and
266 * `TOP_DRAGONFLY_SPI_HOST0_BASE_ADDR + TOP_DRAGONFLY_SPI_HOST0_SIZE_BYTES`.
267 */
268#define TOP_DRAGONFLY_SPI_HOST0_SIZE_BYTES 0x40
269/**
270 * Peripheral base address for pwrmgr_aon in top dragonfly.
271 *
272 * This should be used with #mmio_region_from_addr to access the memory-mapped
273 * registers associated with the peripheral (usually via a DIF).
274 */
275#define TOP_DRAGONFLY_PWRMGR_AON_BASE_ADDR 0x30400000
276
277/**
278 * Peripheral size for pwrmgr_aon in top dragonfly.
279 *
280 * This is the size (in bytes) of the peripheral's reserved memory area. All
281 * memory-mapped registers associated with this peripheral should have an
282 * address between #TOP_DRAGONFLY_PWRMGR_AON_BASE_ADDR and
283 * `TOP_DRAGONFLY_PWRMGR_AON_BASE_ADDR + TOP_DRAGONFLY_PWRMGR_AON_SIZE_BYTES`.
284 */
285#define TOP_DRAGONFLY_PWRMGR_AON_SIZE_BYTES 0x80
286/**
287 * Peripheral base address for rstmgr_aon in top dragonfly.
288 *
289 * This should be used with #mmio_region_from_addr to access the memory-mapped
290 * registers associated with the peripheral (usually via a DIF).
291 */
292#define TOP_DRAGONFLY_RSTMGR_AON_BASE_ADDR 0x30410000
293
294/**
295 * Peripheral size for rstmgr_aon in top dragonfly.
296 *
297 * This is the size (in bytes) of the peripheral's reserved memory area. All
298 * memory-mapped registers associated with this peripheral should have an
299 * address between #TOP_DRAGONFLY_RSTMGR_AON_BASE_ADDR and
300 * `TOP_DRAGONFLY_RSTMGR_AON_BASE_ADDR + TOP_DRAGONFLY_RSTMGR_AON_SIZE_BYTES`.
301 */
302#define TOP_DRAGONFLY_RSTMGR_AON_SIZE_BYTES 0x80
303/**
304 * Peripheral base address for clkmgr_aon in top dragonfly.
305 *
306 * This should be used with #mmio_region_from_addr to access the memory-mapped
307 * registers associated with the peripheral (usually via a DIF).
308 */
309#define TOP_DRAGONFLY_CLKMGR_AON_BASE_ADDR 0x30420000
310
311/**
312 * Peripheral size for clkmgr_aon in top dragonfly.
313 *
314 * This is the size (in bytes) of the peripheral's reserved memory area. All
315 * memory-mapped registers associated with this peripheral should have an
316 * address between #TOP_DRAGONFLY_CLKMGR_AON_BASE_ADDR and
317 * `TOP_DRAGONFLY_CLKMGR_AON_BASE_ADDR + TOP_DRAGONFLY_CLKMGR_AON_SIZE_BYTES`.
318 */
319#define TOP_DRAGONFLY_CLKMGR_AON_SIZE_BYTES 0x40
320/**
321 * Peripheral base address for pinmux_aon in top dragonfly.
322 *
323 * This should be used with #mmio_region_from_addr to access the memory-mapped
324 * registers associated with the peripheral (usually via a DIF).
325 */
326#define TOP_DRAGONFLY_PINMUX_AON_BASE_ADDR 0x30460000
327
328/**
329 * Peripheral size for pinmux_aon in top dragonfly.
330 *
331 * This is the size (in bytes) of the peripheral's reserved memory area. All
332 * memory-mapped registers associated with this peripheral should have an
333 * address between #TOP_DRAGONFLY_PINMUX_AON_BASE_ADDR and
334 * `TOP_DRAGONFLY_PINMUX_AON_BASE_ADDR + TOP_DRAGONFLY_PINMUX_AON_SIZE_BYTES`.
335 */
336#define TOP_DRAGONFLY_PINMUX_AON_SIZE_BYTES 0x800
337/**
338 * Peripheral base address for aon_timer_aon in top dragonfly.
339 *
340 * This should be used with #mmio_region_from_addr to access the memory-mapped
341 * registers associated with the peripheral (usually via a DIF).
342 */
343#define TOP_DRAGONFLY_AON_TIMER_AON_BASE_ADDR 0x30470000
344
345/**
346 * Peripheral size for aon_timer_aon in top dragonfly.
347 *
348 * This is the size (in bytes) of the peripheral's reserved memory area. All
349 * memory-mapped registers associated with this peripheral should have an
350 * address between #TOP_DRAGONFLY_AON_TIMER_AON_BASE_ADDR and
351 * `TOP_DRAGONFLY_AON_TIMER_AON_BASE_ADDR + TOP_DRAGONFLY_AON_TIMER_AON_SIZE_BYTES`.
352 */
353#define TOP_DRAGONFLY_AON_TIMER_AON_SIZE_BYTES 0x40
354/**
355 * Peripheral base address for ast in top dragonfly.
356 *
357 * This should be used with #mmio_region_from_addr to access the memory-mapped
358 * registers associated with the peripheral (usually via a DIF).
359 */
360#define TOP_DRAGONFLY_AST_BASE_ADDR 0x30480000
361
362/**
363 * Peripheral size for ast in top dragonfly.
364 *
365 * This is the size (in bytes) of the peripheral's reserved memory area. All
366 * memory-mapped registers associated with this peripheral should have an
367 * address between #TOP_DRAGONFLY_AST_BASE_ADDR and
368 * `TOP_DRAGONFLY_AST_BASE_ADDR + TOP_DRAGONFLY_AST_SIZE_BYTES`.
369 */
370#define TOP_DRAGONFLY_AST_SIZE_BYTES 0x400
371/**
372 * Peripheral base address for core device on soc_proxy in top dragonfly.
373 *
374 * This should be used with #mmio_region_from_addr to access the memory-mapped
375 * registers associated with the peripheral (usually via a DIF).
376 */
377#define TOP_DRAGONFLY_SOC_PROXY_CORE_BASE_ADDR 0x22030000
378
379/**
380 * Peripheral size for core device on soc_proxy in top dragonfly.
381 *
382 * This is the size (in bytes) of the peripheral's reserved memory area. All
383 * memory-mapped registers associated with this peripheral should have an
384 * address between #TOP_DRAGONFLY_SOC_PROXY_CORE_BASE_ADDR and
385 * `TOP_DRAGONFLY_SOC_PROXY_CORE_BASE_ADDR + TOP_DRAGONFLY_SOC_PROXY_CORE_SIZE_BYTES`.
386 */
387#define TOP_DRAGONFLY_SOC_PROXY_CORE_SIZE_BYTES 0x8
388/**
389 * Peripheral base address for regs device on sram_ctrl_ret_aon in top dragonfly.
390 *
391 * This should be used with #mmio_region_from_addr to access the memory-mapped
392 * registers associated with the peripheral (usually via a DIF).
393 */
394#define TOP_DRAGONFLY_SRAM_CTRL_RET_AON_REGS_BASE_ADDR 0x30500000
395
396/**
397 * Peripheral size for regs device on sram_ctrl_ret_aon in top dragonfly.
398 *
399 * This is the size (in bytes) of the peripheral's reserved memory area. All
400 * memory-mapped registers associated with this peripheral should have an
401 * address between #TOP_DRAGONFLY_SRAM_CTRL_RET_AON_REGS_BASE_ADDR and
402 * `TOP_DRAGONFLY_SRAM_CTRL_RET_AON_REGS_BASE_ADDR + TOP_DRAGONFLY_SRAM_CTRL_RET_AON_REGS_SIZE_BYTES`.
403 */
404#define TOP_DRAGONFLY_SRAM_CTRL_RET_AON_REGS_SIZE_BYTES 0x40
405/**
406 * Peripheral base address for regs device on rv_dm in top dragonfly.
407 *
408 * This should be used with #mmio_region_from_addr to access the memory-mapped
409 * registers associated with the peripheral (usually via a DIF).
410 */
411#define TOP_DRAGONFLY_RV_DM_REGS_BASE_ADDR 0x21200000
412
413/**
414 * Peripheral size for regs device on rv_dm in top dragonfly.
415 *
416 * This is the size (in bytes) of the peripheral's reserved memory area. All
417 * memory-mapped registers associated with this peripheral should have an
418 * address between #TOP_DRAGONFLY_RV_DM_REGS_BASE_ADDR and
419 * `TOP_DRAGONFLY_RV_DM_REGS_BASE_ADDR + TOP_DRAGONFLY_RV_DM_REGS_SIZE_BYTES`.
420 */
421#define TOP_DRAGONFLY_RV_DM_REGS_SIZE_BYTES 0x10
422/**
423 * Peripheral base address for mem device on rv_dm in top dragonfly.
424 *
425 * This should be used with #mmio_region_from_addr to access the memory-mapped
426 * registers associated with the peripheral (usually via a DIF).
427 */
428#define TOP_DRAGONFLY_RV_DM_MEM_BASE_ADDR 0x40000
429
430/**
431 * Peripheral size for mem device on rv_dm in top dragonfly.
432 *
433 * This is the size (in bytes) of the peripheral's reserved memory area. All
434 * memory-mapped registers associated with this peripheral should have an
435 * address between #TOP_DRAGONFLY_RV_DM_MEM_BASE_ADDR and
436 * `TOP_DRAGONFLY_RV_DM_MEM_BASE_ADDR + TOP_DRAGONFLY_RV_DM_MEM_SIZE_BYTES`.
437 */
438#define TOP_DRAGONFLY_RV_DM_MEM_SIZE_BYTES 0x1000
439/**
440 * Peripheral base address for rv_plic in top dragonfly.
441 *
442 * This should be used with #mmio_region_from_addr to access the memory-mapped
443 * registers associated with the peripheral (usually via a DIF).
444 */
445#define TOP_DRAGONFLY_RV_PLIC_BASE_ADDR 0x28000000
446
447/**
448 * Peripheral size for rv_plic in top dragonfly.
449 *
450 * This is the size (in bytes) of the peripheral's reserved memory area. All
451 * memory-mapped registers associated with this peripheral should have an
452 * address between #TOP_DRAGONFLY_RV_PLIC_BASE_ADDR and
453 * `TOP_DRAGONFLY_RV_PLIC_BASE_ADDR + TOP_DRAGONFLY_RV_PLIC_SIZE_BYTES`.
454 */
455#define TOP_DRAGONFLY_RV_PLIC_SIZE_BYTES 0x8000000
456/**
457 * Peripheral base address for acc in top dragonfly.
458 *
459 * This should be used with #mmio_region_from_addr to access the memory-mapped
460 * registers associated with the peripheral (usually via a DIF).
461 */
462#define TOP_DRAGONFLY_ACC_BASE_ADDR 0x22100000
463
464/**
465 * Peripheral size for acc in top dragonfly.
466 *
467 * This is the size (in bytes) of the peripheral's reserved memory area. All
468 * memory-mapped registers associated with this peripheral should have an
469 * address between #TOP_DRAGONFLY_ACC_BASE_ADDR and
470 * `TOP_DRAGONFLY_ACC_BASE_ADDR + TOP_DRAGONFLY_ACC_SIZE_BYTES`.
471 */
472#define TOP_DRAGONFLY_ACC_SIZE_BYTES 0x20000
473/**
474 * Peripheral base address for aes in top dragonfly.
475 *
476 * This should be used with #mmio_region_from_addr to access the memory-mapped
477 * registers associated with the peripheral (usually via a DIF).
478 */
479#define TOP_DRAGONFLY_AES_BASE_ADDR 0x21100000
480
481/**
482 * Peripheral size for aes in top dragonfly.
483 *
484 * This is the size (in bytes) of the peripheral's reserved memory area. All
485 * memory-mapped registers associated with this peripheral should have an
486 * address between #TOP_DRAGONFLY_AES_BASE_ADDR and
487 * `TOP_DRAGONFLY_AES_BASE_ADDR + TOP_DRAGONFLY_AES_SIZE_BYTES`.
488 */
489#define TOP_DRAGONFLY_AES_SIZE_BYTES 0x100
490/**
491 * Peripheral base address for hmac in top dragonfly.
492 *
493 * This should be used with #mmio_region_from_addr to access the memory-mapped
494 * registers associated with the peripheral (usually via a DIF).
495 */
496#define TOP_DRAGONFLY_HMAC_BASE_ADDR 0x21110000
497
498/**
499 * Peripheral size for hmac in top dragonfly.
500 *
501 * This is the size (in bytes) of the peripheral's reserved memory area. All
502 * memory-mapped registers associated with this peripheral should have an
503 * address between #TOP_DRAGONFLY_HMAC_BASE_ADDR and
504 * `TOP_DRAGONFLY_HMAC_BASE_ADDR + TOP_DRAGONFLY_HMAC_SIZE_BYTES`.
505 */
506#define TOP_DRAGONFLY_HMAC_SIZE_BYTES 0x2000
507/**
508 * Peripheral base address for kmac in top dragonfly.
509 *
510 * This should be used with #mmio_region_from_addr to access the memory-mapped
511 * registers associated with the peripheral (usually via a DIF).
512 */
513#define TOP_DRAGONFLY_KMAC_BASE_ADDR 0x21120000
514
515/**
516 * Peripheral size for kmac in top dragonfly.
517 *
518 * This is the size (in bytes) of the peripheral's reserved memory area. All
519 * memory-mapped registers associated with this peripheral should have an
520 * address between #TOP_DRAGONFLY_KMAC_BASE_ADDR and
521 * `TOP_DRAGONFLY_KMAC_BASE_ADDR + TOP_DRAGONFLY_KMAC_SIZE_BYTES`.
522 */
523#define TOP_DRAGONFLY_KMAC_SIZE_BYTES 0x1000
524/**
525 * Peripheral base address for keymgr_dpe in top dragonfly.
526 *
527 * This should be used with #mmio_region_from_addr to access the memory-mapped
528 * registers associated with the peripheral (usually via a DIF).
529 */
530#define TOP_DRAGONFLY_KEYMGR_DPE_BASE_ADDR 0x21140000
531
532/**
533 * Peripheral size for keymgr_dpe in top dragonfly.
534 *
535 * This is the size (in bytes) of the peripheral's reserved memory area. All
536 * memory-mapped registers associated with this peripheral should have an
537 * address between #TOP_DRAGONFLY_KEYMGR_DPE_BASE_ADDR and
538 * `TOP_DRAGONFLY_KEYMGR_DPE_BASE_ADDR + TOP_DRAGONFLY_KEYMGR_DPE_SIZE_BYTES`.
539 */
540#define TOP_DRAGONFLY_KEYMGR_DPE_SIZE_BYTES 0x100
541/**
542 * Peripheral base address for csrng in top dragonfly.
543 *
544 * This should be used with #mmio_region_from_addr to access the memory-mapped
545 * registers associated with the peripheral (usually via a DIF).
546 */
547#define TOP_DRAGONFLY_CSRNG_BASE_ADDR 0x21150000
548
549/**
550 * Peripheral size for csrng in top dragonfly.
551 *
552 * This is the size (in bytes) of the peripheral's reserved memory area. All
553 * memory-mapped registers associated with this peripheral should have an
554 * address between #TOP_DRAGONFLY_CSRNG_BASE_ADDR and
555 * `TOP_DRAGONFLY_CSRNG_BASE_ADDR + TOP_DRAGONFLY_CSRNG_SIZE_BYTES`.
556 */
557#define TOP_DRAGONFLY_CSRNG_SIZE_BYTES 0x80
558/**
559 * Peripheral base address for entropy_src in top dragonfly.
560 *
561 * This should be used with #mmio_region_from_addr to access the memory-mapped
562 * registers associated with the peripheral (usually via a DIF).
563 */
564#define TOP_DRAGONFLY_ENTROPY_SRC_BASE_ADDR 0x21160000
565
566/**
567 * Peripheral size for entropy_src in top dragonfly.
568 *
569 * This is the size (in bytes) of the peripheral's reserved memory area. All
570 * memory-mapped registers associated with this peripheral should have an
571 * address between #TOP_DRAGONFLY_ENTROPY_SRC_BASE_ADDR and
572 * `TOP_DRAGONFLY_ENTROPY_SRC_BASE_ADDR + TOP_DRAGONFLY_ENTROPY_SRC_SIZE_BYTES`.
573 */
574#define TOP_DRAGONFLY_ENTROPY_SRC_SIZE_BYTES 0x100
575/**
576 * Peripheral base address for edn0 in top dragonfly.
577 *
578 * This should be used with #mmio_region_from_addr to access the memory-mapped
579 * registers associated with the peripheral (usually via a DIF).
580 */
581#define TOP_DRAGONFLY_EDN0_BASE_ADDR 0x21170000
582
583/**
584 * Peripheral size for edn0 in top dragonfly.
585 *
586 * This is the size (in bytes) of the peripheral's reserved memory area. All
587 * memory-mapped registers associated with this peripheral should have an
588 * address between #TOP_DRAGONFLY_EDN0_BASE_ADDR and
589 * `TOP_DRAGONFLY_EDN0_BASE_ADDR + TOP_DRAGONFLY_EDN0_SIZE_BYTES`.
590 */
591#define TOP_DRAGONFLY_EDN0_SIZE_BYTES 0x80
592/**
593 * Peripheral base address for edn1 in top dragonfly.
594 *
595 * This should be used with #mmio_region_from_addr to access the memory-mapped
596 * registers associated with the peripheral (usually via a DIF).
597 */
598#define TOP_DRAGONFLY_EDN1_BASE_ADDR 0x21180000
599
600/**
601 * Peripheral size for edn1 in top dragonfly.
602 *
603 * This is the size (in bytes) of the peripheral's reserved memory area. All
604 * memory-mapped registers associated with this peripheral should have an
605 * address between #TOP_DRAGONFLY_EDN1_BASE_ADDR and
606 * `TOP_DRAGONFLY_EDN1_BASE_ADDR + TOP_DRAGONFLY_EDN1_SIZE_BYTES`.
607 */
608#define TOP_DRAGONFLY_EDN1_SIZE_BYTES 0x80
609/**
610 * Peripheral base address for regs device on sram_ctrl_main in top dragonfly.
611 *
612 * This should be used with #mmio_region_from_addr to access the memory-mapped
613 * registers associated with the peripheral (usually via a DIF).
614 */
615#define TOP_DRAGONFLY_SRAM_CTRL_MAIN_REGS_BASE_ADDR 0x211C0000
616
617/**
618 * Peripheral size for regs device on sram_ctrl_main in top dragonfly.
619 *
620 * This is the size (in bytes) of the peripheral's reserved memory area. All
621 * memory-mapped registers associated with this peripheral should have an
622 * address between #TOP_DRAGONFLY_SRAM_CTRL_MAIN_REGS_BASE_ADDR and
623 * `TOP_DRAGONFLY_SRAM_CTRL_MAIN_REGS_BASE_ADDR + TOP_DRAGONFLY_SRAM_CTRL_MAIN_REGS_SIZE_BYTES`.
624 */
625#define TOP_DRAGONFLY_SRAM_CTRL_MAIN_REGS_SIZE_BYTES 0x40
626/**
627 * Peripheral base address for regs device on sram_ctrl_mbox in top dragonfly.
628 *
629 * This should be used with #mmio_region_from_addr to access the memory-mapped
630 * registers associated with the peripheral (usually via a DIF).
631 */
632#define TOP_DRAGONFLY_SRAM_CTRL_MBOX_REGS_BASE_ADDR 0x211D0000
633
634/**
635 * Peripheral size for regs device on sram_ctrl_mbox in top dragonfly.
636 *
637 * This is the size (in bytes) of the peripheral's reserved memory area. All
638 * memory-mapped registers associated with this peripheral should have an
639 * address between #TOP_DRAGONFLY_SRAM_CTRL_MBOX_REGS_BASE_ADDR and
640 * `TOP_DRAGONFLY_SRAM_CTRL_MBOX_REGS_BASE_ADDR + TOP_DRAGONFLY_SRAM_CTRL_MBOX_REGS_SIZE_BYTES`.
641 */
642#define TOP_DRAGONFLY_SRAM_CTRL_MBOX_REGS_SIZE_BYTES 0x40
643/**
644 * Peripheral base address for regs device on rom_ctrl0 in top dragonfly.
645 *
646 * This should be used with #mmio_region_from_addr to access the memory-mapped
647 * registers associated with the peripheral (usually via a DIF).
648 */
649#define TOP_DRAGONFLY_ROM_CTRL0_REGS_BASE_ADDR 0x211E0000
650
651/**
652 * Peripheral size for regs device on rom_ctrl0 in top dragonfly.
653 *
654 * This is the size (in bytes) of the peripheral's reserved memory area. All
655 * memory-mapped registers associated with this peripheral should have an
656 * address between #TOP_DRAGONFLY_ROM_CTRL0_REGS_BASE_ADDR and
657 * `TOP_DRAGONFLY_ROM_CTRL0_REGS_BASE_ADDR + TOP_DRAGONFLY_ROM_CTRL0_REGS_SIZE_BYTES`.
658 */
659#define TOP_DRAGONFLY_ROM_CTRL0_REGS_SIZE_BYTES 0x80
660/**
661 * Peripheral base address for regs device on rom_ctrl1 in top dragonfly.
662 *
663 * This should be used with #mmio_region_from_addr to access the memory-mapped
664 * registers associated with the peripheral (usually via a DIF).
665 */
666#define TOP_DRAGONFLY_ROM_CTRL1_REGS_BASE_ADDR 0x211E1000
667
668/**
669 * Peripheral size for regs device on rom_ctrl1 in top dragonfly.
670 *
671 * This is the size (in bytes) of the peripheral's reserved memory area. All
672 * memory-mapped registers associated with this peripheral should have an
673 * address between #TOP_DRAGONFLY_ROM_CTRL1_REGS_BASE_ADDR and
674 * `TOP_DRAGONFLY_ROM_CTRL1_REGS_BASE_ADDR + TOP_DRAGONFLY_ROM_CTRL1_REGS_SIZE_BYTES`.
675 */
676#define TOP_DRAGONFLY_ROM_CTRL1_REGS_SIZE_BYTES 0x80
677/**
678 * Peripheral base address for dma in top dragonfly.
679 *
680 * This should be used with #mmio_region_from_addr to access the memory-mapped
681 * registers associated with the peripheral (usually via a DIF).
682 */
683#define TOP_DRAGONFLY_DMA_BASE_ADDR 0x22010000
684
685/**
686 * Peripheral size for dma in top dragonfly.
687 *
688 * This is the size (in bytes) of the peripheral's reserved memory area. All
689 * memory-mapped registers associated with this peripheral should have an
690 * address between #TOP_DRAGONFLY_DMA_BASE_ADDR and
691 * `TOP_DRAGONFLY_DMA_BASE_ADDR + TOP_DRAGONFLY_DMA_SIZE_BYTES`.
692 */
693#define TOP_DRAGONFLY_DMA_SIZE_BYTES 0x200
694/**
695 * Peripheral base address for core device on mbx0 in top dragonfly.
696 *
697 * This should be used with #mmio_region_from_addr to access the memory-mapped
698 * registers associated with the peripheral (usually via a DIF).
699 */
700#define TOP_DRAGONFLY_MBX0_CORE_BASE_ADDR 0x22000000
701
702/**
703 * Peripheral size for core device on mbx0 in top dragonfly.
704 *
705 * This is the size (in bytes) of the peripheral's reserved memory area. All
706 * memory-mapped registers associated with this peripheral should have an
707 * address between #TOP_DRAGONFLY_MBX0_CORE_BASE_ADDR and
708 * `TOP_DRAGONFLY_MBX0_CORE_BASE_ADDR + TOP_DRAGONFLY_MBX0_CORE_SIZE_BYTES`.
709 */
710#define TOP_DRAGONFLY_MBX0_CORE_SIZE_BYTES 0x80
711/**
712 * Peripheral base address for core device on mbx1 in top dragonfly.
713 *
714 * This should be used with #mmio_region_from_addr to access the memory-mapped
715 * registers associated with the peripheral (usually via a DIF).
716 */
717#define TOP_DRAGONFLY_MBX1_CORE_BASE_ADDR 0x22000100
718
719/**
720 * Peripheral size for core device on mbx1 in top dragonfly.
721 *
722 * This is the size (in bytes) of the peripheral's reserved memory area. All
723 * memory-mapped registers associated with this peripheral should have an
724 * address between #TOP_DRAGONFLY_MBX1_CORE_BASE_ADDR and
725 * `TOP_DRAGONFLY_MBX1_CORE_BASE_ADDR + TOP_DRAGONFLY_MBX1_CORE_SIZE_BYTES`.
726 */
727#define TOP_DRAGONFLY_MBX1_CORE_SIZE_BYTES 0x80
728/**
729 * Peripheral base address for core device on mbx2 in top dragonfly.
730 *
731 * This should be used with #mmio_region_from_addr to access the memory-mapped
732 * registers associated with the peripheral (usually via a DIF).
733 */
734#define TOP_DRAGONFLY_MBX2_CORE_BASE_ADDR 0x22000200
735
736/**
737 * Peripheral size for core device on mbx2 in top dragonfly.
738 *
739 * This is the size (in bytes) of the peripheral's reserved memory area. All
740 * memory-mapped registers associated with this peripheral should have an
741 * address between #TOP_DRAGONFLY_MBX2_CORE_BASE_ADDR and
742 * `TOP_DRAGONFLY_MBX2_CORE_BASE_ADDR + TOP_DRAGONFLY_MBX2_CORE_SIZE_BYTES`.
743 */
744#define TOP_DRAGONFLY_MBX2_CORE_SIZE_BYTES 0x80
745/**
746 * Peripheral base address for core device on mbx3 in top dragonfly.
747 *
748 * This should be used with #mmio_region_from_addr to access the memory-mapped
749 * registers associated with the peripheral (usually via a DIF).
750 */
751#define TOP_DRAGONFLY_MBX3_CORE_BASE_ADDR 0x22000300
752
753/**
754 * Peripheral size for core device on mbx3 in top dragonfly.
755 *
756 * This is the size (in bytes) of the peripheral's reserved memory area. All
757 * memory-mapped registers associated with this peripheral should have an
758 * address between #TOP_DRAGONFLY_MBX3_CORE_BASE_ADDR and
759 * `TOP_DRAGONFLY_MBX3_CORE_BASE_ADDR + TOP_DRAGONFLY_MBX3_CORE_SIZE_BYTES`.
760 */
761#define TOP_DRAGONFLY_MBX3_CORE_SIZE_BYTES 0x80
762/**
763 * Peripheral base address for core device on mbx4 in top dragonfly.
764 *
765 * This should be used with #mmio_region_from_addr to access the memory-mapped
766 * registers associated with the peripheral (usually via a DIF).
767 */
768#define TOP_DRAGONFLY_MBX4_CORE_BASE_ADDR 0x22000400
769
770/**
771 * Peripheral size for core device on mbx4 in top dragonfly.
772 *
773 * This is the size (in bytes) of the peripheral's reserved memory area. All
774 * memory-mapped registers associated with this peripheral should have an
775 * address between #TOP_DRAGONFLY_MBX4_CORE_BASE_ADDR and
776 * `TOP_DRAGONFLY_MBX4_CORE_BASE_ADDR + TOP_DRAGONFLY_MBX4_CORE_SIZE_BYTES`.
777 */
778#define TOP_DRAGONFLY_MBX4_CORE_SIZE_BYTES 0x80
779/**
780 * Peripheral base address for core device on mbx5 in top dragonfly.
781 *
782 * This should be used with #mmio_region_from_addr to access the memory-mapped
783 * registers associated with the peripheral (usually via a DIF).
784 */
785#define TOP_DRAGONFLY_MBX5_CORE_BASE_ADDR 0x22000500
786
787/**
788 * Peripheral size for core device on mbx5 in top dragonfly.
789 *
790 * This is the size (in bytes) of the peripheral's reserved memory area. All
791 * memory-mapped registers associated with this peripheral should have an
792 * address between #TOP_DRAGONFLY_MBX5_CORE_BASE_ADDR and
793 * `TOP_DRAGONFLY_MBX5_CORE_BASE_ADDR + TOP_DRAGONFLY_MBX5_CORE_SIZE_BYTES`.
794 */
795#define TOP_DRAGONFLY_MBX5_CORE_SIZE_BYTES 0x80
796/**
797 * Peripheral base address for core device on mbx6 in top dragonfly.
798 *
799 * This should be used with #mmio_region_from_addr to access the memory-mapped
800 * registers associated with the peripheral (usually via a DIF).
801 */
802#define TOP_DRAGONFLY_MBX6_CORE_BASE_ADDR 0x22000600
803
804/**
805 * Peripheral size for core device on mbx6 in top dragonfly.
806 *
807 * This is the size (in bytes) of the peripheral's reserved memory area. All
808 * memory-mapped registers associated with this peripheral should have an
809 * address between #TOP_DRAGONFLY_MBX6_CORE_BASE_ADDR and
810 * `TOP_DRAGONFLY_MBX6_CORE_BASE_ADDR + TOP_DRAGONFLY_MBX6_CORE_SIZE_BYTES`.
811 */
812#define TOP_DRAGONFLY_MBX6_CORE_SIZE_BYTES 0x80
813/**
814 * Peripheral base address for core device on mbx_jtag in top dragonfly.
815 *
816 * This should be used with #mmio_region_from_addr to access the memory-mapped
817 * registers associated with the peripheral (usually via a DIF).
818 */
819#define TOP_DRAGONFLY_MBX_JTAG_CORE_BASE_ADDR 0x22000800
820
821/**
822 * Peripheral size for core device on mbx_jtag in top dragonfly.
823 *
824 * This is the size (in bytes) of the peripheral's reserved memory area. All
825 * memory-mapped registers associated with this peripheral should have an
826 * address between #TOP_DRAGONFLY_MBX_JTAG_CORE_BASE_ADDR and
827 * `TOP_DRAGONFLY_MBX_JTAG_CORE_BASE_ADDR + TOP_DRAGONFLY_MBX_JTAG_CORE_SIZE_BYTES`.
828 */
829#define TOP_DRAGONFLY_MBX_JTAG_CORE_SIZE_BYTES 0x80
830/**
831 * Peripheral base address for core device on mbx_pcie0 in top dragonfly.
832 *
833 * This should be used with #mmio_region_from_addr to access the memory-mapped
834 * registers associated with the peripheral (usually via a DIF).
835 */
836#define TOP_DRAGONFLY_MBX_PCIE0_CORE_BASE_ADDR 0x22040000
837
838/**
839 * Peripheral size for core device on mbx_pcie0 in top dragonfly.
840 *
841 * This is the size (in bytes) of the peripheral's reserved memory area. All
842 * memory-mapped registers associated with this peripheral should have an
843 * address between #TOP_DRAGONFLY_MBX_PCIE0_CORE_BASE_ADDR and
844 * `TOP_DRAGONFLY_MBX_PCIE0_CORE_BASE_ADDR + TOP_DRAGONFLY_MBX_PCIE0_CORE_SIZE_BYTES`.
845 */
846#define TOP_DRAGONFLY_MBX_PCIE0_CORE_SIZE_BYTES 0x80
847/**
848 * Peripheral base address for core device on mbx_pcie1 in top dragonfly.
849 *
850 * This should be used with #mmio_region_from_addr to access the memory-mapped
851 * registers associated with the peripheral (usually via a DIF).
852 */
853#define TOP_DRAGONFLY_MBX_PCIE1_CORE_BASE_ADDR 0x22040100
854
855/**
856 * Peripheral size for core device on mbx_pcie1 in top dragonfly.
857 *
858 * This is the size (in bytes) of the peripheral's reserved memory area. All
859 * memory-mapped registers associated with this peripheral should have an
860 * address between #TOP_DRAGONFLY_MBX_PCIE1_CORE_BASE_ADDR and
861 * `TOP_DRAGONFLY_MBX_PCIE1_CORE_BASE_ADDR + TOP_DRAGONFLY_MBX_PCIE1_CORE_SIZE_BYTES`.
862 */
863#define TOP_DRAGONFLY_MBX_PCIE1_CORE_SIZE_BYTES 0x80
864/**
865 * Peripheral base address for core device on soc_dbg_ctrl in top dragonfly.
866 *
867 * This should be used with #mmio_region_from_addr to access the memory-mapped
868 * registers associated with the peripheral (usually via a DIF).
869 */
870#define TOP_DRAGONFLY_SOC_DBG_CTRL_CORE_BASE_ADDR 0x30170000
871
872/**
873 * Peripheral size for core device on soc_dbg_ctrl in top dragonfly.
874 *
875 * This is the size (in bytes) of the peripheral's reserved memory area. All
876 * memory-mapped registers associated with this peripheral should have an
877 * address between #TOP_DRAGONFLY_SOC_DBG_CTRL_CORE_BASE_ADDR and
878 * `TOP_DRAGONFLY_SOC_DBG_CTRL_CORE_BASE_ADDR + TOP_DRAGONFLY_SOC_DBG_CTRL_CORE_SIZE_BYTES`.
879 */
880#define TOP_DRAGONFLY_SOC_DBG_CTRL_CORE_SIZE_BYTES 0x20
881/**
882 * Peripheral base address for cfg device on rv_core_ibex in top dragonfly.
883 *
884 * This should be used with #mmio_region_from_addr to access the memory-mapped
885 * registers associated with the peripheral (usually via a DIF).
886 */
887#define TOP_DRAGONFLY_RV_CORE_IBEX_CFG_BASE_ADDR 0x211F0000
888
889/**
890 * Peripheral size for cfg device on rv_core_ibex in top dragonfly.
891 *
892 * This is the size (in bytes) of the peripheral's reserved memory area. All
893 * memory-mapped registers associated with this peripheral should have an
894 * address between #TOP_DRAGONFLY_RV_CORE_IBEX_CFG_BASE_ADDR and
895 * `TOP_DRAGONFLY_RV_CORE_IBEX_CFG_BASE_ADDR + TOP_DRAGONFLY_RV_CORE_IBEX_CFG_SIZE_BYTES`.
896 */
897#define TOP_DRAGONFLY_RV_CORE_IBEX_CFG_SIZE_BYTES 0x800
898
899/**
900 * MMIO Region
901 *
902 * MMIO region excludes any memory that is separate from the module
903 * configuration space, i.e. ROM, main SRAM, and mbx SRAM are excluded but
904 * retention SRAM or spi_device are included.
905 */
906#define TOP_DRAGONFLY_MMIO_BASE_ADDR 0x21100000
907#define TOP_DRAGONFLY_MMIO_SIZE_BYTES 0xF501000
908
909#endif // __ASSEMBLER__
910
911#endif // OPENTITAN_HW_TOP_DRAGONFLY_SW_AUTOGEN_TOP_DRAGONFLY_MEMORY_H_