Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Oct 2013 10:02:05 +0000 (UTC)
From:      Andre Oppermann <andre@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r256781 - in user/andre/mbuf_staging: amd64/amd64 amd64/conf amd64/include amd64/vmm amd64/vmm/intel arm/arm arm/freescale/imx arm/include arm/mv arm/versatile arm/xscale/i80321 arm/xsc...
Message-ID:  <201310201002.r9KA257c015538@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: andre
Date: Sun Oct 20 10:02:04 2013
New Revision: 256781
URL: http://svnweb.freebsd.org/changeset/base/256781

Log:
  IFC @r256780.

Added:
  user/andre/mbuf_staging/dev/altera/atse/
     - copied from r256780, head/sys/dev/altera/atse/
  user/andre/mbuf_staging/dev/cxgbe/firmware/t4fw-1.9.12.0.bin.uu
     - copied unchanged from r256780, head/sys/dev/cxgbe/firmware/t4fw-1.9.12.0.bin.uu
  user/andre/mbuf_staging/dev/cxgbe/firmware/t5fw-1.9.12.0.bin.uu
     - copied unchanged from r256780, head/sys/dev/cxgbe/firmware/t5fw-1.9.12.0.bin.uu
  user/andre/mbuf_staging/dev/cxgbe/iw_cxgbe/
     - copied from r256780, head/sys/dev/cxgbe/iw_cxgbe/
  user/andre/mbuf_staging/dev/etherswitch/arswitch/arswitch_9340.c
     - copied unchanged from r256780, head/sys/dev/etherswitch/arswitch/arswitch_9340.c
  user/andre/mbuf_staging/dev/etherswitch/arswitch/arswitch_9340.h
     - copied unchanged from r256780, head/sys/dev/etherswitch/arswitch/arswitch_9340.h
  user/andre/mbuf_staging/dev/random/dummy_rng.c
     - copied unchanged from r256780, head/sys/dev/random/dummy_rng.c
  user/andre/mbuf_staging/dev/random/live_entropy_sources.c
     - copied unchanged from r256780, head/sys/dev/random/live_entropy_sources.c
  user/andre/mbuf_staging/dev/random/live_entropy_sources.h
     - copied unchanged from r256780, head/sys/dev/random/live_entropy_sources.h
  user/andre/mbuf_staging/dev/random/rwfile.c
     - copied unchanged from r256780, head/sys/dev/random/rwfile.c
  user/andre/mbuf_staging/dev/random/rwfile.h
     - copied unchanged from r256780, head/sys/dev/random/rwfile.h
  user/andre/mbuf_staging/modules/cxgbe/iw_cxgbe/
     - copied from r256780, head/sys/modules/cxgbe/iw_cxgbe/
  user/andre/mbuf_staging/powerpc/pseries/phyp_llan.c
     - copied unchanged from r256780, head/sys/powerpc/pseries/phyp_llan.c
Deleted:
  user/andre/mbuf_staging/contrib/rdma/core_priv.h
  user/andre/mbuf_staging/contrib/rdma/ib_addr.h
  user/andre/mbuf_staging/contrib/rdma/ib_cache.h
  user/andre/mbuf_staging/contrib/rdma/ib_cm.h
  user/andre/mbuf_staging/contrib/rdma/ib_fmr_pool.h
  user/andre/mbuf_staging/contrib/rdma/ib_mad.h
  user/andre/mbuf_staging/contrib/rdma/ib_marshall.h
  user/andre/mbuf_staging/contrib/rdma/ib_pack.h
  user/andre/mbuf_staging/contrib/rdma/ib_sa.h
  user/andre/mbuf_staging/contrib/rdma/ib_smi.h
  user/andre/mbuf_staging/contrib/rdma/ib_umem.h
  user/andre/mbuf_staging/contrib/rdma/ib_user_cm.h
  user/andre/mbuf_staging/contrib/rdma/ib_user_mad.h
  user/andre/mbuf_staging/contrib/rdma/ib_user_sa.h
  user/andre/mbuf_staging/contrib/rdma/ib_user_verbs.h
  user/andre/mbuf_staging/contrib/rdma/ib_verbs.h
  user/andre/mbuf_staging/contrib/rdma/iw_cm.h
  user/andre/mbuf_staging/contrib/rdma/rdma_addr.c
  user/andre/mbuf_staging/contrib/rdma/rdma_cache.c
  user/andre/mbuf_staging/contrib/rdma/rdma_cm.h
  user/andre/mbuf_staging/contrib/rdma/rdma_cm_ib.h
  user/andre/mbuf_staging/contrib/rdma/rdma_cma.c
  user/andre/mbuf_staging/contrib/rdma/rdma_device.c
  user/andre/mbuf_staging/contrib/rdma/rdma_iwcm.c
  user/andre/mbuf_staging/contrib/rdma/rdma_user_cm.h
  user/andre/mbuf_staging/contrib/rdma/rdma_verbs.c
  user/andre/mbuf_staging/contrib/rdma/types.h
  user/andre/mbuf_staging/dev/cxgbe/firmware/t4fw-1.8.11.0.bin.uu
  user/andre/mbuf_staging/dev/cxgbe/firmware/t5fw-1.8.22.0.bin.uu
  user/andre/mbuf_staging/dev/random/pseudo_rng.c
  user/andre/mbuf_staging/modules/rdma/addr/
  user/andre/mbuf_staging/modules/rdma/cma/
  user/andre/mbuf_staging/modules/rdma/core/
  user/andre/mbuf_staging/modules/rdma/iwcm/
