cluster: CPU.Cluster @ sysbus

cpu0: CPU.ARMv8A @ cluster
    cpuType: "cortex-a55"
    // Aff1: 0, Aff0: 0
    cpuId: 0x0
    genericInterruptController: gic

cpu1: CPU.ARMv8A @ cluster
    cpuType: "cortex-a55"
    // Aff1: 1, Aff0: 0
    cpuId: 0x100
    genericInterruptController: gic

cpu_m33: CPU.CortexM @ sysbus
    cpuType: "cortex-m33"
    nvic: nvic

gic: IRQControllers.ARM_GenericInterruptController @ {
        // Cortex-A55 view:
        sysbus new Bus.BusMultiRegistration { address: 0x11900000; size: 0x10000; region: "distributor"; cluster: cluster };
        sysbus new IRQControllers.ArmGicRedistributorRegistration { attachedCPU: cpu0; visibleToCluster: cluster;  address: 0x11940000 };
        sysbus new IRQControllers.ArmGicRedistributorRegistration { attachedCPU: cpu1; visibleToCluster: cluster;  address: 0x11960000 };

        // Cortex-M33 Non-secure view:
        sysbus new Bus.BusMultiRegistration { address: 0x41900000; size: 0x10000; region: "distributor"; cpu: cpu_m33 };
        sysbus new IRQControllers.ArmGicRedistributorRegistration { attachedCPU: cpu0; visibleTo: cpu_m33; address: 0x41940000 };
        sysbus new IRQControllers.ArmGicRedistributorRegistration { attachedCPU: cpu1; visibleTo: cpu_m33; address: 0x41960000 };

        // Cortex-M33 Secure view:
        sysbus new Bus.BusMultiRegistration { address: 0x51900000; size: 0x10000; region: "distributor"; cpu: cpu_m33 };
        sysbus new IRQControllers.ArmGicRedistributorRegistration { attachedCPU: cpu0; visibleTo: cpu_m33; address: 0x51940000 };
        sysbus new IRQControllers.ArmGicRedistributorRegistration { attachedCPU: cpu1; visibleTo: cpu_m33; address: 0x51960000 }
    }
    architectureVersion: ARM_GenericInterruptControllerVersion.GICv3
    // GIC -> ARM CPU interrupt connections are generated automatically

timer0: Timers.ARM_GenericTimer @ cpu0
    frequency: 24000000
    NonSecureEL2PhysicalTimerIRQ -> gic#0@26
    EL1VirtualTimerIRQ -> gic#0@27
    NonSecureEL2VirtualTimerIRQ -> gic#0@28
    EL3PhysicalTimerIRQ -> gic#0@29
    EL1PhysicalTimerIRQ -> gic#0@30

timer1: Timers.ARM_GenericTimer @ cpu1
    frequency: 24000000
    NonSecureEL2PhysicalTimerIRQ -> gic#0x100@26
    EL1VirtualTimerIRQ -> gic#0x100@27
    NonSecureEL2VirtualTimerIRQ -> gic#0x100@28
    EL3PhysicalTimerIRQ -> gic#0x100@29
    EL1PhysicalTimerIRQ -> gic#0x100@30

nvic: IRQControllers.NVIC @ sysbus new Bus.BusPointRegistration {
        address: 0xE000E000;
        cpu: cpu_m33
    }
    -> cpu_m33@0

sram_mcpu: Memory.MappedMemory @ {
        sysbus new Bus.BusPointRegistration { address: 0x000010000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x00010000; cpu: cpu_m33 }; // Non-secure (Code)
        sysbus new Bus.BusPointRegistration { address: 0x10010000; cpu: cpu_m33 }; // Secure (Code)
        sysbus new Bus.BusPointRegistration { address: 0x20010000; cpu: cpu_m33 }; // Non-secure (Data)
        sysbus new Bus.BusPointRegistration { address: 0x30010000; cpu: cpu_m33 }  // Secure (Data)
    }
    size: 0x10000

