Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Dec 2006 20:30:56 GMT
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 111215 for review
Message-ID:  <200612062030.kB6KUula091029@repoman.freebsd.org>

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

Change 111215 by pjd@pjd_anger on 2006/12/06 20:30:11

	IFC.

Affected files ...

.. //depot/projects/crypto/sys/amd64/amd64/genassym.c#2 integrate
.. //depot/projects/crypto/sys/amd64/amd64/machdep.c#2 integrate
.. //depot/projects/crypto/sys/amd64/amd64/minidump_machdep.c#2 integrate
.. //depot/projects/crypto/sys/amd64/amd64/pmap.c#2 integrate
.. //depot/projects/crypto/sys/amd64/amd64/trap.c#2 integrate
.. //depot/projects/crypto/sys/amd64/conf/GENERIC#2 integrate
.. //depot/projects/crypto/sys/amd64/include/pmap.h#2 integrate
.. //depot/projects/crypto/sys/amd64/isa/clock.c#2 integrate
.. //depot/projects/crypto/sys/amd64/linux32/linux32_sysvec.c#2 integrate
.. //depot/projects/crypto/sys/arm/arm/cpufunc.c#2 integrate
.. //depot/projects/crypto/sys/arm/arm/genassym.c#2 integrate
.. //depot/projects/crypto/sys/arm/arm/pmap.c#2 integrate
.. //depot/projects/crypto/sys/arm/at91/at91_pio.c#2 integrate
.. //depot/projects/crypto/sys/arm/at91/at91_spi.c#2 integrate
.. //depot/projects/crypto/sys/arm/at91/at91_twi.c#2 integrate
.. //depot/projects/crypto/sys/arm/at91/kb920x_machdep.c#2 integrate
.. //depot/projects/crypto/sys/arm/include/cpuconf.h#2 integrate
.. //depot/projects/crypto/sys/arm/sa11x0/assabet_machdep.c#2 integrate
.. //depot/projects/crypto/sys/arm/xscale/i80321/ep80219_machdep.c#2 integrate
.. //depot/projects/crypto/sys/arm/xscale/i80321/i80321_space.c#2 integrate
.. //depot/projects/crypto/sys/arm/xscale/i80321/iq31244_machdep.c#2 integrate
.. //depot/projects/crypto/sys/arm/xscale/ixp425/avila_machdep.c#2 integrate
.. //depot/projects/crypto/sys/arm/xscale/ixp425/ixdp425reg.h#2 integrate
.. //depot/projects/crypto/sys/boot/common/loader.8#2 integrate
.. //depot/projects/crypto/sys/boot/i386/btx/btx/btx.S#2 integrate
.. //depot/projects/crypto/sys/cam/cam_ccb.h#2 integrate
.. //depot/projects/crypto/sys/cam/cam_periph.c#2 integrate
.. //depot/projects/crypto/sys/cam/cam_xpt.c#2 integrate
.. //depot/projects/crypto/sys/cam/cam_xpt.h#2 integrate
.. //depot/projects/crypto/sys/cam/scsi/scsi_all.h#2 integrate
.. //depot/projects/crypto/sys/cam/scsi/scsi_cd.c#2 integrate
.. //depot/projects/crypto/sys/cam/scsi/scsi_ch.c#2 integrate
.. //depot/projects/crypto/sys/cam/scsi/scsi_da.c#2 integrate
.. //depot/projects/crypto/sys/cam/scsi/scsi_pass.c#2 integrate
.. //depot/projects/crypto/sys/cam/scsi/scsi_pt.c#2 integrate
.. //depot/projects/crypto/sys/cam/scsi/scsi_sa.c#2 integrate
.. //depot/projects/crypto/sys/cam/scsi/scsi_ses.c#2 integrate
.. //depot/projects/crypto/sys/cam/scsi/scsi_targ_bh.c#2 integrate
.. //depot/projects/crypto/sys/cam/scsi/scsi_target.c#2 integrate
.. //depot/projects/crypto/sys/compat/linprocfs/linprocfs.c#2 integrate
.. //depot/projects/crypto/sys/compat/linsysfs/linsysfs.c#2 integrate
.. //depot/projects/crypto/sys/compat/linux/linux_misc.c#2 integrate
.. //depot/projects/crypto/sys/compat/linux/linux_stats.c#2 integrate
.. //depot/projects/crypto/sys/conf/files#5 integrate
.. //depot/projects/crypto/sys/conf/files.arm#2 integrate
.. //depot/projects/crypto/sys/conf/options#2 integrate
.. //depot/projects/crypto/sys/ddb/db_ps.c#2 integrate
.. //depot/projects/crypto/sys/dev/ath/if_ath_pci.c#2 integrate
.. //depot/projects/crypto/sys/dev/bge/if_bge.c#2 integrate
.. //depot/projects/crypto/sys/dev/bge/if_bgereg.h#2 integrate
.. //depot/projects/crypto/sys/dev/ciss/ciss.c#2 integrate
.. //depot/projects/crypto/sys/dev/dc/if_dc.c#2 integrate
.. //depot/projects/crypto/sys/dev/dc/if_dcreg.h#2 integrate
.. //depot/projects/crypto/sys/dev/ep/if_ep.c#2 integrate
.. //depot/projects/crypto/sys/dev/firewire/fwdev.c#2 integrate
.. //depot/projects/crypto/sys/dev/flash/at45d.c#1 branch
.. //depot/projects/crypto/sys/dev/fxp/if_fxp.c#2 integrate
.. //depot/projects/crypto/sys/dev/fxp/if_fxpvar.h#2 integrate
.. //depot/projects/crypto/sys/dev/gem/if_gem.c#2 integrate
.. //depot/projects/crypto/sys/dev/gem/if_gemvar.h#2 integrate
.. //depot/projects/crypto/sys/dev/hme/if_hme.c#2 integrate
.. //depot/projects/crypto/sys/dev/hme/if_hmevar.h#2 integrate
.. //depot/projects/crypto/sys/dev/iicbus/iic.h#2 integrate
.. //depot/projects/crypto/sys/dev/iicbus/iicbb.c#2 integrate
.. //depot/projects/crypto/sys/dev/iicbus/iicbus_if.m#2 integrate
.. //depot/projects/crypto/sys/dev/iicbus/iiconf.c#2 integrate
.. //depot/projects/crypto/sys/dev/iicbus/iiconf.h#2 integrate
.. //depot/projects/crypto/sys/dev/ipmi/ipmi.c#2 integrate
.. //depot/projects/crypto/sys/dev/isp/isp.c#2 integrate
.. //depot/projects/crypto/sys/dev/isp/isp_freebsd.c#2 integrate
.. //depot/projects/crypto/sys/dev/isp/isp_target.c#2 integrate
.. //depot/projects/crypto/sys/dev/isp/ispvar.h#2 integrate
.. //depot/projects/crypto/sys/dev/le/am7990.c#2 integrate
.. //depot/projects/crypto/sys/dev/le/am79900.c#2 integrate
.. //depot/projects/crypto/sys/dev/le/lance.c#2 integrate
.. //depot/projects/crypto/sys/dev/le/lancevar.h#2 integrate
.. //depot/projects/crypto/sys/dev/mii/acphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/amphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/bmtphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/brgphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/ciphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/gentbi.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/inphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/ip1000phy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/lxtphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/mii_physubr.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/miidevs#2 integrate
.. //depot/projects/crypto/sys/dev/mii/miivar.h#2 integrate
.. //depot/projects/crypto/sys/dev/mii/mlphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/nsgphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/nsphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/pnaphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/qsphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/rgephy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/rlphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/tdkphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/tlphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mii/xmphy.c#2 integrate
.. //depot/projects/crypto/sys/dev/mpt/mpt.c#2 integrate
.. //depot/projects/crypto/sys/dev/mpt/mpt.h#2 integrate
.. //depot/projects/crypto/sys/dev/mpt/mpt_cam.c#2 integrate
.. //depot/projects/crypto/sys/dev/mpt/mpt_raid.c#2 integrate
.. //depot/projects/crypto/sys/dev/mxge/if_mxge.c#2 integrate
.. //depot/projects/crypto/sys/dev/nve/if_nvereg.h#2 integrate
.. //depot/projects/crypto/sys/dev/sound/pci/hda/hdac.c#2 integrate
.. //depot/projects/crypto/sys/dev/sound/pci/ich.c#2 integrate
.. //depot/projects/crypto/sys/dev/usb/if_aue.c#2 integrate
.. //depot/projects/crypto/sys/dev/usb/if_auereg.h#2 integrate
.. //depot/projects/crypto/sys/dev/usb/ukbd.c#2 integrate
.. //depot/projects/crypto/sys/dev/usb/usb_quirks.c#2 integrate
.. //depot/projects/crypto/sys/dev/usb/usb_quirks.h#2 integrate
.. //depot/projects/crypto/sys/dev/usb/usbdevs#2 integrate
.. //depot/projects/crypto/sys/dev/usb/usbdi.c#2 integrate
.. //depot/projects/crypto/sys/dev/vge/if_vge.c#2 integrate
.. //depot/projects/crypto/sys/fs/msdosfs/msdosfs_vnops.c#2 integrate
.. //depot/projects/crypto/sys/fs/procfs/procfs_status.c#2 integrate
.. //depot/projects/crypto/sys/fs/unionfs/union.h#2 integrate
.. //depot/projects/crypto/sys/fs/unionfs/union_subr.c#2 integrate
.. //depot/projects/crypto/sys/fs/unionfs/union_vfsops.c#2 integrate
.. //depot/projects/crypto/sys/fs/unionfs/union_vnops.c#2 integrate
.. //depot/projects/crypto/sys/geom/journal/g_journal.c#2 integrate
.. //depot/projects/crypto/sys/i386/i386/genassym.c#2 integrate
.. //depot/projects/crypto/sys/i386/i386/machdep.c#2 integrate
.. //depot/projects/crypto/sys/i386/isa/clock.c#2 integrate
.. //depot/projects/crypto/sys/ia64/ia64/machdep.c#2 integrate
.. //depot/projects/crypto/sys/kern/init_main.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_clock.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_fork.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_idle.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_intr.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_kse.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_poll.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_proc.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_resource.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_subr.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_switch.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_synch.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_thr.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_thread.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_time.c#2 integrate
.. //depot/projects/crypto/sys/kern/kern_umtx.c#2 integrate
.. //depot/projects/crypto/sys/kern/ksched.c#2 integrate
.. //depot/projects/crypto/sys/kern/link_elf_obj.c#2 integrate
.. //depot/projects/crypto/sys/kern/sched_4bsd.c#2 integrate
.. //depot/projects/crypto/sys/kern/sched_ule.c#2 integrate
.. //depot/projects/crypto/sys/kern/subr_lock.c#2 integrate
.. //depot/projects/crypto/sys/kern/subr_prf.c#2 integrate
.. //depot/projects/crypto/sys/kern/subr_rman.c#2 integrate
.. //depot/projects/crypto/sys/kern/subr_trap.c#2 integrate
.. //depot/projects/crypto/sys/kern/tty.c#2 integrate
.. //depot/projects/crypto/sys/modules/Makefile#4 integrate
.. //depot/projects/crypto/sys/net/bridgestp.c#2 integrate
.. //depot/projects/crypto/sys/net/bridgestp.h#2 integrate
.. //depot/projects/crypto/sys/net/ethernet.h#2 integrate
.. //depot/projects/crypto/sys/net/if.c#2 integrate
.. //depot/projects/crypto/sys/net/if_atmsubr.c#2 integrate
.. //depot/projects/crypto/sys/net/if_bridge.c#2 integrate
.. //depot/projects/crypto/sys/net/if_bridgevar.h#2 integrate
.. //depot/projects/crypto/sys/net/if_llc.h#2 integrate
.. //depot/projects/crypto/sys/net/if_ppp.c#2 integrate
.. //depot/projects/crypto/sys/net/if_pppvar.h#2 integrate
.. //depot/projects/crypto/sys/net/netisr.c#2 integrate
.. //depot/projects/crypto/sys/net/ppp_tty.c#2 integrate
.. //depot/projects/crypto/sys/net80211/ieee80211.h#2 integrate
.. //depot/projects/crypto/sys/net80211/ieee80211_input.c#2 integrate
.. //depot/projects/crypto/sys/net80211/ieee80211_output.c#2 integrate
.. //depot/projects/crypto/sys/netgraph/ng_nat.c#2 integrate
.. //depot/projects/crypto/sys/netinet/igmp.c#2 integrate
.. //depot/projects/crypto/sys/netinet/in_pcb.c#2 integrate
.. //depot/projects/crypto/sys/netinet/ip_carp.h#2 integrate
.. //depot/projects/crypto/sys/netinet/libalias/alias.c#2 integrate
.. //depot/projects/crypto/sys/netinet/libalias/alias.h#2 integrate
.. //depot/projects/crypto/sys/nfs/nfsproto.h#2 integrate
.. //depot/projects/crypto/sys/nfs4client/nfs4_subs.c#2 integrate
.. //depot/projects/crypto/sys/nfs4client/nfs4_vn_subs.c#2 integrate
.. //depot/projects/crypto/sys/nfsclient/bootp_subr.c#2 integrate
.. //depot/projects/crypto/sys/nfsclient/nfs_diskless.c#2 integrate
.. //depot/projects/crypto/sys/nfsclient/nfs_node.c#2 integrate
.. //depot/projects/crypto/sys/nfsclient/nfs_socket.c#2 integrate
.. //depot/projects/crypto/sys/nfsclient/nfs_vfsops.c#2 integrate
.. //depot/projects/crypto/sys/nfsclient/nfsdiskless.h#2 integrate
.. //depot/projects/crypto/sys/pc98/pc98/machdep.c#2 integrate
.. //depot/projects/crypto/sys/pci/if_pcn.c#2 integrate
.. //depot/projects/crypto/sys/pci/if_pcnreg.h#2 integrate
.. //depot/projects/crypto/sys/pci/if_rl.c#2 integrate
.. //depot/projects/crypto/sys/pci/if_rlreg.h#2 integrate
.. //depot/projects/crypto/sys/pci/if_xl.c#2 integrate
.. //depot/projects/crypto/sys/pci/if_xlreg.h#2 integrate
.. //depot/projects/crypto/sys/powerpc/include/pmap.h#2 integrate
.. //depot/projects/crypto/sys/powerpc/powerpc/genassym.c#2 integrate
.. //depot/projects/crypto/sys/powerpc/powerpc/machdep.c#2 integrate
.. //depot/projects/crypto/sys/powerpc/powerpc/mmu_if.m#2 integrate
.. //depot/projects/crypto/sys/powerpc/powerpc/mmu_oea.c#2 integrate
.. //depot/projects/crypto/sys/powerpc/powerpc/pmap_dispatch.c#2 integrate
.. //depot/projects/crypto/sys/powerpc/powerpc/uio_machdep.c#2 integrate
.. //depot/projects/crypto/sys/sparc64/sparc64/genassym.c#2 integrate
.. //depot/projects/crypto/sys/sparc64/sparc64/machdep.c#2 integrate
.. //depot/projects/crypto/sys/sun4v/conf/GENERIC#2 integrate
.. //depot/projects/crypto/sys/sun4v/include/pcb.h#2 integrate
.. //depot/projects/crypto/sys/sun4v/include/tsb.h#2 integrate
.. //depot/projects/crypto/sys/sun4v/sun4v/exception.S#2 integrate
.. //depot/projects/crypto/sys/sun4v/sun4v/machdep.c#2 integrate
.. //depot/projects/crypto/sys/sun4v/sun4v/pmap.c#2 integrate
.. //depot/projects/crypto/sys/sun4v/sun4v/trap.c#2 integrate
.. //depot/projects/crypto/sys/sun4v/sun4v/tsb.c#2 integrate
.. //depot/projects/crypto/sys/sys/param.h#2 integrate
.. //depot/projects/crypto/sys/sys/pcpu.h#2 integrate
.. //depot/projects/crypto/sys/sys/proc.h#2 integrate
.. //depot/projects/crypto/sys/sys/rtprio.h#2 integrate
.. //depot/projects/crypto/sys/sys/runq.h#2 integrate
.. //depot/projects/crypto/sys/sys/sched.h#2 integrate
.. //depot/projects/crypto/sys/sys/uio.h#2 integrate
.. //depot/projects/crypto/sys/sys/umtx.h#2 integrate
.. //depot/projects/crypto/sys/sys/vmmeter.h#2 integrate
.. //depot/projects/crypto/sys/vm/vm_glue.c#2 integrate
.. //depot/projects/crypto/sys/vm/vm_zeroidle.c#2 integrate
.. //depot/projects/crypto/tools/tools/nanobsd/nanobsd.sh#2 integrate

