diff options
| -rw-r--r-- | target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h | 1 | ||||
| -rw-r--r-- | target/linux/ramips/files/arch/mips/ralink/common/setup.c | 18 | 
2 files changed, 13 insertions, 6 deletions
diff --git a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h index 111dd0640..bb6e12bf8 100644 --- a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h +++ b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h @@ -14,6 +14,7 @@ extern unsigned char ramips_sys_type[RAMIPS_SYS_TYPE_LEN];  extern unsigned long ramips_mem_base;  extern unsigned long ramips_mem_size_min;  extern unsigned long ramips_mem_size_max; +extern unsigned long (*ramips_get_mem_size)(void);  void ramips_intc_irq_init(unsigned intc_base, unsigned irq, unsigned irq_base);  u32 ramips_intc_get_status(void); 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 0d6b8d8c9..1af855e64 100644 --- a/target/linux/ramips/files/arch/mips/ralink/common/setup.c +++ b/target/linux/ramips/files/arch/mips/ralink/common/setup.c @@ -21,6 +21,7 @@  #include <asm/mach-ralink/machine.h>  unsigned char ramips_sys_type[RAMIPS_SYS_TYPE_LEN]; +unsigned long (*ramips_get_mem_size)(void);  const char *get_system_type(void)  { @@ -30,13 +31,18 @@ const char *get_system_type(void)  static void __init detect_mem_size(void)  {  	unsigned long size; -	void *base; -	base = (void *) KSEG1ADDR(detect_mem_size); -	for (size = ramips_mem_size_min; size < ramips_mem_size_max; -	     size <<= 1 ) { -		if (!memcmp(base, base + size, 1024)) -			break; +	if (ramips_get_mem_size) { +		size = ramips_get_mem_size(); +	} else { +		void *base; + +		base = (void *) KSEG1ADDR(detect_mem_size); +		for (size = ramips_mem_size_min; size < ramips_mem_size_max; +		     size <<= 1 ) { +			if (!memcmp(base, base + size, 1024)) +				break; +		}  	}  	add_memory_region(ramips_mem_base, size, BOOT_MEM_RAM);  | 
