Date: Thu, 31 Dec 2009 00:52:30 GMT From: Andrew Thompson <thompsa@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 172419 for review Message-ID: <200912310052.nBV0qULx076822@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/chv.cgi?CH=172419 Change 172419 by thompsa@thompsa_pea on 2009/12/31 00:51:43 IFC @172418 Affected files ... .. //depot/projects/usb/src/sys/amd64/amd64/mem.c#5 integrate .. //depot/projects/usb/src/sys/arm/arm/mem.c#5 integrate .. //depot/projects/usb/src/sys/arm/conf/AVILA#19 integrate .. //depot/projects/usb/src/sys/arm/conf/CAMBRIA#11 integrate .. //depot/projects/usb/src/sys/arm/include/pmc_mdep.h#3 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/files.ixp425#10 integrate .. //depot/projects/usb/src/sys/boot/common/dev_net.c#4 integrate .. //depot/projects/usb/src/sys/boot/ofw/libofw/ofw_disk.c#3 integrate .. //depot/projects/usb/src/sys/boot/sparc64/loader/main.c#9 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_all.c#7 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_da.c#9 integrate .. //depot/projects/usb/src/sys/cddl/boot/zfs/zfsimpl.h#5 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#4 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h#4 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#7 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#11 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h#3 integrate .. //depot/projects/usb/src/sys/conf/files#89 integrate .. //depot/projects/usb/src/sys/conf/files.arm#10 integrate .. //depot/projects/usb/src/sys/conf/files.ia64#15 integrate .. //depot/projects/usb/src/sys/conf/files.sun4v#9 integrate .. //depot/projects/usb/src/sys/conf/options.sparc64#6 integrate .. //depot/projects/usb/src/sys/contrib/dev/iwn/iwlwifi-1000-128.50.3.1.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/iwn/iwlwifi-4965-228.57.2.23.fw.uu#2 delete .. //depot/projects/usb/src/sys/contrib/dev/iwn/iwlwifi-4965-228.61.2.24.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/iwn/iwlwifi-5000-5.4.A.11.fw.uu#2 delete .. //depot/projects/usb/src/sys/contrib/dev/iwn/iwlwifi-5000-8.24.2.12.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/dev/iwn/iwlwifi-6000-9.176.4.1.fw.uu#1 branch .. //depot/projects/usb/src/sys/contrib/pf/net/if_pfsync.c#8 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/if_pfsync.h#4 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf.c#16 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pfvar.h#7 integrate .. //depot/projects/usb/src/sys/dev/adlink/adlink.c#4 integrate .. //depot/projects/usb/src/sys/dev/ae/if_ae.c#7 integrate .. //depot/projects/usb/src/sys/dev/agp/agp.c#9 integrate .. //depot/projects/usb/src/sys/dev/ahci/ahci.c#9 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aicasm/Makefile#3 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aicasm/aicasm.c#4 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l#3 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aicasm/aicasm_scan.l#3 integrate .. //depot/projects/usb/src/sys/dev/aic7xxx/aicasm/aicasm_symbol.c#3 integrate .. //depot/projects/usb/src/sys/dev/bktr/bktr_os.c#7 integrate .. //depot/projects/usb/src/sys/dev/cardbus/cardbus_cis.c#8 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_vm.c#6 integrate .. //depot/projects/usb/src/sys/dev/fb/creator.c#9 integrate .. //depot/projects/usb/src/sys/dev/fb/fb.c#4 integrate .. //depot/projects/usb/src/sys/dev/fb/fbreg.h#4 integrate .. //depot/projects/usb/src/sys/dev/fb/machfb.c#5 integrate .. //depot/projects/usb/src/sys/dev/fb/s3_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/fb/vesa.c#7 integrate .. //depot/projects/usb/src/sys/dev/fb/vga.c#4 integrate .. //depot/projects/usb/src/sys/dev/fb/vgareg.h#5 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwdev.c#9 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwmem.c#4 integrate .. //depot/projects/usb/src/sys/dev/hifn/hifn7751.c#5 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_arm.c#4 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_core.c#6 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_mod.c#16 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_xscale.c#1 branch .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_xscale.h#1 branch .. //depot/projects/usb/src/sys/dev/hwpmc/pmc_events.h#8 integrate .. //depot/projects/usb/src/sys/dev/iwn/if_iwn.c#13 integrate .. //depot/projects/usb/src/sys/dev/iwn/if_iwnreg.h#3 integrate .. //depot/projects/usb/src/sys/dev/iwn/if_iwnvar.h#5 integrate .. //depot/projects/usb/src/sys/dev/jme/if_jme.c#9 integrate .. //depot/projects/usb/src/sys/dev/ksyms/ksyms.c#4 integrate .. //depot/projects/usb/src/sys/dev/led/led.c#6 integrate .. //depot/projects/usb/src/sys/dev/mc146818/mc146818.c#3 integrate .. //depot/projects/usb/src/sys/dev/mc146818/mc146818reg.h#3 integrate .. //depot/projects/usb/src/sys/dev/mc146818/mc146818var.h#3 integrate .. //depot/projects/usb/src/sys/dev/md/md.c#14 integrate .. //depot/projects/usb/src/sys/dev/mge/if_mge.c#8 integrate .. //depot/projects/usb/src/sys/dev/mk48txx/mk48txx.c#5 integrate .. //depot/projects/usb/src/sys/dev/mk48txx/mk48txxreg.h#2 integrate .. //depot/projects/usb/src/sys/dev/mk48txx/mk48txxvar.h#2 integrate .. //depot/projects/usb/src/sys/dev/mpt/mpt_pci.c#10 integrate .. //depot/projects/usb/src/sys/dev/pci/pci.c#32 integrate .. //depot/projects/usb/src/sys/dev/pci/pci_private.h#6 integrate .. //depot/projects/usb/src/sys/dev/siis/siis.c#9 integrate .. //depot/projects/usb/src/sys/dev/siis/siis.h#5 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/channel.c#9 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/dsp.c#10 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/sndstat.c#6 integrate .. //depot/projects/usb/src/sys/dev/ste/if_ste.c#6 integrate .. //depot/projects/usb/src/sys/dev/ste/if_stereg.h#4 integrate .. //depot/projects/usb/src/sys/dev/syscons/syscons.c#19 integrate .. //depot/projects/usb/src/sys/dev/tdfx/tdfx_pci.c#5 integrate .. //depot/projects/usb/src/sys/dev/twe/twe.c#6 integrate .. //depot/projects/usb/src/sys/dev/twe/twe_freebsd.c#6 integrate .. //depot/projects/usb/src/sys/dev/twe/twevar.h#3 integrate .. //depot/projects/usb/src/sys/dev/uart/uart_bus_ebus.c#2 integrate .. //depot/projects/usb/src/sys/dev/uart/uart_cpu_sparc64.c#3 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_aue.c#19 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_axe.c#22 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_cue.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb/net/if_kue.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#13 integrate .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.h#8 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uftdi.c#22 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uplcom.c#17 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uslcom.c#14 integrate .. //depot/projects/usb/src/sys/dev/usb/serial/uvisor.c#16 integrate .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#43 integrate .. //depot/projects/usb/src/sys/dev/usb/usbdevs#93 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_rum.c#20 integrate .. //depot/projects/usb/src/sys/dev/usb/wlan/if_ural.c#19 integrate .. //depot/projects/usb/src/sys/dev/vge/if_vge.c#14 integrate .. //depot/projects/usb/src/sys/dev/xen/blkfront/blkfront.c#9 integrate .. //depot/projects/usb/src/sys/fs/nfs/nfs_commonacl.c#6 integrate .. //depot/projects/usb/src/sys/fs/nfs/nfs_var.h#7 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs.h#3 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clbio.c#8 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#14 integrate .. //depot/projects/usb/src/sys/fs/nfsserver/nfs_nfsdport.c#9 integrate .. //depot/projects/usb/src/sys/fs/nfsserver/nfs_nfsdserv.c#5 integrate .. //depot/projects/usb/src/sys/geom/concat/g_concat.c#6 integrate .. //depot/projects/usb/src/sys/geom/gate/g_gate.c#3 integrate .. //depot/projects/usb/src/sys/geom/geom_dev.c#13 integrate .. //depot/projects/usb/src/sys/geom/geom_io.c#12 integrate .. //depot/projects/usb/src/sys/geom/mirror/g_mirror.c#10 integrate .. //depot/projects/usb/src/sys/geom/raid3/g_raid3.c#10 integrate .. //depot/projects/usb/src/sys/geom/stripe/g_stripe.c#7 integrate .. //depot/projects/usb/src/sys/i386/i386/elan-mmcr.c#5 integrate .. //depot/projects/usb/src/sys/i386/i386/mem.c#3 integrate .. //depot/projects/usb/src/sys/i386/xbox/xboxfb.c#4 integrate .. //depot/projects/usb/src/sys/ia64/ia64/bus_machdep.c#1 branch .. //depot/projects/usb/src/sys/ia64/ia64/clock.c#7 integrate .. //depot/projects/usb/src/sys/ia64/ia64/machdep.c#17 integrate .. //depot/projects/usb/src/sys/ia64/ia64/mem.c#3 integrate .. //depot/projects/usb/src/sys/ia64/ia64/mp_machdep.c#13 integrate .. //depot/projects/usb/src/sys/ia64/ia64/nexus.c#7 integrate .. //depot/projects/usb/src/sys/ia64/ia64/sscdisk.c#4 integrate .. //depot/projects/usb/src/sys/ia64/ia64/sys_machdep.c#2 integrate .. //depot/projects/usb/src/sys/ia64/include/bus.h#3 integrate .. //depot/projects/usb/src/sys/ia64/include/clock.h#4 integrate .. //depot/projects/usb/src/sys/ia64/include/cpufunc.h#4 integrate .. //depot/projects/usb/src/sys/ia64/include/mca.h#3 integrate .. //depot/projects/usb/src/sys/ia64/include/md_var.h#7 integrate .. //depot/projects/usb/src/sys/isa/vga_isa.c#6 integrate .. //depot/projects/usb/src/sys/kern/kern_conf.c#20 integrate .. //depot/projects/usb/src/sys/kern/kern_jail.c#35 integrate .. //depot/projects/usb/src/sys/kern/kern_proc.c#25 integrate .. //depot/projects/usb/src/sys/kern/kern_rmlock.c#6 integrate .. //depot/projects/usb/src/sys/kern/sched_ule.c#22 integrate .. //depot/projects/usb/src/sys/kern/subr_acl_nfs4.c#4 integrate .. //depot/projects/usb/src/sys/kern/subr_acl_posix1e.c#7 integrate .. //depot/projects/usb/src/sys/kern/subr_bus.c#36 integrate .. //depot/projects/usb/src/sys/kern/subr_devstat.c#4 integrate .. //depot/projects/usb/src/sys/kern/subr_witness.c#22 integrate .. //depot/projects/usb/src/sys/kern/tty.c#34 integrate .. //depot/projects/usb/src/sys/kern/uipc_accf.c#3 integrate .. //depot/projects/usb/src/sys/kern/vfs_mount.c#33 integrate .. //depot/projects/usb/src/sys/kern/vfs_subr.c#29 integrate .. //depot/projects/usb/src/sys/mips/mips/mem.c#3 integrate .. //depot/projects/usb/src/sys/modules/iwnfw/Makefile#4 integrate .. //depot/projects/usb/src/sys/modules/iwnfw/iwn1000/Makefile#1 branch .. //depot/projects/usb/src/sys/modules/iwnfw/iwn4965/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/iwnfw/iwn5000/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/iwnfw/iwn6000/Makefile#1 branch .. //depot/projects/usb/src/sys/net/if.c#43 integrate .. //depot/projects/usb/src/sys/net/if.h#14 integrate .. //depot/projects/usb/src/sys/net/if_bridge.c#22 integrate .. //depot/projects/usb/src/sys/net/if_ethersubr.c#26 integrate .. //depot/projects/usb/src/sys/net/if_llatbl.c#9 integrate .. //depot/projects/usb/src/sys/net/if_llatbl.h#5 integrate .. //depot/projects/usb/src/sys/net/if_var.h#32 integrate .. //depot/projects/usb/src/sys/net/if_vlan.c#20 integrate .. //depot/projects/usb/src/sys/net/netisr.c#14 integrate .. //depot/projects/usb/src/sys/net/route.c#28 integrate .. //depot/projects/usb/src/sys/net/route.h#13 integrate .. //depot/projects/usb/src/sys/net/rtsock.c#34 integrate .. //depot/projects/usb/src/sys/netgraph/atm/uni/ng_uni.c#3 integrate .. //depot/projects/usb/src/sys/netgraph/ng_base.c#22 integrate .. //depot/projects/usb/src/sys/netgraph/ng_ipfw.c#6 integrate .. //depot/projects/usb/src/sys/netgraph/ng_ipfw.h#4 integrate .. //depot/projects/usb/src/sys/netinet/in.c#40 integrate .. //depot/projects/usb/src/sys/netinet/in.h#16 integrate .. //depot/projects/usb/src/sys/netinet/ip_dummynet.h#9 integrate .. //depot/projects/usb/src/sys/netinet/ip_encap.c#5 integrate .. //depot/projects/usb/src/sys/netinet/ip_mroute.c#19 integrate .. //depot/projects/usb/src/sys/netinet/ip_output.c#31 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_dummynet.c#6 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#14 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_dynamic.c#2 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_log.c#2 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_nat.c#7 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_pfil.c#7 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_private.h#2 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_sockopt.c#2 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_table.c#2 integrate .. //depot/projects/usb/src/sys/netinet/libalias/alias_mod.c#3 integrate .. //depot/projects/usb/src/sys/netinet6/in6.c#36 integrate .. //depot/projects/usb/src/sys/netinet6/nd6.c#29 integrate .. //depot/projects/usb/src/sys/nfsclient/krpc_subr.c#8 integrate .. //depot/projects/usb/src/sys/pc98/cbus/gdc.c#4 integrate .. //depot/projects/usb/src/sys/powerpc/ofw/ofw_syscons.c#6 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/mem.c#5 integrate .. //depot/projects/usb/src/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c#5 integrate .. //depot/projects/usb/src/sys/sparc64/include/intr_machdep.h#8 integrate .. //depot/projects/usb/src/sys/sparc64/include/iommureg.h#5 integrate .. //depot/projects/usb/src/sys/sparc64/include/iommuvar.h#5 integrate .. //depot/projects/usb/src/sys/sparc64/pci/fire.c#1 branch .. //depot/projects/usb/src/sys/sparc64/pci/firereg.h#1 branch .. //depot/projects/usb/src/sys/sparc64/pci/firevar.h#1 branch .. //depot/projects/usb/src/sys/sparc64/pci/ofw_pci.h#7 integrate .. //depot/projects/usb/src/sys/sparc64/pci/ofw_pcib.c#8 integrate .. //depot/projects/usb/src/sys/sparc64/pci/ofw_pcibus.c#11 integrate .. //depot/projects/usb/src/sys/sparc64/pci/psycho.c#13 integrate .. //depot/projects/usb/src/sys/sparc64/pci/schizo.c#6 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/eeprom.c#5 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/identcpu.c#5 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/interrupt.S#3 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/intr_machdep.c#9 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/iommu.c#8 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/nexus.c#7 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/ofw_machdep.c#4 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/rtc.c#5 integrate .. //depot/projects/usb/src/sys/sun4v/conf/NOTES#3 integrate .. //depot/projects/usb/src/sys/sys/ata.h#11 integrate .. //depot/projects/usb/src/sys/sys/conf.h#22 integrate .. //depot/projects/usb/src/sys/sys/disk.h#6 integrate .. //depot/projects/usb/src/sys/sys/file.h#8 integrate .. //depot/projects/usb/src/sys/sys/pmc.h#9 integrate .. //depot/projects/usb/src/sys/sys/ttydevsw.h#3 integrate .. //depot/projects/usb/src/sys/vm/device_pager.c#12 integrate .. //depot/projects/usb/src/sys/vm/uma_core.c#12 integrate .. //depot/projects/usb/src/sys/xen/gnttab.c#7 integrate Differences ... ==== //depot/projects/usb/src/sys/amd64/amd64/mem.c#5 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.124 2008/09/27 08:51:18 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.125 2009/12/29 21:51:28 rnoland Exp $"); /* * Memory special file @@ -144,8 +144,8 @@ */ /* ARGSUSED */ int -memmmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, - int prot __unused) +memmmap(struct cdev *dev, vm_ooffset_t offset, vm_paddr_t *paddr, + int prot __unused, vm_memattr_t *memattr __unused) { if (dev2unit(dev) == CDEV_MINOR_MEM) *paddr = offset; ==== //depot/projects/usb/src/sys/arm/arm/mem.c#5 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/mem.c,v 1.6 2008/09/27 08:51:18 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/mem.c,v 1.7 2009/12/29 21:51:28 rnoland Exp $"); /* * Memory special file @@ -153,8 +153,8 @@ /* ARGSUSED */ int -memmmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, - int prot __unused) +memmmap(struct cdev *dev, vm_ooffset_t offset, vm_paddr_t *paddr, + int prot __unused, vm_memattr_t *memattr __unused) { if (dev2unit(dev) == CDEV_MINOR_MEM) *paddr = offset; ==== //depot/projects/usb/src/sys/arm/conf/AVILA#19 (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/arm/conf/AVILA,v 1.34 2009/12/02 00:38:11 thompsa Exp $ +# $FreeBSD: src/sys/arm/conf/AVILA,v 1.35 2009/12/23 23:16:54 rpaulo Exp $ ident AVILA @@ -61,6 +61,10 @@ #options PREEMPTION #options VERBOSE_SYSINIT +# Hardware performance counters +options HWPMC_HOOKS +device hwpmc + #device saarm device pci ==== //depot/projects/usb/src/sys/arm/conf/CAMBRIA#11 (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/arm/conf/CAMBRIA,v 1.15 2009/12/02 00:37:03 thompsa Exp $ +# $FreeBSD: src/sys/arm/conf/CAMBRIA,v 1.16 2009/12/23 23:16:54 rpaulo Exp $ ident CAMBRIA @@ -58,6 +58,10 @@ options BOOTP_WIRED_TO=npe0 options BOOTP_COMPAT +# Hardware performance counters +options HWPMC_HOOKS +device hwpmc + #options VERBOSE_SYSINIT options VERBOSE_INIT_ARM ==== //depot/projects/usb/src/sys/arm/include/pmc_mdep.h#3 (text+ko) ==== @@ -1,12 +1,42 @@ /*- - * This file is in the public domain. + * Copyright (c) 2009 Rui Paulo <rpaulo@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 ``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 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. * - * $FreeBSD: src/sys/arm/include/pmc_mdep.h,v 1.3 2007/12/07 13:45:46 jkoshy Exp $ + * $FreeBSD: src/sys/arm/include/pmc_mdep.h,v 1.4 2009/12/23 23:16:54 rpaulo Exp $ */ #ifndef _MACHINE_PMC_MDEP_H_ #define _MACHINE_PMC_MDEP_H_ +#define PMC_MDEP_CLASS_INDEX_XSCALE 0 +/* + * On the ARM platform we support the following PMCs. + * + * XSCALE Intel XScale processors + */ +#include <dev/hwpmc/hwpmc_xscale.h> + union pmc_md_op_pmcallocate { uint64_t __pad[4]; }; @@ -15,14 +45,20 @@ #define PMCLOG_READADDR PMCLOG_READ32 #define PMCLOG_EMITADDR PMCLOG_EMIT32 -#if _KERNEL +#ifdef _KERNEL union pmc_md_pmc { + struct pmc_md_xscale_pmc pm_xscale; }; -#define PMC_TRAPFRAME_TO_PC(TF) (0) /* Stubs */ -#define PMC_TRAPFRAME_TO_FP(TF) (0) -#define PMC_TRAPFRAME_TO_SP(TF) (0) +#define PMC_TRAPFRAME_TO_PC(TF) ((TF)->tf_pc) +#define PMC_TRAPFRAME_TO_FP(TF) ((TF)->tf_usr_lr) +#define PMC_TRAPFRAME_TO_SP(TF) ((TF)->tf_usr_sp) -#endif +/* + * Prototypes + */ +struct pmc_mdep *pmc_xscale_initialize(void); +void pmc_xscale_finalize(struct pmc_mdep *_md); +#endif /* _KERNEL */ #endif /* !_MACHINE_PMC_MDEP_H_ */ ==== //depot/projects/usb/src/sys/arm/xscale/ixp425/files.ixp425#10 (text+ko) ==== @@ -1,4 +1,4 @@ -#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.11 2009/05/27 16:16:56 thompsa Exp $ +#$FreeBSD: src/sys/arm/xscale/ixp425/files.ixp425,v 1.12 2009/12/23 23:16:54 rpaulo Exp $ arm/arm/bus_space_generic.c standard arm/arm/cpufunc_asm_xscale.S standard arm/arm/irq_dispatch.S standard @@ -16,6 +16,7 @@ arm/xscale/ixp425/ixp425_a4x_space.c optional uart arm/xscale/ixp425/ixp425_a4x_io.S optional uart dev/cfi/cfi_bus_ixp4xx.c optional cfi +dev/hwpmc/hwpmc_xscale.c optional hwpmc dev/uart/uart_dev_ns8250.c optional uart # # NPE-based Ethernet support (requires qmgr also). ==== //depot/projects/usb/src/sys/boot/common/dev_net.c#4 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/common/dev_net.c,v 1.18 2008/09/10 20:53:22 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/common/dev_net.c,v 1.19 2009/12/24 15:16:16 marius Exp $"); /*- * This module implements a "raw device" interface suitable for @@ -76,7 +76,9 @@ #include "dev_net.h" #include "bootstrap.h" +#ifdef NETIF_DEBUG int debug = 0; +#endif static int netdev_sock = -1; static int netdev_opens; @@ -100,7 +102,7 @@ net_print }; -int +static int net_init(void) { @@ -112,7 +114,7 @@ * This opens the low-level device and sets f->f_devdata. * This is declared with variable arguments... */ -int +static int net_open(struct open_file *f, ...) { va_list args; @@ -132,8 +134,10 @@ printf("net_open: netif_open() failed\n"); return (ENXIO); } +#ifdef NETIF_DEBUG if (debug) - printf("net_open: netif_open() succeeded\n"); + printf("net_open: netif_open() succeeded\n"); +#endif } if (rootip.s_addr == 0) { /* Get root IP address, and path, etc. */ @@ -154,7 +158,7 @@ return (error); } -int +static int net_close(struct open_file *f) { #ifdef NETIF_DEBUG @@ -173,15 +177,17 @@ return(0); rootip.s_addr = 0; if (netdev_sock >= 0) { +#ifdef NETIF_DEBUG if (debug) printf("net_close: calling netif_close()\n"); +#endif netif_close(netdev_sock); netdev_sock = -1; } return (0); } -int +static int net_strategy() { @@ -227,9 +233,11 @@ bootp(sock, BOOTP_NONE); if (myip.s_addr != 0) goto exit; +#ifdef NETIF_DEBUG if (debug) printf("net_open: BOOTP failed, trying RARP/RPC...\n"); #endif +#endif /* * Use RARP to get our IP address. This also sets our @@ -246,8 +254,10 @@ printf("net_open: bootparam/whoami RPC failed\n"); return (EIO); } +#ifdef NETIF_DEBUG if (debug) printf("net_open: client name: %s\n", hostname); +#endif /* * Ignore the gateway from whoami (unreliable). @@ -261,11 +271,15 @@ } if (smask) { netmask = smask; +#ifdef NETIF_DEBUG if (debug) - printf("net_open: subnet mask: %s\n", intoa(netmask)); + printf("net_open: subnet mask: %s\n", intoa(netmask)); +#endif } +#ifdef NETIF_DEBUG if (gateip.s_addr && debug) printf("net_open: net gateway: %s\n", inet_ntoa(gateip)); +#endif /* Get the root server and pathname. */ if (bp_getfile(sock, "root", &rootip, rootpath)) { @@ -288,10 +302,12 @@ bcopy(&rootpath[i], &temp[0], strlen(&rootpath[i])+1); bcopy(&temp[0], &rootpath[0], strlen(&rootpath[i])+1); } +#ifdef NETIF_DEBUG if (debug) { printf("net_open: server addr: %s\n", inet_ntoa(rootip)); printf("net_open: server path: %s\n", rootpath); } +#endif d = socktodesc(sock); sprintf(temp, "%6D", d->myea, ":"); ==== //depot/projects/usb/src/sys/boot/ofw/libofw/ofw_disk.c#3 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_disk.c,v 1.14 2008/10/13 17:14:29 nwhitehorn Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_disk.c,v 1.15 2009/12/28 22:56:30 antoine Exp $"); /* * Disk I/O routines using Open Firmware @@ -67,7 +67,7 @@ SLIST_ENTRY(opened_dev) link; }; -SLIST_HEAD(, opened_dev) opened_devs = SLIST_HEAD_INITIALIZER(opened_dev); +SLIST_HEAD(, opened_dev) opened_devs = SLIST_HEAD_INITIALIZER(opened_devs); static int ofwd_init(void) ==== //depot/projects/usb/src/sys/boot/sparc64/loader/main.c#9 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.42 2009/04/14 19:02:34 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.44 2009/12/24 15:23:51 marius Exp $"); /* * FreeBSD/sparc64 kernel loader - machine dependent part @@ -261,7 +261,6 @@ sparc64_autoload(void) { - setenv("hw.ata.atapi_dma", "0", 0); return (0); } @@ -387,6 +386,8 @@ pmap_print_tlb_sun4u(); #endif + dev_cleanup(); + entry = e->e_entry; OF_release((void *)heapva, HEAPSZ); ==== //depot/projects/usb/src/sys/cam/ata/ata_all.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_all.c,v 1.11 2009/12/07 16:23:25 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_all.c,v 1.12 2009/12/28 20:08:01 mav Exp $"); #include <sys/param.h> @@ -75,6 +75,11 @@ switch (cmd->command) { case 0x00: return ("NOP"); case 0x03: return ("CFA_REQUEST_EXTENDED_ERROR"); + case 0x06: + switch (cmd->features) { + case 0x01: return ("DSM TRIM"); + } + return "DSM"; case 0x08: return ("DEVICE_RESET"); case 0x20: return ("READ"); case 0x24: return ("READ48"); @@ -338,7 +343,8 @@ cmd == ATA_WRITE_DMA_FUA48 || cmd == ATA_WRITE_DMA_QUEUED48 || cmd == ATA_WRITE_DMA_QUEUED_FUA48 || - cmd == ATA_WRITE_STREAM_DMA48) + cmd == ATA_WRITE_STREAM_DMA48 || + cmd == ATA_DATA_SET_MANAGEMENT) ataio->cmd.flags |= CAM_ATAIO_DMA; ataio->cmd.command = cmd; ataio->cmd.features = features; ==== //depot/projects/usb/src/sys/cam/ata/ata_da.c#9 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.12 2009/12/06 11:48:53 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_da.c,v 1.14 2009/12/28 20:08:01 mav Exp $"); #include <sys/param.h> @@ -74,8 +74,10 @@ ADA_FLAG_CAN_DMA = 0x010, ADA_FLAG_NEED_OTAG = 0x020, ADA_FLAG_WENT_IDLE = 0x040, + ADA_FLAG_CAN_TRIM = 0x080, ADA_FLAG_OPEN = 0x100, - ADA_FLAG_SCTX_INIT = 0x200 + ADA_FLAG_SCTX_INIT = 0x200, + ADA_FLAG_CAN_CFA = 0x400 } ada_flags; typedef enum { @@ -86,6 +88,7 @@ ADA_CCB_BUFFER_IO = 0x03, ADA_CCB_WAITING = 0x04, ADA_CCB_DUMP = 0x05, + ADA_CCB_TRIM = 0x06, ADA_CCB_TYPE_MASK = 0x0F, } ada_ccb_state; @@ -101,13 +104,23 @@ u_int64_t sectors; /* Total number sectors */ }; +#define TRIM_MAX_BLOCKS 4 +#define TRIM_MAX_RANGES TRIM_MAX_BLOCKS * 64 +struct trim_request { + uint8_t data[TRIM_MAX_RANGES * 8]; + struct bio *bps[TRIM_MAX_RANGES]; +}; + struct ada_softc { struct bio_queue_head bio_queue; + struct bio_queue_head trim_queue; ada_state state; ada_flags flags; ada_quirks quirks; int ordered_tag_count; int outstanding_cmds; + int trim_max_ranges; + int trim_running; struct disk_params params; struct disk *disk; union ccb saved_ccb; @@ -115,6 +128,7 @@ struct sysctl_ctx_list sysctl_ctx; struct sysctl_oid *sysctl_tree; struct callout sendordered_c; + struct trim_request trim_req; }; struct ada_quirk_entry { @@ -309,6 +323,18 @@ return (0); } +static void +adaschedule(struct cam_periph *periph) +{ + struct ada_softc *softc = (struct ada_softc *)periph->softc; + + if (bioq_first(&softc->bio_queue) || + (!softc->trim_running && bioq_first(&softc->trim_queue))) { + /* Have more work to do, so ensure we stay scheduled */ + xpt_schedule(periph, CAM_PRIORITY_NORMAL); + } +} + /* * Actually translate the requested transfer into one the physical driver * can understand. The transfer is described by a buf and will include @@ -341,12 +367,16 @@ /* * Place it in the queue of disk activities for this disk */ - bioq_disksort(&softc->bio_queue, bp); + if (bp->bio_cmd == BIO_DELETE && + (softc->flags & ADA_FLAG_CAN_TRIM)) + bioq_disksort(&softc->trim_queue, bp); + else + bioq_disksort(&softc->bio_queue, bp); /* * Schedule ourselves for performing the work. */ - xpt_schedule(periph, CAM_PRIORITY_NORMAL); + adaschedule(periph); cam_periph_unlock(periph); return; @@ -485,6 +515,7 @@ * with XPT_ABORT_CCB. */ bioq_flush(&softc->bio_queue, NULL, ENXIO); + bioq_flush(&softc->trim_queue, NULL, ENXIO); disk_gone(softc->disk); xpt_print(periph->path, "lost device\n"); @@ -618,6 +649,7 @@ } bioq_init(&softc->bio_queue); + bioq_init(&softc->trim_queue); if (cgd->ident_data.capabilities1 & ATA_SUPPORT_DMA) softc->flags |= ADA_FLAG_CAN_DMA; @@ -628,6 +660,17 @@ if (cgd->ident_data.satacapabilities & ATA_SUPPORT_NCQ && cgd->inq_flags & SID_CmdQue) softc->flags |= ADA_FLAG_CAN_NCQ; + if (cgd->ident_data.support_dsm & ATA_SUPPORT_DSM_TRIM) { + softc->flags |= ADA_FLAG_CAN_TRIM; + softc->trim_max_ranges = TRIM_MAX_RANGES; + if (cgd->ident_data.max_dsm_blocks != 0) { + softc->trim_max_ranges = + min(cgd->ident_data.max_dsm_blocks * 64, + softc->trim_max_ranges); + } + } + if (cgd->ident_data.support.command2 & ATA_SUPPORT_CFA) + softc->flags |= ADA_FLAG_CAN_CFA; softc->state = ADA_STATE_NORMAL; periph->softc = softc; @@ -672,7 +715,7 @@ maxio = DFLTPHYS; /* traditional default */ else if (maxio > MAXPHYS) maxio = MAXPHYS; /* for safety */ - if (cgd->ident_data.support.command2 & ATA_SUPPORT_ADDRESS48) + if (softc->flags & ADA_FLAG_CAN_48BIT) maxio = min(maxio, 65536 * softc->params.secsize); else /* 28bit ATA command limit */ maxio = min(maxio, 256 * softc->params.secsize); @@ -681,15 +724,24 @@ softc->disk->d_flags = 0; if (softc->flags & ADA_FLAG_CAN_FLUSHCACHE) softc->disk->d_flags |= DISKFLAG_CANFLUSHCACHE; + if ((softc->flags & ADA_FLAG_CAN_TRIM) || + ((softc->flags & ADA_FLAG_CAN_CFA) && + !(softc->flags & ADA_FLAG_CAN_48BIT))) + softc->disk->d_flags |= DISKFLAG_CANDELETE; strlcpy(softc->disk->d_ident, cgd->serial_num, MIN(sizeof(softc->disk->d_ident), cgd->serial_num_len + 1)); softc->disk->d_sectorsize = softc->params.secsize; softc->disk->d_mediasize = (off_t)softc->params.sectors * softc->params.secsize; - softc->disk->d_stripesize = ata_physical_sector_size(&cgd->ident_data); - softc->disk->d_stripeoffset = softc->disk->d_stripesize - - ata_logical_sector_offset(&cgd->ident_data); + if (ata_physical_sector_size(&cgd->ident_data) != + softc->params.secsize) { + softc->disk->d_stripesize = + ata_physical_sector_size(&cgd->ident_data); + softc->disk->d_stripeoffset = (softc->disk->d_stripesize - + ata_logical_sector_offset(&cgd->ident_data)) % + softc->disk->d_stripesize; + } /* XXX: these are not actually "firmware" values, so they may be wrong */ softc->disk->d_fwsectors = softc->params.secs_per_track; softc->disk->d_fwheads = softc->params.heads; @@ -738,13 +790,10 @@ switch (softc->state) { case ADA_STATE_NORMAL: { - /* Pull a buffer from the queue and get going on it */ struct bio *bp; + u_int8_t tag_code; - /* - * See if there is a buf with work for us to do.. - */ - bp = bioq_first(&softc->bio_queue); + /* Execute immediate CCB if waiting. */ if (periph->immediate_priority <= periph->pinfo.priority) { CAM_DEBUG_PRINT(CAM_DEBUG_SUBTRACE, ("queuing for immediate ccb\n")); @@ -753,115 +802,188 @@ periph_links.sle); periph->immediate_priority = CAM_PRIORITY_NONE; wakeup(&periph->ccb_list); - } else if (bp == NULL) { + /* Have more work to do, so ensure we stay scheduled */ + adaschedule(periph); + break; + } + /* Run TRIM if not running yet. */ + if (!softc->trim_running && + (bp = bioq_first(&softc->trim_queue)) != 0) { + struct trim_request *req = &softc->trim_req; + struct bio *bp1; + int bps = 0, ranges = 0; + + softc->trim_running = 1; + bzero(req, sizeof(*req)); + bp1 = bp; + do { + uint64_t lba = bp1->bio_pblkno; + int count = bp1->bio_bcount / + softc->params.secsize; + + bioq_remove(&softc->trim_queue, bp1); + while (count > 0) { + int c = min(count, 0xffff); + int off = ranges * 8; + + req->data[off + 0] = lba & 0xff; + req->data[off + 1] = (lba >> 8) & 0xff; + req->data[off + 2] = (lba >> 16) & 0xff; + req->data[off + 3] = (lba >> 24) & 0xff; + req->data[off + 4] = (lba >> 32) & 0xff; + req->data[off + 5] = (lba >> 40) & 0xff; + req->data[off + 6] = c & 0xff; + req->data[off + 7] = (c >> 8) & 0xff; + lba += c; + count -= c; + ranges++; + } + req->bps[bps++] = bp1; + bp1 = bioq_first(&softc->trim_queue); + if (bp1 == NULL || + bp1->bio_bcount / softc->params.secsize > + (softc->trim_max_ranges - ranges) * 0xffff) + break; + } while (1); + cam_fill_ataio(ataio, + ada_retry_count, + adadone, + CAM_DIR_OUT, + 0, + req->data, + ((ranges + 63) / 64) * 512, + ada_default_timeout * 1000); + ata_48bit_cmd(ataio, ATA_DATA_SET_MANAGEMENT, + ATA_DSM_TRIM, 0, (ranges + 63) / 64); + start_ccb->ccb_h.ccb_state = ADA_CCB_TRIM; + goto out; + } + /* Run regular command. */ + bp = bioq_first(&softc->bio_queue); + if (bp == NULL) { xpt_release_ccb(start_ccb); + break; + } + bioq_remove(&softc->bio_queue, bp); + + if ((softc->flags & ADA_FLAG_NEED_OTAG) != 0) { + softc->flags &= ~ADA_FLAG_NEED_OTAG; + softc->ordered_tag_count++; + tag_code = 0; } else { - u_int8_t tag_code; + tag_code = 1; + } + switch (bp->bio_cmd) { + case BIO_READ: + case BIO_WRITE: + { + uint64_t lba = bp->bio_pblkno; + uint16_t count = bp->bio_bcount / softc->params.secsize; - bioq_remove(&softc->bio_queue, bp); + cam_fill_ataio(ataio, + ada_retry_count, + adadone, + bp->bio_cmd == BIO_READ ? + CAM_DIR_IN : CAM_DIR_OUT, + tag_code, + bp->bio_data, + bp->bio_bcount, + ada_default_timeout*1000); - if ((softc->flags & ADA_FLAG_NEED_OTAG) != 0) { - softc->flags &= ~ADA_FLAG_NEED_OTAG; - softc->ordered_tag_count++; - tag_code = 0; - } else { - tag_code = 1; - } - switch (bp->bio_cmd) { - case BIO_READ: - case BIO_WRITE: - { - uint64_t lba = bp->bio_pblkno; - uint16_t count = bp->bio_bcount / softc->params.secsize; - - cam_fill_ataio(ataio, - ada_retry_count, - adadone, - bp->bio_cmd == BIO_READ ? - CAM_DIR_IN : CAM_DIR_OUT, - tag_code, - bp->bio_data, - bp->bio_bcount, - ada_default_timeout*1000); - - if ((softc->flags & ADA_FLAG_CAN_NCQ) && tag_code) { + if ((softc->flags & ADA_FLAG_CAN_NCQ) && tag_code) { + if (bp->bio_cmd == BIO_READ) { + ata_ncq_cmd(ataio, ATA_READ_FPDMA_QUEUED, + lba, count); + } else { + ata_ncq_cmd(ataio, ATA_WRITE_FPDMA_QUEUED, + lba, count); + } + } else if ((softc->flags & ADA_FLAG_CAN_48BIT) && + (lba + count >= ATA_MAX_28BIT_LBA || + count > 256)) { + if (softc->flags & ADA_FLAG_CAN_DMA) { + if (bp->bio_cmd == BIO_READ) { + ata_48bit_cmd(ataio, ATA_READ_DMA48, + 0, lba, count); + } else { + ata_48bit_cmd(ataio, ATA_WRITE_DMA48, + 0, lba, count); + } + } else { if (bp->bio_cmd == BIO_READ) { - ata_ncq_cmd(ataio, ATA_READ_FPDMA_QUEUED, - lba, count); + ata_48bit_cmd(ataio, ATA_READ_MUL48, + 0, lba, count); } else { - ata_ncq_cmd(ataio, ATA_WRITE_FPDMA_QUEUED, - lba, count); + ata_48bit_cmd(ataio, ATA_WRITE_MUL48, + 0, lba, count); } - } else if ((softc->flags & ADA_FLAG_CAN_48BIT) && - (lba + count >= ATA_MAX_28BIT_LBA || - count > 256)) { - if (softc->flags & ADA_FLAG_CAN_DMA) { - if (bp->bio_cmd == BIO_READ) { - ata_48bit_cmd(ataio, ATA_READ_DMA48, - 0, lba, count); - } else { - ata_48bit_cmd(ataio, ATA_WRITE_DMA48, - 0, lba, count); - } + } + } else { + if (count == 256) + count = 0; + if (softc->flags & ADA_FLAG_CAN_DMA) { + if (bp->bio_cmd == BIO_READ) { + ata_28bit_cmd(ataio, ATA_READ_DMA, + 0, lba, count); } else { - if (bp->bio_cmd == BIO_READ) { - ata_48bit_cmd(ataio, ATA_READ_MUL48, - 0, lba, count); - } else { - ata_48bit_cmd(ataio, ATA_WRITE_MUL48, >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200912310052.nBV0qULx076822>