From: Rob Herring <robherring2@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 1/5] common: introduce maximum load size
Date: Thu, 10 Apr 2014 14:18:03 -0500 [thread overview]
Message-ID: <1397157488-8695-2-git-send-email-robherring2@gmail.com> (raw)
In-Reply-To: <1397157488-8695-1-git-send-email-robherring2@gmail.com>
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 */
--
1.9.1
next prev parent reply other threads:[~2014-04-10 19:18 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 ` Rob Herring [this message]
2014-04-11 14:46 ` [U-Boot] [PATCH v3 1/5] common: introduce maximum load size Tom Rini
2014-04-15 12:55 ` Lukasz Majewski
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=1397157488-8695-2-git-send-email-robherring2@gmail.com \
--to=robherring2@gmail.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