Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Oct 2008 20:03:05 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 151336 for review
Message-ID:  <200810132003.m9DK358F066017@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=151336

Change 151336 by imp@imp_paco-paco on 2008/10/13 20:02:34

	IFC @151335

Affected files ...

.. //depot/projects/mips2/src/UPDATING#23 integrate
.. //depot/projects/mips2/src/etc/etc.mips/ttys#4 integrate
.. //depot/projects/mips2/src/libexec/rtld-elf/mips/reloc.c#5 integrate
.. //depot/projects/mips2/src/release/Makefile#12 integrate
.. //depot/projects/mips2/src/release/doc/share/misc/dev.archlist.txt#11 integrate
.. //depot/projects/mips2/src/release/scripts/package-trees.sh#2 integrate
.. //depot/projects/mips2/src/sbin/fsck_ffs/pass5.c#3 integrate
.. //depot/projects/mips2/src/share/man/man4/u3g.4#2 integrate
.. //depot/projects/mips2/src/sys/arm/arm/busdma_machdep.c#8 integrate
.. //depot/projects/mips2/src/sys/arm/arm/cpufunc.c#7 integrate
.. //depot/projects/mips2/src/sys/arm/arm/cpufunc_asm_feroceon.S#1 branch
.. //depot/projects/mips2/src/sys/arm/arm/elf_machdep.c#4 integrate
.. //depot/projects/mips2/src/sys/arm/arm/genassym.c#6 integrate
.. //depot/projects/mips2/src/sys/arm/arm/identcpu.c#6 integrate
.. //depot/projects/mips2/src/sys/arm/arm/locore.S#6 integrate
.. //depot/projects/mips2/src/sys/arm/arm/pmap.c#14 integrate
.. //depot/projects/mips2/src/sys/arm/arm/swtch.S#6 integrate
.. //depot/projects/mips2/src/sys/arm/include/armreg.h#5 integrate
.. //depot/projects/mips2/src/sys/arm/include/cpufunc.h#5 integrate
.. //depot/projects/mips2/src/sys/boot/ofw/libofw/ofw_disk.c#2 integrate
.. //depot/projects/mips2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#6 integrate
.. //depot/projects/mips2/src/sys/conf/ldscript.mips.cfe#4 integrate
.. //depot/projects/mips2/src/sys/dev/bm/if_bm.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/ati_pcigart.c#5 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drmP.h#6 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_agpsupport.c#6 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_auth.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_bufs.c#5 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_context.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_dma.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_drawable.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_drv.c#6 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_fops.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_ioctl.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_irq.c#5 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_linux_list.h#2 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_memory.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_pci.c#5 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_pciids.h#6 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_scatter.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/drm_sysctl.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/i915_drv.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/i915_irq.c#5 integrate
.. //depot/projects/mips2/src/sys/dev/drm/mach64_drv.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/mga_drv.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/r128_drv.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/radeon_cp.c#5 integrate
.. //depot/projects/mips2/src/sys/dev/drm/radeon_drv.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/radeon_drv.h#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/savage_drv.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/sis_drv.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/drm/tdfx_drv.c#4 integrate
.. //depot/projects/mips2/src/sys/dev/jme/if_jme.c#5 integrate
.. //depot/projects/mips2/src/sys/dev/jme/if_jmereg.h#4 integrate
.. //depot/projects/mips2/src/sys/dev/mmc/mmc.c#5 integrate
.. //depot/projects/mips2/src/sys/dev/mmc/mmcsd.c#6 integrate
.. //depot/projects/mips2/src/sys/dev/mmc/mmcvar.h#5 integrate
.. //depot/projects/mips2/src/sys/dev/puc/pucdata.c#7 integrate
.. //depot/projects/mips2/src/sys/dev/sound/pci/hda/hdac.c#14 integrate
.. //depot/projects/mips2/src/sys/dev/usb/u3g.c#2 integrate
.. //depot/projects/mips2/src/sys/dev/usb/ubsa.c#12 integrate
.. //depot/projects/mips2/src/sys/dev/usb/umct.c#4 integrate
.. //depot/projects/mips2/src/sys/fs/cd9660/cd9660_vfsops.c#4 integrate
.. //depot/projects/mips2/src/sys/fs/hpfs/hpfs_vfsops.c#5 integrate
.. //depot/projects/mips2/src/sys/fs/msdosfs/msdosfs_vfsops.c#12 integrate
.. //depot/projects/mips2/src/sys/fs/ntfs/ntfs_vfsops.c#6 integrate
.. //depot/projects/mips2/src/sys/fs/nwfs/nwfs_io.c#5 integrate
.. //depot/projects/mips2/src/sys/fs/portalfs/portal_vnops.c#8 integrate
.. //depot/projects/mips2/src/sys/fs/smbfs/smbfs_io.c#7 integrate
.. //depot/projects/mips2/src/sys/fs/udf/udf_vfsops.c#7 integrate
.. //depot/projects/mips2/src/sys/geom/geom_vfs.c#3 integrate
.. //depot/projects/mips2/src/sys/geom/geom_vfs.h#2 integrate
.. //depot/projects/mips2/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#9 integrate
.. //depot/projects/mips2/src/sys/gnu/fs/xfs/FreeBSD/xfs_buf.c#3 integrate
.. //depot/projects/mips2/src/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c#7 integrate
.. //depot/projects/mips2/src/sys/gnu/fs/xfs/FreeBSD/xfs_super.c#4 integrate
.. //depot/projects/mips2/src/sys/kern/kern_descrip.c#15 integrate
.. //depot/projects/mips2/src/sys/kern/subr_bus.c#12 integrate
.. //depot/projects/mips2/src/sys/kern/uipc_usrreq.c#13 integrate
.. //depot/projects/mips2/src/sys/kern/vfs_bio.c#18 integrate
.. //depot/projects/mips2/src/sys/kern/vfs_mount.c#20 integrate
.. //depot/projects/mips2/src/sys/kern/vfs_subr.c#21 integrate
.. //depot/projects/mips2/src/sys/mips/conf/SENTRY5#13 integrate
.. //depot/projects/mips2/src/sys/mips/mips/machdep.c#43 integrate
.. //depot/projects/mips2/src/sys/mips/mips/pmap.c#35 integrate
.. //depot/projects/mips2/src/sys/netinet/ip_fw.h#12 integrate
.. //depot/projects/mips2/src/sys/netinet6/udp6_usrreq.c#16 integrate
.. //depot/projects/mips2/src/sys/nfsclient/nfs_bio.c#7 integrate
.. //depot/projects/mips2/src/sys/nfsserver/nfs_serv.c#11 integrate
.. //depot/projects/mips2/src/sys/sparc64/conf/GENERIC#15 integrate
.. //depot/projects/mips2/src/sys/sys/bufobj.h#6 integrate
.. //depot/projects/mips2/src/sys/sys/vnode.h#13 integrate
.. //depot/projects/mips2/src/sys/ufs/ffs/ffs_inode.c#7 integrate
.. //depot/projects/mips2/src/sys/ufs/ffs/ffs_snapshot.c#11 integrate
.. //depot/projects/mips2/src/sys/ufs/ffs/ffs_vfsops.c#14 integrate
.. //depot/projects/mips2/src/sys/vm/vm_object.c#12 integrate
.. //depot/projects/mips2/src/usr.sbin/nscd/agent.c#3 integrate
.. //depot/projects/mips2/src/usr.sbin/nscd/cachelib.c#3 integrate
.. //depot/projects/mips2/src/usr.sbin/nscd/cacheplcs.c#3 integrate
.. //depot/projects/mips2/src/usr.sbin/nscd/config.c#3 integrate
.. //depot/projects/mips2/src/usr.sbin/nscd/hashtable.h#3 integrate
.. //depot/projects/mips2/src/usr.sbin/nscd/mp_rs_query.c#3 integrate
.. //depot/projects/mips2/src/usr.sbin/nscd/mp_ws_query.c#3 integrate
.. //depot/projects/mips2/src/usr.sbin/nscd/nscd.c#3 integrate
.. //depot/projects/mips2/src/usr.sbin/nscd/nscdcli.c#3 integrate
.. //depot/projects/mips2/src/usr.sbin/nscd/query.c#3 integrate

