From owner-svn-src-user@freebsd.org Fri Jan 15 22:49:26 2016 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 74010A8477A for ; Fri, 15 Jan 2016 22:49:26 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1E1511AD3; Fri, 15 Jan 2016 22:49:26 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u0FMnPQn005277; Fri, 15 Jan 2016 22:49:25 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u0FMnLxG005237; Fri, 15 Jan 2016 22:49:21 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201601152249.u0FMnLxG005237@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper Date: Fri, 15 Jan 2016 22:49:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r294106 - in user/ngie/socket-tests: crypto/openssh etc etc/rc.d lib/clang lib/libc++ lib/libkvm lib/libmd share/man/man4 share/mk sys/amd64/linux sys/amd64/linux32 sys/arm/arm sys/arm/... X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jan 2016 22:49:26 -0000 Author: ngie Date: Fri Jan 15 22:49:20 2016 New Revision: 294106 URL: https://svnweb.freebsd.org/changeset/base/294106 Log: MFhead @ r294105 Added: user/ngie/socket-tests/sys/boot/efi/boot1/boot_module.h - copied unchanged from r294105, head/sys/boot/efi/boot1/boot_module.h user/ngie/socket-tests/sys/boot/efi/boot1/ufs_module.c - copied unchanged from r294105, head/sys/boot/efi/boot1/ufs_module.c user/ngie/socket-tests/sys/boot/efi/boot1/zfs_module.c - copied unchanged from r294105, head/sys/boot/efi/boot1/zfs_module.c user/ngie/socket-tests/sys/dev/sfxge/common/efx_lic.c - copied unchanged from r294105, head/sys/dev/sfxge/common/efx_lic.c Modified: user/ngie/socket-tests/crypto/openssh/readconf.c user/ngie/socket-tests/etc/Makefile user/ngie/socket-tests/etc/rc.d/mountcritlocal user/ngie/socket-tests/lib/clang/clang.lib.mk user/ngie/socket-tests/lib/libc++/Makefile user/ngie/socket-tests/lib/libkvm/kvm_arm.h user/ngie/socket-tests/lib/libkvm/kvm_i386.h user/ngie/socket-tests/lib/libkvm/kvm_minidump_arm.c user/ngie/socket-tests/lib/libmd/mdXhl.c user/ngie/socket-tests/share/man/man4/ddb.4 user/ngie/socket-tests/share/man/man4/ioat.4 user/ngie/socket-tests/share/man/man4/sfxge.4 user/ngie/socket-tests/share/mk/bsd.dep.mk user/ngie/socket-tests/share/mk/bsd.sys.mk user/ngie/socket-tests/sys/amd64/linux/linux_proto.h user/ngie/socket-tests/sys/amd64/linux/linux_syscall.h user/ngie/socket-tests/sys/amd64/linux/linux_syscalls.c user/ngie/socket-tests/sys/amd64/linux/linux_sysent.c user/ngie/socket-tests/sys/amd64/linux/linux_systrace_args.c user/ngie/socket-tests/sys/amd64/linux/syscalls.master user/ngie/socket-tests/sys/amd64/linux32/linux32_proto.h user/ngie/socket-tests/sys/amd64/linux32/linux32_syscall.h user/ngie/socket-tests/sys/amd64/linux32/linux32_syscalls.c user/ngie/socket-tests/sys/amd64/linux32/linux32_sysent.c user/ngie/socket-tests/sys/amd64/linux32/linux32_systrace_args.c user/ngie/socket-tests/sys/amd64/linux32/syscalls.master user/ngie/socket-tests/sys/arm/arm/minidump_machdep.c user/ngie/socket-tests/sys/arm/at91/at91_mci.c user/ngie/socket-tests/sys/arm/at91/board_tsc4370.c user/ngie/socket-tests/sys/arm/conf/IMX53 user/ngie/socket-tests/sys/arm/conf/IMX6 user/ngie/socket-tests/sys/arm/include/minidump.h user/ngie/socket-tests/sys/boot/common/bootstrap.h user/ngie/socket-tests/sys/boot/common/module.c user/ngie/socket-tests/sys/boot/common/ufsread.c user/ngie/socket-tests/sys/boot/efi/Makefile user/ngie/socket-tests/sys/boot/efi/boot1/Makefile user/ngie/socket-tests/sys/boot/efi/boot1/boot1.c user/ngie/socket-tests/sys/boot/efi/include/efilib.h user/ngie/socket-tests/sys/boot/efi/libefi/handles.c user/ngie/socket-tests/sys/boot/efi/loader/Makefile user/ngie/socket-tests/sys/boot/efi/loader/conf.c user/ngie/socket-tests/sys/boot/efi/loader/devicename.c user/ngie/socket-tests/sys/boot/efi/loader/main.c user/ngie/socket-tests/sys/boot/fdt/fdt_loader_cmd.c user/ngie/socket-tests/sys/boot/i386/loader/main.c user/ngie/socket-tests/sys/boot/userboot/test/test.c user/ngie/socket-tests/sys/boot/userboot/userboot/main.c user/ngie/socket-tests/sys/boot/zfs/libzfs.h user/ngie/socket-tests/sys/boot/zfs/zfs.c user/ngie/socket-tests/sys/boot/zfs/zfsimpl.c user/ngie/socket-tests/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c user/ngie/socket-tests/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c user/ngie/socket-tests/sys/compat/linux/linux_futex.c user/ngie/socket-tests/sys/compat/linux/linux_misc.c user/ngie/socket-tests/sys/compat/linuxkpi/common/include/linux/pci.h user/ngie/socket-tests/sys/compat/linuxkpi/common/src/linux_pci.c user/ngie/socket-tests/sys/conf/files.amd64 user/ngie/socket-tests/sys/conf/kern.post.mk user/ngie/socket-tests/sys/contrib/vchiq/interface/vchiq_arm/vchiq_kmod.c user/ngie/socket-tests/sys/dev/ioat/ioat.c user/ngie/socket-tests/sys/dev/ioat/ioat.h user/ngie/socket-tests/sys/dev/sfxge/common/ef10_impl.h user/ngie/socket-tests/sys/dev/sfxge/common/efsys.h user/ngie/socket-tests/sys/dev/sfxge/common/efx.h user/ngie/socket-tests/sys/dev/sfxge/common/efx_check.h user/ngie/socket-tests/sys/dev/sfxge/common/efx_impl.h user/ngie/socket-tests/sys/dev/sfxge/common/efx_mac.c user/ngie/socket-tests/sys/dev/sfxge/common/efx_mcdi.c user/ngie/socket-tests/sys/dev/sfxge/common/efx_mcdi.h user/ngie/socket-tests/sys/dev/sfxge/common/efx_nic.c user/ngie/socket-tests/sys/dev/sfxge/common/efx_nvram.c user/ngie/socket-tests/sys/dev/sfxge/common/efx_phy.c user/ngie/socket-tests/sys/dev/sfxge/common/efx_rx.c user/ngie/socket-tests/sys/dev/sfxge/common/efx_tx.c user/ngie/socket-tests/sys/dev/sfxge/common/efx_vpd.c user/ngie/socket-tests/sys/dev/sfxge/common/hunt_ev.c user/ngie/socket-tests/sys/dev/sfxge/common/hunt_impl.h user/ngie/socket-tests/sys/dev/sfxge/common/hunt_mac.c user/ngie/socket-tests/sys/dev/sfxge/common/hunt_mcdi.c user/ngie/socket-tests/sys/dev/sfxge/common/hunt_nic.c user/ngie/socket-tests/sys/dev/sfxge/common/hunt_nvram.c user/ngie/socket-tests/sys/dev/sfxge/common/hunt_phy.c user/ngie/socket-tests/sys/dev/sfxge/common/hunt_tx.c user/ngie/socket-tests/sys/dev/sfxge/common/hunt_vpd.c user/ngie/socket-tests/sys/dev/sfxge/common/medford_impl.h user/ngie/socket-tests/sys/dev/sfxge/common/medford_nic.c user/ngie/socket-tests/sys/dev/sfxge/common/siena_impl.h user/ngie/socket-tests/sys/dev/sfxge/common/siena_mcdi.c user/ngie/socket-tests/sys/dev/sfxge/common/siena_nic.c user/ngie/socket-tests/sys/dev/sfxge/common/siena_nvram.c user/ngie/socket-tests/sys/dev/sfxge/common/siena_vpd.c user/ngie/socket-tests/sys/dev/sfxge/sfxge.h user/ngie/socket-tests/sys/dev/sfxge/sfxge_tx.c user/ngie/socket-tests/sys/dev/sfxge/sfxge_tx.h user/ngie/socket-tests/sys/dev/usb/usb_device.c user/ngie/socket-tests/sys/fs/nfs/nfs_var.h user/ngie/socket-tests/sys/fs/nfsclient/nfs_clport.c user/ngie/socket-tests/sys/fs/nfsclient/nfs_clrpcops.c user/ngie/socket-tests/sys/geom/geom_disk.c user/ngie/socket-tests/sys/i386/linux/linux_proto.h user/ngie/socket-tests/sys/i386/linux/linux_syscall.h user/ngie/socket-tests/sys/i386/linux/linux_syscalls.c user/ngie/socket-tests/sys/i386/linux/linux_sysent.c user/ngie/socket-tests/sys/i386/linux/syscalls.master user/ngie/socket-tests/sys/kern/kern_prot.c user/ngie/socket-tests/sys/kern/vfs_aio.c user/ngie/socket-tests/sys/modules/sfxge/Makefile user/ngie/socket-tests/sys/net/radix_mpath.c user/ngie/socket-tests/sys/net/route.c user/ngie/socket-tests/sys/net/route.h user/ngie/socket-tests/sys/netgraph/netflow/netflow.c user/ngie/socket-tests/sys/netinet/in_rmx.c user/ngie/socket-tests/sys/netinet/in_var.h user/ngie/socket-tests/sys/netinet/ip_mroute.c user/ngie/socket-tests/sys/netinet/sctp_pcb.c user/ngie/socket-tests/sys/netinet/sctp_usrreq.c user/ngie/socket-tests/sys/netinet/tcp_output.c user/ngie/socket-tests/sys/netinet6/sctp6_usrreq.c user/ngie/socket-tests/sys/powerpc/include/vmparam.h user/ngie/socket-tests/sys/sys/param.h user/ngie/socket-tests/sys/sys/ucred.h user/ngie/socket-tests/sys/xen/xenbus/xenbusvar.h user/ngie/socket-tests/tools/regression/sockets/accf_data_attach/accf_data_attach.c user/ngie/socket-tests/usr.bin/clang/clang/Makefile user/ngie/socket-tests/usr.bin/clang/lldb/Makefile user/ngie/socket-tests/usr.sbin/boot0cfg/boot0cfg.c Directory Properties: user/ngie/socket-tests/ (props changed) user/ngie/socket-tests/crypto/openssh/ (props changed) user/ngie/socket-tests/share/ (props changed) user/ngie/socket-tests/share/man/man4/ (props changed) user/ngie/socket-tests/sys/ (props changed) user/ngie/socket-tests/sys/boot/ (props changed) user/ngie/socket-tests/sys/cddl/contrib/opensolaris/ (props changed) user/ngie/socket-tests/sys/conf/ (props changed) Modified: user/ngie/socket-tests/crypto/openssh/readconf.c ============================================================================== --- user/ngie/socket-tests/crypto/openssh/readconf.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/crypto/openssh/readconf.c Fri Jan 15 22:49:20 2016 (r294106) @@ -1610,7 +1610,7 @@ initialize_options(Options * options) options->tun_remote = -1; options->local_command = NULL; options->permit_local_command = -1; - options->use_roaming = -1; + options->use_roaming = 0; options->visual_host_key = -1; options->ip_qos_interactive = -1; options->ip_qos_bulk = -1; @@ -1788,8 +1788,7 @@ fill_default_options(Options * options) options->tun_remote = SSH_TUNID_ANY; if (options->permit_local_command == -1) options->permit_local_command = 0; - if (options->use_roaming == -1) - options->use_roaming = 1; + options->use_roaming = 0; if (options->visual_host_key == -1) options->visual_host_key = 0; if (options->ip_qos_interactive == -1) Modified: user/ngie/socket-tests/etc/Makefile ============================================================================== --- user/ngie/socket-tests/etc/Makefile Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/etc/Makefile Fri Jan 15 22:49:20 2016 (r294106) @@ -82,10 +82,6 @@ BIN1+= apmd.conf BIN1+= auto_master .endif -.if ${MK_BSNMP} != "no" -BIN1+= snmpd.config -.endif - .if ${MK_FREEBSD_UPDATE} != "no" BIN1+= freebsd-update.conf .endif @@ -219,6 +215,11 @@ distribution: ${BIN2} ${DESTDIR}/etc; \ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \ master.passwd nsmb.conf opieaccess ${DESTDIR}/etc; +.if ${MK_BSNMP} != "no" + cd ${.CURDIR}; \ + ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \ + snmpd.config ${DESTDIR}/etc; +.endif .if ${MK_AT} == "no" sed -i "" -e 's;.*/usr/libexec/atrun;#&;' ${DESTDIR}/etc/crontab .endif Modified: user/ngie/socket-tests/etc/rc.d/mountcritlocal ============================================================================== --- user/ngie/socket-tests/etc/rc.d/mountcritlocal Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/etc/rc.d/mountcritlocal Fri Jan 15 22:49:20 2016 (r294106) @@ -36,15 +36,15 @@ mountcritlocal_start() done mount_excludes=${mount_excludes%,} - # Originally, root mount hold had to be released before mounting the root - # filesystem. This delayed the boot, so it was changed to only wait if - # the root device isn't readily available. This can result in this script - # executing before all the devices - such as graid(8) - are available. - # Thus, should the mount fail, we will wait for the root mount hold release - # and retry. + # Originally, root mount hold had to be released before mounting + # the root filesystem. This delayed the boot, so it was changed + # to only wait if the root device isn't readily available. This + # can result in this script executing before all the devices - such + # as graid(8) - are available. Thus, should the mount fail, + # we will wait for the root mount hold release and retry. mount -a -t ${mount_excludes} err=$? - if [ $? -ne 0 ]; then + if [ ${err} -ne 0 ]; then echo echo 'Mounting /etc/fstab filesystems failed,' \ 'will retry after root mount hold release' Modified: user/ngie/socket-tests/lib/clang/clang.lib.mk ============================================================================== --- user/ngie/socket-tests/lib/clang/clang.lib.mk Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/lib/clang/clang.lib.mk Fri Jan 15 22:49:20 2016 (r294106) @@ -6,4 +6,8 @@ LLVM_SRCS= ${.CURDIR}/../../../contrib/l INTERNALLIB= +.if ${MACHINE_CPUARCH} == "arm" +STATIC_CXXFLAGS+= -mlong-calls +.endif + .include Modified: user/ngie/socket-tests/lib/libc++/Makefile ============================================================================== --- user/ngie/socket-tests/lib/libc++/Makefile Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/lib/libc++/Makefile Fri Jan 15 22:49:20 2016 (r294106) @@ -6,6 +6,9 @@ _LIBCXXRTDIR= ${.CURDIR}/../../contrib/l HDRDIR= ${.CURDIR}/../../contrib/libc++/include SRCDIR= ${.CURDIR}/../../contrib/libc++/src CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR} +.if ${MACHINE_CPUARCH} == "arm" +STATIC_CXXFLAGS+= -mlong-calls +.endif .PATH: ${SRCDIR} Modified: user/ngie/socket-tests/lib/libkvm/kvm_arm.h ============================================================================== --- user/ngie/socket-tests/lib/libkvm/kvm_arm.h Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/lib/libkvm/kvm_arm.h Fri Jan 15 22:49:20 2016 (r294106) @@ -67,13 +67,16 @@ typedef uint32_t arm_pt_entry_t; #define ARM_L1_C_ADDR_MASK 0xfffffc00 /* phys address of L2 Table */ #define ARM_L2_TYPE_INV 0x00 /* Invalid (fault) */ -#define ARM_L2_TYPE_L 0x01 /* Large Page - 64k - not used yet*/ -#define ARM_L2_TYPE_S 0x02 /* Small Page - 4 */ +#define ARM_L2_TYPE_L 0x01 /* Large Page - 64k */ +#define ARM_L2_TYPE_S 0x02 /* Small Page - 4k */ +#define ARM_L2_TYPE_T 0x03 /* Tiny Page - 1k - not used */ #define ARM_L2_TYPE_MASK 0x03 #define ARM_L2_ADDR_BITS 0x000ff000 /* L2 PTE address bits */ #ifdef __arm__ +#include + _Static_assert(PAGE_SHIFT == ARM_PAGE_SHIFT, "PAGE_SHIFT mismatch"); _Static_assert(PAGE_SIZE == ARM_PAGE_SIZE, "PAGE_SIZE mismatch"); _Static_assert(PAGE_MASK == ARM_PAGE_MASK, "PAGE_MASK mismatch"); @@ -99,6 +102,9 @@ _Static_assert(L1_C_ADDR_MASK == ARM_L1_ _Static_assert(L2_TYPE_INV == ARM_L2_TYPE_INV, "L2_TYPE_INV mismatch"); _Static_assert(L2_TYPE_L == ARM_L2_TYPE_L, "L2_TYPE_L mismatch"); _Static_assert(L2_TYPE_S == ARM_L2_TYPE_S, "L2_TYPE_S mismatch"); +#if __ARM_ARCH < 6 +_Static_assert(L2_TYPE_T == ARM_L2_TYPE_T, "L2_TYPE_T mismatch"); +#endif _Static_assert(L2_TYPE_MASK == ARM_L2_TYPE_MASK, "L2_TYPE_MASK mismatch"); _Static_assert(L2_ADDR_BITS == ARM_L2_ADDR_BITS, "L2_ADDR_BITS mismatch"); #endif Modified: user/ngie/socket-tests/lib/libkvm/kvm_i386.h ============================================================================== --- user/ngie/socket-tests/lib/libkvm/kvm_i386.h Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/lib/libkvm/kvm_i386.h Fri Jan 15 22:49:20 2016 (r294106) @@ -70,7 +70,7 @@ _Static_assert(NBPDR == I386_NBPDR, "NBP _Static_assert(PG_V == I386_PG_V, "PG_V mismatch"); _Static_assert(PG_PS == I386_PG_PS, "PG_PS mismatch"); -_Static_assert(PG_FRAME == I386_PG_FRAME, "PG_FRAME mismatch"); +_Static_assert((u_int)PG_FRAME == I386_PG_FRAME, "PG_FRAME mismatch"); _Static_assert(PG_PS_FRAME == I386_PG_PS_FRAME, "PG_PS_FRAME mismatch"); #endif Modified: user/ngie/socket-tests/lib/libkvm/kvm_minidump_arm.c ============================================================================== --- user/ngie/socket-tests/lib/libkvm/kvm_minidump_arm.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/lib/libkvm/kvm_minidump_arm.c Fri Jan 15 22:49:20 2016 (r294106) @@ -112,6 +112,12 @@ _arm_minidump_initvtop(kvm_t *kd) vmst->hdr.bitmapsize = _kvm32toh(kd, vmst->hdr.bitmapsize); vmst->hdr.ptesize = _kvm32toh(kd, vmst->hdr.ptesize); vmst->hdr.kernbase = _kvm32toh(kd, vmst->hdr.kernbase); + vmst->hdr.arch = _kvm32toh(kd, vmst->hdr.arch); + vmst->hdr.mmuformat = _kvm32toh(kd, vmst->hdr.mmuformat); + if (vmst->hdr.mmuformat == MINIDUMP_MMU_FORMAT_UNKNOWN) { + /* This is a safe default as 1K pages are not used. */ + vmst->hdr.mmuformat = MINIDUMP_MMU_FORMAT_V6; + } /* Skip header and msgbuf */ off = ARM_PAGE_SIZE + arm_round_page(vmst->hdr.msgbufsize); @@ -179,19 +185,27 @@ _arm_minidump_kvatop(kvm_t *kd, kvaddr_t if (va >= vm->hdr.kernbase) { pteindex = (va - vm->hdr.kernbase) >> ARM_PAGE_SHIFT; pte = _kvm32toh(kd, ptemap[pteindex]); - if (!pte) { + if ((pte & ARM_L2_TYPE_MASK) == ARM_L2_TYPE_INV) { _kvm_err(kd, kd->program, "_arm_minidump_kvatop: pte not valid"); goto invalid; } if ((pte & ARM_L2_TYPE_MASK) == ARM_L2_TYPE_L) { - offset = va & ARM_L2_L_OFFSET; - a = pte & ARM_L2_L_FRAME; - } else if ((pte & ARM_L2_TYPE_MASK) == ARM_L2_TYPE_S) { + /* 64K page -> convert to be like 4K page */ + offset = va & ARM_L2_S_OFFSET; + a = (pte & ARM_L2_L_FRAME) + + (va & ARM_L2_L_OFFSET & ARM_L2_S_FRAME); + } else { + if (kd->vmst->hdr.mmuformat == MINIDUMP_MMU_FORMAT_V4 && + (pte & ARM_L2_TYPE_MASK) == ARM_L2_TYPE_T) { + _kvm_err(kd, kd->program, + "_arm_minidump_kvatop: pte not supported"); + goto invalid; + } + /* 4K page */ offset = va & ARM_L2_S_OFFSET; a = pte & ARM_L2_S_FRAME; - } else - goto invalid; + } ofs = _kvm_hpt_find(&vm->hpt, a); if (ofs == -1) { @@ -203,7 +217,6 @@ _arm_minidump_kvatop(kvm_t *kd, kvaddr_t *pa = ofs + offset; return (ARM_PAGE_SIZE - offset); - } else _kvm_err(kd, kd->program, "_arm_minidump_kvatop: virtual " "address 0x%jx not minidumped", (uintmax_t)va); Modified: user/ngie/socket-tests/lib/libmd/mdXhl.c ============================================================================== --- user/ngie/socket-tests/lib/libmd/mdXhl.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/lib/libmd/mdXhl.c Fri Jan 15 22:49:20 2016 (r294106) @@ -1,4 +1,5 @@ -/* mdXhl.c * ---------------------------------------------------------------------------- +/* mdXhl.c + * ---------------------------------------------------------------------------- * "THE BEER-WARE LICENSE" (Revision 42): * wrote this file. As long as you retain this notice you * can do whatever you want with this stuff. If we meet some day, and you think @@ -52,43 +53,44 @@ MDXFileChunk(const char *filename, char unsigned char buffer[16*1024]; MDX_CTX ctx; struct stat stbuf; - int f, i, e; - off_t n; + int fd, readrv, e; + off_t remain; - MDXInit(&ctx); - f = open(filename, O_RDONLY); - if (f < 0) - return 0; - if (fstat(f, &stbuf) < 0) { - i = -1; - goto error; + if (len < 0) { + errno = EINVAL; + return NULL; } - if (ofs > stbuf.st_size) - ofs = stbuf.st_size; - if ((len == 0) || (len > stbuf.st_size - ofs)) - len = stbuf.st_size - ofs; - if (lseek(f, ofs, SEEK_SET) < 0) { - i = -1; - goto error; + + MDXInit(&ctx); + fd = open(filename, O_RDONLY); + if (fd < 0) + return NULL; + if (ofs != 0) { + errno = 0; + if (lseek(fd, ofs, SEEK_SET) != ofs || + (ofs == -1 && errno != 0)) { + readrv = -1; + goto error; + } } - n = len; - i = 0; - while (n > 0) { - if (n > sizeof(buffer)) - i = read(f, buffer, sizeof(buffer)); + remain = len; + readrv = 0; + while (len == 0 || remain > 0) { + if (len == 0 || remain > sizeof(buffer)) + readrv = read(fd, buffer, sizeof(buffer)); else - i = read(f, buffer, n); - if (i <= 0) + readrv = read(fd, buffer, remain); + if (readrv <= 0) break; - MDXUpdate(&ctx, buffer, i); - n -= i; + MDXUpdate(&ctx, buffer, readrv); + remain -= readrv; } error: e = errno; - close(f); + close(fd); errno = e; - if (i < 0) - return 0; + if (readrv < 0) + return NULL; return (MDXEnd(&ctx, buf)); } Modified: user/ngie/socket-tests/share/man/man4/ddb.4 ============================================================================== --- user/ngie/socket-tests/share/man/man4/ddb.4 Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/share/man/man4/ddb.4 Fri Jan 15 22:49:20 2016 (r294106) @@ -60,7 +60,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 5, 2015 +.Dd January 14, 2016 .Dt DDB 4 .Os .Sh NAME @@ -1435,6 +1435,47 @@ The NMI allows one to break into the deb diagnose problems. Other bus' bridge chipsets may be able to generate NMI using bus specific methods. +There are many PCI and PCIe add-in cards which can generate NMI for +debugging. +Modern systems typically use IPMI to generate signals to enter the +debugger. +The +.Dv devel/ipmitool +port can be used to send the +.Cd chassis power diag +command which delivers an NMI to the processor. +.Pp +For serial consoles, you can break to the debugger by sending a BREAK +condition on the serial line if +.Cd options BREAK_TO_DEBUGGER +is specified in the kernel. +Most terminal emulation programs can send a break sequence with a +special key sequence or via a menu item. +However, in some setups, sending the break can be difficult to arrange +or happens spuriously, so if the kernel contains +.Cd options ALT_BREAK_TO_DEBUGGER +then the sequence of CR TILDE CTRL-B enters the debugger; +CR TILDE CTRL-P causes a panic instead of entering the +debugger; and +CR TILDE CTRL-R causes an immediate reboot. +In all the above sequences, CR is a Carriage Return and is usually +sent by hitting the Enter or Return key. +TILDE is the ASCII tilde character (~). +CTRL-x is Control x created by hitting the control key and then x +and then releasing both. +.Pp +The break to debugger behavior may also be enabled by setting the +.Xr sysctl 8 +.Dv debug.kdb.break_to_debugger +to 1. +The alt break to debugger behavior may also be enabled by setting the +.Xr sysctl 8 +.Dv debug.kdb.alt_break_to_debugger +to 1. +The debugger may be entered by setting the +.Xr sysctl 8 +.Dv debug.kdb.enter +to 1. .Sh FILES Header files mentioned in this manual page can be found below .Pa /usr/include Modified: user/ngie/socket-tests/share/man/man4/ioat.4 ============================================================================== --- user/ngie/socket-tests/share/man/man4/ioat.4 Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/share/man/man4/ioat.4 Fri Jan 15 22:49:20 2016 (r294106) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 7, 2016 +.Dd January 14, 2016 .Dt IOAT 4 .Os .Sh NAME @@ -134,7 +134,7 @@ Null operations do nothing, but may be u mechanism. .Pp All operations can optionally trigger an interrupt at completion with the -.Ar DMA_EN_INT +.Ar DMA_INT_EN flag. For example, a user might submit multiple operations to the same channel and only enable an interrupt and callback for the last operation. @@ -160,6 +160,17 @@ flag. .Ar DMA_NO_WAIT may return NULL.) .Pp +Operations that depend on the result of prior operations should use +.Ar DMA_FENCE . +For example, such a scenario can happen when two related DMA operations are +queued. +First, a DMA copy to one location (A), followed directly by a DMA copy +from A to B. +In this scenario, some classes of I/OAT hardware may prefetch A for the second +operation before it is written by the first operation. +To avoid reading a stale value in sequences of dependent operations, use +.Ar DMA_FENCE . +.Pp All operations, as well as .Fn ioat_get_dmaengine , can return NULL in special circumstances. Modified: user/ngie/socket-tests/share/man/man4/sfxge.4 ============================================================================== --- user/ngie/socket-tests/share/man/man4/sfxge.4 Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/share/man/man4/sfxge.4 Fri Jan 15 22:49:20 2016 (r294106) @@ -121,8 +121,10 @@ If a packet is dropped, the counter is incremented and the local sender receives ENOBUFS. The value must be greater than or equal to 0. .It Va hw.sfxge.tso_fw_assisted -Enable/disable usage of FW-assisted TSO if supported by NIC firmware. -Enabled by default. +Bitmask to enable/disable usage of FW-assisted TSO version if supported +by NIC firmware. +FATSOv1 (bit 0) and FATSOv2 (bit 1) are supported. +All enabled by default. .It Va hw.sfxge.N.max_rss_channels The maximum number of allocated RSS channels for the Nth adapter. If set to 0 or unset, the number of channels is determined by the number Modified: user/ngie/socket-tests/share/mk/bsd.dep.mk ============================================================================== --- user/ngie/socket-tests/share/mk/bsd.dep.mk Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/share/mk/bsd.dep.mk Fri Jan 15 22:49:20 2016 (r294106) @@ -170,12 +170,12 @@ DEPENDSRCS= ${SRCS:M*.[cSC]} ${SRCS:M*.c .if !empty(DEPENDSRCS) DEPENDOBJS+= ${DEPENDSRCS:R:S,$,.o,} .endif -.for __obj in ${DEPENDOBJS:O:u} +DEPENDFILES_OBJS= ${DEPENDOBJS:O:u:${DEPEND_FILTER}:C/^/${DEPENDFILE}./} .if ${.MAKEFLAGS:M-V} == "" -.sinclude "${DEPENDFILE}.${__obj:${DEPEND_FILTER}}" -.endif -DEPENDFILES_OBJS+= ${DEPENDFILE}.${__obj:${DEPEND_FILTER}} +.for __depend_obj in ${DEPENDFILES_OBJS} +.sinclude "${__depend_obj}" .endfor +.endif .endif # ${MK_FAST_DEPEND} == "yes" .endif # defined(SRCS) Modified: user/ngie/socket-tests/share/mk/bsd.sys.mk ============================================================================== --- user/ngie/socket-tests/share/mk/bsd.sys.mk Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/share/mk/bsd.sys.mk Fri Jan 15 22:49:20 2016 (r294106) @@ -164,10 +164,11 @@ SSP_CFLAGS?= -fstack-protector CFLAGS+= ${SSP_CFLAGS} .endif # SSP && !ARM && !MIPS -# Allow user-specified additional warning flags, plus compiler specific flag overrides. -# Unless we've overriden this... +# Allow user-specified additional warning flags, plus compiler and file +# specific flag overrides, unless we've overriden this... .if ${MK_WARNS} != "no" CFLAGS+= ${CWARNFLAGS} ${CWARNFLAGS.${COMPILER_TYPE}} +CFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} .endif CFLAGS+= ${CFLAGS.${COMPILER_TYPE}} Modified: user/ngie/socket-tests/sys/amd64/linux/linux_proto.h ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux/linux_proto.h Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux/linux_proto.h Fri Jan 15 22:49:20 2016 (r294106) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #ifndef _LINUX_SYSPROTO_H_ @@ -966,7 +966,7 @@ struct linux_set_robust_list_args { }; struct linux_get_robust_list_args { char pid_l_[PADL_(l_int)]; l_int pid; char pid_r_[PADR_(l_int)]; - char head_l_[PADL_(struct linux_robust_list_head *)]; struct linux_robust_list_head * head; char head_r_[PADR_(struct linux_robust_list_head *)]; + char head_l_[PADL_(struct linux_robust_list_head **)]; struct linux_robust_list_head ** head; char head_r_[PADR_(struct linux_robust_list_head **)]; char len_l_[PADL_(l_size_t *)]; l_size_t * len; char len_r_[PADR_(l_size_t *)]; }; struct linux_splice_args { Modified: user/ngie/socket-tests/sys/amd64/linux/linux_syscall.h ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux/linux_syscall.h Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux/linux_syscall.h Fri Jan 15 22:49:20 2016 (r294106) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #define LINUX_SYS_read 0 Modified: user/ngie/socket-tests/sys/amd64/linux/linux_syscalls.c ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux/linux_syscalls.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux/linux_syscalls.c Fri Jan 15 22:49:20 2016 (r294106) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ const char *linux_syscallnames[] = { Modified: user/ngie/socket-tests/sys/amd64/linux/linux_sysent.c ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux/linux_sysent.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux/linux_sysent.c Fri Jan 15 22:49:20 2016 (r294106) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #include Modified: user/ngie/socket-tests/sys/amd64/linux/linux_systrace_args.c ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux/linux_systrace_args.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux/linux_systrace_args.c Fri Jan 15 22:49:20 2016 (r294106) @@ -2020,7 +2020,7 @@ systrace_args(int sysnum, void *params, case 274: { struct linux_get_robust_list_args *p = params; iarg[0] = p->pid; /* l_int */ - uarg[1] = (intptr_t) p->head; /* struct linux_robust_list_head * */ + uarg[1] = (intptr_t) p->head; /* struct linux_robust_list_head ** */ uarg[2] = (intptr_t) p->len; /* l_size_t * */ *n_args = 3; break; @@ -5347,7 +5347,7 @@ systrace_entry_setargdesc(int sysnum, in p = "l_int"; break; case 1: - p = "struct linux_robust_list_head *"; + p = "struct linux_robust_list_head **"; break; case 2: p = "l_size_t *"; Modified: user/ngie/socket-tests/sys/amd64/linux/syscalls.master ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux/syscalls.master Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux/syscalls.master Fri Jan 15 22:49:20 2016 (r294106) @@ -461,8 +461,8 @@ 272 AUE_NULL STD { int linux_unshare(void); } 273 AUE_NULL STD { int linux_set_robust_list(struct linux_robust_list_head *head, \ l_size_t len); } -274 AUE_NULL STD { int linux_get_robust_list(l_int pid, struct linux_robust_list_head *head, \ - l_size_t *len); } +274 AUE_NULL STD { int linux_get_robust_list(l_int pid, \ + struct linux_robust_list_head **head, l_size_t *len); } 275 AUE_NULL STD { int linux_splice(void); } 276 AUE_NULL STD { int linux_tee(void); } 277 AUE_NULL STD { int linux_sync_file_range(void); } Modified: user/ngie/socket-tests/sys/amd64/linux32/linux32_proto.h ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux32/linux32_proto.h Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux32/linux32_proto.h Fri Jan 15 22:49:20 2016 (r294106) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #ifndef _LINUX32_SYSPROTO_H_ @@ -1023,7 +1023,7 @@ struct linux_set_robust_list_args { }; struct linux_get_robust_list_args { char pid_l_[PADL_(l_int)]; l_int pid; char pid_r_[PADR_(l_int)]; - char head_l_[PADL_(struct linux_robust_list_head *)]; struct linux_robust_list_head * head; char head_r_[PADR_(struct linux_robust_list_head *)]; + char head_l_[PADL_(struct linux_robust_list_head **)]; struct linux_robust_list_head ** head; char head_r_[PADR_(struct linux_robust_list_head **)]; char len_l_[PADL_(l_size_t *)]; l_size_t * len; char len_r_[PADR_(l_size_t *)]; }; struct linux_splice_args { Modified: user/ngie/socket-tests/sys/amd64/linux32/linux32_syscall.h ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux32/linux32_syscall.h Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux32/linux32_syscall.h Fri Jan 15 22:49:20 2016 (r294106) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #define LINUX32_SYS_linux_exit 1 Modified: user/ngie/socket-tests/sys/amd64/linux32/linux32_syscalls.c ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux32/linux32_syscalls.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux32/linux32_syscalls.c Fri Jan 15 22:49:20 2016 (r294106) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ const char *linux32_syscallnames[] = { Modified: user/ngie/socket-tests/sys/amd64/linux32/linux32_sysent.c ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux32/linux32_sysent.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux32/linux32_sysent.c Fri Jan 15 22:49:20 2016 (r294106) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #include "opt_compat.h" Modified: user/ngie/socket-tests/sys/amd64/linux32/linux32_systrace_args.c ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux32/linux32_systrace_args.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux32/linux32_systrace_args.c Fri Jan 15 22:49:20 2016 (r294106) @@ -2122,7 +2122,7 @@ systrace_args(int sysnum, void *params, case 312: { struct linux_get_robust_list_args *p = params; iarg[0] = p->pid; /* l_int */ - uarg[1] = (intptr_t) p->head; /* struct linux_robust_list_head * */ + uarg[1] = (intptr_t) p->head; /* struct linux_robust_list_head ** */ uarg[2] = (intptr_t) p->len; /* l_size_t * */ *n_args = 3; break; @@ -5551,7 +5551,7 @@ systrace_entry_setargdesc(int sysnum, in p = "l_int"; break; case 1: - p = "struct linux_robust_list_head *"; + p = "struct linux_robust_list_head **"; break; case 2: p = "l_size_t *"; Modified: user/ngie/socket-tests/sys/amd64/linux32/syscalls.master ============================================================================== --- user/ngie/socket-tests/sys/amd64/linux32/syscalls.master Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/amd64/linux32/syscalls.master Fri Jan 15 22:49:20 2016 (r294106) @@ -520,8 +520,8 @@ ; linux 2.6.17: 311 AUE_NULL STD { int linux_set_robust_list(struct linux_robust_list_head *head, \ l_size_t len); } -312 AUE_NULL STD { int linux_get_robust_list(l_int pid, struct linux_robust_list_head *head, \ - l_size_t *len); } +312 AUE_NULL STD { int linux_get_robust_list(l_int pid, \ + struct linux_robust_list_head **head, l_size_t *len); } 313 AUE_NULL STD { int linux_splice(void); } 314 AUE_NULL STD { int linux_sync_file_range(void); } 315 AUE_NULL STD { int linux_tee(void); } Modified: user/ngie/socket-tests/sys/arm/arm/minidump_machdep.c ============================================================================== --- user/ngie/socket-tests/sys/arm/arm/minidump_machdep.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/arm/arm/minidump_machdep.c Fri Jan 15 22:49:20 2016 (r294106) @@ -312,7 +312,12 @@ minidumpsys(struct dumperinfo *di) mdhdr.bitmapsize = vm_page_dump_size; mdhdr.ptesize = ptesize; mdhdr.kernbase = KERNBASE; - + mdhdr.arch = __ARM_ARCH; +#if __ARM_ARCH >= 6 + mdhdr.mmuformat = MINIDUMP_MMU_FORMAT_V6; +#else + mdhdr.mmuformat = MINIDUMP_MMU_FORMAT_V4; +#endif mkdumpheader(&kdh, KERNELDUMPMAGIC, KERNELDUMP_ARM_VERSION, dumpsize, di->blocksize); Modified: user/ngie/socket-tests/sys/arm/at91/at91_mci.c ============================================================================== --- user/ngie/socket-tests/sys/arm/at91/at91_mci.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/arm/at91/at91_mci.c Fri Jan 15 22:49:20 2016 (r294106) @@ -446,6 +446,9 @@ at91_mci_attach(device_t dev) CTLFLAG_RW, &sc->allow_overclock, 0, "Allow up to 30MHz clock for 25MHz request when next highest speed 15MHz or less."); + SYSCTL_ADD_UINT(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "debug", + CTLFLAG_RWTUN, &mci_debug, 0, "enable debug output"); + /* * Our real min freq is master_clock/512, but upper driver layers are * going to set the min speed during card discovery, and the right speed @@ -783,15 +786,6 @@ at91_mci_start_cmd(struct at91_mci_softc WR4(sc, PDC_PTCR, PDC_PTCR_RXTEN); } else { len = min(BBSIZE, remaining); - /* - * If this is MCI1 revision 2xx controller, apply - * a work-around for the "Data Write Operation and - * number of bytes" erratum. - */ - if ((sc->sc_cap & CAP_MCI1_REV2XX) && len < 12) { - len = 12; - memset(sc->bbuf_vaddr[0], 0, 12); - } at91_bswap_buf(sc, sc->bbuf_vaddr[0], data->data, len); err = bus_dmamap_load(sc->dmatag, sc->bbuf_map[0], sc->bbuf_vaddr[0], len, at91_mci_getaddr, @@ -800,8 +794,13 @@ at91_mci_start_cmd(struct at91_mci_softc panic("IO write dmamap_load failed\n"); bus_dmamap_sync(sc->dmatag, sc->bbuf_map[0], BUS_DMASYNC_PREWRITE); + /* + * Erratum workaround: PDC transfer length on a write + * must not be smaller than 12 bytes (3 words); only + * blklen bytes (set above) are actually transferred. + */ WR4(sc, PDC_TPR,paddr); - WR4(sc, PDC_TCR, len / 4); + WR4(sc, PDC_TCR, (len < 12) ? 3 : len / 4); sc->bbuf_len[0] = len; remaining -= len; if (remaining == 0) { @@ -818,7 +817,7 @@ at91_mci_start_cmd(struct at91_mci_softc bus_dmamap_sync(sc->dmatag, sc->bbuf_map[1], BUS_DMASYNC_PREWRITE); WR4(sc, PDC_TNPR, paddr); - WR4(sc, PDC_TNCR, len / 4); + WR4(sc, PDC_TNCR, (len < 12) ? 3 : len / 4); sc->bbuf_len[1] = len; remaining -= len; } Modified: user/ngie/socket-tests/sys/arm/at91/board_tsc4370.c ============================================================================== --- user/ngie/socket-tests/sys/arm/at91/board_tsc4370.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/arm/at91/board_tsc4370.c Fri Jan 15 22:49:20 2016 (r294106) @@ -70,6 +70,10 @@ WR4HW(uint32_t devbase, uint32_t regoff, *(volatile uint32_t *)(AT91_BASE + devbase + regoff) = val; } +/* + * This is the same calculation the at91 uart driver does, we use it to update + * the console uart baud rate after changing the MCK rate. + */ #ifndef BAUD2DIVISOR #define BAUD2DIVISOR(b) \ ((((at91_master_clock * 10) / ((b) * 16)) + 5) / 10) @@ -96,34 +100,6 @@ static struct arm_boot_params boot_param static struct tsc_bootinfo inkernel_bootinfo; /* - * Override the default boot param parser (supplied via weak linkage) with one - * that knows how to handle our custom tsc_bootinfo passed in from boot2. - */ -vm_offset_t -parse_boot_param(struct arm_boot_params *abp) -{ - - boot_params = *abp; - - /* - * If the right magic is in r0 and a non-NULL pointer is in r1, then - * it's our bootinfo, copy it. The pointer in r1 is a physical address - * passed from boot2. This routine is called immediately upon entry to - * initarm() and is in very nearly the same environment as boot2. In - * particular, va=pa and we can safely copy the args before we lose easy - * access to the memory they're stashed in right now. - * - * Note that all versions of boot2 that we've ever shipped have put - * zeroes into r2 and r3. Maybe that'll be useful some day. - */ - if (abp->abp_r0 == TSC_BOOTINFO_MAGIC && abp->abp_r1 != 0) { - inkernel_bootinfo = *(struct tsc_bootinfo *)(abp->abp_r1); - } - - return fake_preload_metadata(abp); -} - -/* * Change the master clock config and wait for it to stabilize. */ static void @@ -516,6 +492,8 @@ board_init(void) */ master_clock_init(); + /* From this point on you can use printf. */ + /* * Configure UARTs. */ @@ -598,5 +576,33 @@ board_init(void) return (at91_ramsize()); } +/* + * Override the default boot param parser (supplied via weak linkage) with one + * that knows how to handle our custom tsc_bootinfo passed in from boot2. + */ +vm_offset_t +parse_boot_param(struct arm_boot_params *abp) +{ + + boot_params = *abp; + + /* + * If the right magic is in r0 and a non-NULL pointer is in r1, then + * it's our bootinfo, copy it. The pointer in r1 is a physical address + * passed from boot2. This routine is called immediately upon entry to + * initarm() and is in very nearly the same environment as boot2. In + * particular, va=pa and we can safely copy the args before we lose easy + * access to the memory they're stashed in right now. + * + * Note that all versions of boot2 that we've ever shipped have put + * zeroes into r2 and r3. Maybe that'll be useful some day. + */ + if (abp->abp_r0 == TSC_BOOTINFO_MAGIC && abp->abp_r1 != 0) { + inkernel_bootinfo = *(struct tsc_bootinfo *)(abp->abp_r1); + } + + return fake_preload_metadata(abp); +} + ARM_BOARD(NONE, "TSC4370 Controller Board"); Modified: user/ngie/socket-tests/sys/arm/conf/IMX53 ============================================================================== --- user/ngie/socket-tests/sys/arm/conf/IMX53 Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/arm/conf/IMX53 Fri Jan 15 22:49:20 2016 (r294106) @@ -136,11 +136,3 @@ device wlan_amrr # AMRR transmit rate # Flattened Device Tree options FDT # Configure using FDT/DTB data - -# NOTE: serial console will be disabled if syscons enabled -# Uncomment following lines for framebuffer/syscons support -#device sc -#device vt -#device kbdmux -#options SC_DFLT_FONT # compile font in -#makeoptions SC_DFLT_FONT=cp437 Modified: user/ngie/socket-tests/sys/arm/conf/IMX6 ============================================================================== --- user/ngie/socket-tests/sys/arm/conf/IMX6 Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/arm/conf/IMX6 Fri Jan 15 22:49:20 2016 (r294106) @@ -125,14 +125,6 @@ device u3g # USB modems #device wlan_tkip # 802.11 TKIP support #device wlan_amrr # AMRR transmit rate control algorithm -# NOTE: serial console will be disabled if syscons enabled -# Uncomment following lines for framebuffer/syscons support -# Wandboard has no video console support yet. -#device sc -#device kbdmux -#options SC_DFLT_FONT # compile font in -#makeoptions SC_DFLT_FONT=cp437 - device vt device kbdmux device ukbd Modified: user/ngie/socket-tests/sys/arm/include/minidump.h ============================================================================== --- user/ngie/socket-tests/sys/arm/include/minidump.h Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/arm/include/minidump.h Fri Jan 15 22:49:20 2016 (r294106) @@ -28,11 +28,18 @@ */ #ifndef _MACHINE_MINIDUMP_H_ -#define _MACHINE_MINIDUMP_H_ 1 +#define _MACHINE_MINIDUMP_H_ #define MINIDUMP_MAGIC "minidump FreeBSD/arm" #define MINIDUMP_VERSION 1 +/* + * The first page of vmcore is dedicated to the following header. + * As the rest of the page is zeroed, any header extension can be + * done without version bumping. It should be taken into account + * only that new entries will be zero in old vmcores. + */ + struct minidumphdr { char magic[24]; uint32_t version; @@ -40,6 +47,13 @@ struct minidumphdr { uint32_t bitmapsize; uint32_t ptesize; uint32_t kernbase; + uint32_t arch; + uint32_t mmuformat; }; +#define MINIDUMP_MMU_FORMAT_UNKNOWN 0 +#define MINIDUMP_MMU_FORMAT_V4 1 +#define MINIDUMP_MMU_FORMAT_V6 2 +#define MINIDUMP_MMU_FORMAT_V6_LPAE 3 + #endif /* _MACHINE_MINIDUMP_H_ */ Modified: user/ngie/socket-tests/sys/boot/common/bootstrap.h ============================================================================== --- user/ngie/socket-tests/sys/boot/common/bootstrap.h Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/boot/common/bootstrap.h Fri Jan 15 22:49:20 2016 (r294106) @@ -237,7 +237,7 @@ void unload(void); struct preloaded_file *file_alloc(void); struct preloaded_file *file_findfile(const char *name, const char *type); struct file_metadata *file_findmetadata(struct preloaded_file *fp, int type); -struct preloaded_file *file_loadraw(char *name, char *type, int insert); +struct preloaded_file *file_loadraw(const char *name, char *type, int insert); void file_discard(struct preloaded_file *fp); void file_addmetadata(struct preloaded_file *fp, int type, size_t size, void *p); int file_addmodule(struct preloaded_file *fp, char *modname, int version, Modified: user/ngie/socket-tests/sys/boot/common/module.c ============================================================================== --- user/ngie/socket-tests/sys/boot/common/module.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/boot/common/module.c Fri Jan 15 22:49:20 2016 (r294106) @@ -388,14 +388,14 @@ file_load_dependencies(struct preloaded_ } /* - * We've been asked to load (name) as (type), so just suck it in, + * We've been asked to load (fname) as (type), so just suck it in, * no arguments or anything. */ struct preloaded_file * -file_loadraw(char *name, char *type, int insert) +file_loadraw(const char *fname, char *type, int insert) { struct preloaded_file *fp; - char *cp; + char *name; int fd, got; vm_offset_t laddr; @@ -406,12 +406,11 @@ file_loadraw(char *name, char *type, int } /* locate the file on the load path */ - cp = file_search(name, NULL); - if (cp == NULL) { - sprintf(command_errbuf, "can't find '%s'", name); + name = file_search(fname, NULL); + if (name == NULL) { + sprintf(command_errbuf, "can't find '%s'", fname); return(NULL); } - name = cp; if ((fd = open(name, O_RDONLY)) < 0) { sprintf(command_errbuf, "can't open '%s': %s", name, strerror(errno)); Modified: user/ngie/socket-tests/sys/boot/common/ufsread.c ============================================================================== --- user/ngie/socket-tests/sys/boot/common/ufsread.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/boot/common/ufsread.c Fri Jan 15 22:49:20 2016 (r294106) @@ -187,8 +187,15 @@ fsread(ufs_ino_t inode, void *buf, size_ blkbuf = dmadat->blkbuf; indbuf = dmadat->indbuf; - if (!dsk_meta) { + + /* + * Force probe if inode is zero to ensure we have a valid fs, otherwise + * when probing multiple paritions, reads from subsequent parititions + * will incorrectly succeed. + */ + if (!dsk_meta || inode == 0) { inomap = 0; + dsk_meta = 0; for (n = 0; sblock_try[n] != -1; n++) { if (dskread(dmadat->sbbuf, sblock_try[n] / DEV_BSIZE, SBLOCKSIZE / DEV_BSIZE)) Modified: user/ngie/socket-tests/sys/boot/efi/Makefile ============================================================================== --- user/ngie/socket-tests/sys/boot/efi/Makefile Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/boot/efi/Makefile Fri Jan 15 22:49:20 2016 (r294106) @@ -2,7 +2,8 @@ .include -SUBDIR= libefi +# In-tree GCC does not support __attribute__((ms_abi)). +.if ${COMPILER_TYPE} != "gcc" .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "arm" .if ${MK_FDT} != "no" @@ -13,7 +14,10 @@ SUBDIR+= fdt .if ${MACHINE_CPUARCH} == "aarch64" || \ ${MACHINE_CPUARCH} == "amd64" || \ ${MACHINE_CPUARCH} == "arm" -SUBDIR+= loader boot1 +SUBDIR+= libefi loader boot1 .endif +.endif # ${COMPILER_TYPE} != "gcc" + .include + Modified: user/ngie/socket-tests/sys/boot/efi/boot1/Makefile ============================================================================== --- user/ngie/socket-tests/sys/boot/efi/boot1/Makefile Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/boot/efi/boot1/Makefile Fri Jan 15 22:49:20 2016 (r294106) @@ -2,10 +2,7 @@ MAN= -.include - -# In-tree GCC does not support __attribute__((ms_abi)). -.if ${COMPILER_TYPE} != "gcc" +.include MK_SSP= no @@ -13,14 +10,35 @@ PROG= boot1.sym INTERNALPROG= WARNS?= 6 +.if ${MK_ZFS} != "no" +# Disable warnings that are currently incompatible with the zfs boot code +CWARNFLAGS.zfs_module.c += -Wno-array-bounds +CWARNFLAGS.zfs_module.c += -Wno-cast-align +CWARNFLAGS.zfs_module.c += -Wno-cast-qual +CWARNFLAGS.zfs_module.c += -Wno-missing-prototypes +CWARNFLAGS.zfs_module.c += -Wno-sign-compare +CWARNFLAGS.zfs_module.c += -Wno-unused-parameter +CWARNFLAGS.zfs_module.c += -Wno-unused-function +.endif + # architecture-specific loader code -SRCS= boot1.c self_reloc.c start.S +SRCS= boot1.c self_reloc.c start.S ufs_module.c +.if ${MK_ZFS} != "no" +SRCS+= zfs_module.c +.endif CFLAGS+= -I. CFLAGS+= -I${.CURDIR}/../include CFLAGS+= -I${.CURDIR}/../include/${MACHINE} CFLAGS+= -I${.CURDIR}/../../../contrib/dev/acpica/include CFLAGS+= -I${.CURDIR}/../../.. +CFLAGS+= -DEFI_UFS_BOOT + +.if ${MK_ZFS} != "no" +CFLAGS+= -I${.CURDIR}/../../zfs/ +CFLAGS+= -I${.CURDIR}/../../../cddl/boot/zfs/ +CFLAGS+= -DEFI_ZFS_BOOT +.endif # Always add MI sources and REGULAR efi loader bits .PATH: ${.CURDIR}/../loader/arch/${MACHINE} @@ -96,8 +114,6 @@ boot1.efifat: boot1.efi CLEANFILES= boot1.efi boot1.efifat -.endif # ${COMPILER_TYPE} != "gcc" - .include beforedepend ${OBJS}: machine Modified: user/ngie/socket-tests/sys/boot/efi/boot1/boot1.c ============================================================================== --- user/ngie/socket-tests/sys/boot/efi/boot1/boot1.c Fri Jan 15 22:08:58 2016 (r294105) +++ user/ngie/socket-tests/sys/boot/efi/boot1/boot1.c Fri Jan 15 22:49:20 2016 (r294106) @@ -5,6 +5,8 @@ * All rights reserved. * Copyright (c) 2014 Nathan Whitehorn * All rights reserved. + * Copyright (c) 2015 Eric McCorkle + * All rights reserved. * * Redistribution and use in source and binary forms are freely * permitted provided that the above copyright notice and this @@ -21,7 +23,6 @@ __FBSDID("$FreeBSD$"); #include -#include #include #include #include @@ -29,19 +30,32 @@ __FBSDID("$FreeBSD$"); #include #include +#include "boot_module.h" + #define _PATH_LOADER "/boot/loader.efi" -#define _PATH_KERNEL "/boot/kernel/kernel" -#define BSIZEMAX 16384 +static const boot_module_t *boot_modules[] = *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***