Differences ...

==== //depot/projects/crypto/sys/amd64/amd64/genassym.c#2 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.158 2006/11/01 04:54:49 jb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.159 2006/11/30 04:17:04 jb Exp $");
 
 #include "opt_compat.h"
 #include "opt_kstack_pages.h"
@@ -185,7 +185,6 @@
 ASSYM(PC_FPCURTHREAD, offsetof(struct pcpu, pc_fpcurthread));
 ASSYM(PC_IDLETHREAD, offsetof(struct pcpu, pc_idlethread));
 ASSYM(PC_CURPCB, offsetof(struct pcpu, pc_curpcb));
-ASSYM(PC_CONS_BUFR, offsetof(struct pcpu, pc_cons_bufr));
 ASSYM(PC_CPUID, offsetof(struct pcpu, pc_cpuid));
 ASSYM(PC_SCRATCH_RSP, offsetof(struct pcpu, pc_scratch_rsp));
 ASSYM(PC_CURPMAP, offsetof(struct pcpu, pc_curpmap));

==== //depot/projects/crypto/sys/amd64/amd64/machdep.c#2 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.664 2006/11/19 20:54:57 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.666 2006/12/06 18:27:17 sobomax Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -514,6 +514,7 @@
  * help lock contention somewhat, and this is critical for HTT. -Peter
  */
 static int	cpu_idle_hlt = 1;
