Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3b2a7e23 authored by David S. Miller's avatar David S. Miller
Browse files

[SPARC64]: Initialize LMB tables.



Call lmb_add() on available regions, and call lmb_reserve()
on the main kernel image and the ramdisk (if any).

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4e82c9a6
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include <linux/cache.h>
#include <linux/sort.h>
#include <linux/percpu.h>
#include <linux/lmb.h>

#include <asm/head.h>
#include <asm/system.h>
@@ -910,6 +911,8 @@ static void __init find_ramdisk(unsigned long phys_base)

		initrd_start = ramdisk_image;
		initrd_end = ramdisk_image + sparc_ramdisk_size;

		lmb_reserve(initrd_start, initrd_end);
	}
#endif
}
@@ -1337,15 +1340,24 @@ void __init paging_init(void)
		sun4v_ktsb_init();
	}

	lmb_init();

	/* Find available physical memory... */
	read_obp_memory("available", &pavail[0], &pavail_ents);

	phys_base = 0xffffffffffffffffUL;
	for (i = 0; i < pavail_ents; i++)
	for (i = 0; i < pavail_ents; i++) {
		phys_base = min(phys_base, pavail[i].phys_addr);
		lmb_add(pavail[i].phys_addr, pavail[i].reg_size);
	}

	lmb_reserve(kern_base, kern_size);

	find_ramdisk(phys_base);

	lmb_analyze();
	lmb_dump_all();

	set_bit(0, mmu_context_bmap);

	shift = kern_base + PAGE_OFFSET - ((unsigned long)KERNBASE);