MIPS: alchemy: Share prom_init implementation
authorThomas Bogendoerfer <tsbogend@alpha.franken.de>
Mon, 5 Oct 2020 11:28:45 +0000 (13:28 +0200)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Tue, 6 Oct 2020 10:33:57 +0000 (12:33 +0200)
All boards have the same prom_init() function. Move it to common code and
delete the duplicates.

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
arch/mips/alchemy/board-gpr.c
arch/mips/alchemy/board-mtx1.c
arch/mips/alchemy/board-xxs1500.c
arch/mips/alchemy/common/prom.c
arch/mips/alchemy/devboards/platform.c

index 6c47318..f587c40 100644 (file)
@@ -31,23 +31,6 @@ const char *get_system_type(void)
        return "GPR";
 }
 
-void __init prom_init(void)
-{
-       unsigned char *memsize_str;
-       unsigned long memsize;
-
-       prom_argc = fw_arg0;
-       prom_argv = (char **)fw_arg1;
-       prom_envp = (char **)fw_arg2;
-
-       prom_init_cmdline();
-
-       memsize_str = prom_getenv("memsize");
-       if (!memsize_str || kstrtoul(memsize_str, 0, &memsize))
-               memsize = 0x04000000;
-       add_memory_region(0, memsize, BOOT_MEM_RAM);
-}
-
 void prom_putchar(char c)
 {
        alchemy_uart_putchar(AU1000_UART0_PHYS_ADDR, c);
index 2309353..68ea575 100644 (file)
@@ -30,23 +30,6 @@ const char *get_system_type(void)
        return "MTX-1";
 }
 
-void __init prom_init(void)
-{
-       unsigned char *memsize_str;
-       unsigned long memsize;
-
-       prom_argc = fw_arg0;
-       prom_argv = (char **)fw_arg1;
-       prom_envp = (char **)fw_arg2;
-
-       prom_init_cmdline();
-
-       memsize_str = prom_getenv("memsize");
-       if (!memsize_str || kstrtoul(memsize_str, 0, &memsize))
-               memsize = 0x04000000;
-       add_memory_region(0, memsize, BOOT_MEM_RAM);
-}
-
 void prom_putchar(char c)
 {
        alchemy_uart_putchar(AU1000_UART0_PHYS_ADDR, c);
index c67dfe1..b184baa 100644 (file)
@@ -25,24 +25,6 @@ const char *get_system_type(void)
        return "XXS1500";
 }
 
-void __init prom_init(void)
-{
-       unsigned char *memsize_str;
-       unsigned long memsize;
-
-       prom_argc = fw_arg0;
-       prom_argv = (char **)fw_arg1;
-       prom_envp = (char **)fw_arg2;
-
-       prom_init_cmdline();
-
-       memsize_str = prom_getenv("memsize");
-       if (!memsize_str || kstrtoul(memsize_str, 0, &memsize))
-               memsize = 0x04000000;
-
-       add_memory_region(0, memsize, BOOT_MEM_RAM);
-}
-
 void prom_putchar(char c)
 {
        alchemy_uart_putchar(AU1000_UART0_PHYS_ADDR, c);
index af312b5..cfa2030 100644 (file)
@@ -34,6 +34,8 @@
  */
 
 #include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/sizes.h>
 #include <linux/string.h>
 
 #include <asm/bootinfo.h>
@@ -76,6 +78,24 @@ char *prom_getenv(char *envname)
        return NULL;
 }
 
+void __init prom_init(void)
+{
+       unsigned char *memsize_str;
+       unsigned long memsize;
+
+       prom_argc = (int)fw_arg0;
+       prom_argv = (char **)fw_arg1;
+       prom_envp = (char **)fw_arg2;
+
+       prom_init_cmdline();
+
+       memsize_str = prom_getenv("memsize");
+       if (!memsize_str || kstrtoul(memsize_str, 0, &memsize))
+               memsize = SZ_64M; /* minimum memsize is 64MB RAM */
+
+       add_memory_region(0, memsize, BOOT_MEM_RAM);
+}
+
 static inline unsigned char str2hexnum(unsigned char c)
 {
        if (c >= '0' && c <= '9')
index 8d4b65c..754bdd2 100644 (file)
 
 #include <prom.h>
 
-void __init prom_init(void)
-{
-       unsigned char *memsize_str;
-       unsigned long memsize;
-
-       prom_argc = (int)fw_arg0;
-       prom_argv = (char **)fw_arg1;
-       prom_envp = (char **)fw_arg2;
-
-       prom_init_cmdline();
-       memsize_str = prom_getenv("memsize");
-       if (!memsize_str || kstrtoul(memsize_str, 0, &memsize))
-               memsize = 64 << 20; /* all devboards have at least 64MB RAM */
-
-       add_memory_region(0, memsize, BOOT_MEM_RAM);
-}
-
 void prom_putchar(char c)
 {
        if (alchemy_get_cputype() == ALCHEMY_CPU_AU1300)