PERFORCE change 129183 for review

John Birrell jb at FreeBSD.org
Sat Nov 17 15:34:06 PST 2007


http://perforce.freebsd.org/chv.cgi?CH=129183

Change 129183 by jb at jb_freebsd1 on 2007/11/17 23:33:27

	IF6

Affected files ...

.. //depot/projects/dtrace6/src/contrib/openbsm/etc/audit_control#3 integrate
.. //depot/projects/dtrace6/src/gnu/usr.bin/gdb/kgdb/kgdb.1#2 integrate
.. //depot/projects/dtrace6/src/gnu/usr.bin/gdb/kgdb/kgdb.h#2 integrate
.. //depot/projects/dtrace6/src/gnu/usr.bin/gdb/kgdb/kthr.c#2 integrate
.. //depot/projects/dtrace6/src/gnu/usr.bin/gdb/kgdb/trgt.c#2 integrate
.. //depot/projects/dtrace6/src/gnu/usr.bin/gdb/kgdb/trgt_arm.c#2 integrate
.. //depot/projects/dtrace6/src/sys/arm/xscale/ixp425/files.ixp425#2 integrate
.. //depot/projects/dtrace6/src/sys/arm/xscale/ixp425/if_npe.c#2 integrate
.. //depot/projects/dtrace6/src/sys/arm/xscale/ixp425/ixp425_npe.c#2 integrate
.. //depot/projects/dtrace6/src/sys/arm/xscale/ixp425/ixp425_npevar.h#2 integrate
.. //depot/projects/dtrace6/src/sys/contrib/dev/npe/IxNpeMicrocode.dat.uu#1 branch
.. //depot/projects/dtrace6/src/sys/contrib/dev/npe/LICENSE#1 branch

Differences ...

==== //depot/projects/dtrace6/src/contrib/openbsm/etc/audit_control#3 (text) ====

@@ -1,5 +1,6 @@
 #
 # $P4: //depot/projects/trustedbsd/openbsm/etc/audit_control#5 $
+# $FreeBSD: src/contrib/openbsm/etc/audit_control,v 1.2.2.4 2007/11/17 22:14:29 rwatson Exp $
 #
 dir:/var/audit
 flags:lo

==== //depot/projects/dtrace6/src/gnu/usr.bin/gdb/kgdb/kgdb.1#2 (text+ko) ====

@@ -22,8 +22,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/gnu/usr.bin/gdb/kgdb/kgdb.1,v 1.7.2.1 2005/09/15 05:32:10 marcel Exp $
-.Dd March 2, 2005
+.\" $FreeBSD: src/gnu/usr.bin/gdb/kgdb/kgdb.1,v 1.7.2.3 2007/11/17 16:51:58 jhb Exp $
+.\"
+.Dd October 11, 2006
 .Os
 .Dt KGDB 1
 .Sh NAME
@@ -34,6 +35,7 @@
 .Op Fl a | Fl f | Fl fullname
 .Op Fl q | Fl quiet
 .Op Fl v
+.Op Fl w
 .Op Fl d Ar crashdir
 .Op Fl c Ar core | Fl n Ar dumpnr | Fl r Ar device
 .Op Ar kernel Op Ar core
@@ -67,6 +69,13 @@
 form is supported for compatibility as well.
 .It Fl v
 Increase verbosity.
+.It Fl w
+Opens kmem-based targets in read-write mode.
+(This is identical to what
+.Fl -wcore
+used to do in previous
+gdb versions for
+.Fx . )
 .It Fl d Ar crashdir
 Use
 .Ar crashdir

==== //depot/projects/dtrace6/src/gnu/usr.bin/gdb/kgdb/kgdb.h#2 (text+ko) ====

@@ -23,7 +23,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/gnu/usr.bin/gdb/kgdb/kgdb.h,v 1.2.2.1 2005/09/15 05:32:10 marcel Exp $
+ * $FreeBSD: src/gnu/usr.bin/gdb/kgdb/kgdb.h,v 1.2.2.2 2007/11/17 16:45:38 jhb Exp $
  */
 
 #ifndef _KGDB_H_
@@ -62,4 +62,6 @@
 struct kthr *kgdb_thr_select(struct kthr *);
 char        *kgdb_thr_extra_thread_info(int);
 
