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/...
Garrett Cooper
ngie at FreeBSD.org
Fri Jan 15 22:49:26 UTC 2016
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 <bsd.lib.mk>
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 <machine/acle-compat.h>
+
_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):
* <phk at FreeBSD.org> 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 <sys/param.h>
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 <src.opts.mk>
-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 <bsd.subdir.mk>
+
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 <bsd.own.mk>
-
-# In-tree GCC does not support __attribute__((ms_abi)).
-.if ${COMPILER_TYPE} != "gcc"
+.include <src.opts.mk>
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 <bsd.prog.mk>
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 <sys/param.h>
-#include <sys/dirent.h>
#include <machine/elf.h>
#include <machine/stdarg.h>
#include <stand.h>
@@ -29,19 +30,32 @@ __FBSDID("$FreeBSD$");
#include <efi.h>
#include <eficonsctl.h>
+#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 ***
More information about the svn-src-user
mailing list