+TUNABLE_INT("machdep.cpu_idle_hlt", &cpu_idle_hlt);
 SYSCTL_INT(_machdep, OID_AUTO, cpu_idle_hlt, CTLFLAG_RW,
     &cpu_idle_hlt, 0, "Idle loop HLT enable");
 
@@ -1121,11 +1122,7 @@
  	 * This may be done better later if it gets more high level
  	 * components in it. If so just link td->td_proc here.
 	 */
-#ifdef KSE
-	proc_linkup(&proc0, &ksegrp0, &thread0);
-#else
 	proc_linkup(&proc0, &thread0);
-#endif
 
 	preload_metadata = (caddr_t)(uintptr_t)(modulep + KERNBASE);
 	preload_bootstrap_relocate(KERNBASE);

==== //depot/projects/crypto/sys/amd64/amd64/minidump_machdep.c#2 (text) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.1 2006/04/21 04:24:50 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.2 2006/12/05 11:31:33 ru Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -215,7 +215,7 @@
 		j = ((va >> PDRSHIFT) & ((1ul << NPDEPGSHIFT) - 1));
 		if ((pd[j] & (PG_PS | PG_V)) == (PG_PS | PG_V))  {
 			/* This is an entire 2M page. */
-			pa = pd[j] & PG_FRAME & ~PDRMASK;
+			pa = pd[j] & PG_PS_FRAME;
 			for (k = 0; k < NPTEPG; k++) {
 				if (is_dumpable(pa))
 					dump_add_page(pa);
@@ -326,7 +326,7 @@
 		j = ((va >> PDRSHIFT) & ((1ul << NPDEPGSHIFT) - 1));
 		if ((pd[j] & (PG_PS | PG_V)) == (PG_PS | PG_V))  {
 			/* This is a single 2M block. Generate a fake PTP */
-			pa = pd[j] & PG_FRAME & ~PDRMASK;
+			pa = pd[j] & PG_PS_FRAME;
 			for (k = 0; k < NPTEPG; k++) {
 				fakept[k] = (pa + (k * PAGE_SIZE)) | PG_V | PG_RW | PG_A | PG_M;
 			}

==== //depot/projects/crypto/sys/amd64/amd64/pmap.c#2 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.576 2006/11/23 21:37:04 ru Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.577 2006/12/05 11:31:33 ru Exp $");
 
 /*
  *	Manages physical address maps.
@@ -947,9 +947,7 @@
 		pde = *pdep;
 		if (pde) {
 			if ((pde & PG_PS) != 0) {
-				KASSERT((pde & PG_FRAME & PDRMASK) == 0,
-				    ("pmap_extract: bad pde"));
-				rtval = (pde & PG_FRAME) | (va & PDRMASK);
+				rtval = (pde & PG_PS_FRAME) | (va & PDRMASK);
 				PMAP_UNLOCK(pmap);
 				return rtval;
 			}
@@ -982,9 +980,7 @@
 	if (pdep != NULL && (pde = *pdep)) {
 		if (pde & PG_PS) {
 			if ((pde & PG_RW) || (prot & VM_PROT_WRITE) == 0) {
-				KASSERT((pde & PG_FRAME & PDRMASK) == 0,
-				    ("pmap_extract_and_hold: bad pde"));
-				m = PHYS_TO_VM_PAGE((pde & PG_FRAME) |
+				m = PHYS_TO_VM_PAGE((pde & PG_PS_FRAME) |
 				    (va & PDRMASK));
 				vm_page_hold(m);
 			}
@@ -1013,7 +1009,7 @@
 	} else {
 		pde = vtopde(va);
 		if (*pde & PG_PS) {
-			pa = (*pde & ~(NBPDR - 1)) | (va & (NBPDR - 1));
+			pa = (*pde & PG_PS_FRAME) | (va & PDRMASK);
 		} else {
 			pa = *vtopte(va);
 			pa = (pa & PG_FRAME) | (va & PAGE_MASK);

==== //depot/projects/crypto/sys/amd64/amd64/trap.c#2 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.311 2006/10/26 21:42:16 jb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.312 2006/11/28 20:04:00 ru Exp $");
 
 /*
  * AMD64 Trap and System call handling
@@ -646,9 +646,10 @@
 #endif
 	if (type == T_PAGEFLT) {
 		printf("fault virtual address	= 0x%lx\n", eva);
-		printf("fault code		= %s %s, %s\n",
+		printf("fault code		= %s %s %s, %s\n",
 			code & PGEX_U ? "user" : "supervisor",
 			code & PGEX_W ? "write" : "read",
+			code & PGEX_I ? "instruction" : "data",
 			code & PGEX_P ? "protection violation" : "page not present");
 	}
 	printf("instruction pointer	= 0x%lx:0x%lx\n",

==== //depot/projects/crypto/sys/amd64/conf/GENERIC#2 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first
 # in NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.469 2006/11/22 10:34:12 ru Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.470 2006/12/03 21:02:09 netchild Exp $
 
 cpu		HAMMER
 ident		GENERIC
@@ -71,11 +71,6 @@
 # Make an SMP-capable kernel by default
 options 	SMP			# Symmetric MultiProcessor Kernel
 
-# Linux 32-bit ABI support
-options 	COMPAT_LINUX32		# Compatible with i386 linux binaries 
-options 	LINPROCFS
-options		LINSYSFS
-
 # Bus support.
 device		acpi
 device		pci

==== //depot/projects/crypto/sys/amd64/include/pmap.h#2 (text+ko) ====

@@ -39,7 +39,7 @@
  *
  *	from: hp300: @(#)pmap.h	7.2 (Berkeley) 12/16/90
  *	from: @(#)pmap.h	7.4 (Berkeley) 5/12/91
- * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.137 2006/11/19 20:54:57 alc Exp $
+ * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.138 2006/12/05 11:31:33 ru Exp $
  */
 
 #ifndef _MACHINE_PMAP_H_
@@ -71,6 +71,7 @@
 #define PG_W		PG_AVAIL1	/* "Wired" pseudoflag */
 #define	PG_MANAGED	PG_AVAIL2
 #define	PG_FRAME	(0x000ffffffffff000ul)
+#define	PG_PS_FRAME	(0x000fffffffe00000ul)
 #define	PG_PROT		(PG_RW|PG_U)	/* all protection bits . */
 #define PG_N		(PG_NC_PWT|PG_NC_PCD)	/* Non-cacheable */
 

==== //depot/projects/crypto/sys/amd64/isa/clock.c#2 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.227 2006/10/02 18:23:36 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.228 2006/12/03 03:49:28 bde Exp $");
 
 /*
  * Routines to handle clock hardware.
@@ -115,6 +115,7 @@
 static	int	(*i8254_pending)(struct intsrc *);
 static	int	i8254_ticked;
 static	int	using_lapic_timer;
+static	int	rtc_reg = -1;
 static	u_char	rtc_statusa = RTCSA_DIVIDER | RTCSA_NOPROF;
 static	u_char	rtc_statusb = RTCSB_24HR;
 
@@ -421,24 +422,30 @@
 	u_char val;
 
 	RTC_LOCK;
-	outb(IO_RTC, reg);
-	inb(0x84);
+	if (rtc_reg != reg) {
+		inb(0x84);
+		outb(IO_RTC, reg);
+		rtc_reg = reg;
+		inb(0x84);
+	}
 	val = inb(IO_RTC + 1);
-	inb(0x84);
 	RTC_UNLOCK;
 	return (val);
 }
 
-static __inline void
-writertc(u_char reg, u_char val)
+static void
+writertc(int reg, u_char val)
 {
 
 	RTC_LOCK;
-	inb(0x84);
-	outb(IO_RTC, reg);
+	if (rtc_reg != reg) {
+		inb(0x84);
+		outb(IO_RTC, reg);
+		rtc_reg = reg;
+		inb(0x84);
+	}
+	outb(IO_RTC + 1, val);
 	inb(0x84);
-	outb(IO_RTC + 1, val);
-	inb(0x84);		/* XXX work around wrong order in rtcin() */
 	RTC_UNLOCK;
 }
 

==== //depot/projects/crypto/sys/amd64/linux32/linux32_sysvec.c#2 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.25 2006/10/31 17:53:02 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.26 2006/12/03 21:06:07 netchild Exp $");
 #include "opt_compat.h"
 
 #ifndef COMPAT_IA32
@@ -1120,7 +1120,7 @@
 			printf("Could not deinstall ELF interpreter entry\n");
 		break;
 	default:
-		break;
+		return EOPNOTSUPP;
 	}
 	return error;
 }

