microblaze: Fix mapin_ram function
authorMichal Simek <monstr@monstr.eu>
Thu, 22 Dec 2011 11:33:24 +0000 (12:33 +0100)
committerMichal Simek <monstr@monstr.eu>
Fri, 23 Mar 2012 08:28:14 +0000 (09:28 +0100)
Fix how many pages are allocated in mapin_ram. It is lowmem_size
not setup CONFIG_LOWMEM_SIZE because it is the same for all systems.
Which means that wrong pages are allocated if memory size is smaller
than CONFIG_LOWMEM_SIZE. It has dramatic impact on bootup time.
On sp605 MMU full hw design is 7s.

Signed-off-by: Michal Simek <monstr@monstr.eu>
arch/microblaze/include/asm/page.h
arch/microblaze/mm/pgtable.c

index 665f293..352cc23 100644 (file)
@@ -136,6 +136,7 @@ extern unsigned long max_pfn;
 
 extern unsigned long memory_start;
 extern unsigned long memory_size;
+extern unsigned long lowmem_size;
 
 extern int page_is_ram(unsigned long pfn);
 
index 84905da..d1c06d0 100644 (file)
@@ -167,7 +167,7 @@ void __init mapin_ram(void)
 
        v = CONFIG_KERNEL_START;
        p = memory_start;
-       for (s = 0; s < CONFIG_LOWMEM_SIZE; s += PAGE_SIZE) {
+       for (s = 0; s < lowmem_size; s += PAGE_SIZE) {
                f = _PAGE_PRESENT | _PAGE_ACCESSED |
                                _PAGE_SHARED | _PAGE_HWEXEC;
                if ((char *) v < _stext || (char *) v >= _etext)