From: Gabor Juhos Date: Mon, 31 Aug 2009 18:53:26 +0000 (+0000) Subject: share memory size detection code X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f4afb9a4f951ae34bda05969a179496bad27c869;p=librecmc%2Flibrecmc.git share memory size detection code SVN-Revision: 17454 --- diff --git a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt288x/ralink_soc.h b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt288x/ralink_soc.h index c379f39195..60ca647d8c 100644 --- a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt288x/ralink_soc.h +++ b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt288x/ralink_soc.h @@ -11,6 +11,10 @@ #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 diff --git a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt305x/ralink_soc.h b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt305x/ralink_soc.h index 144cc4ea46..fd0e8b3048 100644 --- a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt305x/ralink_soc.h +++ b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/rt305x/ralink_soc.h @@ -11,6 +11,10 @@ #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 diff --git a/target/linux/ramips/files/arch/mips/ralink/common/setup.c b/target/linux/ramips/files/arch/mips/ralink/common/setup.c index 6440ccb01a..86e951ca20 100644 --- a/target/linux/ramips/files/arch/mips/ralink/common/setup.c +++ b/target/linux/ramips/files/arch/mips/ralink/common/setup.c @@ -13,12 +13,30 @@ #include #include +#include #include + #include +#include + +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(); } diff --git a/target/linux/ramips/files/arch/mips/ralink/rt288x/setup.c b/target/linux/ramips/files/arch/mips/ralink/rt288x/setup.c index fe94126e5d..920f44ae41 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt288x/setup.c +++ b/target/linux/ramips/files/arch/mips/ralink/rt288x/setup.c @@ -16,7 +16,6 @@ #include #include -#include #include #include #include @@ -25,9 +24,6 @@ #include #include -#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(); diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/setup.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/setup.c index 70eaae4254..3aa6c9b9fa 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/setup.c +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/setup.c @@ -15,7 +15,6 @@ #include #include -#include #include #include #include @@ -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();