summaryrefslogtreecommitdiff
path: root/lib_ppc/bootm.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib_ppc/bootm.c')
-rw-r--r--lib_ppc/bootm.c65
1 files changed, 6 insertions, 59 deletions
diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c
index 3911687..16b2f38 100644
--- a/lib_ppc/bootm.c
+++ b/lib_ppc/bootm.c
@@ -39,8 +39,6 @@
#include <fdt.h>
#include <libfdt.h>
#include <fdt_support.h>
-#elif defined(CONFIG_OF_FLAT_TREE)
-#include <ft_build.h>
#endif
#ifdef CONFIG_LOGBUFFER
@@ -79,7 +77,7 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag,
bd_t *kbd;
void (*kernel)(bd_t *, ulong, ulong, ulong, ulong);
-#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT)
+#if defined(CONFIG_OF_LIBFDT)
image_header_t *fdt_hdr;
char *of_flat_tree = NULL;
ulong of_data = 0;
@@ -175,7 +173,7 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag,
* Check if there is an initrd image
*/
-#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT)
+#if defined(CONFIG_OF_LIBFDT)
/* Look for a '-' which indicates to ignore the ramdisk argument */
if (argc >= 3 && strcmp(argv[2], "-") == 0) {
debug ("Skipping initrd\n");
@@ -247,15 +245,12 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag,
rd_len = rd_data = 0;
}
-#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT)
+#if defined(CONFIG_OF_LIBFDT)
if(argc > 3) {
of_flat_tree = (char *) simple_strtoul(argv[3], NULL, 16);
fdt_hdr = (image_header_t *)of_flat_tree;
-#if defined(CONFIG_OF_FLAT_TREE)
- if (*((ulong *)(of_flat_tree)) == OF_DT_HEADER) {
-#elif defined(CONFIG_OF_LIBFDT)
+
if (fdt_check_header (of_flat_tree) == 0) {
-#endif
#ifndef CFG_NO_FLASH
if (addr2info((ulong)of_flat_tree) != NULL)
of_data = (ulong)of_flat_tree;
@@ -303,11 +298,7 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag,
"must RESET the board to recover.\n");
do_reset (cmdtp, flag, argc, argv);
}
-#if defined(CONFIG_OF_FLAT_TREE)
- if (*((ulong *)(of_flat_tree + image_get_header_size ())) != OF_DT_HEADER) {
-#elif defined(CONFIG_OF_LIBFDT)
if (fdt_check_header (of_flat_tree + image_get_header_size ()) != 0) {
-#endif
puts ("ERROR: uImage data is not a fdt - "
"must RESET the board to recover.\n");
do_reset (cmdtp, flag, argc, argv);
@@ -339,21 +330,13 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag,
of_data = (ulong)of_flat_tree;
#endif
-#if defined(CONFIG_OF_FLAT_TREE)
- if (*((ulong *)(of_flat_tree)) != OF_DT_HEADER) {
-#elif defined(CONFIG_OF_LIBFDT)
if (fdt_check_header (of_flat_tree) != 0) {
-#endif
puts ("ERROR: image is not a fdt - "
"must RESET the board to recover.\n");
do_reset (cmdtp, flag, argc, argv);
}
-#if defined(CONFIG_OF_FLAT_TREE)
- if (((struct boot_param_header *)of_flat_tree)->totalsize != fdt_len) {
-#elif defined(CONFIG_OF_LIBFDT)
if (be32_to_cpu (fdt_totalsize (of_flat_tree)) != fdt_len) {
-#endif
puts ("ERROR: fdt size != image size - "
"must RESET the board to recover.\n");
do_reset (cmdtp, flag, argc, argv);
@@ -480,43 +463,7 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag,
ft_board_setup(of_flat_tree, gd->bd);
#endif
}
-
-#elif defined(CONFIG_OF_FLAT_TREE)
-
-#ifdef CFG_BOOTMAPSZ
- /*
- * The blob must be within CFG_BOOTMAPSZ,
- * so we flag it to be copied if it is not.
- */
- if (of_flat_tree >= (char *)CFG_BOOTMAPSZ)
- of_data = (ulong)of_flat_tree;
-#endif
-
- /* move of_flat_tree if needed */
- if (of_data) {
- ulong of_start, of_len;
- of_len = ((struct boot_param_header *)of_data)->totalsize;
-
- /* provide extra 8k pad */
- of_start = (ulong)kbd - of_len - 8192;
- of_start &= ~(4096 - 1); /* align on page */
- debug ("## device tree at 0x%08lX ... 0x%08lX (len=%ld=0x%lX)\n",
- of_data, of_data + of_len - 1, of_len, of_len);
-
- of_flat_tree = (char *)of_start;
- printf (" Loading Device Tree to %08lx, end %08lx ... ",
- of_start, of_start + of_len - 1);
- memmove ((void *)of_start, (void *)of_data, of_len);
- puts ("OK\n");
- }
- /*
- * Create the /chosen node and modify the blob with board specific
- * values as needed.
- */
- ft_setup(of_flat_tree, kbd, initrd_start, initrd_end);
- /* ft_dump_blob(of_flat_tree); */
-
-#endif /* #if defined(CONFIG_OF_LIBFDT) #elif defined(CONFIG_OF_FLAT_TREE) */
+#endif /* CONFIG_OF_LIBFDT */
debug ("## Transferring control to Linux (at address %08lx) ...\n",
(ulong)kernel);
@@ -527,7 +474,7 @@ do_bootm_linux(cmd_tbl_t *cmdtp, int flag,
unlock_ram_in_cache();
#endif
-#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT)
+#if defined(CONFIG_OF_LIBFDT)
if (of_flat_tree) { /* device tree; boot new style */
/*
* Linux Kernel Parameters (passing device tree):