svn commit: r218545 - in head/share/examples/kld: . khelp
Author: lstewart Date: Fri Feb 11 07:26:17 2011 New Revision: 218545 URL: http://svn.freebsd.org/changeset/base/218545 Log: Add an example Khelp module, which will be referenced in the forthcoming Khelp documentation. Sponsored by: FreeBSD Foundation Discussed with: David Hayes MFC after:5 weeks X-MFC with: r216615 Added: head/share/examples/kld/khelp/ head/share/examples/kld/khelp/Makefile (contents, props changed) head/share/examples/kld/khelp/README (contents, props changed) head/share/examples/kld/khelp/h_example.c (contents, props changed) Modified: head/share/examples/kld/Makefile Modified: head/share/examples/kld/Makefile == --- head/share/examples/kld/MakefileFri Feb 11 06:35:53 2011 (r218544) +++ head/share/examples/kld/MakefileFri Feb 11 07:26:17 2011 (r218545) @@ -67,6 +67,6 @@ # $FreeBSD$ # -SUBDIR=cdev dyn_sysctl firmware syscall +SUBDIR=cdev dyn_sysctl firmware khelp syscall .include Added: head/share/examples/kld/khelp/Makefile == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/examples/kld/khelp/Makefile Fri Feb 11 07:26:17 2011 (r218545) @@ -0,0 +1,11 @@ +# $FreeBSD$ + +.include + +# Change if the src tree you are compiling for is not in /usr/src +#SYSDIR=/usr/src/sys + +KMOD= h_example +SRCS= h_example.c + +.include Added: head/share/examples/kld/khelp/README == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/examples/kld/khelp/READMEFri Feb 11 07:26:17 2011 (r218545) @@ -0,0 +1,6 @@ +$FreeBSD$ + +An example Khelp module which uses the helper hook points available in the TCP +stack to calculate a per-connection count of inbound and outbound packets when +the connection is in the established state. The code is verbosely documented in +an attempt to explain how everything fits together. Added: head/share/examples/kld/khelp/h_example.c == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/examples/kld/khelp/h_example.c Fri Feb 11 07:26:17 2011 (r218545) @@ -0,0 +1,154 @@ +/*- + * Copyright (c) 2010-2011 The FreeBSD Foundation + * All rights reserved. + * + * This software was developed at the Centre for Advanced Internet + * Architectures, Swinburne University of Technology, Melbourne, Australia by + * Lawrence Stewart under sponsorship from the FreeBSD Foundation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * This example Khelp module uses the helper hook points available in the TCP + * stack to calculate a per-connection count of inbound and outbound packets + * when the connection is in the established state. The code is verbosely + * documented in an attempt to explain how everything fits together. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +/* + * Function prototype for our helper hook (man 9 hhook) compatible hook + * function. + */ +static int example_hook(int hhook_type, int hhook_id, void *udata, +void *ctx_data, void *hdata, struct osd *hosd); + +/* + * Our per-connection persistent data storage struct. + */ +struct example { + uint32_t est_in_count; + uint32_t est_out_count; +}; + +/* + * Fill in the required bits of our module's struct helper (defined in
svn commit: r218544 - head/usr.sbin/config
Author: imp Date: Fri Feb 11 06:35:53 2011 New Revision: 218544 URL: http://svn.freebsd.org/changeset/base/218544 Log: Generate MACHINE= and MACHINE_ARCH= lines based on the machine directive. Once this is MFC'd, we can move these out of the template files where they are (incosnsitently) defined. MFC after:1 week Modified: head/usr.sbin/config/configvers.h head/usr.sbin/config/mkmakefile.c Modified: head/usr.sbin/config/configvers.h == --- head/usr.sbin/config/configvers.h Fri Feb 11 05:57:33 2011 (r218543) +++ head/usr.sbin/config/configvers.h Fri Feb 11 06:35:53 2011 (r218544) @@ -49,5 +49,5 @@ * * $FreeBSD$ */ -#defineCONFIGVERS 600011 +#defineCONFIGVERS 600012 #defineMAJOR_VERS(x) ((x) / 10) Modified: head/usr.sbin/config/mkmakefile.c == --- head/usr.sbin/config/mkmakefile.c Fri Feb 11 05:57:33 2011 (r218543) +++ head/usr.sbin/config/mkmakefile.c Fri Feb 11 06:35:53 2011 (r218544) @@ -140,6 +140,8 @@ makefile(void) if (ofp == 0) err(1, "%s", path("Makefile.new")); fprintf(ofp, "KERN_IDENT=%s\n", ident); + fprintf(ofp, "MACHINE=%s\n", machinename); + fprintf(ofp, "MACHINE_ARCH=%s\n", machinearch); SLIST_FOREACH_SAFE(op, &mkopt, op_next, t) { fprintf(ofp, "%s=%s", op->op_name, op->op_value); while ((op = SLIST_NEXT(op, op_append)) != NULL) ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r217871 - head/sbin/mount
On 01/28/2011 01:06, Bruce Evans wrote: The solaris server behaviour can't happen, except accidentally due to races :-). Since the FreeBSD client doesn't support the noatime flag except to ignore it, it can't tell any server about it. I don't mean to be a pest, but I'm confused as to why I observed what I observed if this is the case. I tested it a couple of times each way, so I'm confident that I saw a difference with and without noatime when mounting a solaris server. Doug -- Nothin' ever doesn't change, but nothin' changes much. -- OK Go Breadth of IT experience, and depth of knowledge in the DNS. Yours for the right price. :) http://SupersetSolutions.com/ ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218538 - head/sys/conf
Author: imp Date: Fri Feb 11 05:50:28 2011 New Revision: 218538 URL: http://svn.freebsd.org/changeset/base/218538 Log: whitespace nit. Modified: head/sys/conf/kern.pre.mk Modified: head/sys/conf/kern.pre.mk == --- head/sys/conf/kern.pre.mk Fri Feb 11 05:48:44 2011(r218537) +++ head/sys/conf/kern.pre.mk Fri Feb 11 05:50:28 2011(r218538) @@ -15,7 +15,7 @@ KODIR?= /boot/${KERNEL} LDSCRIPT_NAME?=ldscript.$M LDSCRIPT?= $S/conf/${LDSCRIPT_NAME} -M= ${MACHINE_CPUARCH} +M= ${MACHINE_CPUARCH} AWK?= awk LINT?= lint ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218535 - head/usr.bin/stat
Author: dougb Date: Fri Feb 11 05:33:35 2011 New Revision: 218535 URL: http://svn.freebsd.org/changeset/base/218535 Log: Synthesize the change from NetBSD's 1.33: "Do not crash if a date cannot be represented (localtime returning NULL), use the Epoch value instead." Obtained from: nj...@netbsd.org Modified: head/usr.bin/stat/stat.c Modified: head/usr.bin/stat/stat.c == --- head/usr.bin/stat/stat.cFri Feb 11 04:03:39 2011(r218534) +++ head/usr.bin/stat/stat.cFri Feb 11 05:33:35 2011(r218535) @@ -30,7 +30,7 @@ #include #if 0 #ifndef lint -__RCSID("$NetBSD: stat.c,v 1.31 2010/12/16 05:30:16 dholland Exp $" +__RCSID("$NetBSD: stat.c,v 1.33 2011/01/15 22:54:10 njoly Exp $" "$OpenBSD: stat.c,v 1.14 2009/06/24 09:44:25 sobrado Exp $"); #endif #endif @@ -731,6 +731,10 @@ format1(const struct stat *st, small = (sizeof(ts.tv_sec) == 4); data = ts.tv_sec; tm = localtime(&ts.tv_sec); + if (tm == NULL) { + ts.tv_sec = 0; + tm = localtime(&ts.tv_sec); + } (void)strftime(path, sizeof(path), timefmt, tm); sdata = path; formats = FMTF_DECIMAL | FMTF_OCTAL | FMTF_UNSIGNED | FMTF_HEX | ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218534 - head
Author: imp Date: Fri Feb 11 04:03:39 2011 New Revision: 218534 URL: http://svn.freebsd.org/changeset/base/218534 Log: Hmmm, specifying TARGET and TARGET_ARCH in the environment doesn't seem to work when building xdev anymore (most likely my changes lately moving the TARGET guessing stuff to Makefile from Makefile.inc1, but I really don't grok why). Fix make xdev by putting them on the command line. This will work either way while I try to figure it out. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 == --- head/Makefile.inc1 Fri Feb 11 02:37:47 2011(r218533) +++ head/Makefile.inc1 Fri Feb 11 04:03:39 2011(r218534) @@ -1439,13 +1439,13 @@ XDEV_CPUTYPE?=${TARGET_CPUTYPE} NOFUN=-DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \ -DWITHOUT_MAN -DWITHOUT_NLS -DWITHOUT_PROFILE \ - -DWITHOUT_KERBEROS -DWITHOUT_RESCUE -DNO_WARNS - -XDDIR=${XDEV}-freebsd -XDTP=/usr/${XDDIR} -CDBENV=MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/${XDDIR} \ + -DWITHOUT_KERBEROS -DWITHOUT_RESCUE -DNO_WARNS \ TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \ CPUTYPE=${XDEV_CPUTYPE} + +XDDIR=${XDEV_ARCH}-freebsd +XDTP=/usr/${XDDIR} +CDBENV=MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/${XDDIR} CDENV= ${CDBENV} \ _SHLIBDIRPREFIX=${XDTP} \ TOOLS_PREFIX=${XDTP} @@ -1467,7 +1467,7 @@ xdev: xdev-build xdev-install xdev-build: _xb-build-tools _xb-cross-tools _xb-build-tools: - ${_+_}cd ${.CURDIR}; \ + ${_+_}@cd ${.CURDIR}; \ ${CDBENV} ${MAKE} -f Makefile.inc1 ${NOFUN} build-tools _xb-cross-tools: ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218533 - head
Author: imp Date: Fri Feb 11 02:37:47 2011 New Revision: 218533 URL: http://svn.freebsd.org/changeset/base/218533 Log: CPUTYPE is now a required define for calling Makefile.inc1 diretly, so make sure we define it for the xdev stuff. Move xdev stuff to be last again in this file. # xdev-build works now, but xdev-install appears to be broken though. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 == --- head/Makefile.inc1 Fri Feb 11 02:34:26 2011(r218532) +++ head/Makefile.inc1 Fri Feb 11 02:37:47 2011(r218533) @@ -1389,11 +1389,54 @@ check-old: check-old-files check-old-lib showconfig: @${MAKE} -n -f bsd.own.mk -V dummy -dg1 | grep ^MK_ | sort +.if !empty(KRNLOBJDIR) && !empty(KERNCONF) +DTBOUTPUTPATH= ${KRNLOBJDIR}/${KERNCONF}/ + +.if !defined(FDT_DTS_FILE) || empty(FDT_DTS_FILE) +.if exists(${KERNCONFDIR}/${KERNCONF}) +FDT_DTS_FILE!= awk 'BEGIN {FS="="} /^makeoptions[[:space:]]+FDT_DTS_FILE/ {print $$2}' \ + ${KERNCONFDIR}/${KERNCONF} +.endif +.endif + +.endif + +.if !defined(DTBOUTPUTPATH) || !exists(${DTBOUTPUTPATH}) +DTBOUTPUTPATH= ${.CURDIR} +.endif + +# +# Build 'standalone' Device Tree Blob +# +builddtb: + @if [ "${FDT_DTS_FILE}" = "" ]; then \ + echo "ERROR: FDT_DTS_FILE must be specified!"; \ + exit 1; \ + fi; \ + if [ ! -f ${.CURDIR}/sys/boot/fdt/dts/${FDT_DTS_FILE} ]; then \ + echo "ERROR: Specified DTS file (${FDT_DTS_FILE}) does not \ + exist!"; \ + exit 1; \ + fi; \ + if [ "${DTBOUTPUTPATH}" = "${.CURDIR}" ]; then \ + echo "WARNING: DTB will be placed in the current working \ + directory"; \ + fi + @PATH=${TMPPATH} \ + dtc -O dtb -o \ + ${DTBOUTPUTPATH}/`echo ${FDT_DTS_FILE} | cut -d. -f1`.dtb -b 0 \ + -p 1024 ${.CURDIR}/sys/boot/fdt/dts/${FDT_DTS_FILE} ### .if defined(XDEV) && defined(XDEV_ARCH) +.if ${XDEV} == ${MACHINE} && ${XDEV_ARCH} == ${MACHINE_ARCH} +XDEV_CPUTYPE?=${CPUTYPE} +.else +XDEV_CPUTYPE?=${TARGET_CPUTYPE} +.endif + NOFUN=-DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \ -DWITHOUT_MAN -DWITHOUT_NLS -DWITHOUT_PROFILE \ -DWITHOUT_KERBEROS -DWITHOUT_RESCUE -DNO_WARNS @@ -1401,7 +1444,8 @@ NOFUN=-DNO_FSCHG -DWITHOUT_HTML -DWITHOU XDDIR=${XDEV}-freebsd XDTP=/usr/${XDDIR} CDBENV=MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/${XDDIR} \ - TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} + TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \ + CPUTYPE=${XDEV_CPUTYPE} CDENV= ${CDBENV} \ _SHLIBDIRPREFIX=${XDTP} \ TOOLS_PREFIX=${XDTP} @@ -1477,41 +1521,3 @@ _xi-links: ../../../../usr/bin/${XDDIR}${OSREL}-$$i; \ done .endif - -.if !empty(KRNLOBJDIR) && !empty(KERNCONF) -DTBOUTPUTPATH= ${KRNLOBJDIR}/${KERNCONF}/ - -.if !defined(FDT_DTS_FILE) || empty(FDT_DTS_FILE) -.if exists(${KERNCONFDIR}/${KERNCONF}) -FDT_DTS_FILE!= awk 'BEGIN {FS="="} /^makeoptions[[:space:]]+FDT_DTS_FILE/ {print $$2}' \ - ${KERNCONFDIR}/${KERNCONF} -.endif -.endif - -.endif - -.if !defined(DTBOUTPUTPATH) || !exists(${DTBOUTPUTPATH}) -DTBOUTPUTPATH= ${.CURDIR} -.endif - -# -# Build 'standalone' Device Tree Blob -# -builddtb: - @if [ "${FDT_DTS_FILE}" = "" ]; then \ - echo "ERROR: FDT_DTS_FILE must be specified!"; \ - exit 1; \ - fi; \ - if [ ! -f ${.CURDIR}/sys/boot/fdt/dts/${FDT_DTS_FILE} ]; then \ - echo "ERROR: Specified DTS file (${FDT_DTS_FILE}) does not \ - exist!"; \ - exit 1; \ - fi; \ - if [ "${DTBOUTPUTPATH}" = "${.CURDIR}" ]; then \ - echo "WARNING: DTB will be placed in the current working \ - directory"; \ - fi - @PATH=${TMPPATH} \ - dtc -O dtb -o \ - ${DTBOUTPUTPATH}/`echo ${FDT_DTS_FILE} | cut -d. -f1`.dtb -b 0 \ - -p 1024 ${.CURDIR}/sys/boot/fdt/dts/${FDT_DTS_FILE} ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218532 - head/lib/libpmc
Author: imp Date: Fri Feb 11 02:34:26 2011 New Revision: 218532 URL: http://svn.freebsd.org/changeset/base/218532 Log: Revert last commit: CPUTYPE will be defined here Modified: head/lib/libpmc/Makefile Modified: head/lib/libpmc/Makefile == --- head/lib/libpmc/MakefileFri Feb 11 02:24:04 2011(r218531) +++ head/lib/libpmc/MakefileFri Feb 11 02:34:26 2011(r218532) @@ -38,7 +38,7 @@ MAN+= pmc.corei7uc.3 MAN+= pmc.westmere.3 MAN+= pmc.westmereuc.3 MAN+= pmc.tsc.3 -.elif ${MACHINE_CPUARCH} == "arm" && defined(CPUTYPE) && ${CPUTYPE} == "xscale" +.elif ${MACHINE_CPUARCH} == "arm" && ${CPUTYPE} == "xscale" MAN+= pmc.xscale.3 .endif ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218531 - head/lib/libpmc
Author: imp Date: Fri Feb 11 02:24:04 2011 New Revision: 218531 URL: http://svn.freebsd.org/changeset/base/218531 Log: Don't require CPUTYPE to be defined for ARM, but use it if it is. Modified: head/lib/libpmc/Makefile Modified: head/lib/libpmc/Makefile == --- head/lib/libpmc/MakefileFri Feb 11 01:00:26 2011(r218530) +++ head/lib/libpmc/MakefileFri Feb 11 02:24:04 2011(r218531) @@ -38,7 +38,7 @@ MAN+= pmc.corei7uc.3 MAN+= pmc.westmere.3 MAN+= pmc.westmereuc.3 MAN+= pmc.tsc.3 -.elif ${MACHINE_CPUARCH} == "arm" && ${CPUTYPE} == "xscale" +.elif ${MACHINE_CPUARCH} == "arm" && defined(CPUTYPE) && ${CPUTYPE} == "xscale" MAN+= pmc.xscale.3 .endif ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218530 - head/sys/dev/e1000
Author: jfv Date: Fri Feb 11 01:00:26 2011 New Revision: 218530 URL: http://svn.freebsd.org/changeset/base/218530 Log: Add support for the new I350 family of 1G interfaces. - this also includes virtualization support on these devices Correct some vlan issues we were seeing in test, jumbo frames on vlans did not work correctly, this was all due to confused logic around HW filters, the new code should now work for all uses. Important fix: when mbuf resources are depeleted, it was possible to completely empty the RX ring, and then the RX engine would stall forever. This is fixed by a flag being set whenever the refresh code fails due to an mbuf shortage, also the local timer now makes sure that all queues get an interrupt when it runs, the interrupt code will then always call rxeof, and in that routine the first thing done is now to check the refresh flag and call refresh_mbufs. This has been verified to fix this type 'hang'. Similar code will follow in the other drivers. Finally, sync up shared code for the I350 support. Thanks to everyone that has been reporting issues, and helping in the debug/test process!! Modified: head/sys/dev/e1000/e1000_82575.c head/sys/dev/e1000/e1000_82575.h head/sys/dev/e1000/e1000_api.c head/sys/dev/e1000/e1000_api.h head/sys/dev/e1000/e1000_defines.h head/sys/dev/e1000/e1000_hw.h head/sys/dev/e1000/e1000_mac.c head/sys/dev/e1000/e1000_mac.h head/sys/dev/e1000/e1000_manage.c head/sys/dev/e1000/e1000_manage.h head/sys/dev/e1000/e1000_mbx.c head/sys/dev/e1000/e1000_nvm.c head/sys/dev/e1000/e1000_nvm.h head/sys/dev/e1000/e1000_osdep.c head/sys/dev/e1000/e1000_phy.c head/sys/dev/e1000/e1000_phy.h head/sys/dev/e1000/e1000_regs.h head/sys/dev/e1000/e1000_vf.c head/sys/dev/e1000/e1000_vf.h head/sys/dev/e1000/if_igb.c head/sys/dev/e1000/if_igb.h Modified: head/sys/dev/e1000/e1000_82575.c == --- head/sys/dev/e1000/e1000_82575.cFri Feb 11 00:41:49 2011 (r218529) +++ head/sys/dev/e1000/e1000_82575.cFri Feb 11 01:00:26 2011 (r218530) @@ -60,10 +60,14 @@ static s32 e1000_read_phy_reg_sgmii_825 u16 *data); static s32 e1000_reset_hw_82575(struct e1000_hw *hw); static s32 e1000_reset_hw_82580(struct e1000_hw *hw); -static s32 e1000_read_phy_reg_82580(struct e1000_hw *hw, +static s32 e1000_read_phy_reg_82580(struct e1000_hw *hw, u32 offset, u16 *data); -static s32 e1000_write_phy_reg_82580(struct e1000_hw *hw, +static s32 e1000_write_phy_reg_82580(struct e1000_hw *hw, u32 offset, u16 data); +static s32 e1000_set_d0_lplu_state_82580(struct e1000_hw *hw, + bool active); +static s32 e1000_set_d3_lplu_state_82580(struct e1000_hw *hw, + bool active); static s32 e1000_set_d0_lplu_state_82575(struct e1000_hw *hw, bool active); static s32 e1000_setup_copper_link_82575(struct e1000_hw *hw); @@ -86,6 +90,14 @@ static void e1000_shutdown_serdes_link_8 static void e1000_power_up_serdes_link_82575(struct e1000_hw *hw); static s32 e1000_set_pcie_completion_timeout(struct e1000_hw *hw); static s32 e1000_reset_mdicnfg_82580(struct e1000_hw *hw); +static s32 e1000_validate_nvm_checksum_82580(struct e1000_hw *hw); +static s32 e1000_update_nvm_checksum_82580(struct e1000_hw *hw); +static s32 e1000_update_nvm_checksum_with_offset(struct e1000_hw *hw, + u16 offset); +static s32 e1000_validate_nvm_checksum_with_offset(struct e1000_hw *hw, + u16 offset); +static s32 e1000_validate_nvm_checksum_i350(struct e1000_hw *hw); +static s32 e1000_update_nvm_checksum_i350(struct e1000_hw *hw); static const u16 e1000_82580_rxpbs_table[] = { 36, 72, 144, 1, 2, 4, 8, 16, @@ -115,6 +127,7 @@ static bool e1000_sgmii_uses_mdio_82575( ext_mdio = !!(reg & E1000_MDIC_DEST); break; case e1000_82580: + case e1000_i350: reg = E1000_READ_REG(hw, E1000_MDICNFG); ext_mdio = !!(reg & E1000_MDICNFG_EXT_MDIO); break; @@ -165,7 +178,7 @@ static s32 e1000_init_phy_params_82575(s E1000_WRITE_REG(hw, E1000_CTRL_EXT, ctrl_ext); e1000_reset_mdicnfg_82580(hw); - + if (e1000_sgmii_active_82575(hw) && !e1000_sgmii_uses_mdio_82575(hw)) { phy->ops.read_reg = e1000_read_phy_reg_sgmii_82575; phy->ops.write_reg = e1000_write_phy_reg_sgmii_82575; @@ -182,11 +195,17 @@ static s32 e1000_init_phy_params_82575(s /* Verify phy id and set remaining function pointers */ switch (phy->id) { + case I347AT4_E_PHY_ID: + case M88E
svn commit: r218529 - head/sys/dev/bce
Author: davidch Date: Fri Feb 11 00:41:49 2011 New Revision: 218529 URL: http://svn.freebsd.org/changeset/base/218529 Log: - Updated firmware which improves small packet performance. MFC after:2 weeks Modified: head/sys/dev/bce/if_bcefw.h Modified: head/sys/dev/bce/if_bcefw.h == --- head/sys/dev/bce/if_bcefw.h Thu Feb 10 23:36:39 2011(r218528) +++ head/sys/dev/bce/if_bcefw.h Fri Feb 11 00:41:49 2011(r218529) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2006-2010 Broadcom Corporation + * Copyright (c) 2006-2011 Broadcom Corporation * David Christensen . All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,1310 +31,1254 @@ /* * This file contains firmware data derived from proprietary unpublished - * source code, Copyright (c) 2004, 2005, 2007, 2008 Broadcom Corporation. + * source code, Copyright (c) 2004-2011 Broadcom Corporation. * * Permission is hereby granted for the distribution of this firmware data - * in hexadecimal or equivalent format, provided this copyright notice is - * accompanying it. + * in hexadecimal or equivalent format, provided this copyright notice also + * accompanies it. */ -/* Firmware release 4.6.17 for BCM5706 and BCM5708 (b06). */ -/* Firmware release 4.6.16 for BCM5709 and BCM5716 (b09). */ -int bce_COM_b06FwReleaseMajor = 0x1; -int bce_COM_b06FwReleaseMinor = 0x0; -int bce_COM_b06FwReleaseFix = 0x0; -u32 bce_COM_b06FwStartAddr = 0x08f8; -u32 bce_COM_b06FwTextAddr = 0x0800; -int bce_COM_b06FwTextLen = 0x4df0; -u32 bce_COM_b06FwDataAddr = 0x; -int bce_COM_b06FwDataLen = 0x0; -u32 bce_COM_b06FwRodataAddr = 0x08004df0; -int bce_COM_b06FwRodataLen = 0x14; -u32 bce_COM_b06FwBssAddr = 0x08004e58; -int bce_COM_b06FwBssLen = 0xbc; -u32 bce_COM_b06FwSbssAddr = 0x08004e20; -int bce_COM_b06FwSbssLen = 0x38; -u32 bce_COM_b06FwSDataAddr = 0x; -int bce_COM_b06FwSDataLen = 0x0; -u32 bce_COM_b06FwText[(0x4df0/4) + 1] = { -0xa3e, 0x0, 0x0, -0xd, 0x636f6d34, 0x2e362e31, 0x3700, -0x4061102, 0x0, 0x3, 0x14, -0x32, 0x3, 0x0, 0x0, -0x0, 0x0, 0x0, 0x10, -0x136, 0xea60, 0x1, 0x0, -0x0, 0x0, 0x8, 0x0, -0x0, 0x0, 0x0, 0x0, -0x0, 0x0, 0x0, 0x0, -0x0, 0x0, 0x0, 0x2, -0x0, 0x0, 0x0, 0x0, -0x0, 0x0, 0x0, 0x0, -0x0, 0x10, 0x0, 0x0, -0x0, 0x0, 0x0, 0x0, -0x0, 0x0, 0x0, 0x0, -0x0, 0x0, 0x0, 0x0, -0x1003, 0x0, 0xd, 0xd, -0x3c020800, 0x24424e20, 0x3c030800, 0x24634f14, -0xac40, 0x43202b, 0x1480fffd, 0x24420004, -0x3c1d0800, 0x37bd7ffc, 0x3a0f021, 0x3c100800, -0x261000f8, 0x3c1c0800, 0x279c4e20, 0xe0002bd, -0x0, 0xd, 0x3c036010, 0x8c645000, -0x2402ff7f, 0x3c1a8000, 0x822024, 0x3484380c, -0x24020037, 0xac645000, 0xaf420008, 0x24020c80, -0xaf420024, 0x3c1b8008, 0x3c060800, 0x24c607e8, -0x3c020800, 0x24424e58, 0x2404001b, 0x2484, -0xac46, 0x481fffd, 0x24420004, 0x3c020800, -0x24420380, 0x3c010800, 0xac224e60, 0x3c020800, -0x24420680, 0x3c010800, 0xac224e64, 0x3c020800, -0x24420dcc, 0x3c010800, 0xac224ea0, 0x3c020800, -0x24420a5c, 0x3c030800, 0x24630954, 0x3c040800, -0x24840990, 0x3c050800, 0x24a53c70, 0x3c010800, -0xac224ea8, 0x3c020800, 0x24420570, 0x3c010800, -0xac264ea4, 0x3c010800, 0xac254eb4, 0x3c010800, -0xac234ebc, 0x3c010800, 0xac224ec0, 0x3c010800, -0xac244ec4, 0x3c010800, 0xac234e5c, 0x3c010800, -0xac204e68, 0x3c010800, 0xac204e6c, 0x3c010800, -0xac204e70, 0x3c010800, 0xac204e74, 0x3c010800, -0xac204e78, 0x3c010800, 0xac204e7c, 0x3c010800, -0xac204e80, 0x3c010800, 0xac244e84, 0x3c010800, -0xac204e88, 0x3c010800, 0xac204e8c, 0x3c010800, -0xac204e90, 0x3c010800, 0xac204e94, 0x3c010800, -0xac204e98, 0x3c010800, 0xac264e9c, 0x3c010800, -0xac204eac, 0x3c010800, 0xac254eb0, 0x3c010800, -0xac234eb8, 0xa000707, 0x0, 0x3c030800, -0x8c630020, 0x8f820008, 0x10430003, 0x0, -0xa00053f, 0xaf830008, 0x3e8, 0x0, -0x27bdffe8, 0xafb00010, 0xafbf0014, 0x27500100, -0x92020009, 0x1040001a, 0x24030001, 0x3c020800, -0x8c420020, 0x10400016, 0x1821, 0xe000577, -0x0, 0x96030008, 0x3c060800, 0x94c64ed6, -0x8e040018, 0x8f820020, 0x9605000c, 0x31c00, -0x661825, 0xac44, 0xac450004, 0x24040001, -0xac48, 0xac4c, 0xac400010, 0xac400014, -0xac400018, 0xe00059c, 0xac43001c, 0x1821, -0x8fbf0014, 0x8fb00010, 0x601021, 0x3e8, -0x27bd0018, 0x27bdffe8, 0xafbf0010, 0x97420108, -0x30437000, 0x24022000, 0x1062000a, 0x28642001, -0x54800012, 0x8fbf0010, 0x24024000, 0x10620008, -0x24026000, 0x1062000a, 0x8fbf0010, 0xafb, -0x1021, 0x8fbf0010, 0xabb, 0x27bd0018, -0xe000409, 0x0, 0xafa, 0x8fbf0010, -0xe000fc9, 0x0, 0x8fbf0010, 0x1021, -0x3e8, 0x27bd0018, 0x3c020800, 0x8c420020, -0x27bdffe8, 0x10400027, 0xafbf0010, 0xe000577, -0x0, 0x97420108, 0x9743010c, 0x8f850020, -0x3042003e, 0x3063, 0x21400, 0x431025, -0xaca2, 0x8f420100, 0x3c060800, 0x94c64ed6, -0x8fbf0010, 0xaca20004, 0x97430116, 0x9744010e, -0x3c022000, 0x31c00, 0x3084ff
svn commit: r218528 - head/tools/tools/nanobsd
Author: imp Date: Thu Feb 10 23:36:39 2011 New Revision: 218528 URL: http://svn.freebsd.org/changeset/base/218528 Log: Add 'generic' flash images. This is for projects producing generic images that are of a certain size. The geometery is bogus, but that doesn't matter since the new packet mode onviates the need to get the geometry right. Modified: head/tools/tools/nanobsd/FlashDevice.sub Modified: head/tools/tools/nanobsd/FlashDevice.sub == --- head/tools/tools/nanobsd/FlashDevice.subThu Feb 10 22:36:23 2011 (r218527) +++ head/tools/tools/nanobsd/FlashDevice.subThu Feb 10 23:36:39 2011 (r218528) @@ -203,10 +203,52 @@ sub_FlashDevice () { ;; esac ;; + # Generic flash media. It assumes that we're booting using packet + # mode so the HEADS and SECTS don't matter. The truncation of the + # size to a slightly lower number is intentional to be conservative + # (eg, 1 sector smaller than N GB is always smaller than any flash + # claiming to be N GB, but wastes a little space sometimes when 1GB + # really means 1GiB). This is intended to be used when producing + # generic images for anybody to boot. Media sizes are specified 'Xg' + # for X GB (10^9 bytes) flash or Xm for X MB (10^6 bytes) flash. + # Power of 2 variants can be specified with gi or mi for GiB and MiB + # sizeed flash and don't try to be conservative (use with caution). + generic) + case $a2 in + *.*)# Catch unsupported 1.5g case, since expr can't + # cope with floats. + echo "Unsupported generic size $a2" + exit 2 + ;; + *m) + NANO_HEADS=16 + NANO_SECTS=63 + NANO_MEDIASIZE=`expr -e ${a2%m} \* 100 / 512` + ;; + *g) + NANO_HEADS=16 + NANO_SECTS=63 + NANO_MEDIASIZE=`expr -e ${a2%g} \* 10 / 512` + ;; + *mi) + NANO_HEADS=16 + NANO_SECTS=63 + NANO_MEDIASIZE=`expr -e ${a2%mi} \* 1024 \* 1024 / 512` + ;; + *gi) + NANO_HEADS=16 + NANO_SECTS=63 + NANO_MEDIASIZE=`expr -e ${a2%gi} \* 1024 \* 1024 \* 1024 / 512` + ;; + *) + echo "Unsupported generic size $a2" + exit 2 + ;; + esac + ;; *) echo "Unknown Flash manufacturer" exit 2 ;; esac } - ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218527 - head/sys/dev/bce
Author: davidch Date: Thu Feb 10 22:36:23 2011 New Revision: 218527 URL: http://svn.freebsd.org/changeset/base/218527 Log: - Added error checking to nvram read functions. - Minor style updates. Submitted by: gcoo...@freebsd.org MFC after:2 weeks Modified: head/sys/dev/bce/if_bce.c head/sys/dev/bce/if_bcereg.h Modified: head/sys/dev/bce/if_bce.c == --- head/sys/dev/bce/if_bce.c Thu Feb 10 19:58:21 2011(r218526) +++ head/sys/dev/bce/if_bce.c Thu Feb 10 22:36:23 2011(r218527) @@ -89,12 +89,6 @@ __FBSDID("$FreeBSD$"); #endif // -/* BCE Build Time Options */ -// -/* #define BCE_NVRAM_WRITE_SUPPORT 1 */ - - -// /* PCI Device ID Table */ /* */ /* Used by bce_probe() to identify the devices supported by this driver.*/ @@ -339,9 +333,9 @@ static int bce_miibus_write_reg(device static void bce_miibus_statchg (device_t); #ifdef BCE_DEBUG -static int sysctl_nvram_dump(SYSCTL_HANDLER_ARGS); +static int bce_sysctl_nvram_dump(SYSCTL_HANDLER_ARGS); #ifdef BCE_NVRAM_WRITE_SUPPORT -static int sysctl_nvram_write(SYSCTL_HANDLER_ARGS); +static int bce_sysctl_nvram_write(SYSCTL_HANDLER_ARGS); #endif #endif @@ -2884,9 +2878,9 @@ bce_nvram_write(struct bce_softc *sc, u3 goto bce_nvram_write_exit; bce_nvram_write_locked_exit: - bce_disable_nvram_write(sc); - bce_disable_nvram_access(sc); - bce_release_nvram_lock(sc); + bce_disable_nvram_write(sc); + bce_disable_nvram_access(sc); + bce_release_nvram_lock(sc); bce_nvram_write_exit: if (align_start || align_end) @@ -2931,7 +2925,7 @@ bce_nvram_test(struct bce_softc *sc) * Verify that offset 0 of the NVRAM contains * a valid magic number. */ -magic = bce_be32toh(buf[0]); + magic = bce_be32toh(buf[0]); if (magic != BCE_NVRAM_MAGIC) { rc = ENODEV; BCE_PRINTF("%s(%d): Invalid NVRAM magic value! " @@ -8266,7 +8260,6 @@ bce_tick_exit: return; } - #ifdef BCE_DEBUG // /* Allows the driver state to be dumped through the sysctl interface. */ @@ -8631,7 +8624,8 @@ bce_sysctl_nvram_read(SYSCTL_HANDLER_ARG if (error || (req->newptr == NULL)) return (error); - bce_nvram_read(sc, result, data, 4); + error = bce_nvram_read(sc, result, data, 4); + BCE_PRINTF("offset 0x%08X = 0x%08X\n", result, bce_be32toh(val[0])); return (error); @@ -8701,50 +8695,62 @@ bce_sysctl_phy_read(SYSCTL_HANDLER_ARGS) } +// +/* Provides a sysctl interface for dumping the nvram contents. */ +/* DO NOT ENABLE ON PRODUCTION SYSTEMS! */ +/* */ +/* Returns:*/ +/* 0 for success, positive errno for failure. */ +// static int -sysctl_nvram_dump(SYSCTL_HANDLER_ARGS) +bce_sysctl_nvram_dump(SYSCTL_HANDLER_ARGS) { struct bce_softc *sc = (struct bce_softc *)arg1; int error, i; - if (sc->nvram_buf == NULL) { + if (sc->nvram_buf == NULL) sc->nvram_buf = malloc(sc->bce_flash_size, - M_TEMP, M_ZERO | M_WAITOK); - } - if (sc->nvram_buf == NULL) { - return(ENOMEM); - } + M_TEMP, M_ZERO | M_WAITOK); + + error = 0; if (req->oldlen == sc->bce_flash_size) { - for (i = 0; i < sc->bce_flash_size; i++) { - bce_nvram_read(sc, i, &sc->nvram_buf[i], 1); - } + for (i = 0; i < sc->bce_flash_size && error == 0; i++) + error = bce_nvram_read(sc, i, &sc->nvram_buf[i], 1); } - error = SYSCTL_OUT(req, sc->nvram_buf, sc->bce_flash_size); + if (error == 0) + error = SYSCTL_OUT(req, sc->nvram_buf, sc->bce_flash_size); return error; } #ifdef BCE_NVRAM_WRITE_SUPPORT +// +/* Provides a sysctl interface for writing to nvram.*/ +/* DO NOT ENABL
svn commit: r218526 - head
Author: imp Date: Thu Feb 10 19:58:21 2011 New Revision: 218526 URL: http://svn.freebsd.org/changeset/base/218526 Log: You are now *REQUIRED* to pass both TARGET and TARGET_ARCH to any invocations of Makefile.inc1 (since that's supposed to be an internal interface for world and related targets). Document this with a .error message. For a transition period, support passing in just TARGET, but give a .warning for that case: I plan on removing it in 9.0... Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 == --- head/Makefile.inc1 Thu Feb 10 19:13:54 2011(r218525) +++ head/Makefile.inc1 Thu Feb 10 19:58:21 2011(r218526) @@ -28,6 +28,17 @@ # /usr/share/mk. These include: # obj depend all install clean cleandepend cleanobj +# You are supposed to define both of these when calling Makefile.inc1 +# directly. However, some old scripts don't. Cope for the moment, but +# issue a new warning for a transition period. +.if defined(TARGET) && !defined(TARGET_ARCH) +.warning "You must pass both TARGET and TARGET_ARCH to Makefile.inc1. Setting TARGET_ARCH=${TARGET}." +TARGET_ARCH=${TARGET} +.endif +.if !defined(TARGET) || !defined(TARGET_ARCH) +.error "Both TARGET and TARGET_ARCH must be defined." +.endif + .include .include ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r218130 - head
Can you send me build-scripts? Warner On 02/10/2011 09:21, Adrian Chadd wrote: So when I run this: adrian@ref8-amd64:/scratch/tmp/adrian/head/src$ env BUILD_FLAGS="NOCLEAN=1 NO_CLEAN=1" ../../build/build-scripts/bin/build rspro buildworld MAKEOBJDIRPREFIX: /scratch/tmp/adrian/head/src/../obj/mipseb/ env=MAKEOBJDIRPREFIX=/scratch/tmp/adrian/head/src/../obj/mipseb/ make NOCLEAN=1 NO_CLEAN=1 TARGET=mips TARGET_ARCH=mipseb TARGET_CPUTYPE=mips32 KERNCONF=RSPRO_STANDALONE DESTDIR=/scratch/tmp/adrian/head/src/../root/mipseb LOCAL_DIRS=tools/tools/ath buildworld I get this: ===> usr.bin/rpcgen (obj,depend,all,install) sh /scratch/tmp/adrian/head/src/tools/install.sh -s -o root -g wheel -m 555 rpcgen /scratch/tmp/adrian/head/src/../obj/mipseb//mips.mipseb/scratch/tmp/adrian/head/src/tmp/legacy/usr/bin ===> usr.bin/sed (obj,depend,all,install) make: don't know how to make /scratch/tmp/adrian/head/obj-i386/i386.i386/scratch/tmp/adrian/head/src/tmp/usr/include/sys/cdefs.h. Stop *** Error code 2 Stop in /scratch/tmp/adrian/head/src. *** Error code 1 Stop in /scratch/tmp/adrian/head/src. *** Error code 1 Stop in /scratch/tmp/adrian/head/src. Adrian On 10 February 2011 21:45, Bjoern A. Zeeb wrote: On Mon, 31 Jan 2011, Warner Losh wrote: Author: imp Date: Mon Jan 31 15:17:47 2011 New Revision: 218130 URL: http://svn.freebsd.org/changeset/base/218130 Log: Move the architecture guessing from Makefile.inc1 to Makefile. We need to do this because variables specified on the command line override those specified in the Makefile. This is why we also moved from TARGET to _TARGET in Makefile, and then set TARGET on the command line when we fork a submake with Makefile.inc1. This makes mips/mips work again, even without the workaround committed to lib/libc/Makefile. Modified: head/Makefile head/Makefile.inc1 Hey, not sure if it's a result of this commit or one of the many others: env MAKEOBJDIRPREFIX=/path/to/obj make -f Makefile.inc1 hierarchy \ -DWITHOUT_TOOLCHAIN \ __MAKE_CONF=/path/to/make.conf SRCCONF=/path/to/src.conf \ DESTDIR=/path/to/destdir \ TARGET=i386 results in: "/path/to/base9-201102092305/Makefile.inc1", line 127: Unknown target :i386. This used to work before. TARGET_ARCH is unset, TARGET=i386 thus they differ and thus the check there tries to find "/i386" rather than just "i386". Is it a rather unsupported thing or what's the proper way to fix it? As a workaround I was also setting TARGET_ARCH=i386 for the moment. /bz -- Bjoern A. Zeeb You have to have visions! Stop bit received. Insert coin for new address family. ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218525 - head/share/mk
Author: keramida (doc committer) Date: Thu Feb 10 19:13:54 2011 New Revision: 218525 URL: http://svn.freebsd.org/changeset/base/218525 Log: Add LIBEXECDIR to the bsd.own.mk vars, pointing to /usr/libexec by default Some of the patches we are preparing for porting ATF from NetBSD refer to '/usr/libexec' several times. Instead of repeating the path all over the place, add ${LIBEXECDIR} to match ${LIBDATADIR} and reduce the redundancy of the relevant makefiles. Submitted by: Garrett Cooper Approved by: ru MFC after:1 month Modified: head/share/mk/bsd.own.mk Modified: head/share/mk/bsd.own.mk == --- head/share/mk/bsd.own.mkThu Feb 10 18:54:52 2011(r218524) +++ head/share/mk/bsd.own.mkThu Feb 10 19:13:54 2011(r218525) @@ -30,6 +30,8 @@ # # LIBDATADIR Base path for misc. utility data files. [/usr/libdata] # +# LIBEXECDIR Base path for system daemons and utilities. [/usr/libexec] +# # LINTLIBDIR Base path for lint libraries. [/usr/libdata/lint] # # SHLIBDIR Base path for shared libraries. [${LIBDIR}] @@ -129,6 +131,7 @@ KMODMODE?= ${BINMODE} LIBDIR?= /usr/lib LIBCOMPATDIR?= /usr/lib/compat LIBDATADIR?= /usr/libdata +LIBEXECDIR?= /usr/libexec LINTLIBDIR?= /usr/libdata/lint SHLIBDIR?= ${LIBDIR} LIBOWN?= ${BINOWN} ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r211804 - in head/sys: amd64/amd64 i386/i386
On Feb 10, 2011, at 8:13 AM, Chagin Dmitry wrote: > On Wed, Aug 25, 2010 at 09:10:32AM +, Rui Paulo wrote: >> Author: rpaulo >> Date: Wed Aug 25 09:10:32 2010 >> New Revision: 211804 >> URL: http://svn.freebsd.org/changeset/base/211804 >> >> Log: >> Call the necessary DTrace function pointers when we have different kinds >> of traps. >> >> Sponsored by: The FreeBSD Foundation >> >> Modified: >> head/sys/amd64/amd64/trap.c >> head/sys/i386/i386/trap.c >> >> Modified: head/sys/amd64/amd64/trap.c >> == >> --- head/sys/amd64/amd64/trap.c Wed Aug 25 08:49:21 2010 >> (r211803) >> +++ head/sys/amd64/amd64/trap.c Wed Aug 25 09:10:32 2010 >> (r211804) >> @@ -109,6 +109,13 @@ dtrace_doubletrap_func_tdtrace_doubletr >> * implementation opaque. >> */ >> systrace_probe_func_tsystrace_probe_func; >> + >> +/* >> + * These hooks are necessary for the pid, usdt and fasttrap providers. >> + */ >> +dtrace_fasttrap_probe_ptr_t dtrace_fasttrap_probe_ptr; >> +dtrace_pid_probe_ptr_t dtrace_pid_probe_ptr; >> +dtrace_return_probe_ptr_t dtrace_return_probe_ptr; >> #endif >> >> extern void trap(struct trapframe *frame); >> @@ -239,6 +246,55 @@ trap(struct trapframe *frame) >> if (dtrace_trap_func != NULL) >> if ((*dtrace_trap_func)(frame, type)) >> goto out; >> +if (type == T_DTRACE_PROBE || type == T_DTRACE_RET || >> +type == T_BPTFLT) { >> +struct reg regs; >> + >> +regs.r_r15 = frame->tf_r15; >> +regs.r_r14 = frame->tf_r14; >> +regs.r_r13 = frame->tf_r13; >> +regs.r_r12 = frame->tf_r12; >> +regs.r_r11 = frame->tf_r11; >> +regs.r_r10 = frame->tf_r10; >> +regs.r_r9 = frame->tf_r9; >> +regs.r_r8 = frame->tf_r8; >> +regs.r_rdi = frame->tf_rdi; >> +regs.r_rsi = frame->tf_rsi; >> +regs.r_rbp = frame->tf_rbp; >> +regs.r_rbx = frame->tf_rbx; >> +regs.r_rdx = frame->tf_rdx; >> +regs.r_rcx = frame->tf_rcx; >> +regs.r_rax = frame->tf_rax; >> +regs.r_rip = frame->tf_rip; >> +regs.r_cs = frame->tf_cs; >> +regs.r_rflags = frame->tf_rflags; >> +regs.r_rsp = frame->tf_rsp; >> +regs.r_ss = frame->tf_ss; >> +if (frame->tf_flags & TF_HASSEGS) { >> +regs.r_ds = frame->tf_ds; >> +regs.r_es = frame->tf_es; >> +regs.r_fs = frame->tf_fs; >> +regs.r_gs = frame->tf_gs; >> +} else { >> +regs.r_ds = 0; >> +regs.r_es = 0; >> +regs.r_fs = 0; >> +regs.r_gs = 0; > > > hi, maybe use fill_regs() would more appropriate here? No, fill_regs() takes a thread as an argument. I all I had was a frame. Regards, -- Rui Paulo ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218524 - in head: . share/man/man7
Author: jhb Date: Thu Feb 10 18:54:52 2011 New Revision: 218524 URL: http://svn.freebsd.org/changeset/base/218524 Log: - Add a new UNIVERSE_TARGET variable for 'make universe'. If it is set, then that target is invoked for each architecture rather than the default action of building world and kernels for each architecture. - Add a 'make toolchains' wrapper which uses UNIVERSE_TARGET to build toolchains for all architectures. - Document JFLAG, MAKE_JUST_KERNELS, and MAKE_JUST_WORLDS variables for 'make universe'. Reviewed by: bz MFC after:1 week Modified: head/Makefile head/share/man/man7/build.7 Modified: head/Makefile == --- head/Makefile Thu Feb 10 15:41:32 2011(r218523) +++ head/Makefile Thu Feb 10 18:54:52 2011(r218524) @@ -30,6 +30,7 @@ # delete-old-libs - Delete obsolete libraries. # targets - Print a list of supported TARGET/TARGET_ARCH pairs # for world and kernel targets. +# toolchains - Build a toolchain for all world and kernel targets. # # This makefile is simple by design. The FreeBSD make automatically reads # the /usr/share/mk/sys.mk unless the -m argument is specified on the @@ -307,8 +308,10 @@ make: .PHONY ${MMAKE} install DESTDIR=${MAKEPATH} BINDIR= tinderbox: - @cd ${.CURDIR} && \ - DOING_TINDERBOX=YES ${MAKE} JFLAG=${JFLAG} universe + @cd ${.CURDIR} && ${MAKE} DOING_TINDERBOX=YES universe + +toolchains: + @cd ${.CURDIR} && ${MAKE} UNIVERSE_TARGET=toolchain universe # # universe @@ -328,6 +331,12 @@ TARGET_ARCHES_sun4v?= sparc64 TARGET_ARCHES_${target}?= ${target} .endfor +.if defined(UNIVERSE_TARGET) +MAKE_JUST_WORLDS= YES +.else +UNIVERSE_TARGET?= buildworld +.endif + targets: @echo "Supported TARGET/TARGET_ARCH pairs for world and kernel targets" .for target in ${TARGETS} @@ -361,16 +370,16 @@ universe_${target}_prologue: .for target_arch in ${TARGET_ARCHES_${target}} universe_${target}: universe_${target}_${target_arch} universe_${target}_${target_arch}: universe_${target}_prologue - @echo ">> ${target}.${target_arch} buildworld started on `LC_ALL=C date`" + @echo ">> ${target}.${target_arch} ${UNIVERSE_TARGET} started on `LC_ALL=C date`" @(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \ - ${MAKE} ${JFLAG} buildworld \ + ${MAKE} ${JFLAG} ${UNIVERSE_TARGET} \ TARGET=${target} \ TARGET_ARCH=${target_arch} \ - > _.${target}.${target_arch}.buildworld 2>&1 || \ - (echo "${target}.${target_arch} world failed," \ - "check _.${target}.${target_arch}.buildworld for details" | \ + > _.${target}.${target_arch}.${UNIVERSE_TARGET} 2>&1 || \ + (echo "${target}.${target_arch} ${UNIVERSE_TARGET} failed," \ + "check _.${target}.${target_arch}.${UNIVERSE_TARGET} for details" | \ ${MAKEFAIL})) - @echo ">> ${target}.${target_arch} buildworld completed on `LC_ALL=C date`" + @echo ">> ${target}.${target_arch} ${UNIVERSE_TARGET} completed on `LC_ALL=C date`" .endfor .endif .if !defined(MAKE_JUST_WORLDS) Modified: head/share/man/man7/build.7 == --- head/share/man/man7/build.7 Thu Feb 10 15:41:32 2011(r218523) +++ head/share/man/man7/build.7 Thu Feb 10 18:54:52 2011(r218524) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd January 25, 2011 +.Dd February 10, 2011 .Dt BUILD 7 .Os .Sh NAME @@ -218,13 +218,14 @@ on how to make it start at boot time. Create the build toolchain needed to build the rest of the system. For cross-architecture builds, this step creates a cross-toolchain. .It Cm universe -Execute a +For each architecture, +execute a .Cm buildworld -and +followed by a .Cm buildkernel -for all kernels including -.Pa LINT , -for each architecture supported by the build system. +for all kernels for that architecture, +including +.Pa LINT . This command takes a long time. .It Cm update Get updated sources as configured in @@ -240,6 +241,8 @@ Execute the same targets as .Cm universe . In addition print a summary of all failed targets at the end and exit with an error if there were any. +.It Cm toolchains +Create a build toolchain for each architecture supported by the build system. .El .Pp Kernel specific build targets in @@ -508,6 +511,29 @@ If set, restricts the documentation buil specified as its content. The default action is to build documentation for all languages. .El +.Pp +Builds using the +.Cm universe +target are influenced by the following +.Xr make 1 +variables: +.Bl -tag -width ".Va MAKE_JUST_KERNELS" +.It Va JFLAG +Pass the value of this variable to each +.Xr make 1 +invocation used to build worlds and kernels. +This can be used to enable multiple jobs
Re: svn commit: r218130 - head
On Thu, 10 Feb 2011, Warner Losh wrote: On 02/10/2011 06:45, Bjoern A. Zeeb wrote: On Mon, 31 Jan 2011, Warner Losh wrote: Author: imp Date: Mon Jan 31 15:17:47 2011 New Revision: 218130 URL: http://svn.freebsd.org/changeset/base/218130 Log: Move the architecture guessing from Makefile.inc1 to Makefile. We need to do this because variables specified on the command line override those specified in the Makefile. This is why we also moved from TARGET to _TARGET in Makefile, and then set TARGET on the command line when we fork a submake with Makefile.inc1. This makes mips/mips work again, even without the workaround committed to lib/libc/Makefile. Modified: head/Makefile head/Makefile.inc1 Hey, not sure if it's a result of this commit or one of the many others: env MAKEOBJDIRPREFIX=/path/to/obj make -f Makefile.inc1 hierarchy \ -DWITHOUT_TOOLCHAIN \ __MAKE_CONF=/path/to/make.conf SRCCONF=/path/to/src.conf \ DESTDIR=/path/to/destdir \ TARGET=i386 results in: "/path/to/base9-201102092305/Makefile.inc1", line 127: Unknown target :i386. This used to work before. TARGET_ARCH is unset, TARGET=i386 thus they differ and thus the check there tries to find "/i386" rather than just "i386". Is it a rather unsupported thing or what's the proper way to fix it? As a workaround I was also setting TARGET_ARCH=i386 for the moment. Calling Makefile.inc1 directly isn't supported. Instead, you should use the hierarchy target that's in Makefile directly. If you want to call Makefile.inc1 for some reason, you'll need to pass it both TARGET and TARGET_ARCH. I can turn it into an error to not pass both, but setting one based on the other not being set has a lot of holes in it. Not sure for how long that code I had;-) An assert always seems to be a good idea to document expectiation. I am all for that. -- Bjoern A. Zeeb You have to have visions! Stop bit received. Insert coin for new address family. ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r218130 - head
On 02/10/2011 06:45, Bjoern A. Zeeb wrote: On Mon, 31 Jan 2011, Warner Losh wrote: Author: imp Date: Mon Jan 31 15:17:47 2011 New Revision: 218130 URL: http://svn.freebsd.org/changeset/base/218130 Log: Move the architecture guessing from Makefile.inc1 to Makefile. We need to do this because variables specified on the command line override those specified in the Makefile. This is why we also moved from TARGET to _TARGET in Makefile, and then set TARGET on the command line when we fork a submake with Makefile.inc1. This makes mips/mips work again, even without the workaround committed to lib/libc/Makefile. Modified: head/Makefile head/Makefile.inc1 Hey, not sure if it's a result of this commit or one of the many others: env MAKEOBJDIRPREFIX=/path/to/obj make -f Makefile.inc1 hierarchy \ -DWITHOUT_TOOLCHAIN \ __MAKE_CONF=/path/to/make.conf SRCCONF=/path/to/src.conf \ DESTDIR=/path/to/destdir \ TARGET=i386 results in: "/path/to/base9-201102092305/Makefile.inc1", line 127: Unknown target :i386. This used to work before. TARGET_ARCH is unset, TARGET=i386 thus they differ and thus the check there tries to find "/i386" rather than just "i386". Is it a rather unsupported thing or what's the proper way to fix it? As a workaround I was also setting TARGET_ARCH=i386 for the moment. Calling Makefile.inc1 directly isn't supported. Instead, you should use the hierarchy target that's in Makefile directly. If you want to call Makefile.inc1 for some reason, you'll need to pass it both TARGET and TARGET_ARCH. I can turn it into an error to not pass both, but setting one based on the other not being set has a lot of holes in it. Warner ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r218130 - head
So when I run this: adrian@ref8-amd64:/scratch/tmp/adrian/head/src$ env BUILD_FLAGS="NOCLEAN=1 NO_CLEAN=1" ../../build/build-scripts/bin/build rspro buildworld MAKEOBJDIRPREFIX: /scratch/tmp/adrian/head/src/../obj/mipseb/ env=MAKEOBJDIRPREFIX=/scratch/tmp/adrian/head/src/../obj/mipseb/ make NOCLEAN=1 NO_CLEAN=1 TARGET=mips TARGET_ARCH=mipseb TARGET_CPUTYPE=mips32 KERNCONF=RSPRO_STANDALONE DESTDIR=/scratch/tmp/adrian/head/src/../root/mipseb LOCAL_DIRS=tools/tools/ath buildworld I get this: ===> usr.bin/rpcgen (obj,depend,all,install) sh /scratch/tmp/adrian/head/src/tools/install.sh -s -o root -g wheel -m 555 rpcgen /scratch/tmp/adrian/head/src/../obj/mipseb//mips.mipseb/scratch/tmp/adrian/head/src/tmp/legacy/usr/bin ===> usr.bin/sed (obj,depend,all,install) make: don't know how to make /scratch/tmp/adrian/head/obj-i386/i386.i386/scratch/tmp/adrian/head/src/tmp/usr/include/sys/cdefs.h. Stop *** Error code 2 Stop in /scratch/tmp/adrian/head/src. *** Error code 1 Stop in /scratch/tmp/adrian/head/src. *** Error code 1 Stop in /scratch/tmp/adrian/head/src. Adrian On 10 February 2011 21:45, Bjoern A. Zeeb wrote: > On Mon, 31 Jan 2011, Warner Losh wrote: > >> Author: imp >> Date: Mon Jan 31 15:17:47 2011 >> New Revision: 218130 >> URL: http://svn.freebsd.org/changeset/base/218130 >> >> Log: >> Move the architecture guessing from Makefile.inc1 to Makefile. We >> need to do this because variables specified on the command line >> override those specified in the Makefile. This is why we also moved >> from TARGET to _TARGET in Makefile, and then set TARGET on the command >> line when we fork a submake with Makefile.inc1. >> >> This makes mips/mips work again, even without the workaround committed to >> lib/libc/Makefile. >> >> Modified: >> head/Makefile >> head/Makefile.inc1 > > Hey, > > not sure if it's a result of this commit or one of the many others: > > env MAKEOBJDIRPREFIX=/path/to/obj make -f Makefile.inc1 hierarchy \ > -DWITHOUT_TOOLCHAIN \ > __MAKE_CONF=/path/to/make.conf SRCCONF=/path/to/src.conf \ > DESTDIR=/path/to/destdir \ > TARGET=i386 > > results in: > > "/path/to/base9-201102092305/Makefile.inc1", line 127: Unknown target :i386. > > This used to work before. TARGET_ARCH is unset, TARGET=i386 thus > they differ and thus the check there tries to find "/i386" rather than > just "i386". > > Is it a rather unsupported thing or what's the proper way to fix it? > As a workaround I was also setting TARGET_ARCH=i386 for the moment. > > /bz > > -- > Bjoern A. Zeeb You have to have visions! > Stop bit received. Insert coin for new address family. > ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r211804 - in head/sys: amd64/amd64 i386/i386
On Wed, Aug 25, 2010 at 09:10:32AM +, Rui Paulo wrote: > Author: rpaulo > Date: Wed Aug 25 09:10:32 2010 > New Revision: 211804 > URL: http://svn.freebsd.org/changeset/base/211804 > > Log: > Call the necessary DTrace function pointers when we have different kinds > of traps. > > Sponsored by: The FreeBSD Foundation > > Modified: > head/sys/amd64/amd64/trap.c > head/sys/i386/i386/trap.c > > Modified: head/sys/amd64/amd64/trap.c > == > --- head/sys/amd64/amd64/trap.c Wed Aug 25 08:49:21 2010 > (r211803) > +++ head/sys/amd64/amd64/trap.c Wed Aug 25 09:10:32 2010 > (r211804) > @@ -109,6 +109,13 @@ dtrace_doubletrap_func_t dtrace_doubletr > * implementation opaque. > */ > systrace_probe_func_tsystrace_probe_func; > + > +/* > + * These hooks are necessary for the pid, usdt and fasttrap providers. > + */ > +dtrace_fasttrap_probe_ptr_t dtrace_fasttrap_probe_ptr; > +dtrace_pid_probe_ptr_t dtrace_pid_probe_ptr; > +dtrace_return_probe_ptr_tdtrace_return_probe_ptr; > #endif > > extern void trap(struct trapframe *frame); > @@ -239,6 +246,55 @@ trap(struct trapframe *frame) > if (dtrace_trap_func != NULL) > if ((*dtrace_trap_func)(frame, type)) > goto out; > + if (type == T_DTRACE_PROBE || type == T_DTRACE_RET || > + type == T_BPTFLT) { > + struct reg regs; > + > + regs.r_r15 = frame->tf_r15; > + regs.r_r14 = frame->tf_r14; > + regs.r_r13 = frame->tf_r13; > + regs.r_r12 = frame->tf_r12; > + regs.r_r11 = frame->tf_r11; > + regs.r_r10 = frame->tf_r10; > + regs.r_r9 = frame->tf_r9; > + regs.r_r8 = frame->tf_r8; > + regs.r_rdi = frame->tf_rdi; > + regs.r_rsi = frame->tf_rsi; > + regs.r_rbp = frame->tf_rbp; > + regs.r_rbx = frame->tf_rbx; > + regs.r_rdx = frame->tf_rdx; > + regs.r_rcx = frame->tf_rcx; > + regs.r_rax = frame->tf_rax; > + regs.r_rip = frame->tf_rip; > + regs.r_cs = frame->tf_cs; > + regs.r_rflags = frame->tf_rflags; > + regs.r_rsp = frame->tf_rsp; > + regs.r_ss = frame->tf_ss; > + if (frame->tf_flags & TF_HASSEGS) { > + regs.r_ds = frame->tf_ds; > + regs.r_es = frame->tf_es; > + regs.r_fs = frame->tf_fs; > + regs.r_gs = frame->tf_gs; > + } else { > + regs.r_ds = 0; > + regs.r_es = 0; > + regs.r_fs = 0; > + regs.r_gs = 0; hi, maybe use fill_regs() would more appropriate here? -- Have fun! chd pgp7IqdCGccVm.pgp Description: PGP signature
svn commit: r218523 - head/share/man/man4
Author: jpaetzel Date: Thu Feb 10 15:41:32 2011 New Revision: 218523 URL: http://svn.freebsd.org/changeset/base/218523 Log: Netgear renamed the WG311 to the WG311v1 after they released a second version of it. There is also a WG311v3 which uses a chipset covered by malo(4). Along the way add the WG311T to the list which is also an atheros chipset. PR: docs/154589 Approved by: kib (mentor) MFC after:3 days Modified: head/share/man/man4/ath_hal.4 Modified: head/share/man/man4/ath_hal.4 == --- head/share/man/man4/ath_hal.4 Thu Feb 10 15:07:17 2011 (r218522) +++ head/share/man/man4/ath_hal.4 Thu Feb 10 15:41:32 2011 (r218523) @@ -109,7 +109,9 @@ module: .It "Netgear WAG311AR5212 PCI a/b/g" .It "Netgear WAB501AR5211 CardBus a/b" .It "Netgear WAG511AR5212 CardBus a/b/g" -.It "Netgear WG311 AR5212 PCI b/g" +.It "Netgear WG311 (aka WG311v1) AR5212 PCI b/g" +.It "Netgear WG311v2 AR5212 PCI b/g" +.It "Netgear WG311TAR5212 PCI b/g" .It "Netgear WG511TAR5212 CardBus b/g" .It "Orinoco 8480 AR5212 CardBus a/b/g" .It "Orinoco 8470WDAR5212 CardBus a/b/g" ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218521 - head/sys/netinet
Author: tuexen Date: Thu Feb 10 14:46:37 2011 New Revision: 218521 URL: http://svn.freebsd.org/changeset/base/218521 Log: Remove addresses from endpoint when there are no associations. This fixes a bug reported by brucec@. MFC after: 3 months. Modified: head/sys/netinet/sctp_asconf.c Modified: head/sys/netinet/sctp_asconf.c == --- head/sys/netinet/sctp_asconf.c Thu Feb 10 14:29:34 2011 (r218520) +++ head/sys/netinet/sctp_asconf.c Thu Feb 10 14:46:37 2011 (r218521) @@ -3104,6 +3104,7 @@ sctp_addr_mgmt_ep_sa(struct sctp_inpcb * uint32_t type, uint32_t vrf_id, struct sctp_ifa *sctp_ifap) { struct sctp_ifa *ifa; + struct sctp_laddr *laddr, *nladdr; if (sa->sa_len == 0) { SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_ASCONF, EINVAL); @@ -3124,8 +3125,6 @@ sctp_addr_mgmt_ep_sa(struct sctp_inpcb * if (type == SCTP_ADD_IP_ADDRESS) { sctp_add_local_addr_ep(inp, ifa, type); } else if (type == SCTP_DEL_IP_ADDRESS) { - struct sctp_laddr *laddr; - if (inp->laddr_count < 2) { /* can't delete the last local address */ SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_ASCONF, EINVAL); @@ -3139,11 +3138,19 @@ sctp_addr_mgmt_ep_sa(struct sctp_inpcb * } } } - if (!LIST_EMPTY(&inp->sctp_asoc_list)) { + if (LIST_EMPTY(&inp->sctp_asoc_list)) { /* * There is no need to start the iterator if the inp * has no associations. */ + if (type == SCTP_DEL_IP_ADDRESS) { + LIST_FOREACH_SAFE(laddr, &inp->sctp_addr_list, sctp_nxt_addr, nladdr) { + if (laddr->ifa == ifa) { + sctp_del_local_addr_ep(inp, ifa); + } + } + } + } else { struct sctp_asconf_iterator *asc; struct sctp_laddr *wi; ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r218130 - head
On Mon, 31 Jan 2011, Warner Losh wrote: Author: imp Date: Mon Jan 31 15:17:47 2011 New Revision: 218130 URL: http://svn.freebsd.org/changeset/base/218130 Log: Move the architecture guessing from Makefile.inc1 to Makefile. We need to do this because variables specified on the command line override those specified in the Makefile. This is why we also moved from TARGET to _TARGET in Makefile, and then set TARGET on the command line when we fork a submake with Makefile.inc1. This makes mips/mips work again, even without the workaround committed to lib/libc/Makefile. Modified: head/Makefile head/Makefile.inc1 Hey, not sure if it's a result of this commit or one of the many others: env MAKEOBJDIRPREFIX=/path/to/obj make -f Makefile.inc1 hierarchy \ -DWITHOUT_TOOLCHAIN \ __MAKE_CONF=/path/to/make.conf SRCCONF=/path/to/src.conf \ DESTDIR=/path/to/destdir \ TARGET=i386 results in: "/path/to/base9-201102092305/Makefile.inc1", line 127: Unknown target :i386. This used to work before. TARGET_ARCH is unset, TARGET=i386 thus they differ and thus the check there tries to find "/i386" rather than just "i386". Is it a rather unsupported thing or what's the proper way to fix it? As a workaround I was also setting TARGET_ARCH=i386 for the moment. /bz -- Bjoern A. Zeeb You have to have visions! Stop bit received. Insert coin for new address family. ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r218513 - head/sys/ufs/ufs
Author: netchild Date: Thu Feb 10 08:06:56 2011 New Revision: 218513 URL: http://svn.freebsd.org/changeset/base/218513 Log: Wrap long line. Noticed by: bz Modified: head/sys/ufs/ufs/ufs_vnops.c Modified: head/sys/ufs/ufs/ufs_vnops.c == --- head/sys/ufs/ufs/ufs_vnops.cThu Feb 10 07:56:55 2011 (r218512) +++ head/sys/ufs/ufs/ufs_vnops.cThu Feb 10 08:06:56 2011 (r218513) @@ -91,7 +91,8 @@ FEATURE(ufs_quota64, "64bit UFS disk quo #endif #ifdef SUIDDIR -FEATURE(suiddir, "Give all new files in directory the same ownership as the directory"); +FEATURE(suiddir, +"Give all new files in directory the same ownership as the directory"); #endif ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"