==== //depot/projects/crypto/sys/arm/arm/cpufunc.c#2 (text+ko) ====

@@ -45,7 +45,7 @@
  * Created      : 30/01/97
  */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.14 2006/11/19 23:55:23 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.15 2006/11/30 23:34:07 cognet Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1885,7 +1885,9 @@
 xscale_setup(args)
 	char *args;
 {
+#ifndef CPU_XSCALE_CORE3
 	uint32_t auxctl;
+#endif
 	int cpuctrl, cpuctrlmask;
 
 	/*
@@ -1931,6 +1933,7 @@
 /*	cpu_control(cpuctrlmask, cpuctrl);*/
 	cpu_control(0xffffffff, cpuctrl);
 
+#ifndef CPU_XSCALE_CORE3
 	/* Make sure write coalescing is turned on */
 	__asm __volatile("mrc p15, 0, %0, c1, c0, 1"
 		: "=r" (auxctl));
@@ -1941,6 +1944,7 @@
 #endif
 	__asm __volatile("mcr p15, 0, %0, c1, c0, 1"
 		: : "r" (auxctl));
+#endif
 }
 #endif	/* CPU_XSCALE_80200 || CPU_XSCALE_80321 || CPU_XSCALE_PXA2X0 || CPU_XSCALE_IXP425 
 	   CPU_XSCALE_80219 */

