Index: kernel/arch/ia64/Makefile.inc
===================================================================
--- kernel/arch/ia64/Makefile.inc	(revision f619ec11294d6774460c8c5c50473bf484647d12)
+++ kernel/arch/ia64/Makefile.inc	(revision 2936eefc2b013e1f23260bbb8ab10fec05e6f3a3)
@@ -90,5 +90,5 @@
 
 ifeq ($(MACHINE),i460GX)
-	ARCH_SOURCES += arch/$(ARCH)/src/simics/ega.c
+	ARCH_SOURCES += arch/$(ARCH)/src/drivers/ega.c
 	DEFS += -DI460GX
 endif
Index: kernel/arch/ia64/include/drivers/ega.h
===================================================================
--- kernel/arch/ia64/include/drivers/ega.h	(revision 2936eefc2b013e1f23260bbb8ab10fec05e6f3a3)
+++ kernel/arch/ia64/include/drivers/ega.h	(revision 2936eefc2b013e1f23260bbb8ab10fec05e6f3a3)
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2001-2004 Jakub Jermar
+ * 2007 Jakub Vana 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup ia32	
+ * @{
+ */
+/** @file
+ */
+
+#ifndef KERN_ia64_EGA_H
+#define KERN_ia64_EGA_H
+
+#define VIDEORAM (0xE0000000000B8000LL)
+
+#define ROW		80
+#define ROWS		25
+#define SCREEN		(ROW * ROWS)
+
+extern void ega_init(void);
+
+#endif
+
+/** @}
+ */
Index: kernel/arch/ia64/include/simics/ega.h
===================================================================
--- kernel/arch/ia64/include/simics/ega.h	(revision f619ec11294d6774460c8c5c50473bf484647d12)
+++ 	(revision )
@@ -1,51 +1,0 @@
-/*
- * Copyright (c) 2001-2004 Jakub Jermar
- * 2007 Jakub Vana 
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup ia32	
- * @{
- */
-/** @file
- */
-
-#ifndef simics_ega_h
-#define simics_ega_h
-
-#define VIDEORAM (0xE0000000000B8000LL)
-
-#define ROW		80
-#define ROWS		25
-#define SCREEN		(ROW * ROWS)
-
-extern void ega_init(void);
-
-#endif
-
-/** @}
- */
-
Index: kernel/arch/ia64/src/cpu/cpu.c
===================================================================
--- kernel/arch/ia64/src/cpu/cpu.c	(revision f619ec11294d6774460c8c5c50473bf484647d12)
+++ kernel/arch/ia64/src/cpu/cpu.c	(revision 2936eefc2b013e1f23260bbb8ab10fec05e6f3a3)
@@ -52,23 +52,25 @@
 {
 	char *family_str;
-	char vendor[2*sizeof(uint64_t)+1];
+	char vendor[2 * sizeof(uint64_t) + 1];
 	
-	*((uint64_t *) &vendor[0*sizeof(uint64_t)]) = CPU->arch.cpuid0;
-	*((uint64_t *) &vendor[1*sizeof(uint64_t)]) = CPU->arch.cpuid1;
-	vendor[sizeof(vendor)-1] = '\0';
+	*((uint64_t *) &vendor[0 * sizeof(uint64_t)]) = CPU->arch.cpuid0;
+	*((uint64_t *) &vendor[1 * sizeof(uint64_t)]) = CPU->arch.cpuid1;
+	vendor[sizeof(vendor) - 1] = '\0';
 	
 	switch(m->arch.cpuid3.family) {
-	    case FAMILY_ITANIUM:
-	    	family_str = "Itanium";
+	case FAMILY_ITANIUM:
+		family_str = "Itanium";
 		break;
-	    case FAMILY_ITANIUM2:
-	    	family_str = "Itanium 2";
+	case FAMILY_ITANIUM2:
+		family_str = "Itanium 2";
 		break;
-	    default:
-	    	family_str = "Unknown";
+	default:
+		family_str = "Unknown";
 		break;
 	}
 	
-	printf("cpu%d: %s (%s), archrev=%d, model=%d, revision=%d\n", CPU->id, family_str, vendor, CPU->arch.cpuid3.archrev, CPU->arch.cpuid3.model, CPU->arch.cpuid3.revision);
+	printf("cpu%d: %s (%s), archrev=%d, model=%d, revision=%d\n", CPU->id,
+	    family_str, vendor, CPU->arch.cpuid3.archrev, CPU->arch.cpuid3.model,
+	    CPU->arch.cpuid3.revision);
 }
 
Index: kernel/arch/ia64/src/drivers/ega.c
===================================================================
--- kernel/arch/ia64/src/drivers/ega.c	(revision 2936eefc2b013e1f23260bbb8ab10fec05e6f3a3)
+++ kernel/arch/ia64/src/drivers/ega.c	(revision 2936eefc2b013e1f23260bbb8ab10fec05e6f3a3)
@@ -0,0 +1,139 @@
+/*
+ * Copyright (c) 2001-2004 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup ia32	
+ * @{
+ */
+/**
+ * @file
+ * @brief EGA driver.
+ */
+
+#include <putchar.h>
+#include <mm/page.h>
+#include <mm/as.h>
+#include <arch/mm/page.h>
+#include <synch/spinlock.h>
+#include <arch/types.h>
+#include <arch/asm.h>
+#include <memstr.h>
+#include <console/chardev.h>
+#include <console/console.h>
+#include <sysinfo/sysinfo.h>
+#include <arch/drivers/ega.h>
+
+/*
+ * The EGA driver.
+ * Simple and short. Function for displaying characters and "scrolling".
+ */
+
+SPINLOCK_INITIALIZE(egalock);
+static uint32_t ega_cursor;
+static uint8_t *videoram;
+
+static void ega_putchar(chardev_t *d, const char ch);
+
+chardev_t ega_console;
+static chardev_operations_t ega_ops = {
+	.write = ega_putchar
+};
+
+
+void ega_init(void)
+{
+	videoram = (uint8_t *) (VIDEORAM);
+
+	/*
+	 * Clear the screen.
+	 */
+	_memsetw((uintptr_t) videoram, SCREEN, 0x0720);	
+
+	chardev_initialize("ega_out", &ega_console, &ega_ops);
+	stdout = &ega_console;
+	
+	sysinfo_set_item_val("fb", NULL, true);
+	sysinfo_set_item_val("fb.kind", NULL, 2);
+	sysinfo_set_item_val("fb.width", NULL, ROW);
+	sysinfo_set_item_val("fb.height", NULL, ROWS);
+	sysinfo_set_item_val("fb.address.physical", NULL, VIDEORAM);
+	
+#ifndef CONFIG_FB
+	putchar('\n');
+#endif	
+}
+
+static void ega_display_char(char ch)
+{
+	videoram[ega_cursor * 2] = ch;
+	videoram[ega_cursor * 2 + 1] = 7;
+}
+
+/*
+ * This function takes care of scrolling.
+ */
+static void ega_check_cursor(void)
+{
+	if (ega_cursor < SCREEN)
+		return;
+
+	memcpy((void *) videoram, (void *) (videoram + ROW * 2), (SCREEN - ROW) * 2);
+	_memsetw((uintptr_t) (videoram + (SCREEN - ROW) * 2), ROW, 0x0720);
+	ega_cursor = ega_cursor - ROW;
+}
+
+void ega_putchar(chardev_t *d, const char ch)
+{
+	ipl_t ipl;
+
+	ipl = interrupts_disable();
+	spinlock_lock(&egalock);
+
+	switch (ch) {
+	case '\n':
+		ega_cursor = (ega_cursor + ROW) - ega_cursor % ROW;
+		break;
+	case '\t':
+		ega_cursor = (ega_cursor + 8) - ega_cursor % 8;
+		break; 
+	case '\b':
+		if (ega_cursor % ROW)
+			ega_cursor--;
+		break;
+	default:
+		ega_display_char(ch);
+		ega_cursor++;
+		break;
+	}
+	ega_check_cursor();
+
+	spinlock_unlock(&egalock);
+	interrupts_restore(ipl);
+}
+
+/** @}
+ */
Index: kernel/arch/ia64/src/ia64.c
===================================================================
--- kernel/arch/ia64/src/ia64.c	(revision f619ec11294d6774460c8c5c50473bf484647d12)
+++ kernel/arch/ia64/src/ia64.c	(revision 2936eefc2b013e1f23260bbb8ab10fec05e6f3a3)
@@ -51,5 +51,5 @@
 #include <syscall/syscall.h>
 #include <ddi/irq.h>
-#include <arch/simics/ega.h>
+#include <arch/drivers/ega.h>
 
 void arch_pre_main(void)
Index: kernel/arch/ia64/src/simics/ega.c
===================================================================
--- kernel/arch/ia64/src/simics/ega.c	(revision f619ec11294d6774460c8c5c50473bf484647d12)
+++ 	(revision )
@@ -1,141 +1,0 @@
-/*
- * Copyright (c) 2001-2004 Jakub Jermar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- *   notice, this list of conditions and the following disclaimer in the
- *   documentation and/or other materials provided with the distribution.
- * - The name of the author may not be used to endorse or promote products
- *   derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/** @addtogroup ia32	
- * @{
- */
-/**
- * @file
- * @brief EGA driver.
- */
-
-#include <putchar.h>
-#include <mm/page.h>
-#include <mm/as.h>
-#include <arch/mm/page.h>
-#include <synch/spinlock.h>
-#include <arch/types.h>
-#include <arch/asm.h>
-#include <memstr.h>
-#include <console/chardev.h>
-#include <console/console.h>
-#include <sysinfo/sysinfo.h>
-#include <arch/simics/ega.h>
-
-/*
- * The EGA driver.
- * Simple and short. Function for displaying characters and "scrolling".
- */
-
-SPINLOCK_INITIALIZE(egalock);
-static uint32_t ega_cursor;
-static uint8_t *videoram;
-
-static void ega_putchar(chardev_t *d, const char ch);
-
-chardev_t ega_console;
-static chardev_operations_t ega_ops = {
-	.write = ega_putchar
-};
-
-
-void ega_init(void)
-{
-	
-	videoram = (uint8_t *) (VIDEORAM);
-
-	chardev_initialize("ega_out", &ega_console, &ega_ops);
-	stdout = &ega_console;
-	
-	sysinfo_set_item_val("fb", NULL, true);
-	sysinfo_set_item_val("fb.kind", NULL, 2);
-	sysinfo_set_item_val("fb.width", NULL, ROW);
-	sysinfo_set_item_val("fb.height", NULL, ROWS);
-	sysinfo_set_item_val("fb.address.physical", NULL, VIDEORAM);
-	
-#ifndef CONFIG_FB
-	putchar('\n');
-#endif	
-}
-
-static void ega_display_char(char ch)
-{
-	videoram[ega_cursor * 2] = ch;
-	videoram[ega_cursor * 2+1] = 7;
-}
-
-/*
- * This function takes care of scrolling.
- */
-static void ega_check_cursor(void)
-{
-	int i;
-	if (ega_cursor < SCREEN)
-		return;
-
-	memcpy((void *) videoram, (void *) (videoram + ROW * 2), (SCREEN - ROW) * 2);
-	for(i=0;i<ROW*2;i+=2)
-	{
-		videoram[(SCREEN-ROW)*2+i+0]=0x20;
-		videoram[(SCREEN-ROW)*2+i+1]=0x07;
-	}
-	ega_cursor = ega_cursor - ROW;
-}
-
-void ega_putchar(chardev_t *d, const char ch)
-{
-	ipl_t ipl;
-
-	ipl = interrupts_disable();
-	spinlock_lock(&egalock);
-
-	switch (ch) {
-	case '\n':
-		ega_cursor = (ega_cursor + ROW) - ega_cursor % ROW;
-		break;
-	case '\t':
-		ega_cursor = (ega_cursor + 8) - ega_cursor % 8;
-		break; 
-	case '\b':
-		if (ega_cursor % ROW)
-			ega_cursor--;
-		break;
-	default:
-		ega_display_char(ch);
-		ega_cursor++;
-		break;
-	}
-	ega_check_cursor();
-
-	spinlock_unlock(&egalock);
-	interrupts_restore(ipl);
-}
-
-
-/** @}
- */
Index: kernel/arch/ia64/src/start.S
===================================================================
--- kernel/arch/ia64/src/start.S	(revision f619ec11294d6774460c8c5c50473bf484647d12)
+++ kernel/arch/ia64/src/start.S	(revision 2936eefc2b013e1f23260bbb8ab10fec05e6f3a3)
@@ -49,20 +49,20 @@
 	# Fill TR.i and TR.d using Region Register #VRN_KERNEL
 
-	movl r8=(VRN_KERNEL<<VRN_SHIFT)
-	mov r9=rr[r8]
-	movl r10=(RR_MASK)
-	and r9=r10,r9
-	movl r10=((RID_KERNEL<<RID_SHIFT)|(KERNEL_PAGE_WIDTH<<PS_SHIFT))
-	or  r9=r10,r9
-	mov rr[r8]=r9
+	movl r8 = (VRN_KERNEL << VRN_SHIFT)
+	mov r9 = rr[r8]
+	movl r10 = (RR_MASK)
+	and r9 = r10, r9
+	movl r10 = ((RID_KERNEL << RID_SHIFT) | (KERNEL_PAGE_WIDTH << PS_SHIFT))
+	or  r9 = r10, r9
+	mov rr[r8] = r9
 
-	movl r8=(VRN_KERNEL<<VRN_SHIFT)
-	mov cr.ifa=r8
-	movl r10=(KERNEL_PAGE_WIDTH<<PS_SHIFT)
-	mov cr.itir=r10
-	movl r10=(KERNEL_TRANSLATION_I)
-	itr.i itr[r0]=r10
-	movl r10=(KERNEL_TRANSLATION_D)
-	itr.d dtr[r0]=r10
+	movl r8 = (VRN_KERNEL << VRN_SHIFT)
+	mov cr.ifa = r8
+	movl r10 = (KERNEL_PAGE_WIDTH << PS_SHIFT)
+	mov cr.itir = r10
+	movl r10 = (KERNEL_TRANSLATION_I)
+	itr.i itr[r0] = r10
+	movl r10 = (KERNEL_TRANSLATION_D)
+	itr.d dtr[r0] = r10
 
 	# initialize PSR
@@ -70,11 +70,11 @@
 	srlz.i
 	srlz.d
-	movl r10=(PSR_DT_MASK|PSR_RT_MASK|PSR_IT_MASK|PSR_IC_MASK)  /* Enable paging */
-	mov r9=psr
-	or r10=r10,r9
-	mov cr.ipsr=r10
-	mov cr.ifs=r0
-	movl r8=paging_start
-	mov cr.iip=r8
+	movl r10 = (PSR_DT_MASK | PSR_RT_MASK | PSR_IT_MASK | PSR_IC_MASK)  /* Enable paging */
+	mov r9 = psr
+	or r10 = r10, r9
+	mov cr.ipsr = r10
+	mov cr.ifs = r0
+	movl r8 = paging_start
+	mov cr.iip = r8
 	srlz.d
 	srlz.i
@@ -98,12 +98,12 @@
 	# initialize register stack
 	mov ar.rsc = r0
-	movl r8=(VRN_KERNEL<<VRN_SHIFT) ;;
+	movl r8 = (VRN_KERNEL << VRN_SHIFT) ;;
 	mov ar.bspstore = r8
 	loadrs
 
 	# initialize memory stack to some sane value
-	movl r12 = stack0;;
+	movl r12 = stack0 ;;
 	
-	add r12 = - 16, r12	/* allocate a scratch area on the stack */
+	add r12 = -16, r12	/* allocate a scratch area on the stack */
 
 	# initialize gp (Global Pointer) register
@@ -124,13 +124,13 @@
 	st8 [r19] = r16
 
-	ssm (1<<19);; /* Disable f32 - f127 */
-	srlz.i;
-	srlz.d;;
+	ssm (1 << 19) ;; /* Disable f32 - f127 */
+	srlz.i
+	srlz.d ;;
 
 	br.call.sptk.many b0 = arch_pre_main
 
-	movl r18=main_bsp ;;
-	mov b1=r18 ;;
-	br.call.sptk.many b0=b1
+	movl r18 = main_bsp ;;
+	mov b1 = r18 ;;
+	br.call.sptk.many b0 = b1
 
 
