Re: SPARSEMEM support for Atmel AT91SAM9G45 and M10

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


>     I'm resurrecting an old thread
> (http://lists.arm.linux.org.uk/lurker/message/20090914.072902.97115112.en.html)
> about using the two memory banks available
> on Atmel AT91SAM9G45/M10. I managed to make it work on 2.6.30 by
> following Russell King advice on how to configure SPARSEMEM.
>     I submitted a working patch for 2.6.34 here:
> http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=6143/1
> 
> The problem is that I'm unsure how to get rid of the #define that
> forces high_memory value in mm/init.c, should I add a fixup function
> to board-sam9m10g45ek.c to provide meminfo information ?

I've already tested the patch on 2.6.33 and it is working properly. Concerning high_memory value problem I think the cause is how find_node_limits() in arch/arm/m/init.c is implemented. We have two memory banks one starting at 0x70000000 and another at 0x200000000. The virtual mapping looks like this:

0x70000000 -> 0xc0000000
0x20000000 -> 0xc8000000

However find_node_limits() routine is working with physical addresses so the upper limit is 0x70000000 and not 0x20000000 as it should be. As a result max_low is pointing to 0x70000000 and that's why only first bank will be mapped correctly.

How can find_node_limits() be changed to work with virtual addresses?

Regards,
Yegor


_______________________________________________
linux-arm mailing list
linux-arm@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-arm


[Linux ARM]     [Linux ARM MSM]     [Linux ARM Kernel]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

Add to Google Follow linuxarm on Twitter