Index: kernel/arch/ia32/src/ia32.c
===================================================================
--- kernel/arch/ia32/src/ia32.c	(revision adec5b450420e754be2635ab4e7587f68c0a3287)
+++ kernel/arch/ia32/src/ia32.c	(revision f7e69f551592fae9721419beef3fd98fa6fefbdb)
@@ -168,22 +168,8 @@
 		}
 	}
-	
-	/*
-	 * This is the necessary evil until the userspace driver is entirely
-	 * self-sufficient.
-	 */
-	sysinfo_set_item_val("i8042", NULL, true);
-	sysinfo_set_item_val("i8042.inr_a", NULL, IRQ_KBD);
-	sysinfo_set_item_val("i8042.inr_b", NULL, IRQ_MOUSE);
-	sysinfo_set_item_val("i8042.address.physical", NULL,
-	    (uintptr_t) I8042_BASE);
-	sysinfo_set_item_val("i8042.address.kernel", NULL,
-	    (uintptr_t) I8042_BASE);
 #endif
 	
 	if (irqs_info != NULL)
 		sysinfo_set_item_val(irqs_info, NULL, true);
-	
-	sysinfo_set_item_val("netif.ne2000.inr", NULL, IRQ_NE2000);
 }
 
Index: kernel/arch/ia32/src/mm/frame.c
===================================================================
--- kernel/arch/ia32/src/mm/frame.c	(revision adec5b450420e754be2635ab4e7587f68c0a3287)
+++ kernel/arch/ia32/src/mm/frame.c	(revision f7e69f551592fae9721419beef3fd98fa6fefbdb)
@@ -46,4 +46,6 @@
 #include <print.h>
 
+#define PHYSMEM_LIMIT32  UINT64_C(0x100000000)
+
 size_t hardcoded_unmapped_ktext_size = 0;
 size_t hardcoded_unmapped_kdata_size = 0;
@@ -56,15 +58,16 @@
 		uint64_t base64 = e820table[i].base_address;
 		uint64_t size64 = e820table[i].size;
-
+		
 #ifdef KARCH_ia32
 		/*
 		 * Restrict the e820 table entries to 32-bits.
 		 */
-		if (base64 >= 0x100000000ULL)
+		if (base64 >= PHYSMEM_LIMIT32)
 			continue;
-		if (base64 + size64 > 0x100000000ULL)
-			size64 -= base64 + size64 - 0x100000000ULL;
+		
+		if (base64 + size64 > PHYSMEM_LIMIT32)
+			size64 = PHYSMEM_LIMIT32 - base64;
 #endif
-
+		
 		uintptr_t base = (uintptr_t) base64;
 		size_t size = (size_t) size64;
