diff --git a/arch/arc/lib/bootm.c b/arch/arc/lib/bootm.c
index a498ce5b297c69724f9c59bf2b486f1d0414da23..9eef7070cf436f7f2803dc0618cc436c00ef1904 100644
--- a/arch/arc/lib/bootm.c
+++ b/arch/arc/lib/bootm.c
@@ -88,11 +88,11 @@ static void boot_jump_linux(bootm_headers_t *images, int flag)
 		r2 = (unsigned int)env_get("bootargs");
 	}
 
-	smp_set_core_boot_addr((unsigned long)kernel_entry, -1);
-	smp_kick_all_cpus();
-
-	if (!fake)
+	if (!fake) {
+		smp_set_core_boot_addr((unsigned long)kernel_entry, -1);
+		smp_kick_all_cpus();
 		kernel_entry(r0, 0, r2);
+	}
 }
 
 int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)