1// Auto-generated renode platform config for OpenTitan at commit f243e6802143374741739d2c164c4f2f61697669
2// OpenTitan variant earlgrey
3
4//CPUs
5cpu0: CPU.IbexRiscV32 @ sysbus
6    hartId: 0
7    cpuType: "rv32imacb_zicsr_zifencei"
8    timeProvider: empty
9
10// Memory
11rom: Memory.MappedMemory @ sysbus 0x00008000
12    size: 0x8000
13
14rom_ctrl: MemoryControllers.OpenTitan_ROMController @ sysbus 0x411e0000
15    rom: rom
16    nonce: "755CF00BD7432C3F"
17    key: "8CD4E7EFF1B9EC59CE812447C5714595"
18    FatalAlert -> alert_handler@60
19
20sram_ctrl: MemoryControllers.OpenTitan_SRAMController @ sysbus 0x411c0000
21    FatalError -> alert_handler@59
22
23//FLASH
24flash: Memory.MappedMemory @ {sysbus 0x20000000; sysbus 0x80000000}
25    size: 0x100000
26
27flash_ctrl: MTD.OpenTitan_FlashController @ sysbus 0x41000000
28    flash: flash
29    ProgramEmptyIRQ -> rv_plic@159
30    ProgramLevelIRQ -> rv_plic@160
31    ReadFullIRQ -> rv_plic@161
32    ReadLevelIRQ -> rv_plic@162
33    OperationDoneIRQ -> rv_plic@163
34    CorrectableErrorIRQ -> rv_plic@164
35    RecoverableAlert -> alert_handler@35
36    FatalStandardAlert -> alert_handler@36
37    FatalAlert -> alert_handler@37
38    FatalPrimitiveFlashAlert -> alert_handler@38
39    RecoverablePrimitiveFlashAlert -> alert_handler@39
40
41//RAM
42ram_ret_aon: Memory.MappedMemory @ sysbus 0x40600000
43    size: 0x1000
44
45ram_main: Memory.MappedMemory @ sysbus 0x10000000
46    size: 0x20000
47
48// UARTs
49uart0: UART.OpenTitan_UART @ sysbus 0x40000000
50    TxWatermarkIRQ -> rv_plic@1
51    RxWatermarkIRQ -> rv_plic@2
52    TxEmptyIRQ -> rv_plic@3
53    RxOverflowIRQ -> rv_plic@4
54    RxFrameErrorIRQ -> rv_plic@5
55    RxBreakErrorIRQ -> rv_plic@6
56    RxTimeoutIRQ -> rv_plic@7
57    RxParityErrorIRQ -> rv_plic@8
58    FatalAlert -> alert_handler@0
59
60uart1: UART.OpenTitan_UART @ sysbus 0x40010000
61    TxWatermarkIRQ -> rv_plic@9
62    RxWatermarkIRQ -> rv_plic@10
63    TxEmptyIRQ -> rv_plic@11
64    RxOverflowIRQ -> rv_plic@12
65    RxFrameErrorIRQ -> rv_plic@13
66    RxBreakErrorIRQ -> rv_plic@14
67    RxTimeoutIRQ -> rv_plic@15
68    RxParityErrorIRQ -> rv_plic@16
69    FatalAlert -> alert_handler@1
70
71uart2: UART.OpenTitan_UART @ sysbus 0x40020000
72    TxWatermarkIRQ -> rv_plic@17
73    RxWatermarkIRQ -> rv_plic@18
74    TxEmptyIRQ -> rv_plic@19
75    RxOverflowIRQ -> rv_plic@20
76    RxFrameErrorIRQ -> rv_plic@21
77    RxBreakErrorIRQ -> rv_plic@22
78    RxTimeoutIRQ -> rv_plic@23
79    RxParityErrorIRQ -> rv_plic@24
80    FatalAlert -> alert_handler@2
81
82uart3: UART.OpenTitan_UART @ sysbus 0x40030000
83    TxWatermarkIRQ -> rv_plic@25
84    RxWatermarkIRQ -> rv_plic@26
85    TxEmptyIRQ -> rv_plic@27
86    RxOverflowIRQ -> rv_plic@28
87    RxFrameErrorIRQ -> rv_plic@29
88    RxBreakErrorIRQ -> rv_plic@30
89    RxTimeoutIRQ -> rv_plic@31
90    RxParityErrorIRQ -> rv_plic@32
91    FatalAlert -> alert_handler@3
92
93// I2Cs
94i2c0: I2C.OpenTitan_I2C @ sysbus 0x40080000
95    FatalAlert -> alert_handler@6
96
97i2c1: I2C.OpenTitan_I2C @ sysbus 0x40090000
98    FatalAlert -> alert_handler@7
99
100i2c2: I2C.OpenTitan_I2C @ sysbus 0x400A0000
101    FatalAlert -> alert_handler@8
102
103// SPI
104spi_host0: SPI.OpenTitan_SpiHost@ sysbus 0x40300000
105    FatalAlert -> alert_handler@19
106    Error -> rv_plic@131
107    SpiEvent -> rv_plic@132
108    numberOfCSLines: 32
109
110spi_host1: SPI.OpenTitan_SpiHost@ sysbus 0x40310000
111    FatalAlert -> alert_handler@20
112    Error -> rv_plic@133
113    SpiEvent -> rv_plic@134
114    numberOfCSLines: 32
115
116spi_device: SPI.OpenTitan_SpiDevice @ sysbus 0x40050000
117    FatalAlert -> alert_handler@5
118
119// GPIOs
120gpio: GPIOPort.OpenTitan_GPIO @ sysbus 0x40040000
121    IRQ -> rv_plic@33
122    FatalAlert -> alert_handler@4
123
124// AES
125aes: Miscellaneous.OpenTitan_AES @ sysbus 0x41100000
126    UpdateErrorAlert -> alert_handler@42
127    FatalFaultAlert -> alert_handler@43
128
129// Key Manager
130keymgr: Miscellaneous.OpenTitan_KeyManager @ sysbus 0x41140000
131    aes: aes
132    kmac: kmac
133    romController: rom_ctrl
134    deviceId: "BF5EA92044DAC540CFD1A00105568DFA97D9C35EA0407D71320B5E0434DB637F"
135    lifeCycleDiversificationConstant: "2F1A43C03DD4FF9B887AB7521CA6CBD8"
136    creatorKey: "9152E32C9380A4BCC3E0AB263581E6B0E8825186E1E445631646E8BEF8C45D47"
137    ownerKey: "FA365DF52DA48CD752FB3A026A8E608F0098CFE5FA9810494829D0CD9479EB78"
138    rootKey: "EFB7EA7EE90093CF4AFFD9AAA2D6C0EC446CFDF5F2D5A0BFD7E2D93EDC63A10256D24A00181DE99E0F690B447A8DDE2A1FFB8BC306707107AA6E2410F15CFC37"
139    softOutputSeed: "3DAAEF20E285FA658FDD1B426C037151B16C8D444C444F396F4479CB795CF94B"
140    hardOutputSeed: "9E409D18381BD5D56821E2985E47997105C4900F255574675985B210E1A968E4"
141    destinationAesSeed: "5E5B35E460FDAF1FF382AB0195E33689D99BCEBF2B79B6839264EDF4DE2B39F3"
142    destinationKmacSeed: "94059891A38BD1D16C763BBD90347E58152D7FCA9938036525AAA3F89E3DE8F1"
143    destinationOtbnSeed: "278645E11D7CAC76310205E19CD3F2ED294A279F3C6D0649A905CC9B10A67A16"
144    destinationNoneSeed: "7A9E0F6E3D591A7FD8C7BA264AF78F28AEE0D28E4D638D95D1806E870336CD96"
145    revisionSeed: "414C190AD0A09D144FFC0C0FEA081CEF945B641F096B9F3E9A494BA35FCFEF0D"
146    creatorIdentitySeed: "FB223E8AB704F249EE3FA822276C45E588ED40CF52C8FAE2D054A71149771822"
147    ownerIntermediateIdentitySeed: "2EC37360E23D4DDA559ADABCF099937FEBBF048FAC328BA1BDEE0CACA987BE4A"
148    ownerIdentitySeed: "4ABF486B16740B20BC32B13FF07A13FF21CE605E0AC019858F73D707CD0EC1D3"
149    OperationDoneIRQ -> rv_plic@172
150    RecoverableAlert -> alert_handler@49
151    FatalAlert -> alert_handler@50
152
153// CSRNG
154csrng: Miscellaneous.OpenTitan_CSRNG @ sysbus 0x41150000
155    entropySource: entropy_src
156    RequestCompletedIRQ -> rv_plic@173
157    EntropyeRequestedIRQ -> rv_plic@174
158    HardwareInstanceIRQ -> rv_plic@175
159    FatalErrorIRQ -> rv_plic@176
160    RecoverableAlert -> alert_handler@51
161    FatalAlert -> alert_handler@52
162
163// HMAC
164hmac: Miscellaneous.OpenTitan_HMAC @ sysbus 0x41110000
165    FatalAlert -> alert_handler@44
166
167// KMAC
168kmac: Miscellaneous.OpenTitan_KMAC @ sysbus 0x41120000
169    KmacDoneIRQ -> rv_plic@168
170    FifoEmptyIRQ -> rv_plic@169
171    KmacErrorIRQ -> rv_plic@170
172    RecoverableAlert -> alert_handler@45
173    FatalAlert -> alert_handler@46
174
175// Timers
176rv_timer: Timers.OpenTitan_Timer @ sysbus 0x40100000
177    IRQ -> cpu0@7
178    FatalAlert -> alert_handler@10
179
180timer_aon: Timers.OpenTitan_AonTimer @ sysbus 0x40470000
181    powerManager: pwrmgr_aon
182    resetManager: rstmgr_aon
183    FatalAlert -> alert_handler@31
184    WakeupTimerExpired -> rv_plic@155
185    WatchdogTimerBark -> rv_plic@156
186
187// Power Manager
188pwrmgr_aon: Miscellaneous.OpenTitan_PowerManager @ sysbus 0x40400000
189    resetManager: rstmgr_aon
190    FatalAlert -> alert_handler@22
191
192// Reset Manager
193rstmgr_aon: Miscellaneous.OpenTitan_ResetManager @ sysbus 0x40410000
194    resetPC: 0x00008084
195    FatalAlert -> alert_handler@23
196    FatalConsistencyAlert -> alert_handler@24
197    init:
198        MarkAsSkippedOnLifeCycleReset sysbus.rstmgr_aon
199        MarkAsSkippedOnLifeCycleReset sysbus.pwrmgr_aon
200        MarkAsSkippedOnSystemReset sysbus.rstmgr_aon
201        MarkAsSkippedOnSystemReset sysbus.pwrmgr_aon
202        MarkAsSkippedOnSystemReset sysbus.flash_ctrl
203        MarkAsSkippedOnLowPowerExitReset sysbus.rstmgr_aon
204        MarkAsSkippedOnLowPowerExitReset sysbus.pwrmgr_aon
205        MarkAsSkippedOnLowPowerExitReset sysbus.timer_aon
206        MarkAsSkippedOnLowPowerExitReset sysbus.ram_ret_aon
207
208// One Time Programmable Memory Controller
209otp_ctrl: Miscellaneous.OpenTitan_OneTimeProgrammableMemoryController @ sysbus 0x40130000
210    FatalMacroAlert -> alert_handler@11
211    FatalCheckErrorAlert -> alert_handler@12
212    FatalBusAlert -> alert_handler@13
213    FatalPrimitiveOtpAlert -> alert_handler@14
214    RecoverablePrimitiveOtpAlert -> alert_handler@15
215    AValuesChain: "8638C62621EC19E8966416165252225F03B9C97821B7B107381030AB3D20AB124694BF85E417495A"
216    BValuesChain: "E679DF6E77EDDBECDE74B677DFF23AFFC3BFFB79B5FFFD87F930B4FB3F6BFF9A5F97BFD7FCBFE9FF"
217    CValuesChain: "0C1B73141BA20D421FD124302E8F443DE02C272E2CEEC1138DAD07CBD24A18F583A34D51A42A1E702A7E90F05A81D12E"
218    DValuesChain: "3E1FFB763FE3CDD61FF97735BEBF5CFDE5BDB7AFAEFEE19B9FBD9FCFD2EF3CF7CFEFFD53A7EE7FF36BFE92FDFA95F9AE"
219
220// Life Cycle Controller
221lc_ctrl: Miscellaneous.OpenTitan_LifeCycleController @ sysbus 0x40140000
222    resetManager: rstmgr_aon
223    otpController: otp_ctrl
224    FatalProgAlert -> alert_handler@16
225    FatalStateAlert -> alert_handler@17
226    FatalBusAlert -> alert_handler@18
227    DeviceId: "BF5EA92044DAC540CFD1A00105568DFA97D9C35EA0407D71320B5E0434DB637F"
228    TestExitToken: "000102030405060708090A0B0C0D0E0F"
229    TestUnlockToken: "79DEF38F41A9B895F6BDF341BEADA9B6"
230    RMAToken: "4D89B62D287CB957C2500042306DFD57"
231
232// PLIC with 187 sources
233rv_plic: IRQControllers.OpenTitan_PlatformLevelInterruptController @ sysbus 0x48000000
234    0 -> cpu0@11
235    FatalAlert -> alert_handler@41
236    numberOfSources: 184
237    numberOfContexts: 1
238
239// Simulated SRAM used to indicate test status to simulator
240swteststatus: Miscellaneous.OpenTitan_VerilatorSwTestStatus @ sysbus 0x411f0080
241
242entropy_src: Miscellaneous.OpenTitan_EntropySource @ sysbus 0x41160000
243    RecoverableAlert -> alert_handler@53
244    FatalAlert -> alert_handler@54
245    EsEntropyValidIRQ -> rv_plic@177
246    EsHealthTestFailedIRQ -> rv_plic@178
247    EsObserveFifoReadyIRQ -> rv_plic@179
248    EsFatalErrIRQ -> rv_plic@180
249
250edn0: Miscellaneous.OpenTitan_EntropyDistributionNetwork @ sysbus 0x41170000
251    cryptoRandomGenerator: csrng
252    RecoverableAlert -> alert_handler@55
253    FatalAlert -> alert_handler@56
254    CommandRequestDone -> rv_plic@181
255    FatalError -> rv_plic@182
256
257edn1: Miscellaneous.OpenTitan_EntropyDistributionNetwork @ sysbus 0x41180000
258    cryptoRandomGenerator: csrng
259    RecoverableAlert -> alert_handler@57
260    FatalAlert -> alert_handler@58
261    CommandRequestDone -> rv_plic@183
262    FatalError -> rv_plic@184
263
264alert_handler: Miscellaneous.OpenTitan_AlertHandler @ sysbus 0x40150000
265    ClassAInterrupt -> rv_plic@127
266    ClassBInterrupt -> rv_plic@128
267    ClassCInterrupt -> rv_plic@129
268    ClassDInterrupt -> rv_plic@130
269
270otbn: Miscellaneous.OpenTitan_BigNumberAccelerator @ sysbus 0x41130000
271    DoneIRQ -> rv_plic@171
272    FatalAlert -> alert_handler@47
273    RecoverableAlert -> alert_handler@48
274
275sysrst_ctrl: Miscellaneous.OpenTitan_SystemResetControl @ sysbus 0x40430000
276    resetManager: rstmgr_aon
277    FatalFault -> alert_handler@27
278
279clock_manager: Miscellaneous.OpenTitan_ClockManager @ sysbus 0x40420000
280    otbn: otbn
281
282RV_CORE_IBEX_RND_DATA: Python.PythonPeripheral @ sysbus 0x411F0058
283    size: 0x4
284    initable: true
285    script: "import random; rand = int(random.random()*2**32); request.value = rand"
286
287sysbus:
288    init:
289        Tag <0x40000000 0x1000> "OPENTITAN_EARLGREY_DEV_UART0" 0
290        Tag <0x40010000 0x1000> "OPENTITAN_EARLGREY_DEV_UART1" 0
291        Tag <0x40020000 0x1000> "OPENTITAN_EARLGREY_DEV_UART2" 0
292        Tag <0x40030000 0x1000> "OPENTITAN_EARLGREY_DEV_UART3" 0
293        Tag <0x40040000 0x1000> "OPENTITAN_EARLGREY_DEV_GPIO" 0
294        Tag <0x40080000 0x1000> "OPENTITAN_EARLGREY_DEV_I2C0" 0
295        Tag <0x40090000 0x1000> "OPENTITAN_EARLGREY_DEV_I2C1" 0
296        Tag <0x400A0000 0x1000> "OPENTITAN_EARLGREY_DEV_I2C2" 0
297        Tag <0x400E0000 0x1000> "OPENTITAN_EARLGREY_DEV_PATTGEN" 0
298        Tag <0x40100000 0x1000> "OPENTITAN_EARLGREY_DEV_RV_TIMER" 0
299        Tag <0x40130000 0x1000> "OPENTITAN_EARLGREY_DEV_OTP_CTRL" 0
300        Tag <0x40140000 0x1000> "OPENTITAN_EARLGREY_DEV_LC_CTRL" 0
301        Tag <0x40150000 0x1000> "OPENTITAN_EARLGREY_DEV_ALERT_HANDLER" 0
302        Tag <0x40300000 0x1000> "OPENTITAN_EARLGREY_DEV_SPI_HOST0" 0
303        Tag <0x40310000 0x1000> "OPENTITAN_EARLGREY_DEV_SPI_HOST1" 0
304        Tag <0x40320000 0x1000> "OPENTITAN_EARLGREY_DEV_USBDEV" 0
305        Tag <0x40400000 0x1000> "OPENTITAN_EARLGREY_DEV_PWRMGR_AON" 0
306        Tag <0x40410000 0x1000> "OPENTITAN_EARLGREY_DEV_RSTMGR_AON" 0
307        Tag <0x40420000 0x1000> "OPENTITAN_EARLGREY_DEV_CLKMGR_AON" 0
308        Tag <0x40440000 0x1000> "OPENTITAN_EARLGREY_DEV_ADC_CTRL_AON" 0
309        Tag <0x40450000 0x1000> "OPENTITAN_EARLGREY_DEV_PWM_AON" 0
310        Tag <0x40460000 0x1000> "OPENTITAN_EARLGREY_DEV_PINMUX_AON" 1
311        Tag <0x40470000 0x1000> "OPENTITAN_EARLGREY_DEV_AON_TIMER_AON" 0
312        Tag <0x40480000 0x1000> "OPENTITAN_EARLGREY_DEV_AST" 0
313        Tag <0x40490000 0x1000> "OPENTITAN_EARLGREY_DEV_SENSOR_CTRL" 0
314        Tag <0x40500000 0x1000> "OPENTITAN_EARLGREY_DEV_SRAM_CTRL_RET_AON" 0
315        Tag <0x41000000 0x1000> "OPENTITAN_EARLGREY_DEV_FLASH_CTRL" 0
316        Tag <0x00010000 0x1000> "OPENTITAN_EARLGREY_DEV_RV_DM" 0
317        Tag <0x48000000 0x8000000> "OPENTITAN_EARLGREY_DEV_RV_PLIC" 0
318        Tag <0x41100000 0x1000> "OPENTITAN_EARLGREY_DEV_AES" 0
319        Tag <0x41110000 0x1000> "OPENTITAN_EARLGREY_DEV_HMAC" 0
320        Tag <0x41120000 0x1000> "OPENTITAN_EARLGREY_DEV_KMAC" 0
321        Tag <0x41140000 0x1000> "OPENTITAN_EARLGREY_DEV_KEYMGR" 0
322        Tag <0x41150000 0x1000> "OPENTITAN_EARLGREY_DEV_CSRNG" 0
323        Tag <0x41160000 0x1000> "OPENTITAN_EARLGREY_DEV_ENTROPY_SRC" 0
324        Tag <0x41170000 0x1000> "OPENTITAN_EARLGREY_DEV_EDN0" 0
325        Tag <0x41180000 0x1000> "OPENTITAN_EARLGREY_DEV_EDN1" 0
326        Tag <0x411C0000 0x1000> "OPENTITAN_EARLGREY_DEV_SRAM_CTRL_MAIN" 0
327        Tag <0x00008000 0x1000> "OPENTITAN_EARLGREY_DEV_ROM_CTRL" 0
328        Tag <0x411F0000 0x1000> "OPENTITAN_EARLGREY_DEV_RV_CORE_IBEX" 0
329        Tag <0x411F005C 0x4> "OPENTITAN_EARLGREY_DEV_RV_CORE_IBEX_RND_STATUS" 1
330
331