Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Sep 2008 21:36:44 GMT
From:      Marko Zec <zec@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 149910 for review
Message-ID:  <200809162136.m8GLaixs073424@repoman.freebsd.org>

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

Change 149910 by zec@zec_tpx32 on 2008/09/16 21:36:12

	IFC @ 149904

Affected files ...

.. //depot/projects/vimage-commit2/src/sys/amd64/amd64/vm_machdep.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/amd64/include/pmc_mdep.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/amd64/pci/pci_cfgreg.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/arm/arm/intr.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/arm/arm/nexus.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/arm/include/intr.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/arm/include/pcpu.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425_qmgr.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/boot/common/dev_net.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/boot/forth/loader.conf#6 integrate
.. //depot/projects/vimage-commit2/src/sys/boot/sparc64/loader/main.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_misc.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_proto.h#4 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_syscall.h#4 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_syscalls.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/freebsd32_sysent.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/freebsd32/syscalls.master#4 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_file.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_misc.c#10 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/linux/linux_socket.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/ndis/ntoskrnl_var.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/svr4/svr4_stream.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/compat/svr4/svr4_sysvec.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/conf/NOTES#9 integrate
.. //depot/projects/vimage-commit2/src/sys/conf/files.i386#7 integrate
.. //depot/projects/vimage-commit2/src/sys/conf/files.pc98#4 integrate
.. //depot/projects/vimage-commit2/src/sys/conf/files.sparc64#3 integrate
.. //depot/projects/vimage-commit2/src/sys/ddb/db_command.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/ddb/ddb.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/aac/aac_pci.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/aic7xxx/aic79xx_osm.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ath/if_athvar.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/common/cxgb_t3_hw.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_adapter.h#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_config.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_include.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_main.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_offload.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_osdep.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/cxgb_sge.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/sys/cxgb_support.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/sys/mbufq.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/toecore/cxgb_toedev.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/tom/cxgb_ddp.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/cxgb/ulp/tom/cxgb_tom.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/drm/ati_pcigart.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/drm/drm_bufs.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/drm/drm_pci.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/drm/i915_dma.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/drm/mach64_dma.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/hwpmc/hwpmc_x86.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/jme/if_jme.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/jme/if_jmereg.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/mlx/mlx.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/pci/vga_pci.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppbus/if_plip.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppbus/lpt.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppbus/ppbconf.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppbus/ppbconf.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppbus/ppi.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppbus/pps.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppc/ppc.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppc/ppc_acpi.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppc/ppc_isa.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppc/ppc_pci.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppc/ppc_puc.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppc/ppcreg.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/ppc/ppcvar.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/hda/hda_reg.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/hda/hdac.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/sound/pci/hda/hdac_private.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/tx/if_tx.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/if_zyd.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/if_zydreg.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/ubsa.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/ufoma.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/usb_quirks.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/dev/usb/usbdevs#9 integrate
.. //depot/projects/vimage-commit2/src/sys/fs/nullfs/null_vnops.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/gnu/fs/ext2fs/ext2_inode.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/gnu/fs/xfs/FreeBSD/support/kdb.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/gnu/fs/xfs/FreeBSD/xfs_vnode.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/conf/GENERIC#7 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/conf/NOTES#9 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/conf/XEN#3 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/cpufreq/est.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/i386/local_apic.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/i386/machdep.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/i386/sys_machdep.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/i386/vm_machdep.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/include/pmc_mdep.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/include/proc.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/include/xen/xenpmap.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/include/xen/xenvar.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/pci/pci_cfgreg.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/xen/mp_machdep.c#1 branch
.. //depot/projects/vimage-commit2/src/sys/i386/xen/mptable.c#1 branch
.. //depot/projects/vimage-commit2/src/sys/i386/xen/pmap.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/i386/xen/xen_machdep.c#6 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_exec.c#7 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_intr.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_lock.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_mutex.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_proc.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_rmlock.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_rwlock.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/kern_sx.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/subr_pcpu.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/subr_rman.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/subr_sleepqueue.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/subr_turnstile.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/subr_witness.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/tty.c#9 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/tty_ttydisc.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/vfs_bio.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/kern/vfs_vnops.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/adm5120/admpci.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/adm5120/if_admsw.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/adm5120/if_admswvar.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/adm5120/obio.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/adm5120/uart_bus_adm5120.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/adm5120/uart_cpu_adm5120.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/adm5120/uart_dev_adm5120.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/idt/idtpci.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/idt/if_kr.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/idt/obio.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/idt/uart_bus_rc32434.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/malta/gt.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/malta/gt_pci.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/malta/malta_machdep.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/malta/obio.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/malta/uart_bus_maltausart.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/malta/uart_cpu_maltausart.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/malta/yamon.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/sentry5/obio.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/sentry5/s5_machdep.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/sentry5/uart_bus_sbusart.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/mips/sentry5/uart_cpu_sbusart.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/modules/Makefile#8 integrate
.. //depot/projects/vimage-commit2/src/sys/modules/svr4/Makefile#3 integrate
.. //depot/projects/vimage-commit2/src/sys/modules/wlan/Makefile#3 integrate
.. //depot/projects/vimage-commit2/src/sys/net/if_atmsubr.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/net/if_fwsubr.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/net/if_iso88025subr.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/net/if_mib.c#9 integrate
.. //depot/projects/vimage-commit2/src/sys/net/if_tap.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/net/if_tap.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/net/route.c#10 integrate
.. //depot/projects/vimage-commit2/src/sys/net/route.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/netgraph/ng_base.c#10 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/if_ether.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/in_rmx.c#10 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/in_var.h#4 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/ip_fw.h#6 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/ip_fw2.c#20 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/tcp_input.c#14 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/tcp_output.c#13 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/tcp_subr.c#12 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet/tcp_syncache.c#18 integrate
.. //depot/projects/vimage-commit2/src/sys/netinet6/mld6.c#8 integrate
.. //depot/projects/vimage-commit2/src/sys/nfsclient/nfs_vfsops.c#12 integrate
.. //depot/projects/vimage-commit2/src/sys/pc98/conf/NOTES#6 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/aim/clock.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/aim/mmu_oea.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/aim/mp_cpudep.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/aim/swtch.S#2 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/aim/trap_subr.S#2 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/include/cpufunc.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/include/smp.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/include/spr.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/powerpc/autoconf.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/powerpc/cpu.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/powerpc/mp_machdep.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/powerpc/powerpc/openpic.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/security/mac_bsdextended/mac_bsdextended.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/include/asi.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/include/tlb.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/cheetah.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/exception.S#6 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/genassym.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/jbusppm.c#1 branch
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/mp_exception.S#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/mp_locore.S#4 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/pmap.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/schppm.c#1 branch
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/support.S#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/swtch.S#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sparc64/sparc64/tlb.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sun4v/include/asi.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/interrupt.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/lock.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/mount.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/param.h#11 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/proc.h#5 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/procfs.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/systm.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/sys/vnode.h#4 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ffs/ffs_extern.h#3 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ffs/ffs_inode.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ffs/ffs_snapshot.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ffs/ffs_softdep.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ffs/ffs_vfsops.c#5 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ufs/dirhash.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ufs/inode.h#2 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ufs/ufs_dirhash.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ufs/ufs_inode.c#2 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ufs/ufs_lookup.c#3 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ufs/ufs_vnops.c#4 integrate
.. //depot/projects/vimage-commit2/src/sys/ufs/ufs/ufsmount.h#3 integrate

