// Clusters definitions cluster0: CPU.Cluster @ sysbus cluster1: CPU.Cluster @ sysbus // APU apu0: CPU.ARMv8A @ cluster0 cpuType: "cortex-a53" cpuId: 0 genericInterruptController: apuGic apu1: CPU.ARMv8A @ cluster0 cpuType: "cortex-a53" cpuId: 1 genericInterruptController: apuGic init: IsHalted true apu2: CPU.ARMv8A @ cluster0 cpuType: "cortex-a53" cpuId: 2 genericInterruptController: apuGic init: IsHalted true apu3: CPU.ARMv8A @ cluster0 cpuType: "cortex-a53" cpuId: 3 genericInterruptController: apuGic init: IsHalted true apu0Timer: Timers.ARM_GenericTimer @ apu0 frequency: 100000000 NonSecureEL2PhysicalTimerIRQ -> apuGic#0@29 EL1PhysicalTimerIRQ -> apuGic#0@30 EL1VirtualTimerIRQ -> apuGic#0@27 EL3PhysicalTimerIRQ -> apuGic#0@26 apu1Timer: Timers.ARM_GenericTimer @ apu1 frequency: 100000000 NonSecureEL2PhysicalTimerIRQ -> apuGic#1@29 EL1PhysicalTimerIRQ -> apuGic#1@30 EL1VirtualTimerIRQ -> apuGic#1@27 EL3PhysicalTimerIRQ -> apuGic#1@26 apu2Timer: Timers.ARM_GenericTimer @ apu2 frequency: 100000000 NonSecureEL2PhysicalTimerIRQ -> apuGic#2@29 EL1PhysicalTimerIRQ -> apuGic#2@30 EL1VirtualTimerIRQ -> apuGic#2@27 EL3PhysicalTimerIRQ -> apuGic#2@26 apu3Timer: Timers.ARM_GenericTimer @ apu3 frequency: 100000000 NonSecureEL2PhysicalTimerIRQ -> apuGic#3@29 EL1PhysicalTimerIRQ -> apuGic#3@30 EL1VirtualTimerIRQ -> apuGic#3@27 EL3PhysicalTimerIRQ -> apuGic#3@26 apuGic: IRQControllers.ARM_GenericInterruptController @ { sysbus new Bus.BusMultiRegistration { address: 0xf9010000; size: 0x010000; region: "distributor" }; sysbus new Bus.BusMultiRegistration { address: 0xf9020000; size: 0x010000; region: "cpuInterface" } } [0-3] -> apu0@[0-3] [4-7] -> apu1@[0-3] [8-11] -> apu2@[0-3] [12-15] -> apu3@[0-3] architectureVersion: IRQControllers.ARM_GenericInterruptControllerVersion.GICv2 // RPU rpu0: CPU.ARMv7R @ cluster1 cpuType: "cortex-r5f" // Aff1: 1, Aff0: 0 cpuId: 0x100 genericInterruptController: rpuGic numberOfMPURegions: 16 init: // interface region RegisterTCMRegion sysbus.atcm0 1 0 RegisterTCMRegion sysbus.btcm0 0 0 rpu1: CPU.ARMv7R @ cluster1 cpuType: "cortex-r5f" // Aff1: 1, Aff0: 1 cpuId: 0x101 genericInterruptController: rpuGic numberOfMPURegions: 16 init: // interface region RegisterTCMRegion sysbus.atcm1 1 0 RegisterTCMRegion sysbus.btcm1 0 0 rpuGic: IRQControllers.ARM_GenericInterruptController @ { sysbus new Bus.BusMultiRegistration { address: 0xf9000000; size: 0x1000; region: "distributor" }; sysbus new Bus.BusMultiRegistration { address: 0xf9001000; size: 0x100; region: "cpuInterface" } } [0-1] -> rpu0@[0-1] [4-5] -> rpu1@[0-1] architectureVersion: IRQControllers.ARM_GenericInterruptControllerVersion.GICv1 // MEMORY atcm0: Memory.MappedMemory @ { sysbus new Bus.BusPointRegistration { address: 0x0; cpu: rpu0 }; sysbus 0xffe00000 } size: 0x10000 btcm0: Memory.MappedMemory @ { sysbus new Bus.BusPointRegistration { address: 0x20000; cpu: rpu0 }; sysbus 0xffe20000 } size: 0x20000 ddrLowRpu: Memory.MappedMemory @ { sysbus new Bus.BusPointRegistration { address: 0x10000; cluster: cluster1 } } size: 0x10000 atcm1: Memory.MappedMemory @ { sysbus new Bus.BusPointRegistration { address: 0x0; cpu: rpu1 }; sysbus 0xffe90000 } size: 0x10000 btcm1: Memory.MappedMemory @ { sysbus new Bus.BusPointRegistration { address: 0x20000; cpu: rpu1 }; sysbus 0xffeb0000 } size: 0x10000 ddrLowApu: Memory.MappedMemory @ { sysbus new Bus.BusPointRegistration { address: 0x0; cluster: cluster0 } } size: 0x30000 ddrLowCommon: Memory.MappedMemory @ sysbus 0x30000 size: 0x7ffd0000 quadSpiFlash: Memory.MappedMemory @ sysbus 0xc0000000 size: 0x2000000 ocm: Memory.MappedMemory @ sysbus 0xfffc0000 size: 0x40000 ddrHigh: Memory.MappedMemory @ { sysbus new Bus.BusPointRegistration { address: 0x800000000; cluster: cluster0 } } size: 0x80000000 rpu_control: Memory.MappedMemory @ sysbus 0xff9a0000 size: 0x1000 // I/O MAPPED PERIPHERALS uart0: UART.Cadence_UART @ sysbus 0xff000000 -> apuGic@21 | rpuGic@21 uart1: UART.Cadence_UART @ sysbus 0xff010000 -> apuGic@22 | rpuGic@22 i2c0: I2C.Cadence_I2C @ sysbus <0xff020000, +0x1000> -> apuGic@17 | rpuGic@17 i2c1: I2C.Cadence_I2C @ sysbus <0xff030000, +0x1000> -> apuGic@18 | rpuGic@17 ttc0: Timers.Cadence_TTC @ sysbus 0xff110000 [0-2] -> apuGic@[36-38] | rpuGic@[36-38] ttc1: Timers.Cadence_TTC @ sysbus 0xff120000 [0-2] -> apuGic@[39-41] | rpuGic@[39-41] ttc2: Timers.Cadence_TTC @ sysbus 0xff130000 [0-2] -> apuGic@[42-44] | rpuGic@[42-44] ttc3: Timers.Cadence_TTC @ sysbus 0xff140000 [0-2] -> apuGic@[45-47] | rpuGic@[45-47] gem0: Network.CadenceGEM @ sysbus 0xff0b0000 -> apuGic@57 | rpuGic@57 gem1: Network.CadenceGEM @ sysbus 0xff0c0000 -> apuGic@59 | rpuGic@59 gem2: Network.CadenceGEM @ sysbus 0xff0d0000 -> apuGic@61 | rpuGic@61 gem3: Network.CadenceGEM @ sysbus 0xff0e0000 -> apuGic@63 | rpuGic@63 gpio: GPIOPort.XilinxGPIOPS @ sysbus <0xff0a0000, +0x1000> numberOfGpioBanks: 6 ipi: Miscellaneous.ZynqMP_IPI @ sysbus 0xff300000 mailbox: ipiMailbox 0 -> apuGic@35 | rpuGic@35 [1-2] -> apuGic@[33-34] | rpuGic@[33-34] [3-6] -> platformManagementUnit@[0-3] [7-10] -> apuGic@[29-32] | rpuGic@[29-32] ipiMailbox: Memory.MappedMemory @ sysbus 0xff990000 size: 0x1000 rtc: Timers.ZynqMP_RTC @ sysbus 0xffa60000 SecondIRQ -> apuGic@26 | rpuGic@26 AlarmIRQ -> apuGic@27 | rpuGic@27 platformManagementUnit: Miscellaneous.ZynqMP_PlatformManagementUnit @ ipi apu0: apu0 apu1: apu1 apu2: apu2 apu3: apu3 rpu0: rpu0 rpu1: rpu1 pmu0: Miscellaneous.ArmPerformanceMonitoringUnit @ rpu0 -> rpuGic@5 sysbus: init: Tag <0xff260020 0x4> "counter_frequency" 0x5F5E100 Tag <0xfd6e0fe0 0x4> "cci_part_number_lo" 0x20 Tag <0xfd6e0fe4 0x4> "cci_part_number_hi" 0x04