[Zrouter-src-freebsd] ZRouter.org: push to FreeBSD HEAD tree

zrouter-src-freebsd at zrouter.org zrouter-src-freebsd at zrouter.org
Tue Mar 20 10:05:32 UTC 2012


details:   http://zrouter.org/hg/FreeBSD/head//rev/6ff2455bd9d2
changeset: 435:6ff2455bd9d2
user:      Aleksandr Rybalko <ray at ddteam.net>
date:      Tue Mar 20 00:54:10 2012 +0200
description:
Save cpu/board names.

diffstat:

 head/sys/dev/siba/siba.c |  41 +++++++++++++++++++++++++++++------------
 1 files changed, 29 insertions(+), 12 deletions(-)

diffs (79 lines):

diff -r a12561d9275a -r 6ff2455bd9d2 head/sys/dev/siba/siba.c
--- a/head/sys/dev/siba/siba.c	Tue Mar 20 00:52:12 2012 +0200
+++ b/head/sys/dev/siba/siba.c	Tue Mar 20 00:54:10 2012 +0200
@@ -35,6 +35,7 @@
 #include <sys/rman.h>
 #include <sys/malloc.h>
 #include <sys/interrupt.h>
+#include <sys/sysctl.h>
 
 #include <machine/bus.h>
 
@@ -121,11 +122,8 @@
 		    uint16_t, device_t, struct siba_devinfo *);
 
 extern int 	badaddr(char *addr, int len);
-
-
-
-
-
+extern char cpu_model[80];
+extern char cpu_board[80];
 
 /*
  * Earlier ChipCommon revisions have hardcoded number of cores
@@ -217,8 +215,9 @@
 siba_probe(device_t dev)
 {
 	struct siba_softc *sc = device_get_softc(dev);
-	uint16_t devid, ccid;
-	uint32_t idlo, idhi;
+	uint16_t vid, devid, ccid, cc_id, cc_rev;
+	uint32_t idlo, idhi, ccidreg;
+	char soc_name[20];
 	int idx, rid;
 
 	sc->sc_dev = dev;
@@ -276,10 +275,6 @@
 	 * Determine how many cores are present on this siba bus, so
 	 * that we may map them all.
 	 */
-	uint32_t ccidreg;
-	uint16_t cc_id;
-	uint16_t cc_rev;
-
 	ccidreg = siba_read_4(sc, 0, SIBA_CC_CCID);
 	cc_id = (ccidreg & SIBA_CC_IDMASK);
 	cc_rev = (ccidreg & SIBA_CC_REVMASK) >> SIBA_CC_REVSHIFT;
@@ -288,7 +283,29 @@
 		     ccidreg, cc_id, cc_rev);
 	}
 
-
+	if (strlen(cpu_model) == 0) {
+		vid = (siba_read_4(sc, 0, SIBA_CORE_IDHI) & SIBA_IDHIGH_VC) >>
+		    SIBA_IDHIGH_VC_SHIFT;
+		if (vid == SIBA_VID_BROADCOM) {
+			sprintf(soc_name,
+			    "Vendor: %04x Core: BCM%04x rev: %d",
+			    vid, cc_id, cc_rev);
+		} else {
+			sprintf(soc_name, "Vendor: %04x Core: %04x rev: %d",
+			    vid, cc_id, cc_rev);
+		}
+		(void)snprintf(cpu_model, sizeof(cpu_model)-1, "%s", soc_name);
+	}
+	/* Get board name */
+	if (strlen(cpu_board) == 0) {
+#ifdef	TARGET_BOARD_NAME
+		(void)snprintf(cpu_board, sizeof(cpu_board)-1, "%s",
+		    TARGET_BOARD_NAME);
+#else
+		(void)snprintf(cpu_board, sizeof(cpu_board)-1, "%s",
+		    kern_ident);
+#endif
+	}
 
 	sc->sc_ncores = siba_getncores(dev, cc_id);
 


More information about the Zrouter-src-freebsd mailing list