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>
This commit is contained in:
Michal Simek 2011-12-22 12:33:24 +01:00
Родитель 2f2f371f89
Коммит 7c0d261507
2 изменённых файлов: 2 добавлений и 1 удалений

Просмотреть файл

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

Просмотреть файл

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