ppc4xx: fdt: use fdt_fixup_ethernet()
authorStefan Roese <sr@denx.de>
Fri, 14 Dec 2007 07:41:29 +0000 (08:41 +0100)
committerStefan Roese <sr@denx.de>
Thu, 27 Dec 2007 18:35:33 +0000 (19:35 +0100)
By using aliases in the dts file, the ethernet node fixup is
much easier with the recently added functions.

Please note that the dts file needs the aliases for this to work.

Signed-off-by: Stefan Roese <sr@denx.de>
cpu/ppc4xx/fdt.c

index 3ef3000..f351b8b 100644 (file)
  * MA 02111-1307 USA
  */
 
-/* define DEBUG for debugging output (obviously ;-)) */
-#if 0
-#define DEBUG
-#endif
-
 #include <common.h>
 #include <watchdog.h>
 #include <command.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
-/*
- * The aliases needed for this generic etherne MAC address
- * fixup function are not in place yet. So don't use this
- * approach for now. This will be enabled later.
- */
-#undef USES_FDT_ALIASES
-
-#ifndef USES_FDT_ALIASES
-static void do_fixup_macaddr(void *fdt, int offset, const void *val, int i)
-{
-       int rc;
-
-       debug("Updating node EMAC%d\n", i);
-
-       rc = fdt_setprop(fdt, offset, "mac-address", val, 6);
-       if (rc)
-               printf("Unable to update property %s, err=%s\n",
-                      "mac-address", fdt_strerror(rc));
-       rc = fdt_setprop(fdt, offset, "local-mac-address", val, 6);
-       if (rc)
-               printf("Unable to update property %s, err=%s\n",
-                      "local-mac-address", fdt_strerror(rc));
-}
-#endif /* USES_FDT_ALIASES */
-
 void ft_cpu_setup(void *blob, bd_t *bd)
 {
        char *cpu_path = "/cpus/" OF_CPU;
        sys_info_t sys_info;
-       int offset;
-       int i;
 
        get_sys_info(&sys_info);
 
@@ -86,47 +54,10 @@ void ft_cpu_setup(void *blob, bd_t *bd)
         */
        do_fixup_by_compat_u32(blob, "ns16550", "clock-frequency", gd->uart_clk, 1);
 
-#ifdef USES_FDT_ALIASES
        /*
-        * The aliases needed for this generic etherne MAC address
-        * fixup function are not in place yet. So don't use this
-        * approach for now. This will be enabled later.
+        * Fixup all ethernet nodes
+        * Note: aliases in the dts are required for this
         */
        fdt_fixup_ethernet(blob, bd);
-#else
-       offset = -1;
-       for (i = 0; i < 4; i++) {
-               /*
-                * FIXME: This will cause problems with emac3 compatible
-                * devices, like on 405GP. But hopefully when we deal
-                * with those devices, the aliases stuff will be in
-                * place.
-                */
-               offset = fdt_node_offset_by_compatible(blob, offset, "ibm,emac4");
-               if (offset < 0)
-                       break;
-
-               switch (i) {
-               case 0:
-                       do_fixup_macaddr(blob, offset, bd->bi_enetaddr, 0);
-                       break;
-#ifdef CONFIG_HAS_ETH1
-               case 1:
-                       do_fixup_macaddr(blob, offset, bd->bi_enet1addr, 1);
-                       break;
-#endif
-#ifdef CONFIG_HAS_ETH2
-               case 2:
-                       do_fixup_macaddr(blob, offset, bd->bi_enet2addr, 2);
-                       break;
-#endif
-#ifdef CONFIG_HAS_ETH3
-               case 3:
-                       do_fixup_macaddr(blob, offset, bd->bi_enet3addr, 3);
-                       break;
-#endif
-               }
-       }
-#endif /* USES_FDT_ALIASES */
 }
 #endif /* CONFIG_OF_LIBFDT */