svn commit: r207266 - user/jmallett/octeon/sys/mips/cavium

Juli Mallett jmallett at FreeBSD.org
Tue Apr 27 06:42:29 UTC 2010


Author: jmallett
Date: Tue Apr 27 06:42:29 2010
New Revision: 207266
URL: http://svn.freebsd.org/changeset/base/207266

Log:
  Print features this board supports at startup.

Modified:
  user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c

Modified: user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c
==============================================================================
--- user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c	Tue Apr 27 06:14:30 2010	(r207265)
+++ user/jmallett/octeon/sys/mips/cavium/octeon_machdep.c	Tue Apr 27 06:42:29 2010	(r207266)
@@ -80,9 +80,31 @@ __FBSDID("$FreeBSD$");
 #define MAX_APP_DESC_ADDR     0xafffffff
 #endif
 
+struct octeon_feature_description {
+	octeon_feature_t ofd_feature;
+	const char *ofd_string;
+};
+
 extern int	*edata;
 extern int	*end;
 
+static struct octeon_feature_description octeon_feature_descriptions[] = {
+	{ OCTEON_FEATURE_SAAD,			"SAAD" },
+	{ OCTEON_FEATURE_ZIP,			"ZIP" },
+	{ OCTEON_FEATURE_CRYPTO,		"CRYPTO" },
+	{ OCTEON_FEATURE_PCIE,			"PCIE" },
+	{ OCTEON_FEATURE_KEY_MEMORY,		"KEY_MEMORY" },
+	{ OCTEON_FEATURE_LED_CONTROLLER,	"LED_CONTROLLER" },
+	{ OCTEON_FEATURE_TRA,			"TRA" },
+	{ OCTEON_FEATURE_MGMT_PORT,		"MGMT_PORT" },
+	{ OCTEON_FEATURE_RAID,			"RAID" },
+	{ OCTEON_FEATURE_USB,			"USB" },
+	{ OCTEON_FEATURE_NO_WPTR,		"NO_WPTR" },
+	{ OCTEON_FEATURE_DFA,			"DFA" },
+	{ OCTEON_FEATURE_MDIO_CLAUSE_45,	"MDIO_CLAUSE_45" },
+	{ 0,					NULL }
+};
+
 uint64_t ciu_get_en_reg_addr_new(int corenum, int intx, int enx, int ciu_ip);
 void ciu_dump_interrutps_enabled(int core_num, int intx, int enx, int ciu_ip);
 
@@ -268,6 +290,7 @@ void
 platform_start(__register_t a0, __register_t a1, __register_t a2 __unused,
     __register_t a3)
 {
+	struct octeon_feature_description *ofd;
 	uint64_t platform_counter_freq;
 
 	/* Initialize pcpu stuff */
@@ -308,6 +331,13 @@ platform_start(__register_t a0, __regist
 	 */
 	oct_write64(CVMX_CIU_MBOX_CLRX(0), 0xffffffff);
 #endif
+
+	printf("Available Octeon features:");
+	for (ofd = octeon_feature_descriptions; ofd->ofd_string != NULL; ofd++) {
+		if (octeon_has_feature(ofd->ofd_feature))
+			printf(" %s", ofd->ofd_string);
+	}
+	printf("\n");
 }
 
 /* impSTART: This stuff should move back into the Cavium SDK */


More information about the svn-src-user mailing list