Index: kernel/arch/mips32/include/cycle.h
===================================================================
--- kernel/arch/mips32/include/cycle.h	(revision d4e38c74100f1742565d55a85aba5978176a3fa4)
+++ kernel/arch/mips32/include/cycle.h	(revision 0287820b27f09ebd8bd9fcd3a16a7c3d1ea974d9)
@@ -36,7 +36,10 @@
 #define KERN_mips32_CYCLE_H_
 
+#include <arch/cp0.h>
+#include <arch/interrupt.h>
+
 static inline uint64_t get_cycle(void)
 {
-	return 0;
+	return ((uint64_t) count_hi << 32) + ((uint64_t) cp0_count_read());
 }
 
Index: kernel/arch/mips32/include/interrupt.h
===================================================================
--- kernel/arch/mips32/include/interrupt.h	(revision d4e38c74100f1742565d55a85aba5978176a3fa4)
+++ kernel/arch/mips32/include/interrupt.h	(revision 0287820b27f09ebd8bd9fcd3a16a7c3d1ea974d9)
@@ -43,4 +43,5 @@
 
 extern function virtual_timer_fnc;
+extern uint32_t count_hi;
 
 extern void interrupt_init(void);
Index: kernel/arch/mips32/src/interrupt.c
===================================================================
--- kernel/arch/mips32/src/interrupt.c	(revision d4e38c74100f1742565d55a85aba5978176a3fa4)
+++ kernel/arch/mips32/src/interrupt.c	(revision 0287820b27f09ebd8bd9fcd3a16a7c3d1ea974d9)
@@ -90,8 +90,12 @@
 
 /* TODO: This is SMP unsafe!!! */
+uint32_t count_hi = 0;
 static unsigned long nextcount;
+static unsigned long lastcount;
+
 /** Start hardware clock */
 static void timer_start(void)
 {
+	lastcount = cp0_count_read();
 	nextcount = cp0_compare_value + cp0_count_read();
 	cp0_compare_write(nextcount);
@@ -106,5 +110,11 @@
 {
 	unsigned long drift;
-
+	
+	if (cp0_count_read() < lastcount) {
+		/* Count overflow detection */
+		count_hi++;
+		lastcount = cp0_count_read();
+	}
+	
 	drift = cp0_count_read() - nextcount;
 	while (drift > cp0_compare_value) {
@@ -114,5 +124,5 @@
 	nextcount = cp0_count_read() + cp0_compare_value - drift;
 	cp0_compare_write(nextcount);
-
+	
 	/*
 	 * We are holding a lock which prevents preemption.
