1cpu: CPU.CortexM @ sysbus
2    cpuType: "cortex-m0+"
3    nvic: nvic
4
5nvic: IRQControllers.NVIC @ sysbus 0xE000E000
6    priorityMask: 0xF0
7    systickFrequency: 32000000
8    IRQ -> cpu@0
9
10sram: Memory.MappedMemory @ sysbus 0x20000000
11    size: 0x5000
12
13exti: IRQControllers.STM32F4_EXTI @ sysbus 0x40010400
14    numberOfOutputLines: 30
15    firstDirectLine: 23
16    [0, 1] -> nvicInput5@[0, 1]
17    [2, 3] -> nvicInput6@[0, 1]
18    [4-15] -> nvicInput7@[0-11]
19    [16, 23, 25, 26, 28, 29] -> nvic@[1, 23, 27, 28, 29, 13]
20    [17, 19, 20] -> nvicInput2@[0-2]
21    [21, 22] -> nvicInput12@[0-1]
22
23nvicInput5: Miscellaneous.CombinedInput
24    numberOfInputs: 2
25    -> nvic@5
26
27nvicInput6: Miscellaneous.CombinedInput
28    numberOfInputs: 2
29    -> nvic@6
30
31nvicInput7: Miscellaneous.CombinedInput
32    numberOfInputs: 12
33    -> nvic@7
34
35nvicInput2: Miscellaneous.CombinedInput
36    numberOfInputs: 3
37    -> nvic@2
38
39nvicInput12: Miscellaneous.CombinedInput
40    numberOfInputs: 2
41    -> nvic@12
42
43adc1: Analog.STM32_ADC @ sysbus 0x40012400
44    IRQ->nvic@12
45
46gpioPortA: GPIOPort.STM32_GPIOPort @ sysbus <0x50000000, +0x400>
47    modeResetValue: 0xEBFFFCFF
48    pullUpPullDownResetValue: 0x24000000
49    numberOfAFs: 8
50    [0-15] -> exti@[0-15]
51
52gpioPortB: GPIOPort.STM32_GPIOPort @ sysbus <0x50000400, +0x400>
53    modeResetValue: 0xFFFFFFFF
54    pullUpPullDownResetValue: 0x00000000
55    numberOfAFs: 8
56    [0-15] -> exti@[0-15]
57
58gpioPortC: GPIOPort.STM32_GPIOPort @ sysbus <0x50000800, +0x400>
59    modeResetValue: 0xFFFFFFFF
60    pullUpPullDownResetValue: 0x00000000
61    numberOfAFs: 8
62    [0-15] -> exti@[0-15]
63
64gpioPortD: GPIOPort.STM32_GPIOPort @ sysbus <0x50000C00, +0x400>
65    modeResetValue: 0xFFFFFFFF
66    pullUpPullDownResetValue: 0x00000000
67    numberOfAFs: 8
68    [0-15] -> exti@[0-15]
69
70gpioPortH: GPIOPort.STM32_GPIOPort @ sysbus <0x50001C00, +0x400>
71    modeResetValue: 0xFFFFFFFF
72    pullUpPullDownResetValue: 0x00000000
73    numberOfAFs: 8
74    [0-15] -> exti@[0-15]
75
76gpioPortE: GPIOPort.STM32_GPIOPort @ sysbus <0x50001000, +0x400>
77    modeResetValue: 0xFFFFFFFF
78    pullUpPullDownResetValue: 0x00000000
79    numberOfAFs: 8
80    [0-15] -> exti@[0-15]
81
82i2c1: I2C.STM32F7_I2C @ sysbus 0x40005400
83    EventInterrupt -> exti@23
84
85i2c2: I2C.STM32F7_I2C @ sysbus 0x40005800
86    EventInterrupt -> nvic@24
87
88i2c3: I2C.STM32F7_I2C @ sysbus 0x40007800
89    EventInterrupt -> nvic@21
90
91flash: Memory.MappedMemory @ sysbus 0x08000000
92    size: 0x30000
93
94eeprom: Memory.MappedMemory @ sysbus 0x08080000
95    size: 0x1800
96
97flashController: MTD.STM32L0_FlashController @ {
98        sysbus 0x40022000;
99        sysbus new Bus.BusMultiRegistration { address: 0x1FF80000; size: 0x100; region: "signature" }
100    }
101    flash: flash
102    eeprom: eeprom
103
104rcc: Miscellaneous.STM32L0_RCC @ sysbus 0x40021000
105    rtc: rtc
106    lptimer: lptim1
107    systick: nvic
108
109rtc: Timers.STM32F4_RTC @ sysbus 0x40002800
110    AlarmIRQ -> exti@17
111    WakeupIRQ -> exti@20
112
113spi1: SPI.STM32SPI @ sysbus 0x40013000
114    bufferCapacity: 1
115    IRQ ->nvic@25
116
117spi2: SPI.STM32SPI @ sysbus 0x40003800
118    bufferCapacity: 1
119    IRQ ->nvic@26
120
121timer2: Timers.STM32_Timer @ sysbus 0x40000000
122    frequency: 10000000
123    initialLimit: 0xFFFF
124    ->nvic@15
125
126timer3: Timers.STM32_Timer @ sysbus 0x40000400
127    frequency: 10000000
128    initialLimit: 0xFFFF
129    ->nvic@16
130
131timer21: Timers.STM32_Timer @ sysbus 0x40010800
132    frequency: 10000000
133    initialLimit: 0xFFFF
134    ->nvic@20
135
136timer22: Timers.STM32_Timer @ sysbus 0x40011400
137    frequency: 10000000
138    initialLimit: 0xFFFF
139    ->nvic@22
140
141timer6: Timers.STM32_Timer @ sysbus 0x40001000
142    frequency: 10000000
143    initialLimit: 0xFFFF
144    ->nvic@17
145
146timer7: Timers.STM32_Timer @ sysbus 0x40001400
147    frequency: 10000000
148    initialLimit: 0xFFFF
149    ->nvic@18
150
151usart2: UART.STM32F7_USART @ sysbus 0x40004400
152    frequency: 200000000
153    IRQ -> exti@26
154
155usart1: UART.STM32F7_USART @ sysbus 0x40013800
156    frequency: 200000000
157    IRQ -> exti@25
158
159lpuart1: UART.STM32F7_USART @ sysbus 0x40004800
160    frequency: 200000000
161    lowPowerMode: true
162    IRQ -> exti@28
163
164usart4: UART.STM32F7_USART @ sysbus 0x40004C00
165    frequency: 200000000
166    IRQ -> nvicInput14@0
167
168usart5: UART.STM32F7_USART @ sysbus 0x40005000
169    frequency: 200000000
170    IRQ -> nvicInput14@1
171
172nvicInput14: Miscellaneous.CombinedInput
173    numberOfInputs: 2
174    -> nvic@14
175
176iwdg: Timers.STM32_IndependentWatchdog @ sysbus 0x40003000
177    frequency: 32000
178    windowOption: true
179    defaultPrescaler: 0x0
180
181nvicInput10: Miscellaneous.CombinedInput
182    numberOfInputs: 2
183    -> nvic@10
184
185nvicInput11: Miscellaneous.CombinedInput
186    numberOfInputs: 4
187    -> nvic@11
188
189dma1: DMA.STM32G0DMA @ sysbus 0x40020000
190    numberOfChannels: 7
191    0 -> nvic@9
192    [1, 2] -> nvicInput10@[0, 1]
193    [3-6] -> nvicInput11@[0-3]
194
195pwr: Miscellaneous.STM32L0_PWR @ sysbus 0x40007000
196    -> exti@16
197
198lptim1: Timers.STM32L0_LpTimer @ sysbus 0x40007C00
199    frequency: 0x1000000
200    -> exti@29
201
202crc: CRC.STM32_CRC @ sysbus 0x40023000
203    series: STM32Series.F0
204    configurablePoly: true
205
206// The SYSCFG region is defined as memory mainly so that software can read/write
207// values from the EXTICR registers. They currently have no effect in Renode.
208syscfg: Memory.MappedMemory @ sysbus 0x40010000
209    size: 0x400
210
211// Alternate function connections
212// The syntax is:
213//     alternateFunctionOutput -> gpioPort#pinNumber@AFNumber
214// Meaning `1 -> gpioPortA#2@0` connects output 1 to pin 2 of GPIO port A as AF 0
215timer2:
216    0 -> gpioPortA#00@2 | gpioPortA#05@5 | gpioPortA#15@5 | gpioPortE#09@0
217    1 -> gpioPortA#01@2 | gpioPortB#03@2 | gpioPortE#10@0
218    2 -> gpioPortA#02@2 | gpioPortB#10@2 | gpioPortE#11@0
219    3 -> gpioPortA#03@2 | gpioPortB#11@2 | gpioPortE#12@0
220
221timer3:
222    0 -> gpioPortA#06@2 | gpioPortB#04@2 | gpioPortC#06@2 | gpioPortE#03@2
223    1 -> gpioPortA#07@2 | gpioPortB#05@2 | gpioPortC#07@2 | gpioPortE#04@2
224    2 -> gpioPortB#00@2 | gpioPortC#08@2 | gpioPortE#05@2
225    3 -> gpioPortB#01@2 | gpioPortC#09@2 | gpioPortE#06@2
226
227timer21:
228    0 -> gpioPortA#02@0 | gpioPortB#13@6 | gpioPortD#00@0 | gpioPortE#05@0
229    1 -> gpioPortA#03@0 | gpioPortB#14@6 | gpioPortD#07@1 | gpioPortE#06@0
230
231timer22:
232    0 -> gpioPortA#06@5 | gpioPortB#04@4 | gpioPortC#06@0 | gpioPortE#03@0
233    1 -> gpioPortA#07@5 | gpioPortB#05@4 | gpioPortC#07@0 | gpioPortE#04@0
234
235sysbus:
236    init:
237        Tag <0x40026000, 0x400263FF> "AES"
238        Tag <0x40015800, 0x40015BFF> "DBGMCU"
239        Tag <0x40011C00, 0x40011FFF> "Firewall"
240        Tag <0x40002C00, 0x40002FFF> "WWDG"
241        ApplySVD @https://dl.antmicro.com/projects/renode/svd/STM32L0x1.svd
242