sram_acpu: Memory.MappedMemory @ {
        sysbus new Bus.BusPointRegistration { address: 0x000020000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x00020000; cpu: cpu_m33 }; // Non-secure (Code)
        sysbus new Bus.BusPointRegistration { address: 0x10020000; cpu: cpu_m33 }; // Secure (Code)
        sysbus new Bus.BusPointRegistration { address: 0x20020000; cpu: cpu_m33 }; // Non-secure (Data)
        sysbus new Bus.BusPointRegistration { address: 0x30020000; cpu: cpu_m33 }  // Secure (Data)
    }
    size: 0x10000

spi_multi_memory: Memory.MappedMemory @ {
        sysbus new Bus.BusPointRegistration { address: 0x020000000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x80000000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x90000000; cpu: cpu_m33 }  // Secure
    }
    size: 0x10000000

ddr_common: Memory.MappedMemory @ {
        sysbus new Bus.BusPointRegistration { address: 0x040000000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x60000000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x70000000; cpu: cpu_m33 }  // Secure
    }
    size: 0x10000000

ddr_high: Memory.MappedMemory @ {
        sysbus new Bus.BusPointRegistration { address: 0x050000000; cluster: cluster }
    }
    size: 0xF0000000

gpt: Timers.RenesasRZG_GPT @ {
        sysbus new Bus.BusPointRegistration { address: 0x010048000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x40048000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x50048000; cpu: cpu_m33 }  // Secure
    }
    numberOf32BitChannels: 8
    peripheralClockDFrequency: 24000000
    [0x00-0x09] -> gic@[218-227] | nvic@[218-227]
    [0x0a-0x13] -> gic@[231-240] | nvic@[231-240]
    [0x14-0x1d] -> gic@[244-253] | nvic@[244-253]
    [0x1e-0x27] -> gic@[257-266] | nvic@[257-266]
    [0x28-0x31] -> gic@[270-279] | nvic@[270-279]
    [0x32-0x3b] -> gic@[283-292] | nvic@[283-292]
    [0x3c-0x45] -> gic@[296-305] | nvic@[296-305]
    [0x46-0x4f] -> gic@[309-318] | nvic@[309-318]

gtm0: Timers.RenesasRZG_GTM @ {
        sysbus new Bus.BusPointRegistration { address: 0x012801000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x42801000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x52801000; cpu: cpu_m33 }  // Secure
    }
    frequency: 100_000_000
    -> gic@46 | nvic@46

gtm1: Timers.RenesasRZG_GTM @ {
        sysbus new Bus.BusPointRegistration { address: 0x012801400; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x42801400; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x52801400; cpu: cpu_m33 }  // Secure
    }
    frequency: 100_000_000
    -> gic@47 | nvic@47

gtm2: Timers.RenesasRZG_GTM @ {
        sysbus new Bus.BusPointRegistration { address: 0x012801800; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x42801800; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x52801800; cpu: cpu_m33 }  // Secure
    }
    frequency: 100_000_000
    -> gic@48 | nvic@48

scif0: SCI.RenesasRZG_SCIFA @ {
        sysbus new Bus.BusPointRegistration { address: 0x01004B800; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x4004B800; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x5004B800; cpu: cpu_m33 }  // Secure
    }
    frequency: 100_000_000
    [0-4] -> gic@[380-384] | nvic@[380-384]

scif1: SCI.RenesasRZG_SCIFA @ {
        sysbus new Bus.BusPointRegistration { address: 0x01004BC00; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x4004BC00; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x5004BC00; cpu: cpu_m33 }  // Secure
    }
    frequency: 100_000_000
    [0-4] -> gic@[385-389] | nvic@[385-389]

scif2: SCI.RenesasRZG_SCIFA @ {
        sysbus new Bus.BusPointRegistration { address: 0x01004C000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x4004C000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x5004C000; cpu: cpu_m33 }  // Secure
    }
    frequency: 100_000_000
    [0-4] -> gic@[390-394] | nvic@[390-394]

scif3: SCI.RenesasRZG_SCIFA @ {
        sysbus new Bus.BusPointRegistration { address: 0x01004C400; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x4004C400; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x5004C400; cpu: cpu_m33 }  // Secure
    }
    frequency: 100_000_000
    [0-4] -> gic@[395-399] | nvic@[395-399]

