[PATCH 1/2] mvebu: make boards pass initial memory size

Sascha Hauer s.hauer at pengutronix.de
Mon Feb 13 00:06:05 PST 2017


Hi Uwe,

On Fri, Feb 10, 2017 at 04:50:59PM +0100, Uwe Kleine-König wrote:
> While assuming SZ_64M initially is save and fixed up later, the size of the
> malloc area is determined from this value. So it might make sense for some
> boards to pass the correct version from the start to have more RAM available
> for example to write big images into an FPGA.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
> ---
>  arch/arm/boards/globalscale-guruplug/lowlevel.c    |  2 +-
>  arch/arm/boards/globalscale-mirabox/lowlevel.c     |  2 +-
>  arch/arm/boards/lenovo-ix4-300d/lowlevel.c         |  2 +-
>  arch/arm/boards/marvell-armada-xp-gp/lowlevel.c    |  2 +-
>  arch/arm/boards/netgear-rn104/lowlevel.c           |  2 +-
>  arch/arm/boards/netgear-rn2120/lowlevel.c          |  2 +-
>  arch/arm/boards/plathome-openblocks-a6/lowlevel.c  |  2 +-
>  arch/arm/boards/plathome-openblocks-ax3/lowlevel.c |  2 +-
>  arch/arm/boards/solidrun-cubox/lowlevel.c          |  2 +-
>  arch/arm/boards/usi-topkick/lowlevel.c             |  2 +-
>  arch/arm/mach-mvebu/include/mach/lowlevel.h        |  2 +-
>  arch/arm/mach-mvebu/lowlevel.c                     | 15 +++++++--------
>  12 files changed, 18 insertions(+), 19 deletions(-)
> 
>  /*
>   * Determining the actual memory size is highly SoC dependent,
> - * but for all SoCs RAM starts at 0x00000000. Therefore, we start
> - * with a minimal memory setup of 64M and probe correct memory size
> - * later.
> + * but for all SoCs RAM starts at 0x00000000. If the available RAM isn't known
> + * at the call-site of mvebu_barebox_entry, using a value that is not too big is
> + * safe. The correct memory size will be probed later.
>   */
>  #define MVEBU_BOOTUP_MEMORY_BASE	0x00000000
> -#define MVEBU_BOOTUP_MEMORY_SIZE	SZ_64M
>  
> -void __naked __noreturn mvebu_barebox_entry(void *boarddata)
> +void __naked __noreturn mvebu_barebox_entry(void *boarddata,
> +					    unsigned long memsize)
>  {
>  	mvebu_remap_registers();
> -	barebox_arm_entry(MVEBU_BOOTUP_MEMORY_BASE,
> -			  MVEBU_BOOTUP_MEMORY_SIZE, boarddata);
> +	barebox_arm_entry(MVEBU_BOOTUP_MEMORY_BASE, memsize, boarddata);
>  }

I would prefer if you could split mvebu_barebox_entry into
armada_370_xp_barebox_entry, dove_barebox_entry and
kirkwood_barebox_entry. Then you could call the SoC specific SDRAM
detection functions and call barebox with the correct amount of SDRAM
from the start.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list