public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Lukasz Majewski <l.majewski@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 1/5] common: introduce maximum load size
Date: Tue, 15 Apr 2014 14:55:11 +0200	[thread overview]
Message-ID: <20140415145511.693e5c15@amdc2363> (raw)
In-Reply-To: <1397157488-8695-2-git-send-email-robherring2@gmail.com>

Hi Rob,

> From: Rob Herring <robh@kernel.org>
> 
> Various commands that load images have no checks that a loaded image
> does not exceed the available RAM space and will happily continue
> overwriting u-boot or other RAM that should not be touched. Also,
> some commands such as USB DFU or fastboot need to know the maximum
> buffer size, but there is no common way to define this.
> 
> Introduce a global load_size and environment variable loadsize to
> specify the size. The default is ~0UL which is effectively unlimited.
> 
> Signed-off-by: Rob Herring <robh@kernel.org>
> ---
>  README                     |  3 +++
>  common/board_r.c           |  1 +
>  common/image.c             | 17 +++++++++++++++++
>  include/common.h           |  1 +
>  include/config_fallbacks.h |  4 ++++
>  5 files changed, 26 insertions(+)
> 
> diff --git a/README b/README
> index 39e05d3..45c0438 100644
> --- a/README
> +++ b/README
> @@ -4871,6 +4871,9 @@ List of environment variables (most likely not
> complete): loadaddr	- Default load address for commands like
> "bootp", "rarpboot", "tftpboot", "loadb" or "diskboot"
>  
> +  loadsize	- Maximum load size for commands like "bootp",
> +		  "rarpboot", "tftpboot", "loadb" or "diskboot"
> +
>    loads_echo	- see CONFIG_LOADS_ECHO
>  
>    serverip	- TFTP server IP address; needed for tftpboot
> command diff --git a/common/board_r.c b/common/board_r.c
> index 8629a65..b420f43 100644
> --- a/common/board_r.c
> +++ b/common/board_r.c
> @@ -451,6 +451,7 @@ static int initr_env(void)
>  
>  	/* Initialize from environment */
>  	load_addr = getenv_ulong("loadaddr", 16, load_addr);
> +	load_size = getenv_ulong("loadsize", 16, load_size);
>  #if defined(CONFIG_SYS_EXTBDINFO)
>  #if defined(CONFIG_405GP) || defined(CONFIG_405EP)
>  #if defined(CONFIG_I2CFAST)
> diff --git a/common/image.c b/common/image.c
> index 9c6bec5..afbf806 100644
> --- a/common/image.c
> +++ b/common/image.c
> @@ -396,6 +396,7 @@ static const image_header_t
> *image_get_ramdisk(ulong rd_addr, uint8_t
> arch, /*****************************************************************************/
> #ifndef USE_HOSTCC ulong load_addr = CONFIG_SYS_LOAD_ADDR;	/*
> Default Load Address */ +ulong load_size =
> CONFIG_SYS_LOAD_SIZE;	/* Default Load Size */ ulong
> save_addr;			/* Default Save Address */ ulong
> save_size;			/* Default Save Size (in bytes) */ 
> @@ -415,6 +416,22 @@ static int on_loadaddr(const char *name, const
> char *value, enum env_op op, }
>  U_BOOT_ENV_CALLBACK(loadaddr, on_loadaddr);
>  
> +static int on_loadsize(const char *name, const char *value, enum
> env_op op,
> +	int flags)
> +{
> +	switch (op) {
> +	case env_op_create:
> +	case env_op_overwrite:
> +		load_size = simple_strtoul(value, NULL, 16);
> +		break;
> +	default:
> +		break;
> +	}
> +
> +	return 0;
> +}
> +U_BOOT_ENV_CALLBACK(loadsize, on_loadsize);
> +
>  ulong getenv_bootm_low(void)
>  {
>  	char *s = getenv("bootm_low");
> diff --git a/include/common.h b/include/common.h
> index cbd3c9e..80f366e 100644
> --- a/include/common.h
> +++ b/include/common.h
> @@ -342,6 +342,7 @@ void flash_perror (int);
>  int	source (ulong addr, const char *fit_uname);
>  
>  extern ulong load_addr;		/* Default Load Address */
> +extern ulong load_size;		/* Default Load Size
> (maximum) */ extern ulong save_addr;		/* Default Save
> Address */ extern ulong save_size;		/* Default Save
> Size */ 
> diff --git a/include/config_fallbacks.h b/include/config_fallbacks.h
> index e6fb47b..92a36f5 100644
> --- a/include/config_fallbacks.h
> +++ b/include/config_fallbacks.h
> @@ -79,4 +79,8 @@
>  #define CONFIG_SYS_HZ		1000
>  #endif
>  
> +#ifndef CONFIG_SYS_LOAD_SIZE
> +#define CONFIG_SYS_LOAD_SIZE	(~0UL)
> +#endif
> +
>  #endif	/* __CONFIG_FALLBACKS_H */

Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>

-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group

  parent reply	other threads:[~2014-04-15 12:55 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-10 19:18 [U-Boot] [PATCH v3 0/5] Android Fastboot support Rob Herring
2014-04-10 19:18 ` [U-Boot] [PATCH v3 1/5] common: introduce maximum load size Rob Herring
2014-04-11 14:46   ` Tom Rini
2014-04-15 12:55   ` Lukasz Majewski [this message]
2014-04-15 21:59   ` Wolfgang Denk
2014-04-15 23:54     ` Rob Herring
2014-04-16  7:27       ` Wolfgang Denk
2014-04-10 19:18 ` [U-Boot] [PATCH v3 2/5] usb: handle NULL table in usb_gadget_get_string Rob Herring
2014-04-11 14:46   ` Tom Rini
2014-04-11 21:39   ` Marek Vasut
2014-04-15 13:00   ` Lukasz Majewski
2014-04-10 19:18 ` [U-Boot] [PATCH v3 3/5] image: add support for Android's boot image format Rob Herring
2014-04-11 14:46   ` Tom Rini
2014-04-11 21:44   ` Marek Vasut
2014-04-12 21:54     ` Rob Herring
2014-04-13 16:55       ` Marek Vasut
2014-04-15 13:59   ` Lukasz Majewski
2014-04-10 19:18 ` [U-Boot] [PATCH v3 4/5] usb/gadget: add the fastboot gadget Rob Herring
2014-04-11  7:14   ` Bo Shen
2014-04-11 12:55     ` Rob Herring
2014-04-11 22:13       ` Marek Vasut
2014-04-14  6:51         ` Lukasz Majewski
2014-04-14  2:28       ` Bo Shen
2014-04-11  7:30   ` Lukasz Majewski
2014-04-11 14:46   ` Tom Rini
2014-04-11 22:08   ` Marek Vasut
2014-04-15 15:41   ` Lukasz Majewski
2014-04-15 16:01     ` Rob Herring
2014-04-10 19:18 ` [U-Boot] [PATCH v3 5/5] arm: beagle: enable Android fastboot support Rob Herring
2014-04-11 14:46   ` Tom Rini
2014-04-10 19:18 ` [U-Boot] [PATCH 5/5] beagle: " Rob Herring
2014-04-10 19:42   ` Rob Herring
2014-04-11  7:04 ` [U-Boot] [PATCH v3 0/5] Android Fastboot support Sebastian Andrzej Siewior
2014-04-11 14:15   ` Tom Rini
2014-04-11 14:45 ` Tom Rini
2014-04-14 12:19   ` Rob Herring
2014-04-18 13:54 ` [U-Boot] [PATCH v4 " Rob Herring
2014-04-18 13:54   ` [U-Boot] [PATCH v4 1/5] usb: handle NULL table in usb_gadget_get_string Rob Herring
2014-04-18 13:54   ` [U-Boot] [PATCH v4 2/5] image: add support for Android's boot image format Rob Herring
2014-04-18 13:54   ` [U-Boot] [PATCH v4 3/5] usb: musb: fill in usb_gadget_unregister_driver Rob Herring
2014-04-23  9:46     ` Lukasz Majewski
2014-04-18 13:54   ` [U-Boot] [PATCH v4 4/5] usb/gadget: add the fastboot gadget Rob Herring
2014-04-23 11:02     ` Lukasz Majewski
2014-04-23 12:25       ` Marek Vasut
2014-04-24 15:02       ` Rob Herring
2014-04-25  5:26         ` Lukasz Majewski
2014-04-25 13:30           ` Rob Herring
2014-04-28  7:00             ` Lukasz Majewski
2014-04-18 13:54   ` [U-Boot] [PATCH v4 5/5] arm: beagle: enable Android fastboot support Rob Herring
2014-04-18 16:14   ` [U-Boot] [PATCH v4 0/5] Android Fastboot support Wolfgang Denk
2014-04-21 15:13     ` Marek Vasut
2014-04-23 14:36       ` Rob Herring
2014-04-23 16:57         ` Marek Vasut
2014-05-05 20:08   ` [U-Boot] [PATCH v5 0/3] " Rob Herring
2014-05-05 20:08     ` [U-Boot] [PATCH v5 1/3] image: add support for Android's boot image format Rob Herring
2014-05-05 20:08     ` [U-Boot] [PATCH v5 2/3] usb/gadget: add the fastboot gadget Rob Herring
2014-05-05 20:08     ` [U-Boot] [PATCH v5 3/3] arm: beagle: enable Android fastboot support Rob Herring
2014-05-05 20:21     ` [U-Boot] [PATCH v5 0/3] Android Fastboot support Marek Vasut
2014-05-07  6:35     ` Lukasz Majewski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140415145511.693e5c15@amdc2363 \
    --to=l.majewski@samsung.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox