struct cpu_type cpu_type_list [] = {
 #if defined(CONFIG_MPC85xx)
-       CPU_TYPE_ENTRY(8533, 8533),
-       CPU_TYPE_ENTRY(8533, 8533_E),
-       CPU_TYPE_ENTRY(8535, 8535),
-       CPU_TYPE_ENTRY(8535, 8535_E),
-       CPU_TYPE_ENTRY(8536, 8536),
-       CPU_TYPE_ENTRY(8536, 8536_E),
-       CPU_TYPE_ENTRY(8540, 8540),
-       CPU_TYPE_ENTRY(8541, 8541),
-       CPU_TYPE_ENTRY(8541, 8541_E),
-       CPU_TYPE_ENTRY(8543, 8543),
-       CPU_TYPE_ENTRY(8543, 8543_E),
-       CPU_TYPE_ENTRY(8544, 8544),
-       CPU_TYPE_ENTRY(8544, 8544_E),
-       CPU_TYPE_ENTRY(8545, 8545),
-       CPU_TYPE_ENTRY(8545, 8545_E),
-       CPU_TYPE_ENTRY(8547, 8547_E),
-       CPU_TYPE_ENTRY(8548, 8548),
-       CPU_TYPE_ENTRY(8548, 8548_E),
-       CPU_TYPE_ENTRY(8555, 8555),
-       CPU_TYPE_ENTRY(8555, 8555_E),
-       CPU_TYPE_ENTRY(8560, 8560),
-       CPU_TYPE_ENTRY(8567, 8567),
-       CPU_TYPE_ENTRY(8567, 8567_E),
-       CPU_TYPE_ENTRY(8568, 8568),
-       CPU_TYPE_ENTRY(8568, 8568_E),
-       CPU_TYPE_ENTRY(8569, 8569),
-       CPU_TYPE_ENTRY(8569, 8569_E),
-       CPU_TYPE_ENTRY(8572, 8572),
-       CPU_TYPE_ENTRY(8572, 8572_E),
-       CPU_TYPE_ENTRY(P2020, P2020),
-       CPU_TYPE_ENTRY(P2020, P2020_E),
+       CPU_TYPE_ENTRY(8533, 8533, 1),
+       CPU_TYPE_ENTRY(8533, 8533_E, 1),
+       CPU_TYPE_ENTRY(8535, 8535, 1),
+       CPU_TYPE_ENTRY(8535, 8535_E, 1),
+       CPU_TYPE_ENTRY(8536, 8536, 1),
+       CPU_TYPE_ENTRY(8536, 8536_E, 1),
+       CPU_TYPE_ENTRY(8540, 8540, 1),
+       CPU_TYPE_ENTRY(8541, 8541, 1),
+       CPU_TYPE_ENTRY(8541, 8541_E, 1),
+       CPU_TYPE_ENTRY(8543, 8543, 1),
+       CPU_TYPE_ENTRY(8543, 8543_E, 1),
+       CPU_TYPE_ENTRY(8544, 8544, 1),
+       CPU_TYPE_ENTRY(8544, 8544_E, 1),
+       CPU_TYPE_ENTRY(8545, 8545, 1),
+       CPU_TYPE_ENTRY(8545, 8545_E, 1),
+       CPU_TYPE_ENTRY(8547, 8547_E, 1),
+       CPU_TYPE_ENTRY(8548, 8548, 1),
+       CPU_TYPE_ENTRY(8548, 8548_E, 1),
+       CPU_TYPE_ENTRY(8555, 8555, 1),
+       CPU_TYPE_ENTRY(8555, 8555_E, 1),
+       CPU_TYPE_ENTRY(8560, 8560, 1),
+       CPU_TYPE_ENTRY(8567, 8567, 1),
+       CPU_TYPE_ENTRY(8567, 8567_E, 1),
+       CPU_TYPE_ENTRY(8568, 8568, 1),
+       CPU_TYPE_ENTRY(8568, 8568_E, 1),
+       CPU_TYPE_ENTRY(8569, 8569, 1),
+       CPU_TYPE_ENTRY(8569, 8569_E, 1),
+       CPU_TYPE_ENTRY(8572, 8572, 2),
+       CPU_TYPE_ENTRY(8572, 8572_E, 2),
+       CPU_TYPE_ENTRY(P2020, P2020, 2),
+       CPU_TYPE_ENTRY(P2020, P2020_E, 2),
 #elif defined(CONFIG_MPC86xx)
-       CPU_TYPE_ENTRY(8610, 8610),
-       CPU_TYPE_ENTRY(8641, 8641),
-       CPU_TYPE_ENTRY(8641D, 8641D),
+       CPU_TYPE_ENTRY(8610, 8610, 1),
+       CPU_TYPE_ENTRY(8641, 8641, 2),
+       CPU_TYPE_ENTRY(8641D, 8641D, 2),
 #endif
 };
 
        return NULL;
 }
 
+int cpu_numcores() {
+       struct cpu_type *cpu;
+       cpu = gd->cpu;
+       return cpu->num_cores;
+}
+
+int probecpu (void)
+{
+       uint svr;
+       uint ver;
+
+       svr = get_svr();
+       ver = SVR_SOC_VER(svr);
+
+       gd->cpu = identify_cpu(ver);
+
+#ifndef CONFIG_MP
+       if (cpu_numcores() > 1) {
+               puts("Unicore software on multiprocessor system!!\n"
+                    "To enable mutlticore build define CONFIG_MP\n");
+       }
+#endif
+       return 0;
+}
+
 /*
  * Initializes on-chip ethernet controllers.
  * to override, implement board_eth_init()