blob: 62926bee61d4dfcc028781ec60921f1bb53fffc6 [file] [log] [blame]
Eunchan Kim769065e2019-10-29 17:29:26 -07001// Copyright lowRISC contributors.
2// Licensed under the Apache License, Version 2.0, see LICENSE for details.
3// SPDX-License-Identifier: Apache-2.0
4
Sam Elliott37d4fbe2020-04-22 14:05:49 +01005#ifndef OPENTITAN_HW_TOP_EARLGREY_SW_AUTOGEN_TOP_EARLGREY_H_
6#define OPENTITAN_HW_TOP_EARLGREY_SW_AUTOGEN_TOP_EARLGREY_H_
Eunchan Kim769065e2019-10-29 17:29:26 -07007
Sam Elliott2c6684c2020-08-24 18:49:54 +01008/**
9 * @file
10 * @brief Top-specific Definitions
11 *
12 * This file contains preprocessor and type definitions for use within the
13 * device C/C++ codebase.
14 *
15 * These definitions are for information that depends on the top-specific chip
16 * configuration, which includes:
17 * - Device Memory Information (for Peripherals and Memory)
18 * - PLIC Interrupt ID Names and Source Mappings
19 * - Alert ID Names and Source Mappings
20 * - Pinmux Pin/Select Names
21 * - Power Manager Wakeups
22 */
23
Sam Elliott611be612020-05-22 12:51:02 +010024#ifdef __cplusplus
25extern "C" {
26#endif
27
Sam Elliott7e36bd72020-04-22 14:05:49 +010028/**
Timothy Chen2971a1e2021-01-21 16:00:01 -080029 * Peripheral base address for uart0 in top earlgrey.
Sam Elliott7fe0fb02020-04-22 19:41:51 +010030 *
31 * This should be used with #mmio_region_from_addr to access the memory-mapped
32 * registers associated with the peripheral (usually via a DIF).
33 */
Timothy Chen2971a1e2021-01-21 16:00:01 -080034#define TOP_EARLGREY_UART0_BASE_ADDR 0x40000000u
Sam Elliott7fe0fb02020-04-22 19:41:51 +010035
36/**
Timothy Chen2971a1e2021-01-21 16:00:01 -080037 * Peripheral size for uart0 in top earlgrey.
Sam Elliott5accf702020-05-11 18:59:22 +010038 *
39 * This is the size (in bytes) of the peripheral's reserved memory area. All
40 * memory-mapped registers associated with this peripheral should have an
Timothy Chen2971a1e2021-01-21 16:00:01 -080041 * address between #TOP_EARLGREY_UART0_BASE_ADDR and
42 * `TOP_EARLGREY_UART0_BASE_ADDR + TOP_EARLGREY_UART0_SIZE_BYTES`.
Sam Elliott5accf702020-05-11 18:59:22 +010043 */
Timothy Chen2971a1e2021-01-21 16:00:01 -080044#define TOP_EARLGREY_UART0_SIZE_BYTES 0x1000u
45
46/**
47 * Peripheral base address for uart1 in top earlgrey.
48 *
49 * This should be used with #mmio_region_from_addr to access the memory-mapped
50 * registers associated with the peripheral (usually via a DIF).
51 */
52#define TOP_EARLGREY_UART1_BASE_ADDR 0x40010000u
53
54/**
55 * Peripheral size for uart1 in top earlgrey.
56 *
57 * This is the size (in bytes) of the peripheral's reserved memory area. All
58 * memory-mapped registers associated with this peripheral should have an
59 * address between #TOP_EARLGREY_UART1_BASE_ADDR and
60 * `TOP_EARLGREY_UART1_BASE_ADDR + TOP_EARLGREY_UART1_SIZE_BYTES`.
61 */
62#define TOP_EARLGREY_UART1_SIZE_BYTES 0x1000u
63
64/**
65 * Peripheral base address for uart2 in top earlgrey.
66 *
67 * This should be used with #mmio_region_from_addr to access the memory-mapped
68 * registers associated with the peripheral (usually via a DIF).
69 */
70#define TOP_EARLGREY_UART2_BASE_ADDR 0x40020000u
71
72/**
73 * Peripheral size for uart2 in top earlgrey.
74 *
75 * This is the size (in bytes) of the peripheral's reserved memory area. All
76 * memory-mapped registers associated with this peripheral should have an
77 * address between #TOP_EARLGREY_UART2_BASE_ADDR and
78 * `TOP_EARLGREY_UART2_BASE_ADDR + TOP_EARLGREY_UART2_SIZE_BYTES`.
79 */
80#define TOP_EARLGREY_UART2_SIZE_BYTES 0x1000u
81
82/**
83 * Peripheral base address for uart3 in top earlgrey.
84 *
85 * This should be used with #mmio_region_from_addr to access the memory-mapped
86 * registers associated with the peripheral (usually via a DIF).
87 */
88#define TOP_EARLGREY_UART3_BASE_ADDR 0x40030000u
89
90/**
91 * Peripheral size for uart3 in top earlgrey.
92 *
93 * This is the size (in bytes) of the peripheral's reserved memory area. All
94 * memory-mapped registers associated with this peripheral should have an
95 * address between #TOP_EARLGREY_UART3_BASE_ADDR and
96 * `TOP_EARLGREY_UART3_BASE_ADDR + TOP_EARLGREY_UART3_SIZE_BYTES`.
97 */
98#define TOP_EARLGREY_UART3_SIZE_BYTES 0x1000u
Sam Elliott5accf702020-05-11 18:59:22 +010099
100/**
101 * Peripheral base address for gpio in top earlgrey.
Sam Elliott7fe0fb02020-04-22 19:41:51 +0100102 *
103 * This should be used with #mmio_region_from_addr to access the memory-mapped
104 * registers associated with the peripheral (usually via a DIF).
105 */
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800106#define TOP_EARLGREY_GPIO_BASE_ADDR 0x40040000u
Sam Elliott7fe0fb02020-04-22 19:41:51 +0100107
108/**
Sam Elliott5accf702020-05-11 18:59:22 +0100109 * Peripheral size for gpio in top earlgrey.
110 *
111 * This is the size (in bytes) of the peripheral's reserved memory area. All
112 * memory-mapped registers associated with this peripheral should have an
113 * address between #TOP_EARLGREY_GPIO_BASE_ADDR and
114 * `TOP_EARLGREY_GPIO_BASE_ADDR + TOP_EARLGREY_GPIO_SIZE_BYTES`.
115 */
116#define TOP_EARLGREY_GPIO_SIZE_BYTES 0x1000u
117
118/**
119 * Peripheral base address for spi_device in top earlgrey.
Sam Elliott7fe0fb02020-04-22 19:41:51 +0100120 *
121 * This should be used with #mmio_region_from_addr to access the memory-mapped
122 * registers associated with the peripheral (usually via a DIF).
123 */
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800124#define TOP_EARLGREY_SPI_DEVICE_BASE_ADDR 0x40050000u
Sam Elliott7fe0fb02020-04-22 19:41:51 +0100125
126/**
Sam Elliott5accf702020-05-11 18:59:22 +0100127 * Peripheral size for spi_device in top earlgrey.
128 *
129 * This is the size (in bytes) of the peripheral's reserved memory area. All
130 * memory-mapped registers associated with this peripheral should have an
131 * address between #TOP_EARLGREY_SPI_DEVICE_BASE_ADDR and
132 * `TOP_EARLGREY_SPI_DEVICE_BASE_ADDR + TOP_EARLGREY_SPI_DEVICE_SIZE_BYTES`.
133 */
Eunchan Kimc8b06fb2021-02-02 10:21:19 -0800134#define TOP_EARLGREY_SPI_DEVICE_SIZE_BYTES 0x2000u
Sam Elliott5accf702020-05-11 18:59:22 +0100135
136/**
Michael Schaffnerdbd087e2021-02-12 17:58:30 -0800137 * Peripheral base address for spi_host0 in top earlgrey.
138 *
139 * This should be used with #mmio_region_from_addr to access the memory-mapped
140 * registers associated with the peripheral (usually via a DIF).
141 */
142#define TOP_EARLGREY_SPI_HOST0_BASE_ADDR 0x40060000u
143
144/**
145 * Peripheral size for spi_host0 in top earlgrey.
146 *
147 * This is the size (in bytes) of the peripheral's reserved memory area. All
148 * memory-mapped registers associated with this peripheral should have an
149 * address between #TOP_EARLGREY_SPI_HOST0_BASE_ADDR and
150 * `TOP_EARLGREY_SPI_HOST0_BASE_ADDR + TOP_EARLGREY_SPI_HOST0_SIZE_BYTES`.
151 */
152#define TOP_EARLGREY_SPI_HOST0_SIZE_BYTES 0x1000u
153
154/**
155 * Peripheral base address for spi_host1 in top earlgrey.
156 *
157 * This should be used with #mmio_region_from_addr to access the memory-mapped
158 * registers associated with the peripheral (usually via a DIF).
159 */
160#define TOP_EARLGREY_SPI_HOST1_BASE_ADDR 0x40070000u
161
162/**
163 * Peripheral size for spi_host1 in top earlgrey.
164 *
165 * This is the size (in bytes) of the peripheral's reserved memory area. All
166 * memory-mapped registers associated with this peripheral should have an
167 * address between #TOP_EARLGREY_SPI_HOST1_BASE_ADDR and
168 * `TOP_EARLGREY_SPI_HOST1_BASE_ADDR + TOP_EARLGREY_SPI_HOST1_SIZE_BYTES`.
169 */
170#define TOP_EARLGREY_SPI_HOST1_SIZE_BYTES 0x1000u
171
172/**
Timothy Chen469a3032021-02-01 15:44:09 -0800173 * Peripheral base address for i2c0 in top earlgrey.
174 *
175 * This should be used with #mmio_region_from_addr to access the memory-mapped
176 * registers associated with the peripheral (usually via a DIF).
177 */
178#define TOP_EARLGREY_I2C0_BASE_ADDR 0x40080000u
179
180/**
181 * Peripheral size for i2c0 in top earlgrey.
182 *
183 * This is the size (in bytes) of the peripheral's reserved memory area. All
184 * memory-mapped registers associated with this peripheral should have an
185 * address between #TOP_EARLGREY_I2C0_BASE_ADDR and
186 * `TOP_EARLGREY_I2C0_BASE_ADDR + TOP_EARLGREY_I2C0_SIZE_BYTES`.
187 */
188#define TOP_EARLGREY_I2C0_SIZE_BYTES 0x1000u
189
190/**
191 * Peripheral base address for i2c1 in top earlgrey.
192 *
193 * This should be used with #mmio_region_from_addr to access the memory-mapped
194 * registers associated with the peripheral (usually via a DIF).
195 */
196#define TOP_EARLGREY_I2C1_BASE_ADDR 0x40090000u
197
198/**
199 * Peripheral size for i2c1 in top earlgrey.
200 *
201 * This is the size (in bytes) of the peripheral's reserved memory area. All
202 * memory-mapped registers associated with this peripheral should have an
203 * address between #TOP_EARLGREY_I2C1_BASE_ADDR and
204 * `TOP_EARLGREY_I2C1_BASE_ADDR + TOP_EARLGREY_I2C1_SIZE_BYTES`.
205 */
206#define TOP_EARLGREY_I2C1_SIZE_BYTES 0x1000u
207
208/**
209 * Peripheral base address for i2c2 in top earlgrey.
210 *
211 * This should be used with #mmio_region_from_addr to access the memory-mapped
212 * registers associated with the peripheral (usually via a DIF).
213 */
214#define TOP_EARLGREY_I2C2_BASE_ADDR 0x400A0000u
215
216/**
217 * Peripheral size for i2c2 in top earlgrey.
218 *
219 * This is the size (in bytes) of the peripheral's reserved memory area. All
220 * memory-mapped registers associated with this peripheral should have an
221 * address between #TOP_EARLGREY_I2C2_BASE_ADDR and
222 * `TOP_EARLGREY_I2C2_BASE_ADDR + TOP_EARLGREY_I2C2_SIZE_BYTES`.
223 */
224#define TOP_EARLGREY_I2C2_SIZE_BYTES 0x1000u
225
226/**
227 * Peripheral base address for pattgen in top earlgrey.
228 *
229 * This should be used with #mmio_region_from_addr to access the memory-mapped
230 * registers associated with the peripheral (usually via a DIF).
231 */
232#define TOP_EARLGREY_PATTGEN_BASE_ADDR 0x400E0000u
233
234/**
235 * Peripheral size for pattgen in top earlgrey.
236 *
237 * This is the size (in bytes) of the peripheral's reserved memory area. All
238 * memory-mapped registers associated with this peripheral should have an
239 * address between #TOP_EARLGREY_PATTGEN_BASE_ADDR and
240 * `TOP_EARLGREY_PATTGEN_BASE_ADDR + TOP_EARLGREY_PATTGEN_SIZE_BYTES`.
241 */
242#define TOP_EARLGREY_PATTGEN_SIZE_BYTES 0x1000u
243
244/**
Sam Elliott5accf702020-05-11 18:59:22 +0100245 * Peripheral base address for rv_timer in top earlgrey.
Sam Elliott7fe0fb02020-04-22 19:41:51 +0100246 *
247 * This should be used with #mmio_region_from_addr to access the memory-mapped
248 * registers associated with the peripheral (usually via a DIF).
249 */
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800250#define TOP_EARLGREY_RV_TIMER_BASE_ADDR 0x40100000u
Sam Elliott7fe0fb02020-04-22 19:41:51 +0100251
252/**
Sam Elliott5accf702020-05-11 18:59:22 +0100253 * Peripheral size for rv_timer in top earlgrey.
254 *
255 * This is the size (in bytes) of the peripheral's reserved memory area. All
256 * memory-mapped registers associated with this peripheral should have an
257 * address between #TOP_EARLGREY_RV_TIMER_BASE_ADDR and
258 * `TOP_EARLGREY_RV_TIMER_BASE_ADDR + TOP_EARLGREY_RV_TIMER_SIZE_BYTES`.
259 */
260#define TOP_EARLGREY_RV_TIMER_SIZE_BYTES 0x1000u
261
262/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800263 * Peripheral base address for usbdev in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800264 *
265 * This should be used with #mmio_region_from_addr to access the memory-mapped
266 * registers associated with the peripheral (usually via a DIF).
267 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800268#define TOP_EARLGREY_USBDEV_BASE_ADDR 0x40110000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800269
270/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800271 * Peripheral size for usbdev in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800272 *
273 * This is the size (in bytes) of the peripheral's reserved memory area. All
274 * memory-mapped registers associated with this peripheral should have an
Timothy Chen8aeeb492021-02-01 21:25:17 -0800275 * address between #TOP_EARLGREY_USBDEV_BASE_ADDR and
276 * `TOP_EARLGREY_USBDEV_BASE_ADDR + TOP_EARLGREY_USBDEV_SIZE_BYTES`.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800277 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800278#define TOP_EARLGREY_USBDEV_SIZE_BYTES 0x1000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800279
280/**
Michael Schaffner8b0b5b12021-07-08 12:28:10 -0700281 * Peripheral base address for core device on otp_ctrl in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800282 *
283 * This should be used with #mmio_region_from_addr to access the memory-mapped
284 * registers associated with the peripheral (usually via a DIF).
285 */
Michael Schaffner8b0b5b12021-07-08 12:28:10 -0700286#define TOP_EARLGREY_OTP_CTRL_CORE_BASE_ADDR 0x40130000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800287
288/**
Michael Schaffner8b0b5b12021-07-08 12:28:10 -0700289 * Peripheral size for core device on otp_ctrl in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800290 *
291 * This is the size (in bytes) of the peripheral's reserved memory area. All
292 * memory-mapped registers associated with this peripheral should have an
Michael Schaffner8b0b5b12021-07-08 12:28:10 -0700293 * address between #TOP_EARLGREY_OTP_CTRL_CORE_BASE_ADDR and
294 * `TOP_EARLGREY_OTP_CTRL_CORE_BASE_ADDR + TOP_EARLGREY_OTP_CTRL_CORE_SIZE_BYTES`.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800295 */
Michael Schaffner8b0b5b12021-07-08 12:28:10 -0700296#define TOP_EARLGREY_OTP_CTRL_CORE_SIZE_BYTES 0x2000u
297
298/**
299 * Peripheral base address for prim device on otp_ctrl in top earlgrey.
300 *
301 * This should be used with #mmio_region_from_addr to access the memory-mapped
302 * registers associated with the peripheral (usually via a DIF).
303 */
304#define TOP_EARLGREY_OTP_CTRL_PRIM_BASE_ADDR 0x40132000u
305
306/**
307 * Peripheral size for prim device on otp_ctrl in top earlgrey.
308 *
309 * This is the size (in bytes) of the peripheral's reserved memory area. All
310 * memory-mapped registers associated with this peripheral should have an
311 * address between #TOP_EARLGREY_OTP_CTRL_PRIM_BASE_ADDR and
312 * `TOP_EARLGREY_OTP_CTRL_PRIM_BASE_ADDR + TOP_EARLGREY_OTP_CTRL_PRIM_SIZE_BYTES`.
313 */
314#define TOP_EARLGREY_OTP_CTRL_PRIM_SIZE_BYTES 0x1000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800315
316/**
Michael Schaffner6d3d6a02020-12-11 13:52:51 -0800317 * Peripheral base address for lc_ctrl in top earlgrey.
318 *
319 * This should be used with #mmio_region_from_addr to access the memory-mapped
320 * registers associated with the peripheral (usually via a DIF).
321 */
322#define TOP_EARLGREY_LC_CTRL_BASE_ADDR 0x40140000u
323
324/**
325 * Peripheral size for lc_ctrl in top earlgrey.
326 *
327 * This is the size (in bytes) of the peripheral's reserved memory area. All
328 * memory-mapped registers associated with this peripheral should have an
329 * address between #TOP_EARLGREY_LC_CTRL_BASE_ADDR and
330 * `TOP_EARLGREY_LC_CTRL_BASE_ADDR + TOP_EARLGREY_LC_CTRL_SIZE_BYTES`.
331 */
332#define TOP_EARLGREY_LC_CTRL_SIZE_BYTES 0x1000u
333
334/**
Michael Schaffnerd1fc7d12020-12-21 12:52:23 -0800335 * Peripheral base address for alert_handler in top earlgrey.
336 *
337 * This should be used with #mmio_region_from_addr to access the memory-mapped
338 * registers associated with the peripheral (usually via a DIF).
339 */
340#define TOP_EARLGREY_ALERT_HANDLER_BASE_ADDR 0x40150000u
341
342/**
343 * Peripheral size for alert_handler in top earlgrey.
344 *
345 * This is the size (in bytes) of the peripheral's reserved memory area. All
346 * memory-mapped registers associated with this peripheral should have an
347 * address between #TOP_EARLGREY_ALERT_HANDLER_BASE_ADDR and
348 * `TOP_EARLGREY_ALERT_HANDLER_BASE_ADDR + TOP_EARLGREY_ALERT_HANDLER_SIZE_BYTES`.
349 */
350#define TOP_EARLGREY_ALERT_HANDLER_SIZE_BYTES 0x1000u
351
352/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800353 * Peripheral base address for pwrmgr_aon in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800354 *
355 * This should be used with #mmio_region_from_addr to access the memory-mapped
356 * registers associated with the peripheral (usually via a DIF).
357 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800358#define TOP_EARLGREY_PWRMGR_AON_BASE_ADDR 0x40400000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800359
360/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800361 * Peripheral size for pwrmgr_aon in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800362 *
363 * This is the size (in bytes) of the peripheral's reserved memory area. All
364 * memory-mapped registers associated with this peripheral should have an
Timothy Chen8aeeb492021-02-01 21:25:17 -0800365 * address between #TOP_EARLGREY_PWRMGR_AON_BASE_ADDR and
366 * `TOP_EARLGREY_PWRMGR_AON_BASE_ADDR + TOP_EARLGREY_PWRMGR_AON_SIZE_BYTES`.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800367 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800368#define TOP_EARLGREY_PWRMGR_AON_SIZE_BYTES 0x1000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800369
370/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800371 * Peripheral base address for rstmgr_aon in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800372 *
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 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800376#define TOP_EARLGREY_RSTMGR_AON_BASE_ADDR 0x40410000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800377
378/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800379 * Peripheral size for rstmgr_aon in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800380 *
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
Timothy Chen8aeeb492021-02-01 21:25:17 -0800383 * address between #TOP_EARLGREY_RSTMGR_AON_BASE_ADDR and
384 * `TOP_EARLGREY_RSTMGR_AON_BASE_ADDR + TOP_EARLGREY_RSTMGR_AON_SIZE_BYTES`.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800385 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800386#define TOP_EARLGREY_RSTMGR_AON_SIZE_BYTES 0x1000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800387
388/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800389 * Peripheral base address for clkmgr_aon in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800390 *
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 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800394#define TOP_EARLGREY_CLKMGR_AON_BASE_ADDR 0x40420000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800395
396/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800397 * Peripheral size for clkmgr_aon in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800398 *
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
Timothy Chen8aeeb492021-02-01 21:25:17 -0800401 * address between #TOP_EARLGREY_CLKMGR_AON_BASE_ADDR and
402 * `TOP_EARLGREY_CLKMGR_AON_BASE_ADDR + TOP_EARLGREY_CLKMGR_AON_SIZE_BYTES`.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800403 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800404#define TOP_EARLGREY_CLKMGR_AON_SIZE_BYTES 0x1000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800405
406/**
Michael Schaffnere029a682021-04-06 16:21:30 -0700407 * Peripheral base address for sysrst_ctrl_aon in top earlgrey.
408 *
409 * This should be used with #mmio_region_from_addr to access the memory-mapped
410 * registers associated with the peripheral (usually via a DIF).
411 */
412#define TOP_EARLGREY_SYSRST_CTRL_AON_BASE_ADDR 0x40430000u
413
414/**
415 * Peripheral size for sysrst_ctrl_aon in top earlgrey.
416 *
417 * This is the size (in bytes) of the peripheral's reserved memory area. All
418 * memory-mapped registers associated with this peripheral should have an
419 * address between #TOP_EARLGREY_SYSRST_CTRL_AON_BASE_ADDR and
420 * `TOP_EARLGREY_SYSRST_CTRL_AON_BASE_ADDR + TOP_EARLGREY_SYSRST_CTRL_AON_SIZE_BYTES`.
421 */
422#define TOP_EARLGREY_SYSRST_CTRL_AON_SIZE_BYTES 0x1000u
423
424/**
Timothy Chen6f98f352021-03-10 16:27:29 -0800425 * Peripheral base address for adc_ctrl_aon in top earlgrey.
426 *
427 * This should be used with #mmio_region_from_addr to access the memory-mapped
428 * registers associated with the peripheral (usually via a DIF).
429 */
430#define TOP_EARLGREY_ADC_CTRL_AON_BASE_ADDR 0x40440000u
431
432/**
433 * Peripheral size for adc_ctrl_aon in top earlgrey.
434 *
435 * This is the size (in bytes) of the peripheral's reserved memory area. All
436 * memory-mapped registers associated with this peripheral should have an
437 * address between #TOP_EARLGREY_ADC_CTRL_AON_BASE_ADDR and
438 * `TOP_EARLGREY_ADC_CTRL_AON_BASE_ADDR + TOP_EARLGREY_ADC_CTRL_AON_SIZE_BYTES`.
439 */
440#define TOP_EARLGREY_ADC_CTRL_AON_SIZE_BYTES 0x1000u
441
442/**
Martin Lueker-Boden0d63fe02021-03-10 17:30:37 -0800443 * Peripheral base address for pwm_aon in top earlgrey.
444 *
445 * This should be used with #mmio_region_from_addr to access the memory-mapped
446 * registers associated with the peripheral (usually via a DIF).
447 */
448#define TOP_EARLGREY_PWM_AON_BASE_ADDR 0x40450000u
449
450/**
451 * Peripheral size for pwm_aon in top earlgrey.
452 *
453 * This is the size (in bytes) of the peripheral's reserved memory area. All
454 * memory-mapped registers associated with this peripheral should have an
455 * address between #TOP_EARLGREY_PWM_AON_BASE_ADDR and
456 * `TOP_EARLGREY_PWM_AON_BASE_ADDR + TOP_EARLGREY_PWM_AON_SIZE_BYTES`.
457 */
458#define TOP_EARLGREY_PWM_AON_SIZE_BYTES 0x1000u
459
460/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800461 * Peripheral base address for pinmux_aon in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800462 *
463 * This should be used with #mmio_region_from_addr to access the memory-mapped
464 * registers associated with the peripheral (usually via a DIF).
465 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800466#define TOP_EARLGREY_PINMUX_AON_BASE_ADDR 0x40460000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800467
468/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800469 * Peripheral size for pinmux_aon in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800470 *
471 * This is the size (in bytes) of the peripheral's reserved memory area. All
472 * memory-mapped registers associated with this peripheral should have an
Timothy Chen8aeeb492021-02-01 21:25:17 -0800473 * address between #TOP_EARLGREY_PINMUX_AON_BASE_ADDR and
474 * `TOP_EARLGREY_PINMUX_AON_BASE_ADDR + TOP_EARLGREY_PINMUX_AON_SIZE_BYTES`.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800475 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800476#define TOP_EARLGREY_PINMUX_AON_SIZE_BYTES 0x1000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800477
478/**
Timothy Chen2b8ef762021-02-16 14:44:55 -0800479 * Peripheral base address for aon_timer_aon in top earlgrey.
480 *
481 * This should be used with #mmio_region_from_addr to access the memory-mapped
482 * registers associated with the peripheral (usually via a DIF).
483 */
484#define TOP_EARLGREY_AON_TIMER_AON_BASE_ADDR 0x40470000u
485
486/**
487 * Peripheral size for aon_timer_aon in top earlgrey.
488 *
489 * This is the size (in bytes) of the peripheral's reserved memory area. All
490 * memory-mapped registers associated with this peripheral should have an
491 * address between #TOP_EARLGREY_AON_TIMER_AON_BASE_ADDR and
492 * `TOP_EARLGREY_AON_TIMER_AON_BASE_ADDR + TOP_EARLGREY_AON_TIMER_AON_SIZE_BYTES`.
493 */
494#define TOP_EARLGREY_AON_TIMER_AON_SIZE_BYTES 0x1000u
495
496/**
Timothy Chenb1966872021-03-01 22:39:01 -0800497 * Peripheral base address for ast in top earlgrey.
498 *
499 * This should be used with #mmio_region_from_addr to access the memory-mapped
500 * registers associated with the peripheral (usually via a DIF).
501 */
502#define TOP_EARLGREY_AST_BASE_ADDR 0x40480000u
503
504/**
505 * Peripheral size for ast in top earlgrey.
506 *
507 * This is the size (in bytes) of the peripheral's reserved memory area. All
508 * memory-mapped registers associated with this peripheral should have an
509 * address between #TOP_EARLGREY_AST_BASE_ADDR and
510 * `TOP_EARLGREY_AST_BASE_ADDR + TOP_EARLGREY_AST_SIZE_BYTES`.
511 */
512#define TOP_EARLGREY_AST_SIZE_BYTES 0x1000u
513
514/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800515 * Peripheral base address for sensor_ctrl_aon in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800516 *
517 * This should be used with #mmio_region_from_addr to access the memory-mapped
518 * registers associated with the peripheral (usually via a DIF).
519 */
Timothy Chen2b8ef762021-02-16 14:44:55 -0800520#define TOP_EARLGREY_SENSOR_CTRL_AON_BASE_ADDR 0x40490000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800521
522/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800523 * Peripheral size for sensor_ctrl_aon in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800524 *
525 * This is the size (in bytes) of the peripheral's reserved memory area. All
526 * memory-mapped registers associated with this peripheral should have an
Timothy Chen8aeeb492021-02-01 21:25:17 -0800527 * address between #TOP_EARLGREY_SENSOR_CTRL_AON_BASE_ADDR and
528 * `TOP_EARLGREY_SENSOR_CTRL_AON_BASE_ADDR + TOP_EARLGREY_SENSOR_CTRL_AON_SIZE_BYTES`.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800529 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800530#define TOP_EARLGREY_SENSOR_CTRL_AON_SIZE_BYTES 0x1000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800531
532/**
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700533 * Peripheral base address for regs device on sram_ctrl_ret_aon in top earlgrey.
Michael Schaffner9da4db82020-12-21 15:35:24 -0800534 *
535 * This should be used with #mmio_region_from_addr to access the memory-mapped
536 * registers associated with the peripheral (usually via a DIF).
537 */
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700538#define TOP_EARLGREY_SRAM_CTRL_RET_AON_REGS_BASE_ADDR 0x40500000u
Michael Schaffner9da4db82020-12-21 15:35:24 -0800539
540/**
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700541 * Peripheral size for regs device on sram_ctrl_ret_aon in top earlgrey.
Michael Schaffner9da4db82020-12-21 15:35:24 -0800542 *
543 * This is the size (in bytes) of the peripheral's reserved memory area. All
544 * memory-mapped registers associated with this peripheral should have an
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700545 * address between #TOP_EARLGREY_SRAM_CTRL_RET_AON_REGS_BASE_ADDR and
546 * `TOP_EARLGREY_SRAM_CTRL_RET_AON_REGS_BASE_ADDR + TOP_EARLGREY_SRAM_CTRL_RET_AON_REGS_SIZE_BYTES`.
Michael Schaffner9da4db82020-12-21 15:35:24 -0800547 */
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700548#define TOP_EARLGREY_SRAM_CTRL_RET_AON_REGS_SIZE_BYTES 0x1000u
549
550/**
551 * Peripheral base address for ram device on sram_ctrl_ret_aon in top earlgrey.
552 *
553 * This should be used with #mmio_region_from_addr to access the memory-mapped
554 * registers associated with the peripheral (usually via a DIF).
555 */
556#define TOP_EARLGREY_SRAM_CTRL_RET_AON_RAM_BASE_ADDR 0x40600000u
557
558/**
559 * Peripheral size for ram device on sram_ctrl_ret_aon in top earlgrey.
560 *
561 * This is the size (in bytes) of the peripheral's reserved memory area. All
562 * memory-mapped registers associated with this peripheral should have an
563 * address between #TOP_EARLGREY_SRAM_CTRL_RET_AON_RAM_BASE_ADDR and
564 * `TOP_EARLGREY_SRAM_CTRL_RET_AON_RAM_BASE_ADDR + TOP_EARLGREY_SRAM_CTRL_RET_AON_RAM_SIZE_BYTES`.
565 */
566#define TOP_EARLGREY_SRAM_CTRL_RET_AON_RAM_SIZE_BYTES 0x1000u
Michael Schaffner9da4db82020-12-21 15:35:24 -0800567
568/**
Timothy Chen76eb8832021-03-25 16:49:58 -0700569 * Peripheral base address for core device on flash_ctrl in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800570 *
571 * This should be used with #mmio_region_from_addr to access the memory-mapped
572 * registers associated with the peripheral (usually via a DIF).
573 */
Timothy Chen76eb8832021-03-25 16:49:58 -0700574#define TOP_EARLGREY_FLASH_CTRL_CORE_BASE_ADDR 0x41000000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800575
576/**
Timothy Chen76eb8832021-03-25 16:49:58 -0700577 * Peripheral size for core device on flash_ctrl in top earlgrey.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800578 *
579 * This is the size (in bytes) of the peripheral's reserved memory area. All
580 * memory-mapped registers associated with this peripheral should have an
Timothy Chen76eb8832021-03-25 16:49:58 -0700581 * address between #TOP_EARLGREY_FLASH_CTRL_CORE_BASE_ADDR and
582 * `TOP_EARLGREY_FLASH_CTRL_CORE_BASE_ADDR + TOP_EARLGREY_FLASH_CTRL_CORE_SIZE_BYTES`.
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800583 */
Timothy Chen76eb8832021-03-25 16:49:58 -0700584#define TOP_EARLGREY_FLASH_CTRL_CORE_SIZE_BYTES 0x1000u
585
586/**
587 * Peripheral base address for prim device on flash_ctrl in top earlgrey.
588 *
589 * This should be used with #mmio_region_from_addr to access the memory-mapped
590 * registers associated with the peripheral (usually via a DIF).
591 */
592#define TOP_EARLGREY_FLASH_CTRL_PRIM_BASE_ADDR 0x41008000u
593
594/**
595 * Peripheral size for prim device on flash_ctrl in top earlgrey.
596 *
597 * This is the size (in bytes) of the peripheral's reserved memory area. All
598 * memory-mapped registers associated with this peripheral should have an
599 * address between #TOP_EARLGREY_FLASH_CTRL_PRIM_BASE_ADDR and
600 * `TOP_EARLGREY_FLASH_CTRL_PRIM_BASE_ADDR + TOP_EARLGREY_FLASH_CTRL_PRIM_SIZE_BYTES`.
601 */
602#define TOP_EARLGREY_FLASH_CTRL_PRIM_SIZE_BYTES 0x1000u
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800603
604/**
Michael Schaffner690d7322021-06-24 14:37:22 -0700605 * Peripheral base address for regs device on rv_dm in top earlgrey.
606 *
607 * This should be used with #mmio_region_from_addr to access the memory-mapped
608 * registers associated with the peripheral (usually via a DIF).
609 */
610#define TOP_EARLGREY_RV_DM_REGS_BASE_ADDR 0x41200000u
611
612/**
613 * Peripheral size for regs device on rv_dm in top earlgrey.
614 *
615 * This is the size (in bytes) of the peripheral's reserved memory area. All
616 * memory-mapped registers associated with this peripheral should have an
617 * address between #TOP_EARLGREY_RV_DM_REGS_BASE_ADDR and
618 * `TOP_EARLGREY_RV_DM_REGS_BASE_ADDR + TOP_EARLGREY_RV_DM_REGS_SIZE_BYTES`.
619 */
620#define TOP_EARLGREY_RV_DM_REGS_SIZE_BYTES 0x1000u
621
622/**
623 * Peripheral base address for rom device on rv_dm in top earlgrey.
624 *
625 * This should be used with #mmio_region_from_addr to access the memory-mapped
626 * registers associated with the peripheral (usually via a DIF).
627 */
628#define TOP_EARLGREY_RV_DM_ROM_BASE_ADDR 0x10000u
629
630/**
631 * Peripheral size for rom device on rv_dm in top earlgrey.
632 *
633 * This is the size (in bytes) of the peripheral's reserved memory area. All
634 * memory-mapped registers associated with this peripheral should have an
635 * address between #TOP_EARLGREY_RV_DM_ROM_BASE_ADDR and
636 * `TOP_EARLGREY_RV_DM_ROM_BASE_ADDR + TOP_EARLGREY_RV_DM_ROM_SIZE_BYTES`.
637 */
638#define TOP_EARLGREY_RV_DM_ROM_SIZE_BYTES 0x1000u
639
640/**
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800641 * Peripheral base address for rv_plic in top earlgrey.
642 *
643 * This should be used with #mmio_region_from_addr to access the memory-mapped
644 * registers associated with the peripheral (usually via a DIF).
645 */
646#define TOP_EARLGREY_RV_PLIC_BASE_ADDR 0x41010000u
647
648/**
649 * Peripheral size for rv_plic in top earlgrey.
650 *
651 * This is the size (in bytes) of the peripheral's reserved memory area. All
652 * memory-mapped registers associated with this peripheral should have an
653 * address between #TOP_EARLGREY_RV_PLIC_BASE_ADDR and
654 * `TOP_EARLGREY_RV_PLIC_BASE_ADDR + TOP_EARLGREY_RV_PLIC_SIZE_BYTES`.
655 */
656#define TOP_EARLGREY_RV_PLIC_SIZE_BYTES 0x1000u
657
658/**
Sam Elliott5accf702020-05-11 18:59:22 +0100659 * Peripheral base address for aes in top earlgrey.
Sam Elliott7fe0fb02020-04-22 19:41:51 +0100660 *
661 * This should be used with #mmio_region_from_addr to access the memory-mapped
662 * registers associated with the peripheral (usually via a DIF).
663 */
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800664#define TOP_EARLGREY_AES_BASE_ADDR 0x41100000u
Sam Elliott7fe0fb02020-04-22 19:41:51 +0100665
666/**
Sam Elliott5accf702020-05-11 18:59:22 +0100667 * Peripheral size for aes in top earlgrey.
668 *
669 * This is the size (in bytes) of the peripheral's reserved memory area. All
670 * memory-mapped registers associated with this peripheral should have an
671 * address between #TOP_EARLGREY_AES_BASE_ADDR and
672 * `TOP_EARLGREY_AES_BASE_ADDR + TOP_EARLGREY_AES_SIZE_BYTES`.
673 */
674#define TOP_EARLGREY_AES_SIZE_BYTES 0x1000u
675
676/**
677 * Peripheral base address for hmac in top earlgrey.
Sam Elliott7fe0fb02020-04-22 19:41:51 +0100678 *
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 */
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800682#define TOP_EARLGREY_HMAC_BASE_ADDR 0x41110000u
Sam Elliott7fe0fb02020-04-22 19:41:51 +0100683
684/**
Sam Elliott5accf702020-05-11 18:59:22 +0100685 * Peripheral size for hmac in top earlgrey.
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_EARLGREY_HMAC_BASE_ADDR and
690 * `TOP_EARLGREY_HMAC_BASE_ADDR + TOP_EARLGREY_HMAC_SIZE_BYTES`.
691 */
692#define TOP_EARLGREY_HMAC_SIZE_BYTES 0x1000u
693
694/**
Eunchan Kime5d33b72020-11-03 14:34:16 -0800695 * Peripheral base address for kmac in top earlgrey.
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_EARLGREY_KMAC_BASE_ADDR 0x41120000u
701
702/**
703 * Peripheral size for kmac in top earlgrey.
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_EARLGREY_KMAC_BASE_ADDR and
708 * `TOP_EARLGREY_KMAC_BASE_ADDR + TOP_EARLGREY_KMAC_SIZE_BYTES`.
709 */
710#define TOP_EARLGREY_KMAC_SIZE_BYTES 0x1000u
711
712/**
Timothy Chen94953722020-09-18 16:15:12 -0700713 * Peripheral base address for keymgr in top earlgrey.
714 *
715 * This should be used with #mmio_region_from_addr to access the memory-mapped
716 * registers associated with the peripheral (usually via a DIF).
717 */
Martin Lueker-Bodend5a1e4b2020-11-11 19:46:33 -0800718#define TOP_EARLGREY_KEYMGR_BASE_ADDR 0x41130000u
Timothy Chen94953722020-09-18 16:15:12 -0700719
720/**
721 * Peripheral size for keymgr in top earlgrey.
722 *
723 * This is the size (in bytes) of the peripheral's reserved memory area. All
724 * memory-mapped registers associated with this peripheral should have an
725 * address between #TOP_EARLGREY_KEYMGR_BASE_ADDR and
726 * `TOP_EARLGREY_KEYMGR_BASE_ADDR + TOP_EARLGREY_KEYMGR_SIZE_BYTES`.
727 */
728#define TOP_EARLGREY_KEYMGR_SIZE_BYTES 0x1000u
729
730/**
Mark Branstadff807362020-11-16 07:56:15 -0800731 * Peripheral base address for csrng in top earlgrey.
732 *
733 * This should be used with #mmio_region_from_addr to access the memory-mapped
734 * registers associated with the peripheral (usually via a DIF).
735 */
736#define TOP_EARLGREY_CSRNG_BASE_ADDR 0x41150000u
737
738/**
739 * Peripheral size for csrng in top earlgrey.
740 *
741 * This is the size (in bytes) of the peripheral's reserved memory area. All
742 * memory-mapped registers associated with this peripheral should have an
743 * address between #TOP_EARLGREY_CSRNG_BASE_ADDR and
744 * `TOP_EARLGREY_CSRNG_BASE_ADDR + TOP_EARLGREY_CSRNG_SIZE_BYTES`.
745 */
746#define TOP_EARLGREY_CSRNG_SIZE_BYTES 0x1000u
747
748/**
749 * Peripheral base address for entropy_src in top earlgrey.
750 *
751 * This should be used with #mmio_region_from_addr to access the memory-mapped
752 * registers associated with the peripheral (usually via a DIF).
753 */
754#define TOP_EARLGREY_ENTROPY_SRC_BASE_ADDR 0x41160000u
755
756/**
757 * Peripheral size for entropy_src in top earlgrey.
758 *
759 * This is the size (in bytes) of the peripheral's reserved memory area. All
760 * memory-mapped registers associated with this peripheral should have an
761 * address between #TOP_EARLGREY_ENTROPY_SRC_BASE_ADDR and
762 * `TOP_EARLGREY_ENTROPY_SRC_BASE_ADDR + TOP_EARLGREY_ENTROPY_SRC_SIZE_BYTES`.
763 */
764#define TOP_EARLGREY_ENTROPY_SRC_SIZE_BYTES 0x1000u
765
766/**
767 * Peripheral base address for edn0 in top earlgrey.
768 *
769 * This should be used with #mmio_region_from_addr to access the memory-mapped
770 * registers associated with the peripheral (usually via a DIF).
771 */
772#define TOP_EARLGREY_EDN0_BASE_ADDR 0x41170000u
773
774/**
775 * Peripheral size for edn0 in top earlgrey.
776 *
777 * This is the size (in bytes) of the peripheral's reserved memory area. All
778 * memory-mapped registers associated with this peripheral should have an
779 * address between #TOP_EARLGREY_EDN0_BASE_ADDR and
780 * `TOP_EARLGREY_EDN0_BASE_ADDR + TOP_EARLGREY_EDN0_SIZE_BYTES`.
781 */
782#define TOP_EARLGREY_EDN0_SIZE_BYTES 0x1000u
783
784/**
785 * Peripheral base address for edn1 in top earlgrey.
786 *
787 * This should be used with #mmio_region_from_addr to access the memory-mapped
788 * registers associated with the peripheral (usually via a DIF).
789 */
790#define TOP_EARLGREY_EDN1_BASE_ADDR 0x41180000u
791
792/**
793 * Peripheral size for edn1 in top earlgrey.
794 *
795 * This is the size (in bytes) of the peripheral's reserved memory area. All
796 * memory-mapped registers associated with this peripheral should have an
797 * address between #TOP_EARLGREY_EDN1_BASE_ADDR and
798 * `TOP_EARLGREY_EDN1_BASE_ADDR + TOP_EARLGREY_EDN1_SIZE_BYTES`.
799 */
800#define TOP_EARLGREY_EDN1_SIZE_BYTES 0x1000u
801
802/**
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700803 * Peripheral base address for regs device on sram_ctrl_main in top earlgrey.
Michael Schaffner9da4db82020-12-21 15:35:24 -0800804 *
805 * This should be used with #mmio_region_from_addr to access the memory-mapped
806 * registers associated with the peripheral (usually via a DIF).
807 */
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700808#define TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_BASE_ADDR 0x411C0000u
Michael Schaffner9da4db82020-12-21 15:35:24 -0800809
810/**
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700811 * Peripheral size for regs device on sram_ctrl_main in top earlgrey.
Michael Schaffner9da4db82020-12-21 15:35:24 -0800812 *
813 * This is the size (in bytes) of the peripheral's reserved memory area. All
814 * memory-mapped registers associated with this peripheral should have an
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700815 * address between #TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_BASE_ADDR and
816 * `TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_BASE_ADDR + TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_SIZE_BYTES`.
Michael Schaffner9da4db82020-12-21 15:35:24 -0800817 */
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700818#define TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_SIZE_BYTES 0x1000u
819
820/**
821 * Peripheral base address for ram device on sram_ctrl_main in top earlgrey.
822 *
823 * This should be used with #mmio_region_from_addr to access the memory-mapped
824 * registers associated with the peripheral (usually via a DIF).
825 */
826#define TOP_EARLGREY_SRAM_CTRL_MAIN_RAM_BASE_ADDR 0x10000000u
827
828/**
829 * Peripheral size for ram device on sram_ctrl_main in top earlgrey.
830 *
831 * This is the size (in bytes) of the peripheral's reserved memory area. All
832 * memory-mapped registers associated with this peripheral should have an
833 * address between #TOP_EARLGREY_SRAM_CTRL_MAIN_RAM_BASE_ADDR and
834 * `TOP_EARLGREY_SRAM_CTRL_MAIN_RAM_BASE_ADDR + TOP_EARLGREY_SRAM_CTRL_MAIN_RAM_SIZE_BYTES`.
835 */
836#define TOP_EARLGREY_SRAM_CTRL_MAIN_RAM_SIZE_BYTES 0x20000u
Michael Schaffner9da4db82020-12-21 15:35:24 -0800837
838/**
Philipp Wagnera4a9e402020-06-22 12:06:56 +0100839 * Peripheral base address for otbn in top earlgrey.
840 *
841 * This should be used with #mmio_region_from_addr to access the memory-mapped
842 * registers associated with the peripheral (usually via a DIF).
843 */
Michael Schaffner9da4db82020-12-21 15:35:24 -0800844#define TOP_EARLGREY_OTBN_BASE_ADDR 0x411D0000u
Philipp Wagnera4a9e402020-06-22 12:06:56 +0100845
846/**
847 * Peripheral size for otbn in top earlgrey.
848 *
849 * This is the size (in bytes) of the peripheral's reserved memory area. All
850 * memory-mapped registers associated with this peripheral should have an
851 * address between #TOP_EARLGREY_OTBN_BASE_ADDR and
852 * `TOP_EARLGREY_OTBN_BASE_ADDR + TOP_EARLGREY_OTBN_SIZE_BYTES`.
853 */
Rupert Swarbrickcc3772d2020-11-23 11:30:07 +0000854#define TOP_EARLGREY_OTBN_SIZE_BYTES 0x10000u
Philipp Wagnera4a9e402020-06-22 12:06:56 +0100855
Rupert Swarbrick9855d4b2020-12-02 08:41:35 +0000856/**
857 * Peripheral base address for regs device on rom_ctrl in top earlgrey.
858 *
859 * This should be used with #mmio_region_from_addr to access the memory-mapped
860 * registers associated with the peripheral (usually via a DIF).
861 */
862#define TOP_EARLGREY_ROM_CTRL_REGS_BASE_ADDR 0x411E0000u
Sam Elliott5accf702020-05-11 18:59:22 +0100863
864/**
Rupert Swarbrick9855d4b2020-12-02 08:41:35 +0000865 * Peripheral size for regs device on rom_ctrl in top earlgrey.
866 *
867 * This is the size (in bytes) of the peripheral's reserved memory area. All
868 * memory-mapped registers associated with this peripheral should have an
869 * address between #TOP_EARLGREY_ROM_CTRL_REGS_BASE_ADDR and
870 * `TOP_EARLGREY_ROM_CTRL_REGS_BASE_ADDR + TOP_EARLGREY_ROM_CTRL_REGS_SIZE_BYTES`.
Sam Elliott5accf702020-05-11 18:59:22 +0100871 */
Rupert Swarbrick9855d4b2020-12-02 08:41:35 +0000872#define TOP_EARLGREY_ROM_CTRL_REGS_SIZE_BYTES 0x1000u
Sam Elliott5accf702020-05-11 18:59:22 +0100873
874/**
Rupert Swarbrick9855d4b2020-12-02 08:41:35 +0000875 * Peripheral base address for rom device on rom_ctrl in top earlgrey.
876 *
877 * This should be used with #mmio_region_from_addr to access the memory-mapped
878 * registers associated with the peripheral (usually via a DIF).
Sam Elliott5accf702020-05-11 18:59:22 +0100879 */
Rupert Swarbrick9855d4b2020-12-02 08:41:35 +0000880#define TOP_EARLGREY_ROM_CTRL_ROM_BASE_ADDR 0x8000u
881
882/**
883 * Peripheral size for rom device on rom_ctrl in top earlgrey.
884 *
885 * This is the size (in bytes) of the peripheral's reserved memory area. All
886 * memory-mapped registers associated with this peripheral should have an
887 * address between #TOP_EARLGREY_ROM_CTRL_ROM_BASE_ADDR and
888 * `TOP_EARLGREY_ROM_CTRL_ROM_BASE_ADDR + TOP_EARLGREY_ROM_CTRL_ROM_SIZE_BYTES`.
889 */
890#define TOP_EARLGREY_ROM_CTRL_ROM_SIZE_BYTES 0x4000u
891
Timothy Chen2a33c0a2021-06-25 13:34:37 -0700892/**
Timothy Chen2b0155a2021-07-19 18:27:20 -0700893 * Peripheral base address for cfg device on rv_core_ibex in top earlgrey.
Timothy Chen2a33c0a2021-06-25 13:34:37 -0700894 *
895 * This should be used with #mmio_region_from_addr to access the memory-mapped
896 * registers associated with the peripheral (usually via a DIF).
897 */
Timothy Chen2b0155a2021-07-19 18:27:20 -0700898#define TOP_EARLGREY_RV_CORE_IBEX_CFG_BASE_ADDR 0x411F0000u
Timothy Chen2a33c0a2021-06-25 13:34:37 -0700899
900/**
Timothy Chen2b0155a2021-07-19 18:27:20 -0700901 * Peripheral size for cfg device on rv_core_ibex in top earlgrey.
Timothy Chen2a33c0a2021-06-25 13:34:37 -0700902 *
903 * This is the size (in bytes) of the peripheral's reserved memory area. All
904 * memory-mapped registers associated with this peripheral should have an
Timothy Chen2b0155a2021-07-19 18:27:20 -0700905 * address between #TOP_EARLGREY_RV_CORE_IBEX_CFG_BASE_ADDR and
906 * `TOP_EARLGREY_RV_CORE_IBEX_CFG_BASE_ADDR + TOP_EARLGREY_RV_CORE_IBEX_CFG_SIZE_BYTES`.
Timothy Chen2a33c0a2021-06-25 13:34:37 -0700907 */
Timothy Chen2b0155a2021-07-19 18:27:20 -0700908#define TOP_EARLGREY_RV_CORE_IBEX_CFG_SIZE_BYTES 0x1000u
Timothy Chen2a33c0a2021-06-25 13:34:37 -0700909
Sam Elliott5accf702020-05-11 18:59:22 +0100910
911/**
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700912 * Memory base address for eflash in top earlgrey.
Sam Elliott5accf702020-05-11 18:59:22 +0100913 */
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700914#define TOP_EARLGREY_EFLASH_BASE_ADDR 0x20000000u
Sam Elliott5accf702020-05-11 18:59:22 +0100915
916/**
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700917 * Memory size for eflash in top earlgrey.
Sam Elliott5accf702020-05-11 18:59:22 +0100918 */
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700919#define TOP_EARLGREY_EFLASH_SIZE_BYTES 0x100000u
Sam Elliott5accf702020-05-11 18:59:22 +0100920
921/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800922 * Memory base address for ram_ret_aon in top earlgrey.
Timothy Chen6e2ba842020-06-29 15:04:13 -0700923 */
Silvestrs Timofejevsaf2b5c22021-02-05 10:33:18 +0000924#define TOP_EARLGREY_RAM_RET_AON_BASE_ADDR 0x40600000u
Timothy Chen6e2ba842020-06-29 15:04:13 -0700925
926/**
Timothy Chen8aeeb492021-02-01 21:25:17 -0800927 * Memory size for ram_ret_aon in top earlgrey.
Timothy Chen6e2ba842020-06-29 15:04:13 -0700928 */
Timothy Chen8aeeb492021-02-01 21:25:17 -0800929#define TOP_EARLGREY_RAM_RET_AON_SIZE_BYTES 0x1000u
Timothy Chen6e2ba842020-06-29 15:04:13 -0700930
931/**
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700932 * Memory base address for ram_main in top earlgrey.
Sam Elliott5accf702020-05-11 18:59:22 +0100933 */
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700934#define TOP_EARLGREY_RAM_MAIN_BASE_ADDR 0x10000000u
Sam Elliott5accf702020-05-11 18:59:22 +0100935
936/**
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700937 * Memory size for ram_main in top earlgrey.
Sam Elliott5accf702020-05-11 18:59:22 +0100938 */
Michael Schaffner4e7114e2021-07-02 17:57:11 -0700939#define TOP_EARLGREY_RAM_MAIN_SIZE_BYTES 0x20000u
Sam Elliott5accf702020-05-11 18:59:22 +0100940
Michael Schaffner02e982f2021-07-09 17:40:34 -0700941/**
942 * Memory base address for rom in top earlgrey.
943 */
944#define TOP_EARLGREY_ROM_BASE_ADDR 0x8000u
945
946/**
947 * Memory size for rom in top earlgrey.
948 */
949#define TOP_EARLGREY_ROM_SIZE_BYTES 0x4000u
950
Eunchan Kimfd561be2020-04-24 15:42:11 -0700951
Sam Elliott7fe0fb02020-04-22 19:41:51 +0100952/**
Sam Elliott7931f2f2020-07-24 23:21:41 +0100953 * PLIC Interrupt Source Peripheral.
Sam Elliott7e36bd72020-04-22 14:05:49 +0100954 *
955 * Enumeration used to determine which peripheral asserted the corresponding
956 * interrupt.
957 */
958typedef enum top_earlgrey_plic_peripheral {
Sam Elliott2a4448b2020-04-23 11:15:43 +0100959 kTopEarlgreyPlicPeripheralUnknown = 0, /**< Unknown Peripheral */
Timothy Chen2971a1e2021-01-21 16:00:01 -0800960 kTopEarlgreyPlicPeripheralUart0 = 1, /**< uart0 */
961 kTopEarlgreyPlicPeripheralUart1 = 2, /**< uart1 */
962 kTopEarlgreyPlicPeripheralUart2 = 3, /**< uart2 */
963 kTopEarlgreyPlicPeripheralUart3 = 4, /**< uart3 */
964 kTopEarlgreyPlicPeripheralGpio = 5, /**< gpio */
965 kTopEarlgreyPlicPeripheralSpiDevice = 6, /**< spi_device */
Rupert Swarbrick13cdb232021-03-09 15:34:53 +0000966 kTopEarlgreyPlicPeripheralSpiHost0 = 7, /**< spi_host0 */
967 kTopEarlgreyPlicPeripheralSpiHost1 = 8, /**< spi_host1 */
968 kTopEarlgreyPlicPeripheralI2c0 = 9, /**< i2c0 */
969 kTopEarlgreyPlicPeripheralI2c1 = 10, /**< i2c1 */
970 kTopEarlgreyPlicPeripheralI2c2 = 11, /**< i2c2 */
971 kTopEarlgreyPlicPeripheralPattgen = 12, /**< pattgen */
Michael Schaffner7d2b34b2021-08-12 14:37:27 -0700972 kTopEarlgreyPlicPeripheralRvTimer = 13, /**< rv_timer */
973 kTopEarlgreyPlicPeripheralUsbdev = 14, /**< usbdev */
974 kTopEarlgreyPlicPeripheralOtpCtrl = 15, /**< otp_ctrl */
975 kTopEarlgreyPlicPeripheralAlertHandler = 16, /**< alert_handler */
976 kTopEarlgreyPlicPeripheralPwrmgrAon = 17, /**< pwrmgr_aon */
977 kTopEarlgreyPlicPeripheralSysrstCtrlAon = 18, /**< sysrst_ctrl_aon */
978 kTopEarlgreyPlicPeripheralAdcCtrlAon = 19, /**< adc_ctrl_aon */
979 kTopEarlgreyPlicPeripheralAonTimerAon = 20, /**< aon_timer_aon */
980 kTopEarlgreyPlicPeripheralFlashCtrl = 21, /**< flash_ctrl */
981 kTopEarlgreyPlicPeripheralHmac = 22, /**< hmac */
982 kTopEarlgreyPlicPeripheralKmac = 23, /**< kmac */
983 kTopEarlgreyPlicPeripheralKeymgr = 24, /**< keymgr */
984 kTopEarlgreyPlicPeripheralCsrng = 25, /**< csrng */
985 kTopEarlgreyPlicPeripheralEntropySrc = 26, /**< entropy_src */
986 kTopEarlgreyPlicPeripheralEdn0 = 27, /**< edn0 */
987 kTopEarlgreyPlicPeripheralEdn1 = 28, /**< edn1 */
988 kTopEarlgreyPlicPeripheralOtbn = 29, /**< otbn */
989 kTopEarlgreyPlicPeripheralLast = 29, /**< \internal Final PLIC peripheral */
Sam Elliott7e36bd72020-04-22 14:05:49 +0100990} top_earlgrey_plic_peripheral_t;
991
992/**
Sam Elliott7931f2f2020-07-24 23:21:41 +0100993 * PLIC Interrupt Source.
Sam Elliott7e36bd72020-04-22 14:05:49 +0100994 *
Sam Elliott7931f2f2020-07-24 23:21:41 +0100995 * Enumeration of all PLIC interrupt sources. The interrupt sources belonging to
Sam Elliott7e36bd72020-04-22 14:05:49 +0100996 * the same peripheral are guaranteed to be consecutive.
997 */
998typedef enum top_earlgrey_plic_irq_id {
Sam Elliott2a4448b2020-04-23 11:15:43 +0100999 kTopEarlgreyPlicIrqIdNone = 0, /**< No Interrupt */
Timothy Chen2971a1e2021-01-21 16:00:01 -08001000 kTopEarlgreyPlicIrqIdUart0TxWatermark = 1, /**< uart0_tx_watermark */
1001 kTopEarlgreyPlicIrqIdUart0RxWatermark = 2, /**< uart0_rx_watermark */
1002 kTopEarlgreyPlicIrqIdUart0TxEmpty = 3, /**< uart0_tx_empty */
1003 kTopEarlgreyPlicIrqIdUart0RxOverflow = 4, /**< uart0_rx_overflow */
1004 kTopEarlgreyPlicIrqIdUart0RxFrameErr = 5, /**< uart0_rx_frame_err */
1005 kTopEarlgreyPlicIrqIdUart0RxBreakErr = 6, /**< uart0_rx_break_err */
1006 kTopEarlgreyPlicIrqIdUart0RxTimeout = 7, /**< uart0_rx_timeout */
1007 kTopEarlgreyPlicIrqIdUart0RxParityErr = 8, /**< uart0_rx_parity_err */
1008 kTopEarlgreyPlicIrqIdUart1TxWatermark = 9, /**< uart1_tx_watermark */
1009 kTopEarlgreyPlicIrqIdUart1RxWatermark = 10, /**< uart1_rx_watermark */
1010 kTopEarlgreyPlicIrqIdUart1TxEmpty = 11, /**< uart1_tx_empty */
1011 kTopEarlgreyPlicIrqIdUart1RxOverflow = 12, /**< uart1_rx_overflow */
1012 kTopEarlgreyPlicIrqIdUart1RxFrameErr = 13, /**< uart1_rx_frame_err */
1013 kTopEarlgreyPlicIrqIdUart1RxBreakErr = 14, /**< uart1_rx_break_err */
1014 kTopEarlgreyPlicIrqIdUart1RxTimeout = 15, /**< uart1_rx_timeout */
1015 kTopEarlgreyPlicIrqIdUart1RxParityErr = 16, /**< uart1_rx_parity_err */
1016 kTopEarlgreyPlicIrqIdUart2TxWatermark = 17, /**< uart2_tx_watermark */
1017 kTopEarlgreyPlicIrqIdUart2RxWatermark = 18, /**< uart2_rx_watermark */
1018 kTopEarlgreyPlicIrqIdUart2TxEmpty = 19, /**< uart2_tx_empty */
1019 kTopEarlgreyPlicIrqIdUart2RxOverflow = 20, /**< uart2_rx_overflow */
1020 kTopEarlgreyPlicIrqIdUart2RxFrameErr = 21, /**< uart2_rx_frame_err */
1021 kTopEarlgreyPlicIrqIdUart2RxBreakErr = 22, /**< uart2_rx_break_err */
1022 kTopEarlgreyPlicIrqIdUart2RxTimeout = 23, /**< uart2_rx_timeout */
1023 kTopEarlgreyPlicIrqIdUart2RxParityErr = 24, /**< uart2_rx_parity_err */
1024 kTopEarlgreyPlicIrqIdUart3TxWatermark = 25, /**< uart3_tx_watermark */
1025 kTopEarlgreyPlicIrqIdUart3RxWatermark = 26, /**< uart3_rx_watermark */
1026 kTopEarlgreyPlicIrqIdUart3TxEmpty = 27, /**< uart3_tx_empty */
1027 kTopEarlgreyPlicIrqIdUart3RxOverflow = 28, /**< uart3_rx_overflow */
1028 kTopEarlgreyPlicIrqIdUart3RxFrameErr = 29, /**< uart3_rx_frame_err */
1029 kTopEarlgreyPlicIrqIdUart3RxBreakErr = 30, /**< uart3_rx_break_err */
1030 kTopEarlgreyPlicIrqIdUart3RxTimeout = 31, /**< uart3_rx_timeout */
1031 kTopEarlgreyPlicIrqIdUart3RxParityErr = 32, /**< uart3_rx_parity_err */
1032 kTopEarlgreyPlicIrqIdGpioGpio0 = 33, /**< gpio_gpio 0 */
1033 kTopEarlgreyPlicIrqIdGpioGpio1 = 34, /**< gpio_gpio 1 */
1034 kTopEarlgreyPlicIrqIdGpioGpio2 = 35, /**< gpio_gpio 2 */
1035 kTopEarlgreyPlicIrqIdGpioGpio3 = 36, /**< gpio_gpio 3 */
1036 kTopEarlgreyPlicIrqIdGpioGpio4 = 37, /**< gpio_gpio 4 */
1037 kTopEarlgreyPlicIrqIdGpioGpio5 = 38, /**< gpio_gpio 5 */
1038 kTopEarlgreyPlicIrqIdGpioGpio6 = 39, /**< gpio_gpio 6 */
1039 kTopEarlgreyPlicIrqIdGpioGpio7 = 40, /**< gpio_gpio 7 */
1040 kTopEarlgreyPlicIrqIdGpioGpio8 = 41, /**< gpio_gpio 8 */
1041 kTopEarlgreyPlicIrqIdGpioGpio9 = 42, /**< gpio_gpio 9 */
1042 kTopEarlgreyPlicIrqIdGpioGpio10 = 43, /**< gpio_gpio 10 */
1043 kTopEarlgreyPlicIrqIdGpioGpio11 = 44, /**< gpio_gpio 11 */
1044 kTopEarlgreyPlicIrqIdGpioGpio12 = 45, /**< gpio_gpio 12 */
1045 kTopEarlgreyPlicIrqIdGpioGpio13 = 46, /**< gpio_gpio 13 */
1046 kTopEarlgreyPlicIrqIdGpioGpio14 = 47, /**< gpio_gpio 14 */
1047 kTopEarlgreyPlicIrqIdGpioGpio15 = 48, /**< gpio_gpio 15 */
1048 kTopEarlgreyPlicIrqIdGpioGpio16 = 49, /**< gpio_gpio 16 */
1049 kTopEarlgreyPlicIrqIdGpioGpio17 = 50, /**< gpio_gpio 17 */
1050 kTopEarlgreyPlicIrqIdGpioGpio18 = 51, /**< gpio_gpio 18 */
1051 kTopEarlgreyPlicIrqIdGpioGpio19 = 52, /**< gpio_gpio 19 */
1052 kTopEarlgreyPlicIrqIdGpioGpio20 = 53, /**< gpio_gpio 20 */
1053 kTopEarlgreyPlicIrqIdGpioGpio21 = 54, /**< gpio_gpio 21 */
1054 kTopEarlgreyPlicIrqIdGpioGpio22 = 55, /**< gpio_gpio 22 */
1055 kTopEarlgreyPlicIrqIdGpioGpio23 = 56, /**< gpio_gpio 23 */
1056 kTopEarlgreyPlicIrqIdGpioGpio24 = 57, /**< gpio_gpio 24 */
1057 kTopEarlgreyPlicIrqIdGpioGpio25 = 58, /**< gpio_gpio 25 */
1058 kTopEarlgreyPlicIrqIdGpioGpio26 = 59, /**< gpio_gpio 26 */
1059 kTopEarlgreyPlicIrqIdGpioGpio27 = 60, /**< gpio_gpio 27 */
1060 kTopEarlgreyPlicIrqIdGpioGpio28 = 61, /**< gpio_gpio 28 */
1061 kTopEarlgreyPlicIrqIdGpioGpio29 = 62, /**< gpio_gpio 29 */
1062 kTopEarlgreyPlicIrqIdGpioGpio30 = 63, /**< gpio_gpio 30 */
1063 kTopEarlgreyPlicIrqIdGpioGpio31 = 64, /**< gpio_gpio 31 */
1064 kTopEarlgreyPlicIrqIdSpiDeviceRxf = 65, /**< spi_device_rxf */
1065 kTopEarlgreyPlicIrqIdSpiDeviceRxlvl = 66, /**< spi_device_rxlvl */
1066 kTopEarlgreyPlicIrqIdSpiDeviceTxlvl = 67, /**< spi_device_txlvl */
1067 kTopEarlgreyPlicIrqIdSpiDeviceRxerr = 68, /**< spi_device_rxerr */
1068 kTopEarlgreyPlicIrqIdSpiDeviceRxoverflow = 69, /**< spi_device_rxoverflow */
1069 kTopEarlgreyPlicIrqIdSpiDeviceTxunderflow = 70, /**< spi_device_txunderflow */
Rupert Swarbrick13cdb232021-03-09 15:34:53 +00001070 kTopEarlgreyPlicIrqIdSpiHost0Error = 71, /**< spi_host0_error */
1071 kTopEarlgreyPlicIrqIdSpiHost0SpiEvent = 72, /**< spi_host0_spi_event */
1072 kTopEarlgreyPlicIrqIdSpiHost1Error = 73, /**< spi_host1_error */
1073 kTopEarlgreyPlicIrqIdSpiHost1SpiEvent = 74, /**< spi_host1_spi_event */
1074 kTopEarlgreyPlicIrqIdI2c0FmtWatermark = 75, /**< i2c0_fmt_watermark */
1075 kTopEarlgreyPlicIrqIdI2c0RxWatermark = 76, /**< i2c0_rx_watermark */
1076 kTopEarlgreyPlicIrqIdI2c0FmtOverflow = 77, /**< i2c0_fmt_overflow */
1077 kTopEarlgreyPlicIrqIdI2c0RxOverflow = 78, /**< i2c0_rx_overflow */
1078 kTopEarlgreyPlicIrqIdI2c0Nak = 79, /**< i2c0_nak */
1079 kTopEarlgreyPlicIrqIdI2c0SclInterference = 80, /**< i2c0_scl_interference */
1080 kTopEarlgreyPlicIrqIdI2c0SdaInterference = 81, /**< i2c0_sda_interference */
1081 kTopEarlgreyPlicIrqIdI2c0StretchTimeout = 82, /**< i2c0_stretch_timeout */
1082 kTopEarlgreyPlicIrqIdI2c0SdaUnstable = 83, /**< i2c0_sda_unstable */
1083 kTopEarlgreyPlicIrqIdI2c0TransComplete = 84, /**< i2c0_trans_complete */
1084 kTopEarlgreyPlicIrqIdI2c0TxEmpty = 85, /**< i2c0_tx_empty */
1085 kTopEarlgreyPlicIrqIdI2c0TxNonempty = 86, /**< i2c0_tx_nonempty */
1086 kTopEarlgreyPlicIrqIdI2c0TxOverflow = 87, /**< i2c0_tx_overflow */
1087 kTopEarlgreyPlicIrqIdI2c0AcqOverflow = 88, /**< i2c0_acq_overflow */
1088 kTopEarlgreyPlicIrqIdI2c0AckStop = 89, /**< i2c0_ack_stop */
1089 kTopEarlgreyPlicIrqIdI2c0HostTimeout = 90, /**< i2c0_host_timeout */
1090 kTopEarlgreyPlicIrqIdI2c1FmtWatermark = 91, /**< i2c1_fmt_watermark */
1091 kTopEarlgreyPlicIrqIdI2c1RxWatermark = 92, /**< i2c1_rx_watermark */
1092 kTopEarlgreyPlicIrqIdI2c1FmtOverflow = 93, /**< i2c1_fmt_overflow */
1093 kTopEarlgreyPlicIrqIdI2c1RxOverflow = 94, /**< i2c1_rx_overflow */
1094 kTopEarlgreyPlicIrqIdI2c1Nak = 95, /**< i2c1_nak */
1095 kTopEarlgreyPlicIrqIdI2c1SclInterference = 96, /**< i2c1_scl_interference */
1096 kTopEarlgreyPlicIrqIdI2c1SdaInterference = 97, /**< i2c1_sda_interference */
1097 kTopEarlgreyPlicIrqIdI2c1StretchTimeout = 98, /**< i2c1_stretch_timeout */
1098 kTopEarlgreyPlicIrqIdI2c1SdaUnstable = 99, /**< i2c1_sda_unstable */
1099 kTopEarlgreyPlicIrqIdI2c1TransComplete = 100, /**< i2c1_trans_complete */
1100 kTopEarlgreyPlicIrqIdI2c1TxEmpty = 101, /**< i2c1_tx_empty */
1101 kTopEarlgreyPlicIrqIdI2c1TxNonempty = 102, /**< i2c1_tx_nonempty */
1102 kTopEarlgreyPlicIrqIdI2c1TxOverflow = 103, /**< i2c1_tx_overflow */
1103 kTopEarlgreyPlicIrqIdI2c1AcqOverflow = 104, /**< i2c1_acq_overflow */
1104 kTopEarlgreyPlicIrqIdI2c1AckStop = 105, /**< i2c1_ack_stop */
1105 kTopEarlgreyPlicIrqIdI2c1HostTimeout = 106, /**< i2c1_host_timeout */
1106 kTopEarlgreyPlicIrqIdI2c2FmtWatermark = 107, /**< i2c2_fmt_watermark */
1107 kTopEarlgreyPlicIrqIdI2c2RxWatermark = 108, /**< i2c2_rx_watermark */
1108 kTopEarlgreyPlicIrqIdI2c2FmtOverflow = 109, /**< i2c2_fmt_overflow */
1109 kTopEarlgreyPlicIrqIdI2c2RxOverflow = 110, /**< i2c2_rx_overflow */
1110 kTopEarlgreyPlicIrqIdI2c2Nak = 111, /**< i2c2_nak */
1111 kTopEarlgreyPlicIrqIdI2c2SclInterference = 112, /**< i2c2_scl_interference */
1112 kTopEarlgreyPlicIrqIdI2c2SdaInterference = 113, /**< i2c2_sda_interference */
1113 kTopEarlgreyPlicIrqIdI2c2StretchTimeout = 114, /**< i2c2_stretch_timeout */
1114 kTopEarlgreyPlicIrqIdI2c2SdaUnstable = 115, /**< i2c2_sda_unstable */
1115 kTopEarlgreyPlicIrqIdI2c2TransComplete = 116, /**< i2c2_trans_complete */
1116 kTopEarlgreyPlicIrqIdI2c2TxEmpty = 117, /**< i2c2_tx_empty */
1117 kTopEarlgreyPlicIrqIdI2c2TxNonempty = 118, /**< i2c2_tx_nonempty */
1118 kTopEarlgreyPlicIrqIdI2c2TxOverflow = 119, /**< i2c2_tx_overflow */
1119 kTopEarlgreyPlicIrqIdI2c2AcqOverflow = 120, /**< i2c2_acq_overflow */
1120 kTopEarlgreyPlicIrqIdI2c2AckStop = 121, /**< i2c2_ack_stop */
1121 kTopEarlgreyPlicIrqIdI2c2HostTimeout = 122, /**< i2c2_host_timeout */
1122 kTopEarlgreyPlicIrqIdPattgenDoneCh0 = 123, /**< pattgen_done_ch0 */
1123 kTopEarlgreyPlicIrqIdPattgenDoneCh1 = 124, /**< pattgen_done_ch1 */
Michael Schaffner7d2b34b2021-08-12 14:37:27 -07001124 kTopEarlgreyPlicIrqIdRvTimerTimerExpired0_0 = 125, /**< rv_timer_timer_expired_0_0 */
1125 kTopEarlgreyPlicIrqIdUsbdevPktReceived = 126, /**< usbdev_pkt_received */
1126 kTopEarlgreyPlicIrqIdUsbdevPktSent = 127, /**< usbdev_pkt_sent */
1127 kTopEarlgreyPlicIrqIdUsbdevDisconnected = 128, /**< usbdev_disconnected */
1128 kTopEarlgreyPlicIrqIdUsbdevHostLost = 129, /**< usbdev_host_lost */
1129 kTopEarlgreyPlicIrqIdUsbdevLinkReset = 130, /**< usbdev_link_reset */
1130 kTopEarlgreyPlicIrqIdUsbdevLinkSuspend = 131, /**< usbdev_link_suspend */
1131 kTopEarlgreyPlicIrqIdUsbdevLinkResume = 132, /**< usbdev_link_resume */
1132 kTopEarlgreyPlicIrqIdUsbdevAvEmpty = 133, /**< usbdev_av_empty */
1133 kTopEarlgreyPlicIrqIdUsbdevRxFull = 134, /**< usbdev_rx_full */
1134 kTopEarlgreyPlicIrqIdUsbdevAvOverflow = 135, /**< usbdev_av_overflow */
1135 kTopEarlgreyPlicIrqIdUsbdevLinkInErr = 136, /**< usbdev_link_in_err */
1136 kTopEarlgreyPlicIrqIdUsbdevRxCrcErr = 137, /**< usbdev_rx_crc_err */
1137 kTopEarlgreyPlicIrqIdUsbdevRxPidErr = 138, /**< usbdev_rx_pid_err */
1138 kTopEarlgreyPlicIrqIdUsbdevRxBitstuffErr = 139, /**< usbdev_rx_bitstuff_err */
1139 kTopEarlgreyPlicIrqIdUsbdevFrame = 140, /**< usbdev_frame */
1140 kTopEarlgreyPlicIrqIdUsbdevConnected = 141, /**< usbdev_connected */
1141 kTopEarlgreyPlicIrqIdUsbdevLinkOutErr = 142, /**< usbdev_link_out_err */
1142 kTopEarlgreyPlicIrqIdOtpCtrlOtpOperationDone = 143, /**< otp_ctrl_otp_operation_done */
1143 kTopEarlgreyPlicIrqIdOtpCtrlOtpError = 144, /**< otp_ctrl_otp_error */
1144 kTopEarlgreyPlicIrqIdAlertHandlerClassa = 145, /**< alert_handler_classa */
1145 kTopEarlgreyPlicIrqIdAlertHandlerClassb = 146, /**< alert_handler_classb */
1146 kTopEarlgreyPlicIrqIdAlertHandlerClassc = 147, /**< alert_handler_classc */
1147 kTopEarlgreyPlicIrqIdAlertHandlerClassd = 148, /**< alert_handler_classd */
1148 kTopEarlgreyPlicIrqIdPwrmgrAonWakeup = 149, /**< pwrmgr_aon_wakeup */
1149 kTopEarlgreyPlicIrqIdSysrstCtrlAonSysrstCtrl = 150, /**< sysrst_ctrl_aon_sysrst_ctrl */
1150 kTopEarlgreyPlicIrqIdAdcCtrlAonDebugCable = 151, /**< adc_ctrl_aon_debug_cable */
1151 kTopEarlgreyPlicIrqIdAonTimerAonWkupTimerExpired = 152, /**< aon_timer_aon_wkup_timer_expired */
1152 kTopEarlgreyPlicIrqIdAonTimerAonWdogTimerBark = 153, /**< aon_timer_aon_wdog_timer_bark */
1153 kTopEarlgreyPlicIrqIdFlashCtrlProgEmpty = 154, /**< flash_ctrl_prog_empty */
1154 kTopEarlgreyPlicIrqIdFlashCtrlProgLvl = 155, /**< flash_ctrl_prog_lvl */
1155 kTopEarlgreyPlicIrqIdFlashCtrlRdFull = 156, /**< flash_ctrl_rd_full */
1156 kTopEarlgreyPlicIrqIdFlashCtrlRdLvl = 157, /**< flash_ctrl_rd_lvl */
1157 kTopEarlgreyPlicIrqIdFlashCtrlOpDone = 158, /**< flash_ctrl_op_done */
1158 kTopEarlgreyPlicIrqIdFlashCtrlErr = 159, /**< flash_ctrl_err */
1159 kTopEarlgreyPlicIrqIdHmacHmacDone = 160, /**< hmac_hmac_done */
1160 kTopEarlgreyPlicIrqIdHmacFifoEmpty = 161, /**< hmac_fifo_empty */
1161 kTopEarlgreyPlicIrqIdHmacHmacErr = 162, /**< hmac_hmac_err */
1162 kTopEarlgreyPlicIrqIdKmacKmacDone = 163, /**< kmac_kmac_done */
1163 kTopEarlgreyPlicIrqIdKmacFifoEmpty = 164, /**< kmac_fifo_empty */
1164 kTopEarlgreyPlicIrqIdKmacKmacErr = 165, /**< kmac_kmac_err */
1165 kTopEarlgreyPlicIrqIdKeymgrOpDone = 166, /**< keymgr_op_done */
1166 kTopEarlgreyPlicIrqIdCsrngCsCmdReqDone = 167, /**< csrng_cs_cmd_req_done */
1167 kTopEarlgreyPlicIrqIdCsrngCsEntropyReq = 168, /**< csrng_cs_entropy_req */
1168 kTopEarlgreyPlicIrqIdCsrngCsHwInstExc = 169, /**< csrng_cs_hw_inst_exc */
1169 kTopEarlgreyPlicIrqIdCsrngCsFatalErr = 170, /**< csrng_cs_fatal_err */
1170 kTopEarlgreyPlicIrqIdEntropySrcEsEntropyValid = 171, /**< entropy_src_es_entropy_valid */
1171 kTopEarlgreyPlicIrqIdEntropySrcEsHealthTestFailed = 172, /**< entropy_src_es_health_test_failed */
1172 kTopEarlgreyPlicIrqIdEntropySrcEsObserveFifoReady = 173, /**< entropy_src_es_observe_fifo_ready */
1173 kTopEarlgreyPlicIrqIdEntropySrcEsFatalErr = 174, /**< entropy_src_es_fatal_err */
1174 kTopEarlgreyPlicIrqIdEdn0EdnCmdReqDone = 175, /**< edn0_edn_cmd_req_done */
1175 kTopEarlgreyPlicIrqIdEdn0EdnFatalErr = 176, /**< edn0_edn_fatal_err */
1176 kTopEarlgreyPlicIrqIdEdn1EdnCmdReqDone = 177, /**< edn1_edn_cmd_req_done */
1177 kTopEarlgreyPlicIrqIdEdn1EdnFatalErr = 178, /**< edn1_edn_fatal_err */
1178 kTopEarlgreyPlicIrqIdOtbnDone = 179, /**< otbn_done */
1179 kTopEarlgreyPlicIrqIdLast = 179, /**< \internal The Last Valid Interrupt ID. */
Sam Elliott7e36bd72020-04-22 14:05:49 +01001180} top_earlgrey_plic_irq_id_t;
1181
1182/**
Sam Elliott7931f2f2020-07-24 23:21:41 +01001183 * PLIC Interrupt Source to Peripheral Map
Sam Elliott7e36bd72020-04-22 14:05:49 +01001184 *
1185 * This array is a mapping from `top_earlgrey_plic_irq_id_t` to
1186 * `top_earlgrey_plic_peripheral_t`.
1187 */
1188extern const top_earlgrey_plic_peripheral_t
Michael Schaffner7d2b34b2021-08-12 14:37:27 -07001189 top_earlgrey_plic_interrupt_for_peripheral[180];
Sam Elliott7e36bd72020-04-22 14:05:49 +01001190
1191/**
Sam Elliott7931f2f2020-07-24 23:21:41 +01001192 * PLIC Interrupt Target.
Sam Elliott7e36bd72020-04-22 14:05:49 +01001193 *
1194 * Enumeration used to determine which set of IE, CC, threshold registers to
Sam Elliott7931f2f2020-07-24 23:21:41 +01001195 * access for a given interrupt target.
Sam Elliott7e36bd72020-04-22 14:05:49 +01001196 */
1197typedef enum top_earlgrey_plic_target {
1198 kTopEarlgreyPlicTargetIbex0 = 0, /**< Ibex Core 0 */
Sam Elliott2a4448b2020-04-23 11:15:43 +01001199 kTopEarlgreyPlicTargetLast = 0, /**< \internal Final PLIC target */
Sam Elliott7e36bd72020-04-22 14:05:49 +01001200} top_earlgrey_plic_target_t;
1201
Sam Elliotta7b7b5f2020-07-24 23:46:36 +01001202/**
1203 * Alert Handler Source Peripheral.
1204 *
1205 * Enumeration used to determine which peripheral asserted the corresponding
1206 * alert.
1207 */
1208typedef enum top_earlgrey_alert_peripheral {
Michael Schaffner9d1fd4a2021-06-07 16:03:22 -07001209 kTopEarlgreyAlertPeripheralUart0 = 0, /**< uart0 */
1210 kTopEarlgreyAlertPeripheralUart1 = 1, /**< uart1 */
1211 kTopEarlgreyAlertPeripheralUart2 = 2, /**< uart2 */
1212 kTopEarlgreyAlertPeripheralUart3 = 3, /**< uart3 */
1213 kTopEarlgreyAlertPeripheralGpio = 4, /**< gpio */
1214 kTopEarlgreyAlertPeripheralSpiDevice = 5, /**< spi_device */
1215 kTopEarlgreyAlertPeripheralSpiHost0 = 6, /**< spi_host0 */
1216 kTopEarlgreyAlertPeripheralSpiHost1 = 7, /**< spi_host1 */
Michael Schaffnerd1ae1902021-06-07 16:30:03 -07001217 kTopEarlgreyAlertPeripheralI2c0 = 8, /**< i2c0 */
1218 kTopEarlgreyAlertPeripheralI2c1 = 9, /**< i2c1 */
1219 kTopEarlgreyAlertPeripheralI2c2 = 10, /**< i2c2 */
1220 kTopEarlgreyAlertPeripheralPattgen = 11, /**< pattgen */
Michael Schaffner6fec3b52021-07-02 14:55:33 -07001221 kTopEarlgreyAlertPeripheralRvTimer = 12, /**< rv_timer */
1222 kTopEarlgreyAlertPeripheralUsbdev = 13, /**< usbdev */
1223 kTopEarlgreyAlertPeripheralOtpCtrl = 14, /**< otp_ctrl */
1224 kTopEarlgreyAlertPeripheralLcCtrl = 15, /**< lc_ctrl */
1225 kTopEarlgreyAlertPeripheralPwrmgrAon = 16, /**< pwrmgr_aon */
1226 kTopEarlgreyAlertPeripheralRstmgrAon = 17, /**< rstmgr_aon */
1227 kTopEarlgreyAlertPeripheralClkmgrAon = 18, /**< clkmgr_aon */
1228 kTopEarlgreyAlertPeripheralSysrstCtrlAon = 19, /**< sysrst_ctrl_aon */
1229 kTopEarlgreyAlertPeripheralAdcCtrlAon = 20, /**< adc_ctrl_aon */
1230 kTopEarlgreyAlertPeripheralPwmAon = 21, /**< pwm_aon */
1231 kTopEarlgreyAlertPeripheralPinmuxAon = 22, /**< pinmux_aon */
1232 kTopEarlgreyAlertPeripheralAonTimerAon = 23, /**< aon_timer_aon */
1233 kTopEarlgreyAlertPeripheralSensorCtrlAon = 24, /**< sensor_ctrl_aon */
1234 kTopEarlgreyAlertPeripheralSramCtrlRetAon = 25, /**< sram_ctrl_ret_aon */
1235 kTopEarlgreyAlertPeripheralFlashCtrl = 26, /**< flash_ctrl */
1236 kTopEarlgreyAlertPeripheralRvDm = 27, /**< rv_dm */
1237 kTopEarlgreyAlertPeripheralRvPlic = 28, /**< rv_plic */
1238 kTopEarlgreyAlertPeripheralAes = 29, /**< aes */
1239 kTopEarlgreyAlertPeripheralHmac = 30, /**< hmac */
1240 kTopEarlgreyAlertPeripheralKmac = 31, /**< kmac */
1241 kTopEarlgreyAlertPeripheralKeymgr = 32, /**< keymgr */
1242 kTopEarlgreyAlertPeripheralCsrng = 33, /**< csrng */
1243 kTopEarlgreyAlertPeripheralEntropySrc = 34, /**< entropy_src */
1244 kTopEarlgreyAlertPeripheralEdn0 = 35, /**< edn0 */
1245 kTopEarlgreyAlertPeripheralEdn1 = 36, /**< edn1 */
1246 kTopEarlgreyAlertPeripheralSramCtrlMain = 37, /**< sram_ctrl_main */
1247 kTopEarlgreyAlertPeripheralOtbn = 38, /**< otbn */
1248 kTopEarlgreyAlertPeripheralRomCtrl = 39, /**< rom_ctrl */
Timothy Chenc5d30782021-07-13 11:56:31 -07001249 kTopEarlgreyAlertPeripheralRvCoreIbex = 40, /**< rv_core_ibex */
Michael Schaffner6fec3b52021-07-02 14:55:33 -07001250 kTopEarlgreyAlertPeripheralLast = 40, /**< \internal Final Alert peripheral */
Sam Elliotta7b7b5f2020-07-24 23:46:36 +01001251} top_earlgrey_alert_peripheral_t;
1252
1253/**
1254 * Alert Handler Alert Source.
1255 *
1256 * Enumeration of all Alert Handler Alert Sources. The alert sources belonging to
1257 * the same peripheral are guaranteed to be consecutive.
1258 */
1259typedef enum top_earlgrey_alert_id {
Michael Schaffner9d1fd4a2021-06-07 16:03:22 -07001260 kTopEarlgreyAlertIdUart0FatalFault = 0, /**< uart0_fatal_fault */
1261 kTopEarlgreyAlertIdUart1FatalFault = 1, /**< uart1_fatal_fault */
1262 kTopEarlgreyAlertIdUart2FatalFault = 2, /**< uart2_fatal_fault */
1263 kTopEarlgreyAlertIdUart3FatalFault = 3, /**< uart3_fatal_fault */
1264 kTopEarlgreyAlertIdGpioFatalFault = 4, /**< gpio_fatal_fault */
1265 kTopEarlgreyAlertIdSpiDeviceFatalFault = 5, /**< spi_device_fatal_fault */
1266 kTopEarlgreyAlertIdSpiHost0FatalFault = 6, /**< spi_host0_fatal_fault */
1267 kTopEarlgreyAlertIdSpiHost1FatalFault = 7, /**< spi_host1_fatal_fault */
Michael Schaffnerd1ae1902021-06-07 16:30:03 -07001268 kTopEarlgreyAlertIdI2c0FatalFault = 8, /**< i2c0_fatal_fault */
1269 kTopEarlgreyAlertIdI2c1FatalFault = 9, /**< i2c1_fatal_fault */
1270 kTopEarlgreyAlertIdI2c2FatalFault = 10, /**< i2c2_fatal_fault */
1271 kTopEarlgreyAlertIdPattgenFatalFault = 11, /**< pattgen_fatal_fault */
Michael Schaffner6fec3b52021-07-02 14:55:33 -07001272 kTopEarlgreyAlertIdRvTimerFatalFault = 12, /**< rv_timer_fatal_fault */
1273 kTopEarlgreyAlertIdUsbdevFatalFault = 13, /**< usbdev_fatal_fault */
1274 kTopEarlgreyAlertIdOtpCtrlFatalMacroError = 14, /**< otp_ctrl_fatal_macro_error */
1275 kTopEarlgreyAlertIdOtpCtrlFatalCheckError = 15, /**< otp_ctrl_fatal_check_error */
1276 kTopEarlgreyAlertIdOtpCtrlFatalBusIntegError = 16, /**< otp_ctrl_fatal_bus_integ_error */
1277 kTopEarlgreyAlertIdLcCtrlFatalProgError = 17, /**< lc_ctrl_fatal_prog_error */
1278 kTopEarlgreyAlertIdLcCtrlFatalStateError = 18, /**< lc_ctrl_fatal_state_error */
1279 kTopEarlgreyAlertIdLcCtrlFatalBusIntegError = 19, /**< lc_ctrl_fatal_bus_integ_error */
1280 kTopEarlgreyAlertIdPwrmgrAonFatalFault = 20, /**< pwrmgr_aon_fatal_fault */
1281 kTopEarlgreyAlertIdRstmgrAonFatalFault = 21, /**< rstmgr_aon_fatal_fault */
1282 kTopEarlgreyAlertIdClkmgrAonFatalFault = 22, /**< clkmgr_aon_fatal_fault */
1283 kTopEarlgreyAlertIdSysrstCtrlAonFatalFault = 23, /**< sysrst_ctrl_aon_fatal_fault */
1284 kTopEarlgreyAlertIdAdcCtrlAonFatalFault = 24, /**< adc_ctrl_aon_fatal_fault */
1285 kTopEarlgreyAlertIdPwmAonFatalFault = 25, /**< pwm_aon_fatal_fault */
1286 kTopEarlgreyAlertIdPinmuxAonFatalFault = 26, /**< pinmux_aon_fatal_fault */
1287 kTopEarlgreyAlertIdAonTimerAonFatalFault = 27, /**< aon_timer_aon_fatal_fault */
1288 kTopEarlgreyAlertIdSensorCtrlAonRecovAs = 28, /**< sensor_ctrl_aon_recov_as */
1289 kTopEarlgreyAlertIdSensorCtrlAonRecovCg = 29, /**< sensor_ctrl_aon_recov_cg */
1290 kTopEarlgreyAlertIdSensorCtrlAonRecovGd = 30, /**< sensor_ctrl_aon_recov_gd */
1291 kTopEarlgreyAlertIdSensorCtrlAonRecovTsHi = 31, /**< sensor_ctrl_aon_recov_ts_hi */
1292 kTopEarlgreyAlertIdSensorCtrlAonRecovTsLo = 32, /**< sensor_ctrl_aon_recov_ts_lo */
1293 kTopEarlgreyAlertIdSensorCtrlAonRecovFla = 33, /**< sensor_ctrl_aon_recov_fla */
1294 kTopEarlgreyAlertIdSensorCtrlAonRecovOtp = 34, /**< sensor_ctrl_aon_recov_otp */
1295 kTopEarlgreyAlertIdSensorCtrlAonRecovOt0 = 35, /**< sensor_ctrl_aon_recov_ot0 */
1296 kTopEarlgreyAlertIdSensorCtrlAonRecovOt1 = 36, /**< sensor_ctrl_aon_recov_ot1 */
1297 kTopEarlgreyAlertIdSensorCtrlAonRecovOt2 = 37, /**< sensor_ctrl_aon_recov_ot2 */
1298 kTopEarlgreyAlertIdSensorCtrlAonRecovOt3 = 38, /**< sensor_ctrl_aon_recov_ot3 */
1299 kTopEarlgreyAlertIdSensorCtrlAonRecovOt4 = 39, /**< sensor_ctrl_aon_recov_ot4 */
1300 kTopEarlgreyAlertIdSensorCtrlAonRecovOt5 = 40, /**< sensor_ctrl_aon_recov_ot5 */
Michael Schaffner5c219252021-08-11 11:53:10 -07001301 kTopEarlgreyAlertIdSramCtrlRetAonFatalError = 41, /**< sram_ctrl_ret_aon_fatal_error */
Michael Schaffner4e7114e2021-07-02 17:57:11 -07001302 kTopEarlgreyAlertIdFlashCtrlRecovErr = 42, /**< flash_ctrl_recov_err */
1303 kTopEarlgreyAlertIdFlashCtrlRecovMpErr = 43, /**< flash_ctrl_recov_mp_err */
1304 kTopEarlgreyAlertIdFlashCtrlRecovEccErr = 44, /**< flash_ctrl_recov_ecc_err */
1305 kTopEarlgreyAlertIdFlashCtrlFatalIntgErr = 45, /**< flash_ctrl_fatal_intg_err */
1306 kTopEarlgreyAlertIdRvDmFatalFault = 46, /**< rv_dm_fatal_fault */
1307 kTopEarlgreyAlertIdRvPlicFatalFault = 47, /**< rv_plic_fatal_fault */
1308 kTopEarlgreyAlertIdAesRecovCtrlUpdateErr = 48, /**< aes_recov_ctrl_update_err */
1309 kTopEarlgreyAlertIdAesFatalFault = 49, /**< aes_fatal_fault */
1310 kTopEarlgreyAlertIdHmacFatalFault = 50, /**< hmac_fatal_fault */
1311 kTopEarlgreyAlertIdKmacFatalFault = 51, /**< kmac_fatal_fault */
1312 kTopEarlgreyAlertIdKeymgrFatalFaultErr = 52, /**< keymgr_fatal_fault_err */
1313 kTopEarlgreyAlertIdKeymgrRecovOperationErr = 53, /**< keymgr_recov_operation_err */
1314 kTopEarlgreyAlertIdCsrngFatalAlert = 54, /**< csrng_fatal_alert */
1315 kTopEarlgreyAlertIdEntropySrcRecovAlert = 55, /**< entropy_src_recov_alert */
1316 kTopEarlgreyAlertIdEntropySrcFatalAlert = 56, /**< entropy_src_fatal_alert */
1317 kTopEarlgreyAlertIdEdn0FatalAlert = 57, /**< edn0_fatal_alert */
1318 kTopEarlgreyAlertIdEdn1FatalAlert = 58, /**< edn1_fatal_alert */
Michael Schaffner5c219252021-08-11 11:53:10 -07001319 kTopEarlgreyAlertIdSramCtrlMainFatalError = 59, /**< sram_ctrl_main_fatal_error */
Michael Schaffner4e7114e2021-07-02 17:57:11 -07001320 kTopEarlgreyAlertIdOtbnFatal = 60, /**< otbn_fatal */
1321 kTopEarlgreyAlertIdOtbnRecov = 61, /**< otbn_recov */
1322 kTopEarlgreyAlertIdRomCtrlFatal = 62, /**< rom_ctrl_fatal */
1323 kTopEarlgreyAlertIdRvCoreIbexFatalSwErr = 63, /**< rv_core_ibex_fatal_sw_err */
1324 kTopEarlgreyAlertIdRvCoreIbexRecovSwErr = 64, /**< rv_core_ibex_recov_sw_err */
1325 kTopEarlgreyAlertIdRvCoreIbexFatalHwErr = 65, /**< rv_core_ibex_fatal_hw_err */
1326 kTopEarlgreyAlertIdRvCoreIbexRecovHwErr = 66, /**< rv_core_ibex_recov_hw_err */
1327 kTopEarlgreyAlertIdLast = 66, /**< \internal The Last Valid Alert ID. */
Sam Elliotta7b7b5f2020-07-24 23:46:36 +01001328} top_earlgrey_alert_id_t;
1329
1330/**
1331 * Alert Handler Alert Source to Peripheral Map
1332 *
1333 * This array is a mapping from `top_earlgrey_alert_id_t` to
1334 * `top_earlgrey_alert_peripheral_t`.
1335 */
1336extern const top_earlgrey_alert_peripheral_t
Michael Schaffner4e7114e2021-07-02 17:57:11 -07001337 top_earlgrey_alert_for_peripheral[67];
Sam Elliotta7b7b5f2020-07-24 23:46:36 +01001338
Michael Schaffner06fdb112021-02-10 16:52:56 -08001339#define PINMUX_MIO_PERIPH_INSEL_IDX_OFFSET 2
Sam Elliottfbb34ec2020-07-25 02:00:22 +01001340
Michael Schaffner74c4ff22021-03-30 15:43:46 -07001341// PERIPH_INSEL ranges from 0 to NUM_MIO_PADS + 2 -1}
Sam Elliottfbb34ec2020-07-25 02:00:22 +01001342// 0 and 1 are tied to value 0 and 1
Michael Schaffner3b1c0302021-04-02 18:01:15 -07001343#define NUM_MIO_PADS 47
Timothy Chen22c18562021-04-09 14:52:12 -07001344#define NUM_DIO_PADS 24
Sam Elliottfbb34ec2020-07-25 02:00:22 +01001345
1346#define PINMUX_PERIPH_OUTSEL_IDX_OFFSET 3
1347
1348/**
1349 * Pinmux Peripheral Input.
1350 */
1351typedef enum top_earlgrey_pinmux_peripheral_in {
Michael Schaffner74c4ff22021-03-30 15:43:46 -07001352 kTopEarlgreyPinmuxPeripheralInGpioGpio0 = 0, /**< Peripheral Input 0 */
1353 kTopEarlgreyPinmuxPeripheralInGpioGpio1 = 1, /**< Peripheral Input 1 */
1354 kTopEarlgreyPinmuxPeripheralInGpioGpio2 = 2, /**< Peripheral Input 2 */
1355 kTopEarlgreyPinmuxPeripheralInGpioGpio3 = 3, /**< Peripheral Input 3 */
1356 kTopEarlgreyPinmuxPeripheralInGpioGpio4 = 4, /**< Peripheral Input 4 */
1357 kTopEarlgreyPinmuxPeripheralInGpioGpio5 = 5, /**< Peripheral Input 5 */
1358 kTopEarlgreyPinmuxPeripheralInGpioGpio6 = 6, /**< Peripheral Input 6 */
1359 kTopEarlgreyPinmuxPeripheralInGpioGpio7 = 7, /**< Peripheral Input 7 */
1360 kTopEarlgreyPinmuxPeripheralInGpioGpio8 = 8, /**< Peripheral Input 8 */
1361 kTopEarlgreyPinmuxPeripheralInGpioGpio9 = 9, /**< Peripheral Input 9 */
1362 kTopEarlgreyPinmuxPeripheralInGpioGpio10 = 10, /**< Peripheral Input 10 */
1363 kTopEarlgreyPinmuxPeripheralInGpioGpio11 = 11, /**< Peripheral Input 11 */
1364 kTopEarlgreyPinmuxPeripheralInGpioGpio12 = 12, /**< Peripheral Input 12 */
1365 kTopEarlgreyPinmuxPeripheralInGpioGpio13 = 13, /**< Peripheral Input 13 */
1366 kTopEarlgreyPinmuxPeripheralInGpioGpio14 = 14, /**< Peripheral Input 14 */
1367 kTopEarlgreyPinmuxPeripheralInGpioGpio15 = 15, /**< Peripheral Input 15 */
1368 kTopEarlgreyPinmuxPeripheralInGpioGpio16 = 16, /**< Peripheral Input 16 */
1369 kTopEarlgreyPinmuxPeripheralInGpioGpio17 = 17, /**< Peripheral Input 17 */
1370 kTopEarlgreyPinmuxPeripheralInGpioGpio18 = 18, /**< Peripheral Input 18 */
1371 kTopEarlgreyPinmuxPeripheralInGpioGpio19 = 19, /**< Peripheral Input 19 */
1372 kTopEarlgreyPinmuxPeripheralInGpioGpio20 = 20, /**< Peripheral Input 20 */
1373 kTopEarlgreyPinmuxPeripheralInGpioGpio21 = 21, /**< Peripheral Input 21 */
1374 kTopEarlgreyPinmuxPeripheralInGpioGpio22 = 22, /**< Peripheral Input 22 */
1375 kTopEarlgreyPinmuxPeripheralInGpioGpio23 = 23, /**< Peripheral Input 23 */
1376 kTopEarlgreyPinmuxPeripheralInGpioGpio24 = 24, /**< Peripheral Input 24 */
1377 kTopEarlgreyPinmuxPeripheralInGpioGpio25 = 25, /**< Peripheral Input 25 */
1378 kTopEarlgreyPinmuxPeripheralInGpioGpio26 = 26, /**< Peripheral Input 26 */
1379 kTopEarlgreyPinmuxPeripheralInGpioGpio27 = 27, /**< Peripheral Input 27 */
1380 kTopEarlgreyPinmuxPeripheralInGpioGpio28 = 28, /**< Peripheral Input 28 */
1381 kTopEarlgreyPinmuxPeripheralInGpioGpio29 = 29, /**< Peripheral Input 29 */
1382 kTopEarlgreyPinmuxPeripheralInGpioGpio30 = 30, /**< Peripheral Input 30 */
1383 kTopEarlgreyPinmuxPeripheralInGpioGpio31 = 31, /**< Peripheral Input 31 */
1384 kTopEarlgreyPinmuxPeripheralInI2c0Sda = 32, /**< Peripheral Input 32 */
1385 kTopEarlgreyPinmuxPeripheralInI2c0Scl = 33, /**< Peripheral Input 33 */
1386 kTopEarlgreyPinmuxPeripheralInI2c1Sda = 34, /**< Peripheral Input 34 */
1387 kTopEarlgreyPinmuxPeripheralInI2c1Scl = 35, /**< Peripheral Input 35 */
1388 kTopEarlgreyPinmuxPeripheralInI2c2Sda = 36, /**< Peripheral Input 36 */
1389 kTopEarlgreyPinmuxPeripheralInI2c2Scl = 37, /**< Peripheral Input 37 */
1390 kTopEarlgreyPinmuxPeripheralInSpiHost1Sd0 = 38, /**< Peripheral Input 38 */
1391 kTopEarlgreyPinmuxPeripheralInSpiHost1Sd1 = 39, /**< Peripheral Input 39 */
1392 kTopEarlgreyPinmuxPeripheralInSpiHost1Sd2 = 40, /**< Peripheral Input 40 */
1393 kTopEarlgreyPinmuxPeripheralInSpiHost1Sd3 = 41, /**< Peripheral Input 41 */
1394 kTopEarlgreyPinmuxPeripheralInUart0Rx = 42, /**< Peripheral Input 42 */
1395 kTopEarlgreyPinmuxPeripheralInUart1Rx = 43, /**< Peripheral Input 43 */
1396 kTopEarlgreyPinmuxPeripheralInUart2Rx = 44, /**< Peripheral Input 44 */
1397 kTopEarlgreyPinmuxPeripheralInUart3Rx = 45, /**< Peripheral Input 45 */
1398 kTopEarlgreyPinmuxPeripheralInFlashCtrlTck = 46, /**< Peripheral Input 46 */
1399 kTopEarlgreyPinmuxPeripheralInFlashCtrlTms = 47, /**< Peripheral Input 47 */
1400 kTopEarlgreyPinmuxPeripheralInFlashCtrlTdi = 48, /**< Peripheral Input 48 */
Timothy Chen6925c6f2021-04-09 17:19:27 -07001401 kTopEarlgreyPinmuxPeripheralInSysrstCtrlAonAcPresent = 49, /**< Peripheral Input 49 */
1402 kTopEarlgreyPinmuxPeripheralInSysrstCtrlAonEcRstInL = 50, /**< Peripheral Input 50 */
1403 kTopEarlgreyPinmuxPeripheralInSysrstCtrlAonKey0In = 51, /**< Peripheral Input 51 */
1404 kTopEarlgreyPinmuxPeripheralInSysrstCtrlAonKey1In = 52, /**< Peripheral Input 52 */
1405 kTopEarlgreyPinmuxPeripheralInSysrstCtrlAonKey2In = 53, /**< Peripheral Input 53 */
1406 kTopEarlgreyPinmuxPeripheralInSysrstCtrlAonPwrbIn = 54, /**< Peripheral Input 54 */
Eric Shiu3b1e4fd2021-04-22 11:38:23 -07001407 kTopEarlgreyPinmuxPeripheralInSysrstCtrlAonLidOpen = 55, /**< Peripheral Input 55 */
1408 kTopEarlgreyPinmuxPeripheralInLast = 55, /**< \internal Last valid peripheral input */
Sam Elliottfbb34ec2020-07-25 02:00:22 +01001409} top_earlgrey_pinmux_peripheral_in_t;
1410
1411/**
1412 * Pinmux MIO Input Selector.
1413 */
1414typedef enum top_earlgrey_pinmux_insel {
1415 kTopEarlgreyPinmuxInselConstantZero = 0, /**< Tie constantly to zero */
1416 kTopEarlgreyPinmuxInselConstantOne = 1, /**< Tie constantly to one */
Michael Schaffner74c4ff22021-03-30 15:43:46 -07001417 kTopEarlgreyPinmuxInselIoa0 = 2, /**< MIO Pad 0 */
1418 kTopEarlgreyPinmuxInselIoa1 = 3, /**< MIO Pad 1 */
1419 kTopEarlgreyPinmuxInselIoa2 = 4, /**< MIO Pad 2 */
1420 kTopEarlgreyPinmuxInselIoa3 = 5, /**< MIO Pad 3 */
1421 kTopEarlgreyPinmuxInselIoa4 = 6, /**< MIO Pad 4 */
1422 kTopEarlgreyPinmuxInselIoa5 = 7, /**< MIO Pad 5 */
Michael Schaffner3b1c0302021-04-02 18:01:15 -07001423 kTopEarlgreyPinmuxInselIoa6 = 8, /**< MIO Pad 6 */
1424 kTopEarlgreyPinmuxInselIoa7 = 9, /**< MIO Pad 7 */
1425 kTopEarlgreyPinmuxInselIoa8 = 10, /**< MIO Pad 8 */
1426 kTopEarlgreyPinmuxInselIob0 = 11, /**< MIO Pad 9 */
1427 kTopEarlgreyPinmuxInselIob1 = 12, /**< MIO Pad 10 */
1428 kTopEarlgreyPinmuxInselIob2 = 13, /**< MIO Pad 11 */
1429 kTopEarlgreyPinmuxInselIob3 = 14, /**< MIO Pad 12 */
1430 kTopEarlgreyPinmuxInselIob4 = 15, /**< MIO Pad 13 */
1431 kTopEarlgreyPinmuxInselIob5 = 16, /**< MIO Pad 14 */
1432 kTopEarlgreyPinmuxInselIob6 = 17, /**< MIO Pad 15 */
1433 kTopEarlgreyPinmuxInselIob7 = 18, /**< MIO Pad 16 */
1434 kTopEarlgreyPinmuxInselIob8 = 19, /**< MIO Pad 17 */
1435 kTopEarlgreyPinmuxInselIob9 = 20, /**< MIO Pad 18 */
1436 kTopEarlgreyPinmuxInselIob10 = 21, /**< MIO Pad 19 */
1437 kTopEarlgreyPinmuxInselIob11 = 22, /**< MIO Pad 20 */
1438 kTopEarlgreyPinmuxInselIob12 = 23, /**< MIO Pad 21 */
1439 kTopEarlgreyPinmuxInselIoc0 = 24, /**< MIO Pad 22 */
1440 kTopEarlgreyPinmuxInselIoc1 = 25, /**< MIO Pad 23 */
1441 kTopEarlgreyPinmuxInselIoc2 = 26, /**< MIO Pad 24 */
1442 kTopEarlgreyPinmuxInselIoc3 = 27, /**< MIO Pad 25 */
1443 kTopEarlgreyPinmuxInselIoc4 = 28, /**< MIO Pad 26 */
1444 kTopEarlgreyPinmuxInselIoc5 = 29, /**< MIO Pad 27 */
1445 kTopEarlgreyPinmuxInselIoc6 = 30, /**< MIO Pad 28 */
1446 kTopEarlgreyPinmuxInselIoc7 = 31, /**< MIO Pad 29 */
1447 kTopEarlgreyPinmuxInselIoc8 = 32, /**< MIO Pad 30 */
1448 kTopEarlgreyPinmuxInselIoc9 = 33, /**< MIO Pad 31 */
1449 kTopEarlgreyPinmuxInselIoc10 = 34, /**< MIO Pad 32 */
1450 kTopEarlgreyPinmuxInselIoc11 = 35, /**< MIO Pad 33 */
1451 kTopEarlgreyPinmuxInselIoc12 = 36, /**< MIO Pad 34 */
1452 kTopEarlgreyPinmuxInselIor0 = 37, /**< MIO Pad 35 */
1453 kTopEarlgreyPinmuxInselIor1 = 38, /**< MIO Pad 36 */
1454 kTopEarlgreyPinmuxInselIor2 = 39, /**< MIO Pad 37 */
1455 kTopEarlgreyPinmuxInselIor3 = 40, /**< MIO Pad 38 */
1456 kTopEarlgreyPinmuxInselIor4 = 41, /**< MIO Pad 39 */
1457 kTopEarlgreyPinmuxInselIor5 = 42, /**< MIO Pad 40 */
1458 kTopEarlgreyPinmuxInselIor6 = 43, /**< MIO Pad 41 */
1459 kTopEarlgreyPinmuxInselIor7 = 44, /**< MIO Pad 42 */
1460 kTopEarlgreyPinmuxInselIor10 = 45, /**< MIO Pad 43 */
1461 kTopEarlgreyPinmuxInselIor11 = 46, /**< MIO Pad 44 */
1462 kTopEarlgreyPinmuxInselIor12 = 47, /**< MIO Pad 45 */
1463 kTopEarlgreyPinmuxInselIor13 = 48, /**< MIO Pad 46 */
1464 kTopEarlgreyPinmuxInselLast = 48, /**< \internal Last valid insel value */
Sam Elliottfbb34ec2020-07-25 02:00:22 +01001465} top_earlgrey_pinmux_insel_t;
1466
1467/**
1468 * Pinmux MIO Output.
1469 */
1470typedef enum top_earlgrey_pinmux_mio_out {
Michael Schaffner74c4ff22021-03-30 15:43:46 -07001471 kTopEarlgreyPinmuxMioOutIoa0 = 0, /**< MIO Pad 0 */
1472 kTopEarlgreyPinmuxMioOutIoa1 = 1, /**< MIO Pad 1 */
1473 kTopEarlgreyPinmuxMioOutIoa2 = 2, /**< MIO Pad 2 */
1474 kTopEarlgreyPinmuxMioOutIoa3 = 3, /**< MIO Pad 3 */
1475 kTopEarlgreyPinmuxMioOutIoa4 = 4, /**< MIO Pad 4 */
1476 kTopEarlgreyPinmuxMioOutIoa5 = 5, /**< MIO Pad 5 */
Michael Schaffner3b1c0302021-04-02 18:01:15 -07001477 kTopEarlgreyPinmuxMioOutIoa6 = 6, /**< MIO Pad 6 */
1478 kTopEarlgreyPinmuxMioOutIoa7 = 7, /**< MIO Pad 7 */
1479 kTopEarlgreyPinmuxMioOutIoa8 = 8, /**< MIO Pad 8 */
1480 kTopEarlgreyPinmuxMioOutIob0 = 9, /**< MIO Pad 9 */
1481 kTopEarlgreyPinmuxMioOutIob1 = 10, /**< MIO Pad 10 */
1482 kTopEarlgreyPinmuxMioOutIob2 = 11, /**< MIO Pad 11 */
1483 kTopEarlgreyPinmuxMioOutIob3 = 12, /**< MIO Pad 12 */
1484 kTopEarlgreyPinmuxMioOutIob4 = 13, /**< MIO Pad 13 */
1485 kTopEarlgreyPinmuxMioOutIob5 = 14, /**< MIO Pad 14 */
1486 kTopEarlgreyPinmuxMioOutIob6 = 15, /**< MIO Pad 15 */
1487 kTopEarlgreyPinmuxMioOutIob7 = 16, /**< MIO Pad 16 */
1488 kTopEarlgreyPinmuxMioOutIob8 = 17, /**< MIO Pad 17 */
1489 kTopEarlgreyPinmuxMioOutIob9 = 18, /**< MIO Pad 18 */
1490 kTopEarlgreyPinmuxMioOutIob10 = 19, /**< MIO Pad 19 */
1491 kTopEarlgreyPinmuxMioOutIob11 = 20, /**< MIO Pad 20 */
1492 kTopEarlgreyPinmuxMioOutIob12 = 21, /**< MIO Pad 21 */
1493 kTopEarlgreyPinmuxMioOutIoc0 = 22, /**< MIO Pad 22 */
1494 kTopEarlgreyPinmuxMioOutIoc1 = 23, /**< MIO Pad 23 */
1495 kTopEarlgreyPinmuxMioOutIoc2 = 24, /**< MIO Pad 24 */
1496 kTopEarlgreyPinmuxMioOutIoc3 = 25, /**< MIO Pad 25 */
1497 kTopEarlgreyPinmuxMioOutIoc4 = 26, /**< MIO Pad 26 */
1498 kTopEarlgreyPinmuxMioOutIoc5 = 27, /**< MIO Pad 27 */
1499 kTopEarlgreyPinmuxMioOutIoc6 = 28, /**< MIO Pad 28 */
1500 kTopEarlgreyPinmuxMioOutIoc7 = 29, /**< MIO Pad 29 */
1501 kTopEarlgreyPinmuxMioOutIoc8 = 30, /**< MIO Pad 30 */
1502 kTopEarlgreyPinmuxMioOutIoc9 = 31, /**< MIO Pad 31 */
1503 kTopEarlgreyPinmuxMioOutIoc10 = 32, /**< MIO Pad 32 */
1504 kTopEarlgreyPinmuxMioOutIoc11 = 33, /**< MIO Pad 33 */
1505 kTopEarlgreyPinmuxMioOutIoc12 = 34, /**< MIO Pad 34 */
1506 kTopEarlgreyPinmuxMioOutIor0 = 35, /**< MIO Pad 35 */
1507 kTopEarlgreyPinmuxMioOutIor1 = 36, /**< MIO Pad 36 */
1508 kTopEarlgreyPinmuxMioOutIor2 = 37, /**< MIO Pad 37 */
1509 kTopEarlgreyPinmuxMioOutIor3 = 38, /**< MIO Pad 38 */
1510 kTopEarlgreyPinmuxMioOutIor4 = 39, /**< MIO Pad 39 */
1511 kTopEarlgreyPinmuxMioOutIor5 = 40, /**< MIO Pad 40 */
1512 kTopEarlgreyPinmuxMioOutIor6 = 41, /**< MIO Pad 41 */
1513 kTopEarlgreyPinmuxMioOutIor7 = 42, /**< MIO Pad 42 */
1514 kTopEarlgreyPinmuxMioOutIor10 = 43, /**< MIO Pad 43 */
1515 kTopEarlgreyPinmuxMioOutIor11 = 44, /**< MIO Pad 44 */
1516 kTopEarlgreyPinmuxMioOutIor12 = 45, /**< MIO Pad 45 */
1517 kTopEarlgreyPinmuxMioOutIor13 = 46, /**< MIO Pad 46 */
1518 kTopEarlgreyPinmuxMioOutLast = 46, /**< \internal Last valid mio output */
Sam Elliottfbb34ec2020-07-25 02:00:22 +01001519} top_earlgrey_pinmux_mio_out_t;
1520
1521/**
1522 * Pinmux Peripheral Output Selector.
1523 */
1524typedef enum top_earlgrey_pinmux_outsel {
1525 kTopEarlgreyPinmuxOutselConstantZero = 0, /**< Tie constantly to zero */
1526 kTopEarlgreyPinmuxOutselConstantOne = 1, /**< Tie constantly to one */
1527 kTopEarlgreyPinmuxOutselConstantHighZ = 2, /**< Tie constantly to high-Z */
Michael Schaffner74c4ff22021-03-30 15:43:46 -07001528 kTopEarlgreyPinmuxOutselGpioGpio0 = 3, /**< Peripheral Output 0 */
1529 kTopEarlgreyPinmuxOutselGpioGpio1 = 4, /**< Peripheral Output 1 */
1530 kTopEarlgreyPinmuxOutselGpioGpio2 = 5, /**< Peripheral Output 2 */
1531 kTopEarlgreyPinmuxOutselGpioGpio3 = 6, /**< Peripheral Output 3 */
1532 kTopEarlgreyPinmuxOutselGpioGpio4 = 7, /**< Peripheral Output 4 */
1533 kTopEarlgreyPinmuxOutselGpioGpio5 = 8, /**< Peripheral Output 5 */
1534 kTopEarlgreyPinmuxOutselGpioGpio6 = 9, /**< Peripheral Output 6 */
1535 kTopEarlgreyPinmuxOutselGpioGpio7 = 10, /**< Peripheral Output 7 */
1536 kTopEarlgreyPinmuxOutselGpioGpio8 = 11, /**< Peripheral Output 8 */
1537 kTopEarlgreyPinmuxOutselGpioGpio9 = 12, /**< Peripheral Output 9 */
1538 kTopEarlgreyPinmuxOutselGpioGpio10 = 13, /**< Peripheral Output 10 */
1539 kTopEarlgreyPinmuxOutselGpioGpio11 = 14, /**< Peripheral Output 11 */
1540 kTopEarlgreyPinmuxOutselGpioGpio12 = 15, /**< Peripheral Output 12 */
1541 kTopEarlgreyPinmuxOutselGpioGpio13 = 16, /**< Peripheral Output 13 */
1542 kTopEarlgreyPinmuxOutselGpioGpio14 = 17, /**< Peripheral Output 14 */
1543 kTopEarlgreyPinmuxOutselGpioGpio15 = 18, /**< Peripheral Output 15 */
1544 kTopEarlgreyPinmuxOutselGpioGpio16 = 19, /**< Peripheral Output 16 */
1545 kTopEarlgreyPinmuxOutselGpioGpio17 = 20, /**< Peripheral Output 17 */
1546 kTopEarlgreyPinmuxOutselGpioGpio18 = 21, /**< Peripheral Output 18 */
1547 kTopEarlgreyPinmuxOutselGpioGpio19 = 22, /**< Peripheral Output 19 */
1548 kTopEarlgreyPinmuxOutselGpioGpio20 = 23, /**< Peripheral Output 20 */
1549 kTopEarlgreyPinmuxOutselGpioGpio21 = 24, /**< Peripheral Output 21 */
1550 kTopEarlgreyPinmuxOutselGpioGpio22 = 25, /**< Peripheral Output 22 */
1551 kTopEarlgreyPinmuxOutselGpioGpio23 = 26, /**< Peripheral Output 23 */
1552 kTopEarlgreyPinmuxOutselGpioGpio24 = 27, /**< Peripheral Output 24 */
1553 kTopEarlgreyPinmuxOutselGpioGpio25 = 28, /**< Peripheral Output 25 */
1554 kTopEarlgreyPinmuxOutselGpioGpio26 = 29, /**< Peripheral Output 26 */
1555 kTopEarlgreyPinmuxOutselGpioGpio27 = 30, /**< Peripheral Output 27 */
1556 kTopEarlgreyPinmuxOutselGpioGpio28 = 31, /**< Peripheral Output 28 */
1557 kTopEarlgreyPinmuxOutselGpioGpio29 = 32, /**< Peripheral Output 29 */
1558 kTopEarlgreyPinmuxOutselGpioGpio30 = 33, /**< Peripheral Output 30 */
1559 kTopEarlgreyPinmuxOutselGpioGpio31 = 34, /**< Peripheral Output 31 */
1560 kTopEarlgreyPinmuxOutselI2c0Sda = 35, /**< Peripheral Output 32 */
1561 kTopEarlgreyPinmuxOutselI2c0Scl = 36, /**< Peripheral Output 33 */
1562 kTopEarlgreyPinmuxOutselI2c1Sda = 37, /**< Peripheral Output 34 */
1563 kTopEarlgreyPinmuxOutselI2c1Scl = 38, /**< Peripheral Output 35 */
1564 kTopEarlgreyPinmuxOutselI2c2Sda = 39, /**< Peripheral Output 36 */
1565 kTopEarlgreyPinmuxOutselI2c2Scl = 40, /**< Peripheral Output 37 */
1566 kTopEarlgreyPinmuxOutselSpiHost1Sd0 = 41, /**< Peripheral Output 38 */
1567 kTopEarlgreyPinmuxOutselSpiHost1Sd1 = 42, /**< Peripheral Output 39 */
1568 kTopEarlgreyPinmuxOutselSpiHost1Sd2 = 43, /**< Peripheral Output 40 */
1569 kTopEarlgreyPinmuxOutselSpiHost1Sd3 = 44, /**< Peripheral Output 41 */
1570 kTopEarlgreyPinmuxOutselUart0Tx = 45, /**< Peripheral Output 42 */
1571 kTopEarlgreyPinmuxOutselUart1Tx = 46, /**< Peripheral Output 43 */
1572 kTopEarlgreyPinmuxOutselUart2Tx = 47, /**< Peripheral Output 44 */
1573 kTopEarlgreyPinmuxOutselUart3Tx = 48, /**< Peripheral Output 45 */
1574 kTopEarlgreyPinmuxOutselPattgenPda0Tx = 49, /**< Peripheral Output 46 */
1575 kTopEarlgreyPinmuxOutselPattgenPcl0Tx = 50, /**< Peripheral Output 47 */
1576 kTopEarlgreyPinmuxOutselPattgenPda1Tx = 51, /**< Peripheral Output 48 */
1577 kTopEarlgreyPinmuxOutselPattgenPcl1Tx = 52, /**< Peripheral Output 49 */
1578 kTopEarlgreyPinmuxOutselSpiHost1Sck = 53, /**< Peripheral Output 50 */
1579 kTopEarlgreyPinmuxOutselSpiHost1Csb = 54, /**< Peripheral Output 51 */
1580 kTopEarlgreyPinmuxOutselFlashCtrlTdo = 55, /**< Peripheral Output 52 */
1581 kTopEarlgreyPinmuxOutselSensorCtrlAonAstDebugOut0 = 56, /**< Peripheral Output 53 */
1582 kTopEarlgreyPinmuxOutselSensorCtrlAonAstDebugOut1 = 57, /**< Peripheral Output 54 */
1583 kTopEarlgreyPinmuxOutselSensorCtrlAonAstDebugOut2 = 58, /**< Peripheral Output 55 */
1584 kTopEarlgreyPinmuxOutselSensorCtrlAonAstDebugOut3 = 59, /**< Peripheral Output 56 */
1585 kTopEarlgreyPinmuxOutselSensorCtrlAonAstDebugOut4 = 60, /**< Peripheral Output 57 */
1586 kTopEarlgreyPinmuxOutselSensorCtrlAonAstDebugOut5 = 61, /**< Peripheral Output 58 */
1587 kTopEarlgreyPinmuxOutselSensorCtrlAonAstDebugOut6 = 62, /**< Peripheral Output 59 */
1588 kTopEarlgreyPinmuxOutselSensorCtrlAonAstDebugOut7 = 63, /**< Peripheral Output 60 */
1589 kTopEarlgreyPinmuxOutselSensorCtrlAonAstDebugOut8 = 64, /**< Peripheral Output 61 */
Timothy Chen0249a3a2021-04-15 11:26:31 -07001590 kTopEarlgreyPinmuxOutselPwmAonPwm0 = 65, /**< Peripheral Output 62 */
1591 kTopEarlgreyPinmuxOutselPwmAonPwm1 = 66, /**< Peripheral Output 63 */
1592 kTopEarlgreyPinmuxOutselPwmAonPwm2 = 67, /**< Peripheral Output 64 */
1593 kTopEarlgreyPinmuxOutselPwmAonPwm3 = 68, /**< Peripheral Output 65 */
1594 kTopEarlgreyPinmuxOutselPwmAonPwm4 = 69, /**< Peripheral Output 66 */
1595 kTopEarlgreyPinmuxOutselPwmAonPwm5 = 70, /**< Peripheral Output 67 */
Michael Schaffnercc8945a2021-07-26 15:22:45 -07001596 kTopEarlgreyPinmuxOutselOtpCtrlTest0 = 71, /**< Peripheral Output 68 */
1597 kTopEarlgreyPinmuxOutselSysrstCtrlAonBatDisable = 72, /**< Peripheral Output 69 */
1598 kTopEarlgreyPinmuxOutselSysrstCtrlAonKey0Out = 73, /**< Peripheral Output 70 */
1599 kTopEarlgreyPinmuxOutselSysrstCtrlAonKey1Out = 74, /**< Peripheral Output 71 */
1600 kTopEarlgreyPinmuxOutselSysrstCtrlAonKey2Out = 75, /**< Peripheral Output 72 */
1601 kTopEarlgreyPinmuxOutselSysrstCtrlAonZ3Wakeup = 76, /**< Peripheral Output 73 */
1602 kTopEarlgreyPinmuxOutselLast = 76, /**< \internal Last valid outsel value */
Sam Elliottfbb34ec2020-07-25 02:00:22 +01001603} top_earlgrey_pinmux_outsel_t;
1604
Sam Elliott1625b632020-08-17 15:08:43 +01001605/**
1606 * Power Manager Wakeup Signals
1607 */
1608typedef enum top_earlgrey_power_manager_wake_ups {
Timothy Chenb74f6122021-04-26 16:57:22 -07001609 kTopEarlgreyPowerManagerWakeUpsSysrstCtrlAonGscWk = 0, /**< */
1610 kTopEarlgreyPowerManagerWakeUpsAdcCtrlAonDebugCableWakeup = 1, /**< */
1611 kTopEarlgreyPowerManagerWakeUpsPinmuxAonAonWkupReq = 2, /**< */
1612 kTopEarlgreyPowerManagerWakeUpsPinmuxAonUsbWkupReq = 3, /**< */
1613 kTopEarlgreyPowerManagerWakeUpsAonTimerAonAonTimerWkupReq = 4, /**< */
1614 kTopEarlgreyPowerManagerWakeUpsLast = 4, /**< \internal Last valid pwrmgr wakeup signal */
Sam Elliott1625b632020-08-17 15:08:43 +01001615} top_earlgrey_power_manager_wake_ups_t;
1616
Timothy Chen93a30dc2020-09-25 13:16:17 -07001617/**
1618 * Reset Manager Software Controlled Resets
1619 */
1620typedef enum top_earlgrey_reset_manager_sw_resets {
1621 kTopEarlgreyResetManagerSwResetsSpiDevice = 0, /**< */
Michael Schaffnerdbd087e2021-02-12 17:58:30 -08001622 kTopEarlgreyResetManagerSwResetsSpiHost0 = 1, /**< */
1623 kTopEarlgreyResetManagerSwResetsSpiHost1 = 2, /**< */
1624 kTopEarlgreyResetManagerSwResetsUsb = 3, /**< */
1625 kTopEarlgreyResetManagerSwResetsI2c0 = 4, /**< */
1626 kTopEarlgreyResetManagerSwResetsI2c1 = 5, /**< */
1627 kTopEarlgreyResetManagerSwResetsI2c2 = 6, /**< */
1628 kTopEarlgreyResetManagerSwResetsLast = 6, /**< \internal Last valid rstmgr software reset request */
Timothy Chen93a30dc2020-09-25 13:16:17 -07001629} top_earlgrey_reset_manager_sw_resets_t;
1630
Timothy Chenf8726cd2020-09-24 14:05:37 -07001631/**
1632 * Power Manager Reset Request Signals
1633 */
1634typedef enum top_earlgrey_power_manager_reset_requests {
Timothy Chenb74f6122021-04-26 16:57:22 -07001635 kTopEarlgreyPowerManagerResetRequestsSysrstCtrlAonGscRst = 0, /**< */
1636 kTopEarlgreyPowerManagerResetRequestsAonTimerAonAonTimerRstReq = 1, /**< */
1637 kTopEarlgreyPowerManagerResetRequestsLast = 1, /**< \internal Last valid pwrmgr reset_request signal */
Timothy Chenf8726cd2020-09-24 14:05:37 -07001638} top_earlgrey_power_manager_reset_requests_t;
1639
Sam Elliott9d7a1e32020-10-19 18:45:50 +01001640/**
1641 * Clock Manager Software-Controlled ("Gated") Clocks.
1642 *
1643 * The Software has full control over these clocks.
1644 */
1645typedef enum top_earlgrey_gateable_clocks {
1646 kTopEarlgreyGateableClocksIoDiv4Peri = 0, /**< Clock clk_io_div4_peri in group peri */
Timothy Chen04192e02021-02-19 16:16:25 -08001647 kTopEarlgreyGateableClocksIoDiv2Peri = 1, /**< Clock clk_io_div2_peri in group peri */
Timothy Chenc1c16752021-04-28 14:03:02 -07001648 kTopEarlgreyGateableClocksIoPeri = 2, /**< Clock clk_io_peri in group peri */
1649 kTopEarlgreyGateableClocksUsbPeri = 3, /**< Clock clk_usb_peri in group peri */
1650 kTopEarlgreyGateableClocksLast = 3, /**< \internal Last Valid Gateable Clock */
Sam Elliott9d7a1e32020-10-19 18:45:50 +01001651} top_earlgrey_gateable_clocks_t;
1652
1653/**
1654 * Clock Manager Software-Hinted Clocks.
1655 *
1656 * The Software has partial control over these clocks. It can ask them to stop,
1657 * but the clock manager is in control of whether the clock actually is stopped.
1658 */
1659typedef enum top_earlgrey_hintable_clocks {
1660 kTopEarlgreyHintableClocksMainAes = 0, /**< Clock clk_main_aes in group trans */
1661 kTopEarlgreyHintableClocksMainHmac = 1, /**< Clock clk_main_hmac in group trans */
1662 kTopEarlgreyHintableClocksMainKmac = 2, /**< Clock clk_main_kmac in group trans */
1663 kTopEarlgreyHintableClocksMainOtbn = 3, /**< Clock clk_main_otbn in group trans */
Greg Chadwick5e8ce9d2021-06-16 17:25:27 +01001664 kTopEarlgreyHintableClocksIoDiv4Otbn = 4, /**< Clock clk_io_div4_otbn in group trans */
1665 kTopEarlgreyHintableClocksLast = 4, /**< \internal Last Valid Hintable Clock */
Sam Elliott9d7a1e32020-10-19 18:45:50 +01001666} top_earlgrey_hintable_clocks_t;
Timothy Chenf8726cd2020-09-24 14:05:37 -07001667
Sam Elliott611be612020-05-22 12:51:02 +01001668// Header Extern Guard
1669#ifdef __cplusplus
1670} // extern "C"
1671#endif
1672
Sam Elliott37d4fbe2020-04-22 14:05:49 +01001673#endif // OPENTITAN_HW_TOP_EARLGREY_SW_AUTOGEN_TOP_EARLGREY_H_