Index: boot/arch/ia64/loader/gefi/HelenOS/hello.c
===================================================================
--- boot/arch/ia64/loader/gefi/HelenOS/hello.c	(revision aa8d0f724e941934ba8a46d05e4ec1c71954987a)
+++ boot/arch/ia64/loader/gefi/HelenOS/hello.c	(revision 1025d287b38dfbafd8f22c00a259f14af70cbab6)
@@ -154,7 +154,20 @@
 
 	rArg rSAL;
+	rArg rPAL;
+
 	//Setup AP's wake up address
-
 	LibSalProc(0x01000000,2,0x4400200,0,0,0,0,0,&rSAL);
+
+
+	//Get System Frequency
+	UINT64 sys_freq;
+	LibSalProc(0x01000012,0,0,0,0,0,0,0,&rSAL);
+	sys_freq=rSAL.p1;
+	
+
+	UINT64 freq_scale;
+	//Get CPU Frequency to System Frequency ratio
+	LibPalProc(14,0,0,0,&rPAL);
+	freq_scale=rPAL.p1;
 
 
@@ -162,5 +175,5 @@
         LibGetSalIpiBlock(&sapic);
         Print (L"SAPIC:%X\n", sapic);
-	bootinfo->sapic=sapic;
+	//bootinfo->sapic=sapic;
 
 
@@ -168,5 +181,5 @@
         wakeup_intno=0xf0;
         Print (L"WAKEUP INTNO:%X\n", wakeup_intno);
-	bootinfo->wakeup_intno=wakeup_intno;
+	//bootinfo->wakeup_intno=wakeup_intno;
 
 
@@ -213,4 +226,6 @@
 	bootinfo->sapic=(unsigned long *)sapic;
 	bootinfo->wakeup_intno=wakeup_intno;
+	bootinfo->sys_freq=sys_freq;
+	bootinfo->freq_scale=freq_scale;
 	
 	//Run Kernel
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;
+		
 	}
 	
