Software APIs
top_englishbreakfast.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_englishbreakfast/data/top_englishbreakfast.hjson
8// -o hw/top_englishbreakfast
9
10#ifndef OPENTITAN_HW_TOP_ENGLISHBREAKFAST_SW_AUTOGEN_TOP_ENGLISHBREAKFAST_H_
11#define OPENTITAN_HW_TOP_ENGLISHBREAKFAST_SW_AUTOGEN_TOP_ENGLISHBREAKFAST_H_
12
13/**
14 * @file
15 * @brief Top-specific Definitions
16 *
17 * This file contains preprocessor and type definitions for use within the
18 * device C/C++ codebase.
19 *
20 * These definitions are for information that depends on the top-specific chip
21 * configuration, which includes:
22 * - Device Memory Information (for Peripherals and Memory)
23 * - PLIC Interrupt ID Names and Source Mappings
24 * - Pinmux Pin/Select Names
25 * - Power Manager Wakeups
26 */
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32/**
33 * Peripheral base address for uart0 in top englishbreakfast.
34 *
35 * This should be used with #mmio_region_from_addr to access the memory-mapped
36 * registers associated with the peripheral (usually via a DIF).
37 */
38#define TOP_ENGLISHBREAKFAST_UART0_BASE_ADDR 0x40000000u
39
40/**
41 * Peripheral size for uart0 in top englishbreakfast.
42 *
43 * This is the size (in bytes) of the peripheral's reserved memory area. All
44 * memory-mapped registers associated with this peripheral should have an
45 * address between #TOP_ENGLISHBREAKFAST_UART0_BASE_ADDR and
46 * `TOP_ENGLISHBREAKFAST_UART0_BASE_ADDR + TOP_ENGLISHBREAKFAST_UART0_SIZE_BYTES`.
47 */
48#define TOP_ENGLISHBREAKFAST_UART0_SIZE_BYTES 0x40u
49
50/**
51 * Peripheral base address for uart1 in top englishbreakfast.
52 *
53 * This should be used with #mmio_region_from_addr to access the memory-mapped
54 * registers associated with the peripheral (usually via a DIF).
55 */
56#define TOP_ENGLISHBREAKFAST_UART1_BASE_ADDR 0x40010000u
57
58/**
59 * Peripheral size for uart1 in top englishbreakfast.
60 *
61 * This is the size (in bytes) of the peripheral's reserved memory area. All
62 * memory-mapped registers associated with this peripheral should have an
63 * address between #TOP_ENGLISHBREAKFAST_UART1_BASE_ADDR and
64 * `TOP_ENGLISHBREAKFAST_UART1_BASE_ADDR + TOP_ENGLISHBREAKFAST_UART1_SIZE_BYTES`.
65 */
66#define TOP_ENGLISHBREAKFAST_UART1_SIZE_BYTES 0x40u
67
68/**
69 * Peripheral base address for gpio in top englishbreakfast.
70 *
71 * This should be used with #mmio_region_from_addr to access the memory-mapped
72 * registers associated with the peripheral (usually via a DIF).
73 */
74#define TOP_ENGLISHBREAKFAST_GPIO_BASE_ADDR 0x40040000u
75
76/**
77 * Peripheral size for gpio in top englishbreakfast.
78 *
79 * This is the size (in bytes) of the peripheral's reserved memory area. All
80 * memory-mapped registers associated with this peripheral should have an
81 * address between #TOP_ENGLISHBREAKFAST_GPIO_BASE_ADDR and
82 * `TOP_ENGLISHBREAKFAST_GPIO_BASE_ADDR + TOP_ENGLISHBREAKFAST_GPIO_SIZE_BYTES`.
83 */
84#define TOP_ENGLISHBREAKFAST_GPIO_SIZE_BYTES 0x80u
85
86/**
87 * Peripheral base address for spi_device in top englishbreakfast.
88 *
89 * This should be used with #mmio_region_from_addr to access the memory-mapped
90 * registers associated with the peripheral (usually via a DIF).
91 */
92#define TOP_ENGLISHBREAKFAST_SPI_DEVICE_BASE_ADDR 0x40050000u
93
94/**
95 * Peripheral size for spi_device in top englishbreakfast.
96 *
97 * This is the size (in bytes) of the peripheral's reserved memory area. All
98 * memory-mapped registers associated with this peripheral should have an
99 * address between #TOP_ENGLISHBREAKFAST_SPI_DEVICE_BASE_ADDR and
100 * `TOP_ENGLISHBREAKFAST_SPI_DEVICE_BASE_ADDR + TOP_ENGLISHBREAKFAST_SPI_DEVICE_SIZE_BYTES`.
101 */
102#define TOP_ENGLISHBREAKFAST_SPI_DEVICE_SIZE_BYTES 0x2000u
103
104/**
105 * Peripheral base address for spi_host0 in top englishbreakfast.
106 *
107 * This should be used with #mmio_region_from_addr to access the memory-mapped
108 * registers associated with the peripheral (usually via a DIF).
109 */
110#define TOP_ENGLISHBREAKFAST_SPI_HOST0_BASE_ADDR 0x40060000u
111
112/**
113 * Peripheral size for spi_host0 in top englishbreakfast.
114 *
115 * This is the size (in bytes) of the peripheral's reserved memory area. All
116 * memory-mapped registers associated with this peripheral should have an
117 * address between #TOP_ENGLISHBREAKFAST_SPI_HOST0_BASE_ADDR and
118 * `TOP_ENGLISHBREAKFAST_SPI_HOST0_BASE_ADDR + TOP_ENGLISHBREAKFAST_SPI_HOST0_SIZE_BYTES`.
119 */
120#define TOP_ENGLISHBREAKFAST_SPI_HOST0_SIZE_BYTES 0x40u
121
122/**
123 * Peripheral base address for rv_timer in top englishbreakfast.
124 *
125 * This should be used with #mmio_region_from_addr to access the memory-mapped
126 * registers associated with the peripheral (usually via a DIF).
127 */
128#define TOP_ENGLISHBREAKFAST_RV_TIMER_BASE_ADDR 0x40100000u
129
130/**
131 * Peripheral size for rv_timer in top englishbreakfast.
132 *
133 * This is the size (in bytes) of the peripheral's reserved memory area. All
134 * memory-mapped registers associated with this peripheral should have an
135 * address between #TOP_ENGLISHBREAKFAST_RV_TIMER_BASE_ADDR and
136 * `TOP_ENGLISHBREAKFAST_RV_TIMER_BASE_ADDR + TOP_ENGLISHBREAKFAST_RV_TIMER_SIZE_BYTES`.
137 */
138#define TOP_ENGLISHBREAKFAST_RV_TIMER_SIZE_BYTES 0x200u
139
140/**
141 * Peripheral base address for usbdev in top englishbreakfast.
142 *
143 * This should be used with #mmio_region_from_addr to access the memory-mapped
144 * registers associated with the peripheral (usually via a DIF).
145 */
146#define TOP_ENGLISHBREAKFAST_USBDEV_BASE_ADDR 0x40320000u
147
148/**
149 * Peripheral size for usbdev in top englishbreakfast.
150 *
151 * This is the size (in bytes) of the peripheral's reserved memory area. All
152 * memory-mapped registers associated with this peripheral should have an
153 * address between #TOP_ENGLISHBREAKFAST_USBDEV_BASE_ADDR and
154 * `TOP_ENGLISHBREAKFAST_USBDEV_BASE_ADDR + TOP_ENGLISHBREAKFAST_USBDEV_SIZE_BYTES`.
155 */
156#define TOP_ENGLISHBREAKFAST_USBDEV_SIZE_BYTES 0x1000u
157
158/**
159 * Peripheral base address for pwrmgr_aon in top englishbreakfast.
160 *
161 * This should be used with #mmio_region_from_addr to access the memory-mapped
162 * registers associated with the peripheral (usually via a DIF).
163 */
164#define TOP_ENGLISHBREAKFAST_PWRMGR_AON_BASE_ADDR 0x40400000u
165
166/**
167 * Peripheral size for pwrmgr_aon in top englishbreakfast.
168 *
169 * This is the size (in bytes) of the peripheral's reserved memory area. All
170 * memory-mapped registers associated with this peripheral should have an
171 * address between #TOP_ENGLISHBREAKFAST_PWRMGR_AON_BASE_ADDR and
172 * `TOP_ENGLISHBREAKFAST_PWRMGR_AON_BASE_ADDR + TOP_ENGLISHBREAKFAST_PWRMGR_AON_SIZE_BYTES`.
173 */
174#define TOP_ENGLISHBREAKFAST_PWRMGR_AON_SIZE_BYTES 0x80u
175
176/**
177 * Peripheral base address for rstmgr_aon in top englishbreakfast.
178 *
179 * This should be used with #mmio_region_from_addr to access the memory-mapped
180 * registers associated with the peripheral (usually via a DIF).
181 */
182#define TOP_ENGLISHBREAKFAST_RSTMGR_AON_BASE_ADDR 0x40410000u
183
184/**
185 * Peripheral size for rstmgr_aon in top englishbreakfast.
186 *
187 * This is the size (in bytes) of the peripheral's reserved memory area. All
188 * memory-mapped registers associated with this peripheral should have an
189 * address between #TOP_ENGLISHBREAKFAST_RSTMGR_AON_BASE_ADDR and
190 * `TOP_ENGLISHBREAKFAST_RSTMGR_AON_BASE_ADDR + TOP_ENGLISHBREAKFAST_RSTMGR_AON_SIZE_BYTES`.
191 */
192#define TOP_ENGLISHBREAKFAST_RSTMGR_AON_SIZE_BYTES 0x80u
193
194/**
195 * Peripheral base address for clkmgr_aon in top englishbreakfast.
196 *
197 * This should be used with #mmio_region_from_addr to access the memory-mapped
198 * registers associated with the peripheral (usually via a DIF).
199 */
200#define TOP_ENGLISHBREAKFAST_CLKMGR_AON_BASE_ADDR 0x40420000u
201
202/**
203 * Peripheral size for clkmgr_aon in top englishbreakfast.
204 *
205 * This is the size (in bytes) of the peripheral's reserved memory area. All
206 * memory-mapped registers associated with this peripheral should have an
207 * address between #TOP_ENGLISHBREAKFAST_CLKMGR_AON_BASE_ADDR and
208 * `TOP_ENGLISHBREAKFAST_CLKMGR_AON_BASE_ADDR + TOP_ENGLISHBREAKFAST_CLKMGR_AON_SIZE_BYTES`.
209 */
210#define TOP_ENGLISHBREAKFAST_CLKMGR_AON_SIZE_BYTES 0x80u
211
212/**
213 * Peripheral base address for pinmux_aon in top englishbreakfast.
214 *
215 * This should be used with #mmio_region_from_addr to access the memory-mapped
216 * registers associated with the peripheral (usually via a DIF).
217 */
218#define TOP_ENGLISHBREAKFAST_PINMUX_AON_BASE_ADDR 0x40460000u
219
220/**
221 * Peripheral size for pinmux_aon in top englishbreakfast.
222 *
223 * This is the size (in bytes) of the peripheral's reserved memory area. All
224 * memory-mapped registers associated with this peripheral should have an
225 * address between #TOP_ENGLISHBREAKFAST_PINMUX_AON_BASE_ADDR and
226 * `TOP_ENGLISHBREAKFAST_PINMUX_AON_BASE_ADDR + TOP_ENGLISHBREAKFAST_PINMUX_AON_SIZE_BYTES`.
227 */
228#define TOP_ENGLISHBREAKFAST_PINMUX_AON_SIZE_BYTES 0x1000u
229
230/**
231 * Peripheral base address for aon_timer_aon in top englishbreakfast.
232 *
233 * This should be used with #mmio_region_from_addr to access the memory-mapped
234 * registers associated with the peripheral (usually via a DIF).
235 */
236#define TOP_ENGLISHBREAKFAST_AON_TIMER_AON_BASE_ADDR 0x40470000u
237
238/**
239 * Peripheral size for aon_timer_aon in top englishbreakfast.
240 *
241 * This is the size (in bytes) of the peripheral's reserved memory area. All
242 * memory-mapped registers associated with this peripheral should have an
243 * address between #TOP_ENGLISHBREAKFAST_AON_TIMER_AON_BASE_ADDR and
244 * `TOP_ENGLISHBREAKFAST_AON_TIMER_AON_BASE_ADDR + TOP_ENGLISHBREAKFAST_AON_TIMER_AON_SIZE_BYTES`.
245 */
246#define TOP_ENGLISHBREAKFAST_AON_TIMER_AON_SIZE_BYTES 0x40u
247
248/**
249 * Peripheral base address for ast in top englishbreakfast.
250 *
251 * This should be used with #mmio_region_from_addr to access the memory-mapped
252 * registers associated with the peripheral (usually via a DIF).
253 */
254#define TOP_ENGLISHBREAKFAST_AST_BASE_ADDR 0x40480000u
255
256/**
257 * Peripheral size for ast in top englishbreakfast.
258 *
259 * This is the size (in bytes) of the peripheral's reserved memory area. All
260 * memory-mapped registers associated with this peripheral should have an
261 * address between #TOP_ENGLISHBREAKFAST_AST_BASE_ADDR and
262 * `TOP_ENGLISHBREAKFAST_AST_BASE_ADDR + TOP_ENGLISHBREAKFAST_AST_SIZE_BYTES`.
263 */
264#define TOP_ENGLISHBREAKFAST_AST_SIZE_BYTES 0x400u
265
266/**
267 * Peripheral base address for core device on flash_ctrl in top englishbreakfast.
268 *
269 * This should be used with #mmio_region_from_addr to access the memory-mapped
270 * registers associated with the peripheral (usually via a DIF).
271 */
272#define TOP_ENGLISHBREAKFAST_FLASH_CTRL_CORE_BASE_ADDR 0x41000000u
273
274/**
275 * Peripheral size for core device on flash_ctrl in top englishbreakfast.
276 *
277 * This is the size (in bytes) of the peripheral's reserved memory area. All
278 * memory-mapped registers associated with this peripheral should have an
279 * address between #TOP_ENGLISHBREAKFAST_FLASH_CTRL_CORE_BASE_ADDR and
280 * `TOP_ENGLISHBREAKFAST_FLASH_CTRL_CORE_BASE_ADDR + TOP_ENGLISHBREAKFAST_FLASH_CTRL_CORE_SIZE_BYTES`.
281 */
282#define TOP_ENGLISHBREAKFAST_FLASH_CTRL_CORE_SIZE_BYTES 0x200u
283
284/**
285 * Peripheral base address for prim device on flash_ctrl in top englishbreakfast.
286 *
287 * This should be used with #mmio_region_from_addr to access the memory-mapped
288 * registers associated with the peripheral (usually via a DIF).
289 */
290#define TOP_ENGLISHBREAKFAST_FLASH_CTRL_PRIM_BASE_ADDR 0x41008000u
291
292/**
293 * Peripheral size for prim device on flash_ctrl in top englishbreakfast.
294 *
295 * This is the size (in bytes) of the peripheral's reserved memory area. All
296 * memory-mapped registers associated with this peripheral should have an
297 * address between #TOP_ENGLISHBREAKFAST_FLASH_CTRL_PRIM_BASE_ADDR and
298 * `TOP_ENGLISHBREAKFAST_FLASH_CTRL_PRIM_BASE_ADDR + TOP_ENGLISHBREAKFAST_FLASH_CTRL_PRIM_SIZE_BYTES`.
299 */
300#define TOP_ENGLISHBREAKFAST_FLASH_CTRL_PRIM_SIZE_BYTES 0x80u
301
302/**
303 * Peripheral base address for mem device on flash_ctrl in top englishbreakfast.
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_ENGLISHBREAKFAST_FLASH_CTRL_MEM_BASE_ADDR 0x20000000u
309
310/**
311 * Peripheral size for mem device on flash_ctrl in top englishbreakfast.
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_ENGLISHBREAKFAST_FLASH_CTRL_MEM_BASE_ADDR and
316 * `TOP_ENGLISHBREAKFAST_FLASH_CTRL_MEM_BASE_ADDR + TOP_ENGLISHBREAKFAST_FLASH_CTRL_MEM_SIZE_BYTES`.
317 */
318#define TOP_ENGLISHBREAKFAST_FLASH_CTRL_MEM_SIZE_BYTES 0x10000u
319
320/**
321 * Peripheral base address for rv_plic in top englishbreakfast.
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_ENGLISHBREAKFAST_RV_PLIC_BASE_ADDR 0x48000000u
327
328/**
329 * Peripheral size for rv_plic in top englishbreakfast.
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_ENGLISHBREAKFAST_RV_PLIC_BASE_ADDR and
334 * `TOP_ENGLISHBREAKFAST_RV_PLIC_BASE_ADDR + TOP_ENGLISHBREAKFAST_RV_PLIC_SIZE_BYTES`.
335 */
336#define TOP_ENGLISHBREAKFAST_RV_PLIC_SIZE_BYTES 0x8000000u
337
338/**
339 * Peripheral base address for aes in top englishbreakfast.
340 *
341 * This should be used with #mmio_region_from_addr to access the memory-mapped
342 * registers associated with the peripheral (usually via a DIF).
343 */
344#define TOP_ENGLISHBREAKFAST_AES_BASE_ADDR 0x41100000u
345
346/**
347 * Peripheral size for aes in top englishbreakfast.
348 *
349 * This is the size (in bytes) of the peripheral's reserved memory area. All
350 * memory-mapped registers associated with this peripheral should have an
351 * address between #TOP_ENGLISHBREAKFAST_AES_BASE_ADDR and
352 * `TOP_ENGLISHBREAKFAST_AES_BASE_ADDR + TOP_ENGLISHBREAKFAST_AES_SIZE_BYTES`.
353 */
354#define TOP_ENGLISHBREAKFAST_AES_SIZE_BYTES 0x100u
355
356/**
357 * Peripheral base address for regs device on sram_ctrl_main in top englishbreakfast.
358 *
359 * This should be used with #mmio_region_from_addr to access the memory-mapped
360 * registers associated with the peripheral (usually via a DIF).
361 */
362#define TOP_ENGLISHBREAKFAST_SRAM_CTRL_MAIN_REGS_BASE_ADDR 0x411C0000u
363
364/**
365 * Peripheral size for regs device on sram_ctrl_main in top englishbreakfast.
366 *
367 * This is the size (in bytes) of the peripheral's reserved memory area. All
368 * memory-mapped registers associated with this peripheral should have an
369 * address between #TOP_ENGLISHBREAKFAST_SRAM_CTRL_MAIN_REGS_BASE_ADDR and
370 * `TOP_ENGLISHBREAKFAST_SRAM_CTRL_MAIN_REGS_BASE_ADDR + TOP_ENGLISHBREAKFAST_SRAM_CTRL_MAIN_REGS_SIZE_BYTES`.
371 */
372#define TOP_ENGLISHBREAKFAST_SRAM_CTRL_MAIN_REGS_SIZE_BYTES 0x40u
373
374/**
375 * Peripheral base address for ram device on sram_ctrl_main in top englishbreakfast.
376 *
377 * This should be used with #mmio_region_from_addr to access the memory-mapped
378 * registers associated with the peripheral (usually via a DIF).
379 */
380#define TOP_ENGLISHBREAKFAST_SRAM_CTRL_MAIN_RAM_BASE_ADDR 0x10000000u
381
382/**
383 * Peripheral size for ram device on sram_ctrl_main in top englishbreakfast.
384 *
385 * This is the size (in bytes) of the peripheral's reserved memory area. All
386 * memory-mapped registers associated with this peripheral should have an
387 * address between #TOP_ENGLISHBREAKFAST_SRAM_CTRL_MAIN_RAM_BASE_ADDR and
388 * `TOP_ENGLISHBREAKFAST_SRAM_CTRL_MAIN_RAM_BASE_ADDR + TOP_ENGLISHBREAKFAST_SRAM_CTRL_MAIN_RAM_SIZE_BYTES`.
389 */
390#define TOP_ENGLISHBREAKFAST_SRAM_CTRL_MAIN_RAM_SIZE_BYTES 0x20000u
391
392/**
393 * Peripheral base address for regs device on rom_ctrl in top englishbreakfast.
394 *
395 * This should be used with #mmio_region_from_addr to access the memory-mapped
396 * registers associated with the peripheral (usually via a DIF).
397 */
398#define TOP_ENGLISHBREAKFAST_ROM_CTRL_REGS_BASE_ADDR 0x411E0000u
399
400/**
401 * Peripheral size for regs device on rom_ctrl in top englishbreakfast.
402 *
403 * This is the size (in bytes) of the peripheral's reserved memory area. All
404 * memory-mapped registers associated with this peripheral should have an
405 * address between #TOP_ENGLISHBREAKFAST_ROM_CTRL_REGS_BASE_ADDR and
406 * `TOP_ENGLISHBREAKFAST_ROM_CTRL_REGS_BASE_ADDR + TOP_ENGLISHBREAKFAST_ROM_CTRL_REGS_SIZE_BYTES`.
407 */
408#define TOP_ENGLISHBREAKFAST_ROM_CTRL_REGS_SIZE_BYTES 0x80u
409
410/**
411 * Peripheral base address for rom device on rom_ctrl in top englishbreakfast.
412 *
413 * This should be used with #mmio_region_from_addr to access the memory-mapped
414 * registers associated with the peripheral (usually via a DIF).
415 */
416#define TOP_ENGLISHBREAKFAST_ROM_CTRL_ROM_BASE_ADDR 0x8000u
417
418/**
419 * Peripheral size for rom device on rom_ctrl in top englishbreakfast.
420 *
421 * This is the size (in bytes) of the peripheral's reserved memory area. All
422 * memory-mapped registers associated with this peripheral should have an
423 * address between #TOP_ENGLISHBREAKFAST_ROM_CTRL_ROM_BASE_ADDR and
424 * `TOP_ENGLISHBREAKFAST_ROM_CTRL_ROM_BASE_ADDR + TOP_ENGLISHBREAKFAST_ROM_CTRL_ROM_SIZE_BYTES`.
425 */
426#define TOP_ENGLISHBREAKFAST_ROM_CTRL_ROM_SIZE_BYTES 0x8000u
427
428/**
429 * Peripheral base address for cfg device on rv_core_ibex in top englishbreakfast.
430 *
431 * This should be used with #mmio_region_from_addr to access the memory-mapped
432 * registers associated with the peripheral (usually via a DIF).
433 */
434#define TOP_ENGLISHBREAKFAST_RV_CORE_IBEX_CFG_BASE_ADDR 0x411F0000u
435
436/**
437 * Peripheral size for cfg device on rv_core_ibex in top englishbreakfast.
438 *
439 * This is the size (in bytes) of the peripheral's reserved memory area. All
440 * memory-mapped registers associated with this peripheral should have an
441 * address between #TOP_ENGLISHBREAKFAST_RV_CORE_IBEX_CFG_BASE_ADDR and
442 * `TOP_ENGLISHBREAKFAST_RV_CORE_IBEX_CFG_BASE_ADDR + TOP_ENGLISHBREAKFAST_RV_CORE_IBEX_CFG_SIZE_BYTES`.
443 */
444#define TOP_ENGLISHBREAKFAST_RV_CORE_IBEX_CFG_SIZE_BYTES 0x100u
445
446
447/**
448 * Memory base address for eflash in top englishbreakfast.
449 */
450#define TOP_ENGLISHBREAKFAST_EFLASH_BASE_ADDR 0x20000000u
451
452/**
453 * Memory size for eflash in top englishbreakfast.
454 */
455#define TOP_ENGLISHBREAKFAST_EFLASH_SIZE_BYTES 0x10000u
456
457/**
458 * Memory base address for ram_main in top englishbreakfast.
459 */
460#define TOP_ENGLISHBREAKFAST_RAM_MAIN_BASE_ADDR 0x10000000u
461
462/**
463 * Memory size for ram_main in top englishbreakfast.
464 */
465#define TOP_ENGLISHBREAKFAST_RAM_MAIN_SIZE_BYTES 0x20000u
466
467/**
468 * Memory base address for rom in top englishbreakfast.
469 */
470#define TOP_ENGLISHBREAKFAST_ROM_BASE_ADDR 0x8000u
471
472/**
473 * Memory size for rom in top englishbreakfast.
474 */
475#define TOP_ENGLISHBREAKFAST_ROM_SIZE_BYTES 0x8000u
476
477
478/**
479 * PLIC Interrupt Source Peripheral.
480 *
481 * Enumeration used to determine which peripheral asserted the corresponding
482 * interrupt.
483 */
497
498/**
499 * PLIC Interrupt Source.
500 *
501 * Enumeration of all PLIC interrupt sources. The interrupt sources belonging to
502 * the same peripheral are guaranteed to be consecutive.
503 */
505 kTopEnglishbreakfastPlicIrqIdNone = 0, /**< No Interrupt */
506 kTopEnglishbreakfastPlicIrqIdUart0TxWatermark = 1, /**< uart0_tx_watermark */
507 kTopEnglishbreakfastPlicIrqIdUart0RxWatermark = 2, /**< uart0_rx_watermark */
509 kTopEnglishbreakfastPlicIrqIdUart0RxOverflow = 4, /**< uart0_rx_overflow */
510 kTopEnglishbreakfastPlicIrqIdUart0RxFrameErr = 5, /**< uart0_rx_frame_err */
511 kTopEnglishbreakfastPlicIrqIdUart0RxBreakErr = 6, /**< uart0_rx_break_err */
513 kTopEnglishbreakfastPlicIrqIdUart0RxParityErr = 8, /**< uart0_rx_parity_err */
515 kTopEnglishbreakfastPlicIrqIdUart1TxWatermark = 10, /**< uart1_tx_watermark */
516 kTopEnglishbreakfastPlicIrqIdUart1RxWatermark = 11, /**< uart1_rx_watermark */
518 kTopEnglishbreakfastPlicIrqIdUart1RxOverflow = 13, /**< uart1_rx_overflow */
519 kTopEnglishbreakfastPlicIrqIdUart1RxFrameErr = 14, /**< uart1_rx_frame_err */
520 kTopEnglishbreakfastPlicIrqIdUart1RxBreakErr = 15, /**< uart1_rx_break_err */
521 kTopEnglishbreakfastPlicIrqIdUart1RxTimeout = 16, /**< uart1_rx_timeout */
522 kTopEnglishbreakfastPlicIrqIdUart1RxParityErr = 17, /**< uart1_rx_parity_err */
523 kTopEnglishbreakfastPlicIrqIdUart1TxEmpty = 18, /**< uart1_tx_empty */
556 kTopEnglishbreakfastPlicIrqIdSpiDeviceUploadCmdfifoNotEmpty = 51, /**< spi_device_upload_cmdfifo_not_empty */
557 kTopEnglishbreakfastPlicIrqIdSpiDeviceUploadPayloadNotEmpty = 52, /**< spi_device_upload_payload_not_empty */
558 kTopEnglishbreakfastPlicIrqIdSpiDeviceUploadPayloadOverflow = 53, /**< spi_device_upload_payload_overflow */
559 kTopEnglishbreakfastPlicIrqIdSpiDeviceReadbufWatermark = 54, /**< spi_device_readbuf_watermark */
560 kTopEnglishbreakfastPlicIrqIdSpiDeviceReadbufFlip = 55, /**< spi_device_readbuf_flip */
561 kTopEnglishbreakfastPlicIrqIdSpiDeviceTpmHeaderNotEmpty = 56, /**< spi_device_tpm_header_not_empty */
562 kTopEnglishbreakfastPlicIrqIdSpiDeviceTpmRdfifoCmdEnd = 57, /**< spi_device_tpm_rdfifo_cmd_end */
563 kTopEnglishbreakfastPlicIrqIdSpiDeviceTpmRdfifoDrop = 58, /**< spi_device_tpm_rdfifo_drop */
564 kTopEnglishbreakfastPlicIrqIdSpiHost0Error = 59, /**< spi_host0_error */
565 kTopEnglishbreakfastPlicIrqIdSpiHost0SpiEvent = 60, /**< spi_host0_spi_event */
566 kTopEnglishbreakfastPlicIrqIdUsbdevPktReceived = 61, /**< usbdev_pkt_received */
567 kTopEnglishbreakfastPlicIrqIdUsbdevPktSent = 62, /**< usbdev_pkt_sent */
568 kTopEnglishbreakfastPlicIrqIdUsbdevDisconnected = 63, /**< usbdev_disconnected */
569 kTopEnglishbreakfastPlicIrqIdUsbdevHostLost = 64, /**< usbdev_host_lost */
570 kTopEnglishbreakfastPlicIrqIdUsbdevLinkReset = 65, /**< usbdev_link_reset */
571 kTopEnglishbreakfastPlicIrqIdUsbdevLinkSuspend = 66, /**< usbdev_link_suspend */
572 kTopEnglishbreakfastPlicIrqIdUsbdevLinkResume = 67, /**< usbdev_link_resume */
573 kTopEnglishbreakfastPlicIrqIdUsbdevAvOutEmpty = 68, /**< usbdev_av_out_empty */
574 kTopEnglishbreakfastPlicIrqIdUsbdevRxFull = 69, /**< usbdev_rx_full */
575 kTopEnglishbreakfastPlicIrqIdUsbdevAvOverflow = 70, /**< usbdev_av_overflow */
576 kTopEnglishbreakfastPlicIrqIdUsbdevLinkInErr = 71, /**< usbdev_link_in_err */
577 kTopEnglishbreakfastPlicIrqIdUsbdevRxCrcErr = 72, /**< usbdev_rx_crc_err */
578 kTopEnglishbreakfastPlicIrqIdUsbdevRxPidErr = 73, /**< usbdev_rx_pid_err */
579 kTopEnglishbreakfastPlicIrqIdUsbdevRxBitstuffErr = 74, /**< usbdev_rx_bitstuff_err */
582 kTopEnglishbreakfastPlicIrqIdUsbdevLinkOutErr = 77, /**< usbdev_link_out_err */
583 kTopEnglishbreakfastPlicIrqIdUsbdevAvSetupEmpty = 78, /**< usbdev_av_setup_empty */
584 kTopEnglishbreakfastPlicIrqIdPwrmgrAonWakeup = 79, /**< pwrmgr_aon_wakeup */
585 kTopEnglishbreakfastPlicIrqIdAonTimerAonWkupTimerExpired = 80, /**< aon_timer_aon_wkup_timer_expired */
586 kTopEnglishbreakfastPlicIrqIdAonTimerAonWdogTimerBark = 81, /**< aon_timer_aon_wdog_timer_bark */
587 kTopEnglishbreakfastPlicIrqIdFlashCtrlProgEmpty = 82, /**< flash_ctrl_prog_empty */
588 kTopEnglishbreakfastPlicIrqIdFlashCtrlProgLvl = 83, /**< flash_ctrl_prog_lvl */
589 kTopEnglishbreakfastPlicIrqIdFlashCtrlRdFull = 84, /**< flash_ctrl_rd_full */
590 kTopEnglishbreakfastPlicIrqIdFlashCtrlRdLvl = 85, /**< flash_ctrl_rd_lvl */
591 kTopEnglishbreakfastPlicIrqIdFlashCtrlOpDone = 86, /**< flash_ctrl_op_done */
592 kTopEnglishbreakfastPlicIrqIdFlashCtrlCorrErr = 87, /**< flash_ctrl_corr_err */
593 kTopEnglishbreakfastPlicIrqIdLast = 87, /**< \internal The Last Valid Interrupt ID. */
595
596/**
597 * PLIC Interrupt Source to Peripheral Map
598 *
599 * This array is a mapping from `top_englishbreakfast_plic_irq_id_t` to
600 * `top_englishbreakfast_plic_peripheral_t`.
601 */
603 top_englishbreakfast_plic_interrupt_for_peripheral[88];
604
605/**
606 * PLIC Interrupt Target.
607 *
608 * Enumeration used to determine which set of IE, CC, threshold registers to
609 * access for a given interrupt target.
610 */
612 kTopEnglishbreakfastPlicTargetIbex0 = 0, /**< Ibex Core 0 */
613 kTopEnglishbreakfastPlicTargetLast = 0, /**< \internal Final PLIC target */
615
616#define PINMUX_MIO_PERIPH_INSEL_IDX_OFFSET 2
617
618// PERIPH_INSEL ranges from 0 to NUM_MIO_PADS + 2 -1}
619// 0 and 1 are tied to value 0 and 1
620#define NUM_MIO_PADS 47
621#define NUM_DIO_PADS 14
622
623#define PINMUX_PERIPH_OUTSEL_IDX_OFFSET 3
624
625/**
626 * Pinmux Peripheral Input.
627 */
639 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio10 = 10, /**< Peripheral Input 10 */
640 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio11 = 11, /**< Peripheral Input 11 */
641 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio12 = 12, /**< Peripheral Input 12 */
642 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio13 = 13, /**< Peripheral Input 13 */
643 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio14 = 14, /**< Peripheral Input 14 */
644 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio15 = 15, /**< Peripheral Input 15 */
645 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio16 = 16, /**< Peripheral Input 16 */
646 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio17 = 17, /**< Peripheral Input 17 */
647 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio18 = 18, /**< Peripheral Input 18 */
648 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio19 = 19, /**< Peripheral Input 19 */
649 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio20 = 20, /**< Peripheral Input 20 */
650 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio21 = 21, /**< Peripheral Input 21 */
651 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio22 = 22, /**< Peripheral Input 22 */
652 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio23 = 23, /**< Peripheral Input 23 */
653 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio24 = 24, /**< Peripheral Input 24 */
654 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio25 = 25, /**< Peripheral Input 25 */
655 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio26 = 26, /**< Peripheral Input 26 */
656 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio27 = 27, /**< Peripheral Input 27 */
657 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio28 = 28, /**< Peripheral Input 28 */
658 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio29 = 29, /**< Peripheral Input 29 */
659 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio30 = 30, /**< Peripheral Input 30 */
660 kTopEnglishbreakfastPinmuxPeripheralInGpioGpio31 = 31, /**< Peripheral Input 31 */
661 kTopEnglishbreakfastPinmuxPeripheralInUart0Rx = 32, /**< Peripheral Input 32 */
662 kTopEnglishbreakfastPinmuxPeripheralInUart1Rx = 33, /**< Peripheral Input 33 */
667 kTopEnglishbreakfastPinmuxPeripheralInLast = 37, /**< \internal Last valid peripheral input */
669
670/**
671 * Pinmux MIO Input Selector.
672 */
674 kTopEnglishbreakfastPinmuxInselConstantZero = 0, /**< Tie constantly to zero */
675 kTopEnglishbreakfastPinmuxInselConstantOne = 1, /**< Tie constantly to one */
686 kTopEnglishbreakfastPinmuxInselIob1 = 12, /**< MIO Pad 10 */
687 kTopEnglishbreakfastPinmuxInselIob2 = 13, /**< MIO Pad 11 */
688 kTopEnglishbreakfastPinmuxInselIob3 = 14, /**< MIO Pad 12 */
689 kTopEnglishbreakfastPinmuxInselIob4 = 15, /**< MIO Pad 13 */
690 kTopEnglishbreakfastPinmuxInselIob5 = 16, /**< MIO Pad 14 */
691 kTopEnglishbreakfastPinmuxInselIob6 = 17, /**< MIO Pad 15 */
692 kTopEnglishbreakfastPinmuxInselIob7 = 18, /**< MIO Pad 16 */
693 kTopEnglishbreakfastPinmuxInselIob8 = 19, /**< MIO Pad 17 */
694 kTopEnglishbreakfastPinmuxInselIob9 = 20, /**< MIO Pad 18 */
698 kTopEnglishbreakfastPinmuxInselIoc0 = 24, /**< MIO Pad 22 */
699 kTopEnglishbreakfastPinmuxInselIoc1 = 25, /**< MIO Pad 23 */
700 kTopEnglishbreakfastPinmuxInselIoc2 = 26, /**< MIO Pad 24 */
701 kTopEnglishbreakfastPinmuxInselIoc3 = 27, /**< MIO Pad 25 */
702 kTopEnglishbreakfastPinmuxInselIoc4 = 28, /**< MIO Pad 26 */
703 kTopEnglishbreakfastPinmuxInselIoc5 = 29, /**< MIO Pad 27 */
704 kTopEnglishbreakfastPinmuxInselIoc6 = 30, /**< MIO Pad 28 */
705 kTopEnglishbreakfastPinmuxInselIoc7 = 31, /**< MIO Pad 29 */
706 kTopEnglishbreakfastPinmuxInselIoc8 = 32, /**< MIO Pad 30 */
707 kTopEnglishbreakfastPinmuxInselIoc9 = 33, /**< MIO Pad 31 */
711 kTopEnglishbreakfastPinmuxInselIor0 = 37, /**< MIO Pad 35 */
712 kTopEnglishbreakfastPinmuxInselIor1 = 38, /**< MIO Pad 36 */
713 kTopEnglishbreakfastPinmuxInselIor2 = 39, /**< MIO Pad 37 */
714 kTopEnglishbreakfastPinmuxInselIor3 = 40, /**< MIO Pad 38 */
715 kTopEnglishbreakfastPinmuxInselIor4 = 41, /**< MIO Pad 39 */
716 kTopEnglishbreakfastPinmuxInselIor5 = 42, /**< MIO Pad 40 */
717 kTopEnglishbreakfastPinmuxInselIor6 = 43, /**< MIO Pad 41 */
718 kTopEnglishbreakfastPinmuxInselIor7 = 44, /**< MIO Pad 42 */
723 kTopEnglishbreakfastPinmuxInselLast = 48, /**< \internal Last valid insel value */
725
726/**
727 * Pinmux MIO Output.
728 */
777 kTopEnglishbreakfastPinmuxMioOutLast = 46, /**< \internal Last valid mio output */
779
780/**
781 * Pinmux Peripheral Output Selector.
782 */
784 kTopEnglishbreakfastPinmuxOutselConstantZero = 0, /**< Tie constantly to zero */
785 kTopEnglishbreakfastPinmuxOutselConstantOne = 1, /**< Tie constantly to one */
786 kTopEnglishbreakfastPinmuxOutselConstantHighZ = 2, /**< Tie constantly to high-Z */
787 kTopEnglishbreakfastPinmuxOutselGpioGpio0 = 3, /**< Peripheral Output 0 */
788 kTopEnglishbreakfastPinmuxOutselGpioGpio1 = 4, /**< Peripheral Output 1 */
789 kTopEnglishbreakfastPinmuxOutselGpioGpio2 = 5, /**< Peripheral Output 2 */
790 kTopEnglishbreakfastPinmuxOutselGpioGpio3 = 6, /**< Peripheral Output 3 */
791 kTopEnglishbreakfastPinmuxOutselGpioGpio4 = 7, /**< Peripheral Output 4 */
792 kTopEnglishbreakfastPinmuxOutselGpioGpio5 = 8, /**< Peripheral Output 5 */
793 kTopEnglishbreakfastPinmuxOutselGpioGpio6 = 9, /**< Peripheral Output 6 */
794 kTopEnglishbreakfastPinmuxOutselGpioGpio7 = 10, /**< Peripheral Output 7 */
795 kTopEnglishbreakfastPinmuxOutselGpioGpio8 = 11, /**< Peripheral Output 8 */
796 kTopEnglishbreakfastPinmuxOutselGpioGpio9 = 12, /**< Peripheral Output 9 */
797 kTopEnglishbreakfastPinmuxOutselGpioGpio10 = 13, /**< Peripheral Output 10 */
798 kTopEnglishbreakfastPinmuxOutselGpioGpio11 = 14, /**< Peripheral Output 11 */
799 kTopEnglishbreakfastPinmuxOutselGpioGpio12 = 15, /**< Peripheral Output 12 */
800 kTopEnglishbreakfastPinmuxOutselGpioGpio13 = 16, /**< Peripheral Output 13 */
801 kTopEnglishbreakfastPinmuxOutselGpioGpio14 = 17, /**< Peripheral Output 14 */
802 kTopEnglishbreakfastPinmuxOutselGpioGpio15 = 18, /**< Peripheral Output 15 */
803 kTopEnglishbreakfastPinmuxOutselGpioGpio16 = 19, /**< Peripheral Output 16 */
804 kTopEnglishbreakfastPinmuxOutselGpioGpio17 = 20, /**< Peripheral Output 17 */
805 kTopEnglishbreakfastPinmuxOutselGpioGpio18 = 21, /**< Peripheral Output 18 */
806 kTopEnglishbreakfastPinmuxOutselGpioGpio19 = 22, /**< Peripheral Output 19 */
807 kTopEnglishbreakfastPinmuxOutselGpioGpio20 = 23, /**< Peripheral Output 20 */
808 kTopEnglishbreakfastPinmuxOutselGpioGpio21 = 24, /**< Peripheral Output 21 */
809 kTopEnglishbreakfastPinmuxOutselGpioGpio22 = 25, /**< Peripheral Output 22 */
810 kTopEnglishbreakfastPinmuxOutselGpioGpio23 = 26, /**< Peripheral Output 23 */
811 kTopEnglishbreakfastPinmuxOutselGpioGpio24 = 27, /**< Peripheral Output 24 */
812 kTopEnglishbreakfastPinmuxOutselGpioGpio25 = 28, /**< Peripheral Output 25 */
813 kTopEnglishbreakfastPinmuxOutselGpioGpio26 = 29, /**< Peripheral Output 26 */
814 kTopEnglishbreakfastPinmuxOutselGpioGpio27 = 30, /**< Peripheral Output 27 */
815 kTopEnglishbreakfastPinmuxOutselGpioGpio28 = 31, /**< Peripheral Output 28 */
816 kTopEnglishbreakfastPinmuxOutselGpioGpio29 = 32, /**< Peripheral Output 29 */
817 kTopEnglishbreakfastPinmuxOutselGpioGpio30 = 33, /**< Peripheral Output 30 */
818 kTopEnglishbreakfastPinmuxOutselGpioGpio31 = 34, /**< Peripheral Output 31 */
819 kTopEnglishbreakfastPinmuxOutselUart0Tx = 35, /**< Peripheral Output 32 */
820 kTopEnglishbreakfastPinmuxOutselUart1Tx = 36, /**< Peripheral Output 33 */
821 kTopEnglishbreakfastPinmuxOutselFlashCtrlTdo = 37, /**< Peripheral Output 34 */
822 kTopEnglishbreakfastPinmuxOutselLast = 37, /**< \internal Last valid outsel value */
824
825/**
826 * Dedicated Pad Selects
827 */
829 kTopEnglishbreakfastDirectPadsSpiHost0Sd0 = 0, /**< */
830 kTopEnglishbreakfastDirectPadsSpiHost0Sd1 = 1, /**< */
831 kTopEnglishbreakfastDirectPadsSpiHost0Sd2 = 2, /**< */
832 kTopEnglishbreakfastDirectPadsSpiHost0Sd3 = 3, /**< */
833 kTopEnglishbreakfastDirectPadsSpiDeviceSd0 = 4, /**< */
834 kTopEnglishbreakfastDirectPadsSpiDeviceSd1 = 5, /**< */
835 kTopEnglishbreakfastDirectPadsSpiDeviceSd2 = 6, /**< */
836 kTopEnglishbreakfastDirectPadsSpiDeviceSd3 = 7, /**< */
837 kTopEnglishbreakfastDirectPadsUsbdevUsbDp = 8, /**< */
838 kTopEnglishbreakfastDirectPadsUsbdevUsbDn = 9, /**< */
839 kTopEnglishbreakfastDirectPadsSpiDeviceSck = 10, /**< */
840 kTopEnglishbreakfastDirectPadsSpiDeviceCsb = 11, /**< */
841 kTopEnglishbreakfastDirectPadsSpiHost0Sck = 12, /**< */
842 kTopEnglishbreakfastDirectPadsSpiHost0Csb = 13, /**< */
843 kTopEnglishbreakfastDirectPadsLast = 13, /**< \internal Last valid direct pad */
845
846/**
847 * Muxed Pad Selects
848 */
850 kTopEnglishbreakfastMuxedPadsIoa0 = 0, /**< */
851 kTopEnglishbreakfastMuxedPadsIoa1 = 1, /**< */
852 kTopEnglishbreakfastMuxedPadsIoa2 = 2, /**< */
853 kTopEnglishbreakfastMuxedPadsIoa3 = 3, /**< */
854 kTopEnglishbreakfastMuxedPadsIoa4 = 4, /**< */
855 kTopEnglishbreakfastMuxedPadsIoa5 = 5, /**< */
856 kTopEnglishbreakfastMuxedPadsIoa6 = 6, /**< */
857 kTopEnglishbreakfastMuxedPadsIoa7 = 7, /**< */
858 kTopEnglishbreakfastMuxedPadsIoa8 = 8, /**< */
859 kTopEnglishbreakfastMuxedPadsIob0 = 9, /**< */
860 kTopEnglishbreakfastMuxedPadsIob1 = 10, /**< */
861 kTopEnglishbreakfastMuxedPadsIob2 = 11, /**< */
862 kTopEnglishbreakfastMuxedPadsIob3 = 12, /**< */
863 kTopEnglishbreakfastMuxedPadsIob4 = 13, /**< */
864 kTopEnglishbreakfastMuxedPadsIob5 = 14, /**< */
865 kTopEnglishbreakfastMuxedPadsIob6 = 15, /**< */
866 kTopEnglishbreakfastMuxedPadsIob7 = 16, /**< */
867 kTopEnglishbreakfastMuxedPadsIob8 = 17, /**< */
868 kTopEnglishbreakfastMuxedPadsIob9 = 18, /**< */
869 kTopEnglishbreakfastMuxedPadsIob10 = 19, /**< */
870 kTopEnglishbreakfastMuxedPadsIob11 = 20, /**< */
871 kTopEnglishbreakfastMuxedPadsIob12 = 21, /**< */
872 kTopEnglishbreakfastMuxedPadsIoc0 = 22, /**< */
873 kTopEnglishbreakfastMuxedPadsIoc1 = 23, /**< */
874 kTopEnglishbreakfastMuxedPadsIoc2 = 24, /**< */
875 kTopEnglishbreakfastMuxedPadsIoc3 = 25, /**< */
876 kTopEnglishbreakfastMuxedPadsIoc4 = 26, /**< */
877 kTopEnglishbreakfastMuxedPadsIoc5 = 27, /**< */
878 kTopEnglishbreakfastMuxedPadsIoc6 = 28, /**< */
879 kTopEnglishbreakfastMuxedPadsIoc7 = 29, /**< */
880 kTopEnglishbreakfastMuxedPadsIoc8 = 30, /**< */
881 kTopEnglishbreakfastMuxedPadsIoc9 = 31, /**< */
882 kTopEnglishbreakfastMuxedPadsIoc10 = 32, /**< */
883 kTopEnglishbreakfastMuxedPadsIoc11 = 33, /**< */
884 kTopEnglishbreakfastMuxedPadsIoc12 = 34, /**< */
885 kTopEnglishbreakfastMuxedPadsIor0 = 35, /**< */
886 kTopEnglishbreakfastMuxedPadsIor1 = 36, /**< */
887 kTopEnglishbreakfastMuxedPadsIor2 = 37, /**< */
888 kTopEnglishbreakfastMuxedPadsIor3 = 38, /**< */
889 kTopEnglishbreakfastMuxedPadsIor4 = 39, /**< */
890 kTopEnglishbreakfastMuxedPadsIor5 = 40, /**< */
891 kTopEnglishbreakfastMuxedPadsIor6 = 41, /**< */
892 kTopEnglishbreakfastMuxedPadsIor7 = 42, /**< */
893 kTopEnglishbreakfastMuxedPadsIor10 = 43, /**< */
894 kTopEnglishbreakfastMuxedPadsIor11 = 44, /**< */
895 kTopEnglishbreakfastMuxedPadsIor12 = 45, /**< */
896 kTopEnglishbreakfastMuxedPadsIor13 = 46, /**< */
897 kTopEnglishbreakfastMuxedPadsLast = 46, /**< \internal Last valid muxed pad */
899
900/**
901 * Power Manager Wakeup Signals
902 */
904 kTopEnglishbreakfastPowerManagerWakeUpsPinmuxAonPinWkupReq = 0, /**< */
905 kTopEnglishbreakfastPowerManagerWakeUpsPinmuxAonUsbWkupReq = 1, /**< */
906 kTopEnglishbreakfastPowerManagerWakeUpsAonTimerAonWkupReq = 2, /**< */
907 kTopEnglishbreakfastPowerManagerWakeUpsLast = 2, /**< \internal Last valid pwrmgr wakeup signal */
909
910/**
911 * Reset Manager Software Controlled Resets
912 */
914 kTopEnglishbreakfastResetManagerSwResetsSpiDevice = 0, /**< */
915 kTopEnglishbreakfastResetManagerSwResetsSpiHost0 = 1, /**< */
916 kTopEnglishbreakfastResetManagerSwResetsUsb = 2, /**< */
917 kTopEnglishbreakfastResetManagerSwResetsLast = 2, /**< \internal Last valid rstmgr software reset request */
919
920/**
921 * Power Manager Reset Request Signals
922 */
924 kTopEnglishbreakfastPowerManagerResetRequestsAonTimerAonAonTimerRstReq = 0, /**< */
925 kTopEnglishbreakfastPowerManagerResetRequestsLast = 0, /**< \internal Last valid pwrmgr reset_request signal */
927
928/**
929 * Clock Manager Software-Controlled ("Gated") Clocks.
930 *
931 * The Software has full control over these clocks.
932 */
934 kTopEnglishbreakfastGateableClocksIoDiv4Peri = 0, /**< Clock clk_io_div4_peri in group peri */
935 kTopEnglishbreakfastGateableClocksIoDiv2Peri = 1, /**< Clock clk_io_div2_peri in group peri */
936 kTopEnglishbreakfastGateableClocksIoPeri = 2, /**< Clock clk_io_peri in group peri */
937 kTopEnglishbreakfastGateableClocksUsbPeri = 3, /**< Clock clk_usb_peri in group peri */
938 kTopEnglishbreakfastGateableClocksLast = 3, /**< \internal Last Valid Gateable Clock */
940
941/**
942 * Clock Manager Software-Hinted Clocks.
943 *
944 * The Software has partial control over these clocks. It can ask them to stop,
945 * but the clock manager is in control of whether the clock actually is stopped.
946 */
948 kTopEnglishbreakfastHintableClocksMainAes = 0, /**< Clock clk_main_aes in group trans */
949 kTopEnglishbreakfastHintableClocksLast = 0, /**< \internal Last Valid Hintable Clock */
951
952/**
953 * MMIO Region
954 *
955 * MMIO region excludes any memory that is separate from the module
956 * configuration space, i.e. ROM, main SRAM, and flash are excluded but
957 * retention SRAM, spi_device memory, or usbdev memory are included.
958 */
959#define TOP_ENGLISHBREAKFAST_MMIO_BASE_ADDR 0x40000000u
960#define TOP_ENGLISHBREAKFAST_MMIO_SIZE_BYTES 0x10000000u
961
962// Header Extern Guard
963#ifdef __cplusplus
964} // extern "C"
965#endif
966
967#endif // OPENTITAN_HW_TOP_ENGLISHBREAKFAST_SW_AUTOGEN_TOP_ENGLISHBREAKFAST_H_