==== //depot/projects/crypto/sys/arm/arm/genassym.c#2 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.7 2006/11/01 04:54:50 jb Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/genassym.c,v 1.8 2006/11/30 04:17:04 jb Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/assym.h>
@@ -69,7 +69,6 @@
 ASSYM(PCB_PC, offsetof(struct pcb, un_32.pcb32_pc));
 ASSYM(PCB_SP, offsetof(struct pcb, un_32.pcb32_sp));
 
-ASSYM(PC_CONS_BUFR, offsetof(struct pcpu, pc_cons_bufr));
 ASSYM(PC_CURPCB, offsetof(struct pcpu, pc_curpcb));
 ASSYM(PC_CURTHREAD, offsetof(struct pcpu, pc_curthread));
 ASSYM(M_LEN, offsetof(struct mbuf, m_len));

==== //depot/projects/crypto/sys/arm/arm/pmap.c#2 (text+ko) ====

@@ -147,7 +147,7 @@
 #include "opt_vm.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.73 2006/11/12 21:48:32 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.77 2006/12/04 12:55:00 cognet Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
@@ -585,7 +585,7 @@
 #endif /* ARM_MMU_SA1 == 1*/
 
 #if ARM_MMU_XSCALE == 1
-#if (ARM_NMMUS > 1)
+#if (ARM_NMMUS > 1) || defined (CPU_XSCALE_CORE3)
 static u_int xscale_use_minidata;
 #endif
 
