sysbus:
    Endianess: Endianess.BigEndian

rom: Memory.MappedMemory @ {
        sysbus 0x00000000;
        ftmctrl
    }
    size: 0x800000

sram: Memory.MappedMemory @ sysbus 0x40000000
    size: 0x8000000

sdram: Memory.MappedMemory @ sysbus 0x60000000
    size: 0x2000000

ftahbram: Memory.MappedMemory @ sysbus 0xa0000000
    size: 0x100000

cpu: CPU.Sparc @ sysbus
    cpuType: "leon3"

ftmctrl: MemoryControllers.Gaisler_FaultTolerantMemoryController @ sysbus 0x80000000

mic: IRQControllers.GaislerMIC @ sysbus <0x80000200, +0x100>
    0 -> cpu@0 | cpu@1 | cpu@2

uart0: UART.GaislerAPBUART @ sysbus <0x80000100, +0x100>
    -> mic@2

uart1: UART.GaislerAPBUART @ sysbus <0x80100100, +0x100>
    -> mic@17

uart2: UART.GaislerAPBUART @ sysbus <0x80100200, +0x100>
    -> mic@18

uart3: UART.GaislerAPBUART @ sysbus <0x80100300, +0x100>
    -> mic@19

uart4: UART.GaislerAPBUART @ sysbus <0x80100400, +0x100>
    -> mic@20

uart5: UART.GaislerAPBUART @ sysbus <0x80100500, +0x100>
    -> mic@21

gptimer: Timers.Gaisler_GPTimer @ sysbus 0x80000300
    [0-3] -> mic@[8-11]
    numberOfTimers: 4
    frequency: 20000000

grtimer: Timers.Gaisler_GPTimer @ sysbus 0x80100600
    0 -> mic@7
    numberOfTimers: 2
    supportsTimeLatch: true
    separateInterrupts: false
    frequency: 20000000

gpio1: GPIOPort.Gaisler_GPIO @ sysbus 0x80000900
    [32-46] -> mic@[1-15]
    numberOfConnections: 32
    numberOfInterrupts: 15
    inputOnlyPins: "0,2,4,6,8,11,12,15,16,19,20,23,24,27,28,31"

gpio2: GPIOPort.Gaisler_GPIO @ sysbus 0x80000a00
    [32-46] -> mic@[1-15]
    numberOfConnections: 32
    numberOfInterrupts: 15
    inputOnlyPins: "0,3,4,7,11,12,15,16,20,21"

greth: Network.GaislerEth @ sysbus 0x80000e00
    -> mic@14

phy: Network.EthernetPhysicalLayer @ greth 0
    BasicStatus: 0x2d // LinkStatus | AutoNegotiationAbility | AutoNegotiationComplete | ExtendedCapabilities
    Id1: 0x0141
    Id2: 0x0e40
    AutoNegotiationAdvertisement: 0x1e1
    AutoNegotiationLinkPartnerBasePageAbility: 0x1e1
    MasterSlaveControl: 0x300
    MasterSlaveStatus: 0x3000

ahbInfo: Bus.GaislerAHBPlugAndPlayInfo @ sysbus <0xfffff000, +0x1000>

apb1Controller: Bus.GaislerAPBController @ sysbus <0x800ff000, +0x1000>

apb2Controller: Bus.GaislerAPBController @ sysbus <0x801ff000, +0x1000>

sysbus:
    init:
        Tag <0x20000000 0x20000000> "FTMCTRL IO area"
        Tag <0x80000400 0x100> "SPICTRL"
        Tag <0x80000500 0x100> "CANMUX"
        Tag <0x80000600 0x100> "GRGPREG"
        Tag <0x80000700 0x100> "GRASCS"
        Tag <0x80000800 0x100> "GRSLINK"
        Tag <0x80000b00 0x100> "GRTM"
        Tag <0x80000c00 0x100> "I2CMST"
        Tag <0x80000d00 0x100> "CLKGATE"
        Tag <0x80000e00 0x100> "GRETH"
        Tag <0x80000f00 0x100> "AHBSTAT"
        Tag <0x80100000 0x100> "FTAHBRAM registers"
        Tag <0x80100800 0x100> "GRSPW2-0"
        Tag <0x80100900 0x100> "GRSPW2-1"
        Tag <0x80100a00 0x100> "GRSPW2-2"
        Tag <0x80100b00 0x100> "GRSPW2-3"
        Tag <0x80100c00 0x100> "GRSPW2-4"
        Tag <0x80100d00 0x100> "GRSPW2-5"
        Tag <0x801ff000 0x1000> "APB2 plug&play"
        Tag <0x90000000 0x10000000> "DSU3"
        Tag <0xfff00000 0x1000> "B1553BRM"
        Tag <0xfff10000 0x100> "GRTC"
        Tag <0xfff20000 0x100> "Reserved"
        Tag <0xfff30000 0x1000> "CANOC"
