|
@@ -144,10 +144,11 @@ asmlinkage void __init nios2_boot_init(unsigned r4, unsigned r5, unsigned r6,
|
|
|
|
|
|
void __init setup_arch(char **cmdline_p)
|
|
void __init setup_arch(char **cmdline_p)
|
|
{
|
|
{
|
|
- int bootmap_size;
|
|
|
|
|
|
+ int dram_start;
|
|
|
|
|
|
console_verbose();
|
|
console_verbose();
|
|
|
|
|
|
|
|
+ dram_start = memblock_start_of_DRAM();
|
|
memory_size = memblock_phys_mem_size();
|
|
memory_size = memblock_phys_mem_size();
|
|
memory_start = PAGE_ALIGN((unsigned long)__pa(_end));
|
|
memory_start = PAGE_ALIGN((unsigned long)__pa(_end));
|
|
memory_end = (unsigned long) CONFIG_NIOS2_MEM_BASE + memory_size;
|
|
memory_end = (unsigned long) CONFIG_NIOS2_MEM_BASE + memory_size;
|
|
@@ -165,39 +166,11 @@ void __init setup_arch(char **cmdline_p)
|
|
max_low_pfn = PFN_DOWN(memory_end);
|
|
max_low_pfn = PFN_DOWN(memory_end);
|
|
max_mapnr = max_low_pfn;
|
|
max_mapnr = max_low_pfn;
|
|
|
|
|
|
- /*
|
|
|
|
- * give all the memory to the bootmap allocator, tell it to put the
|
|
|
|
- * boot mem_map at the start of memory
|
|
|
|
- */
|
|
|
|
- pr_debug("init_bootmem_node(?,%#lx, %#x, %#lx)\n",
|
|
|
|
- min_low_pfn, PFN_DOWN(PHYS_OFFSET), max_low_pfn);
|
|
|
|
- bootmap_size = init_bootmem_node(NODE_DATA(0),
|
|
|
|
- min_low_pfn, PFN_DOWN(PHYS_OFFSET),
|
|
|
|
- max_low_pfn);
|
|
|
|
-
|
|
|
|
- /*
|
|
|
|
- * free the usable memory, we have to make sure we do not free
|
|
|
|
- * the bootmem bitmap so we then reserve it after freeing it :-)
|
|
|
|
- */
|
|
|
|
- pr_debug("free_bootmem(%#lx, %#lx)\n",
|
|
|
|
- memory_start, memory_end - memory_start);
|
|
|
|
- free_bootmem(memory_start, memory_end - memory_start);
|
|
|
|
-
|
|
|
|
- /*
|
|
|
|
- * Reserve the bootmem bitmap itself as well. We do this in two
|
|
|
|
- * steps (first step was init_bootmem()) because this catches
|
|
|
|
- * the (very unlikely) case of us accidentally initializing the
|
|
|
|
- * bootmem allocator with an invalid RAM area.
|
|
|
|
- *
|
|
|
|
- * Arguments are start, size
|
|
|
|
- */
|
|
|
|
- pr_debug("reserve_bootmem(%#lx, %#x)\n", memory_start, bootmap_size);
|
|
|
|
- reserve_bootmem(memory_start, bootmap_size, BOOTMEM_DEFAULT);
|
|
|
|
-
|
|
|
|
|
|
+ memblock_reserve(dram_start, memory_start - dram_start);
|
|
#ifdef CONFIG_BLK_DEV_INITRD
|
|
#ifdef CONFIG_BLK_DEV_INITRD
|
|
if (initrd_start) {
|
|
if (initrd_start) {
|
|
- reserve_bootmem(virt_to_phys((void *)initrd_start),
|
|
|
|
- initrd_end - initrd_start, BOOTMEM_DEFAULT);
|
|
|
|
|
|
+ memblock_reserve(virt_to_phys((void *)initrd_start),
|
|
|
|
+ initrd_end - initrd_start);
|
|
}
|
|
}
|
|
#endif /* CONFIG_BLK_DEV_INITRD */
|
|
#endif /* CONFIG_BLK_DEV_INITRD */
|
|
|
|
|