summaryrefslogtreecommitdiff
path: root/arch/powerpc/cpu/mpc8xxx/cpu.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2010-08-07 22:33:06 +0200
committerWolfgang Denk <wd@denx.de>2010-08-07 22:33:06 +0200
commit3df4f46f3209c067dcadc969ed02d27c97fa3632 (patch)
tree4639307e5e9120b0c80c62da8376be3e406e84fb /arch/powerpc/cpu/mpc8xxx/cpu.c
parent9efac4a1eb99d9c5539aa6992025eeacab7980c6 (diff)
parentc519facc645812c6d174c2d5b60241d23e285642 (diff)
downloadolio-uboot-2014.01-3df4f46f3209c067dcadc969ed02d27c97fa3632.tar.xz
olio-uboot-2014.01-3df4f46f3209c067dcadc969ed02d27c97fa3632.zip
Merge branch 'master' of /home/wd/git/u-boot/master
Diffstat (limited to 'arch/powerpc/cpu/mpc8xxx/cpu.c')
-rw-r--r--arch/powerpc/cpu/mpc8xxx/cpu.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/powerpc/cpu/mpc8xxx/cpu.c b/arch/powerpc/cpu/mpc8xxx/cpu.c
index dc3da1689..97a94f4cd 100644
--- a/arch/powerpc/cpu/mpc8xxx/cpu.c
+++ b/arch/powerpc/cpu/mpc8xxx/cpu.c
@@ -110,8 +110,14 @@ struct cpu_type *identify_cpu(u32 ver)
}
int cpu_numcores() {
- struct cpu_type *cpu;
- cpu = gd->cpu;
+ ccsr_pic_t __iomem *pic = (void *)CONFIG_SYS_MPC85xx_PIC_ADDR;
+ struct cpu_type *cpu = gd->cpu;
+
+ /* better to query feature reporting register than just assume 1 */
+ if (cpu == &cpu_type_unknown)
+ return ((in_be32(&pic->frr) & MPC85xx_PICFRR_NCPU_MASK) >>
+ MPC85xx_PICFRR_NCPU_SHIFT) + 1;
+
return cpu->num_cores;
}