diff --git a/arch/arm/core/aarch64/CMakeLists.txt b/arch/arm/core/aarch64/CMakeLists.txt
index b336145dfa17dfeae4ff4628d3ec10a1e9804e4c..8da3241b28d0e6cadd31fed3e4d10e0917727a5d 100644
--- a/arch/arm/core/aarch64/CMakeLists.txt
+++ b/arch/arm/core/aarch64/CMakeLists.txt
@@ -32,3 +32,4 @@ zephyr_library_sources_ifdef(CONFIG_IRQ_OFFLOAD irq_offload.c)
 zephyr_library_sources_ifdef(CONFIG_ARM_MMU arm_mmu.c)
 zephyr_library_sources_ifdef(CONFIG_THREAD_LOCAL_STORAGE ../common/tls.c)
 zephyr_library_sources_ifdef(CONFIG_SMP cpu_smp.c)
+zephyr_library_sources_ifdef(CONFIG_ZTEST cpu_smp.c)
diff --git a/arch/arm/core/aarch64/reset.S b/arch/arm/core/aarch64/reset.S
index aa8fc1b6ef3cb9820bd668038488b2ea313566ec..5f14eefbfc7fff7bf5ed3eef8baadc51619235e4 100644
--- a/arch/arm/core/aarch64/reset.S
+++ b/arch/arm/core/aarch64/reset.S
@@ -204,7 +204,7 @@ raspi3_get_el:
 	lsr x0, x0, #2
 	ret
 
-#if defined(CONFIG_SMP)
+#if defined(CONFIG_SMP) || defined(CONFIG_ZTEST)
 	.globl raspi3b_smp_init_top_wrapper
 raspi3b_smp_init_top_wrapper:
 	/* Put CPU ID into x4. */
diff --git a/soc/arm/qemu_raspi3/mmu_regions.c b/soc/arm/qemu_raspi3/mmu_regions.c
index 22f7b10f6bea9b30376c17faeb934c24e91cf39a..50b3f5e412098544aec8008c94b76443ff1932b2 100644
--- a/soc/arm/qemu_raspi3/mmu_regions.c
+++ b/soc/arm/qemu_raspi3/mmu_regions.c
@@ -40,7 +40,7 @@ static const struct arm_mmu_region mmu_regions[] = {
 			      DT_REG_SIZE(DT_INST(0, arm_raspi3_mini)),
 			      MT_DEVICE_nGnRnE | MT_RW | MT_SECURE),
 #endif
-#ifdef CONFIG_SMP
+#if defined(CONFIG_SMP) || defined(CONFIG_ZTEST)
 	MMU_REGION_FLAT_ENTRY("SPINTABLE",
 			      0x00000000,
 			      0x1000,