Author: jchandra
Date: Mon Jul  9 10:24:45 2012
New Revision: 238290
URL: http://svn.freebsd.org/changeset/base/238290

Log:
  Identify Netlogic XLP 8xx B1 chip revisions
  
  Add functions to check for 8xx B0 and 3xx Ax revisions which will
  be used in network block initialization.

Modified:
  head/sys/mips/nlm/board.c
  head/sys/mips/nlm/xlp.h

Modified: head/sys/mips/nlm/board.c
==============================================================================
--- head/sys/mips/nlm/board.c   Mon Jul  9 10:17:06 2012        (r238289)
+++ head/sys/mips/nlm/board.c   Mon Jul  9 10:24:45 2012        (r238290)
@@ -362,6 +362,8 @@ nlm_print_processor_info(void)
                revstr = "A2"; break;
        case 3:
                revstr = "B0"; break;
+       case 4:
+               revstr = "B1"; break;
        default:
                revstr = "??"; break;
        }

Modified: head/sys/mips/nlm/xlp.h
==============================================================================
--- head/sys/mips/nlm/xlp.h     Mon Jul  9 10:17:06 2012        (r238289)
+++ head/sys/mips/nlm/xlp.h     Mon Jul  9 10:24:45 2012        (r238290)
@@ -57,6 +57,7 @@
 #define        XLP_REVISION_A1                         0x01
 #define        XLP_REVISION_A2                         0x02
 #define        XLP_REVISION_B0                         0x03
+#define        XLP_REVISION_B1                         0x04
 
 #ifndef LOCORE
 /*
@@ -87,6 +88,16 @@ static __inline int nlm_is_xlp3xx(void)
        return (nlm_processor_id() == CHIP_PROCESSOR_ID_XLP_3XX);
 }
 
+static __inline int nlm_is_xlp3xx_ax(void)
+{
+       uint32_t procid = mips_rd_prid();
+       int prid = (procid >> 8) & 0xff;
+       int rev = procid & 0xff;
+
+       return (prid == CHIP_PROCESSOR_ID_XLP_3XX &&
+               rev < XLP_REVISION_B0);
+}
+
 static __inline int nlm_is_xlp4xx(void)
 {
        int prid = nlm_processor_id();
@@ -116,5 +127,17 @@ static __inline int nlm_is_xlp8xx_ax(voi
            (rev < XLP_REVISION_B0));
 }
 
+static __inline int nlm_is_xlp8xx_b0(void)
+{
+       uint32_t procid = mips_rd_prid();
+       int prid = (procid >> 8) & 0xff;
+       int rev = procid & 0xff;
+
+       return ((prid == CHIP_PROCESSOR_ID_XLP_8XX ||
+           prid == CHIP_PROCESSOR_ID_XLP_432 ||
+           prid == CHIP_PROCESSOR_ID_XLP_416) &&
+               rev == XLP_REVISION_B0);
+}
+
 #endif /* LOCORE */
 #endif /* __NLM_XLP_H__ */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to