Modified:
  user/andre/mbuf_staging/amd64/amd64/pmap.c
  user/andre/mbuf_staging/amd64/conf/GENERIC
  user/andre/mbuf_staging/amd64/include/vmm.h   (contents, props changed)
  user/andre/mbuf_staging/amd64/vmm/intel/vmx.c
  user/andre/mbuf_staging/amd64/vmm/intel/vmx.h
  user/andre/mbuf_staging/amd64/vmm/intel/vmx_controls.h
  user/andre/mbuf_staging/amd64/vmm/vmm_dev.c
  user/andre/mbuf_staging/amd64/vmm/x86.c
  user/andre/mbuf_staging/arm/arm/busdma_machdep-v6.c
  user/andre/mbuf_staging/arm/arm/cpufunc.c
  user/andre/mbuf_staging/arm/arm/cpufunc_asm_armv7.S
  user/andre/mbuf_staging/arm/arm/fusu.S
  user/andre/mbuf_staging/arm/arm/identcpu.c
  user/andre/mbuf_staging/arm/arm/locore.S
  user/andre/mbuf_staging/arm/arm/machdep.c
  user/andre/mbuf_staging/arm/arm/pl310.c
  user/andre/mbuf_staging/arm/arm/pmap-v6.c
  user/andre/mbuf_staging/arm/freescale/imx/imx51_ccm.c
  user/andre/mbuf_staging/arm/include/armreg.h
  user/andre/mbuf_staging/arm/include/pmap.h
  user/andre/mbuf_staging/arm/mv/common.c
  user/andre/mbuf_staging/arm/mv/mv_localbus.c
  user/andre/mbuf_staging/arm/mv/mvreg.h
  user/andre/mbuf_staging/arm/versatile/versatile_pci.c
  user/andre/mbuf_staging/arm/xscale/i80321/ep80219_machdep.c
  user/andre/mbuf_staging/arm/xscale/i80321/iq31244_machdep.c
  user/andre/mbuf_staging/arm/xscale/i8134x/crb_machdep.c
  user/andre/mbuf_staging/arm/xscale/ixp425/avila_machdep.c
  user/andre/mbuf_staging/arm/xscale/pxa/pxa_machdep.c
  user/andre/mbuf_staging/boot/forth/loader.conf
  user/andre/mbuf_staging/boot/i386/btx/btx/btx.S
  user/andre/mbuf_staging/cam/ata/ata_all.c
  user/andre/mbuf_staging/cam/ata/ata_all.h
  user/andre/mbuf_staging/cam/ata/ata_da.c
  user/andre/mbuf_staging/cam/ata/ata_pmp.c
  user/andre/mbuf_staging/cam/cam_periph.c
  user/andre/mbuf_staging/cam/cam_periph.h
  user/andre/mbuf_staging/cam/cam_xpt.c
  user/andre/mbuf_staging/cam/cam_xpt_periph.h
  user/andre/mbuf_staging/cam/scsi/scsi_all.c
  user/andre/mbuf_staging/cam/scsi/scsi_all.h
  user/andre/mbuf_staging/cam/scsi/scsi_cd.c
  user/andre/mbuf_staging/cam/scsi/scsi_ch.c
  user/andre/mbuf_staging/cam/scsi/scsi_da.c
  user/andre/mbuf_staging/cam/scsi/scsi_enc.c
  user/andre/mbuf_staging/cam/scsi/scsi_pass.c
  user/andre/mbuf_staging/cam/scsi/scsi_pt.c
  user/andre/mbuf_staging/cam/scsi/scsi_sa.c
  user/andre/mbuf_staging/cam/scsi/scsi_sg.c
  user/andre/mbuf_staging/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
  user/andre/mbuf_staging/cddl/contrib/opensolaris/uts/common/sys/dtrace.h
  user/andre/mbuf_staging/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c
  user/andre/mbuf_staging/cddl/contrib/opensolaris/uts/powerpc/sys/fasttrap_isa.h
  user/andre/mbuf_staging/cddl/dev/dtrace/dtrace_sysctl.c
  user/andre/mbuf_staging/conf/NOTES
  user/andre/mbuf_staging/conf/files
  user/andre/mbuf_staging/conf/files.amd64
  user/andre/mbuf_staging/conf/files.i386
  user/andre/mbuf_staging/conf/files.powerpc
  user/andre/mbuf_staging/conf/kmod.mk
  user/andre/mbuf_staging/conf/newvers.sh
  user/andre/mbuf_staging/conf/options
  user/andre/mbuf_staging/contrib/dev/run/rt2870.fw.uu
  user/andre/mbuf_staging/contrib/rdma/krping/getopt.c
  user/andre/mbuf_staging/contrib/rdma/krping/krping.c
  user/andre/mbuf_staging/contrib/rdma/krping/krping.h
  user/andre/mbuf_staging/contrib/rdma/krping/krping_dev.c
  user/andre/mbuf_staging/dev/altera/sdcard/altera_sdcard.c
  user/andre/mbuf_staging/dev/altera/sdcard/altera_sdcard_io.c
  user/andre/mbuf_staging/dev/ata/ata-all.c
  user/andre/mbuf_staging/dev/ata/ata-card.c
  user/andre/mbuf_staging/dev/ath/if_ath.c
  user/andre/mbuf_staging/dev/ath/if_ath_tx.c
  user/andre/mbuf_staging/dev/bxe/bxe.c
  user/andre/mbuf_staging/dev/bxe/bxe_stats.c
  user/andre/mbuf_staging/dev/bxe/ecore_sp.h
  user/andre/mbuf_staging/dev/cfi/cfi_core.c
  user/andre/mbuf_staging/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c
  user/andre/mbuf_staging/dev/cxgbe/adapter.h
  user/andre/mbuf_staging/dev/cxgbe/common/common.h
  user/andre/mbuf_staging/dev/cxgbe/firmware/t4fw_cfg.txt
  user/andre/mbuf_staging/dev/cxgbe/firmware/t4fw_cfg_uwire.txt
  user/andre/mbuf_staging/dev/cxgbe/firmware/t4fw_interface.h
  user/andre/mbuf_staging/dev/cxgbe/firmware/t5fw_cfg.txt
  user/andre/mbuf_staging/dev/cxgbe/firmware/t5fw_cfg_uwire.txt
  user/andre/mbuf_staging/dev/cxgbe/t4_main.c
  user/andre/mbuf_staging/dev/cxgbe/t4_sge.c
  user/andre/mbuf_staging/dev/cxgbe/tom/t4_cpl_io.c
  user/andre/mbuf_staging/dev/drm2/radeon/radeon_drv.c
  user/andre/mbuf_staging/dev/etherswitch/arswitch/arswitch.c
  user/andre/mbuf_staging/dev/etherswitch/arswitch/arswitch_vlans.c
  user/andre/mbuf_staging/dev/etherswitch/arswitch/arswitchreg.h
  user/andre/mbuf_staging/dev/etherswitch/arswitch/arswitchvar.h
  user/andre/mbuf_staging/dev/glxsb/glxsb.c
  user/andre/mbuf_staging/dev/hifn/hifn7751.c
  user/andre/mbuf_staging/dev/hyperv/include/hyperv.h
  user/andre/mbuf_staging/dev/hyperv/netvsc/hv_net_vsc.h
  user/andre/mbuf_staging/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  user/andre/mbuf_staging/dev/hyperv/stordisengage/hv_ata_pci_disengage.c
  user/andre/mbuf_staging/dev/hyperv/vmbus/hv_channel.c
  user/andre/mbuf_staging/dev/hyperv/vmbus/hv_hv.c
  user/andre/mbuf_staging/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c
  user/andre/mbuf_staging/dev/isp/isp.c
  user/andre/mbuf_staging/dev/isp/isp_freebsd.c
  user/andre/mbuf_staging/dev/isp/isp_freebsd.h
  user/andre/mbuf_staging/dev/isp/ispvar.h
  user/andre/mbuf_staging/dev/random/harvest.c
  user/andre/mbuf_staging/dev/random/hash.h
  user/andre/mbuf_staging/dev/random/ivy.c
  user/andre/mbuf_staging/dev/random/nehemiah.c
  user/andre/mbuf_staging/dev/random/random_adaptors.c
  user/andre/mbuf_staging/dev/random/random_adaptors.h
  user/andre/mbuf_staging/dev/random/random_harvestq.c
  user/andre/mbuf_staging/dev/random/random_harvestq.h
  user/andre/mbuf_staging/dev/random/randomdev.c
  user/andre/mbuf_staging/dev/random/randomdev.h
  user/andre/mbuf_staging/dev/random/randomdev_soft.c
  user/andre/mbuf_staging/dev/random/randomdev_soft.h
  user/andre/mbuf_staging/dev/random/yarrow.c
  user/andre/mbuf_staging/dev/random/yarrow.h
  user/andre/mbuf_staging/dev/rndtest/rndtest.c
  user/andre/mbuf_staging/dev/safe/safe.c
  user/andre/mbuf_staging/dev/syscons/scmouse.c
  user/andre/mbuf_staging/dev/syscons/syscons.c
  user/andre/mbuf_staging/dev/ubsec/ubsec.c
  user/andre/mbuf_staging/dev/usb/controller/musb_otg.c
  user/andre/mbuf_staging/dev/usb/controller/musb_otg.h
  user/andre/mbuf_staging/dev/usb/controller/xhci.c
  user/andre/mbuf_staging/dev/usb/usbdevs
  user/andre/mbuf_staging/dev/usb/wlan/if_run.c
  user/andre/mbuf_staging/dev/usb/wlan/if_runreg.h
  user/andre/mbuf_staging/dev/vmware/vmxnet3/if_vmx.c
  user/andre/mbuf_staging/dev/vmware/vmxnet3/if_vmxvar.h
  user/andre/mbuf_staging/dev/xen/blkfront/blkfront.c
  user/andre/mbuf_staging/fs/devfs/devfs_vnops.c
  user/andre/mbuf_staging/geom/geom_dev.c
  user/andre/mbuf_staging/geom/geom_disk.c
  user/andre/mbuf_staging/geom/geom_io.c
  user/andre/mbuf_staging/geom/geom_slice.c
  user/andre/mbuf_staging/geom/label/g_label.c
  user/andre/mbuf_staging/geom/part/g_part.c
  user/andre/mbuf_staging/geom/part/g_part_apm.c
  user/andre/mbuf_staging/geom/part/g_part_bsd.c
  user/andre/mbuf_staging/geom/part/g_part_ebr.c
  user/andre/mbuf_staging/geom/part/g_part_gpt.c
  user/andre/mbuf_staging/geom/part/g_part_mbr.c
  user/andre/mbuf_staging/geom/part/g_part_pc98.c
  user/andre/mbuf_staging/geom/part/g_part_vtoc8.c
  user/andre/mbuf_staging/geom/raid/g_raid.c
  user/andre/mbuf_staging/geom/raid/g_raid.h
  user/andre/mbuf_staging/geom/raid/tr_concat.c
  user/andre/mbuf_staging/geom/raid/tr_raid0.c
  user/andre/mbuf_staging/geom/raid/tr_raid1.c
  user/andre/mbuf_staging/geom/raid/tr_raid1e.c
  user/andre/mbuf_staging/geom/raid/tr_raid5.c
  user/andre/mbuf_staging/i386/conf/GENERIC
  user/andre/mbuf_staging/kern/kern_exec.c
  user/andre/mbuf_staging/kern/kern_intr.c
  user/andre/mbuf_staging/kern/makesyscalls.sh
  user/andre/mbuf_staging/kern/subr_bus.c
  user/andre/mbuf_staging/kern/subr_devstat.c
  user/andre/mbuf_staging/kern/subr_taskqueue.c
  user/andre/mbuf_staging/kern/sys_generic.c
  user/andre/mbuf_staging/kern/vfs_bio.c
  user/andre/mbuf_staging/mips/atheros/ar71xx_chip.c
  user/andre/mbuf_staging/mips/atheros/ar71xx_cpudef.h
  user/andre/mbuf_staging/mips/atheros/ar71xx_machdep.c
  user/andre/mbuf_staging/mips/atheros/ar71xx_spi.c
  user/andre/mbuf_staging/mips/atheros/ar724x_chip.c
  user/andre/mbuf_staging/mips/atheros/ar91xx_chip.c
  user/andre/mbuf_staging/mips/atheros/ar933x_chip.c
  user/andre/mbuf_staging/mips/atheros/ar933xreg.h
  user/andre/mbuf_staging/mips/atheros/ar934x_chip.c
  user/andre/mbuf_staging/mips/atheros/ar934xreg.h
  user/andre/mbuf_staging/mips/atheros/if_arge.c
  user/andre/mbuf_staging/mips/atheros/if_argevar.h
  user/andre/mbuf_staging/mips/beri/beri_machdep.c
  user/andre/mbuf_staging/mips/beri/files.beri
  user/andre/mbuf_staging/mips/cavium/octeon_rnd.c
  user/andre/mbuf_staging/mips/conf/DB120
  user/andre/mbuf_staging/mips/conf/DB120.hints
  user/andre/mbuf_staging/mips/include/asm.h
  user/andre/mbuf_staging/mips/include/pcb.h
  user/andre/mbuf_staging/mips/mips/bcopy.S
  user/andre/mbuf_staging/mips/mips/exception.S
  user/andre/mbuf_staging/mips/mips/fp.S
  user/andre/mbuf_staging/mips/mips/support.S
  user/andre/mbuf_staging/mips/mips/swtch.S
  user/andre/mbuf_staging/modules/Makefile
  user/andre/mbuf_staging/modules/cxgb/Makefile
  user/andre/mbuf_staging/modules/cxgbe/Makefile
  user/andre/mbuf_staging/modules/cxgbe/t4_firmware/Makefile
  user/andre/mbuf_staging/modules/cxgbe/t5_firmware/Makefile
  user/andre/mbuf_staging/modules/dtrace/Makefile
  user/andre/mbuf_staging/modules/dtrace/fasttrap/Makefile
  user/andre/mbuf_staging/modules/random/Makefile
  user/andre/mbuf_staging/modules/rdma/Makefile
  user/andre/mbuf_staging/net/flowtable.c
  user/andre/mbuf_staging/net/ieee8023ad_lacp.c
  user/andre/mbuf_staging/net/if.c
  user/andre/mbuf_staging/net/if_ethersubr.c
  user/andre/mbuf_staging/net/if_tun.c
  user/andre/mbuf_staging/net/if_var.h
  user/andre/mbuf_staging/net/radix.c
  user/andre/mbuf_staging/net/radix.h
  user/andre/mbuf_staging/net/route.c
  user/andre/mbuf_staging/net/rtsock.c
  user/andre/mbuf_staging/net80211/ieee80211_freebsd.c
  user/andre/mbuf_staging/netatalk/at_control.c
  user/andre/mbuf_staging/netgraph/ng_base.c
  user/andre/mbuf_staging/netgraph/ng_iface.c
  user/andre/mbuf_staging/netinet/in.c
  user/andre/mbuf_staging/netinet/in.h
  user/andre/mbuf_staging/netinet/in_var.h
  user/andre/mbuf_staging/netinet/ip_input.c
  user/andre/mbuf_staging/netinet/ip_output.c
  user/andre/mbuf_staging/netinet/sctp_constants.h
  user/andre/mbuf_staging/netinet/sctp_usrreq.c
  user/andre/mbuf_staging/netinet6/in6.c
  user/andre/mbuf_staging/netinet6/in6_var.h
  user/andre/mbuf_staging/netinet6/ip6_input.c
  user/andre/mbuf_staging/netinet6/ip6_output.c
  user/andre/mbuf_staging/netipx/ipx.c
  user/andre/mbuf_staging/netipx/ipx_if.h
  user/andre/mbuf_staging/ofed/drivers/net/mlx4/en_netdev.c
  user/andre/mbuf_staging/ofed/include/linux/gfp.h
  user/andre/mbuf_staging/powerpc/aim/interrupt.c
  user/andre/mbuf_staging/powerpc/aim/trap.c
  user/andre/mbuf_staging/powerpc/conf/GENERIC64
  user/andre/mbuf_staging/powerpc/powermac/ata_kauai.c
  user/andre/mbuf_staging/powerpc/powermac/ata_macio.c
  user/andre/mbuf_staging/powerpc/pseries/phyp-hvcall.S
  user/andre/mbuf_staging/sys/counter.h
  user/andre/mbuf_staging/sys/devicestat.h
  user/andre/mbuf_staging/sys/param.h
  user/andre/mbuf_staging/sys/random.h
  user/andre/mbuf_staging/sys/systm.h
  user/andre/mbuf_staging/ufs/ufs/dinode.h
  user/andre/mbuf_staging/xen/xen-os.h
