[PATCH] cfa10036: Retrieve the RAM size at runtime

Alexandre Belloni alexandre.belloni at free-electrons.com
Mon Mar 25 08:58:40 EDT 2013


On 25/03/2013 13:51, Sascha Hauer wrote:
>
> index 1bc20cf..37cc17e 100644
> --- a/arch/arm/boards/crystalfontz-cfa10036/cfa10036.c
> +++ b/arch/arm/boards/crystalfontz-cfa10036/cfa10036.c
> @@ -39,6 +39,8 @@
>  #include <asm/armlinux.h>
>  #include <asm/mmu.h>
>  
> +#include <asm-generic/sections.h>
> +
>  #include <mach/fb.h>
>  
>  #include <generated/mach-types.h>
> @@ -90,9 +92,77 @@ static struct i2c_gpio_platform_data i2c_gpio_pdata = {
>  	.udelay			= 5,		/* ~100 kHz */
>  };
>  
> +/*
> + * Copied from get_ram_size in common/memory.c
> + */
> +long cfa10036_get_ram_size(volatile long *base, long maxsize)
> +{
> When I asked for a local version of this function I had something like
> this in mind, not a complete copy of the function.
>
> 	volatile u32 *base = (void *)IMX_MEMORY_BASE;
> 	volatile u32 *ofs = base + SZ_128M;
>
> 	*base = *ofs = 0xdeadbeef;
>
> 	*ofs = 0x11223344;
> 	if (*base == 0x11223344)
> 		return SZ_128M;
> 	else
> 		return SZ_256M;
>

Yeah, I was also thinking about stripping it. But, for the sake of being
future proof, I finally chose to keep the full version.

Maybe, we can assume that we will never have less than 128M of ram if
you want to simplify it ?

Maxime, any input ?

Regards,

-- 
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com




More information about the barebox mailing list