aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2011-12-22 06:33:24 -0500
committerMichal Simek <monstr@monstr.eu>2012-03-23 04:28:14 -0400
commit7c0d26150781cbd8a522259c9dea9e7ef23df8e3 (patch)
treef0324f4c59a50c74340ab198eda0832085e9be81
parent2f2f371f8907d169650f594850ca6096e2f73b77 (diff)
microblaze: Fix mapin_ram function
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>
-rw-r--r--arch/microblaze/include/asm/page.h1
-rw-r--r--arch/microblaze/mm/pgtable.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/arch/microblaze/include/asm/page.h b/arch/microblaze/include/asm/page.h
index 665f29330ce..352cc2352bd 100644
--- a/arch/microblaze/include/asm/page.h
+++ b/arch/microblaze/include/asm/page.h
@@ -136,6 +136,7 @@ extern unsigned long max_pfn;
136 136
137extern unsigned long memory_start; 137extern unsigned long memory_start;
138extern unsigned long memory_size; 138extern unsigned long memory_size;
139extern unsigned long lowmem_size;
139 140
140extern int page_is_ram(unsigned long pfn); 141extern int page_is_ram(unsigned long pfn);
141 142
diff --git a/arch/microblaze/mm/pgtable.c b/arch/microblaze/mm/pgtable.c
index 84905da83cb..d1c06d07fed 100644
--- a/arch/microblaze/mm/pgtable.c
+++ b/arch/microblaze/mm/pgtable.c
@@ -167,7 +167,7 @@ void __init mapin_ram(void)
167 167
168 v = CONFIG_KERNEL_START; 168 v = CONFIG_KERNEL_START;
169 p = memory_start; 169 p = memory_start;
170 for (s = 0; s < CONFIG_LOWMEM_SIZE; s += PAGE_SIZE) { 170 for (s = 0; s < lowmem_size; s += PAGE_SIZE) {
171 f = _PAGE_PRESENT | _PAGE_ACCESSED | 171 f = _PAGE_PRESENT | _PAGE_ACCESSED |
172 _PAGE_SHARED | _PAGE_HWEXEC; 172 _PAGE_SHARED | _PAGE_HWEXEC;
173 if ((char *) v < _stext || (char *) v >= _etext) 173 if ((char *) v < _stext || (char *) v >= _etext)