From: David Daney <david.daney@xxxxxxxxxx> No change to memory initialization, but this gets us ready for the next patches adding hotplug CPU and NUMA support for Octeon. Signed-off-by: David Daney <david.daney@xxxxxxxxxx> Signed-off-by: Carlos Munoz <cmunoz@xxxxxxxxxxxxxxxxxx> --- arch/mips/include/asm/bootinfo.h | 1 + arch/mips/kernel/setup.c | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/arch/mips/include/asm/bootinfo.h b/arch/mips/include/asm/bootinfo.h index e26a093..71dd16e 100644 --- a/arch/mips/include/asm/bootinfo.h +++ b/arch/mips/include/asm/bootinfo.h @@ -90,6 +90,7 @@ extern unsigned long mips_machtype; #define BOOT_MEM_ROM_DATA 2 #define BOOT_MEM_RESERVED 3 #define BOOT_MEM_INIT_RAM 4 +#define BOOT_MEM_KERNEL 5 /* * A memory map that's built upon what was determined diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c index fe39397..3dd765a 100644 --- a/arch/mips/kernel/setup.c +++ b/arch/mips/kernel/setup.c @@ -200,6 +200,9 @@ static void __init print_memory_map(void) case BOOT_MEM_INIT_RAM: printk(KERN_CONT "(usable after init)\n"); break; + case BOOT_MEM_KERNEL: + printk(KERN_CONT "(kernel data and code)\n"); + break; case BOOT_MEM_ROM_DATA: printk(KERN_CONT "(ROM data)\n"); break; @@ -824,6 +827,7 @@ static void __init arch_mem_init(char **cmdline_p) { struct memblock_region *reg; extern void plat_mem_setup(void); + phys_addr_t kernel_begin, init_begin, init_end, kernel_end; /* call board setup routine */ plat_mem_setup(); @@ -834,12 +838,13 @@ static void __init arch_mem_init(char **cmdline_p) * into another memory section you don't want that to be * freed when the initdata is freed. */ - arch_mem_addpart(PFN_DOWN(__pa_symbol(&_text)) << PAGE_SHIFT, - PFN_UP(__pa_symbol(&_edata)) << PAGE_SHIFT, - BOOT_MEM_RAM); - arch_mem_addpart(PFN_UP(__pa_symbol(&__init_begin)) << PAGE_SHIFT, - PFN_DOWN(__pa_symbol(&__init_end)) << PAGE_SHIFT, - BOOT_MEM_INIT_RAM); + kernel_begin = PFN_DOWN(__pa_symbol(&_text)) << PAGE_SHIFT; + kernel_end = PFN_UP(__pa_symbol(&_end)) << PAGE_SHIFT; + init_begin = PFN_UP(__pa_symbol(&__init_begin)) << PAGE_SHIFT; + init_end = PFN_DOWN(__pa_symbol(&__init_end)) << PAGE_SHIFT; + arch_mem_addpart(kernel_begin, init_begin, BOOT_MEM_KERNEL); + arch_mem_addpart(init_end, kernel_end, BOOT_MEM_KERNEL); + arch_mem_addpart(init_begin, init_end, BOOT_MEM_INIT_RAM); pr_info("Determined physical RAM map:\n"); print_memory_map(); @@ -949,6 +954,7 @@ static void __init resource_init(void) case BOOT_MEM_RAM: case BOOT_MEM_INIT_RAM: case BOOT_MEM_ROM_DATA: + case BOOT_MEM_KERNEL: res->name = "System RAM"; res->flags |= IORESOURCE_SYSRAM; break; -- 2.1.4