From: Stephen Warren <swarren@nvidia.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 2/3] image: Support FDTs already loaded at their load address
Date: Tue, 1 Nov 2011 10:28:21 -0600 [thread overview]
Message-ID: <1320164902-24190-2-git-send-email-swarren@nvidia.com> (raw)
In-Reply-To: <1320164902-24190-1-git-send-email-swarren@nvidia.com>
boot_get_fdt() expects a uImage-wrapped FDT to be loaded to a staging
location, and then memmove()s it to the load address specified in the
header. This change enhances boot_get_fdt() to detect when the image has
already been loaded to the correct address, and skip this memmove(). The
detection algorithm was written to match the equivalent for the kernel;
see bootm_load_os()'s IH_COMP_NONE case.
v2: New patch
Signed-off-by: Stephen Warren <swarren@nvidia.com>
---
common/image.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/common/image.c b/common/image.c
index b773505..7ce5d33 100644
--- a/common/image.c
+++ b/common/image.c
@@ -1371,7 +1371,7 @@ int boot_get_fdt(int flag, int argc, char * const argv[],
const image_header_t *fdt_hdr;
ulong fdt_addr;
char *fdt_blob = NULL;
- ulong image_start, image_end;
+ ulong image_start, image_data, image_end;
ulong load_start, load_end;
#if defined(CONFIG_FIT)
void *fit_hdr;
@@ -1479,21 +1479,28 @@ int boot_get_fdt(int flag, int argc, char * const argv[],
* make sure we don't overwrite initial image
*/
image_start = (ulong)fdt_hdr;
+ image_data = (ulong)image_get_data(fdt_hdr);
image_end = image_get_image_end(fdt_hdr);
load_start = image_get_load(fdt_hdr);
load_end = load_start + image_get_data_size(fdt_hdr);
+ if (load_start == image_start ||
+ load_start == image_data) {
+ fdt_blob = (char *)image_data;
+ break;
+ }
+
if ((load_start < image_end) && (load_end > image_start)) {
fdt_error("fdt overwritten");
goto error;
}
debug(" Loading FDT from 0x%08lx to 0x%08lx\n",
- image_get_data(fdt_hdr), load_start);
+ image_data, load_start);
memmove((void *)load_start,
- (void *)image_get_data(fdt_hdr),
+ (void *)image_data,
image_get_data_size(fdt_hdr));
fdt_blob = (char *)load_start;
--
1.7.0.4
next prev parent reply other threads:[~2011-11-01 16:28 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-01 16:28 [U-Boot] [PATCH v2 1/3] image: Make image_get_fdt work like image_get_{ram_disk, kernel} Stephen Warren
2011-11-01 16:28 ` Stephen Warren [this message]
2012-03-06 21:18 ` [U-Boot] [PATCH v2 2/3] image: Support FDTs already loaded at their load address Wolfgang Denk
2011-11-01 16:28 ` [U-Boot] [PATCH v2 3/3] image: Allow images to indicate they're loadable at any address Stephen Warren
2011-11-05 22:20 ` Wolfgang Denk
2011-11-07 16:56 ` Stephen Warren
2011-11-07 17:09 ` Stephen Warren
2011-11-07 19:47 ` Simon Glass
2011-11-07 20:29 ` Wolfgang Denk
2011-11-07 21:17 ` Stephen Warren
2011-11-07 22:11 ` Wolfgang Denk
2011-11-07 22:30 ` Stephen Warren
2011-11-07 23:08 ` Wolfgang Denk
2011-11-08 0:00 ` Stephen Warren
2011-11-08 0:27 ` Wolfgang Denk
[not found] ` <74CDBE0F657A3D45AFBB94109FB122FF173F9A5035@HQMAIL01.nvidia.com>
2011-11-07 20:26 ` Wolfgang Denk
2011-11-07 21:04 ` Marek Vasut
2011-11-07 21:38 ` Stephen Warren
2011-11-07 21:59 ` Marek Vasut
2011-11-07 22:08 ` Stephen Warren
2011-11-07 22:27 ` Wolfgang Denk
2011-11-07 22:41 ` Stephen Warren
2011-11-07 23:10 ` Wolfgang Denk
2011-11-07 23:43 ` Stephen Warren
2011-11-07 22:57 ` Nicolas Pitre
2011-11-07 23:25 ` Wolfgang Denk
2011-11-08 0:10 ` Stephen Warren
2011-11-08 0:29 ` Wolfgang Denk
2011-11-08 0:48 ` Nicolas Pitre
2011-11-08 8:38 ` Wolfgang Denk
2011-11-08 11:35 ` Marek Vasut
2011-11-08 11:50 ` Wolfgang Denk
2011-11-08 11:52 ` Marek Vasut
2011-11-08 18:17 ` Stephen Warren
[not found] ` <74CDBE0F657A3D45AFBB94109FB122FF173F9A5424@HQMAIL01.nvidia.com>
2011-11-08 19:44 ` Wolfgang Denk
2011-11-08 21:17 ` Wolfgang Denk
2011-11-08 22:27 ` Stephen Warren
2011-11-08 22:46 ` Wolfgang Denk
2011-11-08 0:35 ` Nicolas Pitre
2011-11-08 1:10 ` Simon Glass
2011-11-08 3:51 ` Nicolas Pitre
2011-11-08 5:37 ` Simon Glass
2011-11-08 8:45 ` Wolfgang Denk
2011-11-08 14:22 ` Loïc Minier
2011-11-08 14:52 ` Jason
2011-11-08 20:18 ` Nicolas Pitre
2011-12-10 22:42 ` Linus Walleij
2011-12-10 22:53 ` Wolfgang Denk
2011-12-10 23:21 ` Linus Walleij
2011-12-12 16:25 ` Stephen Warren
2011-11-08 8:33 ` Wolfgang Denk
2011-11-08 14:26 ` Nicolas Pitre
2011-11-08 15:01 ` Marek Vasut
2011-11-08 15:59 ` Wolfgang Denk
2011-11-08 16:57 ` Detlev Zundel
2011-11-08 20:05 ` Nicolas Pitre
2011-11-07 21:27 ` Stephen Warren
2011-11-07 21:41 ` Nicolas Pitre
2011-11-07 22:42 ` Wolfgang Denk
2011-11-05 18:41 ` [U-Boot] [PATCH v2 1/3] image: Make image_get_fdt work like image_get_{ram_disk, kernel} Marek Vasut
2011-11-05 19:21 ` Simon Glass
2011-11-05 19:39 ` Marek Vasut
2011-11-05 20:38 ` Simon Glass
2011-11-05 20:41 ` Marek Vasut
2011-11-05 20:49 ` Simon Glass
2011-11-05 22:15 ` Wolfgang Denk
2011-11-05 22:18 ` Marek Vasut
2011-11-05 22:06 ` Wolfgang Denk
2011-11-05 21:53 ` Wolfgang Denk
2011-11-05 22:06 ` Marek Vasut
2011-11-05 22:22 ` Wolfgang Denk
2011-11-06 4:52 ` Simon Glass
2011-11-06 8:57 ` Wolfgang Denk
2011-11-05 21:40 ` Wolfgang Denk
2011-11-05 22:06 ` Marek Vasut
2011-11-05 22:24 ` Wolfgang Denk
2011-11-05 22:38 ` Marek Vasut
2011-11-08 14:24 ` Loïc Minier
2011-11-08 16:06 ` Wolfgang Denk
2011-11-08 18:15 ` Stephen Warren
[not found] ` <74CDBE0F657A3D45AFBB94109FB122FF173F9A5415@HQMAIL01.nvidia.com>
2011-11-08 19:33 ` Wolfgang Denk
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=1320164902-24190-2-git-send-email-swarren@nvidia.com \
--to=swarren@nvidia.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