Browse Source

nios2: use generic early_init_dt_add_memory_arch

All we have to do is to enable memblock, the generic FDT code will take
care of the rest.

Link: http://lkml.kernel.org/r/1533326330-31677-4-git-send-email-rppt@linux.vnet.ibm.com
Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>
Acked-by: Ley Foon Tan <ley.foon.tan@intel.com>
Cc: Guan Xuetao <gxt@pku.edu.cn>
Cc: Richard Kuo <rkuo@codeaurora.org>
Cc: Richard Weinberger <richard@nod.at>
Cc: Rob Herring <robh@kernel.org>
Cc: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Mike Rapoport 6 years ago
parent
commit
a811c05c16
3 changed files with 3 additions and 10 deletions
  1. 1 0
      arch/nios2/Kconfig
  2. 0 10
      arch/nios2/kernel/prom.c
  3. 2 0
      arch/nios2/kernel/setup.c

+ 1 - 0
arch/nios2/Kconfig

@@ -23,6 +23,7 @@ config NIOS2
 	select SPARSE_IRQ
 	select SPARSE_IRQ
 	select USB_ARCH_HAS_HCD if USB_SUPPORT
 	select USB_ARCH_HAS_HCD if USB_SUPPORT
 	select CPU_NO_EFFICIENT_FFS
 	select CPU_NO_EFFICIENT_FFS
+	select HAVE_MEMBLOCK
 
 
 config GENERIC_CSUM
 config GENERIC_CSUM
 	def_bool y
 	def_bool y

+ 0 - 10
arch/nios2/kernel/prom.c

@@ -32,16 +32,6 @@
 
 
 #include <asm/sections.h>
 #include <asm/sections.h>
 
 
-void __init early_init_dt_add_memory_arch(u64 base, u64 size)
-{
-	u64 kernel_start = (u64)virt_to_phys(_text);
-
-	if (!memory_size &&
-	    (kernel_start >= base) && (kernel_start < (base + size)))
-		memory_size = size;
-
-}
-
 int __init early_init_dt_reserve_memory_arch(phys_addr_t base, phys_addr_t size,
 int __init early_init_dt_reserve_memory_arch(phys_addr_t base, phys_addr_t size,
 					     bool nomap)
 					     bool nomap)
 {
 {

+ 2 - 0
arch/nios2/kernel/setup.c

@@ -17,6 +17,7 @@
 #include <linux/sched/task.h>
 #include <linux/sched/task.h>
 #include <linux/console.h>
 #include <linux/console.h>
 #include <linux/bootmem.h>
 #include <linux/bootmem.h>
+#include <linux/memblock.h>
 #include <linux/initrd.h>
 #include <linux/initrd.h>
 #include <linux/of_fdt.h>
 #include <linux/of_fdt.h>
 #include <linux/screen_info.h>
 #include <linux/screen_info.h>
@@ -147,6 +148,7 @@ void __init setup_arch(char **cmdline_p)
 
 
 	console_verbose();
 	console_verbose();
 
 
+	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;