Differences ...

==== //depot/projects/vimage-commit2/src/sys/amd64/amd64/vm_machdep.c#2 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.257 2008/03/12 10:11:54 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.258 2008/09/11 18:33:57 jhb Exp $");
 
 #include "opt_isa.h"
 #include "opt_cpu.h"
@@ -466,10 +466,13 @@
 
 	/*
 	 * Attempt to force a reset via the Reset Control register at
-	 * I/O port 0xcf9.  Bit 2 forces a system reset when it is
-	 * written as 1.  Bit 1 selects the type of reset to attempt:
-	 * 0 selects a "soft" reset, and 1 selects a "hard" reset.  We
-	 * try to do a "soft" reset first, and then a "hard" reset.
+	 * I/O port 0xcf9.  Bit 2 forces a system reset when it
+	 * transitions from 0 to 1.  Bit 1 selects the type of reset
+	 * to attempt: 0 selects a "soft" reset, and 1 selects a
+	 * "hard" reset.  We try a "hard" reset.  The first write sets
+	 * bit 1 to select a "hard" reset and clears bit 2.  The
+	 * second write forces a 0 -> 1 transition in bit 2 to trigger
+	 * a reset.
 	 */
 	outb(0xcf9, 0x2);
 	outb(0xcf9, 0x6);