@@ -614,9 +614,11 @@
 	 * is significantly faster than the traditional, write-through
 	 * behavior of this case.
 	 */
+#ifndef CPU_XSCALE_CORE3
 	pte_l1_s_cache_mode |= L1_S_XSCALE_TEX(TEX_XSCALE_X);
 	pte_l2_l_cache_mode |= L2_XSCALE_L_TEX(TEX_XSCALE_X);
 	pte_l2_s_cache_mode |= L2_XSCALE_T_TEX(TEX_XSCALE_X);
+#endif
 #endif /* XSCALE_CACHE_READ_WRITE_ALLOCATE */
 #ifdef XSCALE_CACHE_WRITE_THROUGH
 	/*
@@ -673,8 +675,16 @@
 	pte_l1_c_proto = L1_C_PROTO_xscale;
 	pte_l2_s_proto = L2_S_PROTO_xscale;
 
+#ifdef CPU_XSCALE_CORE3
+	pmap_copy_page_func = pmap_copy_page_generic;
+	pmap_zero_page_func = pmap_zero_page_generic;
+	xscale_use_minidata = 0;
+	pte_l1_s_cache_mode_pt = pte_l2_l_cache_mode_pt =
+	    pte_l2_s_cache_mode_pt = 0;
+#else
 	pmap_copy_page_func = pmap_copy_page_xscale;
 	pmap_zero_page_func = pmap_zero_page_xscale;
+#endif
 
 	/*
 	 * Disable ECC protection of page table access, for now.
@@ -2797,6 +2807,7 @@
 		if (TAILQ_EMPTY(&m->md.pv_list))
 			vm_page_flag_clear(m, PG_WRITEABLE);
 		pmap_free_pv_entry(pv);
+		pmap_free_l2_bucket(pmap, l2b, 1);
 	}
 	vm_page_unlock_queues();
 	cpu_idcache_wbinv_all();
@@ -3136,6 +3147,7 @@
 
 	if (TAILQ_EMPTY(&m->md.pv_list))
 		return;
+	mtx_assert(&vm_page_queue_mtx, MA_OWNED);
 	curpm = vmspace_pmap(curproc->p_vmspace);
 	while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) {
 		if (flush == FALSE && (pv->pv_pmap == curpm ||
@@ -3437,7 +3449,8 @@
 			else if (!pve && 
 			    !(m->flags & (PG_UNMANAGED | PG_FICTITIOUS)))
 				pve = pmap_get_pv_entry();
-			KASSERT(pve != NULL, ("No pv"));
+			KASSERT(pve != NULL || m->flags & (PG_UNMANAGED | 
+			    PG_FICTITIOUS), ("No pv"));
 			oflags = pve->pv_flags;
 			
 			/*
@@ -4005,7 +4018,7 @@
  * StrongARM accesses to non-cached pages are non-burst making writing
  * _any_ bulk data very slow.
  */
-#if (ARM_MMU_GENERIC + ARM_MMU_SA1) != 0
+#if (ARM_MMU_GENERIC + ARM_MMU_SA1) != 0 || defined(CPU_XSCALE_CORE3)
 void
 pmap_zero_page_generic(vm_paddr_t phys, int off, int size)
 {
@@ -4094,7 +4107,7 @@
 	pt_entry_t *ptep, *sptep, pte;
 	vm_offset_t next_bucket, eva;
 
-#if (ARM_NMMUS > 1)
+#if (ARM_NMMUS > 1) || defined(CPU_XSCALE_CORE3)
 	if (xscale_use_minidata == 0)
 		return;
 #endif
@@ -4267,7 +4280,7 @@
  * hook points. The same comment regarding cachability as in
  * pmap_zero_page also applies here.
  */
-#if  (ARM_MMU_GENERIC + ARM_MMU_SA1) != 0 
+#if  (ARM_MMU_GENERIC + ARM_MMU_SA1) != 0 || defined (CPU_XSCALE_CORE3)
 void
 pmap_copy_page_generic(vm_paddr_t src, vm_paddr_t dst)
 {
@@ -4430,6 +4443,9 @@
 int
 pmap_ts_referenced(vm_page_t m)
 {
+
+	if (m->flags & PG_FICTITIOUS)
+		return (0);
 	return (pmap_clearbit(m, PVF_REF));
 }
 

==== //depot/projects/crypto/sys/arm/at91/at91_pio.c#2 (text) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91_pio.c,v 1.3 2006/07/14 22:22:57 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91_pio.c,v 1.4 2006/11/29 08:17:40 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -154,8 +154,8 @@
 		AT91_PIO_LOCK_DESTROY(sc);
 		goto out;
 	}
-	sc->cdev = make_dev(&at91_pio_cdevsw, device_get_unit(dev), UID_ROOT
-	    , GID_WHEEL, 0600, "pio%d", device_get_unit(dev));
+	sc->cdev = make_dev(&at91_pio_cdevsw, device_get_unit(dev), UID_ROOT,
+	    GID_WHEEL, 0600, "pio%d", device_get_unit(dev));
 	if (sc->cdev == NULL) {
 		err = ENOMEM;
 		goto out;

==== //depot/projects/crypto/sys/arm/at91/at91_spi.c#2 (text) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91_spi.c,v 1.3 2006/10/20 07:10:13 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91_spi.c,v 1.4 2006/11/29 07:57:02 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -223,7 +223,7 @@
 			cmd->tx_data_sz, at91_getaddr, &addr, 0) != 0)
 			goto out;
 		WR4(sc, PDC_TNPR, addr);
