Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Apr 2002 10:41:04 -0700 (PDT)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 9836 for review
Message-ID:  <200204161741.g3GHf4w93651@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://people.freebsd.org/~peter/p4db/chv.cgi?CH=9836

Change 9836 by jhb@jhb_laptop on 2002/04/16 10:41:01

	IFC.

Affected files ...

... //depot/projects/smpng/sys/alpha/alpha/pal.s#2 integrate
... //depot/projects/smpng/sys/alpha/alpha/pmap.c#29 integrate
... //depot/projects/smpng/sys/alpha/alpha/prom_disp.s#2 integrate
... //depot/projects/smpng/sys/alpha/alpha/trap.c#30 integrate
... //depot/projects/smpng/sys/boot/pc98/kgzldr/Makefile#2 integrate
... //depot/projects/smpng/sys/coda/coda_venus.c#4 integrate
... //depot/projects/smpng/sys/compat/svr4/svr4_misc.c#15 integrate
... //depot/projects/smpng/sys/conf/NOTES#6 integrate
... //depot/projects/smpng/sys/conf/files#35 integrate
... //depot/projects/smpng/sys/conf/files.alpha#13 integrate
... //depot/projects/smpng/sys/conf/files.powerpc#6 integrate
... //depot/projects/smpng/sys/conf/majors#9 integrate
... //depot/projects/smpng/sys/conf/options#20 integrate
... //depot/projects/smpng/sys/conf/options.ia64#7 integrate
... //depot/projects/smpng/sys/dev/ata/ata-dma.c#20 integrate
... //depot/projects/smpng/sys/dev/ata/ata-pci.c#20 integrate
... //depot/projects/smpng/sys/dev/hfa/fore_load.c#3 integrate
... //depot/projects/smpng/sys/dev/hfa/fore_slave.h#2 integrate
... //depot/projects/smpng/sys/dev/ofw/ofw_disk.c#1 branch
... //depot/projects/smpng/sys/dev/sound/pci/ich.c#13 integrate
... //depot/projects/smpng/sys/dev/sound/pci/maestro.c#5 integrate
... //depot/projects/smpng/sys/dev/wi/if_wi.c#33 integrate
... //depot/projects/smpng/sys/dev/wi/if_wi_pci.c#5 integrate
... //depot/projects/smpng/sys/dev/wi/if_wivar.h#6 integrate
... //depot/projects/smpng/sys/dev/wi/wi_hostap.c#3 integrate
... //depot/projects/smpng/sys/dev/wi/wi_hostap.h#2 integrate
... //depot/projects/smpng/sys/fs/specfs/spec_vnops.c#13 integrate
... //depot/projects/smpng/sys/fs/udf/ecma167-udf.h#1 branch
... //depot/projects/smpng/sys/fs/udf/osta.c#1 branch
... //depot/projects/smpng/sys/fs/udf/osta.h#1 branch
... //depot/projects/smpng/sys/fs/udf/udf.h#1 branch
... //depot/projects/smpng/sys/fs/udf/udf_mount.h#1 branch
... //depot/projects/smpng/sys/fs/udf/udf_vfsops.c#1 branch
... //depot/projects/smpng/sys/fs/udf/udf_vnops.c#1 branch
... //depot/projects/smpng/sys/i386/i386/i686_mem.c#2 integrate
... //depot/projects/smpng/sys/i386/i386/pmap.c#20 integrate
... //depot/projects/smpng/sys/ia64/ia64/ia64dump.c#4 integrate
... //depot/projects/smpng/sys/ia64/ia64/machdep.c#36 integrate
... //depot/projects/smpng/sys/ia64/ia64/pmap.c#27 integrate
... //depot/projects/smpng/sys/ia64/ia64/trap.c#29 integrate
... //depot/projects/smpng/sys/kern/init_sysent.c#12 integrate
... //depot/projects/smpng/sys/kern/kern_clock.c#16 integrate
... //depot/projects/smpng/sys/kern/kern_descrip.c#24 integrate
... //depot/projects/smpng/sys/kern/kern_exit.c#33 integrate
... //depot/projects/smpng/sys/kern/kern_fork.c#38 integrate
... //depot/projects/smpng/sys/kern/kern_ktrace.c#22 integrate
... //depot/projects/smpng/sys/kern/kern_malloc.c#9 integrate
... //depot/projects/smpng/sys/kern/kern_ntptime.c#8 integrate
... //depot/projects/smpng/sys/kern/kern_proc.c#27 integrate
... //depot/projects/smpng/sys/kern/kern_prot.c#60 integrate
... //depot/projects/smpng/sys/kern/kern_resource.c#23 integrate
... //depot/projects/smpng/sys/kern/kern_sig.c#33 integrate
... //depot/projects/smpng/sys/kern/kern_tc.c#8 integrate
... //depot/projects/smpng/sys/kern/kern_time.c#14 integrate
... //depot/projects/smpng/sys/kern/subr_param.c#9 integrate
... //depot/projects/smpng/sys/kern/subr_witness.c#44 integrate
... //depot/projects/smpng/sys/kern/sys_process.c#15 integrate
... //depot/projects/smpng/sys/kern/syscalls.c#12 integrate
... //depot/projects/smpng/sys/kern/syscalls.master#11 integrate
... //depot/projects/smpng/sys/kern/tty.c#19 integrate
... //depot/projects/smpng/sys/kern/tty_pty.c#16 integrate
... //depot/projects/smpng/sys/kern/vfs_aio.c#21 integrate
... //depot/projects/smpng/sys/kern/vfs_vnops.c#24 integrate
... //depot/projects/smpng/sys/modules/Makefile#25 integrate
... //depot/projects/smpng/sys/modules/udf/Makefile#1 branch
... //depot/projects/smpng/sys/net/if_arcsubr.c#4 integrate
... //depot/projects/smpng/sys/netgraph/ng_pptpgre.c#3 integrate
... //depot/projects/smpng/sys/pci/agp_amd.c#4 integrate
... //depot/projects/smpng/sys/powerpc/conf/GENERIC#5 integrate
... //depot/projects/smpng/sys/powerpc/include/cpu.h#9 integrate
... //depot/projects/smpng/sys/powerpc/include/cpufunc.h#12 integrate
... //depot/projects/smpng/sys/powerpc/include/nexusvar.h#1 branch
... //depot/projects/smpng/sys/powerpc/powerpc/nexus.c#1 branch
... //depot/projects/smpng/sys/powerpc/powerpc/pmap.c#15 integrate
... //depot/projects/smpng/sys/sparc64/conf/GENERIC#11 integrate
... //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#21 integrate
... //depot/projects/smpng/sys/sys/kernel.h#13 integrate
... //depot/projects/smpng/sys/sys/malloc.h#7 integrate
... //depot/projects/smpng/sys/sys/memrange.h#2 integrate
... //depot/projects/smpng/sys/sys/proc.h#45 integrate
... //depot/projects/smpng/sys/sys/syscall.h#12 integrate
... //depot/projects/smpng/sys/sys/syscall.mk#12 integrate
... //depot/projects/smpng/sys/sys/sysproto.h#14 integrate
... //depot/projects/smpng/sys/sys/time.h#5 integrate
... //depot/projects/smpng/sys/sys/vnode.h#15 integrate
... //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#11 integrate
... //depot/projects/smpng/sys/vm/pmap.h#6 integrate
... //depot/projects/smpng/sys/vm/uma_core.c#10 integrate
... //depot/projects/smpng/sys/vm/vm_map.c#10 integrate
... //depot/projects/smpng/sys/vm/vm_page.c#14 integrate
... //depot/projects/smpng/sys/vm/vm_zeroidle.c#6 integrate

