All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Langer <martin-langer@gmx.de>
To: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH] Fix for Freescale ppc cores: major revision detection
Date: Mon, 11 Feb 2008 21:29:33 +0100	[thread overview]
Message-ID: <20080211202933.GA3399@tuba> (raw)

On Mon, Feb 11, 2008 at 09:01:03AM -0600, Kumar Gala wrote:
> 
> On Feb 9, 2008, at 11:47 AM, Martin Langer wrote:
> 
> >Ppc cores by Freescale are using the configuration field instead of  
> >the
> >major revision field for their major revision number. Those field
> >definitions come from include/asm-powerpc/reg.h.
> >
> >Look at the pdf below and you will see that PVR_MAJ() does a wrong  
> >shift
> >for ppc cores by Freescale. This patch fixes it.
> >
> >http://www.freescale.com/files/archives/doc/support_info/PPCPVR.pdf
> 
> This doc doesn't encompass the e500/book-e cores that don't follow the  
> same pattern.
> 
> The code should probably be something like:
> 
> #ifdef CONFIG_FSL_BOOKE
> maj = PVR_MAJ(pvr);
> #else
> maj = (pvr >> 8) & 0xff;
> #endif

Thanks for the hint. Inspired by that I did the logic the other way 
round. So we have the same default cases as we had before and 
additionally it will fit for the cores mentioned in the doc.


--- arch/powerpc/kernel/setup-common.c.ORIGINAL	2008-02-08 22:22:56.000000000 +0100
+++ arch/powerpc/kernel/setup-common.c	2008-02-11 20:54:37.000000000 +0100
@@ -241,8 +241,21 @@
 	/* If we are a Freescale core do a simple check so
 	 * we dont have to keep adding cases in the future */
 	if (PVR_VER(pvr) & 0x8000) {
-		maj = PVR_MAJ(pvr);
-		min = PVR_MIN(pvr);
+		switch (PVR_VER(pvr)) {
+			case 0x8000:	/* 7441/7450/7451, Vger */
+			case 0x8001:	/* 7445/7455, Apollo 6 */
+			case 0x8002:	/* 7447/7457, Apollo 7 */
+			case 0x8003:	/* 7447A, Apollo 7 PM */
+			case 0x8004:	/* 7448, Apollo 8 */
+			case 0x800c:	/* 7410, Nitro */
+				maj = ((pvr >> 8) & 0xF);
+				min = PVR_MIN(pvr);
+				break;
+			default:	/* e500/book-e */
+				maj = PVR_MAJ(pvr);
+				min = PVR_MIN(pvr);
+				break;
+		}
 	} else {
 		switch (PVR_VER(pvr)) {
 			case 0x0020:	/* 403 family */

             reply	other threads:[~2008-02-11 20:29 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-11 20:29 Martin Langer [this message]
2008-02-26 10:32 ` [PATCH] Fix for Freescale ppc cores: major revision detection Paul Mackerras
2008-02-27 20:40   ` Martin Langer
  -- strict thread matches above, loose matches on Subject: below --
2008-02-09 17:47 Martin Langer
2008-02-11 15:01 ` Kumar Gala

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080211202933.GA3399@tuba \
    --to=martin-langer@gmx.de \
    --cc=linuxppc-dev@ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.