Differences ...

==== //depot/projects/mips2/src/UPDATING#23 (text+ko) ====

@@ -23,6 +23,16 @@
 	ln -s aj /etc/malloc.conf.)
 
 20081009:
+	The uhci, ohci, ehci and slhci USB Host controller drivers have
+	been put into separate modules. If you load the usb module
+	separately through loader.conf you will need to load the
+	appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
+	controller add the following to loader.conf:
+
+		uhci_load="YES"
+		ehci_load="YES"
+
+20081009:
 	The ABI used by the PMC toolset has changed.  Please keep
 	userland (libpmc(3)) and the kernel module (hwpmc(4)) in
 	sync.
@@ -1136,4 +1146,4 @@
 Contact Warner Losh if you have any questions about your use of
 this document.
 
-$FreeBSD: src/UPDATING,v 1.544 2008/10/10 04:23:40 jkoshy Exp $
+$FreeBSD: src/UPDATING,v 1.545 2008/10/10 06:37:51 n_hibma Exp $

==== //depot/projects/mips2/src/etc/etc.mips/ttys#4 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/etc/etc.mips/ttys,v 1.3 2008/08/24 08:41:29 ed Exp $
+# $FreeBSD: src/etc/etc.mips/ttys,v 1.4 2008/10/12 06:58:03 imp Exp $
 #	@(#)ttys	5.1 (Berkeley) 4/17/89
 #
 # This file specifies various information about terminals on the system.
@@ -44,11 +44,10 @@
 #ttyv8	"/usr/X11R6/bin/xdm -nodaemon"	xterm	off secure
 # Serial terminals
 # The 'dialup' keyword identifies dialin lines to login, fingerd etc.
-ttyu0	"/usr/libexec/getty std.9600"	vt100	on  secure
-ttyd0	"/usr/libexec/getty std.9600"	dialup	off secure
-ttyd1	"/usr/libexec/getty std.9600"	dialup	off secure
-ttyd2	"/usr/libexec/getty std.9600"	dialup	off secure
-ttyd3	"/usr/libexec/getty std.9600"	dialup	off secure
+ttyu0	"/usr/libexec/getty std.115200"	dialup	on  secure
+ttyu1	"/usr/libexec/getty std.115200"	dialup	off secure
+ttyu2	"/usr/libexec/getty std.115200"	dialup	off secure
+ttyu3	"/usr/libexec/getty std.115200"	dialup	off secure
 # Dumb console
 dcons	"/usr/libexec/getty std.9600"	vt100	off secure
 # Pseudo terminals

==== //depot/projects/mips2/src/libexec/rtld-elf/mips/reloc.c#5 (text+ko) ====

@@ -1,7 +1,7 @@
 /*	$NetBSD: mdreloc.c,v 1.23 2003/07/26 15:04:38 mrg Exp $	*/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/libexec/rtld-elf/arm/reloc.c,v 1.4 2005/12/18 19:43:32 kan Exp $");
+__FBSDID("$FreeBSD: src/libexec/rtld-elf/mips/reloc.c,v 1.2 2008/10/10 05:10:10 imp Exp $");
 #include <sys/param.h>
 #include <sys/mman.h>
 

==== //depot/projects/mips2/src/release/Makefile#12 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/release/Makefile,v 1.933 2008/07/07 16:23:04 marcel Exp $
+# $FreeBSD: src/release/Makefile,v 1.934 2008/10/12 02:52:56 kensmith Exp $
 #
 # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \
 #     [RELEASETAG=tag]