Differences ...

==== //depot/projects/smpng/sys/alpha/alpha/pal.s#2 (text+ko) ====

@@ -23,8 +23,6 @@
  *
  * any improvements or extensions that they make and grant Carnegie the
  * rights to redistribute these changes.
- *
- * $FreeBSD: src/sys/alpha/alpha/pal.s,v 1.5 2001/05/28 09:52:20 obrien Exp $
  */
 
 /*
@@ -42,8 +40,8 @@
 #include <machine/asm.h>
 
 __KERNEL_RCSID(1, "$NetBSD: pal.s,v 1.12 1998/02/27 03:44:53 thorpej Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/pal.s,v 1.8 2002/04/15 23:28:10 obrien Exp $");
 
-inc2:	.stabs	__FILE__,132,0,0,inc2
 	.text
 	.loc	1 __LINE__
 
@@ -370,5 +368,3 @@
 	call_pal PAL_OSF1_wrperfmon
 	RET
 	END(alpha_pal_wrperfmon)
-
-	

==== //depot/projects/smpng/sys/alpha/alpha/pmap.c#29 (text+ko) ====

@@ -43,7 +43,7 @@
  *	from:	@(#)pmap.c	7.7 (Berkeley)	5/12/91
  *	from:	i386 Id: pmap.c,v 1.193 1998/04/19 15:22:48 bde Exp
  *		with some ideas from NetBSD's alpha pmap
- * $FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.89 2002/04/04 21:03:13 jhb Exp $
+ * $FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.91 2002/04/15 16:07:52 peter Exp $
  */
 
 /*
@@ -1731,9 +1731,9 @@
 
 			nklev2++;
 			vm_page_wire(nkpg);
+			pmap_zero_page(nkpg);
+
 			pa = VM_PAGE_TO_PHYS(nkpg);
-			pmap_zero_page(pa);
-
 			newlev1 = pmap_phys_to_pte(pa)
 				| PG_V | PG_ASM | PG_KRE | PG_KWE;
 
@@ -1765,8 +1765,8 @@
 		nklev3++;
 
 		vm_page_wire(nkpg);
+		pmap_zero_page(nkpg);
 		pa = VM_PAGE_TO_PHYS(nkpg);
-		pmap_zero_page(pa);
 		newlev2 = pmap_phys_to_pte(pa) | PG_V | PG_ASM | PG_KRE | PG_KWE;
 		*pte = newlev2;
 
@@ -2709,9 +2709,9 @@
  */
 
 void
-pmap_zero_page(vm_offset_t pa)
+pmap_zero_page(vm_page_t m)
 {
-	vm_offset_t va = ALPHA_PHYS_TO_K0SEG(pa);
+	vm_offset_t va = ALPHA_PHYS_TO_K0SEG(VM_PAGE_TO_PHYS(m));
 	bzero((caddr_t) va, PAGE_SIZE);
 }
 
@@ -2725,9 +2725,9 @@
  */
 
 void
-pmap_zero_page_area(vm_offset_t pa, int off, int size)
+pmap_zero_page_area(vm_page_t m, int off, int size)
 {
-	vm_offset_t va = ALPHA_PHYS_TO_K0SEG(pa);
+	vm_offset_t va = ALPHA_PHYS_TO_K0SEG(VM_PAGE_TO_PHYS(m));
 	bzero((char *)(caddr_t)va + off, size);
 }
 
@@ -2738,10 +2738,10 @@
  *	time.
  */
 void
