On Tue, Dec 07, 2004 at 10:07:26AM +0900, Hdei Nunoe wrote:
> Has anyone succeeded the HIGHMEM with discontiguous physical memory?
> I am using kernel 2.4.18 on TX4937 with two chunks of 256Mbyte memory.
> There is 256Mbyte gap in between the physical memory blocks - lower
> memory is 0x00000000 to 0x10000000, upper memory is 0x20000000 to
> 0x30000000. System hungs when it create INIT process.
In 2.4 the support for CONFIG_DISCONTIG and CONFIG_NUMA are a bit tangled
with each other because IP27 is the only platform to uses these features
and it needs both. Other than that you can also just setup your system
as 0x0 - 0x10000000 being RAM, 0x10000000 - 0x20000000 being reserved
memory and 0x20000000 - 0x30000000 being highmem. Which works but is a
Issue #2 is that we don't support the combination of CONFIG_DISCONTIG and
CONFIG_HIGHMEM. And highmem is a lobotomized solution for lobotomized
silicon anyway. You have a 64-bit processor - use it's capabilities :-)
Issue #3 - As I recall the TX4937's H3 core is suffering from cache
aliases. Handling those efficiently for highmem is not easily possible
and so we don't even try. More recent kernels will refuse to enable
highmem on such cache configurations but something like 2.4.18 which by
now is an almost 3 year old antique doesn't know about that and will
I recommend you should go for a 64-bit kernel instead. And 64-bit support
is certainly better in 2.6 than in 2.4. Especially the area of 32-bit
binary compatibility has been improved significantly.