aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel
diff options
context:
space:
mode:
authorMartin Langer <martin-langer@gmx.de>2008-09-07 03:51:32 -0400
committerPaul Mackerras <paulus@samba.org>2008-09-15 14:08:48 -0400
commita501d8f30e4fcca563e4ee462be00f96e51181d5 (patch)
tree5cb283736191251b3fd984a000b27a18884550ef /arch/powerpc/kernel
parent0b26425ce101a7c1b1ad4ec353d4e860223d9fc4 (diff)
powerpc: Fix major revision number for Freescale cores
Some 74xx cores by Freescale are using the configuration field instead of the major revision field for their revision number. This corrects the wrong behaviour for those ppc cores including my one. There is a reference document at Freecale. It describes the PVR register. This is based on that pdf. You can find the document at: http://www.freescale.com/files/archives/doc/support_info/PPCPVR.pdf Signed-off-by: Martin Langer <martin-langer@gmx.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r--arch/powerpc/kernel/setup-common.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 9cc5a52711e5..5ec56ff03e86 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -254,8 +254,21 @@ static int show_cpuinfo(struct seq_file *m, void *v)
254 /* If we are a Freescale core do a simple check so 254 /* If we are a Freescale core do a simple check so
255 * we dont have to keep adding cases in the future */ 255 * we dont have to keep adding cases in the future */
256 if (PVR_VER(pvr) & 0x8000) { 256 if (PVR_VER(pvr) & 0x8000) {
257 maj = PVR_MAJ(pvr); 257 switch (PVR_VER(pvr)) {
258 min = PVR_MIN(pvr); 258 case 0x8000: /* 7441/7450/7451, Voyager */
259 case 0x8001: /* 7445/7455, Apollo 6 */
260 case 0x8002: /* 7447/7457, Apollo 7 */
261 case 0x8003: /* 7447A, Apollo 7 PM */
262 case 0x8004: /* 7448, Apollo 8 */
263 case 0x800c: /* 7410, Nitro */
264 maj = ((pvr >> 8) & 0xF);
265 min = PVR_MIN(pvr);
266 break;
267 default: /* e500/book-e */
268 maj = PVR_MAJ(pvr);
269 min = PVR_MIN(pvr);
270 break;
271 }
259 } else { 272 } else {
260 switch (PVR_VER(pvr)) { 273 switch (PVR_VER(pvr)) {
261 case 0x0020: /* 403 family */ 274 case 0x0020: /* 403 family */