Loading arch/csky/kernel/setup.c +0 −3 Original line number Diff line number Diff line Loading @@ -47,9 +47,6 @@ static void __init csky_memblock_init(void) signed long size; memblock_reserve(__pa(_stext), _end - _stext); #ifdef CONFIG_BLK_DEV_INITRD memblock_reserve(__pa(initrd_start), initrd_end - initrd_start); #endif early_init_fdt_reserve_self(); early_init_fdt_scan_reserved_mem(); Loading arch/csky/mm/init.c +44 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <linux/swap.h> #include <linux/proc_fs.h> #include <linux/pfn.h> #include <linux/initrd.h> #include <asm/setup.h> #include <asm/cachectl.h> Loading @@ -36,6 +37,45 @@ unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)] __page_aligned_bss; EXPORT_SYMBOL(empty_zero_page); #ifdef CONFIG_BLK_DEV_INITRD static void __init setup_initrd(void) { unsigned long size; if (initrd_start >= initrd_end) { pr_err("initrd not found or empty"); goto disable; } if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) { pr_err("initrd extends beyond end of memory"); goto disable; } size = initrd_end - initrd_start; if (memblock_is_region_reserved(__pa(initrd_start), size)) { pr_err("INITRD: 0x%08lx+0x%08lx overlaps in-use memory region", __pa(initrd_start), size); goto disable; } memblock_reserve(__pa(initrd_start), size); pr_info("Initial ramdisk at: 0x%p (%lu bytes)\n", (void *)(initrd_start), size); initrd_below_start_ok = 1; return; disable: initrd_start = initrd_end = 0; pr_err(" - disabling initrd\n"); } #endif void __init mem_init(void) { #ifdef CONFIG_HIGHMEM Loading @@ -47,6 +87,10 @@ void __init mem_init(void) #endif high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT); #ifdef CONFIG_BLK_DEV_INITRD setup_initrd(); #endif memblock_free_all(); #ifdef CONFIG_HIGHMEM Loading Loading
arch/csky/kernel/setup.c +0 −3 Original line number Diff line number Diff line Loading @@ -47,9 +47,6 @@ static void __init csky_memblock_init(void) signed long size; memblock_reserve(__pa(_stext), _end - _stext); #ifdef CONFIG_BLK_DEV_INITRD memblock_reserve(__pa(initrd_start), initrd_end - initrd_start); #endif early_init_fdt_reserve_self(); early_init_fdt_scan_reserved_mem(); Loading
arch/csky/mm/init.c +44 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <linux/swap.h> #include <linux/proc_fs.h> #include <linux/pfn.h> #include <linux/initrd.h> #include <asm/setup.h> #include <asm/cachectl.h> Loading @@ -36,6 +37,45 @@ unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)] __page_aligned_bss; EXPORT_SYMBOL(empty_zero_page); #ifdef CONFIG_BLK_DEV_INITRD static void __init setup_initrd(void) { unsigned long size; if (initrd_start >= initrd_end) { pr_err("initrd not found or empty"); goto disable; } if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) { pr_err("initrd extends beyond end of memory"); goto disable; } size = initrd_end - initrd_start; if (memblock_is_region_reserved(__pa(initrd_start), size)) { pr_err("INITRD: 0x%08lx+0x%08lx overlaps in-use memory region", __pa(initrd_start), size); goto disable; } memblock_reserve(__pa(initrd_start), size); pr_info("Initial ramdisk at: 0x%p (%lu bytes)\n", (void *)(initrd_start), size); initrd_below_start_ok = 1; return; disable: initrd_start = initrd_end = 0; pr_err(" - disabling initrd\n"); } #endif void __init mem_init(void) { #ifdef CONFIG_HIGHMEM Loading @@ -47,6 +87,10 @@ void __init mem_init(void) #endif high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT); #ifdef CONFIG_BLK_DEV_INITRD setup_initrd(); #endif memblock_free_all(); #ifdef CONFIG_HIGHMEM Loading