==== //depot/projects/vimage-commit2/src/sys/amd64/include/pmc_mdep.h#3 (text+ko) ====

@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2003-2007 Joseph Koshy
+ * Copyright (c) 2003-2008 Joseph Koshy
  * Copyright (c) 2007 The FreeBSD Foundation
  * All rights reserved.
  *
@@ -27,7 +27,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.5 2008/06/20 05:22:09 alc Exp $
+ * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.6 2008/09/15 06:47:52 jkoshy Exp $
  */
 
 /* Machine dependent interfaces */
@@ -59,7 +59,8 @@
 
 #define	PMC_TRAPFRAME_TO_PC(TF)	((TF)->tf_rip)
 #define	PMC_TRAPFRAME_TO_FP(TF)	((TF)->tf_rbp)
-#define	PMC_TRAPFRAME_TO_SP(TF)	((TF)->tf_rsp)
+#define	PMC_TRAPFRAME_TO_USER_SP(TF)	((TF)->tf_rsp)
+#define	PMC_TRAPFRAME_TO_KERNEL_SP(TF)	((TF)->tf_rsp)
 
 #define	PMC_AT_FUNCTION_PROLOGUE_PUSH_BP(I)		\
 	(((I) & 0xffffffff) == 0xe5894855) /* pushq %rbp; movq %rsp,%rbp */

==== //depot/projects/vimage-commit2/src/sys/amd64/pci/pci_cfgreg.c#3 (text+ko) ====

@@ -27,12 +27,13 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.111 2008/08/22 02:14:23 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.113 2008/09/11 21:42:11 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/bus.h>
 #include <sys/lock.h>
+#include <sys/kernel.h>
 #include <sys/mutex.h>
 #include <dev/pci/pcivar.h>
 #include <dev/pci/pcireg.h>
@@ -46,6 +47,8 @@
 	CFGMECH_PCIE,
 };
 