Directory Properties:
  user/andre/mbuf_staging/   (props changed)
  user/andre/mbuf_staging/amd64/vmm/   (props changed)
  user/andre/mbuf_staging/boot/   (props changed)
  user/andre/mbuf_staging/cddl/contrib/opensolaris/   (props changed)
  user/andre/mbuf_staging/conf/   (props changed)
  user/andre/mbuf_staging/dev/hyperv/   (props changed)

Modified: user/andre/mbuf_staging/amd64/amd64/pmap.c
==============================================================================
--- user/andre/mbuf_staging/amd64/amd64/pmap.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/amd64/amd64/pmap.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -371,6 +371,8 @@ int pmap_pcid_enabled = 1;
 SYSCTL_INT(_vm_pmap, OID_AUTO, pcid_enabled, CTLFLAG_RDTUN, &pmap_pcid_enabled,
     0, "Is TLB Context ID enabled ?");
 int invpcid_works = 0;
+SYSCTL_INT(_vm_pmap, OID_AUTO, invpcid_works, CTLFLAG_RD, &invpcid_works, 0,
+    "Is the invpcid instruction available ?");
 
 static int
 pmap_pcid_save_cnt_proc(SYSCTL_HANDLER_ARGS)

Modified: user/andre/mbuf_staging/amd64/conf/GENERIC
==============================================================================
--- user/andre/mbuf_staging/amd64/conf/GENERIC	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/amd64/conf/GENERIC	Sun Oct 20 10:02:04 2013	(r256781)
@@ -72,7 +72,6 @@ options 	KDTRACE_FRAME		# Ensure frames 
 options 	KDTRACE_HOOKS		# Kernel DTrace hooks
 options 	DDB_CTF			# Kernel ELF linker loads CTF data
 options 	INCLUDE_CONFIG_FILE     # Include this file in kernel
-options 	XENHVM			# Include Xen support
 
 # Debugging support.  Always need this:
 options 	KDB			# Enable kernel debugger support.
@@ -345,8 +344,10 @@ device		virtio_balloon	# VirtIO Memory B
 # HyperV drivers
 device		hyperv		# HyperV drivers 
 
-# Xen support
-device		xenpci		# Generic Xen bus
+# Xen HVM Guest Optimizations
+# NOTE: XENHVM depends on xenpci.  They must be added or removed together.
+options 	XENHVM		# Xen HVM kernel infrastructure
+device		xenpci		# Xen HVM Hypervisor services driver
 
 # VMware support
 device		vmx		# VMware VMXNET3 Ethernet

Modified: user/andre/mbuf_staging/amd64/include/vmm.h
==============================================================================
--- user/andre/mbuf_staging/amd64/include/vmm.h	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/amd64/include/vmm.h	Sun Oct 20 10:02:04 2013	(r256781)
@@ -223,6 +223,7 @@ enum vm_cap_type {
 	VM_CAP_MTRAP_EXIT,
 	VM_CAP_PAUSE_EXIT,
 	VM_CAP_UNRESTRICTED_GUEST,
+	VM_CAP_ENABLE_INVPCID,
 	VM_CAP_MAX
 };
 

Modified: user/andre/mbuf_staging/amd64/vmm/intel/vmx.c
==============================================================================
--- user/andre/mbuf_staging/amd64/vmm/intel/vmx.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/amd64/vmm/intel/vmx.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -164,6 +164,7 @@ static int cap_halt_exit;
 static int cap_pause_exit;
 static int cap_unrestricted_guest;
 static int cap_monitor_trap;
+static int cap_invpcid;
  
 static struct unrhdr *vpid_unr;
 static u_int vpid_alloc_failed;
@@ -660,6 +661,11 @@ vmx_init(void)
 					PROCBASED2_UNRESTRICTED_GUEST, 0,
 				        &tmp) == 0);
 
