| // APU |
| |
| apu0: CPU.ARMv8A @ sysbus |
| cpuType: "cortex-a53" |
| cpuId: 0 |
| genericInterruptController: apuGic |
| |
| apu1: CPU.ARMv8A @ sysbus |
| cpuType: "cortex-a53" |
| cpuId: 1 |
| genericInterruptController: apuGic |
| init: |
| IsHalted true |
| |
| apu2: CPU.ARMv8A @ sysbus |
| cpuType: "cortex-a53" |
| cpuId: 2 |
| genericInterruptController: apuGic |
| init: |
| IsHalted true |
| |
| apu3: CPU.ARMv8A @ sysbus |
| 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 @ sysbus |
| 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 @ sysbus |
| 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: 0x10000 |
| |
| ddrLowRpu: Memory.MappedMemory @ { |
| sysbus new Bus.BusPointRegistration { address: 0x10000; cpu: rpu0 }; |
| sysbus new Bus.BusPointRegistration { address: 0x10000; cpu: rpu1 } |
| } |
| 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; cpu: apu0 }; |
| sysbus new Bus.BusPointRegistration { address: 0x0; cpu: apu1 }; |
| sysbus new Bus.BusPointRegistration { address: 0x0; cpu: apu2 }; |
| sysbus new Bus.BusPointRegistration { address: 0x0; cpu: apu3 } |
| } |
| 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; cpu: apu0 }; |
| sysbus new Bus.BusPointRegistration { address: 0x800000000; cpu: apu1 }; |
| sysbus new Bus.BusPointRegistration { address: 0x800000000; cpu: apu2 }; |
| sysbus new Bus.BusPointRegistration { address: 0x800000000; cpu: apu3 } |
| } |
| size: 0x80000000 |
| |
| // 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@67 |
| [1-2] -> rpuGic@[65-66] |
| [3-6] -> platformManagementUnit@[0-3] |
| |
| ipiMailbox: Memory.MappedMemory @ sysbus 0xff990000 |
| size: 0x1000 |
| |
| 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 |