-pmap_copy_page(vm_offset_t src, vm_offset_t dst)
+pmap_copy_page(vm_page_t msrc, vm_page_t mdst)
 {
-	src = ALPHA_PHYS_TO_K0SEG(src);
-	dst = ALPHA_PHYS_TO_K0SEG(dst);
+	vm_offset_t src = ALPHA_PHYS_TO_K0SEG(VM_PAGE_TO_PHYS(msrc));
+	vm_offset_t dst = ALPHA_PHYS_TO_K0SEG(VM_PAGE_TO_PHYS(mdst));
 	bcopy((caddr_t) src, (caddr_t) dst, PAGE_SIZE);
 }
 

==== //depot/projects/smpng/sys/alpha/alpha/prom_disp.s#2 (text+ko) ====

@@ -23,14 +23,13 @@
  *
  * any improvements or extensions that they make and grant Carnegie the
  * rights to redistribute these changes.
- *
- * $FreeBSD: src/sys/alpha/alpha/prom_disp.s,v 1.4 2001/05/28 09:52:20 obrien Exp $
  */
 
 #ifndef _LOCORE
 #include <machine/asm.h>
 #else
 __KERNEL_RCSID(2, "$NetBSD: prom_disp.s,v 1.8 1997/11/03 04:22:03 ross Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/prom_disp.s,v 1.5 2002/04/15 21:44:19 obrien Exp $");
 #endif
 
 	.globl	prom_dispatch_v
@@ -39,7 +38,6 @@
 	.text
 	.align	4
 
-inc3:	.stabs	__FILE__,132,0,0,inc3
 	.text 
 	.loc	1 __LINE__
 /*

==== //depot/projects/smpng/sys/alpha/alpha/trap.c#30 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/alpha/alpha/trap.c,v 1.90 2002/03/29 18:55:07 alc Exp $ */
+/* $FreeBSD: src/sys/alpha/alpha/trap.c,v 1.91 2002/04/16 05:56:01 alc Exp $ */
 /* $NetBSD: trap.c,v 1.31 1998/03/26 02:21:46 thorpej Exp $ */
 
 /*
@@ -559,26 +559,6 @@
 				 */
 				rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL);
 			}
-				
-			/*
-			 * If this was a stack access we keep track of the
-			 * maximum accessed stack size.  Also, if vm_fault
-			 * gets a protection failure it is due to accessing
-			 * the stack region outside the current limit and
-			 * we need to reflect that as an access error.
-			 */
-			if (map != kernel_map &&
-			    (caddr_t)va >= vm->vm_maxsaddr &&
-			    (caddr_t)va < (caddr_t)USRSTACK) {
-				if (rv == KERN_SUCCESS) {
-					unsigned long nss, rp;
-					rp = round_page(USRSTACK - va);
-					nss = alpha_btop(rp);
-					if (nss > vm->vm_ssize)
-						vm->vm_ssize = nss;
-				} else if (rv == KERN_PROTECTION_FAILURE)
-					rv = KERN_INVALID_ADDRESS;
-			}
 			mtx_unlock(&Giant);
 			if (rv == KERN_SUCCESS)
 				goto out;

==== //depot/projects/smpng/sys/boot/pc98/kgzldr/Makefile#2 (text+ko) ====

@@ -1,7 +1,7 @@
-# $FreeBSD: src/sys/boot/pc98/kgzldr/Makefile,v 1.1 2002/01/18 09:00:38 nyan Exp $
+# $FreeBSD: src/sys/boot/pc98/kgzldr/Makefile,v 1.2 2002/04/15 13:44:00 nyan Exp $
 
-PROG=	kgzldr.o
 SRCS=	start.s boot.c inflate.c lib.c crt.s sio.s
+OBJS=	${SRCS:N*.h:R:S/$/.o/g}
 CFLAGS=	-fno-builtin
 .if ${OBJFORMAT} == aout
 CFLAGS+=-O2

==== //depot/projects/smpng/sys/coda/coda_venus.c#4 (text+ko) ====

