Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Mar 2015 22:35:57 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r280717 - in projects/lld-import: . contrib/gcc/config/aarch64 include lib/libc/gen lib/libfetch lib/libgeom release/arm sbin/geom/class/part share/man/man4 share/misc sys/arm/arm sys/a...
Message-ID:  <201503262235.t2QMZvYi033311@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Thu Mar 26 22:35:56 2015
New Revision: 280717
URL: https://svnweb.freebsd.org/changeset/base/280717

Log:
  Merge ^/head r280459 through r280715.

Added:
  projects/lld-import/sys/arm/arm/pmap-v6-new.c
     - copied unchanged from r280715, head/sys/arm/arm/pmap-v6-new.c
  projects/lld-import/sys/arm/broadcom/bcm2835/bcm2836.c
     - copied unchanged from r280715, head/sys/arm/broadcom/bcm2835/bcm2836.c
  projects/lld-import/sys/arm/broadcom/bcm2835/bcm2836.h
     - copied unchanged from r280715, head/sys/arm/broadcom/bcm2835/bcm2836.h
  projects/lld-import/sys/arm/broadcom/bcm2835/files.bcm2836
     - copied unchanged from r280715, head/sys/arm/broadcom/bcm2835/files.bcm2836
  projects/lld-import/sys/arm/broadcom/bcm2835/std.bcm2836
     - copied unchanged from r280715, head/sys/arm/broadcom/bcm2835/std.bcm2836
  projects/lld-import/sys/arm/conf/RPI2
     - copied unchanged from r280715, head/sys/arm/conf/RPI2
  projects/lld-import/sys/arm/include/pmap-v6.h
     - copied unchanged from r280715, head/sys/arm/include/pmap-v6.h
  projects/lld-import/sys/arm/include/pmap_var.h
     - copied unchanged from r280715, head/sys/arm/include/pmap_var.h
  projects/lld-import/sys/arm/include/pte-v6.h
     - copied unchanged from r280715, head/sys/arm/include/pte-v6.h
  projects/lld-import/sys/arm64/include/frame.h
     - copied unchanged from r280715, head/sys/arm64/include/frame.h
  projects/lld-import/sys/arm64/include/ptrace.h
     - copied unchanged from r280715, head/sys/arm64/include/ptrace.h
  projects/lld-import/sys/arm64/include/reg.h
     - copied unchanged from r280715, head/sys/arm64/include/reg.h
  projects/lld-import/sys/arm64/include/sysarch.h
     - copied unchanged from r280715, head/sys/arm64/include/sysarch.h
  projects/lld-import/sys/boot/fdt/dts/arm/bcm2836.dtsi
     - copied unchanged from r280715, head/sys/boot/fdt/dts/arm/bcm2836.dtsi
  projects/lld-import/sys/boot/fdt/dts/arm/rpi2.dts
     - copied unchanged from r280715, head/sys/boot/fdt/dts/arm/rpi2.dts
  projects/lld-import/usr.sbin/pmcstudy/pmcstudy.8
     - copied unchanged from r280715, head/usr.sbin/pmcstudy/pmcstudy.8
Deleted:
  projects/lld-import/usr.sbin/pmcstudy/pmcstudy.1
Modified:
  projects/lld-import/Makefile.inc1
  projects/lld-import/ObsoleteFiles.inc
  projects/lld-import/contrib/gcc/config/aarch64/aarch64.h
  projects/lld-import/include/pthread.h
  projects/lld-import/include/signal.h
  projects/lld-import/include/stdlib.h
  projects/lld-import/lib/libc/gen/setmode.c
  projects/lld-import/lib/libfetch/common.c
  projects/lld-import/lib/libfetch/fetch.3
  projects/lld-import/lib/libgeom/geom_xml2tree.c
  projects/lld-import/release/arm/BEAGLEBONE.conf
  projects/lld-import/release/arm/PANDABOARD.conf
  projects/lld-import/release/arm/RPI-B.conf
  projects/lld-import/release/arm/WANDBOARD-QUAD.conf
  projects/lld-import/release/arm/ZEDBOARD.conf
  projects/lld-import/sbin/geom/class/part/geom_part.c
  projects/lld-import/share/man/man4/icmp.4
  projects/lld-import/share/man/man4/ixl.4
  projects/lld-import/share/man/man4/ixlv.4
  projects/lld-import/share/man/man4/witness.4
  projects/lld-import/share/misc/committers-src.dot
  projects/lld-import/share/misc/organization.dot
  projects/lld-import/sys/arm/arm/genassym.c
  projects/lld-import/sys/arm/arm/machdep.c
  projects/lld-import/sys/arm/arm/mem.c
  projects/lld-import/sys/arm/arm/minidump_machdep.c
  projects/lld-import/sys/arm/arm/mp_machdep.c
  projects/lld-import/sys/arm/arm/swtch.S
  projects/lld-import/sys/arm/broadcom/bcm2835/bcm2835_intr.c
  projects/lld-import/sys/arm/broadcom/bcm2835/bcm2835_machdep.c
  projects/lld-import/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
  projects/lld-import/sys/arm/include/machdep.h
  projects/lld-import/sys/arm/include/pcb.h
  projects/lld-import/sys/arm/include/pmap.h
  projects/lld-import/sys/arm/include/pte.h
  projects/lld-import/sys/arm/include/sf_buf.h
  projects/lld-import/sys/arm/include/smp.h
  projects/lld-import/sys/arm/include/vm.h
  projects/lld-import/sys/arm/include/vmparam.h
  projects/lld-import/sys/arm/mv/armadaxp/armadaxp_mp.c
  projects/lld-import/sys/cam/ctl/ctl.c
  projects/lld-import/sys/cam/scsi/scsi_da.c
  projects/lld-import/sys/conf/files.arm
  projects/lld-import/sys/conf/options.arm
  projects/lld-import/sys/dev/cxgbe/t4_sge.c
  projects/lld-import/sys/dev/usb/usb.h
  projects/lld-import/sys/geom/geom_dump.c
  projects/lld-import/sys/geom/geom_subr.c
  projects/lld-import/sys/geom/part/g_part.c
  projects/lld-import/sys/i386/conf/NOTES
  projects/lld-import/sys/kern/kern_sysctl.c
  projects/lld-import/sys/mips/conf/AR91XX_BASE
  projects/lld-import/sys/mips/include/cache_mipsNN.h
  projects/lld-import/sys/mips/include/cache_r4k.h
  projects/lld-import/sys/mips/mips/cache.c
  projects/lld-import/sys/mips/mips/cache_mipsNN.c
  projects/lld-import/sys/modules/Makefile
  projects/lld-import/sys/modules/dtb/rpi/Makefile
  projects/lld-import/sys/net/if_vlan.c
  projects/lld-import/sys/netinet/sctp_auth.c
  projects/lld-import/sys/netinet/sctp_output.c
  projects/lld-import/sys/netinet/sctp_pcb.c
  projects/lld-import/sys/netinet/sctp_structs.h
  projects/lld-import/sys/netinet/sctp_usrreq.c
  projects/lld-import/sys/netpfil/pf/pf_norm.c
  projects/lld-import/sys/sparc64/conf/NOTES
  projects/lld-import/sys/sys/cdefs.h
  projects/lld-import/sys/sys/param.h
  projects/lld-import/sys/vm/memguard.c
  projects/lld-import/sys/vm/swap_pager.c
  projects/lld-import/sys/vm/vm_page.c
  projects/lld-import/usr.bin/fetch/fetch.1
  projects/lld-import/usr.bin/fetch/fetch.c
  projects/lld-import/usr.bin/ministat/ministat.1
  projects/lld-import/usr.bin/top/machine.c
  projects/lld-import/usr.sbin/pmcstudy/Makefile
  projects/lld-import/usr.sbin/pmcstudy/pmcstudy.c