+static uint32_t	pci_docfgregread(int bus, int slot, int func, int reg,
+		    int bytes);
 static int	pciereg_cfgread(int bus, unsigned slot, unsigned func,
 		    unsigned reg, unsigned bytes);
 static void	pciereg_cfgwrite(int bus, unsigned slot, unsigned func,
@@ -56,7 +59,10 @@
 static int cfgmech;
 static vm_offset_t pcie_base;
 static int pcie_minbus, pcie_maxbus;
+static uint32_t pcie_badslots;
 static struct mtx pcicfg_mtx;
+static int mcfg_enable = 1;
+TUNABLE_INT("hw.pci.mcfg", &mcfg_enable);
 
 /* 
  * Initialise access to PCI configuration space 
@@ -64,12 +70,17 @@
 int
 pci_cfgregopen(void)
 {
+	static int once = 0;
 	uint64_t pciebar;
 	uint16_t did, vid;
 
+	if (!once) {
+		mtx_init(&pcicfg_mtx, "pcicfg", NULL, MTX_SPIN);
+		once = 1;
+	}
+
 	if (cfgmech != CFGMECH_NONE)
 		return (1);
-	mtx_init(&pcicfg_mtx, "pcicfg", NULL, MTX_SPIN);
 	cfgmech = CFGMECH_1;
 
 	/*
@@ -103,6 +114,17 @@
 	return (1);
 }
 
+static uint32_t
+pci_docfgregread(int bus, int slot, int func, int reg, int bytes)
+{
+
+	if (cfgmech == CFGMECH_PCIE &&
+	    (bus != 0 || !(1 << slot & pcie_badslots)))
+		return (pciereg_cfgread(bus, slot, func, reg, bytes));
+	else
+		return (pcireg_cfgread(bus, slot, func, reg, bytes));
+}
+
 /* 
  * Read configuration space register
  */
@@ -120,12 +142,12 @@
 	 * as an invalid IRQ.
 	 */
 	if (reg == PCIR_INTLINE && bytes == 1) {
-		line = pcireg_cfgread(bus, slot, func, PCIR_INTLINE, 1);
+		line = pci_docfgregread(bus, slot, func, PCIR_INTLINE, 1);
 		if (line == 0 || line >= 128)
 			line = PCI_INVALID_IRQ;
 		return (line);
 	}
-	return (pcireg_cfgread(bus, slot, func, reg, bytes));
+	return (pci_docfgregread(bus, slot, func, reg, bytes));
 }
 
 /* 
@@ -135,7 +157,11 @@
 pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes)
 {
 
-	pcireg_cfgwrite(bus, slot, func, reg, data, bytes);
+	if (cfgmech == CFGMECH_PCIE &&
+	    (bus != 0 || !(1 << slot & pcie_badslots)))
+		pciereg_cfgwrite(bus, slot, func, reg, data, bytes);
+	else
+		pcireg_cfgwrite(bus, slot, func, reg, data, bytes);
 }
 
 /* 
@@ -175,11 +201,6 @@
 	int data = -1;
 	int port;
 
-	if (cfgmech == CFGMECH_PCIE) {
-		data = pciereg_cfgread(bus, slot, func, reg, bytes);
-		return (data);
-	}
-
 	mtx_lock_spin(&pcicfg_mtx);
 	port = pci_cfgenable(bus, slot, func, reg, bytes);
 	if (port != 0) {
@@ -205,11 +226,6 @@
 {
 	int port;
 
-	if (cfgmech == CFGMECH_PCIE) {
-		pciereg_cfgwrite(bus, slot, func, reg, data, bytes);
-		return;
-	}
-
 	mtx_lock_spin(&pcicfg_mtx);
 	port = pci_cfgenable(bus, slot, func, reg, bytes);
 	if (port != 0) {
@@ -232,7 +248,12 @@
 int
 pcie_cfgregopen(uint64_t base, uint8_t minbus, uint8_t maxbus)
 {
+	uint32_t val1, val2;
+	int slot;
 
+	if (!mcfg_enable)
+		return (0);
+
 	if (minbus != 0)
 		return (0);
 
@@ -245,6 +266,25 @@
 	pcie_minbus = minbus;
 	pcie_maxbus = maxbus;
 	cfgmech = CFGMECH_PCIE;
+
+	/*
+	 * On some AMD systems, some of the devices on bus 0 are
+	 * inaccessible using memory-mapped PCI config access.  Walk
+	 * bus 0 looking for such devices.  For these devices, we will
+	 * fall back to using type 1 config access instead.
+	 */
+	if (pci_cfgregopen() != 0) {
+		for (slot = 0; slot < 32; slot++) {
+			val1 = pcireg_cfgread(0, slot, 0, 0, 4);
+			if (val1 == 0xffffffff)
+				continue;
+
+			val2 = pciereg_cfgread(0, slot, 0, 0, 4);
+			if (val2 != val1)
+				pcie_badslots |= (1 << slot);
+		}
+	}
+
 	return (1);
 }
 

==== //depot/projects/vimage-commit2/src/sys/arm/arm/intr.c#3 (text+ko) ====

@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.23 2008/08/04 20:29:39 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.24 2008/09/11 12:36:13 raj Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/syslog.h> 
@@ -92,9 +92,19 @@
 }
 
 int
-arm_remove_irqhandler(void *cookie)
+arm_remove_irqhandler(int irq, void *cookie)
 {
-	return (intr_event_remove_handler(cookie));
+	struct intr_event *event;
+	int error;
+
+	event = intr_events[irq];
+	arm_mask_irq(irq);
+	
+	error = intr_event_remove_handler(cookie);
+
+	if (!TAILQ_EMPTY(&event->ie_handlers))
+		arm_unmask_irq(irq);
+	return (error);
 }
 
 void dosoftints(void);

==== //depot/projects/vimage-commit2/src/sys/arm/arm/nexus.c#2 (text+ko) ====