+uintptr_t kgdb_lookup(const char *sym);
+
 #endif /* _KGDB_H_ */

==== //depot/projects/dtrace6/src/gnu/usr.bin/gdb/kgdb/kthr.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/gnu/usr.bin/gdb/kgdb/kthr.c,v 1.2.2.3 2007/02/02 13:48:19 rodrigc Exp $");
+__FBSDID("$FreeBSD: src/gnu/usr.bin/gdb/kgdb/kthr.c,v 1.2.2.5 2007/11/17 16:50:20 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -52,8 +52,8 @@
 static struct kthr *first;
 struct kthr *curkthr;
 
-static uintptr_t
-lookup(const char *sym)
+uintptr_t
+kgdb_lookup(const char *sym)
 {
 	struct nlist nl[2];
 
@@ -80,29 +80,29 @@
 	struct kthr *kt;
 	uintptr_t addr, paddr;
 
-	addr = lookup("_allproc");
+	addr = kgdb_lookup("_allproc");
 	if (addr == 0)
 		return (NULL);
 	kvm_read(kvm, addr, &paddr, sizeof(paddr));
 
-	dumppcb = lookup("_dumppcb");
+	dumppcb = kgdb_lookup("_dumppcb");
 	if (dumppcb == 0)
 		return (NULL);
 
-	addr = lookup("_dumptid");
+	addr = kgdb_lookup("_dumptid");
 	if (addr != 0)
 		kvm_read(kvm, addr, &dumptid, sizeof(dumptid));
 	else
 		dumptid = -1;
 
-	addr =  lookup("_stopped_cpus");
+	addr =  kgdb_lookup("_stopped_cpus");
 	if (addr != 0)
 		kvm_read(kvm, addr, &stopped_cpus, sizeof(stopped_cpus));
 	else
 		stopped_cpus = 0;
 
-	stoppcbs = lookup("_stoppcbs");
-	
+	stoppcbs = kgdb_lookup("_stoppcbs");
+
 	while (paddr != 0) {
 		if (kvm_read(kvm, paddr, &p, sizeof(p)) != sizeof(p)) {
 			warnx("kvm_read: %s", kvm_geterr(kvm));
@@ -123,7 +123,7 @@
 			else if (td.td_state == TDS_RUNNING && ((1 << td.td_oncpu) & stopped_cpus)
 				&& stoppcbs != 0)
 				kt->pcb = (uintptr_t) stoppcbs + sizeof(struct pcb) * td.td_oncpu;
-			else 
+			else
 				kt->pcb = (uintptr_t)td.td_pcb;
 			kt->kstack = td.td_kstack;
 			kt->tid = td.td_tid;

==== //depot/projects/dtrace6/src/gnu/usr.bin/gdb/kgdb/trgt.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/gnu/usr.bin/gdb/kgdb/trgt.c,v 1.2.2.2 2005/09/15 05:32:10 marcel Exp $");
+__FBSDID("$FreeBSD: src/gnu/usr.bin/gdb/kgdb/trgt.c,v 1.2.2.3 2007/11/17 16:50:20 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -53,9 +53,8 @@
 {
 	static CORE_ADDR kernbase;
 	struct minimal_symbol *sym;
- 
-	if (kernbase == 0)
-	{
+
+	if (kernbase == 0) {
 		sym = lookup_minimal_symbol ("kernbase", NULL, NULL);
 		if (sym == NULL) {
 			kernbase = KERNBASE;
@@ -205,9 +204,8 @@
 		ti = add_thread(ptid_build(kt->pid, 0, kt->tid));
 		kt = kgdb_thr_next(kt);
 	}
-	if (curkthr != NULL)
+	if (curkthr != 0)
 		inferior_ptid = ptid_build(curkthr->pid, 0, curkthr->tid);
-
 	add_com ("proc", class_obscure, kgdb_set_proc_cmd,
 	   "Set current process context");
 }

==== //depot/projects/dtrace6/src/gnu/usr.bin/gdb/kgdb/trgt_arm.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/gnu/usr.bin/gdb/kgdb/trgt_arm.c,v 1.2.2.1 2006/10/13 14:27:51 obrien Exp $");
+__FBSDID("$FreeBSD: src/gnu/usr.bin/gdb/kgdb/trgt_arm.c,v 1.2.2.2 2007/11/17 16:50:20 jhb Exp $");
 
 #include <sys/types.h>
 #ifndef CROSS_DEBUGGER
@@ -54,7 +54,7 @@
 	struct kthr *kt;
 	struct pcb pcb;
 	int i, reg;
-	
+
 	kt = kgdb_thr_lookup_tid(ptid_get_tid(inferior_ptid));
 	if (kt == NULL)
 		return;
@@ -63,7 +63,7 @@
 		memset(&pcb, 0, sizeof(pcb));
 	}
 	for (i = ARM_A1_REGNUM + 8; i <= ARM_SP_REGNUM; i++) {
-		supply_register(i, (char *)&pcb.un_32.pcb32_r8 + 
+		supply_register(i, (char *)&pcb.un_32.pcb32_r8 +
 		    (i - (ARM_A1_REGNUM + 8 )) * 4);
 	}
 	if (pcb.un_32.pcb32_sp != 0) {
@@ -174,7 +174,7 @@
 		return;
 
 	cache = kgdb_trgt_frame_cache(next_frame, this_cache);
-			
+
 	if (is_undef && (regnum == ARM_SP_REGNUM || regnum == ARM_PC_REGNUM)) {
 		*addrp = cache->sp + offsetof(struct trapframe, tf_spsr);
 		target_read_memory(*addrp, valuep, regsz);

==== //depot/projects/dtrace6/src/sys/arm/xscale/ixp425/files.ixp425#2 (text+ko) ====

@@ -1,4 +1,4 @@
-#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.2.2.1 2007/02/26 23:13:09 cognet Exp $
+#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.2.2.2 2007/11/17 18:24:46 cognet Exp $
 arm/arm/cpufunc_asm_xscale.S		standard
 arm/arm/irq_dispatch.S			standard
 arm/xscale/ixp425/ixp425.c		standard
@@ -16,12 +16,7 @@
 arm/xscale/ixp425/ixp425_a4x_io.S	optional	uart
 dev/uart/uart_dev_ns8250.c		optional	uart
 #
-# NPE-based Ethernet support (requires qmgr also).  Note the
-# firmware images must be downloaded from the Intel web site.
-# The URL seems to change frequently; try this as a starting
-# place:
-#
-# http://www.intel.com/design/network/products/npfamily/download_ixp400.htm
+# NPE-based Ethernet support (requires qmgr also).
 #
 arm/xscale/ixp425/if_npe.c		optional npe
 arm/xscale/ixp425/ixp425_npe.c		optional npe
@@ -41,7 +36,7 @@
 	clean		"IxNpeMicrocode.fwo"
 IxNpeMicrocode.dat			optional npe_fw			\
 	dependency	".PHONY"					\
-	compile-with	"if [ -e $S/arm/xscale/ixp425/IxNpeMicrocode.dat ]; then ln -sf $S/arm/xscale/ixp425/IxNpeMicrocode.dat .; else echo 'WARNING, no IxNpeMicrocode.dat file; you must obtain this from the Intel web site'; false; fi" \
+	compile-with	"uudecode < $S/contrib/dev/npe/IxNpeMicrocode.dat.uu" \
 	no-obj no-implicit-rule						\
 	clean		"IxNpeMicrocode.dat"
 #

==== //depot/projects/dtrace6/src/sys/arm/xscale/ixp425/if_npe.c#2 (text+ko) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.5.2.1 2007/02/26 23:13:09 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.5.2.2 2007/11/17 18:22:57 cognet Exp $");
 
 /*
  * Intel XScale NPE Ethernet driver.
@@ -546,11 +546,27 @@
 	struct npe_softc * sc = device_get_softc(dev);
 	int unit = device_get_unit(dev);
 	int error, i;
+	uint32_t imageid;
 
-	/* load NPE firmware and start it running */
-	error = ixpnpe_init(sc->sc_npe, "npe_fw", npeconfig[unit].imageid);
-	if (error != 0)
-		return error;
+	/*
+	 * Load NPE firmware and start it running.  We assume
+	 * that minor version bumps remain compatible so probe
+	 * the firmware image starting with the expected version
+	 * and then bump the minor version up to the max.
+	 */
+	imageid = npeconfig[unit].imageid;
+	for (;;) {
+		error = ixpnpe_init(sc->sc_npe, "npe_fw", imageid);
+		if (error == 0)
+			break;
+		/* ESRCH is returned when the requested image is not present */
+		if (error != ESRCH)
+			return error;
+		/* bump the minor version up to the max possible */
+		if (NPEIMAGE_MINOR(imageid) == 0xff)
+			return error;
+		imageid++;
+	}
 
 	if (bus_space_map(sc->sc_iot, npeconfig[unit].regbase,
 	    npeconfig[unit].regsize, 0, &sc->sc_ioh)) {

==== //depot/projects/dtrace6/src/sys/arm/xscale/ixp425/ixp425_npe.c#2 (text+ko) ====

@@ -57,7 +57,7 @@
  * SUCH DAMAGE.
 */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npe.c,v 1.3.2.1 2007/02/26 23:13:09 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npe.c,v 1.3.2.2 2007/11/17 18:22:57 cognet Exp $");
 
 /*
  * Intel XScale Network Processing Engine (NPE) support.
@@ -407,14 +407,14 @@
         }
         /* 2 consecutive NPE_IMAGE_MARKER's indicates end of library */
         if (image->id == NPE_IMAGE_MARKER) {
-	    device_printf(sc->sc_dev,
+	    DPRINTF(sc->sc_dev,
 		"imageId 0x%08x not found in image library header\n", imageId);
             /* reached end of library, image not found */
-            return EIO;
+            return ESRCH;
         }
         offset += image->size;
     }
-    return EIO;
+    return ESRCH;
 }
 
 int

==== //depot/projects/dtrace6/src/sys/arm/xscale/ixp425/ixp425_npevar.h#2 (text+ko) ====

@@ -21,7 +21,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npevar.h,v 1.1.2.1 2007/02/26 23:13:09 cognet Exp $
+ * $FreeBSD: src/sys/arm/xscale/ixp425/ixp425_npevar.h,v 1.1.2.2 2007/11/17 18:22:57 cognet Exp $
  */
 
 #ifndef _IXP425_NPEVAR_H_
@@ -32,7 +32,17 @@
  *
  * Firmware Id's for current firmware image.  These are typed by
  * NPE ID and the feature set.  Not all features are available
- * on all NPE's.
+ * on all NPE's.  The Image ID has the following structure:
+ *
+ * Field		[Bit Location]
+ * -----------------------------------
+ * Device ID		[28..31]
+ * NPE ID		[24..27]
+ * NPE Functionality ID	[16..23]
+ * Major Release Number	[8..15]
+ * Minor Release Number	[0..7]
+ *
+ * The following "feature sets" are known to exist:
  *
  * HSS-0: supports 32 channelized and 4 packetized.
  * HSS-0 + ATM + SPHY:
@@ -56,6 +66,15 @@
  * ETH+VLAN+HDR: Ethernet Rx/Tx which includes:
  *    SPANNING_TREE, FIREWALL, VLAN_QOS, HEADER_CONVERSION
  */
+#define NPEIMAGE_DEVID(id)	(((id) >> 28) & 0xf)
+#define NPEIMAGE_NPEID(id)	(((id) >> 24) & 0xf)
+#define NPEIMAGE_FUNCID(id) 	(((id) >> 16) & 0xff)
+#define NPEIMAGE_MAJOR(id)	(((id) >> 8)  & 0xff)
+#define NPEIMAGE_MINOR(id)	(((id) >> 0)  & 0xff)
+#define	NPEIMAGE_MAKEID(dev, npe, func, maj, min) \
+	((((dev) & 0xf) << 28) | (((npe) & 0xf) << 24) | \
+	(((func) & 0xff) << 16) (((maj) & 0xff) << 8) | (((min) & 0xff) << 0))
+
 /* XXX not right, revise */
 /* NPE A Firmware Image Id's */
 #define	NPEFW_A_HSS0		0x00010000 /* HSS-0: 32 chan+4 packet */


More information about the p4-projects mailing list