Directory Properties:
  projects/lld-import/   (props changed)
  projects/lld-import/contrib/gcc/   (props changed)
  projects/lld-import/include/   (props changed)
  projects/lld-import/lib/libc/   (props changed)
  projects/lld-import/sbin/   (props changed)
  projects/lld-import/share/   (props changed)
  projects/lld-import/share/man/man4/   (props changed)
  projects/lld-import/sys/   (props changed)
  projects/lld-import/sys/boot/   (props changed)
  projects/lld-import/sys/conf/   (props changed)

Modified: projects/lld-import/Makefile.inc1
==============================================================================
--- projects/lld-import/Makefile.inc1	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/Makefile.inc1	Thu Mar 26 22:35:56 2015	(r280717)
@@ -209,7 +209,9 @@ INSTALLTMP!=	/usr/bin/mktemp -d -u -t in
 # 1. legacy stage [BMAKE]
 #	This stage is responsible for creating compatibility
 #	shims that are needed by the bootstrap-tools,
-#	build-tools and cross-tools stages.
+#	build-tools and cross-tools stages. These are generally
+#	APIs that tools from one of those three stages need to
+#	build that aren't present on the host.
 # 1. bootstrap-tools stage [BMAKE]
 #	This stage is responsible for creating programs that
 #	are needed for backward compatibility reasons. They
@@ -220,7 +222,7 @@ INSTALLTMP!=	/usr/bin/mktemp -d -u -t in
 #	the build process.
 # 3. cross-tools stage [XMAKE]
 #	This stage is responsible for creating any tools that
-#	are needed for cross-builds. A cross-compiler is one
+#	are needed for building the system. A cross-compiler is one
 #	of them.
 # 4. world stage [WMAKE]
 #	This stage actually builds the world.
@@ -259,7 +261,8 @@ BMAKE=		MAKEOBJDIRPREFIX=${WORLDTMP} \
 		-DNO_PIC MK_PROFILE=no -DNO_SHARED \
 		-DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no \
 		MK_CLANG_EXTRAS=no MK_CLANG_FULL=no \
-		MK_LLD=no MK_LLDB=no MK_TESTS=no
+		MK_LLD=no MK_LLDB=no MK_TESTS=no \
+		MK_INCLUDES=yes 
 
 # build-tools stage
 TMAKE=		MAKEOBJDIRPREFIX=${OBJTREE} \
@@ -1221,7 +1224,9 @@ update:
 #
 
 #
-# legacy: Build compatibility shims for the next three targets
+# legacy: Build compatibility shims for the next three targets. This is a minimal
+# set of tools and shims necessary to compensate for older systems which don't have
+# the APIs that the targets built in bootstrap-tools, build-tools or cross-tools.
 #
 legacy:
 .if ${BOOTSTRAPPING} < 800107 && ${BOOTSTRAPPING} != 0
@@ -1239,7 +1244,10 @@ legacy:
 .endfor
 
 #
-# bootstrap-tools: Build tools needed for compatibility
+# bootstrap-tools: Build tools needed for compatibility. These are binaries that
+# are built to build other binaries in the system. However, the focus of these
+# binaries is usually quite narrow. Bootstrap tools use the host's compiler and
+# libraries, augmented by -legacy.
 #
 _bt=		_bootstrap-tools	
 
@@ -1445,7 +1453,9 @@ kernel-tools: .MAKE
 	    -p ${MAKEOBJDIRPREFIX}/usr >/dev/null
 
 #
-# cross-tools: Build cross-building tools
+# cross-tools: All the tools needed to build the rest of the system after
+# we get done with the earlier stages. It is the last set of tools needed
+# to begin building the target binaries.
 #
 .if ${TARGET_ARCH} != ${MACHINE_ARCH}
 .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386"

Modified: projects/lld-import/ObsoleteFiles.inc
==============================================================================
--- projects/lld-import/ObsoleteFiles.inc	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/ObsoleteFiles.inc	Thu Mar 26 22:35:56 2015	(r280717)
@@ -38,6 +38,8 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
+# 20150326
+OLD_FILES+=usr/share/man/man1/pmcstudy.1.gz
 # 20150315: new clang import which bumps version from 3.5.1 to 3.6.0.
 OLD_FILES+=usr/include/clang/3.5.1/__wmmintrin_aes.h
 OLD_FILES+=usr/include/clang/3.5.1/__wmmintrin_pclmul.h

Modified: projects/lld-import/contrib/gcc/config/aarch64/aarch64.h
==============================================================================
--- projects/lld-import/contrib/gcc/config/aarch64/aarch64.h	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/contrib/gcc/config/aarch64/aarch64.h	Thu Mar 26 22:35:56 2015	(r280717)
@@ -1,3 +1,3 @@
-/* $FreeBSD */
 
 #define FIRST_PSEUDO_REGISTER   67
+#define DWARF_FRAME_REGISTERS   97

Modified: projects/lld-import/include/pthread.h
==============================================================================
--- projects/lld-import/include/pthread.h	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/include/pthread.h	Thu Mar 26 22:35:56 2015	(r280717)
@@ -144,23 +144,19 @@ struct _pthread_cleanup_info {
  */
 __BEGIN_DECLS
 int		pthread_atfork(void (*)(void), void (*)(void), void (*)(void));
-int		pthread_attr_destroy(pthread_attr_t *) __nonnull(1);
+int		pthread_attr_destroy(pthread_attr_t *);
 int		pthread_attr_getstack(const pthread_attr_t * __restrict, 
-			void ** __restrict, size_t * __restrict)
-			__nonnull(1, 2, 3);
-int		pthread_attr_getstacksize(const pthread_attr_t *, size_t *)
-			__nonnull(1, 2);
+			void ** __restrict, size_t * __restrict);
+int		pthread_attr_getstacksize(const pthread_attr_t *, size_t *);
 int		pthread_attr_getguardsize(const pthread_attr_t *, size_t *);
 int		pthread_attr_getstackaddr(const pthread_attr_t *, void **);
-int		pthread_attr_getdetachstate(const pthread_attr_t *, int *)
-			__nonnull(1, 2);
-int		pthread_attr_init(pthread_attr_t *) __nonnull(1);
-int		pthread_attr_setstacksize(pthread_attr_t *, size_t) __nonnull(1);
-int		pthread_attr_setguardsize(pthread_attr_t *, size_t) __nonnull(1);
-int		pthread_attr_setstack(pthread_attr_t *, void *, size_t)
-			__nonnull(1);
+int		pthread_attr_getdetachstate(const pthread_attr_t *, int *);
+int		pthread_attr_init(pthread_attr_t *);
+int		pthread_attr_setstacksize(pthread_attr_t *, size_t);
+int		pthread_attr_setguardsize(pthread_attr_t *, size_t);
+int		pthread_attr_setstack(pthread_attr_t *, void *, size_t);
 int		pthread_attr_setstackaddr(pthread_attr_t *, void *);
