Index: uspace/fb/ega.c
===================================================================
--- uspace/fb/ega.c	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/fb/ega.c	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -316,6 +316,5 @@
 
 	sz = scr_width * scr_height * 2;
-	scr_addr = as_get_mappable_page(sz, (int)
-		sysinfo_value("fb.address.color"));
+	scr_addr = as_get_mappable_page(sz);
 
 	physmem_map(ega_ph_addr, scr_addr, ALIGN_UP(sz, PAGE_SIZE) >>
Index: uspace/fb/fb.c
===================================================================
--- uspace/fb/fb.c	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/fb/fb.c	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -756,6 +756,5 @@
 		/* We accept one area for data interchange */
 		if (IPC_GET_ARG1(*call) == shm_id) {
-			void *dest = as_get_mappable_page(IPC_GET_ARG2(*call),
-				PAGE_COLOR(IPC_GET_ARG1(*call)));
+			void *dest = as_get_mappable_page(IPC_GET_ARG2(*call));
 			shm_size = IPC_GET_ARG2(*call);
 			if (!ipc_answer_fast(callid, 0, (sysarg_t) dest, 0)) 
@@ -1370,6 +1369,5 @@
 
 	asz = fb_scanline * fb_height;
-	fb_addr = as_get_mappable_page(asz, (int)
-		sysinfo_value("fb.address.color"));
+	fb_addr = as_get_mappable_page(asz);
 	
 	physmem_map(fb_ph_addr, fb_addr, ALIGN_UP(asz, PAGE_SIZE) >>
Index: uspace/fb/main.c
===================================================================
--- uspace/fb/main.c	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/fb/main.c	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -44,6 +44,5 @@
 	void *dest;
 
-	dest = as_get_mappable_page(IPC_GET_ARG2(*call),
-		PAGE_COLOR(IPC_GET_ARG1(*call)));
+	dest = as_get_mappable_page(IPC_GET_ARG2(*call));
 	if (ipc_answer_fast(callid, 0, (sysarg_t) dest, 0) == 0) {
 		if (*area)
Index: uspace/klog/klog.c
===================================================================
--- uspace/klog/klog.c	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/klog/klog.c	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -63,5 +63,5 @@
 	printf("Kernel console output.\n");
 	
-	mapping = as_get_mappable_page(PAGE_SIZE, sysinfo_value("klog.fcolor"));
+	mapping = as_get_mappable_page(PAGE_SIZE);
 	res = ipc_call_sync_3(PHONE_NS, IPC_M_AS_AREA_RECV, 
 			      (sysarg_t) mapping, PAGE_SIZE, SERVICE_MEM_KLOG,
Index: uspace/libc/arch/sparc64/_link.ld.in
===================================================================
--- uspace/libc/arch/sparc64/_link.ld.in	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/libc/arch/sparc64/_link.ld.in	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -8,7 +8,7 @@
 
 SECTIONS {
-	. = 0x2000;
+	. = 0x4000;
 
-	.init ALIGN(0x2000) : SUBALIGN(0x2000) {
+	.init ALIGN(0x4000) : SUBALIGN(0x4000) {
 		*(.init);
 	} :text
@@ -18,9 +18,9 @@
 	} :text
 	
-	.got ALIGN(0x2000) : SUBALIGN(0x2000) {
+	.got ALIGN(0x4000) : SUBALIGN(0x4000) {
 		 _gp = .;
 		 *(.got*);
 	} :data
-	.data ALIGN(0x2000) : SUBALIGN(0x2000) {
+	.data ALIGN(0x4000) : SUBALIGN(0x4000) {
 		*(.data);
 		*(.sdata);
@@ -42,5 +42,5 @@
 	} :data
 
-	. = ALIGN(0x2000);
+	. = ALIGN(0x4000);
 	_heap = .;
 	
Index: uspace/libc/arch/sparc64/include/config.h
===================================================================
--- uspace/libc/arch/sparc64/include/config.h	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/libc/arch/sparc64/include/config.h	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -36,7 +36,7 @@
 #define LIBC_sparc64_CONFIG_H_
 
-#define PAGE_WIDTH	13
-#define PAGE_SIZE	(1<<PAGE_WIDTH)
-#define PAGE_COLOR_BITS	1		/**< Bit 13 is the page color. */
+#define PAGE_WIDTH	14
+#define PAGE_SIZE	(1 << PAGE_WIDTH)
+#define PAGE_COLOR_BITS	0		/**< Only one page color. */
 
 #endif
Index: uspace/libc/arch/sparc64/include/stack.h
===================================================================
--- uspace/libc/arch/sparc64/include/stack.h	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/libc/arch/sparc64/include/stack.h	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -44,5 +44,5 @@
  * 16-extended-word save area for %i[0-7] and %l[0-7] registers.
  */
-#define STACK_WINDOW_SAVE_AREA_SIZE	(16*STACK_ITEM_SIZE)
+#define STACK_WINDOW_SAVE_AREA_SIZE	(16 * STACK_ITEM_SIZE)
 
 /**
Index: uspace/libc/generic/as.c
===================================================================
--- uspace/libc/generic/as.c	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/libc/generic/as.c	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -56,5 +56,5 @@
 {
 	return (void *) __SYSCALL3(SYS_AS_AREA_CREATE, (sysarg_t ) address,
-		(sysarg_t) size, (sysarg_t) flags);
+	    (sysarg_t) size, (sysarg_t) flags);
 }
 
@@ -70,6 +70,6 @@
 int as_area_resize(void *address, size_t size, int flags)
 {
-	return __SYSCALL3(SYS_AS_AREA_RESIZE, (sysarg_t ) address, (sysarg_t)
-		size, (sysarg_t) flags);
+	return __SYSCALL3(SYS_AS_AREA_RESIZE, (sysarg_t ) address,
+	    (sysarg_t) size, (sysarg_t) flags);
 }
 
@@ -144,5 +144,4 @@
  *
  * @param sz Requested size of the allocation.
- * @param color Requested virtual color of the allocation.
  *
  * @return Pointer to the beginning 
@@ -151,5 +150,5 @@
  *       the pointer to last area
  */
-void *as_get_mappable_page(size_t sz, int color)
+void *as_get_mappable_page(size_t sz)
 {
 	void *res;
@@ -167,19 +166,14 @@
 	
 	/*
-	 * Make sure we allocate from naturally aligned address and a page of
-	 * appropriate color.
+	 * Make sure we allocate from naturally aligned address.
 	 */
 	i = 0;
-	do {
-		if (!last_allocated) {
-			last_allocated = (void *) ALIGN_UP((void *) &_heap +
-				maxheapsize, asz);
-		} else {
-			last_allocated = (void *) ALIGN_UP(((uintptr_t)
-				last_allocated) + (int) (i > 0), asz);
-		}
-	} while ((asz < (1 << (PAGE_COLOR_BITS + PAGE_WIDTH))) &&
-		(PAGE_COLOR((uintptr_t) last_allocated) != color) &&
-		(++i < (1 << PAGE_COLOR_BITS)));
+	if (!last_allocated) {
+		last_allocated = (void *) ALIGN_UP((void *) &_heap +
+		    maxheapsize, asz);
+	} else {
+		last_allocated = (void *) ALIGN_UP(((uintptr_t)
+		    last_allocated) + (int) (i > 0), asz);
+	}
 
 	res = last_allocated;
Index: uspace/libc/generic/mman.c
===================================================================
--- uspace/libc/generic/mman.c	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/libc/generic/mman.c	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -37,8 +37,9 @@
 #include <unistd.h>
 
-void *mmap(void  *start, size_t length, int prot, int flags, int fd, off_t offset)
+void *mmap(void  *start, size_t length, int prot, int flags, int fd,
+    off_t offset)
 {
 	if (!start)
-		start = as_get_mappable_page(length, 0);
+		start = as_get_mappable_page(length);
 	
 //	if (! ((flags & MAP_SHARED) ^ (flags & MAP_PRIVATE)))
Index: uspace/libc/generic/time.c
===================================================================
--- uspace/libc/generic/time.c	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/libc/generic/time.c	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -73,10 +73,9 @@
 
 	if (!ktime) {
-		mapping = as_get_mappable_page(PAGE_SIZE, (int)
-			sysinfo_value("clock.fcolor"));
+		mapping = as_get_mappable_page(PAGE_SIZE);
 		/* Get the mapping of kernel clock */
-		res = ipc_call_sync_3(PHONE_NS, IPC_M_AS_AREA_RECV, (sysarg_t)
-			mapping, PAGE_SIZE, SERVICE_MEM_REALTIME, NULL, &rights,
-			NULL);
+		res = ipc_call_sync_3(PHONE_NS, IPC_M_AS_AREA_RECV,
+		    (sysarg_t) mapping, PAGE_SIZE, SERVICE_MEM_REALTIME, NULL,
+		    &rights, NULL);
 		if (res) {
 			printf("Failed to initialize timeofday memarea\n");
Index: uspace/libc/include/as.h
===================================================================
--- uspace/libc/include/as.h	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/libc/include/as.h	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -41,11 +41,9 @@
 #include <libarch/config.h>
 
-#define PAGE_COLOR(va)	(((va) >> PAGE_WIDTH) & ((1 << PAGE_COLOR_BITS) - 1))
-
 extern void *as_area_create(void *address, size_t size, int flags);
 extern int as_area_resize(void *address, size_t size, int flags);
 extern int as_area_destroy(void *address);
 extern void *set_maxheapsize(size_t mhs);
-extern void * as_get_mappable_page(size_t sz, int color);
+extern void * as_get_mappable_page(size_t sz);
 
 #endif
Index: uspace/ns/ns.c
===================================================================
--- uspace/ns/ns.c	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/ns/ns.c	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -84,8 +84,7 @@
 static void *klogaddr = NULL;
 
-static void get_as_area(ipc_callid_t callid, ipc_call_t *call, char *name, char *colstr, void **addr)
+static void get_as_area(ipc_callid_t callid, ipc_call_t *call, char *name, void **addr)
 {
 	void *ph_addr;
-	int ph_color;
 
 	if (!*addr) {
@@ -95,6 +94,5 @@
 			return;
 		}
-		ph_color = (int) sysinfo_value(colstr);
-		*addr = as_get_mappable_page(PAGE_SIZE, ph_color);
+		*addr = as_get_mappable_page(PAGE_SIZE);
 		physmem_map(ph_addr, *addr, 1, AS_AREA_READ | AS_AREA_CACHEABLE);
 	}
@@ -120,9 +118,9 @@
 			case SERVICE_MEM_REALTIME:
 				get_as_area(callid, &call, "clock.faddr",
-					"clock.fcolor", &clockaddr);
+				    &clockaddr);
 				break;
 			case SERVICE_MEM_KLOG:
 				get_as_area(callid, &call, "klog.faddr",
-					"klog.fcolor", &klogaddr);
+				    &klogaddr);
 				break;
 			default:
Index: uspace/rd/rd.c
===================================================================
--- uspace/rd/rd.c	(revision d630139332f649889fde186aaa1729516725c881)
+++ uspace/rd/rd.c	(revision 879585a3fd47daccb6ab751ad240297f65de5bae)
@@ -74,10 +74,9 @@
 	size_t rd_size = sysinfo_value("rd.size");
 	void * rd_ph_addr = (void *) sysinfo_value("rd.address.physical");
-	int rd_color = (int) sysinfo_value("rd.address.color");
 	
 	if (rd_size == 0)
 		return false;
 	
-	void * rd_addr = as_get_mappable_page(rd_size, rd_color);
+	void * rd_addr = as_get_mappable_page(rd_size);
 	
 	physmem_map(rd_ph_addr, rd_addr, ALIGN_UP(rd_size, PAGE_SIZE) >> PAGE_WIDTH, AS_AREA_READ | AS_AREA_WRITE);
