﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	field_blocks	field_dependson	field_seealso
241	ia32 won't boot if there is 2 GB physical memory or more	Jiri Svoboda		"On ia32 with 2 GB of physical memory or more the kernel will appear hung early in the boot process (before printing anything). This is  a problem with kernel address space management.

One problem is in init_e820_memory():
{{{
#ifdef __32_BITS__
                /* Ignore physical memory above 4 GB */
                if ((base >> 32) != 0)
                        continue;

                /* Clip regions above 4 GB */
                if (((base + size) >> 32) != 0)
                        size = 0xffffffff - base;
#endif
}}}

We should clip regions above 2 GB, not 4 GB.

Another problem is with hw_map(). hw_map() relies on available unsused kernel address space to perform mapping. But with 2 GB or more of physical memory there is no such address space. hw_map() cannot detect this (or when it just runs out).

hw_map() needs to detect when it runs out of address space and fall back to wasting physical memory.
"	defect	closed	critical	0.4.3	helenos/kernel/generic	mainline	fixed		martin@…			
