summaryrefslogtreecommitdiff
path: root/arch/nios2/lib/bootm.c
diff options
context:
space:
mode:
authorJohn Rigby <john.rigby@linaro.org>2010-10-13 13:57:34 -0600
committerWolfgang Denk <wd@denx.de>2010-10-18 22:52:10 +0200
commit5a75e121075a63f312ae07409477b6f686840a93 (patch)
treeed3bf92da428f7cec1cdc1a5689deae6d38ce7ae /arch/nios2/lib/bootm.c
parenta6bd9e83abc811d5cade88cb5e7caf93b4f7abe1 (diff)
downloadu-boot-imx-5a75e121075a63f312ae07409477b6f686840a93.zip
u-boot-imx-5a75e121075a63f312ae07409477b6f686840a93.tar.gz
u-boot-imx-5a75e121075a63f312ae07409477b6f686840a93.tar.bz2
FDT: only call boot_get_fdt from generic code
All arches except nios2 and microblaze call boot_get_fdt from bootm_start in common/cmd_bootm.c. Having nios2 and microblaze do so as well removes code from their respective do_bootm_linux routines and allows removal of a nasty ifdef from bootm_start. In the case where boot_get_fdt returns an error bootm_start returns and the platform specific do_bootm_linux routines will never get called. Also only check argv[3] for an fdt addr if argc > 3 first. This is already the case for nios2. Signed-off-by: John Rigby <john.rigby@linaro.org> CC: Scott McNutt <smcnutt@psyent.com> CC: Michal Simek <monstr@monstr.eu> CC: Thomas Chou <thomas@wytron.com.tw> Acked-by: Wolfgang Denk <wd@denx.de> Acked-by: Michal Simek <monstr@monstr.eu> Tested-by: Thomas Chou <thomas@wytron.com.tw>
Diffstat (limited to 'arch/nios2/lib/bootm.c')
-rw-r--r--arch/nios2/lib/bootm.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/nios2/lib/bootm.c b/arch/nios2/lib/bootm.c
index 40a4d15..f32be52 100644
--- a/arch/nios2/lib/bootm.c
+++ b/arch/nios2/lib/bootm.c
@@ -36,11 +36,9 @@ int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *ima
ulong initrd_end = images->rd_end;
char *of_flat_tree = NULL;
#if defined(CONFIG_OF_LIBFDT)
- ulong of_size = 0;
-
- /* find flattened device tree */
- if (boot_get_fdt(flag, argc, argv, images, &of_flat_tree, &of_size))
- return 1;
+ /* did generic code already find a device tree? */
+ if (images->ft_len)
+ of_flat_tree = images->ft_addr;
#endif
if (!of_flat_tree && argc > 3)
of_flat_tree = (char *)simple_strtoul(argv[3], NULL, 16);