-int		pthread_attr_setdetachstate(pthread_attr_t *, int) __nonnull(1);
+int		pthread_attr_setdetachstate(pthread_attr_t *, int);
 int		pthread_barrier_destroy(pthread_barrier_t *);
 int		pthread_barrier_init(pthread_barrier_t *,
 			const pthread_barrierattr_t *, unsigned);
@@ -168,7 +164,7 @@ int		pthread_barrier_wait(pthread_barrie
 int		pthread_barrierattr_destroy(pthread_barrierattr_t *);
 int		pthread_barrierattr_getpshared(const pthread_barrierattr_t *,
 			int *);
-int		pthread_barrierattr_init(pthread_barrierattr_t *) __nonnull(1);
+int		pthread_barrierattr_init(pthread_barrierattr_t *);
 int		pthread_barrierattr_setpshared(pthread_barrierattr_t *, int);
 
 #define		pthread_cleanup_push(cleanup_routine, cleanup_arg)		\
@@ -184,96 +180,85 @@ int		pthread_barrierattr_setpshared(pthr
 			__pthread_cleanup_pop_imp(execute);			\
 		}
 
-int		pthread_condattr_destroy(pthread_condattr_t *) __nonnull(1);
+int		pthread_condattr_destroy(pthread_condattr_t *);
 int		pthread_condattr_getclock(const pthread_condattr_t *,
-			clockid_t *) __nonnull(1, 2);
-int		pthread_condattr_getpshared(const pthread_condattr_t *, int *)
-			__nonnull(1, 2);
-int		pthread_condattr_init(pthread_condattr_t *) __nonnull(1);
-int		pthread_condattr_setclock(pthread_condattr_t *, clockid_t)
-			__nonnull(1);
-int		pthread_condattr_setpshared(pthread_condattr_t *, int)
-			__nonnull(1);
-int		pthread_cond_broadcast(pthread_cond_t *)
-			__nonnull(1);
-int		pthread_cond_destroy(pthread_cond_t *)
-			__nonnull(1);
+			clockid_t *);
+int		pthread_condattr_getpshared(const pthread_condattr_t *, int *);
+int		pthread_condattr_init(pthread_condattr_t *);
+int		pthread_condattr_setclock(pthread_condattr_t *, clockid_t);
+int		pthread_condattr_setpshared(pthread_condattr_t *, int);
+int		pthread_cond_broadcast(pthread_cond_t *);
+int		pthread_cond_destroy(pthread_cond_t *);
 int		pthread_cond_init(pthread_cond_t *,
-			const pthread_condattr_t *) __nonnull(1);
-int		pthread_cond_signal(pthread_cond_t *) __nonnull(1);
+			const pthread_condattr_t *);
+int		pthread_cond_signal(pthread_cond_t *);
 int		pthread_cond_timedwait(pthread_cond_t *,
 			pthread_mutex_t *__mutex, const struct timespec *)
-			__nonnull(1, 2, 3) __requires_exclusive(*__mutex);
+		    __requires_exclusive(*__mutex);
 int		pthread_cond_wait(pthread_cond_t *, pthread_mutex_t *__mutex)
-			__nonnull(1, 2) __requires_exclusive(*__mutex);
+		    __requires_exclusive(*__mutex);
 int		pthread_create(pthread_t *, const pthread_attr_t *,
-			void *(*) (void *), void *) __nonnull(1, 3);
+			void *(*) (void *), void *);
 int		pthread_detach(pthread_t);
 int		pthread_equal(pthread_t, pthread_t);
 void		pthread_exit(void *) __dead2;
 void		*pthread_getspecific(pthread_key_t);
-int		pthread_getcpuclockid(pthread_t, clockid_t *) __nonnull(2);
+int		pthread_getcpuclockid(pthread_t, clockid_t *);
 int		pthread_join(pthread_t, void **);
 int		pthread_key_create(pthread_key_t *,
-			void (*) (void *)) __nonnull(1);
+			void (*) (void *));
 int		pthread_key_delete(pthread_key_t);
-int		pthread_mutexattr_init(pthread_mutexattr_t *) __nonnull(1);
-int		pthread_mutexattr_destroy(pthread_mutexattr_t *) __nonnull(1);
+int		pthread_mutexattr_init(pthread_mutexattr_t *);
+int		pthread_mutexattr_destroy(pthread_mutexattr_t *);
 int		pthread_mutexattr_getpshared(const pthread_mutexattr_t *,
-			int *) __nonnull(1, 2);
-int		pthread_mutexattr_gettype(pthread_mutexattr_t *, int *)
-			__nonnull(1, 2);
-int		pthread_mutexattr_settype(pthread_mutexattr_t *, int)
-			__nonnull(1);
-int		pthread_mutexattr_setpshared(pthread_mutexattr_t *, int)
-			__nonnull(1);
+			int *);
+int		pthread_mutexattr_gettype(pthread_mutexattr_t *, int *);
+int		pthread_mutexattr_settype(pthread_mutexattr_t *, int);
+int		pthread_mutexattr_setpshared(pthread_mutexattr_t *, int);
 int		pthread_mutex_destroy(pthread_mutex_t *__mutex)
-		    __nonnull(1) __requires_unlocked(*__mutex);
+		    __requires_unlocked(*__mutex);
 int		pthread_mutex_init(pthread_mutex_t *__mutex,
 			const pthread_mutexattr_t *)
-		    __nonnull(1) __requires_unlocked(*__mutex);
+		    __requires_unlocked(*__mutex);
 int		pthread_mutex_lock(pthread_mutex_t *__mutex)
-                    __nonnull(1) __locks_exclusive(*__mutex);
+                    __locks_exclusive(*__mutex);
 int		pthread_mutex_trylock(pthread_mutex_t *__mutex)
-                    __nonnull(1) __trylocks_exclusive(0, *__mutex);
+                    __trylocks_exclusive(0, *__mutex);
 int		pthread_mutex_timedlock(pthread_mutex_t *__mutex,
 			const struct timespec *)
-                    __nonnull(1, 2) __trylocks_exclusive(0, *__mutex);
+                    __trylocks_exclusive(0, *__mutex);
 int		pthread_mutex_unlock(pthread_mutex_t *__mutex)
-		    __nonnull(1) __unlocks(*__mutex);
-int		pthread_once(pthread_once_t *, void (*) (void)) __nonnull(1, 2);
+		    __unlocks(*__mutex);
+int		pthread_once(pthread_once_t *, void (*) (void));
 int		pthread_rwlock_destroy(pthread_rwlock_t *__rwlock)
-		    __nonnull(1) __requires_unlocked(*__rwlock);
+		    __requires_unlocked(*__rwlock);
 int		pthread_rwlock_init(pthread_rwlock_t *__rwlock,
 			const pthread_rwlockattr_t *)
-		    __nonnull(1) __requires_unlocked(*__rwlock);
+		    __requires_unlocked(*__rwlock);
 int		pthread_rwlock_rdlock(pthread_rwlock_t *__rwlock)
-                    __nonnull(1) __locks_shared(*__rwlock);
+                    __locks_shared(*__rwlock);
 int		pthread_rwlock_timedrdlock(pthread_rwlock_t *__rwlock,
 			const struct timespec *)
