cpu: CPU.CortexM @ sysbus
    cpuType: "cortex-m4f"
    nvic: nvic
    PerformanceInMips: 120

nvic: IRQControllers.NVIC @ sysbus 0xE000E000
    -> cpu@0

gcr: Miscellaneous.MAX32650_GCR @ sysbus 0x40000000
    nvic: nvic

wdt0: Timers.MAX32650_WDT @ sysbus 0x40003000
    gcr: gcr
    -> nvic@1

wdt1: Timers.MAX32650_WDT @ sysbus 0x40003400
    gcr: gcr
    -> nvic@57

timer0: Timers.MAX32650_Timer @ sysbus 0x40010000
    gcr: gcr
    -> nvic@5

timer1: Timers.MAX32650_Timer @ sysbus 0x40011000
    gcr: gcr
    -> nvic@6

tpu: Miscellaneous.MAX32650_TPU @ sysbus 0x40001000

timer2: Timers.MAX32650_Timer @ sysbus 0x40012000
    gcr: gcr
    -> nvic@7

timer3: Timers.MAX32650_Timer @ sysbus 0x40013000
    gcr: gcr
    -> nvic@8

timer4: Timers.MAX32650_Timer @ sysbus 0x40014000
    gcr: gcr
    -> nvic@9

timer5: Timers.MAX32650_Timer @ sysbus 0x40015000
    gcr: gcr
    -> nvic@10

i2c0: I2C.MAX32650_I2C @ sysbus 0x4001D000
    -> nvic@13

i2c1: I2C.MAX32650_I2C @ sysbus 0x4001E000
    -> nvic@36

adc: Analog.MAX32650_ADC @ sysbus 0x40034000
    -> nvic@20

uart0: UART.MAX32650_UART @ sysbus 0x40042000
    gcr: gcr
    -> nvic@14

uart1: UART.MAX32650_UART @ sysbus 0x40043000
    gcr: gcr
    -> nvic@15

uart2: UART.MAX32650_UART @ sysbus 0x40044000
    gcr: gcr
    -> nvic@34

spi0: SPI.MAX32650_SPI @ sysbus 0x40046000
    numberOfSlaves: 1
    -> nvic@16

spi1: SPI.MAX32650_SPI @ sysbus 0x40047000
    numberOfSlaves: 4
    -> nvic@17

spi2: SPI.MAX32650_SPI @ sysbus 0x40048000
    numberOfSlaves: 4
    -> nvic@18

gpio0: GPIOPort.MAX32650_GPIO @ sysbus 0x40008000
    numberOfPins: 32
    IRQ -> nvic@24
    WakeUpIRQ -> nvic@54

gpio1: GPIOPort.MAX32650_GPIO @ sysbus 0x40009000
    numberOfPins: 32
    IRQ -> nvic@25
    WakeUpIRQ -> nvic@54

gpio2: GPIOPort.MAX32650_GPIO @ sysbus 0x4000A000
    numberOfPins: 32
    IRQ -> nvic@26
    WakeUpIRQ -> nvic@54

gpio3: GPIOPort.MAX32650_GPIO @ sysbus 0x4000B000
    numberOfPins: 10
    IRQ -> nvic@27
    WakeUpIRQ -> nvic@54

spi3: SPI.MAX32650_SPI @ sysbus 0x400BE000
    numberOfSlaves: 4
    -> nvic@56

rtc: Timers.MAX32650_RTC @ sysbus 0x40006000
    -> nvic@3

pwrseq: Miscellaneous.MAX32650_PWRSEQ @ sysbus 0x40006800
    rtc: rtc

dwt: Miscellaneous.DWT @ sysbus 0xE0001000
    frequency: 72000000

flash: Memory.MappedMemory @ sysbus 0x10000000
    size: 0x300000

sram: Memory.MappedMemory @ sysbus 0x20000000
    size: 0x100000

bitbandPeripherals: Miscellaneous.BitBanding @ sysbus <0x42000000, +0x2000000>
    peripheralBase: 0x40000000

bitbandSram: Miscellaneous.BitBanding @ sysbus <0x22000000, +0x2000000>
    peripheralBase: 0x20000000

sysbus:
    init:
        ApplySVD @https://dl.antmicro.com/projects/renode/svd/MAX32650.svd.gz

        Tag <0x40000400 0x0400> "SI Registers"
        Tag <0x40000800 0x0400> "Function Control Registers"
        Tag <0x40003000 0x0400> "Watchdog Timer 0"
        Tag <0x40003400 0x0400> "Watchdog Timer 1"
        Tag <0x40004000 0x0400> "Security Monitor"
        Tag <0x40005000 0x0400> "AES Keys"
        Tag <0x40005800 0x0400> "SIR HyperBus/Xccela Bus"
        Tag <0x40008000 0x1000> "GPIO Port 0"
        Tag <0x40009000 0x1000> "GPIO Port 1"
        Tag <0x4000A000 0x1000> "GPIO Port 2"
        Tag <0x4000B000 0x1000> "GPIO Port 3"
        Tag <0x40018000 0x1000> "I2S"
        Tag <0x4001D000 0x1000> "I2C 0"
        Tag <0x4001E000 0x1000> "I2C 1"
        Tag <0x40026000 0x1000> "SPIXF Master"
        Tag <0x40027000 0x1000> "SPIXF Master Controller"
        Tag <0x40028000 0x1000> "Standard DMA"
        Tag <0x40029000 0x0400> "Flash Controller"
        Tag <0x4002A000 0x1000> "I-Cache Controller 0"
        Tag <0x4002A100 0x4> "ICC0_CACHE_CTRL" 0x10001
        Tag <0x4002F000 0x1000> "I-Cache Controller 1"
        Tag <0x4002F100 0x4> "ICC1_CACHE_CTRL" 0x10001
        Tag <0x40031000 0x1000> "Color LCD Controller"
        Tag <0x40033000 0x1000> "D-Cache Controller"
        Tag <0x40036000 0x1000> "Smart DMA"
        Tag <0x40037000 0x1000> "SD/SDIO/SDHC/MMC Controller"
        Tag <0x40039000 0x1000> "HyperBus/Xccela Bus Controller"
        Tag <0x4003A000 0x1000> "SPIXR Master Controller"
        Tag <0x4003C000 0x1000> "Pulse Trains"
        Tag <0x4003D000 0x1000> "1-Wire"
        Tag <0x4003E000 0x1000> "Semaphores"
        Tag <0x400B1000 0x1000> "USB 2.0 High Speed"
        Tag <0x400B5000 0x1000> "True Random Number Generator"
        Tag <0x400B6000 0x1000> "SD/SDIO/SDHC/MMC Controller"
        Tag <0x400BC000 0x1000> "SPIXF Master Controller FIFO"

        Tag <0x08000000 0x08000000> "External SPI Flash"
        Tag <0x60000000 0x20000000> "External HyperBus/Xccela Bus Memory"
        Tag <0x80000000 0x20000000> "External SPI SRAM"
