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
next prev 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