scif4: SCI.RenesasRZG_SCIFA @ {
        sysbus new Bus.BusPointRegistration { address: 0x01004C800; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x4004C800; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x5004C800; cpu: cpu_m33 }  // Secure
    }
    frequency: 100_000_000
    [0-4] -> gic@[400-404] | nvic@[400-404]

wdt_m33: Timers.RenesasRZG_Watchdog @ {
        cpg_sysc 2;
        sysbus new Bus.BusPointRegistration { address: 0x012800400; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x42800400; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x52800400; cpu: cpu_m33 }  // Secure
    }
    clockFrequency: 24000000
    -> gic@49 | nvic@49

wdt_a55_0: Timers.RenesasRZG_Watchdog @ {
        cpg_sysc 0;
        sysbus new Bus.BusPointRegistration { address: 0x012800800; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x42800800; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x52800800; cpu: cpu_m33 }  // Secure
    }
    clockFrequency: 24000000
    -> gic@53 | nvic@53

wdt_a55_1: Timers.RenesasRZG_Watchdog @ {
        cpg_sysc 1;
        sysbus new Bus.BusPointRegistration { address: 0x012800C00; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x42800C00; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x52800C00; cpu: cpu_m33 }  // Secure
    }
    clockFrequency: 24000000
    -> gic@51 | nvic@51

mhu: Miscellaneous.RenesasRZG_MHU @ {
        sysbus new Bus.BusPointRegistration { address: 0x010400000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x40400000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x50400000; cpu: cpu_m33 }  // Secure
    }
    [0-23] -> gic@[56-79] | nvic@[56-79]
    SoftwareIRQ0 -> gic@80 | nvic@80
    SoftwareIRQ1 -> gic@81 | nvic@81
    SoftwareIRQ2 -> gic@82 | nvic@82
    SoftwareIRQ3 -> gic@83 | nvic@83

spi0: SPI.RenesasRZG_SPI @ {
        sysbus new Bus.BusPointRegistration { address: 0x1004ac00; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x4004ac00; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x5004ac00; cpu: cpu_m33 }  // Secure
    }
    [0-2] -> gic@[413-415] | nvic@[413-415]

spi1: SPI.RenesasRZG_SPI @ {
        sysbus new Bus.BusPointRegistration { address: 0x1004b000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x4004b000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x5004b000; cpu: cpu_m33 }  // Secure
    }
    [0-2] -> gic@[416-418] | nvic@[416-418]

spi2: SPI.RenesasRZG_SPI @ {
        sysbus new Bus.BusPointRegistration { address: 0x1004b400; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x4004b400; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x5004b400; cpu: cpu_m33 }  // Secure
    }
    [0-2] -> gic@[419-421] | nvic@[419-421]

gpio: GPIOPort.RenesasRZG_GPIO @ {
        sysbus new Bus.BusPointRegistration { address: 0x11030000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x41030000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x51030000; cpu: cpu_m33 }  // Secure
    }
    [IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7] -> ia55@[1-8] | im33@[1-8]
    [0-122] -> ia55@[9-131] | im33@[9-131]

riic0: I2C.RenesasRZG_IIC @ {
        sysbus new Bus.BusPointRegistration { address: 0x010058000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x40058000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x50058000; cpu: cpu_m33 }  // Secure
    }
    ReceiveIRQ -> gic@348 | nvic@348
    TransmitIRQ -> gic@349 | nvic@349
    TransmitEndIRQ -> gic@350 | nvic@350
    NackIRQ -> gic@351 | nvic@351
    StopIRQ -> gic@352 | nvic@352
    StartIRQ -> gic@353 | nvic@353

riic1: I2C.RenesasRZG_IIC @ {
        sysbus new Bus.BusPointRegistration { address: 0x010058400; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x40058400; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x50058400; cpu: cpu_m33 }  // Secure
    }
    ReceiveIRQ -> gic@356 | nvic@356
    TransmitIRQ -> gic@357 | nvic@357
    TransmitEndIRQ -> gic@358 | nvic@358
    NackIRQ -> gic@359 | nvic@359
    StopIRQ -> gic@360 | nvic@360
    StartIRQ -> gic@361 | nvic@361

