diff options
author | Shawn Guo <shawn.guo@linaro.org> | 2012-01-09 21:54:08 +0000 |
---|---|---|
committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2012-02-27 21:19:24 +0100 |
commit | fa34f6b25b3c92f27b245c52378a0d2af24aaa19 (patch) | |
tree | 633f7e7a58730058e6b77e6800dcf41adc5e1bdb /common/image.c | |
parent | ba901df41b0d77088408c1f6aac65eaadd4d12a0 (diff) | |
download | u-boot-imx-fa34f6b25b3c92f27b245c52378a0d2af24aaa19.zip u-boot-imx-fa34f6b25b3c92f27b245c52378a0d2af24aaa19.tar.gz u-boot-imx-fa34f6b25b3c92f27b245c52378a0d2af24aaa19.tar.bz2 |
common/image.c: align usage of fdt_high with initrd_high
The commit message of a28afca (Add uboot "fdt_high" enviroment variable)
states that fdt_high behaves similarly to the existing initrd_high.
But fdt_high actually has an outstanding difference from initrd_high.
The former specifies the start address, while the later specifies the
end address.
As fdt_high and initrd_high will likely be used together, it'd be nice
to have them behave same. The patch changes the behavior of fdt_high
to have it aligned with initrd_high.
The document of fdt_high in README is updated with an example to
demonstrate the usage of this environment variable.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/image.c')
-rw-r--r-- | common/image.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/common/image.c b/common/image.c index 202c8a1..fbdc40a 100644 --- a/common/image.c +++ b/common/image.c @@ -1289,16 +1289,14 @@ int boot_relocate_fdt(struct lmb *lmb, char **of_flat_tree, ulong *of_size) if (((ulong) desired_addr) == ~0UL) { /* All ones means use fdt in place */ - desired_addr = fdt_blob; + of_start = fdt_blob; + lmb_reserve(lmb, (ulong)of_start, of_len); disable_relocation = 1; - } - if (desired_addr) { + } else if (desired_addr) { of_start = (void *)(ulong) lmb_alloc_base(lmb, of_len, 0x1000, - ((ulong) - desired_addr) - + of_len); - if (desired_addr && of_start != desired_addr) { + (ulong)desired_addr); + if (of_start == 0) { puts("Failed using fdt_high value for Device Tree"); goto error; } |