+	cap_invpcid = (vmx_set_ctlreg(MSR_VMX_PROCBASED_CTLS2,
+	    MSR_VMX_PROCBASED_CTLS2, PROCBASED2_ENABLE_INVPCID, 0,
+	    &tmp) == 0);
+
+
 	/* Initialize EPT */
 	error = ept_init();
 	if (error) {
@@ -828,6 +834,7 @@ vmx_vminit(struct vm *vm, pmap_t pmap)
 
 		vmx->cap[i].set = 0;
 		vmx->cap[i].proc_ctls = procbased_ctls;
+		vmx->cap[i].proc_ctls2 = procbased_ctls2;
 
 		vmx->state[i].lastcpu = -1;
 		vmx->state[i].vpid = vpid[i];
@@ -1932,6 +1939,10 @@ vmx_getcap(void *arg, int vcpu, int type
 		if (cap_unrestricted_guest)
 			ret = 0;
 		break;
+	case VM_CAP_ENABLE_INVPCID:
+		if (cap_invpcid)
+			ret = 0;
+		break;
 	default:
 		break;
 	}
@@ -1988,11 +1999,21 @@ vmx_setcap(void *arg, int vcpu, int type
 	case VM_CAP_UNRESTRICTED_GUEST:
 		if (cap_unrestricted_guest) {
 			retval = 0;
-			baseval = procbased_ctls2;
+			pptr = &vmx->cap[vcpu].proc_ctls2;
+			baseval = *pptr;
 			flag = PROCBASED2_UNRESTRICTED_GUEST;
 			reg = VMCS_SEC_PROC_BASED_CTLS;
 		}
 		break;
+	case VM_CAP_ENABLE_INVPCID:
+		if (cap_invpcid) {
+			retval = 0;
+			pptr = &vmx->cap[vcpu].proc_ctls2;
+			baseval = *pptr;
+			flag = PROCBASED2_ENABLE_INVPCID;
+			reg = VMCS_SEC_PROC_BASED_CTLS;
+		}
+		break;
 	default:
 		break;
 	}

Modified: user/andre/mbuf_staging/amd64/vmm/intel/vmx.h
==============================================================================
--- user/andre/mbuf_staging/amd64/vmm/intel/vmx.h	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/amd64/vmm/intel/vmx.h	Sun Oct 20 10:02:04 2013	(r256781)
@@ -84,6 +84,7 @@ struct vmxctx {
 struct vmxcap {
 	int	set;
 	uint32_t proc_ctls;
+	uint32_t proc_ctls2;
 };
 
 struct vmxstate {

Modified: user/andre/mbuf_staging/amd64/vmm/intel/vmx_controls.h
==============================================================================
--- user/andre/mbuf_staging/amd64/vmm/intel/vmx_controls.h	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/amd64/vmm/intel/vmx_controls.h	Sun Oct 20 10:02:04 2013	(r256781)
@@ -68,6 +68,7 @@
 #define	PROCBASED2_WBINVD_EXITING	(1 << 6)
 #define	PROCBASED2_UNRESTRICTED_GUEST	(1 << 7)
 #define	PROCBASED2_PAUSE_LOOP_EXITING	(1 << 10)
+#define	PROCBASED2_ENABLE_INVPCID	(1 << 12)
 
 /* VM Exit Controls */
 #define	VM_EXIT_SAVE_DEBUG_CONTROLS	(1 << 2)

Modified: user/andre/mbuf_staging/amd64/vmm/vmm_dev.c
==============================================================================
--- user/andre/mbuf_staging/amd64/vmm/vmm_dev.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/amd64/vmm/vmm_dev.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -60,7 +60,10 @@ struct vmmdev_softc {
 	struct vm	*vm;		/* vm instance cookie */
 	struct cdev	*cdev;
 	SLIST_ENTRY(vmmdev_softc) link;
+	int		flags;
 };
+#define	VSC_LINKED		0x01
+
 static SLIST_HEAD(, vmmdev_softc) head;
 
 static struct mtx vmmdev_mtx;
@@ -104,7 +107,6 @@ vmmdev_rw(struct cdev *cdev, struct uio 
 	static char zerobuf[PAGE_SIZE];
 
 	error = 0;
-	mtx_lock(&vmmdev_mtx);
 	sc = vmmdev_lookup2(cdev);
 	if (sc == NULL)
 		error = ENXIO;
@@ -134,8 +136,6 @@ vmmdev_rw(struct cdev *cdev, struct uio 
 			vm_gpa_release(cookie);
 		}
 	}
-
-	mtx_unlock(&vmmdev_mtx);
 	return (error);
 }
 
@@ -379,34 +379,28 @@ vmmdev_mmap_single(struct cdev *cdev, vm
 	int error;
 	struct vmmdev_softc *sc;
 
-	mtx_lock(&vmmdev_mtx);
-
 	sc = vmmdev_lookup2(cdev);
 	if (sc != NULL && (nprot & PROT_EXEC) == 0)
 		error = vm_get_memobj(sc->vm, *offset, size, offset, object);
 	else
 		error = EINVAL;
 
-	mtx_unlock(&vmmdev_mtx);
-
 	return (error);
 }
 
 static void
-vmmdev_destroy(struct vmmdev_softc *sc, boolean_t unlink)
+vmmdev_destroy(void *arg)
 {
 
-	/*
-	 * XXX must stop virtual machine instances that may be still
-	 * running and cleanup their state.
-	 */
-	if (sc->cdev)
+	struct vmmdev_softc *sc = arg;
+
+	if (sc->cdev != NULL)
 		destroy_dev(sc->cdev);
 
-	if (sc->vm)
+	if (sc->vm != NULL)
 		vm_destroy(sc->vm);
 
-	if (unlink) {
+	if ((sc->flags & VSC_LINKED) != 0) {
 		mtx_lock(&vmmdev_mtx);
 		SLIST_REMOVE(&head, sc, vmmdev_softc, link);
 		mtx_unlock(&vmmdev_mtx);
@@ -421,27 +415,38 @@ sysctl_vmm_destroy(SYSCTL_HANDLER_ARGS)
 	int error;
 	char buf[VM_MAX_NAMELEN];
 	struct vmmdev_softc *sc;
+	struct cdev *cdev;
 
 	strlcpy(buf, "beavis", sizeof(buf));
 	error = sysctl_handle_string(oidp, buf, sizeof(buf), req);
 	if (error != 0 || req->newptr == NULL)
 		return (error);
 
-	/*
-	 * XXX TODO if any process has this device open then fail
-	 */
-
 	mtx_lock(&vmmdev_mtx);
 	sc = vmmdev_lookup(buf);
-	if (sc == NULL) {
+	if (sc == NULL || sc->cdev == NULL) {
 		mtx_unlock(&vmmdev_mtx);
 		return (EINVAL);
 	}
 
-	sc->cdev->si_drv1 = NULL;
+	/*
+	 * The 'cdev' will be destroyed asynchronously when 'si_threadcount'
+	 * goes down to 0 so we should not do it again in the callback.
+	 */
+	cdev = sc->cdev;
+	sc->cdev = NULL;		
 	mtx_unlock(&vmmdev_mtx);
 
-	vmmdev_destroy(sc, TRUE);
+	/*
+	 * Schedule the 'cdev' to be destroyed:
+	 *
+	 * - any new operations on this 'cdev' will return an error (ENXIO).
+	 *
+	 * - when the 'si_threadcount' dwindles down to zero the 'cdev' will
+	 *   be destroyed and the callback will be invoked in a taskqueue
+	 *   context.
+	 */
+	destroy_dev_sched_cb(cdev, vmmdev_destroy, sc);
 
 	return (0);
 }
@@ -462,6 +467,7 @@ sysctl_vmm_create(SYSCTL_HANDLER_ARGS)
 {
 	int error;
 	struct vm *vm;
+	struct cdev *cdev;
 	struct vmmdev_softc *sc, *sc2;
 	char buf[VM_MAX_NAMELEN];
 
@@ -489,22 +495,28 @@ sysctl_vmm_create(SYSCTL_HANDLER_ARGS)
 	 */
 	mtx_lock(&vmmdev_mtx);
 	sc2 = vmmdev_lookup(buf);
-	if (sc2 == NULL)
+	if (sc2 == NULL) {
 		SLIST_INSERT_HEAD(&head, sc, link);
+		sc->flags |= VSC_LINKED;
+	}
 	mtx_unlock(&vmmdev_mtx);
 
 	if (sc2 != NULL) {
-		vmmdev_destroy(sc, FALSE);
+		vmmdev_destroy(sc);
 		return (EEXIST);
 	}
 
-	error = make_dev_p(MAKEDEV_CHECKNAME, &sc->cdev, &vmmdevsw, NULL,
+	error = make_dev_p(MAKEDEV_CHECKNAME, &cdev, &vmmdevsw, NULL,
 			   UID_ROOT, GID_WHEEL, 0600, "vmm/%s", buf);
 	if (error != 0) {
-		vmmdev_destroy(sc, TRUE);
+		vmmdev_destroy(sc);
 		return (error);
 	}
+
+	mtx_lock(&vmmdev_mtx);
+	sc->cdev = cdev;
 	sc->cdev->si_drv1 = sc;
+	mtx_unlock(&vmmdev_mtx);
 
 	return (0);
 }

Modified: user/andre/mbuf_staging/amd64/vmm/x86.c
==============================================================================
--- user/andre/mbuf_staging/amd64/vmm/x86.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/amd64/vmm/x86.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -53,7 +53,7 @@ int
 x86_emulate_cpuid(struct vm *vm, int vcpu_id,
 		  uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx)
 {
-	int error;
+	int error, enable_invpcid;
 	unsigned int 	func, regs[4];
 	enum x2apic_state x2apic_state;
 
@@ -202,8 +202,22 @@ x86_emulate_cpuid(struct vm *vm, int vcp
 			regs[0] |= 0x04008000;
 			break;
 
-		case CPUID_0000_0006:
 		case CPUID_0000_0007:
+			regs[0] = 0;
+			regs[1] = 0;
+			regs[2] = 0;
+			regs[3] = 0;
+
+			/* leaf 0 */
+			if (*ecx == 0) {
+				error = vm_get_capability(vm, vcpu_id,
+				    VM_CAP_ENABLE_INVPCID, &enable_invpcid);
+				if (error == 0 && enable_invpcid)
+					regs[1] |= CPUID_STDEXT_INVPCID;
+			}
+			break;
+
+		case CPUID_0000_0006:
 		case CPUID_0000_000A:
 		case CPUID_0000_000D:
 			/*

Modified: user/andre/mbuf_staging/arm/arm/busdma_machdep-v6.c
==============================================================================
--- user/andre/mbuf_staging/arm/arm/busdma_machdep-v6.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/arm/busdma_machdep-v6.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -425,14 +425,21 @@ bus_dma_tag_create(bus_dma_tag_t parent,
 	if (_bus_dma_can_bounce(newtag->lowaddr, newtag->highaddr)
 	 || newtag->alignment > 1)
 		newtag->flags |= BUS_DMA_COULD_BOUNCE;
-	else
-		maxsize = 2; /* Need at most 2 bounce pages for unaligned access on cache line boundaries */
 
+	/*
+	 * Any request can auto-bounce due to cacheline alignment, in addition
+	 * to any alignment or boundary specifications in the tag, so if the
+	 * ALLOCNOW flag is set, there's always work to do.
+	 */
 	if ((flags & BUS_DMA_ALLOCNOW) != 0) {
 		struct bounce_zone *bz;
-
-		/* Must bounce */
-
+		/*
+		 * Round size up to a full page, and add one more page because
+		 * there can always be one more boundary crossing than the
+		 * number of pages in a transfer.
+		 */
+		maxsize = roundup2(maxsize, PAGE_SIZE) + PAGE_SIZE;
+		
 		if ((error = alloc_bounce_zone(newtag)) != 0) {
 			free(newtag, M_DEVBUF);
 			return (error);
@@ -518,20 +525,22 @@ static int allocate_bz_and_pages(bus_dma
 	STAILQ_INIT(&(mapp->bpages));
 
 	/*
-	 * Attempt to add pages to our pool on a per-instance
-	 * basis up to a sane limit.
+	 * Attempt to add pages to our pool on a per-instance basis up to a sane
+	 * limit.  Even if the tag isn't flagged as COULD_BOUNCE due to
+	 * alignment and boundary constraints, it could still auto-bounce due to
+	 * cacheline alignment, which requires at most two bounce pages.
 	 */
 	if (dmat->flags & BUS_DMA_COULD_BOUNCE)
 		maxpages = MAX_BPAGES;
 	else
-		maxpages = 2 * bz->map_count; /* Only need at most 2 pages for buffers unaligned on cache line boundaries */
+		maxpages = 2 * bz->map_count;
 	if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0
 	    || (bz->map_count > 0 && bz->total_bpages < maxpages)) {
 		int pages;
 		
-		pages = MAX(atop(dmat->maxsize), 1);
+		pages = atop(roundup2(dmat->maxsize, PAGE_SIZE)) + 1;
 		pages = MIN(maxpages - bz->total_bpages, pages);
-		pages = MAX(pages, 1);
+		pages = MAX(pages, 2);
 		if (alloc_bounce_pages(dmat, pages) < pages)
 			return (ENOMEM);
 		
@@ -1273,7 +1282,12 @@ _bus_dmamap_sync(bus_dma_tag_t dmat, bus
 			}
 			break;
 
+		case BUS_DMASYNC_POSTREAD:
+		case BUS_DMASYNC_POSTWRITE:
+		case BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE:
+			break;
 		default:
+			panic("unsupported combination of sync operations: 0x%08x\n", op);
 			break;
 		}
 	}

Modified: user/andre/mbuf_staging/arm/arm/cpufunc.c
==============================================================================
--- user/andre/mbuf_staging/arm/arm/cpufunc.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/arm/cpufunc.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -1476,7 +1476,8 @@ set_cpufuncs()
 	}
 #endif /* CPU_ARM1136 || CPU_ARM1176 */
 #ifdef CPU_CORTEXA
-	if (cputype == CPU_ID_CORTEXA7 ||
+	if (cputype == CPU_ID_CORTEXA5 ||
+	    cputype == CPU_ID_CORTEXA7 ||
 	    cputype == CPU_ID_CORTEXA8R1 ||
 	    cputype == CPU_ID_CORTEXA8R2 ||
 	    cputype == CPU_ID_CORTEXA8R3 ||

Modified: user/andre/mbuf_staging/arm/arm/cpufunc_asm_armv7.S
==============================================================================
--- user/andre/mbuf_staging/arm/arm/cpufunc_asm_armv7.S	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/arm/cpufunc_asm_armv7.S	Sun Oct 20 10:02:04 2013	(r256781)
@@ -57,9 +57,9 @@ __FBSDID("$FreeBSD$");
 #define PT_OUTER_WBWA	(1 << 3)
 	
 #ifdef SMP
-#define PT_ATTR	(PT_S|PT_INNER_WT|PT_OUTER_WT|PT_NOS)
+#define PT_ATTR	(PT_S|PT_INNER_WBWA|PT_OUTER_WBWA|PT_NOS)
 #else
-#define PT_ATTR	(PT_INNER_WT|PT_OUTER_WT)
+#define PT_ATTR	(PT_INNER_WBWA|PT_OUTER_WBWA)
 #endif
 
 ENTRY(armv7_setttb)
@@ -98,7 +98,7 @@ ENTRY(armv7_tlb_flushID_SE)
 	ldr	r1, .Lpage_mask
 	bic	r0, r0, r1
 #ifdef SMP
-	mcr	p15, 0, r0, c8, c3, 1	/* flush D tlb single entry Inner Shareable*/
+	mcr	p15, 0, r0, c8, c3, 3	/* flush D tlb single entry Inner Shareable*/
 	mcr	p15, 0, r0, c7, c1, 6	/* flush BTB Inner Shareable */
 #else
 	mcr	p15, 0, r0, c8, c7, 1	/* flush D tlb single entry */

Modified: user/andre/mbuf_staging/arm/arm/fusu.S
==============================================================================
--- user/andre/mbuf_staging/arm/arm/fusu.S	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/arm/fusu.S	Sun Oct 20 10:02:04 2013	(r256781)
@@ -67,11 +67,27 @@ ENTRY(casuword)
 	stmfd	sp!, {r4, r5}
 	adr	r4, .Lcasuwordfault
 	str	r4, [r3, #PCB_ONFAULT]
+#ifdef _ARM_ARCH_6
+1:    
+	cmp     r0, #KERNBASE
+	mvnhs   r0, #0
+	bhs     2f
+	
+	ldrex   r5, [r0]
+	cmp     r5, r1
+	movne   r0, r5
+	bne     2f
+	strex   r5, r2, [r0]
+	cmp     r5, #0
+	bne     1b
+#else
 	ldrt	r5, [r0]
 	cmp	r5, r1
 	movne	r0, r5
 	streqt	r2, [r0]
+#endif
 	moveq	r0, r1
+2:
 	ldmfd	sp!, {r4, r5}
 	mov	r1, #0x00000000
 	str	r1, [r3, #PCB_ONFAULT]

Modified: user/andre/mbuf_staging/arm/arm/identcpu.c
==============================================================================
--- user/andre/mbuf_staging/arm/arm/identcpu.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/arm/identcpu.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -236,6 +236,8 @@ const struct cpuidtab cpuids[] = {
 	{ CPU_ID_ARM1026EJS,	CPU_CLASS_ARM10EJ,	"ARM1026EJ-S",
 	  generic_steppings },
 
+	{ CPU_ID_CORTEXA5,	CPU_CLASS_CORTEXA,	"Cortex A5",
+	  generic_steppings },
 	{ CPU_ID_CORTEXA7,	CPU_CLASS_CORTEXA,	"Cortex A7",
 	  generic_steppings },
 	{ CPU_ID_CORTEXA8R1,	CPU_CLASS_CORTEXA,	"Cortex A8-r1",

Modified: user/andre/mbuf_staging/arm/arm/locore.S
==============================================================================
--- user/andre/mbuf_staging/arm/arm/locore.S	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/arm/locore.S	Sun Oct 20 10:02:04 2013	(r256781)
@@ -187,7 +187,7 @@ Lunmapped:
 	mrc	p15, 0, r0, c1, c0, 0
 #ifdef _ARM_ARCH_6
 	orr	r0, r0, #(CPU_CONTROL_V6_EXTPAGE | CPU_CONTROL_UNAL_ENABLE)
-	orr	r2, r2, #(CPU_CONTROL_AFLT_ENABLE)
+	orr	r0, r0, #(CPU_CONTROL_AFLT_ENABLE)
 	orr	r0, r0, #(CPU_CONTROL_AF_ENABLE)
 #endif
 	orr	r0, r0, #(CPU_CONTROL_MMU_ENABLE)

Modified: user/andre/mbuf_staging/arm/arm/machdep.c
==============================================================================
--- user/andre/mbuf_staging/arm/arm/machdep.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/arm/machdep.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -1169,11 +1169,15 @@ physmap_init(struct mem_region *availmem
 		 */
 		if (availmem_regions[i].mr_start > 0 ||
 		    availmem_regions[i].mr_size > PAGE_SIZE) {
+			vm_size_t size;
 			phys_avail[j] = availmem_regions[i].mr_start;
-			if (phys_avail[j] == 0)
+
+			size = availmem_regions[i].mr_size;
+			if (phys_avail[j] == 0) {
 				phys_avail[j] += PAGE_SIZE;
-			phys_avail[j + 1] = availmem_regions[i].mr_start +
-			    availmem_regions[i].mr_size;
+				size -= PAGE_SIZE;
+			}
+			phys_avail[j + 1] = availmem_regions[i].mr_start + size;
 		} else
 			j -= 2;
 	}

Modified: user/andre/mbuf_staging/arm/arm/pl310.c
==============================================================================
--- user/andre/mbuf_staging/arm/arm/pl310.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/arm/pl310.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -341,8 +341,13 @@ pl310_attach(device_t dev)
 	ctrl_value = pl310_read4(sc, PL310_CTRL);
 
 	if (sc->sc_enabled && !(ctrl_value & CTRL_ENABLED)) {
+		/* invalidate current content */
+		pl310_write4(pl310_softc, PL310_INV_WAY, 0xffff);
+		pl310_wait_background_op(PL310_INV_WAY, 0xffff);
+
 		/* Enable the L2 cache if disabled */
 		platform_pl310_write_ctrl(sc, CTRL_ENABLED);
+		device_printf(dev, "L2 Cache enabled\n");
 	} 
 
 	if (!sc->sc_enabled && (ctrl_value & CTRL_ENABLED)) {
@@ -375,6 +380,7 @@ pl310_attach(device_t dev)
 		    EVENT_COUNTER_CTRL_C0_RESET | 
 		    EVENT_COUNTER_CTRL_C1_RESET);
 
+		device_printf(dev, "L2 Cache disabled\n");
 	}
 
 	if (sc->sc_enabled)

Modified: user/andre/mbuf_staging/arm/arm/pmap-v6.c
==============================================================================
--- user/andre/mbuf_staging/arm/arm/pmap-v6.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/arm/pmap-v6.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -2441,6 +2441,8 @@ vm_paddr_t
 pmap_kextract(vm_offset_t va)
 {
 
+	if (kernel_vm_end == 0)
+		return (0);
 	return (pmap_extract_locked(kernel_pmap, va));
 }
 
@@ -3310,7 +3312,7 @@ pmap_extract_locked(pmap_t pmap, vm_offs
 	vm_paddr_t pa;
 	u_int l1idx;
 
-	if (pmap != kernel_pmap)
+	if (kernel_vm_end != 0 && pmap != kernel_pmap)
 		PMAP_ASSERT_LOCKED(pmap);
 	l1idx = L1_IDX(va);
 	l1pd = pmap->pm_l1->l1_kva[l1idx];

Modified: user/andre/mbuf_staging/arm/freescale/imx/imx51_ccm.c
==============================================================================
--- user/andre/mbuf_staging/arm/freescale/imx/imx51_ccm.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/freescale/imx/imx51_ccm.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -278,8 +278,8 @@ imx51_get_clock(enum imx51_clock clk)
 	case IMX51CLK_MAIN_BUS_CLK:
 		freq = imx51_get_clock(IMX51CLK_MAIN_BUS_CLK_SRC);
 		cdcr = bus_read_4(ccm_softc->res[0], CCMC_CDCR);
-		return freq / (cdcr & CDCR_PERIPH_CLK_DVFS_PODF_MASK) >>
-			CDCR_PERIPH_CLK_DVFS_PODF_SHIFT;
+		return freq / (1 + ((cdcr & CDCR_PERIPH_CLK_DVFS_PODF_MASK) >>
+			CDCR_PERIPH_CLK_DVFS_PODF_SHIFT));
 	case IMX51CLK_AHB_CLK_ROOT:
 		freq = imx51_get_clock(IMX51CLK_MAIN_BUS_CLK);
 		cbcdr = bus_read_4(ccm_softc->res[0], CCMC_CBCDR);

Modified: user/andre/mbuf_staging/arm/include/armreg.h
==============================================================================
--- user/andre/mbuf_staging/arm/include/armreg.h	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/include/armreg.h	Sun Oct 20 10:02:04 2013	(r256781)
@@ -147,6 +147,7 @@
 #define CPU_ID_ARM1136JS	0x4107b360
 #define CPU_ID_ARM1136JSR1	0x4117b360
 #define CPU_ID_ARM1176JZS	0x410fb760
+#define CPU_ID_CORTEXA5 	0x410fc050
 #define CPU_ID_CORTEXA7 	0x410fc070
 #define CPU_ID_CORTEXA8R1	0x411fc080
 #define CPU_ID_CORTEXA8R2	0x412fc080

Modified: user/andre/mbuf_staging/arm/include/pmap.h
==============================================================================
--- user/andre/mbuf_staging/arm/include/pmap.h	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/include/pmap.h	Sun Oct 20 10:02:04 2013	(r256781)
@@ -63,7 +63,7 @@
 #endif
 #define PTE_CACHE	6
 #define PTE_DEVICE	2
-#define PTE_PAGETABLE	4
+#define PTE_PAGETABLE	6
 #else
 #define PTE_NOCACHE	1
 #define PTE_CACHE	2
@@ -489,7 +489,7 @@ extern int pmap_needs_pte_sync;
 #if (ARM_MMU_SA1 == 1) && (ARM_NMMUS == 1)
 #define	PMAP_NEEDS_PTE_SYNC	1
 #define	PMAP_INCLUDE_PTE_SYNC
-#elif defined(CPU_XSCALE_81342)
+#elif defined(CPU_XSCALE_81342) || defined(ARM_ARCH_7) || defined(ARM_ARCH_7A)
 #define PMAP_NEEDS_PTE_SYNC	1
 #define PMAP_INCLUDE_PTE_SYNC
 #elif (ARM_MMU_SA1 == 0)
@@ -559,11 +559,18 @@ extern int pmap_needs_pte_sync;
 #define	PMAP_INCLUDE_PTE_SYNC
 #endif
 
+#ifdef ARM_L2_PIPT
+#define _sync_l2(pte, size) 	cpu_l2cache_wb_range(vtophys(pte), size)
+#else
+#define _sync_l2(pte, size) 	cpu_l2cache_wb_range(pte, size)
+#endif
+
 #define	PTE_SYNC(pte)							\
 do {									\
 	if (PMAP_NEEDS_PTE_SYNC) {					\
 		cpu_dcache_wb_range((vm_offset_t)(pte), sizeof(pt_entry_t));\
-		cpu_l2cache_wb_range((vm_offset_t)(pte), sizeof(pt_entry_t));\
+		cpu_drain_writebuf();					\
+		_sync_l2((vm_offset_t)(pte), sizeof(pt_entry_t));\
 	} else								\
 		cpu_drain_writebuf();					\
 } while (/*CONSTCOND*/0)
@@ -573,7 +580,8 @@ do {									\
 	if (PMAP_NEEDS_PTE_SYNC) {					\
 		cpu_dcache_wb_range((vm_offset_t)(pte),			\
 		    (cnt) << 2); /* * sizeof(pt_entry_t) */		\
-		cpu_l2cache_wb_range((vm_offset_t)(pte), 		\
+		cpu_drain_writebuf();					\
+		_sync_l2((vm_offset_t)(pte),		 		\
 		    (cnt) << 2); /* * sizeof(pt_entry_t) */		\
 	} else								\
 		cpu_drain_writebuf();					\

Modified: user/andre/mbuf_staging/arm/mv/common.c
==============================================================================
--- user/andre/mbuf_staging/arm/mv/common.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/mv/common.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -153,8 +153,11 @@ struct fdt_pm_mask_entry fdt_pm_mask_tab
 static __inline int
 pm_is_disabled(uint32_t mask)
 {
-
+#if defined(SOC_MV_KIRKWOOD)
+	return (soc_power_ctrl_get(mask) == mask);
+#else
 	return (soc_power_ctrl_get(mask) == mask ? 0 : 1);
+#endif
 }
 
 /*
@@ -221,7 +224,16 @@ fdt_pm(phandle_t node)
 			continue;
 
 		compat = fdt_is_compatible(node, fdt_pm_mask_table[i].compat);
-
+#if defined(SOC_MV_KIRKWOOD)
+		if (compat && (cpu_pm_ctrl & fdt_pm_mask_table[i].mask)) {
+			dev_mask |= (1 << i);
+			ena = 0;
+			break;
+		} else if (compat) {
+			dev_mask |= (1 << i);
+			break;
+		}
+#else
 		if (compat && (~cpu_pm_ctrl & fdt_pm_mask_table[i].mask)) {
 			dev_mask |= (1 << i);
 			ena = 0;
@@ -230,6 +242,7 @@ fdt_pm(phandle_t node)
 			dev_mask |= (1 << i);
 			break;
 		}
+#endif
 	}
 
 	return (ena);

Modified: user/andre/mbuf_staging/arm/mv/mv_localbus.c
==============================================================================
--- user/andre/mbuf_staging/arm/mv/mv_localbus.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/mv/mv_localbus.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -431,7 +431,7 @@ fdt_localbus_devmap(phandle_t dt_node, s
 		bank = fdt_data_get((void *)rangesptr, 1);
 		rangesptr += 1;
 
-		if (bank < 0 || bank > MV_LOCALBUS_MAX_BANKS) {
+		if (bank > MV_LOCALBUS_MAX_BANKS) {
 			/* Bank out of range */
 			rangesptr += ((addr_cells - 1) + par_addr_cells +
 			    size_cells);

Modified: user/andre/mbuf_staging/arm/mv/mvreg.h
==============================================================================
--- user/andre/mbuf_staging/arm/mv/mvreg.h	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/mv/mvreg.h	Sun Oct 20 10:02:04 2013	(r256781)
@@ -142,7 +142,11 @@
 /*
  * Power Control
  */
+#if defined(SOC_MV_KIRKWOOD)
+#define CPU_PM_CTRL		0x18
+#else
 #define CPU_PM_CTRL		0x1C
+#endif
 #define CPU_PM_CTRL_NONE	0
 #define CPU_PM_CTRL_ALL		~0x0
 

Modified: user/andre/mbuf_staging/arm/versatile/versatile_pci.c
==============================================================================
--- user/andre/mbuf_staging/arm/versatile/versatile_pci.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/versatile/versatile_pci.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -360,6 +360,9 @@ versatile_pci_activate_resource(device_t
 		res = (BUS_ACTIVATE_RESOURCE(device_get_parent(bus),
 		    child, type, rid, r));
 		break;
+	default:
+		res = ENXIO;
+		break;
 	}
 
 	return (res);

Modified: user/andre/mbuf_staging/arm/xscale/i80321/ep80219_machdep.c
==============================================================================
--- user/andre/mbuf_staging/arm/xscale/i80321/ep80219_machdep.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/xscale/i80321/ep80219_machdep.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -365,7 +365,7 @@ initarm(struct arm_boot_params *abp)
 	dump_avail[2] = 0;
 	dump_avail[3] = 0;
 					
-	vm_max_kernel_address = 0xd0000000;
+	vm_max_kernel_address = 0xe0000000;
 	pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt);
 	msgbufp = (void*)msgbufpv.pv_va;
 	msgbufinit(msgbufp, msgbufsize);

Modified: user/andre/mbuf_staging/arm/xscale/i80321/iq31244_machdep.c
==============================================================================
--- user/andre/mbuf_staging/arm/xscale/i80321/iq31244_machdep.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/xscale/i80321/iq31244_machdep.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -366,7 +366,7 @@ initarm(struct arm_boot_params *abp)
 	dump_avail[2] = 0;
 	dump_avail[3] = 0;
 					
-	vm_max_kernel_address = 0xd0000000;
+	vm_max_kernel_address = 0xe0000000;
 	pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt);
 	msgbufp = (void*)msgbufpv.pv_va;
 	msgbufinit(msgbufp, msgbufsize);

Modified: user/andre/mbuf_staging/arm/xscale/i8134x/crb_machdep.c
==============================================================================
--- user/andre/mbuf_staging/arm/xscale/i8134x/crb_machdep.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/xscale/i8134x/crb_machdep.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -344,7 +344,7 @@ initarm(struct arm_boot_params *abp)
 	dump_avail[2] = 0;
 	dump_avail[3] = 0;
 					
-	vm_max_kernel_address = 0xd0000000;
+	vm_max_kernel_address = 0xe0000000;
 	pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt);
 	msgbufp = (void*)msgbufpv.pv_va;
 	msgbufinit(msgbufp, msgbufsize);

Modified: user/andre/mbuf_staging/arm/xscale/ixp425/avila_machdep.c
==============================================================================
--- user/andre/mbuf_staging/arm/xscale/ixp425/avila_machdep.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/xscale/ixp425/avila_machdep.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -429,7 +429,7 @@ initarm(struct arm_boot_params *abp)
 
 	pmap_curmaxkvaddr = afterkern + PAGE_SIZE;
 	arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0]));
-	vm_max_kernel_address = 0xd0000000;
+	vm_max_kernel_address = 0xe0000000;
 	pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt);
 	msgbufp = (void*)msgbufpv.pv_va;
 	msgbufinit(msgbufp, msgbufsize);

Modified: user/andre/mbuf_staging/arm/xscale/pxa/pxa_machdep.c
==============================================================================
--- user/andre/mbuf_staging/arm/xscale/pxa/pxa_machdep.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/arm/xscale/pxa/pxa_machdep.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -362,7 +362,7 @@ initarm(struct arm_boot_params *abp)
 	}
 	dump_avail[i] = 0;
 	dump_avail[i] = 0;
-	vm_max_kernel_address = 0xd0000000;
+	vm_max_kernel_address = 0xe0000000;
 	pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt);
 	msgbufp = (void*)msgbufpv.pv_va;
 	msgbufinit(msgbufp, msgbufsize);

Modified: user/andre/mbuf_staging/boot/forth/loader.conf
==============================================================================
--- user/andre/mbuf_staging/boot/forth/loader.conf	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/boot/forth/loader.conf	Sun Oct 20 10:02:04 2013	(r256781)
@@ -39,6 +39,17 @@ bitmap_type="splash_image_data" # and pl
 
 
 ##############################################################
+###  Random number generator configuration ###################
+##############################################################
+
+entropy_cache_load="NO"			# Set this to YES to load entropy at boot time
+entropy_cache_name="/boot/entropy"	# Set this to the name of the file
+entropy_cache_type="/boot/entropy"	
+#kern.random.sys.seeded="0"		# Set this to 1 to start /dev/random
+					# without waiting for a (re)seed.
+
+
+##############################################################
 ###  Loader settings  ########################################
 ##############################################################
 

Modified: user/andre/mbuf_staging/boot/i386/btx/btx/btx.S
==============================================================================
--- user/andre/mbuf_staging/boot/i386/btx/btx/btx.S	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/boot/i386/btx/btx/btx.S	Sun Oct 20 10:02:04 2013	(r256781)
@@ -41,6 +41,8 @@
 		.set PSL_RESERVED_DEFAULT,0x00000002
 		.set PSL_T,0x00000100		# Trap flag
 		.set PSL_I,0x00000200		# Interrupt enable flag
+		.set PSL_D,0x00000400		# String instruction direction
+		.set PSL_NT,0x00004000		# Nested task flag
 		.set PSL_VM,0x00020000		# Virtual 8086 mode flag
 		.set PSL_AC,0x00040000		# Alignment check flag
 /*
@@ -611,8 +613,8 @@ rret_tramp:	movw $MEM_ESPR-0x08,%sp		# R
 		pushl %ds			#  regs
 		pushl %es
 		pushfl				# Save %eflags
-		cli				# Disable interrupts
-		std				# String ops dec
+		pushl $PSL_RESERVED_DEFAULT|PSL_D # Use clean %eflags with
+		popfl				#  string ops dec
 		xorw %ax,%ax			# Reset seg 
 		movw %ax,%ds			#  regs
 		movw %ax,%es			#  (%ss is already 0)
@@ -675,6 +677,7 @@ rret_tramp.1:	xorl %ecx,%ecx			# Zero
 		testl $V86F_FLAGS,%edx		# User wants flags?
 		jz rret_tramp.3			# No
 		movl MEM_ESPR-0x3c,%eax		# Read real mode flags
+		andl $~(PSL_T|PSL_NT),%eax	# Clear unsafe flags
 		movw %ax,-0x08(%esi)		# Update user flags (low 16)
 /*
  * Return to the user task

Modified: user/andre/mbuf_staging/cam/ata/ata_all.c
==============================================================================
--- user/andre/mbuf_staging/cam/ata/ata_all.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/cam/ata/ata_all.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -297,6 +297,18 @@ ata_print_ident(struct ata_params *ident
 }
 
 void
+ata_print_ident_short(struct ata_params *ident_data)
+{
+	char product[48], revision[16];
+
+	cam_strvis(product, ident_data->model, sizeof(ident_data->model),
+		   sizeof(product));
+	cam_strvis(revision, ident_data->revision, sizeof(ident_data->revision),
+		   sizeof(revision));
+	printf("<%s %s>", product, revision);
+}
+
+void
 semb_print_ident(struct sep_identify_data *ident_data)
 {
 	char vendor[9], product[17], revision[5], fw[5], in[7], ins[5];
@@ -311,6 +323,18 @@ semb_print_ident(struct sep_identify_dat
 	    vendor, product, revision, fw, in, ins);
 }
 
+void
+semb_print_ident_short(struct sep_identify_data *ident_data)
+{
+	char vendor[9], product[17], revision[5], fw[5];
+
+	cam_strvis(vendor, ident_data->vendor_id, 8, sizeof(vendor));
+	cam_strvis(product, ident_data->product_id, 16, sizeof(product));
+	cam_strvis(revision, ident_data->product_rev, 4, sizeof(revision));
+	cam_strvis(fw, ident_data->firmware_rev, 4, sizeof(fw));
+	printf("<%s %s %s %s>", vendor, product, revision, fw);
+}
+
 uint32_t
 ata_logical_sector_size(struct ata_params *ident_data)
 {

Modified: user/andre/mbuf_staging/cam/ata/ata_all.h
==============================================================================
--- user/andre/mbuf_staging/cam/ata/ata_all.h	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/cam/ata/ata_all.h	Sun Oct 20 10:02:04 2013	(r256781)
@@ -109,6 +109,7 @@ int	ata_status_sbuf(struct ccb_ataio *at
 int	ata_res_sbuf(struct ccb_ataio *ataio, struct sbuf *sb);
 
 void	ata_print_ident(struct ata_params *ident_data);
+void	ata_print_ident_short(struct ata_params *ident_data);
 
 uint32_t	ata_logical_sector_size(struct ata_params *ident_data);
 uint64_t	ata_physical_sector_size(struct ata_params *ident_data);
@@ -143,6 +144,7 @@ int	ata_identify_match(caddr_t identbuff
 int	ata_static_identify_match(caddr_t identbuffer, caddr_t table_entry);
 
 void	semb_print_ident(struct sep_identify_data *ident_data);
+void	semb_print_ident_short(struct sep_identify_data *ident_data);
 
 void semb_receive_diagnostic_results(struct ccb_ataio *ataio,
 	u_int32_t retries, void (*cbfcnp)(struct cam_periph *, union ccb*),

Modified: user/andre/mbuf_staging/cam/ata/ata_da.c
==============================================================================
--- user/andre/mbuf_staging/cam/ata/ata_da.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/cam/ata/ata_da.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -293,6 +293,14 @@ static struct ada_quirk_entry ada_quirk_
 	},
 	{
 		/*
+		 * Corsair Neutron GTX SSDs
+		 * 4k optimised & trim only works in 4k requests + 4k aligned
+		 */
+		{ T_DIRECT, SIP_MEDIA_FIXED, "*", "Corsair Neutron GTX*", "*" },
+		/*quirks*/ADA_Q_4K
+	},
+	{
+		/*
 		 * Corsair Force GT SSDs
 		 * 4k optimised & trim only works in 4k requests + 4k aligned
 		 */
@@ -907,7 +915,6 @@ adaoninvalidate(struct cam_periph *perip
 	bioq_flush(&softc->trim_queue, NULL, ENXIO);
 
 	disk_gone(softc->disk);
-	xpt_print(periph->path, "lost device\n");
 }
 
 static void
@@ -917,7 +924,6 @@ adacleanup(struct cam_periph *periph)
 
 	softc = (struct ada_softc *)periph->softc;
 
-	xpt_print(periph->path, "removing device entry\n");
 	cam_periph_unlock(periph);
 
 	/*

Modified: user/andre/mbuf_staging/cam/ata/ata_pmp.c
==============================================================================
--- user/andre/mbuf_staging/cam/ata/ata_pmp.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/cam/ata/ata_pmp.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -241,7 +241,6 @@ pmponinvalidate(struct cam_periph *perip
 		}
 	}
 	pmprelease(periph, -1);
-	xpt_print(periph->path, "lost device\n");
 }
 
 static void
@@ -251,7 +250,6 @@ pmpcleanup(struct cam_periph *periph)
 
 	softc = (struct pmp_softc *)periph->softc;
 
-	xpt_print(periph->path, "removing device entry\n");
 	cam_periph_unlock(periph);
 
 	/*

Modified: user/andre/mbuf_staging/cam/cam_periph.c
==============================================================================
--- user/andre/mbuf_staging/cam/cam_periph.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/cam/cam_periph.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -586,6 +586,8 @@ cam_periph_invalidate(struct cam_periph 
 		return;
 
 	CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph invalidated\n"));
+	if (periph->flags & CAM_PERIPH_ANNOUNCED)
+		xpt_denounce_periph(periph);
 	periph->flags |= CAM_PERIPH_INVALID;
 	periph->flags &= ~CAM_PERIPH_NEW_DEV_FOUND;
 	if (periph->periph_oninval != NULL)
@@ -648,7 +650,10 @@ camperiphfree(struct cam_periph *periph)
 	xpt_remove_periph(periph);
 
 	xpt_unlock_buses();
-	CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph destroyed\n"));
+	if (periph->flags & CAM_PERIPH_ANNOUNCED) {
+		xpt_print(periph->path, "Periph destroyed\n");
+	} else
+		CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph destroyed\n"));
 
 	if (periph->flags & CAM_PERIPH_NEW_DEV_FOUND) {
 		union ccb ccb;

Modified: user/andre/mbuf_staging/cam/cam_periph.h
==============================================================================
--- user/andre/mbuf_staging/cam/cam_periph.h	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/cam/cam_periph.h	Sun Oct 20 10:02:04 2013	(r256781)
@@ -121,6 +121,7 @@ struct cam_periph {
 #define CAM_PERIPH_NEW_DEV_FOUND	0x10
 #define CAM_PERIPH_RECOVERY_INPROG	0x20
 #define CAM_PERIPH_FREE			0x80
+#define CAM_PERIPH_ANNOUNCED		0x100
 	u_int32_t		 immediate_priority;
 	u_int32_t		 refcount;
 	SLIST_HEAD(, ccb_hdr)	 ccb_list;	/* For "immediate" requests */

Modified: user/andre/mbuf_staging/cam/cam_xpt.c
==============================================================================
--- user/andre/mbuf_staging/cam/cam_xpt.c	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/cam/cam_xpt.c	Sun Oct 20 10:02:04 2013	(r256781)
@@ -1023,6 +1023,7 @@ xpt_announce_periph(struct cam_periph *p
 	struct	cam_path *path = periph->path;
 
 	mtx_assert(periph->sim->mtx, MA_OWNED);
+	periph->flags |= CAM_PERIPH_ANNOUNCED;
 
 	printf("%s%d at %s%d bus %d scbus%d target %d lun %d\n",
 	       periph->periph_name, periph->unit_number,
@@ -1043,7 +1044,7 @@ xpt_announce_periph(struct cam_periph *p
 		    (struct sep_identify_data *)&path->device->ident_data);
 	else
 		printf("Unknown protocol device\n");
-	if (bootverbose && path->device->serial_num_len > 0) {
+	if (path->device->serial_num_len > 0) {
 		/* Don't wrap the screen  - print only the first 60 chars */
 		printf("%s%d: Serial Number %.60s\n", periph->periph_name,
 		       periph->unit_number, path->device->serial_num);
@@ -1071,6 +1072,37 @@ xpt_announce_quirks(struct cam_periph *p
 	}
 }
 
+void
+xpt_denounce_periph(struct cam_periph *periph)
+{
+	struct	cam_path *path = periph->path;
+
+	mtx_assert(periph->sim->mtx, MA_OWNED);
+	printf("%s%d at %s%d bus %d scbus%d target %d lun %d\n",
+	       periph->periph_name, periph->unit_number,
+	       path->bus->sim->sim_name,
+	       path->bus->sim->unit_number,
+	       path->bus->sim->bus_id,
+	       path->bus->path_id,
+	       path->target->target_id,
+	       path->device->lun_id);
+	printf("%s%d: ", periph->periph_name, periph->unit_number);
+	if (path->device->protocol == PROTO_SCSI)
+		scsi_print_inquiry_short(&path->device->inq_data);
+	else if (path->device->protocol == PROTO_ATA ||
+	    path->device->protocol == PROTO_SATAPM)
+		ata_print_ident_short(&path->device->ident_data);
+	else if (path->device->protocol == PROTO_SEMB)
+		semb_print_ident_short(
+		    (struct sep_identify_data *)&path->device->ident_data);
+	else
+		printf("Unknown protocol device");
+	if (path->device->serial_num_len > 0)
+		printf(" s/n %.60s", path->device->serial_num);
+	printf(" detached\n");
+}
+
+
 int
 xpt_getattr(char *buf, size_t len, const char *attr, struct cam_path *path)
 {

Modified: user/andre/mbuf_staging/cam/cam_xpt_periph.h
==============================================================================
--- user/andre/mbuf_staging/cam/cam_xpt_periph.h	Sun Oct 20 09:51:36 2013	(r256780)
+++ user/andre/mbuf_staging/cam/cam_xpt_periph.h	Sun Oct 20 10:02:04 2013	(r256781)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



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