svn commit: r204777 - head/sys/mips/cavium

Juli Mallett jmallett at FreeBSD.org
Fri Mar 5 22:46:11 UTC 2010


Author: jmallett
Date: Fri Mar  5 22:46:11 2010
New Revision: 204777
URL: http://svn.freebsd.org/changeset/base/204777

Log:
  Properly detect a type of real board that claims to have a 0.0 revision.
  This fixes at least memory detection on that board.
  
  Sponsored by:	Packet Forensics

Modified:
  head/sys/mips/cavium/octeon_machdep.c

Modified: head/sys/mips/cavium/octeon_machdep.c
==============================================================================
--- head/sys/mips/cavium/octeon_machdep.c	Fri Mar  5 22:44:49 2010	(r204776)
+++ head/sys/mips/cavium/octeon_machdep.c	Fri Mar  5 22:46:11 2010	(r204777)
@@ -873,8 +873,9 @@ int octeon_chip_rev_major = 0, octeon_ch
 static octeon_boot_descriptor_t *app_desc_ptr;
 static cvmx_bootinfo_t *cvmx_desc_ptr;
 
-#define OCTEON_BOARD_TYPE_NONE 0
-#define OCTEON_BOARD_TYPE_SIM  1
+#define OCTEON_BOARD_TYPE_NONE 			0
+#define OCTEON_BOARD_TYPE_SIM  			1
+#define	OCTEON_BOARD_TYPE_CN3010_EVB_HS5	11
 
 #define OCTEON_CLOCK_MIN     (100 * 1000 * 1000)
 #define OCTEON_CLOCK_MAX     (800 * 1000 * 1000)
@@ -886,11 +887,23 @@ static cvmx_bootinfo_t *cvmx_desc_ptr;
 int
 octeon_board_real(void)
 {
-	if ((octeon_board_type == OCTEON_BOARD_TYPE_NONE) ||
-	    (octeon_board_type == OCTEON_BOARD_TYPE_SIM) ||
-	    !octeon_board_rev_major)
+	switch (octeon_board_type) {
+	case OCTEON_BOARD_TYPE_NONE:
+	case OCTEON_BOARD_TYPE_SIM:
 		return 0;
-	return 1;
+	case OCTEON_BOARD_TYPE_CN3010_EVB_HS5:
+		/*
+		 * XXX
+		 * The CAM-0100 identifies itself as type 11, revision 0.0,
+		 * despite its being rather real.  Disable the revision check
+		 * for type 11.
+		 */
+		return 1;
+	default:
+		if (octeon_board_rev_major == 0)
+			return 0;
+		return 1;
+	}
 }
 
 static void


More information about the svn-src-head mailing list