@@ -27,7 +27,7 @@
  * Mellon the rights to redistribute these changes without encumbrance.
  * 
  * 	@(#) src/sys/cfs/coda_venus.c,v 1.1.1.1 1998/08/29 21:14:52 rvb Exp $
- * $FreeBSD: src/sys/coda/coda_venus.c,v 1.14 2002/02/23 22:55:47 tmm Exp $
+ * $FreeBSD: src/sys/coda/coda_venus.c,v 1.15 2002/04/16 17:11:30 jhb Exp $
  * 
  */
 

==== //depot/projects/smpng/sys/compat/svr4/svr4_misc.c#15 (text+ko) ====

@@ -25,7 +25,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/compat/svr4/svr4_misc.c,v 1.44 2002/04/01 21:30:30 jhb Exp $
+ * $FreeBSD: src/sys/compat/svr4/svr4_misc.c,v 1.45 2002/04/16 17:04:21 jhb Exp $
  */
 
 /*

==== //depot/projects/smpng/sys/conf/NOTES#6 (text+ko) ====

@@ -14,7 +14,7 @@
 # This file contains machine independent kernel configuration notes.  For
 # machine dependent notes, look in /sys/<arch>/conf/NOTES.
 #
-# $FreeBSD: src/sys/conf/NOTES,v 1.1020 2002/04/10 17:27:52 brian Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1022 2002/04/15 19:42:15 des Exp $
 #
 
 #
@@ -134,6 +134,28 @@
 options 	WITNESS_DDB
 options 	WITNESS_SKIPSPIN
 
+#
+# MUTEX_PROFILING - Profiling mutual exclusion locks (mutexes).  This
+# records four numbers for each acquisition point (identified by
+# source file name and line number): longest time held, total time held,
+# number of non-recursive acquisitions, and average time held. Measurements
+# are made and stored in nanoseconds (using nanotime(9)), but are presented
+# in microseconds, which should be sufficient for the locks which actually
+# want this (those that are held long and / or often).  The MUTEX_PROFILING
+# option has the following sysctl namespace for controlling and viewing its
+# operation:
+#
+#  debug.mutex.prof.enable - enable / disable profiling
+#  debug.mutex.prof.acquisitions - number of mutex acquisitions held
+#  debug.mutex.prof.records - number of acquisition points recorded
+#  debug.mutex.prof.maxrecords - max number of acquisition points
+#  debug.mutex.prof.rejected - number of rejections (due to full table)
+#  debug.mutex.prof.hashsize - hash size
+#  debug.mutex.prof.collisions - number of hash collisions
+#  debug.mutex.prof.stats - profiling statistics
+#
+options		MUTEX_PROFILING
+
 
 #####################################################################
 # COMPATIBILITY OPTIONS                                             
@@ -555,6 +577,7 @@
 options 	PROCFS			#Process filesystem (requires PSEUDOFS)
 options 	PSEUDOFS		#Pseudo-filesystem framework
 options 	SMBFS			#SMB/CIFS filesystem
+options		UDF			#Universal Disk Format
 options 	UMAPFS			#UID map filesystem
 options 	UNIONFS			#Union filesystem
 # options 	NODEVFS			#disable devices filesystem

==== //depot/projects/smpng/sys/conf/files#35 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.622 2002/04/12 06:19:18 imp Exp $
+# $FreeBSD: src/sys/conf/files,v 1.623 2002/04/14 16:36:38 scottl Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -686,6 +686,9 @@
 fs/pseudofs/pseudofs_vncache.c	optional pseudofs
 fs/pseudofs/pseudofs_vnops.c	optional pseudofs
 fs/specfs/spec_vnops.c	standard
+fs/udf/udf_vfsops.c	optional udf
+fs/udf/udf_vnops.c	optional udf
+fs/udf/osta.c		optional udf
 fs/umapfs/umap_subr.c	optional umapfs
 fs/umapfs/umap_vfsops.c	optional umapfs
 fs/umapfs/umap_vnops.c	optional umapfs

==== //depot/projects/smpng/sys/conf/files.alpha#13 (text+ko) ====

@@ -1,7 +1,7 @@
 # This file tells config what files go into building a kernel,
 # files marked standard are always included.
 #
-# $FreeBSD: src/sys/conf/files.alpha,v 1.83 2002/04/13 22:34:15 obrien Exp $
+# $FreeBSD: src/sys/conf/files.alpha,v 1.84 2002/04/15 23:28:09 obrien Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -69,7 +69,6 @@
 alpha/alpha/machdep.c		standard
 alpha/alpha/mem.c		standard
 alpha/alpha/mountroot.c		optional	slice
-alpha/alpha/pal.s		standard
 alpha/alpha/perfmon.c		optional	perfmon	profiling-routine
 alpha/alpha/perfmon.c		optional	perfmon
 alpha/alpha/pmap.c		standard

==== //depot/projects/smpng/sys/conf/files.powerpc#6 (text+ko) ====

@@ -1,7 +1,7 @@
 # This file tells config what files go into building a kernel,
 # files marked standard are always included.
 #
-# $FreeBSD: src/sys/conf/files.powerpc,v 1.7 2002/03/27 05:39:18 dillon Exp $
+# $FreeBSD: src/sys/conf/files.powerpc,v 1.8 2002/04/15 12:30:14 benno Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -42,6 +42,7 @@
 
 dev/ofw/openfirm.c		standard
 dev/ofw/ofw_console.c		standard
+dev/ofw/ofw_disk.c		optional	ofwd
 
 libkern/ashldi3.c		standard
 libkern/ashrdi3.c		standard

==== //depot/projects/smpng/sys/conf/majors#9 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/conf/majors,v 1.134 2002/04/09 00:34:18 jake Exp $
+$FreeBSD: src/sys/conf/majors,v 1.135 2002/04/15 10:41:47 benno Exp $
 
 Hopefully, this list will one day be obsoleted by DEVFS, but for now
 this is the current allocation of device major numbers.
@@ -184,6 +184,7 @@
 166	ciss		Compaq SmartArray 5* adapter <msmith>
 167	ufm		USB Fm Radio
 168	se		Siemens SAB82532 serial chip <jake>
+169	ofwd		OpenFirmware disk <benno>
 200	??		entries from 200-252 are reserved for local use
 252	??		entries from 200-252 are reserved for local use
 254	internal	Used internally by the kernel

==== //depot/projects/smpng/sys/conf/options#20 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.311 2002/04/09 05:14:16 jeff Exp $
+# $FreeBSD: src/sys/conf/options,v 1.312 2002/04/14 16:36:38 scottl Exp $
 #
 #        On the handling of kernel options
 #
@@ -129,6 +129,7 @@
 NTFS		opt_dontuse.h
 HPFS		opt_dontuse.h
 UNIONFS		opt_dontuse.h
+UDF		opt_dontuse.h
 
 # Broken - ffs_snapshot() dependency from ufs_lookup() :-(
 FFS		opt_ffs_broken_fixme.h

==== //depot/projects/smpng/sys/conf/options.ia64#7 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options.ia64,v 1.9 2002/04/10 19:35:50 dfr Exp $
+# $FreeBSD: src/sys/conf/options.ia64,v 1.10 2002/04/14 04:33:41 peter Exp $
 # Options specific to the ia64 platform kernels
 
 ITANIUM			opt_global.h
@@ -70,3 +70,4 @@
 
 # Device options
 DEV_SPLASH		opt_splash.h
+DEV_ACPICA		opt_acpica.h

==== //depot/projects/smpng/sys/dev/ata/ata-dma.c#20 (text+ko) ====

@@ -25,7 +25,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/dev/ata/ata-dma.c,v 1.95 2002/04/11 11:04:23 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.96 2002/04/16 08:30:51 sos Exp $
  */
 
 #include <sys/param.h>
@@ -502,45 +502,20 @@
 	}
 	break;
 