-                    __nonnull(1, 2) __trylocks_shared(0, *__rwlock);
+                    __trylocks_shared(0, *__rwlock);
 int		pthread_rwlock_timedwrlock(pthread_rwlock_t *__rwlock,
 			const struct timespec *)
-                    __nonnull(1, 2) __trylocks_exclusive(0, *__rwlock);
+                    __trylocks_exclusive(0, *__rwlock);
 int		pthread_rwlock_tryrdlock(pthread_rwlock_t *__rwlock)
-                    __nonnull(1) __trylocks_shared(0, *__rwlock);
+                    __trylocks_shared(0, *__rwlock);
 int		pthread_rwlock_trywrlock(pthread_rwlock_t *__rwlock)
-                    __nonnull(1) __trylocks_exclusive(0, *__rwlock);
+                    __trylocks_exclusive(0, *__rwlock);
 int		pthread_rwlock_unlock(pthread_rwlock_t *__rwlock)
-		    __nonnull(1) __unlocks(*__rwlock);
+		    __unlocks(*__rwlock);
 int		pthread_rwlock_wrlock(pthread_rwlock_t *__rwlock)
-                    __nonnull(1) __locks_exclusive(*__rwlock);
-int		pthread_rwlockattr_destroy(pthread_rwlockattr_t *)
-		    __nonnull(1);
+                    __locks_exclusive(*__rwlock);
+int		pthread_rwlockattr_destroy(pthread_rwlockattr_t *);
 int		pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t *,
 			int *);
 int		pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *,
-			int *) __nonnull(1, 2);
-int		pthread_rwlockattr_init(pthread_rwlockattr_t *)
-		    __nonnull(1);
+			int *);
+int		pthread_rwlockattr_init(pthread_rwlockattr_t *);
 int		pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *, int);
-int		pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int)
-		    __nonnull(1);
+int		pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int);
 pthread_t	pthread_self(void);
 int		pthread_setspecific(pthread_key_t, const void *);
 
@@ -310,20 +295,18 @@ int		pthread_mutexattr_setprotocol(pthre
 
 int		pthread_attr_getinheritsched(const pthread_attr_t *, int *);
 int		pthread_attr_getschedparam(const pthread_attr_t *,
-			struct sched_param *) __nonnull(1, 2);
-int		pthread_attr_getschedpolicy(const pthread_attr_t *, int *)
-			__nonnull(1, 2);
-int		pthread_attr_getscope(const pthread_attr_t *, int *)
-			__nonnull(1, 2);
+			struct sched_param *);
+int		pthread_attr_getschedpolicy(const pthread_attr_t *, int *);
+int		pthread_attr_getscope(const pthread_attr_t *, int *);
 int		pthread_attr_setinheritsched(pthread_attr_t *, int);
 int		pthread_attr_setschedparam(pthread_attr_t *,
-			const struct sched_param *) __nonnull(1, 2);
-int		pthread_attr_setschedpolicy(pthread_attr_t *, int) __nonnull(1);
-int		pthread_attr_setscope(pthread_attr_t *, int) __nonnull(1);
+			const struct sched_param *);
+int		pthread_attr_setschedpolicy(pthread_attr_t *, int);
+int		pthread_attr_setscope(pthread_attr_t *, int);
 int		pthread_getschedparam(pthread_t pthread, int *,
-			struct sched_param *) __nonnull(2, 3);
+			struct sched_param *);
 int		pthread_setschedparam(pthread_t, int,
-			const struct sched_param *) __nonnull(3);
+			const struct sched_param *);
 #if __XSI_VISIBLE
 int		pthread_getconcurrency(void);
 int		pthread_setconcurrency(int);

Modified: projects/lld-import/include/signal.h
==============================================================================
--- projects/lld-import/include/signal.h	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/include/signal.h	Thu Mar 26 22:35:56 2015	(r280717)
@@ -78,10 +78,10 @@ int	sigdelset(sigset_t *, int);
 int	sigemptyset(sigset_t *);
 int	sigfillset(sigset_t *);
 int	sigismember(const sigset_t *, int);
-int	sigpending(sigset_t *) __nonnull(1);
+int	sigpending(sigset_t *);
 int	sigprocmask(int, const sigset_t * __restrict, sigset_t * __restrict);
-int	sigsuspend(const sigset_t *) __nonnull(1);
-int	sigwait(const sigset_t * __restrict, int * __restrict) __nonnull(1, 2);
+int	sigsuspend(const sigset_t *);
+int	sigwait(const sigset_t * __restrict, int * __restrict);
 #endif
 
 #if __POSIX_VISIBLE >= 199506 || __XSI_VISIBLE >= 600