@@ -192,6 +192,7 @@
 .undef MAKE_FLOPPIES
 .if ${TARGET_ARCH} == "i386"
 MAKE_FLOPPIES=		true
+MAKE_DVD=
 SEPARATE_LIVEFS=
 SPLIT_MFSROOT=
 .if ${TARGET} == "pc98"
@@ -222,6 +223,7 @@
 SEPARATE_LIVEFS=
 .elif ${TARGET_ARCH} == "amd64"
 MAKE_FLOPPIES=		true
+MAKE_DVD=
 FLOPPYSIZE=		1440
 FLOPPYSPLITSIZE=	1392
 FLOPPYINODE=		40000
@@ -262,6 +264,9 @@
 CD_BOOT=		${CD}/bootonly
 CD_DISC1=		${CD}/disc1
 CD_DISC2=		${CD}/disc2
+.if defined(MAKE_DVD)
+CD_DVD=			${CD}/dvd
+.endif
 .if !defined(NODOC)
 CD_DOCS=		${CD}/docs
 .endif
@@ -480,6 +485,7 @@
 	KERNELS \
 	KERNELS_BASE \
 	KERNEL_FLAGS \
+	MAKE_DVD \
 	MAKE_FLOPPIES \
 	MAKE_ISOS \
 	NOCDROM \
@@ -922,6 +928,18 @@
 			    find . -depth -print | cpio -dumpl ${CD_LIVEFS} ) ; \
 		fi \
 	done
+.if defined(MAKE_DVD)
+	@echo "Building DVD filesystem image as well as CDROM"
+	@mkdir -p ${CD_DVD}/${BUILDNAME}
+	@for i in ${DISTRIBUTIONS} ; \
+	do \
+		if [ -d ${RD}/trees/$${i} ] ; then \
+			chflags -R noschg ${RD}/trees/$${i} || true ; \
+			( cd ${RD}/trees/$${i} && \
+			    find . -depth -print | cpio -dumpl ${CD_DVD} ) ; \
+		fi \
+	done
+.endif
 	@echo "Copy GENERIC kernel to boot area"
 	@cp -Rp ${RD}/kernels/GENERIC/ ${CD_LIVEFS}/boot/kernel
 	@rm -f ${CD_LIVEFS}/boot/kernel/*.symbols
@@ -939,7 +957,24 @@
 	@rm -f ${CD_LIVEFS}/boot/device.hints
 	@cp ${RD}/trees/base/boot/device.hints ${CD_LIVEFS}/boot/device.hints
 .endif
+.if defined(MAKE_DVD)
+	@cp -Rp ${RD}/kernels/GENERIC/ ${CD_DVD}/boot/kernel
+	@rm -f ${CD_DVD}/boot/kernel/*.symbols
+	@rm -f ${CD_DVD}/.profile
+	@cp ${.CURDIR}/fixit.profile ${CD_DVD}/.profile
+	@ln -sf /rescue ${CD_DVD}/stand
 	@echo "CD_VERSION = ${BUILDNAME}" > ${CD_LIVEFS}/cdrom.inf
+	@echo "CD_VERSION = ${BUILDNAME}" > ${CD_DVD}/cdrom.inf
+	@rm -f ${CD_DVD}/boot/loader.conf
+	@cp ${RD}/mfsroot/mfsroot.gz ${CD_DVD}/boot/mfsroot.gz
+	@echo 'mfsroot_load="YES"' > ${CD_DVD}/boot/loader.conf
+	@echo 'mfsroot_type="mfs_root"' >> ${CD_DVD}/boot/loader.conf
+	@echo 'mfsroot_name="/boot/mfsroot"' >> ${CD_DVD}/boot/loader.conf
+.if exists(${RD}/trees/base/boot/device.hints)
+	@rm -f ${CD_DVD}/boot/device.hints
+	@cp ${RD}/trees/base/boot/device.hints ${CD_DVD}/boot/device.hints
+.endif
+.endif
 	touch ${.TARGET}
 
 # Build disc1 and disc2 cdrom images
@@ -974,11 +1009,37 @@
 	@mkdir -p ${CD_DISC2}
 	@echo "CD_VERSION = ${BUILDNAME}" > ${CD_DISC2}/cdrom.inf
 	@echo "CD_VOLUME = 2" >> ${CD_DISC2}/cdrom.inf
+.if defined(MAKE_DVD)
+.if defined(MAKE_FLOPPIES)
+	@cd ${RD} && find floppies -print | cpio -dumpl ${CD_DVD}
+.endif
+	@cd ${RD}/dists && find . -print | cpio -dumpl ${CD_DVD}/${BUILDNAME}
+.if !defined(NODOC)
+	@for i in ${DIST_DOCS_ARCH_INDEP}; do \
+	  cp ${RND}/${RELNOTES_LANG}/$$i/article.txt \
+	      ${CD_DVD}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
+	  cp ${RND}/${RELNOTES_LANG}/$$i/article.html \
+	      ${CD_DVD}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \
+	done
+	@for i in ${DIST_DOCS_ARCH_DEP}; do \
+	  cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.txt \
+	      ${CD_DVD}/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \
+	  cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.html \
+	      ${CD_DVD}/`echo $${i} | tr 'a-z' 'A-Z'`.HTM; \
+	done
+	@cp ${RND}/${RELNOTES_LANG}/readme/docbook.css ${CD_DVD}
+.endif
+	@echo "CD_VERSION = ${BUILDNAME}" > ${CD_DVD}/cdrom.inf
+	@echo "CD_VOLUME = 1" >> ${CD_DVD}/cdrom.inf
+.endif
 .if !defined(NODOC)
 	echo "Building CDROM docs filesystem image"
 	@mkdir -p ${CD_DOCS}
 	@echo "CD_VERSION = ${BUILDNAME}" > ${CD_DOCS}/cdrom.inf
 	@mkdir -p ${CD_DOCS}/usr/share/doc
+.if defined(MAKE_DVD)
+	@mkdir -p ${CD_DVD}/usr/share/doc
+.endif
 	@for i in `ls ${CD_LIVEFS}/usr/share/doc`; do \
 		if [ -L ${CD_LIVEFS}/usr/share/doc/$$i -o \
 		    -d /usr/doc/$$i ]; then \
@@ -986,6 +1047,10 @@
 			    ${CD_DOCS}/usr/share/doc; \
 		fi \
 	done
+.if defined(MAKE_DVD)
+	@cd ${CD_DOCS}/usr/share/doc && find . -print | \
+	    cpio -dumpl ${CD_DVD}/usr/share/doc
+.endif
 .endif
 	touch ${.TARGET}
 
@@ -1016,6 +1081,9 @@
 .if exists(${CD_PACKAGE_TREE}/disc2)
 CD_DISC2_PKGS=	${CD_PACKAGE_TREE}/disc2
 .endif
+.if exists(${CD_PACKAGE_TREE}/dvd)
+CD_DVD_PKGS=	${CD_PACKAGE_TREE}/dvd
+.endif
 .endif
 .endif
 
@@ -1035,6 +1103,12 @@
 	    FreeBSD_Packages \
 	    ${CD}/${BUILDNAME}-${TARGET}-disc2.iso ${CD_DISC2} \
 	    ${CD_DISC2_PKGS}
+.if defined(MAKE_DVD)
+	@sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh ${BOOTABLE} \
+	    FreeBSD_Install \
+	    ${CD}/${BUILDNAME}-${TARGET}-dvd.iso ${CD_DVD} \
+	    ${CD_DVD_PKGS}
+.endif
 .if !defined(NODOC)
 	@sh ${.CURDIR}/${TARGET_ARCH}/mkisoimages.sh \
 	    FreeBSD_Documentation \

==== //depot/projects/mips2/src/release/doc/share/misc/dev.archlist.txt#11 (text+ko) ====

@@ -23,7 +23,7 @@
 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 # SUCH DAMAGE.
 #
-# $FreeBSD: src/release/doc/share/misc/dev.archlist.txt,v 1.105 2008/04/21 05:43:08 brueffer Exp $
+# $FreeBSD: src/release/doc/share/misc/dev.archlist.txt,v 1.106 2008/10/12 08:22:53 simon Exp $
 #
 
 #
@@ -88,7 +88,7 @@
 msk	i386,amd64
 mxge	i386,amd64
 my	i386,pc98
-ncr	i386,pc98,sparc64,amd64
+ncr	i386,pc98,amd64
 ncv	i386,pc98
 nfe	i386,amd64
 ng_bt3c	i386,pc98,amd64

==== //depot/projects/mips2/src/release/scripts/package-trees.sh#2 (text+ko) ====

@@ -5,9 +5,9 @@
 # contains the master INDEX, it's assigned list of packages, and the
 # appropriate tree of category symlinks.
 #
-# Usage: package-tress.sh <copy method> <INDEX> <package tree> <destination>
+# Usage: package-trees.sh <copy method> <INDEX> <package tree> <destination>
 #
-# $FreeBSD: src/release/scripts/package-trees.sh,v 1.2 2005/05/03 04:19:07 marcel Exp $
+# $FreeBSD: src/release/scripts/package-trees.sh,v 1.3 2008/10/13 17:42:21 kensmith Exp $
 
 # Verify the command line
 if [ $# -ne 4 ]; then

==== //depot/projects/mips2/src/sbin/fsck_ffs/pass5.c#3 (text+ko) ====

@@ -33,7 +33,7 @@
 #endif /* not lint */
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/fsck_ffs/pass5.c,v 1.43 2006/10/31 22:06:56 pjd Exp $");
+__FBSDID("$FreeBSD: src/sbin/fsck_ffs/pass5.c,v 1.45 2008/10/13 14:01:05 kib Exp $");
 
 #include <sys/param.h>
 #include <sys/sysctl.h>