-		WR4(sc, PDC_TNCR, cmd->tx_cmd_sz);
+		WR4(sc, PDC_TNCR, cmd->tx_data_sz);
 		bus_dmamap_sync(sc->dmatag, sc->map[i], BUS_DMASYNC_PREWRITE);
 		mode[i++] = BUS_DMASYNC_POSTWRITE;
 	}
@@ -234,12 +234,12 @@
 	WR4(sc, PDC_RCR, cmd->tx_cmd_sz);
 	bus_dmamap_sync(sc->dmatag, sc->map[i], BUS_DMASYNC_PREREAD);
 	mode[i++] = BUS_DMASYNC_POSTREAD;
-	if (cmd->tx_data_sz > 0) {
+	if (cmd->rx_data_sz > 0) {
 		if (bus_dmamap_load(sc->dmatag, sc->map[i], cmd->rx_data,
 			cmd->tx_data_sz, at91_getaddr, &addr, 0) != 0)
 			goto out;
 		WR4(sc, PDC_RNPR, addr);
-		WR4(sc, PDC_RNCR, cmd->tx_data_sz);
+		WR4(sc, PDC_RNCR, cmd->rx_data_sz);
 		bus_dmamap_sync(sc->dmatag, sc->map[i], BUS_DMASYNC_PREREAD);
 		mode[i++] = BUS_DMASYNC_POSTREAD;
 	}

==== //depot/projects/crypto/sys/arm/at91/at91_twi.c#2 (text) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/at91_twi.c,v 1.6 2006/11/22 06:51:59 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/at91_twi.c,v 1.7 2006/11/29 08:15:59 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -52,9 +52,7 @@
 	struct resource *irq_res;	/* IRQ resource */
 	struct resource	*mem_res;	/* Memory resource */
 	struct mtx sc_mtx;		/* basically a perimeter lock */
-	volatile int flags;
-#define RXRDY		4
-#define TXRDY		0x10
+	volatile uint32_t flags;
 	uint32_t cwgr;
 	int	sc_started;
 	int	twi_addr;
@@ -131,8 +129,6 @@
 	WR4(sc, TWI_CR, TWI_CR_SWRST);
 	WR4(sc, TWI_CR, TWI_CR_MSEN | TWI_CR_SVDIS);
 	WR4(sc, TWI_CWGR, sc->cwgr);
-//	WR4(sc, TWI_IER, TWI_SR_RXRDY | TWI_SR_OVRE | TWI_SR_UNRE |
-//	    TWI_SR_NACK);
 
 	if ((sc->iicbus = device_add_child(dev, "iicbus", -1)) == NULL)
 		device_printf(dev, "could not allocate iicbus instance\n");
@@ -208,17 +204,17 @@
 	struct at91_twi_softc *sc = xsc;
 	uint32_t status;
 
-	/* Reading the status also clears the interrupt */
 	status = RD4(sc, TWI_SR);
-	printf("status %x\n", status);
 	if (status == 0)
 		return;
-	AT91_TWI_LOCK(sc);
+	sc->flags |= status & (TWI_SR_OVRE | TWI_SR_UNRE | TWI_SR_NACK);
 	if (status & TWI_SR_RXRDY)
-		sc->flags |= RXRDY;
+		sc->flags |= TWI_SR_RXRDY;
 	if (status & TWI_SR_TXRDY)
-		sc->flags |= TXRDY;
-	AT91_TWI_UNLOCK(sc);
+		sc->flags |= TWI_SR_TXRDY;
+	if (status & TWI_SR_TXCOMP)
+		sc->flags |= TWI_SR_TXCOMP;
+	WR4(sc, TWI_IDR, status);
 	wakeup(sc);
 	return;
 }
@@ -228,11 +224,16 @@
 {
 	int err = 0;
 	int counter = 100000;
+	uint32_t sr;
 
-	while (!(RD4(sc, TWI_SR) & bit) && counter-- >= 0)
+	while (!((sr = RD4(sc, TWI_SR)) & bit) && counter-- > 0)
 		continue;
 	if (counter <= 0)
-		err = EIO;
+		err = EBUSY;
+	else if (sr & TWI_SR_NACK)
+		err = EADDRNOTAVAIL;
+	if (sr & ~bit)
+		printf("status is %x\n", sr);
 	return (err);
 }
 
@@ -240,42 +241,37 @@
 at91_twi_rst_card(device_t dev, u_char speed, u_char addr, u_char *oldaddr)
 {
 	struct at91_twi_softc *sc;
-	int ckdiv, rate;
+	int clk;
 
 	sc = device_get_softc(dev);
 	if (oldaddr)
 		*oldaddr = sc->twi_addr;
-	if (addr != 0)
-		sc->twi_addr = 0;
-	else
-		sc->twi_addr = addr;
+	sc->twi_addr = addr;
 
-	rate = 1;
-	
 	/*
 	 * speeds are for 1.5kb/s, 45kb/s and 90kb/s.
 	 */
 	switch (speed) {
 	case IIC_SLOW:
-		ckdiv = AT91C_MASTER_CLOCK / (1500 * 4) - 2;
+		clk = 1500;
 		break;
 
 	case IIC_FAST:
-		ckdiv = AT91C_MASTER_CLOCK / (45000 * 4) - 2;
+		clk = 45000;
 		break;
 
 	case IIC_UNKNOWN:
 	case IIC_FASTEST:
 	default:
-		ckdiv = AT91C_MASTER_CLOCK / (90000 * 4) - 2;
+		clk = 90000;
 		break;
 	}
-
-	sc->cwgr = TWI_CWGR_CKDIV(ckdiv) | TWI_CWGR_CHDIV(TWI_CWGR_DIV(rate)) |
-	    TWI_CWGR_CLDIV(TWI_CWGR_DIV(rate));
+	sc->cwgr = TWI_CWGR_CKDIV(1) | TWI_CWGR_CHDIV(TWI_CWGR_DIV(clk)) |
+	    TWI_CWGR_CLDIV(TWI_CWGR_DIV(clk));
 	WR4(sc, TWI_CR, TWI_CR_SWRST);
 	WR4(sc, TWI_CR, TWI_CR_MSEN | TWI_CR_SVDIS);
 	WR4(sc, TWI_CWGR, sc->cwgr);
+	printf("setting cwgr to %#x\n", sc->cwgr);
 
 	return 0;
 }