@@ -12,7 +12,7 @@
  * no representations about the suitability of this software for any
  * purpose.  It is provided "as is" without express or implied
  * warranty.
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''.  M.I.T. DISCLAIMS
  * ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/nexus.c,v 1.12 2008/03/12 15:46:25 raj Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/nexus.c,v 1.14 2008/09/11 12:39:54 raj Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -76,14 +76,12 @@
 static	int nexus_print_child(device_t, device_t);
 static	device_t nexus_add_child(device_t, int, const char *, int);
 static	struct resource *nexus_alloc_resource(device_t, device_t, int, int *,
-	u_long, u_long, u_long, u_int);
+    u_long, u_long, u_long, u_int);
 static	int nexus_activate_resource(device_t, device_t, int, int,
-	struct resource *);
-static int
-nexus_setup_intr(device_t dev, device_t child, struct resource *res, int flags,
-        driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep);
-static int
-nexus_teardown_intr(device_t, device_t, struct resource *, void *);
+    struct resource *);
+static int nexus_setup_intr(device_t dev, device_t child, struct resource *res,
+    int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep);
+static int nexus_teardown_intr(device_t, device_t, struct resource *, void *);
 
 static device_method_t nexus_methods[] = {
 	/* Device interface */
@@ -110,56 +108,48 @@
 nexus_probe(device_t dev)
 {
 	device_quiet(dev);	/* suppress attach message for neatness */
-		
+
 	mem_rman.rm_start = 0;
 	mem_rman.rm_end = ~0u;
 	mem_rman.rm_type = RMAN_ARRAY;
 	mem_rman.rm_descr = "I/O memory addresses";
-	if (rman_init(&mem_rman)
-		|| rman_manage_region(&mem_rman, 0, ~0u))
+	if (rman_init(&mem_rman) || rman_manage_region(&mem_rman, 0, ~0u))
 		panic("nexus_probe mem_rman");
-		
+
 	return (0);
-	return bus_generic_probe(dev);
 }
 
 static int
 nexus_setup_intr(device_t dev, device_t child, struct resource *res, int flags,
     driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep)
 {
-	int i;
 
 	if ((rman_get_flags(res) & RF_SHAREABLE) == 0)
 		flags |= INTR_EXCL;
 
-	for (i = rman_get_start(res); i <= rman_get_end(res); i++)
-		arm_setup_irqhandler(device_get_nameunit(child), 
-		    filt, intr, arg, i, flags, cookiep);
+	arm_setup_irqhandler(device_get_nameunit(child), 
+	    filt, intr, arg, rman_get_start(res), flags, cookiep);
 	return (0);
 }
 
 static int
 nexus_teardown_intr(device_t dev, device_t child, struct resource *r, void *ih)
 {
-	int error;
-	int i;
 
-	for (i = rman_get_start(r); i <= rman_get_end(r); i++)
-		arm_mask_irq(i);
-	error = arm_remove_irqhandler(ih);
-	return (error);
+	return (arm_remove_irqhandler(rman_get_start(r), ih));
 }
 
 static int
 nexus_attach(device_t dev)
 {
+
 	/*
 	 * First, deal with the children we know about already
 	 */
 	bus_generic_probe(dev);
 	bus_generic_attach(dev);
-	
-	return 0;
+
+	return (0);
 }
 
 
@@ -167,31 +157,30 @@
 nexus_print_child(device_t bus, device_t child)
 {
 	int retval = 0;
-	
+
 	retval += bus_print_child_header(bus, child);
 	retval += printf(" on motherboard\n");	/* XXX "motherboard", ick */
-	
+
 	return (retval);
 }
 
-
 static device_t
 nexus_add_child(device_t bus, int order, const char *name, int unit)
 {
-	device_t	child;
+	device_t child;
 	struct nexus_device *ndev;
-	
+
 	ndev = malloc(sizeof(struct nexus_device), M_NEXUSDEV, M_NOWAIT|M_ZERO);
 	if (!ndev)
-		return(0);
+		return (0);
 	resource_list_init(&ndev->nx_resources);
 
 	child = device_add_child_ordered(bus, order, name, unit);
-	
+
 	/* should we free this in nexus_child_detached? */
 	device_set_ivars(child, ndev);
-	
-	return(child);
+
+	return (child);
 }
 
 
@@ -203,7 +192,7 @@
 #define ARM_BUS_SPACE_MEM 1
 static struct resource *
 nexus_alloc_resource(device_t bus, device_t child, int type, int *rid,
-	u_long start, u_long end, u_long count, u_int flags)
+    u_long start, u_long end, u_long count, u_int flags)
 {
 	struct resource *rv;
 	struct rman *rm;
@@ -213,33 +202,33 @@
 	case SYS_RES_MEMORY:
 		rm = &mem_rman;
 		break;
-		
+
 	default:
-		return 0;
+		return (0);
 	}
 
 	rv = rman_reserve_resource(rm, start, end, count, flags, child);
 	if (rv == 0)