riic2: I2C.RenesasRZG_IIC @ {
        sysbus new Bus.BusPointRegistration { address: 0x010058800; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x40058800; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x50058800; cpu: cpu_m33 }  // Secure
    }
    ReceiveIRQ -> gic@364 | nvic@364
    TransmitIRQ -> gic@365 | nvic@365
    TransmitEndIRQ -> gic@366 | nvic@366
    NackIRQ -> gic@367 | nvic@367
    StopIRQ -> gic@368 | nvic@368
    StartIRQ -> gic@369 | nvic@369

riic3: I2C.RenesasRZG_IIC @ {
        sysbus new Bus.BusPointRegistration { address: 0x010058C00; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x40058C00; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x50058C00; cpu: cpu_m33 }  // Secure
    }
    ReceiveIRQ -> gic@372 | nvic@372
    TransmitIRQ -> gic@373 | nvic@373
    TransmitEndIRQ -> gic@374 | nvic@374
    NackIRQ -> gic@375 | nvic@375
    StopIRQ -> gic@376 | nvic@376
    StartIRQ -> gic@377 | nvic@377

dmac_s: DMA.RenesasRZG_DMAC @ {
        sysbus new Bus.BusPointRegistration { address: 0x011800000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x41800000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x51800000; cpu: cpu_m33 }  // Secure
    }
    [0-15] -> gic@[108-123] | nvic@[108-123]
    ErrorIRQ -> gic@124 | nvic@124

dmac_ns: DMA.RenesasRZG_DMAC @ {
        sysbus new Bus.BusPointRegistration { address: 0x011820000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x41820000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x51820000; cpu: cpu_m33 }  // Secure
    }
    [0-15] -> gic@[125-140] | nvic@[125-140]
    ErrorIRQ -> gic@141 | nvic@141

ia55: IRQControllers.RenesasRZG_IRQController @ {
        sysbus new Bus.BusPointRegistration { address: 0x110A0000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x410A0000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x510A0000; cpu: cpu_m33 }  // Secure
    }
    [IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7] -> gic@[1-8]
    [0-31] -> gic@[444-475]

im33: IRQControllers.RenesasRZG_IRQController @ {
        sysbus new Bus.BusPointRegistration { address: 0x110B0000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x410B0000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x510B0000; cpu: cpu_m33 }  // Secure
    }
    [IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7] -> nvic@[1-8]
    [0-31] -> nvic@[444-475]

syc: Timers.RenesasRZG_SYC @ {
        sysbus new Bus.BusPointRegistration { address: 0x011000000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x41000000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x51000000; cpu: cpu_m33 }  // Secure
    }
    frequency: 24000000

cpg_sysc: Miscellaneous.RenesasRZG_CPG_SYSC @ {
        sysbus new Bus.BusPointRegistration { address: 0x11010000; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x41010000; cpu: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x51010000; cpu: cpu_m33 }  // Secure
    }
    cpu0: cpu0
    cpu1: cpu1
    cpu_m33: cpu_m33

sram_acpu_gatekeeper: Python.PythonPeripheral @ {
        sysbus new Bus.BusPointRegistration { address: 0x11040008; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x41040008; cluster: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x51040008; cluster: cpu_m33 }  // Secure
    }
    size: 0x4
    initable: true
    filename: "scripts/pydev/tzc400_gatekeeper.py"

sram_mcpu_gatekeeper: Python.PythonPeripheral @ {
        sysbus new Bus.BusPointRegistration { address: 0x11050008; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x41050008; cluster: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x51050008; cluster: cpu_m33 }  // Secure
    }
    size: 0x4
    initable: true
    filename: "scripts/pydev/tzc400_gatekeeper.py"

spi_gatekeeper: Python.PythonPeripheral @ {
        sysbus new Bus.BusPointRegistration { address: 0x11060008; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x41060008; cluster: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x51060008; cluster: cpu_m33 }  // Secure
    }
    size: 0x4
    initable: true
    filename: "scripts/pydev/tzc400_gatekeeper.py"

ddr_gatekeeper: Python.PythonPeripheral @ {
        sysbus new Bus.BusPointRegistration { address: 0x11070008; cluster: cluster };
        sysbus new Bus.BusPointRegistration { address: 0x41070008; cluster: cpu_m33 }; // Non-secure
        sysbus new Bus.BusPointRegistration { address: 0x51070008; cluster: cpu_m33 }  // Secure
    }
    size: 0x4
    initable: true
    filename: "scripts/pydev/tzc400_gatekeeper.py"

