[#59873] Cortex-R52: Test Zephyr SMP sample
diff --git a/platforms/cpus/cortex-r52_smp_4.repl b/platforms/cpus/cortex-r52_smp_4.repl new file mode 100644 index 0000000..29fbdfb --- /dev/null +++ b/platforms/cpus/cortex-r52_smp_4.repl
@@ -0,0 +1,39 @@ +using "./cortex-r52_smp.repl" + +cpu2: CPU.ARMv8R @ sysbus + cpuType: "cortex-r52" + genericInterruptController: gic + cpuId: 2 + +cpu3: CPU.ARMv8R @ sysbus + cpuType: "cortex-r52" + genericInterruptController: gic + cpuId: 3 + +gic: @ { + sysbus new Bus.BusMultiRegistration { address: 0xAF000000; size: 0x10000; region: "distributor" }; + sysbus new IRQControllers.ArmGicRedistributorRegistration { attachedCPU: cpu; address: 0xAF100000 }; + sysbus new IRQControllers.ArmGicRedistributorRegistration { attachedCPU: cpu1; address: 0xAF120000 }; + sysbus new IRQControllers.ArmGicRedistributorRegistration { attachedCPU: cpu2; address: 0xAF140000 }; + sysbus new IRQControllers.ArmGicRedistributorRegistration { attachedCPU: cpu3; address: 0xAF160000 } + } + [8-11] -> cpu2@[0-3] + [12-15] -> cpu3@[0-3] + +timer2: Timers.ARM_GenericTimer @ cpu2 + frequency: 100000000 + EL1PhysicalTimerIRQ -> gic#2@30 + EL1VirtualTimerIRQ -> gic#2@27 + NonSecureEL2PhysicalTimerIRQ -> gic#2@26 + +timer3: Timers.ARM_GenericTimer @ cpu3 + frequency: 100000000 + EL1PhysicalTimerIRQ -> gic#3@30 + EL1VirtualTimerIRQ -> gic#3@27 + NonSecureEL2PhysicalTimerIRQ -> gic#3@26 + +uart2: UART.PL011 @ sysbus 0x9c0b0000 + -> gic@7 + +uart3: UART.PL011 @ sysbus 0x9c0c0000 + -> gic@8 \ No newline at end of file
diff --git a/tests/platforms/ARMv8R.robot b/tests/platforms/ARMv8R.robot index 13fc1a2..5669883 100644 --- a/tests/platforms/ARMv8R.robot +++ b/tests/platforms/ARMv8R.robot
@@ -1027,3 +1027,18 @@ # See dump_fault in arch/arm/core/aarch32/cortex_a_r/fault.c. Wait For Line On Uart DATA ABORT Wait For Line On Uart Unknown (4) + +Run Zephyr SMP Pi Sample On 4 Cores + [Tags] Demos + + Execute Command i @platforms/cpus/cortex-r52_smp_4.repl + Execute Command sysbus LoadELF ${URI}/fvp_baser_aemv8r_aarch32--zephyr-arch-smp-pi.elf-s_610540-6034d4eb76ea1b158f34bdd92ffcff2365f2c2e6 + + # These parameters ensure the determinism of execution for this demo + Execute Command emulation SetGlobalSerialExecution True + Execute Command emulation SetGlobalQuantum "0.01" + + Execute Command showAnalyzer ${UART} + Create Terminal Tester ${UART} + + Wait For Line On Uart All 16 threads executed by 4 cores \ No newline at end of file