+    case 0x01bc10de:	/* nVIDIA nForce */
     case 0x74411022:	/* AMD 768 */
     case 0x74111022:	/* AMD 766 */
-	if (udmamode >= 5) {
-	    error = ata_command(atadev, ATA_C_SETFEATURES, 0,
-				ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);
-	    if (bootverbose)
-		ata_prtdev(atadev, "%s setting UDMA5 on AMD chip\n",
-			   (error) ? "failed" : "success");
-	    if (!error) {
-		pci_write_config(parent, 0x53 - devno, 0xc6, 1);
-		ata_dmacreate(atadev, apiomode, ATA_UDMA5);
-		return;
-	    }
-	}
-	/* FALLTHROUGH */
-
     case 0x74091022:	/* AMD 756 */
-	if (udmamode >= 4) {
-	    error = ata_command(atadev, ATA_C_SETFEATURES, 0,
-				ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
-	    if (bootverbose)
-		ata_prtdev(atadev, "%s setting UDMA4 on AMD chip\n",
-			   (error) ? "failed" : "success");
-	    if (!error) {
-		pci_write_config(parent, 0x53 - devno, 0xc5, 1);
-		ata_dmacreate(atadev, apiomode, ATA_UDMA4);
-		return;
-	    }
-	}
-	goto via_82c586;
-
     case 0x05711106:	/* VIA 82C571, 82C586, 82C596, 82C686 , 8231, 8233 */
 	{
-	    int via_modes[4][7] = {
-		{ 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 },	/* ATA33 */
-		{ 0x00, 0x00, 0xea, 0x00, 0xe8, 0x00, 0x00 },	/* ATA66 */
-		{ 0x00, 0x00, 0xf4, 0x00, 0xf1, 0xf0, 0x00 },	/* ATA100 */
-		{ 0x00, 0x00, 0xf6, 0x00, 0xf2, 0xf1, 0xf0 }};	/* ATA133 */
+	    int via_modes[5][7] = {
+		{ 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 },	/* VIA ATA33 */
+		{ 0x00, 0x00, 0xea, 0x00, 0xe8, 0x00, 0x00 },	/* VIA ATA66 */
+		{ 0x00, 0x00, 0xf4, 0x00, 0xf1, 0xf0, 0x00 },	/* VIA ATA100 */
+		{ 0x00, 0x00, 0xf6, 0x00, 0xf2, 0xf1, 0xf0 },	/* VIA ATA133 */
+		{ 0x00, 0x00, 0xc0, 0x00, 0xc5, 0xc6, 0x00 }};	/* AMD/nVIDIA */
 	    int *reg_val = NULL;
+	    char *chip = "VIA";
 
 	    if (ata_find_dev(parent, 0x31471106, 0)) {		/* 8233a */
 		udmamode = imin(udmamode, 6);
@@ -564,19 +539,34 @@
 	    }
 	    else if (ata_find_dev(parent, 0x05961106, 0) ||	/* 82C596a */
 		     ata_find_dev(parent, 0x05861106, 0x03)) {	/* 82C586b */
-via_82c586:
 		udmamode = imin(udmamode, 2);
 		reg_val = via_modes[0];
 	    }
-	    else
+	    else if (chiptype == 0x74411022 ||			/* AMD 768 */
+		     chiptype == 0x74111022) {			/* AMD 766 */
+		udmamode = imin(udmamode, 5);
+		reg_val = via_modes[4];
+		chip = "AMD";
+	    }
+	    else if (chiptype == 0x74091022) {			/* AMD 756 */
+		udmamode = imin(udmamode, 4);
+		reg_val = via_modes[4];
+		chip = "AMD";
+	    }
+	    else if (chiptype == 0x01bc10de) {			/* nVIDIA */
+		udmamode = imin(udmamode, 5);
+		reg_val = via_modes[4];
+		chip = "nVIDIA";
+	    }
+	    else 
 		udmamode = 0;
-	
+
 	    if (udmamode >= 6) {
 		error = ata_command(atadev, ATA_C_SETFEATURES, 0,
 				    ATA_UDMA6, ATA_C_F_SETXFER, ATA_WAIT_READY);
 		if (bootverbose)
-		    ata_prtdev(atadev, "%s setting UDMA6 on VIA chip\n",
-			       (error) ? "failed" : "success");
+		    ata_prtdev(atadev, "%s setting UDMA6 on %s chip\n",
+			       (error) ? "failed" : "success", chip);
 		if (!error) {
 		    pci_write_config(parent, 0x53 - devno, reg_val[6], 1);
 		    ata_dmacreate(atadev, apiomode, ATA_UDMA6);
@@ -587,8 +577,8 @@
 		error = ata_command(atadev, ATA_C_SETFEATURES, 0,
 				    ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);
 		if (bootverbose)
-		    ata_prtdev(atadev, "%s setting UDMA5 on VIA chip\n",
-			       (error) ? "failed" : "success");
+		    ata_prtdev(atadev, "%s setting UDMA5 on %s chip\n",
+			       (error) ? "failed" : "success", chip);
 		if (!error) {
 		    pci_write_config(parent, 0x53 - devno, reg_val[5], 1);
 		    ata_dmacreate(atadev, apiomode, ATA_UDMA5);
@@ -599,8 +589,8 @@
 		error = ata_command(atadev, ATA_C_SETFEATURES, 0,
 				    ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
 		if (bootverbose)
-		    ata_prtdev(atadev, "%s setting UDMA4 on VIA chip\n",
-			       (error) ? "failed" : "success");
+		    ata_prtdev(atadev, "%s setting UDMA4 on %s chip\n",
+			       (error) ? "failed" : "success", chip);
 		if (!error) {
 		    pci_write_config(parent, 0x53 - devno, reg_val[4], 1);
 		    ata_dmacreate(atadev, apiomode, ATA_UDMA4);
@@ -611,28 +601,26 @@
 		error = ata_command(atadev, ATA_C_SETFEATURES, 0,
 				    ATA_UDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
 		if (bootverbose)
-		    ata_prtdev(atadev, "%s setting UDMA2 on VIA chip\n",
-			       (error) ? "failed" : "success");
+		    ata_prtdev(atadev, "%s setting UDMA2 on %s chip\n",
+			       (error) ? "failed" : "success", chip);
 		if (!error) {
 		    pci_write_config(parent, 0x53 - devno, reg_val[2], 1);
 		    ata_dmacreate(atadev, apiomode, ATA_UDMA2);
 		    return;
 		}
 	    }
-
-	}
-	if (wdmamode >= 2 && apiomode >= 4) {
-	    error = ata_command(atadev, ATA_C_SETFEATURES, 0,
-				ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
-	    if (bootverbose)
-		ata_prtdev(atadev, "%s setting WDMA2 on %s chip\n",
-			   (error) ? "failed" : "success",
-			   (chiptype == 0x74091022) ? "AMD" : "VIA");
-	    if (!error) {
-		pci_write_config(parent, 0x53 - devno, 0x0b, 1);
-		pci_write_config(parent, 0x4b - devno, 0x31, 1);
-		ata_dmacreate(atadev, apiomode, ATA_WDMA2);
-		return;
+	    if (wdmamode >= 2 && apiomode >= 4) {
+		error = ata_command(atadev, ATA_C_SETFEATURES, 0,
+				    ATA_WDMA2, ATA_C_F_SETXFER, ATA_WAIT_READY);
+		if (bootverbose)
+		    ata_prtdev(atadev, "%s setting WDMA2 on %s chip\n",
+			       (error) ? "failed" : "success", chip);
+		if (!error) {
+		    pci_write_config(parent, 0x53 - devno, 0x0b, 1);
+		    pci_write_config(parent, 0x4b - devno, 0x31, 1);
+		    ata_dmacreate(atadev, apiomode, ATA_WDMA2);
+		    return;
+		}
 	    }
 	}
 	/* we could set PIO mode timings, but we assume the BIOS did that */

==== //depot/projects/smpng/sys/dev/ata/ata-pci.c#20 (text+ko) ====

@@ -25,7 +25,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/dev/ata/ata-pci.c,v 1.40 2002/04/11 11:04:23 sos Exp $
+ * $FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.41 2002/04/16 08:30:51 sos Exp $
  */
 
 #include "opt_ata.h"
@@ -228,6 +228,9 @@
     case 0x74411022:
 	return "AMD 768 ATA100 controller";
 
+    case 0x01bc10de:
+	return "nVIDIA nForce ATA100 controller";
+
     case 0x02111166:
 	return "ServerWorks ROSB4 ATA33 controller";
 
@@ -465,6 +468,7 @@
     case 0x74091022: /* AMD 756 default setup */
     case 0x74111022: /* AMD 766 default setup */
     case 0x74411022: /* AMD 768 default setup */
+    case 0x01bc10de: /* nVIDIA nForce default setup */
 	/* set prefetch, postwrite */
 	pci_write_config(dev, 0x41, pci_read_config(dev, 0x41, 1) | 0xf0, 1);
 

==== //depot/projects/smpng/sys/dev/hfa/fore_load.c#3 (text+ko) ====

@@ -23,7 +23,7 @@
  * Copies of this Software may be made, however, the above copyright
  * notice must be reproduced on all copies.
  *
- *	@(#) $FreeBSD: src/sys/dev/hfa/fore_load.c,v 1.24 2002/03/20 02:07:23 alfred Exp $
+ *	@(#) $FreeBSD: src/sys/dev/hfa/fore_load.c,v 1.25 2002/04/16 01:38:31 arr Exp $
  *
  */
 
@@ -67,44 +67,39 @@
 #include <dev/hfa/fore_include.h>
 
 #ifndef lint
-__RCSID("@(#) $FreeBSD: src/sys/dev/hfa/fore_load.c,v 1.24 2002/03/20 02:07:23 alfred Exp $");
+__RCSID("@(#) $FreeBSD: src/sys/dev/hfa/fore_load.c,v 1.25 2002/04/16 01:38:31 arr Exp $");
 #endif
 
+static int fore_probe(device_t);
+static int fore_attach(device_t);
+static int fore_detach(device_t);
+static int fore_shutdown(device_t);
 
-/*
- * Local functions
- */
-static int	fore_start(void);
-static const char *	fore_pci_probe(pcici_t, pcidi_t);
-static void	fore_pci_attach(pcici_t, int);
-static void	fore_pci_shutdown(void *, int);
-static void	fore_unattach(Fore_unit *);
-static void	fore_reset(Fore_unit *);
-
-#ifndef COMPAT_OLDPCI
-#error "The fore device requires the old pci compatibility shims"
+#ifndef	COMPAT_OLDPCI
+#error	"The fore device requires the old pci compatibility shims"
 #endif
 
-/*
- * Local variables
- */
 static int	fore_inited = 0;
 
-/*
- * Driver entry points
- */
-
 static	u_long	fore_pci_count = 0;
 
-static struct pci_device fore_pci_device = {
-	FORE_DEV_NAME,
-	fore_pci_probe,
-	fore_pci_attach,
-	&fore_pci_count,
-	NULL
+static device_method_t fore_methods[] = {
+	DEVMETHOD(device_probe,		fore_probe),
+	DEVMETHOD(device_attach,	fore_attach),
+	DEVMETHOD(device_detach,	fore_detach),
+	DEVMETHOD(device_shutdown,	fore_shutdown),
+	{ 0, 0 }
 };
 
-COMPAT_PCI_DRIVER(fore_pci, fore_pci_device);
+static struct fore_ident fore_ident_table[] = {
+    { 0x0200,		"FORE Systems PCA-200 ATM ForeRunner" },
+    { 0x0210,		"FORE Systems PCA-200PC" },
+    { 0x0250,		"FORE Systems ATM" },
+    { 0x0300,		"FORE Systems PCA-200E" },
+    { 0x0310,		"FORE Systems ATM" },
+    { 0x0400,		"FORE Systems PCA-200HE ATM ForeRunner" },
+    { 0,		NULL },
+};
 
 
 /*
@@ -135,7 +130,6 @@
 			ATM_VERS_MAJ(atm_version), ATM_VERS_MIN(atm_version));
 		return (EINVAL);
 	}
-
 	/*
 	 * Initialize DMA mapping
 	 */
@@ -145,9 +139,7 @@
 	 * Start up watchdog timer
 	 */
 	atm_timeout(&fore_timer, ATM_HZ * FORE_TIME_TICK, fore_timeout);
-
 	fore_inited = 1;
-
 	return (0);
 }
 
@@ -160,40 +152,24 @@
  * Determine if this driver will support the identified device.  If we claim
  * to support the device, our attach routine will (later) be called for the
  * device.
- *
- * Arguments:
- *	config_id	device's PCI configuration ID
- *	device_id	device's PCI Vendor/Device ID
- *
- * Returns:
- *	name 	device identification string
- *	NULL	device not claimed by this driver
- *
  */
-static const char *
-fore_pci_probe(config_id, device_id)
-	pcici_t	config_id;
-	pcidi_t	device_id;
+static int
+fore_probe(device_t dev)
 {
+	struct fore_ident *ident;
+	u_int16_t devid;
 
-	/*
-	 * Initialize driver stuff
-	 */
-	if (fore_inited == 0) {
-		if (fore_start())
-			return (NULL);
+	if (pci_get_vendor(dev) == FORE_VENDOR_ID) {
+		devid = pci_get_device(dev);
+		for (ident = fore_ident_table; ident->name != NULL; ident++)
+			if (ident->devid == devid) {
+				device_set_desc(dev, ident->name);
+				return (0);
+			}
 	}
-
-	if ((device_id & 0xffff) != FORE_VENDOR_ID)
-		return (NULL);
-
-	if (((device_id >> 16) & 0xffff) == FORE_PCA200E_ID)
-                return ("FORE Systems PCA-200E ATM");
-
-	return (NULL);
+	return (ENXIO);
 }
 
-
 /*
  * Device attach routine
  * 
@@ -213,8 +189,8 @@
  */
 static void
 fore_pci_attach(config_id, unit)
-	pcici_t	config_id;
-	int	unit;
+	pcici_t config_id;
+	int     unit;
 {
 	Fore_unit	*fup;
 	vm_offset_t	va;
@@ -223,14 +199,11 @@
 	long		val;
 	int		err_count = BOOT_LOOPS;
 
+
 	/*
-	 * Just checking...
-	 */
-	if (unit >= FORE_MAX_UNITS) {
-		log(LOG_ERR, "%s%d: too many devices\n", 
-			FORE_DEV_NAME, unit);
-		return;
-	}
+ 	 * Check that unit is not >= FORE_MAX_UNITS
+ 	 */
+	
 
 	/*
 	 * Make sure this isn't a duplicate unit
@@ -238,6 +211,7 @@
 	if (fore_units[unit] != NULL)
 		return;
 
+
 	/*
 	 * Allocate a new unit structure
 	 */

==== //depot/projects/smpng/sys/dev/hfa/fore_slave.h#2 (text+ko) ====

@@ -23,7 +23,7 @@
  * Copies of this Software may be made, however, the above copyright
  * notice must be reproduced on all copies.
  *
- *	@(#) $FreeBSD: src/sys/dev/hfa/fore_slave.h,v 1.2 1999/08/28 00:41:52 peter Exp $
+ *	@(#) $FreeBSD: src/sys/dev/hfa/fore_slave.h,v 1.3 2002/04/16 01:34:00 arr Exp $
  *
  */
 
@@ -135,7 +135,6 @@
  * PCI Identifiers
  */
 #define	FORE_VENDOR_ID		0x1127
-#define	FORE_PCA200E_ID		0x0300
 
 /*
  * PCA-200E PCI Configuration Space

==== //depot/projects/smpng/sys/dev/sound/pci/ich.c#13 (text+ko) ====

@@ -32,7 +32,7 @@
 #include <pci/pcireg.h>
 #include <pci/pcivar.h>
 
-SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/ich.c,v 1.18 2002/02/19 00:59:23 alfred Exp $");
+SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/ich.c,v 1.20 2002/04/15 20:42:40 jhb Exp $");
 
 /* -------------------------------------------------------------------- */
 
@@ -298,7 +298,12 @@
 		if (sc->ac97rate <= 32000 || sc->ac97rate >= 64000)
 			sc->ac97rate = 48000;
 		r = (speed * 48000) / sc->ac97rate;
-		ch->spd = (ac97_setrate(sc->codec, ch->spdreg, r) * sc->ac97rate) / 48000;
+		/*
+		 * Cast the return value of ac97_setrate() to u_int so that
+		 * the math don't overflow into the negative range.
+		 */
+		ch->spd = ((u_int)ac97_setrate(sc->codec, ch->spdreg, r) *
+		    sc->ac97rate) / 48000;
 	} else {
 		ch->spd = 48000;
 	}
@@ -601,6 +606,10 @@
 		device_set_desc(dev, "SiS 7012");
 		return 0;
 
+	case 0x01b110de:
+		device_set_desc(dev, "Nvidia nForce AC97 controller");
+		return 0;
+
 	default:
 		return ENXIO;
 	}
@@ -682,8 +691,8 @@
 	extcaps = ac97_getextcaps(sc->codec);
 	sc->hasvra = extcaps & AC97_EXTCAP_VRA;
 	sc->hasvrm = extcaps & AC97_EXTCAP_VRM;
-	sc->hasmic = extcaps & AC97_CAP_MICCHANNEL;
-	ac97_setextmode(sc->codec, sc->hasvra | sc->hasvrm | sc->hasmic);
+	sc->hasmic = ac97_getcaps(sc->codec) & AC97_CAP_MICCHANNEL;
+	ac97_setextmode(sc->codec, sc->hasvra | sc->hasvrm);
 
 	if (pcm_register(dev, sc, 1, sc->hasmic? 2 : 1))
 		goto bad;

==== //depot/projects/smpng/sys/dev/sound/pci/maestro.c#5 (text+ko) ====

@@ -51,7 +51,7 @@
 
 #include <dev/sound/pci/maestro_reg.h>
 
-SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/maestro.c,v 1.14 2002/01/27 23:09:41 scottl Exp $");
+SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/pci/maestro.c,v 1.16 2002/04/16 01:58:13 jhb Exp $");
 
 #define inline __inline
 
@@ -520,10 +520,10 @@
 static void
 aggch_start_dac(struct agg_chinfo *ch)
 {
-	u_int wpwa = APU_USE_SYSMEM | (ch->offset >> 9);
+	bus_addr_t wpwa = APU_USE_SYSMEM | (ch->offset >> 9);
 	u_int size = ch->parent->bufsz >> 1;
 	u_int speed = ch->speed;
-	u_int offset = ch->offset >> 1;
+	bus_addr_t offset = ch->offset >> 1;
 	u_int cp = 0;
 	u_int16_t apuch = ch->num << 1;
 	u_int dv;
@@ -663,7 +663,7 @@
 	ch->offset = physaddr - ess->baseaddr;
 	if (physaddr < ess->baseaddr || ch->offset > WPWA_MAXADDR) {
 		device_printf(ess->dev,
-		    "offset %#x exceeds limit. ", ch->offset);
+		    "offset %#llx exceeds limit. ", (long long)ch->offset);
 		dma_free(ess, sndbuf_getbuf(b));
 		return NULL;
 	}
@@ -673,9 +673,9 @@
 	if (dir == PCMDIR_PLAY) {
 		ess->playchns++;
 		if (bootverbose)
-			device_printf(ess->dev, "pch[%d].offset = %#x\n", ch->num, ch->offset);
+			device_printf(ess->dev, "pch[%d].offset = %#llx\n", ch->num, (long long)ch->offset);
 	} else if (bootverbose)
-		device_printf(ess->dev, "rch.offset = %#x\n", ch->offset);
+		device_printf(ess->dev, "rch.offset = %#llx\n", (long long)ch->offset);
 
 	return ch;
 }
@@ -983,7 +983,8 @@
 		goto bad;
 	}
 	if (bootverbose)
-		device_printf(dev, "Maestro DMA base: %#x\n", ess->baseaddr);
+		device_printf(dev, "Maestro DMA base: %#llx\n",
+		    (long long)ess->baseaddr);
 
 	agg_power(ess, PPMI_D0);
 	DELAY(100000);

==== //depot/projects/smpng/sys/dev/wi/if_wi.c#33 (text+ko) ====

@@ -102,7 +102,7 @@
 
 #if !defined(lint)
 static const char rcsid[] =
-  "$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.99 2002/04/12 06:12:21 imp Exp $";
+  "$FreeBSD: src/sys/dev/wi/if_wi.c,v 1.100 2002/04/14 23:18:40 brooks Exp $";
 #endif
 
 static void wi_intr(void *);
@@ -1163,6 +1163,21 @@
 			ltv = &p2ltv;
 			break;
 		}
+	} else {
+		/* LUCENT */
+		switch (ltv->wi_type) {  
+		case WI_RID_TX_RATE:
+			switch (ltv->wi_val) {
+			case 1: ltv->wi_val = 1; break;  /* 1Mb/s fixed */
+			case 2: ltv->wi_val = 2; break;  /* 2Mb/s fixed */
+			case 3: ltv->wi_val = 3; break;  /* 11Mb/s auto */
+			case 5: ltv->wi_val = 4; break;  /* 5.5Mb/s fixed */
+			case 6: ltv->wi_val = 6; break;  /* 2Mb/s auto */
+			case 7: ltv->wi_val = 7; break;  /* 5.5Mb/s auto */
+			case 11: ltv->wi_val = 5; break; /* 11Mb/s fixed */
+			default: return EINVAL;
+			}
+		}
 	}

>>> TRUNCATED FOR MAIL (1000 lines) <<<

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200204161741.g3GHf4w93651>