Modified: projects/lld-import/include/stdlib.h
==============================================================================
--- projects/lld-import/include/stdlib.h	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/include/stdlib.h	Thu Mar 26 22:35:56 2015	(r280717)
@@ -277,9 +277,9 @@ int	 cgetustr(char *, const char *, char
 
 int	 daemon(int, int);
 char	*devname(__dev_t, __mode_t);
-char 	*devname_r(__dev_t, __mode_t, char *, int);
+char	*devname_r(__dev_t, __mode_t, char *, int);
 char	*fdevname(int);
-char 	*fdevname_r(int, char *, int);
+char	*fdevname_r(int, char *, int);
 int	 getloadavg(double [], int);
 const char *
 	 getprogname(void);

Modified: projects/lld-import/lib/libc/gen/setmode.c
==============================================================================
--- projects/lld-import/lib/libc/gen/setmode.c	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/lib/libc/gen/setmode.c	Thu Mar 26 22:35:56 2015	(r280717)
@@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$");
 #include "namespace.h"
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <sys/sysctl.h>
 
 #include <ctype.h>
 #include <errno.h>
@@ -68,6 +69,7 @@ typedef struct bitcmd {
 #define	CMD2_OBITS	0x08
 #define	CMD2_UBITS	0x10
 
+static mode_t	 getumask(void);
 static BITCMD	*addcmd(BITCMD *, mode_t, mode_t, mode_t, mode_t);
 static void	 compress_mode(BITCMD *);
 #ifdef SETMODE_DEBUG
@@ -169,7 +171,6 @@ setmode(const char *p)
 	int serrno;
 	char op, *ep;
 	BITCMD *set, *saveset, *endset;
-	sigset_t sigset, sigoset;
 	mode_t mask, perm, permXbits, who;
 	long perml;
 	int equalopdone;
@@ -182,15 +183,9 @@ setmode(const char *p)
 
 	/*
 	 * Get a copy of the mask for the permissions that are mask relative.
-	 * Flip the bits, we want what's not set.  Since it's possible that
-	 * the caller is opening files inside a signal handler, protect them
-	 * as best we can.
+	 * Flip the bits, we want what's not set.
 	 */
-	sigfillset(&sigset);
-	(void)_sigprocmask(SIG_BLOCK, &sigset, &sigoset);
-	(void)umask(mask = umask(0));
-	mask = ~mask;
-	(void)_sigprocmask(SIG_SETMASK, &sigoset, NULL);
+	mask = ~getumask();
 
 	setlen = SET_LEN + 2;
 
@@ -346,6 +341,35 @@ out:
 	return NULL;
 }
 
+static mode_t
+getumask(void)
+{
+	sigset_t sigset, sigoset;
+	size_t len;
+	mode_t mask;
+	u_short smask;
+
+	/*
+	 * First try requesting the umask without temporarily modifying it.
+	 * Note that this does not work if the sysctl
+	 * security.bsd.unprivileged_proc_debug is set to 0.
+	 */
+	len = sizeof(smask);
+	if (sysctl((int[4]){ CTL_KERN, KERN_PROC, KERN_PROC_UMASK, getpid() },
+	    4, &smask, &len, NULL, 0) == 0)
+		return (smask);
+
+	/*
+	 * Since it's possible that the caller is opening files inside a signal
+	 * handler, protect them as best we can.
+	 */
+	sigfillset(&sigset);
+	(void)_sigprocmask(SIG_BLOCK, &sigset, &sigoset);
+	(void)umask(mask = umask(0));
+	(void)_sigprocmask(SIG_SETMASK, &sigoset, NULL);
+	return (mask);
+}
+
 static BITCMD *
 addcmd(BITCMD *set, mode_t op, mode_t who, mode_t oparg, mode_t mask)
 {

Modified: projects/lld-import/lib/libfetch/common.c
==============================================================================
--- projects/lld-import/lib/libfetch/common.c	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/lib/libfetch/common.c	Thu Mar 26 22:35:56 2015	(r280717)
@@ -672,9 +672,7 @@ fetch_ssl_setup_transport_layer(SSL_CTX 
 {
 	long ssl_ctx_options;
 
-	ssl_ctx_options = SSL_OP_ALL | SSL_OP_NO_TICKET;
-	if (getenv("SSL_ALLOW_SSL2") == NULL)
-		ssl_ctx_options |= SSL_OP_NO_SSLv2;
+	ssl_ctx_options = SSL_OP_ALL | SSL_OP_NO_SSLv2 | SSL_OP_NO_TICKET;
 	if (getenv("SSL_ALLOW_SSL3") == NULL)
 		ssl_ctx_options |= SSL_OP_NO_SSLv3;
 	if (getenv("SSL_NO_TLS1") != NULL)

Modified: projects/lld-import/lib/libfetch/fetch.3
==============================================================================
--- projects/lld-import/lib/libfetch/fetch.3	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/lib/libfetch/fetch.3	Thu Mar 26 22:35:56 2015	(r280717)
@@ -26,7 +26,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd October 15, 2014
+.Dd March 25, 2015
 .Dt FETCH 3
 .Os
 .Sh NAME
@@ -441,10 +441,8 @@ By default
 allows TLSv1 and newer when negotiating the connecting with the remote
 peer.
 You can change this behavior by setting the
-.Ev SSL_ALLOW_SSL2
-and
 .Ev SSL_ALLOW_SSL3
-environment variables to allow SSLv2 and SSLv3, respectively, and
+environment variable to allow SSLv3 and
 .Ev SSL_NO_TLS1 ,
 .Ev SSL_NO_TLS1_1 and
 .Ev SSL_NO_TLS1_2
@@ -646,8 +644,6 @@ which proxies should not be used.
 Same as
 .Ev NO_PROXY ,
 for compatibility.
-.It Ev SSL_ALLOW_SSL2
-Allow SSL version 2 when negotiating the connection (not recommended).
 .It Ev SSL_ALLOW_SSL3
 Allow SSL version 3 when negotiating the connection (not recommended).
 .It Ev SSL_CA_CERT_FILE

Modified: projects/lld-import/lib/libgeom/geom_xml2tree.c
==============================================================================
--- projects/lld-import/lib/libgeom/geom_xml2tree.c	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/lib/libgeom/geom_xml2tree.c	Thu Mar 26 22:35:56 2015	(r280717)
@@ -186,6 +186,7 @@ static void
 EndElement(void *userData, const char *name)
 {
 	struct mystate *mt;
+	struct gconf *c;
 	struct gconfig *gc;
 	char *p;
 
@@ -259,7 +260,14 @@ EndElement(void *userData, const char *n
 		return;
 	}
 
-	if (mt->config != NULL) {
+	if (mt->config != NULL || (!strcmp(name, "wither") &&
+	    (mt->provider != NULL || mt->geom != NULL))) {
+		if (mt->config != NULL)
+			c = mt->config;
+		else if (mt->provider != NULL)
+			c = &mt->provider->lg_config;
+		else
+			c = &mt->geom->lg_config;
 		gc = calloc(1, sizeof *gc);
 		if (gc == NULL) {
 			mt->error = errno;
@@ -270,14 +278,15 @@ EndElement(void *userData, const char *n
 		}
 		gc->lg_name = strdup(name);
 		if (gc->lg_name == NULL) {
+			free(gc);
 			mt->error = errno;
 			XML_StopParser(mt->parser, 0);
 			warn("Cannot allocate memory during processing of '%s' "
 			    "element", name);
 			return;
 		}
-		gc->lg_val = p;
-		LIST_INSERT_HEAD(mt->config, gc, lg_config);
+		gc->lg_val = p ? p : strdup("1");
+		LIST_INSERT_HEAD(c, gc, lg_config);
 		return;
 	}
 

Modified: projects/lld-import/release/arm/BEAGLEBONE.conf
==============================================================================
--- projects/lld-import/release/arm/BEAGLEBONE.conf	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/release/arm/BEAGLEBONE.conf	Thu Mar 26 22:35:56 2015	(r280717)
@@ -32,6 +32,6 @@ load_target_env() {
 	export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
 	export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no"
 	export KERNEL="BEAGLEBONE"
-	export CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
+	export CROCHETSRC="https://github.com/freebsd/crochet"
 	export CROCHETBRANCH="trunk@r744"
 }

Modified: projects/lld-import/release/arm/PANDABOARD.conf
==============================================================================
--- projects/lld-import/release/arm/PANDABOARD.conf	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/release/arm/PANDABOARD.conf	Thu Mar 26 22:35:56 2015	(r280717)
@@ -32,6 +32,6 @@ load_target_env() {
 	export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
 	export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no"
 	export KERNEL="PANDABOARD"
-	export CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
+	export CROCHETSRC="https://github.com/freebsd/crochet"
 	export CROCHETBRANCH="trunk@r744"
 }

Modified: projects/lld-import/release/arm/RPI-B.conf
==============================================================================
--- projects/lld-import/release/arm/RPI-B.conf	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/release/arm/RPI-B.conf	Thu Mar 26 22:35:56 2015	(r280717)
@@ -32,7 +32,7 @@ load_target_env() {
 	export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
 	export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no"
 	export KERNEL="RPI-B"
-	export CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
+	export CROCHETSRC="https://github.com/freebsd/crochet"
 	export CROCHETBRANCH="trunk@r744"
 	export UBOOTSRC="https://github.com/gonzoua/u-boot-pi"
 	export UBOOTBRANCH="trunk"

Modified: projects/lld-import/release/arm/WANDBOARD-QUAD.conf
==============================================================================
--- projects/lld-import/release/arm/WANDBOARD-QUAD.conf	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/release/arm/WANDBOARD-QUAD.conf	Thu Mar 26 22:35:56 2015	(r280717)
@@ -32,6 +32,6 @@ load_target_env() {
 	export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
 	export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no"
 	export KERNEL="WANDBOARD-QUAD"
-	export CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
+	export CROCHETSRC="https://github.com/freebsd/crochet"
 	export CROCHETBRANCH="trunk@r744"
 }

Modified: projects/lld-import/release/arm/ZEDBOARD.conf
==============================================================================
--- projects/lld-import/release/arm/ZEDBOARD.conf	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/release/arm/ZEDBOARD.conf	Thu Mar 26 22:35:56 2015	(r280717)
@@ -31,6 +31,6 @@ load_target_env() {
 	export XDEV_FLAGS="WITH_GCC=1 WITH_GCC_BOOTSTRAP=1 WITHOUT_CLANG_IS_CC=1"
 	export XDEV_FLAGS="${XDEV_FLAGS} MK_TESTS=no"
 	export KERNEL="ZEDBOARD"
-	export CROCHETSRC="https://github.com/kientzle/crochet-freebsd"
+	export CROCHETSRC="https://github.com/freebsd/crochet"
 	export CROCHETBRANCH="trunk@r744"
 }

Modified: projects/lld-import/sbin/geom/class/part/geom_part.c
==============================================================================
--- projects/lld-import/sbin/geom/class/part/geom_part.c	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/sbin/geom/class/part/geom_part.c	Thu Mar 26 22:35:56 2015	(r280717)
@@ -207,15 +207,20 @@ find_class(struct gmesh *mesh, const cha
 static struct ggeom *
 find_geom(struct gclass *classp, const char *name)
 {
-	struct ggeom *gp;
+	struct ggeom *gp, *wgp;
 
 	if (strncmp(name, _PATH_DEV, sizeof(_PATH_DEV) - 1) == 0)
 		name += sizeof(_PATH_DEV) - 1;
+	wgp = NULL;
 	LIST_FOREACH(gp, &classp->lg_geom, lg_geom) {
-		if (strcmp(gp->lg_name, name) == 0)
+		if (strcmp(gp->lg_name, name) != 0)
+			continue;
+		if (find_geomcfg(gp, "wither") == NULL)
 			return (gp);
+		else
+			wgp = gp;
 	}
-	return (NULL);
+	return (wgp);
 }
 
 static const char *
@@ -609,6 +614,8 @@ gpart_show_geom(struct ggeom *gp, const 
 	off_t length, secsz;
 	int idx, wblocks, wname, wmax;
 
+	if (find_geomcfg(gp, "wither"))
+		return;
 	scheme = find_geomcfg(gp, "scheme");
 	if (scheme == NULL)
 		errx(EXIT_FAILURE, "Scheme not found for geom %s", gp->lg_name);

Modified: projects/lld-import/share/man/man4/icmp.4
==============================================================================
--- projects/lld-import/share/man/man4/icmp.4	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/share/man/man4/icmp.4	Thu Mar 26 22:35:56 2015	(r280717)
@@ -28,7 +28,7 @@
 .\"     @(#)icmp.4	8.1 (Berkeley) 6/5/93
 .\" $FreeBSD$
 .\"
-.Dd September 30, 2014
+.Dd March 26, 2015
 .Dt ICMP 4
 .Os
 .Sh NAME
@@ -177,13 +177,11 @@ Defaults to 0.
 .It Va icmplim
 .Pq Vt integer
 Bandwidth limit for ICMP replies in packets/second.
-Used when
-.Va icmplim_output
-is non-zero.
+If set to zero, no limiting will occur.
 Defaults to 200.
 .It Va icmplim_output
 .Pq Vt boolean
-Enable/disable bandwidth limiting of ICMP replies.
+Enable/disable logging of ICMP replies bandwidth limiting.
 Defaults to true.
 .It Va drop_redirect
 .Pq Vt boolean

Modified: projects/lld-import/share/man/man4/ixl.4
==============================================================================
--- projects/lld-import/share/man/man4/ixl.4	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/share/man/man4/ixl.4	Thu Mar 26 22:35:56 2015	(r280717)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 14, 2015
+.Dd March 25, 2015
 .Dt IXL 4
 .Os
 .Sh NAME
@@ -113,8 +113,6 @@ Intel DUAL RATE 1G/10G SFP+ LR (bailed) 
 Note that X710/XL710 Based SFP+ adapters also support all passive and active
 limiting direct attach cables that comply with SFF-8431 v4.1 and
 SFF-8472 v10.4 specifications.
-
-.Pp
 .Sh LOADER TUNABLES
 Tunables can be set at the
 .Xr loader 8
@@ -125,10 +123,10 @@ prompt before booting the kernel or stor
 Allows one to enable/disable MSIX, thus forcing MSI instead.
 .It Va hw.ixl.ringsz
 Set the number of descriptors in the rings, note that this
-changes BOTH the TX and RX rings, they cannot be set independly.
+changes BOTH the TX and RX rings, they cannot be set independently.
 .It Va hw.ixl.max_queues
 Set the number of queues (each a TX/RX pair) for the port, this
-allows one to override the autocalculation if its set to 0.
+allows one to override the autocalculation if it is set to 0.
 .It Va hw.ixl.dynamic_rx_itr
 The dynamic RX interrupt control, set to 1 to enable.
 .It Va hw.ixl.dynamic_tx_itr
@@ -138,27 +136,31 @@ The RX interrupt rate value, set to 8K b
 .It Va hw.ixl.tx_itr
 The TX interrupt rate value, set to 4K by default.
 .El
-.Pp
 .Sh SYSCTL PROCEDURES
 .Bl -tag -width indent
 .It Va hw.ixl.fc
-Allows one to set the flow control value. A value of 0 disables
+Allows one to set the flow control value.
+A value of 0 disables
 flow control, 3 enables full, 1 is RX, and 2 is TX pause.
 .It Va hw.ixl.advertise_speed
 Allows one to set advertised link speeds, this will then
-cause a link renegotiation. With the appropriate adapter
-this can cause a link at 10GB, 1GB, or 100MB. 
+cause a link renegotiation.
+With the appropriate adapter
+this can cause a link at 10GB, 1GB, or 100MB.
 .It Va hw.ixl.current_speed
 This is a display of the current setting.
 .It Va hw.ixl.fw_version
 This is a display of the Firmware version.
+.El
 .Sh Interrupt Storms
-It is important to note that 40G operation can generate high 
+It is important to note that 40G operation can generate high
 numbers of interrupts, often incorrectly being interpreted as
-a storm condition in the kernel. It is suggested that this
+a storm condition in the kernel.
+It is suggested that this
 be resolved by setting:
 .Bl -tag -width indent
 .It Va hw.intr_storm_threshold: 0
+.El
 .Sh SUPPORT
 For general information and support,
 go to the Intel support website at:
@@ -169,6 +171,7 @@ email all the specific information relat
 .Aq freebsd@intel.com .
 .Sh SEE ALSO
 .Xr arp 4 ,
+.Xr ixlv 4 ,
 .Xr netintro 4 ,
 .Xr ng_ether 4 ,
 .Xr vlan 4 ,

Modified: projects/lld-import/share/man/man4/ixlv.4
==============================================================================
--- projects/lld-import/share/man/man4/ixlv.4	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/share/man/man4/ixlv.4	Thu Mar 26 22:35:56 2015	(r280717)
@@ -31,7 +31,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd January 14, 2015
+.Dd March 25, 2015
 .Dt IXLV 4
 .Os
 .Sh NAME
@@ -77,13 +77,13 @@ and/or TSO6, and finally LRO can be set 
 For more information on configuring this device, see
 .Xr ifconfig 8 .
 .Pp
-NOTE that The 
+.Em NOTE :
+The
 .Nm
-Driver is only used by means of SRIOV, normally in a VM on a
+driver is only used by means of SRIOV, normally in a VM on a
 hosting server with the
 .Xr ixl 4
-driver. 
-.Pp
+driver.
 .Sh LOADER TUNABLES
 Tunables can be set at the
 .Xr loader 8
@@ -92,10 +92,10 @@ prompt before booting the kernel or stor
 .Bl -tag -width indent
 .It Va hw.ixlv.ringsz
 Set the number of descriptors in the rings, note that this
-changes BOTH the TX and RX rings, they cannot be set independly.
+changes BOTH the TX and RX rings, they cannot be set independently.
 .It Va hw.ixlv.max_queues
 Set the number of queues (each a TX/RX pair) for the port, this
-allows one to override the autocalculation if its set to 0.
+allows one to override the autocalculation if it is set to 0.
 .It Va hw.ixlv.txbrsz
 Set the size of the buff ring used by the transmit side of the
 stack, we have found that it is necessary to have it quite large
@@ -109,7 +109,6 @@ The RX interrupt rate value, set to 8K b
 .It Va hw.ixlv.tx_itr
 The TX interrupt rate value, set to 4K by default.
 .El
-.Pp
 .Sh SUPPORT
 For general information and support,
 go to the Intel support website at:
@@ -119,8 +118,8 @@ If an issue is identified with this driv
 email all the specific information related to the issue to
 .Aq freebsd@intel.com .
 .Sh SEE ALSO
-.Xr ixl 4 ,
 .Xr arp 4 ,
+.Xr ixl 4 ,
 .Xr netintro 4 ,
 .Xr ng_ether 4 ,
 .Xr vlan 4 ,

Modified: projects/lld-import/share/man/man4/witness.4
==============================================================================
--- projects/lld-import/share/man/man4/witness.4	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/share/man/man4/witness.4	Thu Mar 26 22:35:56 2015	(r280717)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd February 6, 2015
+.Dd March 24, 2015
 .Dt WITNESS 4
 .Os
 .Sh NAME
@@ -127,7 +127,7 @@ can be set via
 .Pp
 The
 .Nm
-code also provides two extra
+code also provides three extra
 .Xr ddb 4
 commands if both
 .Nm

Modified: projects/lld-import/share/misc/committers-src.dot
==============================================================================
--- projects/lld-import/share/misc/committers-src.dot	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/share/misc/committers-src.dot	Thu Mar 26 22:35:56 2015	(r280717)
@@ -211,6 +211,7 @@ kensmith [label="Ken Smith\nkensmith@Fre
 kevlo [label="Kevin Lo\nkevlo@FreeBSD.org\n2006/07/23"]
 kib [label="Konstantin Belousov\nkib@FreeBSD.org\n2006/06/03"]
 kmacy [label="Kip Macy\nkmacy@FreeBSD.org\n2005/06/01"]
+kp [label="Kristof Provost\nkp@FreeBSD.org\n2015/03/22"]
 le [label="Lukas Ertl\nle@FreeBSD.org\n2004/02/02"]
 loos [label="Luiz Otavio O Souza\nloos@FreeBSD.org\n2013/07/03"]
 lstewart [label="Lawrence Stewart\nlstewart@FreeBSD.org\n2008/10/06"]
@@ -446,6 +447,7 @@ gnn -> np
 gnn -> davide
 gnn -> arybchik
 gnn -> erj
+gnn -> kp
 
 grehan -> bryanv
 
@@ -624,6 +626,7 @@ philip -> ed
 philip -> jls
 philip -> matteo
 philip -> uqs
+philip -> kp
 
 phk -> jkoshy
 phk -> mux

Modified: projects/lld-import/share/misc/organization.dot
==============================================================================
--- projects/lld-import/share/misc/organization.dot	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/share/misc/organization.dot	Thu Mar 26 22:35:56 2015	(r280717)
@@ -30,7 +30,7 @@ coresecretary [label="Core Team Secretar
 doccommitters [label="Doc/www Committers\ndoc-committers@FreeBSD.org"]
 doceng [label="Documentation Engineering Team\ndoceng@FreeBSD.org\ngjb, blackend,\ngabor, hrs"]
 portscommitters [label="Ports Committers\nports-committers@FreeBSD.org"]
-portmgr [label="Port Management Team\nportmgr@FreeBSD.org\nantoine, bapt, bdrewery,\ndecke, erwin, mat, swills"]
+portmgr [label="Port Management Team\nportmgr@FreeBSD.org\nantoine, bapt, bdrewery,\nerwin, mat, swills"]
 portmgrsecretary [label="Port Management Team Secretary\nportmgr-secretary@FreeBSD.org\nculot"]
 re [label="Primary Release Engineering Team\nre@FreeBSD.org\nkib, blackend, jpaetzel, hrs, kensmith"]
 secteam [label="Security Team\nsecteam@FreeBSD.org\nsimon, qingli, delphij,\nremko, philip, stas, cperciva,\ncsjp, rwatson, miwi, bz"]

Modified: projects/lld-import/sys/arm/arm/genassym.c
==============================================================================
--- projects/lld-import/sys/arm/arm/genassym.c	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/sys/arm/arm/genassym.c	Thu Mar 26 22:35:56 2015	(r280717)
@@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$");
 #include <machine/frame.h>
 #include <machine/pcb.h>
 #include <machine/cpu.h>
+#include <machine/cpu-v6.h>
 #include <machine/proc.h>
 #include <machine/cpufunc.h>
 #include <machine/cpuinfo.h>
@@ -58,12 +59,19 @@ __FBSDID("$FreeBSD$");
 
 ASSYM(KERNBASE, KERNBASE);
 ASSYM(PCB_NOALIGNFLT, PCB_NOALIGNFLT);
+#ifdef ARM_NEW_PMAP
+ASSYM(CPU_ASID_KERNEL,CPU_ASID_KERNEL);
+#endif
 ASSYM(PCB_ONFAULT, offsetof(struct pcb, pcb_onfault));
+#ifndef ARM_NEW_PMAP
 ASSYM(PCB_DACR, offsetof(struct pcb, pcb_dacr));
+#endif
 ASSYM(PCB_FLAGS, offsetof(struct pcb, pcb_flags));
 ASSYM(PCB_PAGEDIR, offsetof(struct pcb, pcb_pagedir));
+#ifndef ARM_NEW_PMAP
 ASSYM(PCB_L1VEC, offsetof(struct pcb, pcb_l1vec));
 ASSYM(PCB_PL1VEC, offsetof(struct pcb, pcb_pl1vec));
+#endif
 ASSYM(PCB_R4, offsetof(struct pcb, pcb_regs.sf_r4));
 ASSYM(PCB_R5, offsetof(struct pcb, pcb_regs.sf_r5));
 ASSYM(PCB_R6, offsetof(struct pcb, pcb_regs.sf_r6));
@@ -131,7 +139,6 @@ ASSYM(PC_CURPMAP, offsetof(struct pcpu, 
 #endif
 
 ASSYM(PAGE_SIZE, PAGE_SIZE);
-ASSYM(PDESIZE, PDESIZE);
 ASSYM(PMAP_DOMAIN_KERNEL, PMAP_DOMAIN_KERNEL);
 #ifdef PMAP_INCLUDE_PTE_SYNC
 ASSYM(PMAP_INCLUDE_PTE_SYNC, 1);
@@ -145,8 +152,13 @@ ASSYM(TRAPFRAMESIZE, sizeof(struct trapf
 
 ASSYM(MAXCOMLEN, MAXCOMLEN);
 ASSYM(MAXCPU, MAXCPU);
+ASSYM(_NCPUWORDS, _NCPUWORDS);
 ASSYM(NIRQ, NIRQ);
 ASSYM(PCPU_SIZE, sizeof(struct pcpu));
+ASSYM(P_VMSPACE, offsetof(struct proc, p_vmspace));
+ASSYM(VM_PMAP, offsetof(struct vmspace, vm_pmap));
+ASSYM(PM_ACTIVE, offsetof(struct pmap, pm_active));
+ASSYM(PC_CPUID, offsetof(struct pcpu, pc_cpuid));
 
 ASSYM(DCACHE_LINE_SIZE, offsetof(struct cpuinfo, dcache_line_size));
 ASSYM(DCACHE_LINE_MASK, offsetof(struct cpuinfo, dcache_line_mask));

Modified: projects/lld-import/sys/arm/arm/machdep.c
==============================================================================
--- projects/lld-import/sys/arm/arm/machdep.c	Thu Mar 26 22:34:27 2015	(r280716)
+++ projects/lld-import/sys/arm/arm/machdep.c	Thu Mar 26 22:35:56 2015	(r280717)
@@ -138,6 +138,14 @@ int _min_bzero_size = 0;
 extern int *end;
 
 #ifdef FDT
+vm_paddr_t pmap_pa;
+
+#ifdef ARM_NEW_PMAP
+vm_offset_t systempage;
+vm_offset_t irqstack;
+vm_offset_t undstack;
+vm_offset_t abtstack;
+#else
 /*
  * This is the number of L2 page tables required for covering max
  * (hypothetical) memsize of 4GB and all kernel mappings (vectors, msgbuf,
@@ -147,15 +155,13 @@ extern int *end;
 
 static struct pv_addr kernel_pt_table[KERNEL_PT_MAX];
 
-vm_paddr_t pmap_pa;
-
 struct pv_addr systempage;
 static struct pv_addr msgbufpv;
 struct pv_addr irqstack;
 struct pv_addr undstack;
 struct pv_addr abtstack;
 static struct pv_addr kernelstack;
-
+#endif
 #endif
 
 #if defined(LINUX_BOOT_ABI)
@@ -381,9 +387,11 @@ cpu_startup(void *dummy)
 	vm_pager_bufferinit();
 	pcb->pcb_regs.sf_sp = (u_int)thread0.td_kstack +
 	    USPACE_SVC_STACK_TOP;
-	vector_page_setprot(VM_PROT_READ);
 	pmap_set_pcb_pagedir(pmap_kernel(), pcb);
+#ifndef ARM_NEW_PMAP
+	vector_page_setprot(VM_PROT_READ);
 	pmap_postinit();
+#endif
 #ifdef ARM_TP_ADDRESS
 #ifdef ARM_CACHE_LOCK_ENABLE
 	pmap_kenter_user(ARM_TP_ADDRESS, ARM_TP_ADDRESS);
@@ -1003,6 +1011,19 @@ init_proc0(vm_offset_t kstack)
 	pcpup->pc_curpcb = thread0.td_pcb;
 }
 
+#ifdef ARM_NEW_PMAP
+void
+set_stackptrs(int cpu)
+{
+
+	set_stackptr(PSR_IRQ32_MODE,
+	    irqstack + ((IRQ_STACK_SIZE * PAGE_SIZE) * (cpu + 1)));
+	set_stackptr(PSR_ABT32_MODE,
+	    abtstack + ((ABT_STACK_SIZE * PAGE_SIZE) * (cpu + 1)));
+	set_stackptr(PSR_UND32_MODE,
+	    undstack + ((UND_STACK_SIZE * PAGE_SIZE) * (cpu + 1)));
+}
+#else
 void
 set_stackptrs(int cpu)
 {
@@ -1014,6 +1035,7 @@ set_stackptrs(int cpu)
 	set_stackptr(PSR_UND32_MODE,
 	    undstack.pv_va + ((UND_STACK_SIZE * PAGE_SIZE) * (cpu + 1)));
 }
+#endif
 
 #ifdef FDT
 static char *
@@ -1048,6 +1070,7 @@ print_kenv(void)
 		debugf(" %x %s\n", (uint32_t)cp, cp);
 }
 
+#ifndef ARM_NEW_PMAP
 void *
 initarm(struct arm_boot_params *abp)
 {
@@ -1316,4 +1339,181 @@ initarm(struct arm_boot_params *abp)
 	return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP -
 	    sizeof(struct pcb)));
 }
+#else /* !ARM_NEW_PMAP */
+void *
+initarm(struct arm_boot_params *abp)
+{
+	struct mem_region mem_regions[FDT_MEM_REGIONS];
+	vm_paddr_t lastaddr;
+	vm_offset_t dtbp, kernelstack, dpcpu;
+	uint32_t memsize;
+	char *env;
+	void *kmdp;
+	int err_devmap, mem_regions_sz;
+
+	/* get last allocated physical address */
+	arm_physmem_kernaddr = abp->abp_physaddr;
+	lastaddr = parse_boot_param(abp) - KERNVIRTADDR + arm_physmem_kernaddr;
+
+	memsize = 0;
+	set_cpufuncs();
+	cpuinfo_init();
+
+	/*
+	 * Find the dtb passed in by the boot loader.
+	 */
+	kmdp = preload_search_by_type("elf kernel");
+	if (kmdp != NULL)
+		dtbp = MD_FETCH(kmdp, MODINFOMD_DTBP, vm_offset_t);
+	else
+		dtbp = (vm_offset_t)NULL;
+#if defined(FDT_DTB_STATIC)
+	/*
+	 * In case the device tree blob was not retrieved (from metadata) try
+	 * to use the statically embedded one.
+	 */
+	if (dtbp == (vm_offset_t)NULL)
+		dtbp = (vm_offset_t)&fdt_static_dtb;
 #endif
+
+	if (OF_install(OFW_FDT, 0) == FALSE)
+		panic("Cannot install FDT");
+
+	if (OF_init((void *)dtbp) != 0)
+		panic("OF_init failed with the found device tree");
+
+	/* Grab physical memory regions information from device tree. */
+	if (fdt_get_mem_regions(mem_regions, &mem_regions_sz, &memsize) != 0)
+		panic("Cannot get physical memory regions");
+	arm_physmem_hardware_regions(mem_regions, mem_regions_sz);
+
+	/* Grab reserved memory regions information from device tree. */
+	if (fdt_get_reserved_regions(mem_regions, &mem_regions_sz) == 0)
+		arm_physmem_exclude_regions(mem_regions, mem_regions_sz,
+		    EXFLAG_NODUMP | EXFLAG_NOALLOC);
+
+	/*
+	 * Set TEX remapping registers.
+	 * Setup kernel page tables and switch to kernel L1 page table.
+	 */
+	pmap_set_tex();

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



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