@@ -303,32 +299,36 @@
 at91_twi_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs)
 {
 	struct at91_twi_softc *sc;
-	int i, len;
+	int i, len, err;
 	uint32_t rdwr;
 	uint8_t *buf;
 
 	sc = device_get_softc(dev);
+	err = 0;
+	AT91_TWI_LOCK(sc);
 	for (i = 0; i < nmsgs; i++) {
 		/*
 		 * The linux atmel driver doesn't use the internal device
 		 * address feature of twi.  A separate i2c message needs to
 		 * be written to use this.
 		 * See http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2004-September/024411.html
-		 * for details.
+		 * for details.  Upon reflection, we could use this as an
+		 * optimization, but it is unclear the code bloat will
+		 * result in faster/better operations.
 		 */
 		rdwr = (msgs[i].flags & IIC_M_RD) ? TWI_MMR_MREAD : 0;
 		WR4(sc, TWI_MMR, TWI_MMR_DADR(msgs[i].slave) | rdwr);
 		len = msgs[i].len;
 		buf = msgs[i].buf;
-		if (len == 0 || buf == NULL)
+		if (len != 0 && buf == NULL)
 			return (EINVAL);
 		WR4(sc, TWI_CR, TWI_CR_START);
 		if (msgs[i].flags & IIC_M_RD) {
 			while (len--) {
 				if (len == 0)
 					WR4(sc, TWI_CR, TWI_CR_STOP);
-				if (at91_twi_wait(sc, TWI_SR_RXRDY))
-					return (EIO);
+				if ((err = at91_twi_wait(sc, TWI_SR_RXRDY)))
+					goto out;
 				*buf++ = RD4(sc, TWI_RHR) & 0xff;
 			}
 		} else {
@@ -336,14 +336,22 @@
 				WR4(sc, TWI_THR, *buf++);
 				if (len == 0)
 					WR4(sc, TWI_CR, TWI_CR_STOP);
-				if (at91_twi_wait(sc, TWI_SR_TXRDY))
-					return (EIO);
+				if ((err = at91_twi_wait(sc, TWI_SR_TXRDY))) {
+					printf("Len %d\n", len);
+					goto out;
+				}
 			}
 		}
-		if (at91_twi_wait(sc, TWI_SR_TXCOMP))
-			return (EIO);
+		if ((err = at91_twi_wait(sc, TWI_SR_TXCOMP)))
+			break;
+	}
+out:;
+	if (err) {
+		WR4(sc, TWI_CR, TWI_CR_STOP);
+		printf("Err is %d\n", err);
 	}
-	return (0);
+	AT91_TWI_UNLOCK(sc);
+	return (err);
 }
 
 static device_method_t at91_twi_methods[] = {

==== //depot/projects/crypto/sys/arm/at91/kb920x_machdep.c#2 (text) ====

@@ -48,7 +48,7 @@
 #include "opt_at91.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.19 2006/11/11 20:57:52 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.20 2006/12/06 06:34:53 julian Exp $");
 
 #define _ARM32_BUS_DMA_PRIVATE
 #include <sys/param.h>
@@ -455,11 +455,7 @@
 	undefined_handler_address = (u_int)undefinedinstruction_bounce;
 	undefined_init();
 				
-#ifdef KSE
-	proc_linkup(&proc0, &ksegrp0, &thread0);
-#else
 	proc_linkup(&proc0, &thread0);
-#endif
 	thread0.td_kstack = kernelstack.pv_va;
 	thread0.td_pcb = (struct pcb *)
 		(thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1;

==== //depot/projects/crypto/sys/arm/include/cpuconf.h#2 (text+ko) ====

@@ -34,7 +34,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/arm/include/cpuconf.h,v 1.9 2006/11/07 22:36:56 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/cpuconf.h,v 1.10 2006/11/30 23:30:40 cognet Exp $
  *
  */
 
@@ -139,4 +139,7 @@
 #define ARM_XSCALE_PMU	0
 #endif
 
+#if defined(CPU_XSCALE_81342)
+#define CPU_XSCALE_CORE3
+#endif
 #endif /* _MACHINE_CPUCONF_H_ */

==== //depot/projects/crypto/sys/arm/sa11x0/assabet_machdep.c#2 (text+ko) ====

@@ -47,7 +47,7 @@
 
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.20 2006/11/11 20:57:52 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.21 2006/12/06 06:34:54 julian Exp $");
 
 #include "opt_md.h"
 
@@ -422,11 +422,7 @@
 
 	/* Set stack for exception handlers */
 	
-#ifdef KSE
-	proc_linkup(&proc0, &ksegrp0, &thread0);
-#else
 	proc_linkup(&proc0, &thread0);
-#endif
 	thread0.td_kstack = kernelstack.pv_va;
 	thread0.td_pcb = (struct pcb *)
 		(thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1;

==== //depot/projects/crypto/sys/arm/xscale/i80321/ep80219_machdep.c#2 (text+ko) ====

@@ -49,7 +49,7 @@
 #include "opt_ddb.h"
 
 #include <sys/cdefs.h>

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



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