[U-Boot-Users] [PATCH 2/9] [new uImage] ppc: Determine if we are booting an OF style
Kumar Gala
galak at kernel.crashing.org
Thu Feb 28 04:51:44 CET 2008
If we are bootin OF style than we can skip setting up some things
that are used for the old boot method.
Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
---
lib_ppc/bootm.c | 22 +++++++++++++---------
1 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c
index fa28b43..3e89da1 100644
--- a/lib_ppc/bootm.c
+++ b/lib_ppc/bootm.c
@@ -71,10 +71,10 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
bd_t *kbd;
ulong ep = 0;
void (*kernel)(bd_t *, ulong, ulong, ulong, ulong);
+ ulong of_size = 0;
#if defined(CONFIG_OF_LIBFDT)
char *of_flat_tree = NULL;
- ulong of_size = 0;
#endif
/*
@@ -92,12 +92,19 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
alloc_current = sp_limit = get_boot_sp_limit(sp);
debug ("=> set upper limit to 0x%08lx\n", sp_limit);
- /* allocate space and init command line */
- alloc_current = get_boot_cmdline (alloc_current, &cmd_start, &cmd_end);
+#if defined(CONFIG_OF_LIBFDT)
+ /* find flattened device tree */
+ get_fdt (cmdtp, flag, argc, argv, images, &of_flat_tree, &of_size);
+#endif
- /* allocate space for kernel copy of board info */
- alloc_current = get_boot_kbd (alloc_current, &kbd);
- set_clocks_in_mhz(kbd);
+ if (!of_size) {
+ /* allocate space and init command line */
+ alloc_current = get_boot_cmdline (alloc_current, &cmd_start, &cmd_end);
+
+ /* allocate space for kernel copy of board info */
+ alloc_current = get_boot_kbd (alloc_current, &kbd);
+ set_clocks_in_mhz(kbd);
+ }
/* find kernel entry point */
if (images->legacy_hdr_valid) {
@@ -123,9 +130,6 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
sp_limit, get_sp (), &initrd_start, &initrd_end);
#if defined(CONFIG_OF_LIBFDT)
- /* find flattened device tree */
- get_fdt (cmdtp, flag, argc, argv, images, &of_flat_tree, &of_size);
-
alloc_current = fdt_relocate (alloc_current,
cmdtp, flag, argc, argv, &of_flat_tree, &of_size);
--
1.5.4.1
More information about the U-Boot
mailing list