-		return 0;
+		return (0);
 
 	rman_set_rid(rv, *rid);
 	rman_set_bustag(rv, (void*)ARM_BUS_SPACE_MEM);
-	rman_set_bushandle(rv, rman_get_start(rv));		
-	
+	rman_set_bushandle(rv, rman_get_start(rv));
+
 	if (needactivate) {
 		if (bus_activate_resource(child, type, *rid, rv)) {
 			rman_release_resource(rv);
-			return 0;
+			return (0);
 		}
 	}
-	
-	return rv;
+
+	return (rv);
 }
 
 
 static int
 nexus_activate_resource(device_t bus, device_t child, int type, int rid,
-	struct resource *r)
+    struct resource *r)
 {
 	/*
 	 * If this is a memory resource, map it into the kernel.
@@ -249,7 +238,7 @@
 		u_int32_t paddr;
 		u_int32_t psize;
 		u_int32_t poffs;
-		
+
 		paddr = rman_get_start(r);
 		psize = rman_get_size(r);
 		poffs = paddr - trunc_page(paddr);

==== //depot/projects/vimage-commit2/src/sys/arm/include/intr.h#2 (text+ko) ====

@@ -32,7 +32,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/arm/include/intr.h,v 1.9 2008/06/06 05:08:09 benno Exp $
+ * $FreeBSD: src/sys/arm/include/intr.h,v 1.10 2008/09/11 12:36:13 raj Exp $
  *
  */
 
@@ -57,6 +57,6 @@
 void arm_unmask_irq(uintptr_t);
 void arm_setup_irqhandler(const char *, int (*)(void*), void (*)(void*), 
     void *, int, int, void **);    
-int arm_remove_irqhandler(void *);
+int arm_remove_irqhandler(int, void *);
 extern void (*arm_post_filter)(void *);
 #endif	/* _MACHINE_INTR_H */

==== //depot/projects/vimage-commit2/src/sys/arm/include/pcpu.h#3 (text+ko) ====

@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  *	from: FreeBSD: src/sys/i386/include/globaldata.h,v 1.27 2001/04/27
- * $FreeBSD: src/sys/arm/include/pcpu.h,v 1.7 2008/08/19 19:53:52 jhb Exp $
+ * $FreeBSD: src/sys/arm/include/pcpu.h,v 1.8 2008/09/11 20:39:46 cognet Exp $
  */
 
 #ifndef	_MACHINE_PCPU_H_
@@ -40,12 +40,7 @@
 
 #endif	/* _KERNEL */
 
-/*
- * Inside the kernel, the globally reserved register g7 is used to
- * point at the globaldata structure.
- */
-#define	PCPU_MD_FIELDS							\
-	struct pcup *pc_prvspace;
+#define	PCPU_MD_FIELDS
 
 #ifdef _KERNEL
 

==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425.c#2 (text+ko) ====

@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.9 2008/02/26 11:44:41 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425.c,v 1.10 2008/09/11 20:43:38 cognet Exp $");
 
 #define _ARM32_BUS_DMA_PRIVATE
 #include <sys/param.h>
@@ -143,22 +143,27 @@
 void
 arm_mask_irq(uintptr_t nb)
 {
+	int i;
+	
+	i = disable_interrupts(I32_bit);
 	intr_enabled &= ~(1 << nb);
 	ixp425_set_intrmask();
+	restore_interrupts(i);
 	/*XXX; If it's a GPIO interrupt, ACK it know. Can it be a problem ?*/
 	if ((1 << nb) & IXP425_INT_GPIOMASK)
 		IXPREG(IXP425_GPIO_VBASE + IXP425_GPIO_GPISR) =
 		    ixp425_irq2gpio_bit(nb);
-
-		
 }
 
 void
 arm_unmask_irq(uintptr_t nb)
 {
-
+	int i;
+	
+	i = disable_interrupts(I32_bit);
 	intr_enabled |= (1 << nb);
 	ixp425_set_intrmask();
+	restore_interrupts(i);
 }
 
 static __inline uint32_t

==== //depot/projects/vimage-commit2/src/sys/arm/xscale/ixp425/ixp425_qmgr.c#2 (text+ko) ====

@@ -57,7 +57,7 @@
  * SUCH DAMAGE.
 */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_qmgr.c,v 1.3 2007/10/12 06:03:42 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_qmgr.c,v 1.4 2008/09/11 12:17:21 raj Exp $");
 
 /*
  * Intel XScale Queue Manager support.
@@ -133,9 +133,14 @@
 	device_t		sc_dev;
 	bus_space_tag_t		sc_iot;
 	bus_space_handle_t	sc_ioh;
-	struct resource		*sc_irq;	/* IRQ resource */
-	void			*sc_ih;		/* interrupt handler */
-	int			sc_rid;		/* resource id for irq */
+
+	struct resource		*sc_irq1;	/* IRQ resource */
+	void			*sc_ih1;	/* interrupt handler */
+	int			sc_rid1;	/* resource id for irq */
+
+	struct resource		*sc_irq2;
+	void			*sc_ih2;
+	int			sc_rid2;
 
 	struct qmgrInfo		qinfo[IX_QMGR_MAX_NUM_QUEUES];
 	/*
@@ -203,12 +208,12 @@
 	return 0;
 }
 
-static void
+static int
 ixpqmgr_attach(device_t dev)
 {
 	struct ixpqmgr_softc *sc = device_get_softc(dev);
 	struct ixp425_softc *sa = device_get_softc(device_get_parent(dev));
-	int i;
+	int i, err;
 
 	ixpqmgr_sc = sc;
 
@@ -219,13 +224,32 @@
 		panic("%s: Cannot map registers", device_get_name(dev));
 
 	/* NB: we only use the lower 32 q's */
-	sc->sc_irq = bus_alloc_resource(dev, SYS_RES_IRQ, &sc->sc_rid,
-	    IXP425_INT_QUE1_32, IXP425_INT_QUE33_64, 2, RF_ACTIVE);
-	if (!sc->sc_irq)
+
+	/* Set up QMGR interrupts */
+	sc->sc_rid1 = 0;
+	sc->sc_irq1 = bus_alloc_resource(dev, SYS_RES_IRQ, &sc->sc_rid1,
+	    IXP425_INT_QUE1_32, IXP425_INT_QUE1_32, 1, RF_ACTIVE);
+	sc->sc_rid2 = 1;
+	sc->sc_irq2 = bus_alloc_resource(dev, SYS_RES_IRQ, &sc->sc_rid2,
+	    IXP425_INT_QUE33_64, IXP425_INT_QUE33_64, 1, RF_ACTIVE);
+
+	if (sc->sc_irq1 == NULL || sc->sc_irq2 == NULL)
 		panic("Unable to allocate the qmgr irqs.\n");
-	/* XXX could be a source of entropy */
-	bus_setup_intr(dev, sc->sc_irq, INTR_TYPE_NET | INTR_MPSAFE,
-		NULL, ixpqmgr_intr, NULL, &sc->sc_ih);
+
+	err = bus_setup_intr(dev, sc->sc_irq1, INTR_TYPE_NET | INTR_MPSAFE,
+	    NULL, ixpqmgr_intr, NULL, &sc->sc_ih1);
+	if (err) {
+		device_printf(dev, "failed to set up qmgr irq=%d\n",
+		   IXP425_INT_QUE1_32);
+		return (ENXIO);
+	}
+	err = bus_setup_intr(dev, sc->sc_irq2, INTR_TYPE_NET | INTR_MPSAFE,
+	    NULL, ixpqmgr_intr, NULL, &sc->sc_ih2);
+	if (err) {
+		device_printf(dev, "failed to set up qmgr irq=%d\n",
+		   IXP425_INT_QUE33_64);
+		return (ENXIO);
+	}
 
 	/* NB: softc is pre-zero'd */
 	for (i = 0; i < IX_QMGR_MAX_NUM_QUEUES; i++) {
@@ -295,17 +319,21 @@
 
 	ixpqmgr_rebuild(sc);		/* build inital priority table */
 	aqm_reset(sc);			/* reset h/w */
+	return (0);
 }
 
-static void
+static int
 ixpqmgr_detach(device_t dev)
 {
 	struct ixpqmgr_softc *sc = device_get_softc(dev);
 
 	aqm_reset(sc);		/* disable interrupts */
-	bus_teardown_intr(dev, sc->sc_irq, sc->sc_ih);
-	bus_release_resource(dev, SYS_RES_IRQ, sc->sc_rid, sc->sc_irq);
+	bus_teardown_intr(dev, sc->sc_irq1, sc->sc_ih1);
+	bus_teardown_intr(dev, sc->sc_irq2, sc->sc_ih2);
+	bus_release_resource(dev, SYS_RES_IRQ, sc->sc_rid1, sc->sc_irq1);
+	bus_release_resource(dev, SYS_RES_IRQ, sc->sc_rid2, sc->sc_irq2);
 	bus_space_unmap(sc->sc_iot, sc->sc_ioh, IXP425_QMGR_SIZE);
+	return (0);
 }
 
 int

==== //depot/projects/vimage-commit2/src/sys/boot/common/dev_net.c#5 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/common/dev_net.c,v 1.17 2008/09/03 17:41:44 raj Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/common/dev_net.c,v 1.18 2008/09/10 20:53:22 marius Exp $");
 
 /*-
  * This module implements a "raw device" interface suitable for
@@ -145,6 +145,9 @@
 				return (error);
 			}
 		}
+#if defined(__sparc64__)
+		netdev_opens++;
+#endif
 	}
 	netdev_opens++;
 	f->f_devdata = &netdev_sock;

==== //depot/projects/vimage-commit2/src/sys/boot/forth/loader.conf#6 (text+ko) ====

@@ -6,7 +6,7 @@
 #
 # All arguments must be in double quotes.
 #
-# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.132 2008/08/26 13:27:48 matteo Exp $
+# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.133 2008/09/10 18:36:58 jhb Exp $
 
 ##############################################################
 ###  Basic configuration options  ############################
@@ -260,6 +260,7 @@
 if_re_load="NO"			# RealTek 8139C+/8169/8169S/8110S
 if_rl_load="NO"			# RealTek 8129/8139
 if_rue_load="NO"		# RealTek RTL8150 USB to Fast Ethernet
+if_sbni_load="NO"		# Granch SBNI12 leased line adapters
 if_sf_load="NO"			# Adaptec Duralink PCI (AIC-6915 "starfire")
 if_sis_load="NO"		# Silicon Integrated Systems SiS 900/7016
 if_sk_load="NO"			# SysKonnect SK-984x series PCI Gigabit Ethernet

==== //depot/projects/vimage-commit2/src/sys/boot/sparc64/loader/main.c#6 (text+ko) ====

@@ -6,9 +6,34 @@
  * As long as the above copyright statement and this notice remain
  * unchanged, you can do what ever you want with this file.
  */
+/*-
+ * Copyright (c) 2008 Marius Strobl <marius@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.36 2008/09/04 19:41:54 marius Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.38 2008/09/10 20:07:08 marius Exp $");
 
 /*
  * FreeBSD/sparc64 kernel loader - machine dependent part
@@ -37,6 +62,7 @@
 #include <machine/tlb.h>
 #include <machine/upa.h>
 #include <machine/ver.h>
+#include <machine/vmparam.h>
 
 #include "bootstrap.h"
 #include "libofw.h"
@@ -64,6 +90,7 @@
 static inline u_long itlb_get_data_sun4u(int slot);
 static void itlb_enter_sun4u(u_long vpn, u_long data);
 static vm_offset_t itlb_va_to_pa_sun4u(vm_offset_t);
+static void itlb_relocate_locked0_sun4u(void);
 extern vm_offset_t md_load(char *, vm_offset_t *);
 static int sparc64_autoload(void);
 static ssize_t sparc64_readin(const int, vm_offset_t, const size_t);
@@ -455,16 +482,81 @@
 itlb_enter_sun4u(u_long vpn, u_long data)
 {
 	u_long reg;
+	int i;
 
 	reg = rdpr(pstate);
 	wrpr(pstate, reg & ~PSTATE_IE, 0);
+
+	if (cpu_impl == CPU_IMPL_ULTRASPARCIIIp) {
+		/*
+		 * Search an unused slot != 0 and explicitly enter the data
+		 * and tag there in order to avoid Cheetah+ erratum 34.
+		 */
+		for (i = 1; i < itlb_slot_max; i++) {
+			if ((itlb_get_data_sun4u(i) & TD_V) != 0)

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



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