Index: kernel/arch/ia64/include/bootinfo.h
===================================================================
--- kernel/arch/ia64/include/bootinfo.h	(revision aa8d0f724e941934ba8a46d05e4ec1c71954987a)
+++ kernel/arch/ia64/include/bootinfo.h	(revision 1025d287b38dfbafd8f22c00a259f14af70cbab6)
@@ -49,4 +49,6 @@
 
 	unsigned long * sapic;
+	unsigned long sys_freq;
+	unsigned long freq_scale;
 	unsigned int wakeup_intno;
 
Index: kernel/arch/ia64/include/drivers/it.h
===================================================================
--- kernel/arch/ia64/include/drivers/it.h	(revision aa8d0f724e941934ba8a46d05e4ec1c71954987a)
+++ kernel/arch/ia64/include/drivers/it.h	(revision 1025d287b38dfbafd8f22c00a259f14af70cbab6)
@@ -42,5 +42,5 @@
  *
  */
-#define IT_DELTA        100000
+#define IT_DELTA        it_delta
 
 extern void it_init(void);
Index: kernel/arch/ia64/src/drivers/it.c
===================================================================
--- kernel/arch/ia64/src/drivers/it.c	(revision aa8d0f724e941934ba8a46d05e4ec1c71954987a)
+++ kernel/arch/ia64/src/drivers/it.c	(revision 1025d287b38dfbafd8f22c00a259f14af70cbab6)
@@ -47,4 +47,14 @@
 #define IT_SERVICE_CLOCKS 64
 
+#define FREQ_NUMERATOR_SHIFT 32
+#define FREQ_NUMERATOR_MASK 0xffffffff00000000LL
+
+#define FREQ_DENOMINATOR_SHIFT 0
+#define FREQ_DENOMINATOR_MASK 0xffffffffLL
+
+
+uint64_t it_delta;
+
+
 static irq_t it_irq;
 
@@ -65,4 +75,12 @@
 		it_irq.handler = it_interrupt;
 		irq_register(&it_irq);
+		
+		uint64_t base_freq;
+		base_freq  = ((bootinfo->freq_scale) & FREQ_NUMERATOR_MASK) >> FREQ_NUMERATOR_SHIFT;
+		base_freq *= bootinfo->sys_freq;
+		base_freq /= ((bootinfo->freq_scale) & FREQ_DENOMINATOR_MASK) >> FREQ_DENOMINATOR_SHIFT;
+		
+		it_delta = base_freq /HZ;
+		
 	}
 	