sysbus:
    init:
        // Cortex-A55 Tags:
        Tag <0x010000000 0x40000>   "MTU3a (Cortex-A55)"
        Tag <0x010040000 0x7000>    "SRC (Memory) (Cortex-A55)"
        Tag <0x010047000 0x1000>    "SRC (Reg) (Cortex-A55)"
        Tag <0x010048800 0x400>     "POEGA (Cortex-A55)"
        Tag <0x010048C00 0x400>     "POEGB (Cortex-A55)"
        Tag <0x010049000 0x400>     "POEGC (Cortex-A55)"
        Tag <0x010049400 0x400>     "POEGD (Cortex-A55)"
        Tag <0x010049800 0x400>     "POE3 (Cortex-A55)"
        Tag <0x010049C00 0x400>     "SSIF ch0 (Cortex-A55)"
        Tag <0x01004A000 0x400>     "SSIF ch1 (Cortex-A55)"
        Tag <0x01004A400 0x400>     "SSIF ch2 (Cortex-A55)"
        Tag <0x01004A800 0x400>     "SSIF ch3 (Cortex-A55)"
        Tag <0x01004CC00 0x400>     "IrDA (SCI) (Cortex-A55)"
        Tag <0x01004D000 0x400>     "SCI ch0 (Cortex-A55)"
        Tag <0x01004D400 0x400>     "SCI ch1 (Cortex-A55)"
        Tag <0x010050000 0x8000>    "CANFD (Cortex-A55)"
        Tag <0x010059000 0x400>     "ADC (Cortex-A55)"
        Tag <0x010059400 0x400>     "TSU (Cortex-A55)"
        Tag <0x010060000 0x10000>   "SPI Multi I/O (Reg) (Cortex-A55)"
        Tag <0x010070000 0x10000>   "SPI Multi I/O (Write Buf) (Cortex-A55)"
        Tag <0x010830000 0x10000>   "CRU (Cortex-A55)"
        Tag <0x010840000 0x10000>   "ISU (Cortex-A55)"
        Tag <0x010850000 0x10000>   "DSI (PHY) (Cortex-A55)"
        Tag <0x010860000 0x10000>   "DSI (Controller) (Cortex-A55)"
        Tag <0x010870000 0x10000>   "VSPD (Cortex-A55)"
        Tag <0x010880000 0x10000>   "FCPVD (Cortex-A55)"
        Tag <0x010890000 0x10000>   "DU (Cortex-A55)"
        Tag <0x010C00000 0x1000000> "CST (CoreSight) (Cortex-A55)"
        Tag <0x011040000 0x10000>   "TZC (SRAM ACPU) (Cortex-A55)"
        Tag <0x011050000 0x10000>   "TZC (SRAM MCPU) (Cortex-A55)"
        Tag <0x011060000 0x10000>   "TZC (SPI Multi I/O) (Cortex-A55)"
        Tag <0x011070000 0x10000>   "TZC (DDR) (Cortex-A55)"
        Tag <0x011080000 0x10000>   "SRAM ACPU (Reg) (Cortex-A55)"
        Tag <0x011090000 0x10000>   "SRAM MCPU (Reg) (Cortex-A55)"
        Tag <0x011400000 0x10000>   "DDR (PHY) (Cortex-A55)"
        Tag <0x011410000 0x10000>   "DDR (Control Reg) (Cortex-A55)"
        Tag <0x011840000 0x10000>   "Mali-G31 (Cortex-A55)"
        Tag <0x011860000 0x10000>   "OTP (Cortex-A55)"
        Tag <0x011C00000 0x10000>   "SD ch0 (Cortex-A55)"
        Tag <0x011C10000 0x10000>   "SD ch1 (Cortex-A55)"
        Tag <0x011C20000 0x10000>   "Ether ch0 (Cortex-A55)"
        Tag <0x011C30000 0x10000>   "Ether ch1 (Cortex-A55)"
        Tag <0x011C40000 0x10000>   "USBPHY Control (Cortex-A55)"
        Tag <0x011C50000 0x10000>   "USB ch0 (OTG-Host) (Cortex-A55)"
        Tag <0x011C60000 0x10000>   "USB ch0 (OTG-Func) (Cortex-A55)"
        Tag <0x011C70000 0x10000>   "USB ch1 Host (Cortex-A55)"

        // Cortex-M33 Tags (Non-secure):
        Tag <0x40000000 0x40000>    "MTU3a (Cortex-M33, Non-secure)"
        Tag <0x40040000 0x7000>     "SRC (Memory) (Cortex-M33, Non-secure)"
        Tag <0x40047000 0x1000>     "SRC (Reg) (Cortex-M33, Non-secure)"
        Tag <0x40048800 0x400>      "POEGA (Cortex-M33, Non-secure)"
        Tag <0x40048C00 0x400>      "POEGB (Cortex-M33, Non-secure)"
        Tag <0x40049000 0x400>      "POEGC (Cortex-M33, Non-secure)"
        Tag <0x40049400 0x400>      "POEGD (Cortex-M33, Non-secure)"
        Tag <0x40049800 0x400>      "POE3 (Cortex-M33, Non-secure)"
        Tag <0x40049C00 0x400>      "SSIF ch0 (Cortex-M33, Non-secure)"
        Tag <0x4004A000 0x400>      "SSIF ch1 (Cortex-M33, Non-secure)"
        Tag <0x4004A400 0x400>      "SSIF ch2 (Cortex-M33, Non-secure)"
        Tag <0x4004A800 0x400>      "SSIF ch3 (Cortex-M33, Non-secure)"
        Tag <0x4004CC00 0x400>      "IrDA (SCI) (Cortex-M33, Non-secure)"
        Tag <0x4004D000 0x400>      "SCI ch0 (Cortex-M33, Non-secure)"
        Tag <0x4004D400 0x400>      "SCI ch1 (Cortex-M33, Non-secure)"
        Tag <0x40050000 0x8000>     "CANFD (Cortex-M33, Non-secure)"
        Tag <0x40059000 0x400>      "ADC (Cortex-M33, Non-secure)"
        Tag <0x40059400 0x400>      "TSU (Cortex-M33, Non-secure)"
        Tag <0x40060000 0x10000>    "SPI Multi I/O (Reg) (Cortex-M33, Non-secure)"
        Tag <0x40070000 0x10000>    "SPI Multi I/O (Write Buf) (Cortex-M33, Non-secure)"
        Tag <0x40830000 0x10000>    "CRU (Cortex-M33, Non-secure)"
        Tag <0x40840000 0x10000>    "ISU (Cortex-M33, Non-secure)"
        Tag <0x40850000 0x10000>    "DSI (PHY) (Cortex-M33, Non-secure)"
        Tag <0x40860000 0x10000>    "DSI (Controller) (Cortex-M33, Non-secure)"
        Tag <0x40870000 0x10000>    "VSPD (Cortex-M33, Non-secure)"
        Tag <0x40880000 0x10000>    "FCPVD (Cortex-M33, Non-secure)"
        Tag <0x40890000 0x10000>    "DU (Cortex-M33, Non-secure)"
        Tag <0x40C00000 0x1000000>  "CST (CoreSight) (Cortex-M33, Non-secure)"
        Tag <0x41040000 0x10000>    "TZC (SRAM ACPU) (Cortex-M33, Non-secure)"
        Tag <0x41050000 0x10000>    "TZC (SRAM MCPU) (Cortex-M33, Non-secure)"
        Tag <0x41060000 0x10000>    "TZC (SPI Multi I/O) (Cortex-M33, Non-secure)"
        Tag <0x41070000 0x10000>    "TZC (DDR) (Cortex-M33, Non-secure)"
        Tag <0x41080000 0x10000>    "SRAM ACPU (Reg) (Cortex-M33, Non-secure)"
        Tag <0x41090000 0x10000>    "SRAM MCPU (Reg) (Cortex-M33, Non-secure)"
        Tag <0x41400000 0x10000>    "DDR (PHY) (Cortex-M33, Non-secure)"
        Tag <0x41410000 0x10000>    "DDR (Control Reg) (Cortex-M33, Non-secure)"
        Tag <0x41840000 0x10000>    "Mali-G31 (Cortex-M33, Non-secure)"
        Tag <0x41860000 0x10000>    "OTP (Cortex-M33, Non-secure)"
        Tag <0x41C00000 0x10000>    "SD ch0 (Cortex-M33, Non-secure)"
        Tag <0x41C10000 0x10000>    "SD ch1 (Cortex-M33, Non-secure)"
        Tag <0x41C20000 0x10000>    "Ether ch0 (Cortex-M33, Non-secure)"
        Tag <0x41C30000 0x10000>    "Ether ch1 (Cortex-M33, Non-secure)"
        Tag <0x41C40000 0x10000>    "USBPHY Control (Cortex-M33, Non-secure)"
        Tag <0x41C50000 0x10000>    "USB ch0 (OTG-Host) (Cortex-M33, Non-secure)"
        Tag <0x41C60000 0x10000>    "USB ch0 (OTG-Func) (Cortex-M33, Non-secure)"
        Tag <0x41C70000 0x10000>    "USB ch1 Host (Cortex-M33, Non-secure)"

        // Cortex-M33 Tags (Secure):
        Tag <0x50000000 0x40000>    "MTU3a (Cortex-M33, Secure)"
        Tag <0x50040000 0x7000>     "SRC (Memory) (Cortex-M33, Secure)"
        Tag <0x50047000 0x1000>     "SRC (Reg) (Cortex-M33, Secure)"
        Tag <0x50048800 0x400>      "POEGA (Cortex-M33, Secure)"
        Tag <0x50048C00 0x400>      "POEGB (Cortex-M33, Secure)"
        Tag <0x50049000 0x400>      "POEGC (Cortex-M33, Secure)"
        Tag <0x50049400 0x400>      "POEGD (Cortex-M33, Secure)"
        Tag <0x50049800 0x400>      "POE3 (Cortex-M33, Secure)"
        Tag <0x50049C00 0x400>      "SSIF ch0 (Cortex-M33, Secure)"
        Tag <0x5004A000 0x400>      "SSIF ch1 (Cortex-M33, Secure)"
        Tag <0x5004A400 0x400>      "SSIF ch2 (Cortex-M33, Secure)"
        Tag <0x5004A800 0x400>      "SSIF ch3 (Cortex-M33, Secure)"
        Tag <0x5004CC00 0x400>      "IrDA (SCI) (Cortex-M33, Secure)"
        Tag <0x5004D000 0x400>      "SCI ch0 (Cortex-M33, Secure)"
        Tag <0x5004D400 0x400>      "SCI ch1 (Cortex-M33, Secure)"
        Tag <0x50050000 0x8000>     "CANFD (Cortex-M33, Secure)"
        Tag <0x50059000 0x400>      "ADC (Cortex-M33, Secure)"
        Tag <0x50059400 0x400>      "TSU (Cortex-M33, Secure)"
        Tag <0x50060000 0x10000>    "SPI Multi I/O (Reg) (Cortex-M33, Secure)"
        Tag <0x50070000 0x10000>    "SPI Multi I/O (Write Buf) (Cortex-M33, Secure)"
        Tag <0x50830000 0x10000>    "CRU (Cortex-M33, Secure)"
        Tag <0x50840000 0x10000>    "ISU (Cortex-M33, Secure)"
        Tag <0x50850000 0x10000>    "DSI (PHY) (Cortex-M33, Secure)"
        Tag <0x50860000 0x10000>    "DSI (Controller) (Cortex-M33, Secure)"
        Tag <0x50870000 0x10000>    "VSPD (Cortex-M33, Secure)"
        Tag <0x50880000 0x10000>    "FCPVD (Cortex-M33, Secure)"
        Tag <0x50890000 0x10000>    "DU (Cortex-M33, Secure)"
        Tag <0x50C00000 0x1000000>  "CST (CoreSight) (Cortex-M33, Secure)"
        Tag <0x51040000 0x10000>    "TZC (SRAM ACPU) (Cortex-M33, Secure)"
        Tag <0x51050000 0x10000>    "TZC (SRAM MCPU) (Cortex-M33, Secure)"
        Tag <0x51060000 0x10000>    "TZC (SPI Multi I/O) (Cortex-M33, Secure)"
        Tag <0x51070000 0x10000>    "TZC (DDR) (Cortex-M33, Secure)"
        Tag <0x51080000 0x10000>    "SRAM ACPU (Reg) (Cortex-M33, Secure)"
        Tag <0x51090000 0x10000>    "SRAM MCPU (Reg) (Cortex-M33, Secure)"
        Tag <0x51400000 0x10000>    "DDR (PHY) (Cortex-M33, Secure)"
        Tag <0x51410000 0x10000>    "DDR (Control Reg) (Cortex-M33, Secure)"
        Tag <0x51840000 0x10000>    "Mali-G31 (Cortex-M33, Secure)"
        Tag <0x51860000 0x10000>    "OTP (Cortex-M33, Secure)"
        Tag <0x51C00000 0x10000>    "SD ch0 (Cortex-M33, Secure)"
        Tag <0x51C10000 0x10000>    "SD ch1 (Cortex-M33, Secure)"
        Tag <0x51C20000 0x10000>    "Ether ch0 (Cortex-M33, Secure)"
        Tag <0x51C30000 0x10000>    "Ether ch1 (Cortex-M33, Secure)"
        Tag <0x51C40000 0x10000>    "USBPHY Control (Cortex-M33, Secure)"
        Tag <0x51C50000 0x10000>    "USB ch0 (OTG-Host) (Cortex-M33, Secure)"
        Tag <0x51C60000 0x10000>    "USB ch0 (OTG-Func) (Cortex-M33, Secure)"
        Tag <0x51C70000 0x10000>    "USB ch1 Host (Cortex-M33, Secure)"

        Tag <0x11050FE0 0x4>   "Peripheral ID 0 TZC" 0x60
        Tag <0x11050FE4 0x4>   "Peripheral ID 1 TZC" 0xB4
        Tag <0x11050FE8 0x4>   "Peripheral ID 2 TZC" 0x2B

        Tag <0x11050FF0 0x4>   "Component ID 0 TZC" 0x0D
        Tag <0x11050FF4 0x4>   "Component ID 1 TZC" 0xF0
        Tag <0x11050FF8 0x4>   "Component ID 2 TZC" 0x05
        Tag <0x11050FFC 0x4>   "Component ID 3 TZC" 0xB1

        Tag <0x11040FE0 0x4>   "Peripheral ID 0 TZC" 0x60
        Tag <0x11040FE4 0x4>   "Peripheral ID 1 TZC" 0xB4
        Tag <0x11040FE8 0x4>   "Peripheral ID 2 TZC" 0x2B

        Tag <0x11040FF0 0x4>   "Component ID 0 TZC" 0x0D
        Tag <0x11040FF4 0x4>   "Component ID 1 TZC" 0xF0
        Tag <0x11040FF8 0x4>   "Component ID 2 TZC" 0x05
        Tag <0x11040FFC 0x4>   "Component ID 3 TZC" 0xB1

        Tag <0x11070FE0 0x4>   "Peripheral ID 0 TZC" 0x60
        Tag <0x11070FE4 0x4>   "Peripheral ID 1 TZC" 0xB4
        Tag <0x11070FE8 0x4>   "Peripheral ID 2 TZC" 0x2B

        Tag <0x11070FF0 0x4>   "Component ID 0 TZC" 0x0D
        Tag <0x11070FF4 0x4>   "Component ID 1 TZC" 0xF0
        Tag <0x11070FF8 0x4>   "Component ID 2 TZC" 0x05
        Tag <0x11070FFC 0x4>   "Component ID 3 TZC" 0xB1

        Tag <0x11060FE0 0x4>   "Peripheral ID 0 TZC" 0x60
        Tag <0x11060FE4 0x4>   "Peripheral ID 1 TZC" 0xB4
        Tag <0x11060FE8 0x4>   "Peripheral ID 2 TZC" 0x2B

        Tag <0x11060FF0 0x4>   "Component ID 0 TZC" 0x0D
        Tag <0x11060FF4 0x4>   "Component ID 1 TZC" 0xF0
        Tag <0x11060FF8 0x4>   "Component ID 2 TZC" 0x05
        Tag <0x11060FFC 0x4>   "Component ID 3 TZC" 0xB1
