share memory size detection code
authorGabor Juhos <juhosg@openwrt.org>
Mon, 31 Aug 2009 18:53:26 +0000 (18:53 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Mon, 31 Aug 2009 18:53:26 +0000 (18:53 +0000)
SVN-Revision: 17454

target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt288x/ralink_soc.h
target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt305x/ralink_soc.h
target/linux/ramips/files/arch/mips/ralink/common/setup.c
target/linux/ramips/files/arch/mips/ralink/rt288x/setup.c
target/linux/ramips/files/arch/mips/ralink/rt305x/setup.c

index c379f3919576bc5d2e59cf0db9f834b00b915df4..60ca647d8ca06a1ef09549fa2acd000e8df20602 100644 (file)
 #ifndef __RT288X_RALINK_SOC_H
 #define __RT288X_RALINK_SOC_H
 
+#define RALINK_SOC_SDRAM_BASE          0x08000000
+#define RALINK_SOC_MEM_SIZE_MIN                (2 * 1024 * 1024)
+#define RALINK_SOC_MEM_SIZE_MAX                (128 * 1024 * 1024)
+
 #define RALINK_SOC_GPIO_BASE   0x300600
 
 #define RALINK_SOC_GPIO0_COUNT 24
index 144cc4ea46d3e904e18e9e6b35db40b5bdfdf047..fd0e8b3048164c753d904e1c095c051d4d672171 100644 (file)
 #ifndef __RT288X_RALINK_SOC_H
 #define __RT288X_RALINK_SOC_H
 
+#define RALINK_SOC_SDRAM_BASE          0
+#define RALINK_SOC_MEM_SIZE_MIN                (2 * 1024 * 1024)
+#define RALINK_SOC_MEM_SIZE_MAX                (64 * 1024 * 1024)
+
 #define RALINK_SOC_GPIO_BASE   0x10000600
 
 #define RALINK_SOC_GPIO0_COUNT 24
index 6440ccb01a454a2a5cc4fc703a4017adb73e483a..86e951ca20bc26355878f0c3e8a3353761e6004f 100644 (file)
 #include <linux/init.h>
 #include <linux/io.h>
 
+#include <asm/bootinfo.h>
 #include <asm/addrspace.h>
+
 #include <asm/mach-ralink/common.h>
+#include <ralink_soc.h>
+
+static void __init detect_mem_size(void)
+{
+       unsigned long size;
+
+       for (size = RALINK_SOC_MEM_SIZE_MIN; size < RALINK_SOC_MEM_SIZE_MAX;
+            size <<= 1 ) {
+               if (!memcmp(detect_mem_size,
+                           detect_mem_size + size, 1024))
+                       break;
+       }
+
+       add_memory_region(RALINK_SOC_SDRAM_BASE, size, BOOT_MEM_RAM);
+}
 
 void __init plat_mem_setup(void)
 {
        set_io_port_base(KSEG1);
 
+       detect_mem_size();
        ramips_soc_setup();
 }
index fe94126e5d1d189181ce03f5ddb3b7ca07594570..920f44ae416568c40c0dda80d17a1b3e78a74f84 100644 (file)
@@ -16,7 +16,6 @@
 #include <linux/io.h>
 #include <linux/serial_8250.h>
 
-#include <asm/bootinfo.h>
 #include <asm/mips_machine.h>
 #include <asm/reboot.h>
 #include <asm/time.h>
@@ -25,9 +24,6 @@
 #include <asm/mach-ralink/rt288x.h>
 #include <asm/mach-ralink/rt288x_regs.h>
 
-#define RT288X_MEM_SIZE_MIN (2 * 1024 * 1024)
-#define RT288X_MEM_SIZE_MAX (128 * 1024 * 1024)
-
 unsigned long rt288x_mach_type;
 
 static void rt288x_restart(char *command)
@@ -44,20 +40,6 @@ static void rt288x_halt(void)
                cpu_wait();
 }
 
-static void __init rt288x_detect_mem_size(void)
-{
-       unsigned long size;
-
-       for (size = RT288X_MEM_SIZE_MIN; size < RT288X_MEM_SIZE_MAX;
-            size <<= 1 ) {
-               if (!memcmp(rt288x_detect_mem_size,
-                           rt288x_detect_mem_size + size, 1024))
-                       break;
-       }
-
-       add_memory_region(RT2880_SDRAM_BASE, size, BOOT_MEM_RAM);
-}
-
 static void __init rt288x_early_serial_setup(void)
 {
        struct uart_port p;
@@ -106,7 +88,6 @@ void __init ramips_soc_setup(void)
        rt288x_sysc_base = ioremap_nocache(RT2880_SYSC_BASE, RT2880_SYSC_SIZE);
        rt288x_memc_base = ioremap_nocache(RT2880_MEMC_BASE, RT2880_MEMC_SIZE);
 
-       rt288x_detect_mem_size();
        rt288x_detect_sys_type();
        rt288x_detect_sys_freq();
 
index 70eaae4254e5c0e28bae01c854f62e70546c977e..3aa6c9b9fa78da988d3d92c9ad4cda9b10d4812c 100644 (file)
@@ -15,7 +15,6 @@
 #include <linux/io.h>
 #include <linux/serial_8250.h>
 
-#include <asm/bootinfo.h>
 #include <asm/mips_machine.h>
 #include <asm/reboot.h>
 #include <asm/time.h>
@@ -43,20 +42,6 @@ static void rt305x_halt(void)
                        cpu_wait();
 }
 
-static void __init rt305x_detect_mem_size(void)
-{
-       unsigned long size;
-
-       for (size = RT305X_MEM_SIZE_MIN; size < RT305X_MEM_SIZE_MAX;
-            size <<= 1 ) {
-               if (!memcmp(rt305x_detect_mem_size,
-                           rt305x_detect_mem_size + size, 1024))
-                       break;
-       }
-
-       add_memory_region(RT305X_SDRAM_BASE, size, BOOT_MEM_RAM);
-}
-
 static void __init rt305x_early_serial_setup(void)
 {
        struct uart_port p;
@@ -105,7 +90,6 @@ void __init ramips_soc_setup(void)
        rt305x_sysc_base = ioremap_nocache(RT305X_SYSC_BASE, PAGE_SIZE);
        rt305x_memc_base = ioremap_nocache(RT305X_MEMC_BASE, PAGE_SIZE);
 
-       rt305x_detect_mem_size();
        rt305x_detect_sys_type();
        rt305x_detect_sys_freq();