diff --git a/hw-tests/dual-core/core1.c b/hw-tests/dual-core/core1.c
index 989c611a026d2241fcda709854fe1abe7e23ca7e..adb31bf86b5688b4dbd822b559a3b65ffd84542e 100644
--- a/hw-tests/dual-core/core1.c
+++ b/hw-tests/dual-core/core1.c
@@ -11,6 +11,10 @@ int main(void)
 	for (int i = 0; 1; i++) {
 		__asm volatile("wfe");
 		printf("core1: Hello! %d\n", i);
+		mxc_delay(3000000);
+		printf("core1: Waking up core0\n");
+		__asm volatile("sev");
+		__asm volatile("wfe");
 
 #if 0
 		GPIO_OutSet(&motor_pin);
diff --git a/hw-tests/dual-core/main.c b/hw-tests/dual-core/main.c
index d8e94276fc5572ac30bee069d98a9840f5f9e557..a13daa43c3d171bb1faa306b938d37d47c81406d 100644
--- a/hw-tests/dual-core/main.c
+++ b/hw-tests/dual-core/main.c
@@ -39,6 +39,7 @@ int main(void)
     }
 
     int h = 0;
+    MXC_GCR->evten |= 0x04;
 
     // Release core1
     Core1_Start();
@@ -54,7 +55,7 @@ int main(void)
         }
 
         leds_update();
-        TMR_Delay(MXC_TMR0, MSEC(10), 0);
+        TMR_Delay(MXC_TMR1, MSEC(10), 0);
         h++;
 
         // Send a txev using `sev` every once in a while to wake up core1
@@ -62,6 +63,9 @@ int main(void)
         if (h % 100 == 0) {
             printf("core0: Triggering core1 using SEV ...\n");
             __asm volatile("sev");
+            __asm volatile("wfe");
+            __asm volatile("wfe");
+            printf("core0 woke up\n");
         }
     }
 }