Merge with /home/wd/git/u-boot/custodian/u-boot-mpc85xx
[platform/kernel/u-boot.git] / cpu / mpc86xx / cpu.c
index ddd0ad3..a33acfe 100644 (file)
 #include <ft_build.h>
 #endif
 
-#ifdef CONFIG_MPC8641HPCN
-extern void mpc8641_reset_board(cmd_tbl_t *cmdtp, int flag,
-                               int argc, char *argv[]);
-#endif
-
-
 int
 checkcpu(void)
 {
@@ -76,11 +70,12 @@ checkcpu(void)
        puts("    System: ");
        switch (ver) {
        case SVR_8641:
-               puts("8641");
-               break;
-       case SVR_8641D:
+           if (SVR_SUBVER(svr) == 1) {
                puts("8641D");
-               break;
+           } else {
+               puts("8641");
+           }
+           break;
        default:
                puts("Unknown");
                break;
@@ -184,7 +179,7 @@ do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 #else /* CONFIG_MPC8641HPCN */
 
-       mpc8641_reset_board(cmdtp, flag, argc, argv);
+       out8(PIXIS_BASE + PIXIS_RST, 0);
 
 #endif /* !CONFIG_MPC8641HPCN */
 
@@ -285,22 +280,38 @@ ft_cpu_setup(void *blob, bd_t *bd)
 
 #if defined(CONFIG_MPC86XX_TSEC1)
        p = ft_get_prop(blob, "/" OF_SOC "/ethernet@24000/mac-address", &len);
-       memcpy(p, bd->bi_enetaddr, 6);
+       if (p != NULL)
+               memcpy(p, bd->bi_enetaddr, 6);
+       p = ft_get_prop(blob, "/" OF_SOC "/ethernet@24000/local-mac-address", &len);
+       if (p)
+               memcpy(p, bd->bi_enetaddr, 6);
 #endif
 
 #if defined(CONFIG_MPC86XX_TSEC2)
        p = ft_get_prop(blob, "/" OF_SOC "/ethernet@25000/mac-address", &len);
-       memcpy(p, bd->bi_enet1addr, 6);
+       if (p != NULL)
+               memcpy(p, bd->bi_enet1addr, 6);
+       p = ft_get_prop(blob, "/" OF_SOC "/ethernet@25000/local-mac-address", &len);
+       if (p != NULL)
+               memcpy(p, bd->bi_enet1addr, 6);
 #endif
 
 #if defined(CONFIG_MPC86XX_TSEC3)
        p = ft_get_prop(blob, "/" OF_SOC "/ethernet@26000/mac-address", &len);
-       memcpy(p, bd->bi_enet2addr, 6);
+       if (p != NULL)
+               memcpy(p, bd->bi_enet2addr, 6);
+       p = ft_get_prop(blob, "/" OF_SOC "/ethernet@26000/local-mac-address", &len);
+       if (p != NULL)
+               memcpy(p, bd->bi_enet2addr, 6);
 #endif
 
 #if defined(CONFIG_MPC86XX_TSEC4)
        p = ft_get_prop(blob, "/" OF_SOC "/ethernet@27000/mac-address", &len);
-       memcpy(p, bd->bi_enet3addr, 6);
+       if (p != NULL)
+               memcpy(p, bd->bi_enet3addr, 6);
+       p = ft_get_prop(blob, "/" OF_SOC "/ethernet@27000/local-mac-address", &len);
+       if (p != NULL)
+               memcpy(p, bd->bi_enet3addr, 6);
 #endif
 
 }