Date: Tue, 19 May 2009 13:41:40 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 162313 for review Message-ID: <200905191341.n4JDfeG5049773@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=162313 Change 162313 by jhb@jhb_jhbbsd on 2009/05/19 13:40:43 IFC @162312 Affected files ... .. //depot/projects/smpng/share/man/man9/sbuf.9#2 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#79 integrate .. //depot/projects/smpng/sys/amd64/amd64/mca.c#1 branch .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#56 integrate .. //depot/projects/smpng/sys/amd64/amd64/trap.c#66 integrate .. //depot/projects/smpng/sys/amd64/conf/GENERIC.hints#7 integrate .. //depot/projects/smpng/sys/amd64/include/mca.h#1 branch .. //depot/projects/smpng/sys/amd64/include/param.h#23 integrate .. //depot/projects/smpng/sys/amd64/include/smp.h#21 integrate .. //depot/projects/smpng/sys/amd64/include/specialreg.h#21 integrate .. //depot/projects/smpng/sys/amd64/include/vmparam.h#13 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux.h#23 integrate .. //depot/projects/smpng/sys/amd64/pci/pci_cfgreg.c#13 integrate .. //depot/projects/smpng/sys/arm/arm/machdep.c#27 integrate .. //depot/projects/smpng/sys/arm/at91/at91.c#19 integrate .. //depot/projects/smpng/sys/arm/at91/at91_spi.c#9 integrate .. //depot/projects/smpng/sys/arm/at91/if_ate.c#21 integrate .. //depot/projects/smpng/sys/boot/forth/loader.conf#61 integrate .. //depot/projects/smpng/sys/boot/i386/zfsboot/zfsboot.c#3 integrate .. //depot/projects/smpng/sys/boot/zfs/zfsimpl.c#5 integrate .. //depot/projects/smpng/sys/cddl/boot/zfs/README#2 integrate .. //depot/projects/smpng/sys/cddl/boot/zfs/zfsimpl.h#3 integrate .. //depot/projects/smpng/sys/cddl/boot/zfs/zfssubr.c#3 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/sys/mutex.h#2 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/sys/rwlock.h#2 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#3 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#10 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#3 integrate .. //depot/projects/smpng/sys/compat/linux/linux_socket.c#47 integrate .. //depot/projects/smpng/sys/compat/linux/linux_socket.h#5 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#50 integrate .. //depot/projects/smpng/sys/conf/files#239 integrate .. //depot/projects/smpng/sys/conf/files.amd64#66 integrate .. //depot/projects/smpng/sys/conf/files.i386#124 integrate .. //depot/projects/smpng/sys/conf/files.pc98#99 integrate .. //depot/projects/smpng/sys/conf/files.powerpc#51 integrate .. //depot/projects/smpng/sys/contrib/altq/altq/altq_subr.c#12 integrate .. //depot/projects/smpng/sys/dev/aic/aic.c#13 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.h#65 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-acard.c#3 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-promise.c#6 integrate .. //depot/projects/smpng/sys/dev/ath/if_ath_pci.c#22 integrate .. //depot/projects/smpng/sys/dev/bce/if_bce.c#28 integrate .. //depot/projects/smpng/sys/dev/bge/if_bge.c#106 integrate .. //depot/projects/smpng/sys/dev/bwi/bwiphy.c#2 integrate .. //depot/projects/smpng/sys/dev/bwi/if_bwi_pci.c#2 integrate .. //depot/projects/smpng/sys/dev/bwi/if_bwireg.h#2 integrate .. //depot/projects/smpng/sys/dev/ciss/ciss.c#60 integrate .. //depot/projects/smpng/sys/dev/e1000/if_em.c#7 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed.c#44 integrate .. //depot/projects/smpng/sys/dev/ep/if_ep.c#30 integrate .. //depot/projects/smpng/sys/dev/flash/at45d.c#3 integrate .. //depot/projects/smpng/sys/dev/iir/iir_pci.c#19 integrate .. //depot/projects/smpng/sys/dev/ixgb/if_ixgb.c#20 integrate .. //depot/projects/smpng/sys/dev/lmc/if_lmc.c#22 integrate .. //depot/projects/smpng/sys/dev/malo/if_malo_pci.c#4 integrate .. //depot/projects/smpng/sys/dev/md/md.c#89 integrate .. //depot/projects/smpng/sys/dev/nge/if_nge.c#54 integrate .. //depot/projects/smpng/sys/dev/nge/if_ngereg.h#13 integrate .. //depot/projects/smpng/sys/dev/snp/snp.c#36 integrate .. //depot/projects/smpng/sys/dev/spibus/spibus.c#3 integrate .. //depot/projects/smpng/sys/dev/syscons/syscons.c#71 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/storage/umass.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/storage/ustorage_fs.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/usb_core.h#8 integrate .. //depot/projects/smpng/sys/dev/usb/usb_dev.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/usb_hid.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/usb_transfer.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#136 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_uath.c#3 integrate .. //depot/projects/smpng/sys/dev/xen/console/console.c#8 integrate .. //depot/projects/smpng/sys/dev/xen/netfront/netfront.c#8 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#80 integrate .. //depot/projects/smpng/sys/fs/nfs/nfs.h#3 integrate .. //depot/projects/smpng/sys/fs/nfs/nfs_commonkrpc.c#2 integrate .. //depot/projects/smpng/sys/fs/nfs/nfs_var.h#3 integrate .. //depot/projects/smpng/sys/fs/nfs/nfsdport.h#2 integrate .. //depot/projects/smpng/sys/fs/nfs/nfsport.h#3 integrate .. //depot/projects/smpng/sys/fs/nfs/nfsproto.h#2 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs.h#2 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clbio.c#2 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clkrpc.c#2 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clnode.c#2 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clrpcops.c#2 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clstate.c#2 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clvfsops.c#3 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clvnops.c#2 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdkrpc.c#3 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdport.c#3 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdserv.c#3 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdsocket.c#3 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdstate.c#2 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdsubs.c#2 integrate .. //depot/projects/smpng/sys/fs/smbfs/smbfs_io.c#32 integrate .. //depot/projects/smpng/sys/gnu/fs/xfs/FreeBSD/support/debug.h#3 integrate .. //depot/projects/smpng/sys/gnu/fs/xfs/FreeBSD/xfsdmapistubs.c#2 delete .. //depot/projects/smpng/sys/gnu/fs/xfs/FreeBSD/xfsquotasstubs.c#2 delete .. //depot/projects/smpng/sys/gnu/fs/xfs/FreeBSD/xfsrtstubs.c#2 delete .. //depot/projects/smpng/sys/i386/conf/GENERIC.hints#12 integrate .. //depot/projects/smpng/sys/i386/i386/machdep.c#140 integrate .. //depot/projects/smpng/sys/i386/i386/mca.c#1 branch .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#120 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#133 integrate .. //depot/projects/smpng/sys/i386/i386/trap.c#115 integrate .. //depot/projects/smpng/sys/i386/include/mca.h#1 branch .. //depot/projects/smpng/sys/i386/include/param.h#22 integrate .. //depot/projects/smpng/sys/i386/include/smp.h#30 integrate .. //depot/projects/smpng/sys/i386/include/specialreg.h#25 integrate .. //depot/projects/smpng/sys/i386/linux/linux.h#27 integrate .. //depot/projects/smpng/sys/i386/pci/pci_cfgreg.c#38 integrate .. //depot/projects/smpng/sys/i386/xen/mp_machdep.c#10 integrate .. //depot/projects/smpng/sys/ia64/ia64/elf_machdep.c#26 integrate .. //depot/projects/smpng/sys/ia64/ia64/machdep.c#117 integrate .. //depot/projects/smpng/sys/ia64/ia64/pmap.c#92 integrate .. //depot/projects/smpng/sys/ia64/include/md_var.h#25 integrate .. //depot/projects/smpng/sys/kern/kern_clock.c#62 integrate .. //depot/projects/smpng/sys/kern/kern_descrip.c#124 integrate .. //depot/projects/smpng/sys/kern/kern_intr.c#98 integrate .. //depot/projects/smpng/sys/kern/kern_sysctl.c#63 integrate .. //depot/projects/smpng/sys/kern/sys_generic.c#59 integrate .. //depot/projects/smpng/sys/kern/tty.c#90 integrate .. //depot/projects/smpng/sys/kern/tty_info.c#6 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#116 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#121 integrate .. //depot/projects/smpng/sys/kern/vfs_syscalls.c#146 integrate .. //depot/projects/smpng/sys/legacy/dev/usb/if_upgt.c#2 delete .. //depot/projects/smpng/sys/legacy/dev/usb/if_upgtvar.h#2 delete .. //depot/projects/smpng/sys/legacy/dev/usb/usb_ethersubr.c#2 delete .. //depot/projects/smpng/sys/legacy/dev/usb/usb_ethersubr.h#2 delete .. //depot/projects/smpng/sys/mips/mips/machdep.c#7 integrate .. //depot/projects/smpng/sys/mips/mips/pm_machdep.c#2 integrate .. //depot/projects/smpng/sys/modules/xfs/Makefile#4 integrate .. //depot/projects/smpng/sys/net/bpf.c#84 integrate .. //depot/projects/smpng/sys/net/netisr.c#16 integrate .. //depot/projects/smpng/sys/net/netisr.h#13 integrate .. //depot/projects/smpng/sys/net80211/ieee80211.h#21 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_freebsd.c#20 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_node.c#47 integrate .. //depot/projects/smpng/sys/netinet/in.c#53 integrate .. //depot/projects/smpng/sys/netinet/in_pcb.c#94 integrate .. //depot/projects/smpng/sys/netinet/in_pcb.h#63 integrate .. //depot/projects/smpng/sys/netinet/ip_fw2.c#109 integrate .. //depot/projects/smpng/sys/netinet6/in6.c#54 integrate .. //depot/projects/smpng/sys/netinet6/ip6_mroute.c#39 integrate .. //depot/projects/smpng/sys/nfs/nfs_common.c#15 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_bio.c#56 integrate .. //depot/projects/smpng/sys/pc98/include/mca.h#1 branch .. //depot/projects/smpng/sys/pc98/pc98/machdep.c#32 integrate .. //depot/projects/smpng/sys/powerpc/aim/clock.c#5 integrate .. //depot/projects/smpng/sys/powerpc/aim/machdep.c#13 integrate .. //depot/projects/smpng/sys/powerpc/aim/mmu_oea.c#7 integrate .. //depot/projects/smpng/sys/powerpc/aim/mmu_oea64.c#2 integrate .. //depot/projects/smpng/sys/powerpc/aim/mp_cpudep.c#4 integrate .. //depot/projects/smpng/sys/powerpc/aim/ofw_machdep.c#6 integrate .. //depot/projects/smpng/sys/powerpc/aim/platform_chrp.c#1 branch .. //depot/projects/smpng/sys/powerpc/aim/vm_machdep.c#6 integrate .. //depot/projects/smpng/sys/powerpc/booke/clock.c#4 integrate .. //depot/projects/smpng/sys/powerpc/booke/machdep.c#10 integrate .. //depot/projects/smpng/sys/powerpc/booke/platform_bare.c#1 branch .. //depot/projects/smpng/sys/powerpc/booke/pmap.c#9 integrate .. //depot/projects/smpng/sys/powerpc/booke/vm_machdep.c#5 integrate .. //depot/projects/smpng/sys/powerpc/include/cpufunc.h#22 integrate .. //depot/projects/smpng/sys/powerpc/include/md_var.h#14 integrate .. //depot/projects/smpng/sys/powerpc/include/ofw_machdep.h#5 integrate .. //depot/projects/smpng/sys/powerpc/include/platform.h#1 branch .. //depot/projects/smpng/sys/powerpc/include/platformvar.h#1 branch .. //depot/projects/smpng/sys/powerpc/include/pmap.h#23 integrate .. //depot/projects/smpng/sys/powerpc/include/powerpc.h#6 delete .. //depot/projects/smpng/sys/powerpc/include/smp.h#5 integrate .. //depot/projects/smpng/sys/powerpc/include/spr.h#14 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/mp_machdep.c#11 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/platform.c#1 branch .. //depot/projects/smpng/sys/powerpc/powerpc/platform_if.m#1 branch .. //depot/projects/smpng/sys/powerpc/powerpc/pmap_dispatch.c#15 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#95 integrate .. //depot/projects/smpng/sys/sun4v/sun4v/machdep.c#10 integrate .. //depot/projects/smpng/sys/sys/buf.h#54 integrate .. //depot/projects/smpng/sys/sys/eventhandler.h#30 integrate .. //depot/projects/smpng/sys/sys/filedesc.h#33 integrate .. //depot/projects/smpng/sys/sys/systm.h#94 integrate .. //depot/projects/smpng/sys/sys/vimage.h#10 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_alloc.c#51 integrate .. //depot/projects/smpng/sys/vm/vm_contig.c#46 integrate .. //depot/projects/smpng/sys/vm/vm_pageout.c#71 integrate .. //depot/projects/smpng/sys/vm/vnode_pager.c#72 integrate Differences ... ==== //depot/projects/smpng/share/man/man9/sbuf.9#2 (text+ko) ==== @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2000 Poul Henning Kamp and Dag-Erling Coïdan Smørgrav +.\" Copyright (c) 2000 Poul-Henning Kamp and Dag-Erling Coïdan Smørgrav .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -23,14 +23,15 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/sbuf.9,v 1.26 2006/09/18 15:24:20 ru Exp $ +.\" $FreeBSD: src/share/man/man9/sbuf.9,v 1.27 2009/05/17 21:28:37 brueffer Exp $ .\" -.Dd July 9, 2004 +.Dd May 17, 2009 .Dt SBUF 9 .Os .Sh NAME .Nm sbuf , .Nm sbuf_new , +.Nm sbuf_new_auto , .Nm sbuf_clear , .Nm sbuf_setpos , .Nm sbuf_bcat , @@ -55,6 +56,8 @@ .In sys/sbuf.h .Ft struct sbuf * .Fn sbuf_new "struct sbuf *s" "char *buf" "int length" "int flags" +.Ft struct sbuf * +.Fn sbuf_new_auto .Ft void .Fn sbuf_clear "struct sbuf *s" .Ft int @@ -148,6 +151,19 @@ sbuf is undefined. .Pp The +.Fn sbuf_new_auto +function is a shortcut for creating a completely dynamic +.Nm . +It is the equivalent of calling +.Fn sbuf_new +with values +.Dv NULL , +.Dv NULL , +.Dv 0 , +and +.Dv SBUF_AUTOEXTEND . +.Pp +The .Fn sbuf_delete function clears the .Fa sbuf ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#79 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.699 2009/04/11 14:01:01 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.701 2009/05/18 18:37:18 marcel Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -109,6 +109,7 @@ #include <machine/cpu.h> #include <machine/cputypes.h> #include <machine/intr_machdep.h> +#include <machine/mca.h> #include <machine/md_var.h> #include <machine/metadata.h> #include <machine/pc/bios.h> @@ -274,6 +275,7 @@ vm_pager_bufferinit(); cpu_setregs(); + mca_init(); } /* @@ -504,6 +506,16 @@ { } +/* + * Flush the D-cache for non-DMA I/O so that the I-cache can + * be made coherent later. + */ +void +cpu_flush_dcache(void *ptr, size_t len) +{ + /* Not applicable */ +} + /* Get current clock frequency for the given cpu id. */ int cpu_est_clockrate(int cpu_id, uint64_t *rate) ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#56 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.306 2009/05/02 12:20:43 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.308 2009/05/14 17:43:00 attilio Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -60,6 +60,7 @@ #include <machine/clock.h> #include <machine/cputypes.h> #include <machine/cpufunc.h> +#include <machine/mca.h> #include <machine/md_var.h> #include <machine/mp_watchdog.h> #include <machine/pcb.h> @@ -113,9 +114,9 @@ extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32); #ifdef STOP_NMI -volatile cpumask_t ipi_nmi_pending; +static volatile cpumask_t ipi_nmi_pending; -static void ipi_nmi_selected(u_int32_t cpus); +static void ipi_nmi_selected(cpumask_t cpus); #endif /* @@ -667,6 +668,8 @@ KASSERT(PCPU_GET(idlethread) != NULL, ("no idle thread")); PCPU_SET(curthread, PCPU_GET(idlethread)); + mca_init(); + mtx_lock_spin(&ap_boot_mtx); /* Init local apic for irq's */ @@ -1013,7 +1016,7 @@ } static void -smp_targeted_tlb_shootdown(u_int mask, u_int vector, vm_offset_t addr1, vm_offset_t addr2) +smp_targeted_tlb_shootdown(cpumask_t mask, u_int vector, vm_offset_t addr1, vm_offset_t addr2) { int ncpu, othercpus; @@ -1087,7 +1090,7 @@ } void -smp_masked_invltlb(u_int mask) +smp_masked_invltlb(cpumask_t mask) { if (smp_started) { @@ -1096,7 +1099,7 @@ } void -smp_masked_invlpg(u_int mask, vm_offset_t addr) +smp_masked_invlpg(cpumask_t mask, vm_offset_t addr) { if (smp_started) { @@ -1105,7 +1108,7 @@ } void -smp_masked_invlpg_range(u_int mask, vm_offset_t addr1, vm_offset_t addr2) +smp_masked_invlpg_range(cpumask_t mask, vm_offset_t addr1, vm_offset_t addr2) { if (smp_started) { @@ -1140,7 +1143,7 @@ * send an IPI to a set of cpus. */ void -ipi_selected(u_int32_t cpus, u_int ipi) +ipi_selected(cpumask_t cpus, u_int ipi) { int cpu; u_int bitmap = 0; @@ -1203,8 +1206,8 @@ #define BEFORE_SPIN 1000000 -void -ipi_nmi_selected(u_int32_t cpus) +static void +ipi_nmi_selected(cpumask_t cpus) { int cpu; register_t icrlo; @@ -1328,7 +1331,7 @@ static int sysctl_hlt_cpus(SYSCTL_HANDLER_ARGS) { - u_int mask; + cpumask_t mask; int error; mask = hlt_cpus_mask; ==== //depot/projects/smpng/sys/amd64/amd64/trap.c#66 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.331 2009/04/01 13:09:26 kib Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.332 2009/05/13 17:53:04 jhb Exp $"); /* * AMD64 Trap and System call handling @@ -88,6 +88,7 @@ #include <machine/cpu.h> #include <machine/intr_machdep.h> +#include <machine/mca.h> #include <machine/md_var.h> #include <machine/pcb.h> #ifdef SMP @@ -266,6 +267,12 @@ goto out; #endif + if (type == T_MCHK) { + if (!mca_intr()) + trap_fatal(frame, 0); + goto out; + } + #ifdef KDTRACE_HOOKS /* * A trap can occur while DTrace executes a probe. Before ==== //depot/projects/smpng/sys/amd64/conf/GENERIC.hints#7 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/amd64/conf/GENERIC.hints,v 1.19 2008/07/13 07:20:14 ed Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC.hints,v 1.20 2009/05/14 21:53:35 jhb Exp $ hint.fdc.0.at="isa" hint.fdc.0.port="0x3F0" hint.fdc.0.irq="6" @@ -13,7 +13,6 @@ hint.atkbd.0.irq="1" hint.psm.0.at="atkbdc" hint.psm.0.irq="12" -hint.vga.0.at="isa" hint.sc.0.at="isa" hint.sc.0.flags="0x100" hint.uart.0.at="isa" @@ -23,13 +22,5 @@ hint.uart.1.at="isa" hint.uart.1.port="0x2F8" hint.uart.1.irq="3" -hint.uart.2.at="isa" -hint.uart.2.disabled="1" -hint.uart.2.port="0x3E8" -hint.uart.2.irq="5" -hint.uart.3.at="isa" -hint.uart.3.disabled="1" -hint.uart.3.port="0x2E8" -hint.uart.3.irq="9" hint.ppc.0.at="isa" hint.ppc.0.irq="7" ==== //depot/projects/smpng/sys/amd64/include/param.h#23 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)param.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/amd64/include/param.h,v 1.27 2009/04/20 12:59:23 rwatson Exp $ + * $FreeBSD: src/sys/amd64/include/param.h,v 1.28 2009/05/18 19:33:59 jhb Exp $ */ /* @@ -93,7 +93,7 @@ * CACHE_LINE_SIZE is the compile-time maximum cache line size for an * architecture. It should be used with appropriate caution. */ -#define CACHE_LINE_SHIFT 6 +#define CACHE_LINE_SHIFT 7 #define CACHE_LINE_SIZE (1 << CACHE_LINE_SHIFT) /* Size of the level 1 page table units */ ==== //depot/projects/smpng/sys/amd64/include/smp.h#21 (text+ko) ==== @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $FreeBSD: src/sys/amd64/include/smp.h,v 1.95 2009/04/29 06:54:40 jeff Exp $ + * $FreeBSD: src/sys/amd64/include/smp.h,v 1.96 2009/05/14 17:43:00 attilio Exp $ * */ @@ -52,19 +52,19 @@ void cpustop_handler(void); void cpususpend_handler(void); void init_secondary(void); -void ipi_selected(u_int cpus, u_int ipi); +void ipi_selected(cpumask_t cpus, u_int ipi); void ipi_all_but_self(u_int ipi); void ipi_bitmap_handler(struct trapframe frame); u_int mp_bootaddress(u_int); int mp_grab_cpu_hlt(void); void smp_cache_flush(void); void smp_invlpg(vm_offset_t addr); -void smp_masked_invlpg(u_int mask, vm_offset_t addr); +void smp_masked_invlpg(cpumask_t mask, vm_offset_t addr); void smp_invlpg_range(vm_offset_t startva, vm_offset_t endva); -void smp_masked_invlpg_range(u_int mask, vm_offset_t startva, +void smp_masked_invlpg_range(cpumask_t mask, vm_offset_t startva, vm_offset_t endva); void smp_invltlb(void); -void smp_masked_invltlb(u_int mask); +void smp_masked_invltlb(cpumask_t mask); #ifdef STOP_NMI int ipi_nmi_handler(void); ==== //depot/projects/smpng/sys/amd64/include/specialreg.h#21 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * from: @(#)specialreg.h 7.1 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.54 2009/04/29 06:54:40 jeff Exp $ + * $FreeBSD: src/sys/amd64/include/specialreg.h,v 1.55 2009/05/13 17:53:04 jhb Exp $ */ #ifndef _MACHINE_SPECIALREG_H_ @@ -346,6 +346,34 @@ #define DIR1 0xff /* + * Machine Check register constants. + */ +#define MCG_CAP_COUNT 0x000000ff +#define MCG_CAP_CTL_P 0x00000100 +#define MCG_CAP_EXT_P 0x00000200 +#define MCG_CAP_TES_P 0x00000800 +#define MCG_CAP_EXT_CNT 0x00ff0000 +#define MCG_STATUS_RIPV 0x00000001 +#define MCG_STATUS_EIPV 0x00000002 +#define MCG_STATUS_MCIP 0x00000004 +#define MCG_CTL_ENABLE 0xffffffffffffffffUL +#define MCG_CTL_DISABLE 0x0000000000000000UL +#define MSR_MC_CTL(x) (MSR_MC0_CTL + (x) * 4) +#define MSR_MC_STATUS(x) (MSR_MC0_STATUS + (x) * 4) +#define MSR_MC_ADDR(x) (MSR_MC0_ADDR + (x) * 4) +#define MSR_MC_MISC(x) (MSR_MC0_MISC + (x) * 4) +#define MC_STATUS_MCA_ERROR 0x000000000000ffffUL +#define MC_STATUS_MODEL_ERROR 0x00000000ffff0000UL +#define MC_STATUS_OTHER_INFO 0x01ffffff00000000UL +#define MC_STATUS_PCC 0x0200000000000000UL +#define MC_STATUS_ADDRV 0x0400000000000000UL +#define MC_STATUS_MISCV 0x0800000000000000UL +#define MC_STATUS_EN 0x1000000000000000UL +#define MC_STATUS_UC 0x2000000000000000UL +#define MC_STATUS_OVER 0x4000000000000000UL +#define MC_STATUS_VAL 0x8000000000000000UL + +/* * The following four 3-byte registers control the non-cacheable regions. * These registers must be written as three separate bytes. * ==== //depot/projects/smpng/sys/amd64/include/vmparam.h#13 (text+ko) ==== @@ -38,7 +38,7 @@ * SUCH DAMAGE. * * from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.56 2008/07/08 22:59:17 alc Exp $ + * $FreeBSD: src/sys/amd64/include/vmparam.h,v 1.59 2009/05/16 22:08:00 kmacy Exp $ */ @@ -154,8 +154,7 @@ * 0xffff800000000000 - 0xffff804020100fff recursive page table (512GB slot) * 0xffff804020101000 - 0xfffffeffffffffff unused * 0xffffff0000000000 - 0xffffff7fffffffff 512GB direct map mappings - * 0xffffff8000000000 - 0xfffffffe3fffffff unused (505GB) - * 0xfffffffe40000000 - 0xffffffffffffffff 7GB kernel map + * 0xffffff8000000000 - 0xffffffffffffffff 512GB kernel map * * Within the kernel map: * @@ -163,7 +162,7 @@ */ #define VM_MAX_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-1, NPDEPG-1, NPTEPG-1) -#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-7, 0, 0) +#define VM_MIN_KERNEL_ADDRESS KVADDR(KPML4I, NPDPEPG-512, 0, 0) #define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0) #define DMAP_MAX_ADDRESS KVADDR(DMPML4I+1, 0, 0, 0) ==== //depot/projects/smpng/sys/amd64/linux32/linux.h#23 (text+ko) ==== @@ -27,7 +27,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.27 2009/05/11 13:50:42 dchagin Exp $ + * $FreeBSD: src/sys/amd64/linux32/linux.h,v 1.28 2009/05/16 18:48:41 dchagin Exp $ */ #ifndef _AMD64_LINUX_H_ @@ -571,6 +571,7 @@ #define LINUX_O_DIRECTORY 00200000 /* Must be a directory */ #define LINUX_O_NOFOLLOW 00400000 /* Do not follow links */ #define LINUX_O_NOATIME 01000000 +#define LINUX_O_CLOEXEC 02000000 #define LINUX_F_DUPFD 0 #define LINUX_F_GETFD 1 ==== //depot/projects/smpng/sys/amd64/pci/pci_cfgreg.c#13 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.114 2009/03/24 18:10:22 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.115 2009/05/18 21:47:32 jhb Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -35,6 +35,7 @@ #include <sys/lock.h> #include <sys/kernel.h> #include <sys/mutex.h> +#include <sys/sysctl.h> #include <dev/pci/pcivar.h> #include <dev/pci/pcireg.h> #include <vm/vm.h> @@ -56,6 +57,8 @@ static int pcireg_cfgread(int bus, int slot, int func, int reg, int bytes); static void pcireg_cfgwrite(int bus, int slot, int func, int reg, int data, int bytes); +SYSCTL_DECL(_hw_pci); + static int cfgmech; static vm_offset_t pcie_base; static int pcie_minbus, pcie_maxbus; @@ -63,6 +66,8 @@ static struct mtx pcicfg_mtx; static int mcfg_enable = 1; TUNABLE_INT("hw.pci.mcfg", &mcfg_enable); +SYSCTL_INT(_hw_pci, OID_AUTO, mcfg, CTLFLAG_RDTUN, &mcfg_enable, 0, + "Enable support for PCI-e memory mapped config access"); /* * Initialise access to PCI configuration space ==== //depot/projects/smpng/sys/arm/arm/machdep.c#27 (text+ko) ==== @@ -46,7 +46,7 @@ #include "opt_ddb.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.32 2009/02/12 22:55:39 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.33 2009/05/18 18:37:18 marcel Exp $"); #include <sys/param.h> #include <sys/proc.h> @@ -316,6 +316,18 @@ SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL); +/* + * Flush the D-cache for non-DMA I/O so that the I-cache can + * be made coherent later. + */ +void +cpu_flush_dcache(void *ptr, size_t len) +{ + + cpu_dcache_wb_range((uintptr_t)ptr, len); + cpu_l2cache_wb_range((uintptr_t)ptr, len); +} + /* Get current clock frequency for the given cpu id. */ int cpu_est_clockrate(int cpu_id, uint64_t *rate) ==== //depot/projects/smpng/sys/arm/at91/at91.c#19 (text) ==== @@ -24,7 +24,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.23 2009/04/22 23:54:41 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91.c,v 1.24 2009/05/15 04:49:20 imp Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -409,7 +409,7 @@ AT91RM92_IRQ_SSC2 }, { - "at91_spi", 0, + "spi", 0, AT91RM92_BASE + AT91RM92_SPI_BASE, AT91RM92_SPI_SIZE, AT91RM92_IRQ_SPI }, ==== //depot/projects/smpng/sys/arm/at91/at91_spi.c#9 (text) ==== @@ -24,7 +24,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/at91/at91_spi.c,v 1.8 2008/11/25 00:13:26 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/at91_spi.c,v 1.9 2009/05/13 18:42:49 gonzo Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -297,7 +297,7 @@ }; static driver_t at91_spi_driver = { - "at91_spi", + "spi", at91_spi_methods, sizeof(struct at91_spi_softc), }; ==== //depot/projects/smpng/sys/arm/at91/if_ate.c#21 (text) ==== @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.35 2009/05/12 21:28:41 stas Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/if_ate.c,v 1.37 2009/05/13 21:01:10 stas Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -69,8 +69,8 @@ #include "miibus_if.h" -#define ATE_MAX_TX_BUFFERS 2 /* We have ping-pong tx buffers */ -#define ATE_MAX_RX_BUFFERS 64 +#define ATE_MAX_TX_BUFFERS 2 /* We have ping-pong tx buffers */ +#define ATE_MAX_RX_BUFFERS 64 /* * Driver-specific flags. @@ -80,41 +80,43 @@ struct ate_softc { - struct ifnet *ifp; /* ifnet pointer */ - struct mtx sc_mtx; /* basically a perimeter lock */ - device_t dev; /* Myself */ - device_t miibus; /* My child miibus */ - void *intrhand; /* Interrupt handle */ - struct resource *irq_res; /* IRQ resource */ + struct ifnet *ifp; /* ifnet pointer */ + struct mtx sc_mtx; /* Basically a perimeter lock */ + device_t dev; /* Myself */ + device_t miibus; /* My child miibus */ + struct resource *irq_res; /* IRQ resource */ struct resource *mem_res; /* Memory resource */ - struct callout tick_ch; /* Tick callout */ - bus_dma_tag_t mtag; /* bus dma tag for mbufs */ - bus_dmamap_t tx_map[ATE_MAX_TX_BUFFERS]; - struct mbuf *sent_mbuf[ATE_MAX_TX_BUFFERS]; /* Sent mbufs */ - bus_dma_tag_t rxtag; - bus_dmamap_t rx_map[ATE_MAX_RX_BUFFERS]; - void *rx_buf[ATE_MAX_RX_BUFFERS]; /* RX buffer space */ - int rx_buf_ptr; - bus_dma_tag_t rx_desc_tag; - bus_dmamap_t rx_desc_map; - int txcur; /* current tx map pointer */ - bus_addr_t rx_desc_phys; - eth_rx_desc_t *rx_descs; - int use_rmii; - struct ifmib_iso_8802_3 mibdata; /* stuff for network mgmt */ - int flags; - int if_flags; + struct callout tick_ch; /* Tick callout */ + struct ifmib_iso_8802_3 mibdata; /* Stuff for network mgmt */ + struct mbuf *sent_mbuf[ATE_MAX_TX_BUFFERS]; /* Sent mbufs */ + bus_dma_tag_t mtag; /* bus dma tag for mbufs */ + bus_dma_tag_t rxtag; + bus_dma_tag_t rx_desc_tag; + bus_dmamap_t rx_desc_map; + bus_dmamap_t rx_map[ATE_MAX_RX_BUFFERS]; + bus_dmamap_t tx_map[ATE_MAX_TX_BUFFERS]; + bus_addr_t rx_desc_phys; + eth_rx_desc_t *rx_descs; + void *rx_buf[ATE_MAX_RX_BUFFERS]; /* RX buffer space */ + void *intrhand; /* Interrupt handle */ + int flags; + int if_flags; + int rx_buf_ptr; + int txcur; /* Current TX map pointer */ + int use_rmii; }; static inline uint32_t RD4(struct ate_softc *sc, bus_size_t off) { - return bus_read_4(sc->mem_res, off); + + return (bus_read_4(sc->mem_res, off)); } static inline void WR4(struct ate_softc *sc, bus_size_t off, uint32_t val) { + bus_write_4(sc->mem_res, off, val); } @@ -125,41 +127,45 @@ bus_barrier(sc->mem_res, off, len, flags); } -#define ATE_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) +#define ATE_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) #define ATE_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) -#define ATE_LOCK_INIT(_sc) \ - mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->dev), \ +#define ATE_LOCK_INIT(_sc) \ + mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->dev), \ MTX_NETWORK_LOCK, MTX_DEF) -#define ATE_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); -#define ATE_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); -#define ATE_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); +#define ATE_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); +#define ATE_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); +#define ATE_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); static devclass_t ate_devclass; -/* ifnet entry points */ +/* + * ifnet entry points. + */ +static void ateinit_locked(void *); +static void atestart_locked(struct ifnet *); -static void ateinit_locked(void *); -static void atestart_locked(struct ifnet *); +static void ateinit(void *); +static void atestart(struct ifnet *); +static void atestop(struct ate_softc *); +static int ateioctl(struct ifnet * ifp, u_long, caddr_t); -static void ateinit(void *); -static void atestart(struct ifnet *); -static void atestop(struct ate_softc *); -static int ateioctl(struct ifnet * ifp, u_long, caddr_t); +/* + * Bus entry points. + */ +static int ate_probe(device_t dev); +static int ate_attach(device_t dev); +static int ate_detach(device_t dev); +static void ate_intr(void *); -/* bus entry points */ - -static int ate_probe(device_t dev); -static int ate_attach(device_t dev); -static int ate_detach(device_t dev); -static void ate_intr(void *); - -/* helper routines */ -static int ate_activate(device_t dev); -static void ate_deactivate(struct ate_softc *sc); -static int ate_ifmedia_upd(struct ifnet *ifp); -static void ate_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr); -static int ate_get_mac(struct ate_softc *sc, u_char *eaddr); -static void ate_set_mac(struct ate_softc *sc, u_char *eaddr); +/* + * Helper routines. + */ +static int ate_activate(device_t dev); +static void ate_deactivate(struct ate_softc *sc); +static int ate_ifmedia_upd(struct ifnet *ifp); +static void ate_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr); +static int ate_get_mac(struct ate_softc *sc, u_char *eaddr); +static void ate_set_mac(struct ate_softc *sc, u_char *eaddr); static void ate_rxfilter(struct ate_softc *sc); /* @@ -171,6 +177,7 @@ static int ate_probe(device_t dev) { + device_set_desc(dev, "EMAC"); return (0); } @@ -178,7 +185,7 @@ static int ate_attach(device_t dev) { - struct ate_softc *sc = device_get_softc(dev); + struct ate_softc *sc; struct ifnet *ifp = NULL; struct sysctl_ctx_list *sctx; struct sysctl_oid *soid; @@ -186,6 +193,7 @@ uint32_t rnd; int rid, err; + sc = device_get_softc(dev); sc->dev = dev; ATE_LOCK_INIT(sc); @@ -221,7 +229,7 @@ SYSCTL_ADD_UINT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "rmii", CTLFLAG_RD, &sc->use_rmii, 0, "rmii in use"); - /* calling atestop before ifp is set is OK */ + /* Calling atestop before ifp is set is OK. */ ATE_LOCK(sc); atestop(sc); ATE_UNLOCK(sc); @@ -248,7 +256,6 @@ eaddr[4] = (rnd >> 8) & 0xff; eaddr[5] = rnd & 0xff; } - ate_set_mac(sc, eaddr); sc->ifp = ifp = if_alloc(IFT_ETHER); if (mii_phy_probe(dev, &sc->miibus, ate_ifmedia_upd, ate_ifmedia_sts)) { @@ -261,7 +268,7 @@ if_initname(ifp, device_get_name(dev), device_get_unit(dev)); ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_capabilities |= IFCAP_VLAN_MTU; - ifp->if_capenable |= IFCAP_VLAN_MTU; /* the hw bits already set */ + ifp->if_capenable |= IFCAP_VLAN_MTU; /* The hw bits already set. */ ifp->if_start = atestart; ifp->if_ioctl = ateioctl; ifp->if_init = ateinit; @@ -435,8 +442,9 @@ int err, i; sc = device_get_softc(dev); + /* - * Allocate DMA tags and maps + * Allocate DMA tags and maps. */ err = bus_dma_tag_create(bus_get_dma_tag(dev), 1, 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES, @@ -448,11 +456,7 @@ if (err != 0) goto errout; } - /* - * Allocate our Rx buffers. This chip has a rx structure that's filled - * in - */ - + /* * Allocate DMA tags and maps for RX. */ @@ -462,7 +466,9 @@ if (err != 0) goto errout; - /* Dma TAG and MAP for the rx descriptors. */ + /* + * DMA tag and map for the RX descriptors. + */ err = bus_dma_tag_create(bus_get_dma_tag(dev), sizeof(eth_rx_desc_t), 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, ATE_MAX_RX_BUFFERS * sizeof(eth_rx_desc_t), 1, @@ -477,6 +483,11 @@ sc->rx_descs, ATE_MAX_RX_BUFFERS * sizeof(eth_rx_desc_t), ate_getaddr, sc, 0) != 0) goto errout; + + /* + * Allocate our RX buffers. This chip has a RX structure that's filled + * in. + */ for (i = 0; i < ATE_MAX_RX_BUFFERS; i++) { sc->rx_buf_ptr = i; if (bus_dmamem_alloc(sc->rxtag, (void **)&sc->rx_buf[i], @@ -487,7 +498,7 @@ goto errout; } sc->rx_buf_ptr = 0; >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905191341.n4JDfeG5049773>