Jelajahi Sumber

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>
Michal Simek 13 tahun lalu
induk
melakukan
7c0d261507
2 mengubah file dengan 2 tambahan dan 1 penghapusan
  1. 1 0
      arch/microblaze/include/asm/page.h
  2. 1 1
      arch/microblaze/mm/pgtable.c

+ 1 - 0
arch/microblaze/include/asm/page.h

@@ -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);
 

+ 1 - 1
arch/microblaze/mm/pgtable.c

@@ -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)