1cpu: CPU.CortexM @ sysbus
2    cpuType: "cortex-m7"
3    numberOfMPURegions: 16
4    nvic: nvic
5
6nvic: IRQControllers.NVIC @ sysbus 0xE000E000
7    systickFrequency: 96_000_000
8    priorityMask: 0xF0
9    -> cpu@0
10
11exti: IRQControllers.STM32H7_EXTI @ sysbus 0x58000000
12    [0-4] -> nvic@[6-10]
13    [5-9] -> nvicInput23@[0-4]
14    [10-15] -> nvicInput40@[0-5]
15    [16-19] -> nvic@[1, 41, 2, 3]
16    [20, 21] -> nvicInput137@[0-1]
17    [22-24] -> nvic@[31, 33, 72]
18    [26-29] -> nvic@[37-39, 71]
19    [30-33] -> nvic@[52, 53, 82, 83]
20    [34-35] -> nvicInput142@[0-1]
21    [36-40] -> nvic@[35, 36, 51, 84, 85]
22    41 -> nvicInput86@0
23    [42-44] -> nvic@[119, 76, 100]
24    [47, 48, 50, 52, 53] -> nvic@[93, 138-141]
25    54 -> nvic@115
26    [55-60] -> nvicInput149@[0-5]
27    [61-64] -> nvic@[5, 95, 96, 142]
28    65 -> nvicInput86@1
29    [66-73] -> nvic@[129-136]
30    [74-76] -> nvic@[128, 127, 146]
31    [85, 86] -> nvic@[94, 61]
32
33nvicInput23: Miscellaneous.CombinedInput @ none
34    numberOfInputs: 5
35    -> nvic@23
36
37nvicInput40: Miscellaneous.CombinedInput @ none
38    numberOfInputs: 6
39    -> nvic@40
40
41nvicInput86: Miscellaneous.CombinedInput @ none
42    numberOfInputs: 2
43    -> nvic@86
44
45nvicInput137: Miscellaneous.CombinedInput @ none
46    numberOfInputs: 2
47    -> nvic@137
48
49nvicInput142: Miscellaneous.CombinedInput @ none
50    numberOfInputs: 2
51    -> nvic@142
52
53nvicInput149: Miscellaneous.CombinedInput @ none
54    numberOfInputs: 6
55    -> nvic@149
56
57// May be reserved
58sdramBank2: Memory.MappedMemory @ sysbus 0xD0000000
59    size: 0x10000000
60
61sdramBank1: Memory.MappedMemory @ sysbus 0xC0000000
62    size: 0x10000000
63
64flashController: MTD.STM32H7_FlashController @ sysbus 0x52002000
65    flash1: flashBank1
66    flash2: flashBank2
67
68externalFlash: Memory.MappedMemory @ sysbus 0x80000000
69    size: 0x10000000
70
71flashBank1: Memory.MappedMemory @ sysbus 0x08000000
72    size: 0x100000
73
74// May be reserved
75sramBank2: Memory.MappedMemory @ sysbus 0x70000000
76    size: 0x10000000
77
78sramBank1: Memory.MappedMemory @ sysbus 0x60000000
79    size: 0x10000000
80
81adc3: Analog.STM32F0_ADC @ sysbus 0x58026000
82    referenceVoltage: 3.3
83    externalEventFrequency: 1000
84    -> exti@75
85
86bdma: DMA.STM32LDMA @ sysbus 0x58025400
87    [0-7] -> exti@[66-73]
88
89gpioPortK: GPIOPort.STM32_GPIOPort @ sysbus <0x58022800, +0x400>
90    numberOfAFs: 16
91    [0-7] -> syscfg#10@[0-7]
92
93gpioPortJ: GPIOPort.STM32_GPIOPort @ sysbus <0x58022400, +0x400>
94    numberOfAFs: 16
95    [0-15] -> syscfg#9@[0-15]
96
97gpioPortI: GPIOPort.STM32_GPIOPort @ sysbus <0x58022000, +0x400>
98    numberOfAFs: 16
99    [0-15] -> syscfg#8@[0-15]
100
101gpioPortH: GPIOPort.STM32_GPIOPort @ sysbus <0x58021C00, +0x400>
102    numberOfAFs: 16
103    [0-15] -> syscfg#7@[0-15]
104
105gpioPortG: GPIOPort.STM32_GPIOPort @ sysbus <0x58021800, +0x400>
106    numberOfAFs: 16
107    [0-15] -> syscfg#6@[0-15]
108
109gpioPortF: GPIOPort.STM32_GPIOPort @ sysbus <0x58021400, +0x400>
110    numberOfAFs: 16
111    [0-15] -> syscfg#5@[0-15]
112
113gpioPortE: GPIOPort.STM32_GPIOPort @ sysbus <0x58021000, +0x400>
114    numberOfAFs: 16
115    [0-15] -> syscfg#4@[0-15]
116
117gpioPortD: GPIOPort.STM32_GPIOPort @ sysbus <0x58020C00, +0x400>
118    numberOfAFs: 16
119    [0-15] -> syscfg#3@[0-15]
120
121gpioPortC: GPIOPort.STM32_GPIOPort @ sysbus <0x58020800, +0x400>
122    numberOfAFs: 16
123    [0-15] -> syscfg#2@[0-15]
124
125gpioPortB: GPIOPort.STM32_GPIOPort @ sysbus <0x58020400, +0x400>
126    numberOfAFs: 16
127    [0-15] -> syscfg#1@[0-15]
128
129gpioPortA: GPIOPort.STM32_GPIOPort @ sysbus <0x58020000, +0x400>
130    numberOfAFs: 16
131    [0-15] -> syscfg#0@[0-15]
132
133rtc: Timers.STM32F4_RTC @ sysbus 0x58004000
134    AlarmIRQ -> exti@17
135    WakeupIRQ -> exti@19
136
137spi4: SPI.STM32H7_SPI @ sysbus 0x40013400
138    DMARecieve -> dma2@4
139
140i2c4: I2C.STM32F7_I2C @ sysbus 0x58001C00
141    EventInterrupt -> exti@62
142    ErrorInterrupt -> exti@63
143
144lpuart1: UART.STM32F7_USART @ sysbus 0x58000C00
145    frequency: 125000000
146    IRQ -> exti@64
147
148syscfg: Miscellaneous.STM32_SYSCFG @ sysbus 0x58000400
149    [0-15] -> exti@[0-15]
150
151dma2d: DMA.STM32DMA2D @ sysbus 0x52001000
152    -> nvic@90
153
154ltdc: Video.STM32LTDC @ sysbus 0x50001000
155    -> nvic@88
156
157adcM1S2: Analog.STM32F0_ADC @ sysbus 0x40022000
158    referenceVoltage: 3.3
159    externalEventFrequency: 1000
160    -> nvic@18
161
162rng: Miscellaneous.STM32F4_RNG @ sysbus 0x48021800
163    -> nvic@80
164
165dma2: DMA.STM32DMA @ sysbus 0x40020400
166    [0-7] -> nvic@[56-60, 68-70]
167
168dma1: DMA.STM32DMA @ sysbus 0x40020000
169    [0-7] -> nvic@[11-17, 47]
170
171timer17: Timers.STM32_Timer @ sysbus 0x40014800
172    initialLimit: 0xffff
173    frequency: 250000000
174    -> nvic@118
175
176timer16: Timers.STM32_Timer @ sysbus 0x40014400
177    initialLimit: 0xffff
178    frequency: 250000000
179    -> nvic@117
180
181timer15: Timers.STM32_Timer @ sysbus 0x40014000
182    initialLimit: 0xffff
183    frequency: 250000000
184    -> nvic@116
185
186usart6: UART.STM32F7_USART @ sysbus 0x40011400
187    frequency: 200000000
188    IRQ -> exti@29
189
190usart1: UART.STM32F7_USART @ sysbus 0x40011000
191    frequency: 200000000
192    IRQ -> exti@26
193
194timer8: Timers.STM32_Timer @ sysbus 0x40010400
195    initialLimit: 0xffff
196    frequency: 250000000
197
198timer1: Timers.STM32_Timer @ sysbus 0x40010000
199    initialLimit: 0xffff
200    frequency: 250000000
201
202uart8: UART.STM32F7_USART @ sysbus 0x40007C00
203    frequency: 125000000
204    IRQ -> exti@33
205
206uart7: UART.STM32F7_USART @ sysbus 0x40007800
207    frequency: 125000000
208    IRQ -> exti@32
209
210i2c3: I2C.STM32F7_I2C @ sysbus 0x40005C00
211    EventInterrupt -> exti@24
212    ErrorInterrupt -> nvic@73
213
214i2c2: I2C.STM32F7_I2C @ sysbus 0x40005800
215    EventInterrupt -> exti@23
216    ErrorInterrupt -> nvic@34
217
218i2c1: I2C.STM32F7_I2C @ sysbus 0x40005400
219    EventInterrupt -> exti@22
220    ErrorInterrupt -> nvic@32
221
222uart5: UART.STM32F7_USART @ sysbus 0x40005000
223    frequency: 125000000
224    IRQ -> exti@31
225
226uart4: UART.STM32F7_USART @ sysbus 0x40004C00
227    frequency: 125000000
228    IRQ -> exti@30
229
230usart3: UART.STM32F7_USART @ sysbus 0x40004800
231    frequency: 125000000
232    IRQ -> exti@28
233
234usart2: UART.STM32F7_USART @ sysbus 0x40004400
235    frequency: 125000000
236    IRQ -> exti@27
237
238timer14: Timers.STM32_Timer @ sysbus 0x40002000
239    initialLimit: 0xffff
240    frequency: 250000000
241    -> nvic@45
242
243timer13: Timers.STM32_Timer @ sysbus 0x40001C00
244    initialLimit: 0xffff
245    frequency: 250000000
246    -> nvic@44
247
248timer12: Timers.STM32_Timer @ sysbus 0x40001800
249    initialLimit: 0xffff
250    frequency: 250000000
251    -> nvic@43
252
253timer7: Timers.STM32_Timer @ sysbus 0x40001400
254    initialLimit: 0xffff
255    frequency: 250000000
256    -> nvic@55
257
258timer6: Timers.STM32_Timer @ sysbus 0x40001000
259    initialLimit: 0xffff
260    frequency: 250000000
261    -> nvic@54
262
263timer5: Timers.STM32_Timer @ sysbus 0x40000C00
264    initialLimit: 0xffffffff
265    frequency: 250000000
266    -> nvic@50
267
268timer4: Timers.STM32_Timer @ sysbus 0x40000800
269    initialLimit: 0xffff
270    frequency: 250000000
271    -> nvic@30
272
273timer3: Timers.STM32_Timer @ sysbus 0x40000400
274    initialLimit: 0xffff
275    frequency: 250000000
276    -> nvic@29
277
278timer2: Timers.STM32_Timer @ sysbus 0x40000000
279    initialLimit: 0xffffffff
280    frequency: 250000000
281    -> nvic@28
282
283fdcan1: CAN.MCAN @ sysbus 0x4000A000
284    Line0 -> nvic@19
285    Line1 -> nvic@21
286    Calibration -> nvic@63
287    messageRAM: canMessageRAM
288
289fdcan2: CAN.MCAN @ sysbus 0x4000A400
290    Line0 -> nvic@20
291    Line1 -> nvic@22
292    Calibration -> nvic@63
293    messageRAM: canMessageRAM
294
295canMessageRAM: Memory.ArrayMemory @ sysbus <0x4000AC00, +0x2800>
296    size: 0x2800
297
298backupSram: Memory.MappedMemory @ sysbus 0x38800000
299    size: 0x1000
300
301sram4: Memory.MappedMemory @ sysbus 0x38000000
302    size: 0x10000
303
304sram3: Memory.MappedMemory @ sysbus 0x30040000
305    size: 0x8000
306
307sram2: Memory.MappedMemory @ sysbus 0x30020000
308    size: 0x20000
309
310sram1: Memory.MappedMemory @ sysbus 0x30000000
311    size: 0x20000
312
313axiSram: Memory.MappedMemory @ sysbus 0x24000000
314    size: 0x80000
315
316dtcm: Memory.MappedMemory @ sysbus 0x20000000
317    size: 0x20000
318
319ram: Memory.MappedMemory @ sysbus 0x1FF00000
320    size: 0x20000
321
322flashBank2: Memory.MappedMemory @ sysbus 0x08100000
323    size: 0x100000
324
325itcm: Memory.MappedMemory @ sysbus 0x00000000
326    size: 0x10000
327
328rcc: Miscellaneous.STM32H7_RCC @ sysbus 0x58024400
329
330crc: CRC.STM32_CRC @ sysbus 0x58024C00
331    series: STM32Series.F0
332    configurablePoly: true
333
334lptimer1: Timers.STM32L0_LpTimer @ sysbus 0x40002400
335    frequency: 32000000
336    -> exti@47
337
338lptimer2: Timers.STM32L0_LpTimer @ sysbus 0x58002400
339    frequency: 32000000
340    -> exti@48
341
342lptimer3: Timers.STM32L0_LpTimer @ sysbus 0x58002800
343    frequency: 32000000
344    -> exti@50
345
346lptimer4: Timers.STM32L0_LpTimer @ sysbus 0x58002C00
347    frequency: 32000000
348    -> exti@52
349
350lptimer5: Timers.STM32L0_LpTimer @ sysbus 0x58003000
351    frequency: 32000000
352    -> exti@53
353
354watchdog: Timers.STM32_IndependentWatchdog @ sysbus 0x58004800
355    frequency: 56000
356
357hsem: Miscellaneous.STM32H7_HardwareSemaphore @ sysbus 0x58026400
358
359ethernet: Network.SynopsysDWCEthernetQualityOfService @ {
360    sysbus 0x40028000;
361    sysbus new Bus.BusMultiRegistration { address: 0x40028C00; size: 0x200; region: "mtl" };
362    sysbus new Bus.BusMultiRegistration { address: 0x40029000; size: 0x200; region: "dma" }
363    }
364    systemClockFrequency: 50000000
365    -> nvic@61
366
367qspi: SPI.STM32H7_QuadSPI @ sysbus 0x52005000
368    -> nvic@92
369
370sysbus:
371    init:
372        Tag <0x58027000, 0x580273FF> "RAMECC3"
373        Tag <0x58025800, 0x58025BFF> "DMAMUX2"
374        Tag <0x58024800, 0x58024BFF> "PWR"
375        Tag <0x58024818, 0x58024818> "D3CR" 0x2000  // VOSRDY flag (b13) indicates the voltage was properly set.
376        Tag <0x58005400, 0x580057FF> "SAI4"
377        Tag <0x58003C00, 0x58003FFF> "VREF"
378        Tag <0x58003800, 0x58003BFF> "COMP1_-_COMP2"
379        Tag <0x58001400, 0x580017FF> "SPI6"
380        Tag <0x52009000, 0x520093FF> "RAMECC1"
381        Tag <0x52008000, 0x52008FFF> "Delay_Block_SDMMC1"
382        Tag <0x52007000, 0x52007FFF> "SDMMC1"
383        Tag <0x52006000, 0x52006FFF> "Delay_Block_QUADSPI"
384        Tag <0x52004000, 0x52004FFF> "FMC_control_registers"
385        Tag <0x52003000, 0x52003FFF> "JPEG"
386        Tag <0x52000000, 0x52000FFF> "MDMA"
387        Tag <0x51000000, 0x510FFFFF> "GPV_matrix_(AXIM)"
388        Tag <0x50003000, 0x50003FFF> "WWDG1"
389        Tag <0x48023000, 0x480233FF> "RAMECC2"
390        Tag <0x48022800, 0x48022BFF> "Delay_Block_SDMMC2"
391        Tag <0x48022400, 0x480227FF> "SDMMC2"
392        Tag <0x48021400, 0x480217FF> "HASH"
393        Tag <0x48020000, 0x480203FF> "DCMI"
394        Tag <0x40080000, 0x400BFFFF> "USB2_OTG_FS"
395        Tag <0x40040000, 0x4007FFFF> "USB1_OTG_HS"
396        Tag <0x40020800, 0x40020BFF> "DMAMUX1"
397        Tag <0x40017400, 0x400177FF> "HRTIM"
398        Tag <0x40017000, 0x400173FF> "DFSDM1"
399        Tag <0x40016000, 0x400163FF> "SAI3"
400        Tag <0x40015C00, 0x40015FFF> "SAI2"
401        Tag <0x40015800, 0x40015BFF> "SAI1"
402        Tag <0x40015000, 0x400153FF> "SPI5"
403        Tag <0x40013000, 0x400133FF> "SPI1_/_I2S1"
404        Tag <0x4000A800, 0x4000ABFF> "CAN_CCU"
405        Tag <0x40009400, 0x400097FF> "MDIOS"
406        Tag <0x40009000, 0x400093FF> "OPAMP"
407        Tag <0x40008800, 0x40008BFF> "SWPMI"
408        Tag <0x40008400, 0x400087FF> "CRS"
409        Tag <0x40007400, 0x400077FF> "DAC1"
410        Tag <0x40006C00, 0x40006FFF> "HDMI-CEC"
411        Tag <0x40004000, 0x400043FF> "SPDIFRX1"
412        Tag <0x40003C00, 0x40003FFF> "SPI3_/_I2S3"
413        Tag <0x40003800, 0x40003BFF> "SPI2_/_I2S2"
414