|
|
|
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]
![]() |
![]() |