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