powerpc/mp: add support for discontiguous cores

Some SOCs have discontiguously-numbered cores, and so we can't determine the
valid core numbers via the FRR register any more.  We define
CPU_TYPE_ENTRY_MASK to specify a discontiguous core mask, and helper functions
to process the mask and enumerate over the set of valid cores.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
diff --git a/common/cmd_mp.c b/common/cmd_mp.c
index f19bf41..b115b59 100644
--- a/common/cmd_mp.c
+++ b/common/cmd_mp.c
@@ -32,9 +32,8 @@
 		return cmd_usage(cmdtp);
 
 	cpuid = simple_strtoul(argv[1], NULL, 10);
-	if (cpuid >= cpu_numcores()) {
-		printf ("Core num: %lu is out of range[0..%d]\n",
-				cpuid, cpu_numcores() - 1);
+	if (!is_core_valid(cpuid)) {
+		printf ("Core num: %lu is not valid\n",	cpuid);
 		return 1;
 	}