Convert boards that set memory node to use fdt_fixup_memory()
authorKumar Gala <galak@kernel.crashing.org>
Wed, 28 Nov 2007 03:59:46 +0000 (21:59 -0600)
committerGerald Van Baren <vanbaren@cideas.com>
Sat, 8 Dec 2007 01:51:25 +0000 (20:51 -0500)
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
board/cm5200/cm5200.c
board/ids8247/ids8247.c
cpu/mpc83xx/cpu.c

index 4a86d3c..79fb71d 100644 (file)
@@ -263,7 +263,6 @@ static void ft_blob_update(void *blob, bd_t *bd)
 {
        int len, ret, nodeoffset = 0;
        char module_name[MODULE_NAME_MAXLEN] = {0};
-       ulong memory_data[2] = {0};
 
        compose_module_name(hw_id, module_name);
        len = strlen(module_name) + 1;
@@ -273,22 +272,12 @@ static void ft_blob_update(void *blob, bd_t *bd)
        printf("ft_blob_update(): cannot set /model property err:%s\n",
                fdt_strerror(ret));
 
-       memory_data[0] = cpu_to_be32(bd->bi_memstart);
-       memory_data[1] = cpu_to_be32(bd->bi_memsize);
+       ret = fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize);
 
-       nodeoffset = fdt_path_offset (blob, "/memory");
-       if (nodeoffset >= 0) {
-               ret = fdt_setprop(blob, nodeoffset, "reg", memory_data,
-                                       sizeof(memory_data));
-       if (ret < 0)
+       if (ret < 0) {
                printf("ft_blob_update): cannot set /memory/reg "
                        "property err:%s\n", fdt_strerror(ret));
        }
-       else {
-               /* memory node is required in dts */
-               printf("ft_blob_update(): cannot find /memory node "
-               "err:%s\n", fdt_strerror(nodeoffset));
-       }
 }
 #endif /* defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT) */
 
index d1d8c56..7176770 100644 (file)
@@ -329,25 +329,14 @@ nand_init (void)
  */
 void ft_blob_update(void *blob, bd_t *bd)
 {
-       int ret, nodeoffset = 0;
-       ulong memory_data[2] = {0};
+       int ret;
 
-       memory_data[0] = cpu_to_be32(bd->bi_memstart);
-       memory_data[1] = cpu_to_be32(bd->bi_memsize);
+       ret = fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize);
 
-       nodeoffset = fdt_path_offset (blob, "/memory");
-       if (nodeoffset >= 0) {
-               ret = fdt_setprop(blob, nodeoffset, "reg", memory_data,
-                                       sizeof(memory_data));
-       if (ret < 0)
+       if (ret < 0) {
                printf("ft_blob_update): cannot set /memory/reg "
                        "property err:%s\n", fdt_strerror(ret));
        }
-       else {
-               /* memory node is required in dts */
-               printf("ft_blob_update(): cannot find /memory node "
-               "err:%s\n", fdt_strerror(nodeoffset));
-       }
 }
 
 void ft_board_setup(void *blob, bd_t *bd)
index b2c35d3..f1ea17d 100644 (file)
@@ -35,6 +35,7 @@
 #include <ft_build.h>
 #elif defined(CONFIG_OF_LIBFDT)
 #include <libfdt.h>
+#include <fdt_support.h>
 #endif
 
 DECLARE_GLOBAL_DATA_PTR;
@@ -526,7 +527,6 @@ ft_cpu_setup(void *blob, bd_t *bd)
        int nodeoffset;
        int err;
        int j;
-       int tmp[2];
 
        for (j = 0; j < (sizeof(fixup_props) / sizeof(fixup_props[0])); j++) {
                nodeoffset = fdt_path_offset(blob, fixup_props[j].node);
@@ -543,21 +543,7 @@ ft_cpu_setup(void *blob, bd_t *bd)
                }
        }
 
-       /* update, or add and update /memory node */
-       nodeoffset = fdt_path_offset(blob, "/memory");
-       if (nodeoffset < 0) {
-               nodeoffset = fdt_add_subnode(blob, 0, "memory");
-               if (nodeoffset < 0)
-                       debug("failed to add /memory node: %s\n",
-                             fdt_strerror(nodeoffset));
-       }
-       if (nodeoffset >= 0) {
-               fdt_setprop(blob, nodeoffset, "device_type",
-                           "memory", sizeof("memory"));
-               tmp[0] = cpu_to_be32(bd->bi_memstart);
-               tmp[1] = cpu_to_be32(bd->bi_memsize);
-               fdt_setprop(blob, nodeoffset, "reg", tmp, sizeof(tmp));
-       }
+       fdt_fixup_memory(blob, (u64)bd->bi_memstart, (u64)bd->bi_memsize);
 }
 #elif defined(CONFIG_OF_FLAT_TREE)
 void