@@ -48,7 +48,7 @@
 
 #include "fsck.h"
 
-static void check_maps(u_char *, u_char *, int, int, const char *, int *, int, int);
+static void check_maps(u_char *, u_char *, int, ufs2_daddr_t, const char *, int *, int, int);
 
 void
 pass5(void)
@@ -291,10 +291,17 @@
 				sump[run]++;
 			}
 		}
-		cstotal.cs_nffree += newcg->cg_cs.cs_nffree;
-		cstotal.cs_nbfree += newcg->cg_cs.cs_nbfree;
-		cstotal.cs_nifree += newcg->cg_cs.cs_nifree;
-		cstotal.cs_ndir += newcg->cg_cs.cs_ndir;
+		if (bkgrdflag != 0) {
+			cstotal.cs_nffree += cg->cg_cs.cs_nffree;
+			cstotal.cs_nbfree += cg->cg_cs.cs_nbfree;
+			cstotal.cs_nifree += cg->cg_cs.cs_nifree;
+			cstotal.cs_ndir += cg->cg_cs.cs_ndir;
+		} else {
+			cstotal.cs_nffree += newcg->cg_cs.cs_nffree;
+			cstotal.cs_nbfree += newcg->cg_cs.cs_nbfree;
+			cstotal.cs_nifree += newcg->cg_cs.cs_nifree;
+			cstotal.cs_ndir += newcg->cg_cs.cs_ndir;
+		}
 		cs = &fs->fs_cs(fs, c);
 		if (cursnapshot == 0 &&
 		    memcmp(&newcg->cg_cs, cs, sizeof *cs) != 0 &&
@@ -321,13 +328,17 @@
 			}
 			if (excessdirs > 0)
 				check_maps(cg_inosused(newcg), cg_inosused(cg),
-				    inomapsize, cg->cg_cgx * fs->fs_ipg, "DIR",
+				    inomapsize,
+				    cg->cg_cgx * (ufs2_daddr_t) fs->fs_ipg,
+				    "DIR",
 				    freedirs, 0, excessdirs);
 			check_maps(cg_inosused(newcg), cg_inosused(cg),
-			    inomapsize, cg->cg_cgx * fs->fs_ipg, "FILE",
+			    inomapsize,
+			    cg->cg_cgx * (ufs2_daddr_t) fs->fs_ipg, "FILE",
 			    freefiles, excessdirs, fs->fs_ipg);
 			check_maps(cg_blksfree(cg), cg_blksfree(newcg),
-			    blkmapsize, cg->cg_cgx * fs->fs_fpg, "FRAG",
+			    blkmapsize,
+			    cg->cg_cgx * (ufs2_daddr_t) fs->fs_fpg, "FRAG",
 			    freeblks, 0, fs->fs_fpg);
 		}
 		if (cursnapshot == 0 &&
@@ -407,7 +418,7 @@
 	u_char *map1,	/* map of claimed allocations */
 	u_char *map2,	/* map of determined allocations */
 	int mapsize,	/* size of above two maps */
-	int startvalue,	/* resource value for first element in map */
+	ufs2_daddr_t startvalue, /* resource value for first element in map */
 	const char *name,	/* name of resource found in maps */
 	int *opcode,	/* sysctl opcode to free resource */
 	int skip,	/* number of entries to skip before starting to free */
@@ -415,8 +426,8 @@
 {
 #	define BUFSIZE 16
 	char buf[BUFSIZE];
-	long i, j, k, l, m, n, size;
-	int astart, aend, ustart, uend;
+	long i, j, k, l, m, size;
+	ufs2_daddr_t n, astart, aend, ustart, uend;
 	void (*msg)(const char *fmt, ...);
 
 	if (bkgrdflag)
@@ -443,10 +454,12 @@
 					continue;
 				}
 				if (astart == aend)
-					(*msg)("ALLOCATED %s %d MARKED FREE\n",
+					(*msg)("ALLOCATED %s %" PRId64
+					    " MARKED FREE\n",
 					    name, astart);
 				else
-					(*msg)("%s %sS %d-%d MARKED FREE\n",
+					(*msg)("%s %sS %" PRId64 "-%" PRId64
+					    " MARKED FREE\n",
 					    "ALLOCATED", name, astart, aend);
 				astart = aend = n;
 			} else {
@@ -472,10 +485,12 @@
 				if (size > limit)
 					size = limit;
 				if (debug && size == 1)
-					pwarn("%s %s %d MARKED USED\n",
+					pwarn("%s %s %" PRId64
+					    " MARKED USED\n",
 					    "UNALLOCATED", name, ustart);
 				else if (debug)
-					pwarn("%s %sS %d-%ld MARKED USED\n",
+					pwarn("%s %sS %" PRId64 "-%" PRId64
+					    " MARKED USED\n",
 					    "UNALLOCATED", name, ustart,
 					    ustart + size - 1);
 				if (bkgrdflag != 0) {
@@ -497,9 +512,11 @@
 	}
 	if (astart != -1) {
 		if (astart == aend)
-			(*msg)("ALLOCATED %s %d MARKED FREE\n", name, astart);
+			(*msg)("ALLOCATED %s %" PRId64
+			    " MARKED FREE\n", name, astart);
 		else
-			(*msg)("ALLOCATED %sS %d-%d MARKED FREE\n",
+			(*msg)("ALLOCATED %sS %" PRId64 "-%" PRId64
+			    " MARKED FREE\n",
 			    name, astart, aend);
 	}
 	if (ustart != -1) {
@@ -514,10 +531,12 @@
 			size = limit;
 		if (debug) {
 			if (size == 1)
-				pwarn("UNALLOCATED %s %d MARKED USED\n",
+				pwarn("UNALLOCATED %s %" PRId64
+				    " MARKED USED\n",
 				    name, ustart);
 			else
-				pwarn("UNALLOCATED %sS %d-%ld MARKED USED\n",
+				pwarn("UNALLOCATED %sS %" PRId64 "-%" PRId64
+				    " MARKED USED\n",
 				    name, ustart, ustart + size - 1);
 		}
 		if (bkgrdflag != 0) {

==== //depot/projects/mips2/src/share/man/man4/u3g.4#2 (text+ko) ====

@@ -16,7 +16,7 @@
 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\"
-.\" $FreeBSD: src/share/man/man4/u3g.4,v 1.1 2008/10/09 21:25:01 n_hibma Exp $
+.\" $FreeBSD: src/share/man/man4/u3g.4,v 1.2 2008/10/10 06:26:37 n_hibma Exp $
 .\"
 .Dd October 7, 2008
 .Dt U3G 4
@@ -84,7 +84,7 @@
 .Nm
 driver
 appeared in
-.Fx 7.0 .
+.Fx 8.0 .
 The
 .Xr ubsa 4
 manual page was modified for

==== //depot/projects/mips2/src/sys/arm/arm/busdma_machdep.c#8 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.38 2008/03/12 15:31:37 raj Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.39 2008/10/13 18:59:59 raj Exp $");
 
 /*
  * ARM bus dma support routines
@@ -629,6 +629,8 @@
 			newmap->allocbuffer = tmpaddr;
 			cpu_idcache_wbinv_range((vm_offset_t)*vaddr, 
 			    dmat->maxsize);
+			cpu_l2cache_wbinv_range((vm_offset_t)*vaddr,
+			    dmat->maxsize);
 			*vaddr = tmpaddr;
 		} else
 			newmap->origbuffer = newmap->allocbuffer = NULL;

==== //depot/projects/mips2/src/sys/arm/arm/cpufunc.c#7 (text+ko) ====

@@ -45,7 +45,7 @@
  * Created      : 30/01/97
  */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.22 2007/11/28 22:55:55 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.23 2008/10/13 18:16:54 raj Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -357,6 +357,66 @@
 	arm10_setup			/* cpu setup		*/
 
 };
+
+struct cpu_functions feroceon_cpufuncs = {
+	/* CPU functions */
+
+	cpufunc_id,			/* id			*/
+	cpufunc_nullop,			/* cpwait		*/
+
+	/* MMU functions */
+
+	cpufunc_control,		/* control		*/
+	cpufunc_domains,		/* Domain		*/
+	feroceon_setttb,		/* Setttb		*/
+	cpufunc_faultstatus,		/* Faultstatus		*/
+	cpufunc_faultaddress,		/* Faultaddress		*/
+
+	/* TLB functions */
+
+	armv4_tlb_flushID,		/* tlb_flushID		*/
+	arm10_tlb_flushID_SE,		/* tlb_flushID_SE	*/
+	armv4_tlb_flushI,		/* tlb_flushI		*/
+	arm10_tlb_flushI_SE,		/* tlb_flushI_SE	*/
+	armv4_tlb_flushD,		/* tlb_flushD		*/
+	armv4_tlb_flushD_SE,		/* tlb_flushD_SE	*/
+
+	/* Cache operations */
+
+	armv5_ec_icache_sync_all,	/* icache_sync_all	*/
+	armv5_ec_icache_sync_range,	/* icache_sync_range	*/
+
+	armv5_ec_dcache_wbinv_all,	/* dcache_wbinv_all	*/
+	feroceon_dcache_wbinv_range,	/* dcache_wbinv_range	*/
+	feroceon_dcache_inv_range,	/* dcache_inv_range	*/
+	feroceon_dcache_wb_range,	/* dcache_wb_range	*/
+
+	armv5_ec_idcache_wbinv_all,	/* idcache_wbinv_all	*/
+	feroceon_idcache_wbinv_range,	/* idcache_wbinv_all	*/
+
+	feroceon_l2cache_wbinv_all,	/* l2cache_wbinv_all    */
+	feroceon_l2cache_wbinv_range,	/* l2cache_wbinv_range  */
+	feroceon_l2cache_inv_range,	/* l2cache_inv_range    */
+	feroceon_l2cache_wb_range,	/* l2cache_wb_range     */
+
+	/* Other functions */
+
+	cpufunc_nullop,			/* flush_prefetchbuf	*/
+	armv4_drain_writebuf,		/* drain_writebuf	*/
+	cpufunc_nullop,			/* flush_brnchtgt_C	*/
+	(void *)cpufunc_nullop,		/* flush_brnchtgt_E	*/
+
+	(void *)cpufunc_nullop,		/* sleep		*/
+
+	/* Soft functions */
+
+	cpufunc_null_fixup,		/* dataabt_fixup	*/
+	cpufunc_null_fixup,		/* prefetchabt_fixup	*/
+
+	arm10_context_switch,		/* context_switch	*/
+
+	arm10_setup			/* cpu setup		*/
+};
 #endif /* CPU_ARM9E || CPU_ARM10 */
 
 #ifdef CPU_ARM10
@@ -933,9 +993,36 @@
 	}
 #endif /* CPU_ARM9 */
 #if defined(CPU_ARM9E) || defined(CPU_ARM10)
-	if (cputype == CPU_ID_ARM926EJS ||
-	    cputype == CPU_ID_ARM1026EJS) {
-		cpufuncs = armv5_ec_cpufuncs;
+	if (cputype == CPU_ID_ARM926EJS || cputype == CPU_ID_ARM1026EJS ||
+	    cputype == CPU_ID_MV88FR131 || cputype == CPU_ID_MV88FR571_VD ||
+	    cputype == CPU_ID_MV88FR571_41) {
+		if (cputype == CPU_ID_MV88FR131 ||
+		    cputype == CPU_ID_MV88FR571_VD ||
+		    cputype == CPU_ID_MV88FR571_41) {
+
+			cpufuncs = feroceon_cpufuncs;
+			/*
+			 * Workaround for Marvell MV78100 CPU: Cache prefetch
+			 * mechanism may affect the cache coherency validity,
+			 * so it needs to be disabled.
+			 *
+			 * Refer to errata document MV-S501058-00C.pdf (p. 3.1
+			 * L2 Prefetching Mechanism) for details.
+			 */
+			if (cputype == CPU_ID_MV88FR571_VD ||
+			    cputype == CPU_ID_MV88FR571_41) {
+				feroceon_control_ext(0xffffffff,
+				    FC_DCACHE_STREAM_EN | FC_WR_ALLOC_EN |
+				    FC_BRANCH_TARG_BUF_DIS | FC_L2CACHE_EN |
+				    FC_L2_PREF_DIS);
+			} else {
+				feroceon_control_ext(0xffffffff,
+				    FC_DCACHE_STREAM_EN | FC_WR_ALLOC_EN |
+				    FC_BRANCH_TARG_BUF_DIS | FC_L2CACHE_EN);
+			}
+		} else
+			cpufuncs = armv5_ec_cpufuncs;
+
 		cpu_reset_needs_v4_MMU_disable = 1;	/* V4 or higher */
 		get_cachetype_cp15();
 		pmap_pte_init_generic();

==== //depot/projects/mips2/src/sys/arm/arm/elf_machdep.c#4 (text+ko) ====

@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/elf_machdep.c,v 1.8 2008/09/24 10:14:37 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/elf_machdep.c,v 1.9 2008/10/13 18:59:59 raj Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -215,6 +215,7 @@
 {
 
 	cpu_idcache_wbinv_all();
+	cpu_l2cache_wbinv_all();
 	cpu_tlb_flushID();
 	return (0);
 }

==== //depot/projects/mips2/src/sys/arm/arm/genassym.c#6 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.11 2008/02/05 10:22:33 raj Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.12 2008/10/13 18:59:59 raj Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/assym.h>
@@ -79,7 +79,9 @@
 ASSYM(CF_CONTROL, offsetof(struct cpu_functions, cf_control));
 ASSYM(CF_CONTEXT_SWITCH, offsetof(struct cpu_functions, cf_context_switch));
 ASSYM(CF_DCACHE_WB_RANGE, offsetof(struct cpu_functions, cf_dcache_wb_range));
+ASSYM(CF_L2CACHE_WB_RANGE, offsetof(struct cpu_functions, cf_l2cache_wb_range));
 ASSYM(CF_IDCACHE_WBINV_ALL, offsetof(struct cpu_functions, cf_idcache_wbinv_all));
+ASSYM(CF_L2CACHE_WBINV_ALL, offsetof(struct cpu_functions, cf_l2cache_wbinv_all));
 ASSYM(CF_TLB_FLUSHID_SE, offsetof(struct cpu_functions, cf_tlb_flushID_SE));
 ASSYM(CF_ICACHE_SYNC, offsetof(struct cpu_functions, cf_icache_sync_all));
 

==== //depot/projects/mips2/src/sys/arm/arm/identcpu.c#6 (text+ko) ====

@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/identcpu.c,v 1.13 2008/05/23 04:03:53 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/identcpu.c,v 1.14 2008/10/13 18:16:54 raj Exp $");
 #include <sys/systm.h>
 #include <sys/param.h>
 #include <sys/malloc.h>
@@ -75,7 +75,8 @@
 	CPU_CLASS_ARM10EJ,
 	CPU_CLASS_SA1,
 	CPU_CLASS_XSCALE,
-	CPU_CLASS_ARM11J
+	CPU_CLASS_ARM11J,
+	CPU_CLASS_MARVELL
 };
 
 static const char * const generic_steppings[16] = {
@@ -304,6 +305,15 @@
 	{ CPU_ID_ARM1136JSR1,	CPU_CLASS_ARM11J,	"ARM1136J-S R1",
 	  generic_steppings },
 
+	{ CPU_ID_MV88FR131,	CPU_CLASS_MARVELL,	"Feroceon 88FR131",
+	  generic_steppings },
+
+	{ CPU_ID_MV88FR571_VD,	CPU_CLASS_MARVELL,	"Feroceon 88FR571-VD",
+	  generic_steppings },
+
+	{ CPU_ID_MV88FR571_41,	CPU_CLASS_MARVELL,	"Early Feroceon 88FR571",
+	  generic_steppings },
+
 	{ 0, CPU_CLASS_NONE, NULL, NULL }
 };
 

==== //depot/projects/mips2/src/sys/arm/arm/locore.S#6 (text+ko) ====

@@ -37,7 +37,7 @@
 #include <machine/asm.h>
 #include <machine/armreg.h>
 #include <machine/pte.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.19 2008/04/08 10:24:41 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/locore.S,v 1.20 2008/10/13 19:14:14 raj Exp $");
 
 /* What size should this really be ? It is only used by initarm() */
 #define INIT_ARM_STACK_SIZE	2048
@@ -245,6 +245,8 @@
 	ldr	r0, .Lcpufuncs
 	mov	lr, pc
 	ldr	pc, [r0, #CF_IDCACHE_WBINV_ALL]
+	mov	lr, pc
+	ldr	pc, [r0, #CF_L2CACHE_WBINV_ALL]
 
 	/*
 	 * Load the cpu_reset_needs_v4_MMU_disable flag to determine if it's

==== //depot/projects/mips2/src/sys/arm/arm/pmap.c#14 (text+ko) ====

@@ -147,10 +147,11 @@
 #include "opt_vm.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.102 2008/09/28 05:36:25 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.104 2008/10/13 18:59:59 raj Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
+#include <sys/ktr.h>
 #include <sys/proc.h>
 #include <sys/malloc.h>
 #include <sys/msgbuf.h>
@@ -1196,27 +1197,104 @@
 }
 
 static PMAP_INLINE void
+pmap_l2cache_wbinv_range(pmap_t pm, vm_offset_t va, vm_size_t len)
+{
+	vm_size_t rest;
+	pd_entry_t *pde;
+	pt_entry_t *ptep;
+
+	rest = MIN(PAGE_SIZE - (va & PAGE_MASK), len);
+
+	while (len > 0) {
+		CTR4(KTR_PMAP, "pmap_l2cache_wbinv_range: pmap %p is_kernel %d "
+		    "va 0x%08x len 0x%x ", pm, pm == pmap_kernel(), va, rest);
+		if (pmap_get_pde_pte(pm, va, &pde, &ptep) && l2pte_valid(*ptep))
+		    cpu_l2cache_wb_range(va, rest);
+
+		len -= rest;
+		va += rest;
+
+		rest = MIN(PAGE_SIZE, len);
+	}
+}
+
+static PMAP_INLINE void
 pmap_idcache_wbinv_range(pmap_t pm, vm_offset_t va, vm_size_t len)
 {
 
-	if (pmap_is_current(pm))
+	if (pmap_is_current(pm)) {
 		cpu_idcache_wbinv_range(va, len);
+		pmap_l2cache_wbinv_range(pm, va, len);
+	}
 }
 
 static PMAP_INLINE void
-pmap_dcache_wb_range(pmap_t pm, vm_offset_t va, vm_size_t len,
-    boolean_t do_inv, boolean_t rd_only)
+pmap_l2cache_wb_range(pmap_t pm, vm_offset_t va, vm_size_t len)
+{
+	vm_size_t rest;
+	pd_entry_t *pde;
+	pt_entry_t *ptep;
+
+	rest = MIN(PAGE_SIZE - (va & PAGE_MASK), len);
+
+	while (len > 0) {
+		CTR4(KTR_PMAP, "pmap_l2cache_wb_range: pmap %p is_kernel %d "
+		    "va 0x%08x len 0x%x ", pm, pm == pmap_kernel(), va, rest);
+		if (pmap_get_pde_pte(pm, va, &pde, &ptep) && l2pte_valid(*ptep))
+		    cpu_l2cache_wb_range(va, rest);
+
+		len -= rest;
+		va += rest;
+
+		rest = MIN(PAGE_SIZE, len);
+	}
+}
+
+static PMAP_INLINE void
+pmap_l2cache_inv_range(pmap_t pm, vm_offset_t va, vm_size_t len)
 {
+	vm_size_t rest;
+	pd_entry_t *pde;
+	pt_entry_t *ptep;
+
+	rest = MIN(PAGE_SIZE - (va & PAGE_MASK), len);
+
+	while (len > 0) {
+		CTR4(KTR_PMAP, "pmap_l2cache_wb_range: pmap %p is_kernel %d "
+		    "va 0x%08x len 0x%x ", pm, pm == pmap_kernel(), va, rest);
+		if (pmap_get_pde_pte(pm, va, &pde, &ptep) && l2pte_valid(*ptep)) 
+		    cpu_l2cache_inv_range(va, rest);
+
+		len -= rest;
+		va += rest;
 
+		rest = MIN(PAGE_SIZE, len);
+	}
+}
+
+static PMAP_INLINE void
+pmap_dcache_wb_range(pmap_t pm, vm_offset_t va, vm_size_t len, boolean_t do_inv,
+    boolean_t rd_only)
+{
+	CTR4(KTR_PMAP, "pmap_dcache_wb_range: pmap %p is_kernel %d va 0x%08x "
+	    "len 0x%x ", pm, pm == pmap_kernel(), va, len);
+	CTR2(KTR_PMAP, " do_inv %d rd_only %d", do_inv, rd_only);
+
 	if (pmap_is_current(pm)) {
 		if (do_inv) {
-			if (rd_only)
+			if (rd_only) {
 				cpu_dcache_inv_range(va, len);
-			else
+				pmap_l2cache_inv_range(pm, va, len);
+			}
+			else {
 				cpu_dcache_wbinv_range(va, len);
+				pmap_l2cache_wbinv_range(pm, va, len);
+			}
 		} else
-		if (!rd_only)
+		if (!rd_only) {
 			cpu_dcache_wb_range(va, len);
+			pmap_l2cache_wb_range(pm, va, len);
+		}
 	}
 }
 
@@ -1224,16 +1302,20 @@
 pmap_idcache_wbinv_all(pmap_t pm)
 {
 
-	if (pmap_is_current(pm))
+	if (pmap_is_current(pm)) {
 		cpu_idcache_wbinv_all();
+		cpu_l2cache_wbinv_all();
+	}
 }
 
 static PMAP_INLINE void
 pmap_dcache_wbinv_all(pmap_t pm)
 {
 
-	if (pmap_is_current(pm))
+	if (pmap_is_current(pm)) {
 		cpu_dcache_wbinv_all();
+		cpu_l2cache_wbinv_all();
+	}
 }
 
 /*
@@ -2169,6 +2251,8 @@
 			PTE_SYNC(pdep);
 			cpu_dcache_wbinv_range((vm_offset_t)pdep,
 			    sizeof(*pdep));
+			cpu_l2cache_wbinv_range((vm_offset_t)pdep,
+			    sizeof(*pdep));
 			rv = 1;
 		}
 	} else {
@@ -2185,6 +2269,8 @@
 			PTE_SYNC(ptep);
 			cpu_dcache_wbinv_range((vm_offset_t)ptep,
 			    sizeof(*ptep));
+			cpu_l2cache_wbinv_range((vm_offset_t)ptep,
+			    sizeof(*ptep));
 			rv = 1;
 		}
 	}
@@ -2337,6 +2423,7 @@
 	}
 
 	cpu_dcache_wbinv_all();
+	cpu_l2cache_wbinv_all();
 	cpu_tlb_flushID();
 	cpu_cpwait();
 
@@ -2373,6 +2460,7 @@
 	mtx_init(&l1_lru_lock, "l1 list lock", NULL, MTX_DEF);
 	pmap_init_l1(l1, kernel_l1pt);
 	cpu_dcache_wbinv_all();
+	cpu_l2cache_wbinv_all();
 
 	virtual_avail = round_page(virtual_avail);
 	virtual_end = lastaddr;
@@ -2402,6 +2490,7 @@
 	struct pcb *pcb;
 	
 	pmap_idcache_wbinv_all(pmap);
+	cpu_l2cache_wbinv_all();
 	pmap_tlb_flushID(pmap);
 	cpu_cpwait();
 	if (vector_page < KERNBASE) {
@@ -2589,6 +2678,7 @@
 	 * rarely
 	 */
 	cpu_dcache_wbinv_all();
+	cpu_l2cache_wbinv_all();
 	cpu_tlb_flushD();
 	cpu_cpwait();
 	kernel_vm_end = pmap_curmaxkvaddr;
@@ -2614,6 +2704,7 @@
 	vm_page_lock_queues();
 	PMAP_LOCK(pmap);
 	cpu_idcache_wbinv_all();
+	cpu_l2cache_wbinv_all();
 	for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) {
 		if (pv->pv_flags & PVF_WIRED) {
 			/* The page is wired, cannot remove it now. */
@@ -2726,6 +2817,7 @@
 	    (uint32_t) pte, opte, *pte));
 	if (l2pte_valid(opte)) {
 		cpu_dcache_wbinv_range(va, PAGE_SIZE);
+		cpu_l2cache_wbinv_range(va, PAGE_SIZE);
 		cpu_tlb_flushD_SE(va);
 		cpu_cpwait();
 	} else {
@@ -2784,6 +2876,7 @@
 	opte = *pte;
 	if (l2pte_valid(opte)) {
 		cpu_dcache_wbinv_range(va, PAGE_SIZE);
+		cpu_l2cache_wbinv_range(va, PAGE_SIZE);
 		cpu_tlb_flushD_SE(va);

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



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