[#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