From owner-freebsd-arm@FreeBSD.ORG Sun Dec 8 07:25:02 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D3392736 for ; Sun, 8 Dec 2013 07:25:02 +0000 (UTC) Received: from mail-we0-x236.google.com (mail-we0-x236.google.com [IPv6:2a00:1450:400c:c03::236]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 71E39190A for ; Sun, 8 Dec 2013 07:25:02 +0000 (UTC) Received: by mail-we0-f182.google.com with SMTP id q59so2208238wes.41 for ; Sat, 07 Dec 2013 23:25:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=ijESZpeIabvgknCct8AzyEoQnC8UOCt9Qd2x5GLd1WU=; b=y8K90IRK/fyb4uR7aAMnVy7yo4RbLq5aXxvppeXNkQquRHq+nnjdaAbMqckin/N06O QzXnj9MpGMGSuBaUEay7GxB6yAfN8Gq4eAQ42s7jHFvJEGky26QiAGMAl1qmYupqEylE OLIiF9o0TYA9N1ZJrMRHhDiPM+yu8EwkDF5rMyTqZ7Z0Tn5fdBY1OqMSnNLf4mfb1Ksa +MtoMmYlvpAEHbFvkBrky+qe+PMVbXd1oEWKuVukJPTGQOT1VtfrK9C484HywKXaKthn aCkyDSQt/UTe0DqHSeCODAA1qM7mXXLTVCNYNr4UqoSw2J6zxILAG8sBz6P1OpIw4T1w jJog== X-Received: by 10.194.5.138 with SMTP id s10mr90284wjs.91.1386487500373; Sat, 07 Dec 2013 23:25:00 -0800 (PST) MIME-Version: 1.0 Received: by 10.227.129.129 with HTTP; Sat, 7 Dec 2013 23:24:30 -0800 (PST) From: Jia-Shiun Li Date: Sun, 8 Dec 2013 15:24:30 +0800 Message-ID: Subject: buildworld failing on BBB To: "freebsd-arm@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Dec 2013 07:25:02 -0000 Hi all, buildworld failed on my BBB with a jemalloc assert from lex, as below (/personal is a nfs mount). The behavior of failing lex command is reproducible. Wondering if anyone sees the same. BTW it also looks like sshd crash a while ago. sshd problem is now gone for me. Now sure if anyone has fixed it because a quick glance did not find directly related svn log messages. the base revision is jsli@beaglebone:~ % uname -a FreeBSD beaglebone 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r258870: Fri Dec 6 00:27:16 CST 2013 jsli@4cbsd:/root/crochet-freebsd/work/obj/arm.armv6/usr/src/sys/BEAGLEBONE arm and source tree revision is jsli@beaglebone:/personal/code/freebsd # svnlite info|grep Revision Revision: 259080 ---8<---------------- jsli@beaglebone:/personal/code/freebsd # time make MAKEOBJDIRPREFIX=/personal/code/bbbobj buildworld buildkernel (.....) ===> kerberos5/tools/asn1_compile (obj,depend,all,install) /personal/code/bbbobj/personal/code/freebsd/tmp/personal/code/freebsd/kerberos5/tools/asn1_compile created for /personal/code/freebsd/kerberos5/tools/asn1_compile yacc -d -o asn1parse.c /personal/code/freebsd/kerberos5/tools/asn1_compile/../../../crypto/heimdal/lib/asn1/ asn1parse.y yacc: 4 shift/reduce conflicts. lex -t /personal/code/freebsd/kerberos5/tools/asn1_compile/../../../crypto/heimdal/lib/asn1/lex.l > lex.c : jemalloc_arena.c:387: Failed assertion: "p[i] == 0" *** Error code 1 Stop. make[3]: stopped in /personal/code/freebsd/kerberos5/tools/asn1_compile *** Error code 1 Stop. make[2]: stopped in /personal/code/freebsd *** Error code 1 Stop. make[1]: stopped in /personal/code/freebsd *** Error code 1 Stop. make: stopped in /personal/code/freebsd 2032.803u 314.359s 1:16:44.35 50.9% -8543+416k 198+3444io 423pf+6w jsli@beaglebone:/personal/code/freebsd # lex -t /personal/code/freebsd/kerberos5/tools/asn1_compile/../../../crypto/heimdal/lib/asn1/lex.l > lex.c : jemalloc_arena.c:387: Failed assertion: "p[i] == 0" jsli@beaglebone:/personal/code/freebsd # Jia-Shiun. From owner-freebsd-arm@FreeBSD.ORG Sun Dec 8 09:15:22 2013 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 04F92252; Sun, 8 Dec 2013 09:15:22 +0000 (UTC) Received: from worker01.tb.des.no (worker01.tb.des.no [41.154.2.147]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3B54E1566; Sun, 8 Dec 2013 09:15:20 +0000 (UTC) Received: from worker01.tb.des.no (localhost [127.0.0.1]) by worker01.tb.des.no (8.14.5/8.14.5) with ESMTP id rB89FHwi013583; Sun, 8 Dec 2013 11:15:17 +0200 (SAST) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by worker01.tb.des.no (8.14.5/8.14.5/Submit) id rB89FGeN013467; Sun, 8 Dec 2013 09:15:16 GMT (envelope-from tinderbox@freebsd.org) Date: Sun, 8 Dec 2013 09:15:16 GMT Message-Id: <201312080915.rB89FGeN013467@worker01.tb.des.no> X-Authentication-Warning: worker01.tb.des.no: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Subject: [releng_10 tinderbox] failure on arm/arm Precedence: bulk X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Dec 2013 09:15:22 -0000 TB --- 2013-12-08 05:20:44 - tinderbox 2.20 running on worker01.tb.des.no TB --- 2013-12-08 05:20:44 - FreeBSD worker01.tb.des.no 9.1-RELEASE-p4 FreeBSD 9.1-RELEASE-p4 #0: Mon Jun 17 11:42:37 UTC 2013 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2013-12-08 05:20:44 - starting RELENG_10 tinderbox run for arm/arm TB --- 2013-12-08 05:20:44 - cleaning the object tree TB --- 2013-12-08 05:20:44 - /usr/local/bin/svn stat /src TB --- 2013-12-08 05:21:34 - At svn revision 259093 TB --- 2013-12-08 05:21:35 - building world TB --- 2013-12-08 05:21:35 - CROSS_BUILD_TESTING=YES TB --- 2013-12-08 05:21:35 - MAKEOBJDIRPREFIX=/obj TB --- 2013-12-08 05:21:35 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2013-12-08 05:21:35 - SRCCONF=/dev/null TB --- 2013-12-08 05:21:35 - TARGET=arm TB --- 2013-12-08 05:21:35 - TARGET_ARCH=arm TB --- 2013-12-08 05:21:35 - TZ=UTC TB --- 2013-12-08 05:21:35 - __MAKE_CONF=/dev/null TB --- 2013-12-08 05:21:35 - cd /src TB --- 2013-12-08 05:21:35 - /usr/bin/make -B buildworld >>> Building an up-to-date make(1) >>> World build started on Sun Dec 8 05:21:46 UTC 2013 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Sun Dec 8 08:49:27 UTC 2013 TB --- 2013-12-08 08:49:27 - generating LINT kernel config TB --- 2013-12-08 08:49:27 - cd /src/sys/arm/conf TB --- 2013-12-08 08:49:27 - /usr/bin/make -B LINT TB --- 2013-12-08 08:49:27 - cd /src/sys/arm/conf TB --- 2013-12-08 08:49:27 - /usr/sbin/config -m LINT TB --- 2013-12-08 08:49:27 - building LINT kernel TB --- 2013-12-08 08:49:27 - CROSS_BUILD_TESTING=YES TB --- 2013-12-08 08:49:27 - MAKEOBJDIRPREFIX=/obj TB --- 2013-12-08 08:49:27 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2013-12-08 08:49:27 - SRCCONF=/dev/null TB --- 2013-12-08 08:49:27 - TARGET=arm TB --- 2013-12-08 08:49:27 - TARGET_ARCH=arm TB --- 2013-12-08 08:49:27 - TZ=UTC TB --- 2013-12-08 08:49:27 - __MAKE_CONF=/dev/null TB --- 2013-12-08 08:49:27 - cd /src TB --- 2013-12-08 08:49:27 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Sun Dec 8 08:49:27 UTC 2013 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for LINT completed on Sun Dec 8 09:15:12 UTC 2013 TB --- 2013-12-08 09:15:12 - cd /src/sys/arm/conf TB --- 2013-12-08 09:15:12 - /usr/sbin/config -m AC100 TB --- 2013-12-08 09:15:12 - skipping AC100 kernel TB --- 2013-12-08 09:15:12 - cd /src/sys/arm/conf TB --- 2013-12-08 09:15:12 - /usr/sbin/config -m ARMADAXP TB --- 2013-12-08 09:15:12 - skipping ARMADAXP kernel TB --- 2013-12-08 09:15:12 - cd /src/sys/arm/conf TB --- 2013-12-08 09:15:12 - /usr/sbin/config -m ARNDALE TB --- 2013-12-08 09:15:12 - skipping ARNDALE kernel TB --- 2013-12-08 09:15:12 - cd /src/sys/arm/conf TB --- 2013-12-08 09:15:12 - /usr/sbin/config -m ATMEL TB --- 2013-12-08 09:15:12 - building ATMEL kernel TB --- 2013-12-08 09:15:12 - CROSS_BUILD_TESTING=YES TB --- 2013-12-08 09:15:12 - MAKEOBJDIRPREFIX=/obj TB --- 2013-12-08 09:15:12 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2013-12-08 09:15:12 - SRCCONF=/dev/null TB --- 2013-12-08 09:15:12 - TARGET=arm TB --- 2013-12-08 09:15:12 - TARGET_ARCH=arm TB --- 2013-12-08 09:15:12 - TZ=UTC TB --- 2013-12-08 09:15:12 - __MAKE_CONF=/dev/null TB --- 2013-12-08 09:15:12 - cd /src TB --- 2013-12-08 09:15:12 - /usr/bin/make -B buildkernel KERNCONF=ATMEL >>> Kernel build for ATMEL started on Sun Dec 8 09:15:12 UTC 2013 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools [...] cd /src/sys/modules/aic7xxx/aicasm; PATH=/obj/arm.arm/src/tmp/legacy/usr/sbin:/obj/arm.arm/src/tmp/legacy/usr/bin:/obj/arm.arm/src/tmp/legacy/usr/games:/obj/arm.arm/src/tmp/legacy/bin:/sbin:/bin:/usr/sbin:/usr/bin MAKEOBJDIRPREFIX=/obj/arm.arm/src/sys/ATMEL/modules /obj/src/make.amd64/bmake SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF -DEARLY_BUILD all cc -O2 -pipe -I. -I/src/sys/modules/aic7xxx/aicasm/../../../dev/aic7xxx/aicasm -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wno-pointer-sign -c /src/sys/modules/aic7xxx/aicasm/../../../dev/aic7xxx/aicasm/aicasm.c cc -O2 -pipe -I. -I/src/sys/modules/aic7xxx/aicasm/../../../dev/aic7xxx/aicasm -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wno-pointer-sign -c /src/sys/modules/aic7xxx/aicasm/../../../dev/aic7xxx/aicasm/aicasm_symbol.c /src/sys/modules/aic7xxx/aicasm/../../../dev/aic7xxx/aicasm/aicasm_symbol.c: In function 'symtable_dump': /src/sys/modules/aic7xxx/aicasm/../../../dev/aic7xxx/aicasm/aicasm_symbol.c:461: internal compiler error: in var_ann, at tree-flow-inline.h:127 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. *** Error code 1 Stop. bmake[1]: stopped in /src/sys/modules/aic7xxx/aicasm *** Error code 1 Stop. bmake: stopped in /src *** [buildkernel] Error code 1 Stop in /src. TB --- 2013-12-08 09:15:15 - WARNING: /usr/bin/make returned exit code 1 TB --- 2013-12-08 09:15:15 - ERROR: failed to build ATMEL kernel TB --- 2013-12-08 09:15:15 - 10406.45 user 3618.95 system 14071.64 real http://tinderbox.des.no/tinderbox-freebsd10-build-RELENG_10-arm-arm.full From owner-freebsd-arm@FreeBSD.ORG Sun Dec 8 23:05:43 2013 Return-Path: Delivered-To: freebsd-arm@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5987362D for ; Sun, 8 Dec 2013 23:05:43 +0000 (UTC) Received: from hal.g7iii.net (unknown [IPv6:2600:3c02::f03c:91ff:feae:1cbe]) (using TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 399C416D1 for ; Sun, 8 Dec 2013 23:05:43 +0000 (UTC) Received: from [192.168.39.76] (157.17.187.81.in-addr.arpa [81.187.17.157]) by hal.g7iii.net (Postfix) with ESMTP id 1CA4F20A70 for ; Sun, 8 Dec 2013 23:05:34 +0000 (UTC) Message-ID: <52A4FB3E.9090602@g7iii.net> Date: Sun, 08 Dec 2013 23:05:34 +0000 From: Iain Young User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130623 Thunderbird/17.0.7 MIME-Version: 1.0 To: freebsd-arm@FreeBSD.org Subject: Problem when trying to install pkg from ports Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Dec 2013 23:05:43 -0000 Hi Folks, Now that I have some decent PPS sources, I am resurrecting using my Beaglebone's (White), as time pieces, using FreeBSD as the base O/S I recopied the image that some kind folks here created for me some months ago, ran postsnap fetch etc etc, then came to try and install a few essentials from the ports collection prior to building a new kernel (subversion etc) The first thing it tries to install is pkg, but unfortunately, this fails when "attempting to register pkg...". Tail end of the output from doing a make install clean for subversion is as follows: ---BEGIN INCLUDE TEXT--- ===> Checking if ports-mgmt/pkg already installed ===> Registering installation for pkg-1.2.1 *** [fake-pkg] Signal 11 Stop in /usr/ports/ports-mgmt/pkg. *** [/usr/ports/ports-mgmt/pkg/work/.install_done.pkg._usr_local] Error code 1 Stop in /usr/ports/ports-mgmt/pkg. *** [install] Error code 1 Stop in /usr/ports/ports-mgmt/pkg. *** [pkg-depends] Error code 1 Stop in /usr/ports/ports-mgmt/dialog4ports. *** [install] Error code 1 Stop in /usr/ports/ports-mgmt/dialog4ports. ===> Options unchanged You can have the repository created for you by defining WITH_REPOSITORY_CREATION. Make sure that: * all your svn users are members of a common group * this group is the group id of the db/ and locks/ subdirectories of your repository * the above subdirectories are writable by this group Many useful scripts will be installed into /usr/local/share/subversion ===> License AL2 accepted by the user ===> subversion-1.8.5 depends on file: /usr/local/sbin/pkg - not found ===> Verifying install for /usr/local/sbin/pkg in /usr/ports/ports-mgmt/pkg ===> Installing for pkg-1.2.1 ===> Checking if ports-mgmt/pkg already installed ===> Registering installation for pkg-1.2.1 *** [fake-pkg] Signal 11 Stop in /usr/ports/ports-mgmt/pkg. *** [/usr/ports/ports-mgmt/pkg/work/.install_done.pkg._usr_local] Error code 1 Stop in /usr/ports/ports-mgmt/pkg. *** [pkg-depends] Error code 1 Stop in /usr/ports/devel/subversion. *** [install] Error code 1 Stop in /usr/ports/devel/subversion. ---END INCLUDE TEXT--- I did check if the same think happened when installing pkg and dialog4ports manually, and, yes it did. Digging a bit further, seems it's fake-pkg SEGVing. Googling around, I found a bug and a patch from 2012, but certainly the tree I have already seems to have it in. The other advice I found on the net was to disable tracking of shlibs for the build, but despite trying, I couldn't find out how! Anyone got any ideas ? It's a tad frustrating not being able to rebuild the kernel, when I need to add a couple of patches, and turn off a few things, esp when I'm not actually going to make much use of pkg! Iain From owner-freebsd-arm@FreeBSD.ORG Sun Dec 8 23:16:33 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 5F8AF927 for ; Sun, 8 Dec 2013 23:16:33 +0000 (UTC) Received: from nk11p04mm-asmtp001.mac.com (nk11p04mm-asmtpout001.mac.com [17.158.236.236]) by mx1.freebsd.org (Postfix) with ESMTP id 44B5E1778 for ; Sun, 8 Dec 2013 23:16:32 +0000 (UTC) Received: from [192.168.2.101] (dslb-188-108-214-210.pools.arcor-ip.net [188.108.214.210]) by nk11p04mm-asmtp001.mac.com (Oracle Communications Messaging Server 7u4-27.08(7.0.4.27.7) 64bit (built Aug 22 2013)) with ESMTPSA id <0MXI002EDGNCEO90@nk11p04mm-asmtp001.mac.com> for freebsd-arm@freebsd.org; Sun, 08 Dec 2013 23:16:26 +0000 (GMT) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.11.72,1.0.14,0.0.0000 definitions=2013-12-08_01:2013-12-06,2013-12-08,1970-01-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=3 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1308280000 definitions=main-1312080204 Subject: Re: Problem when trying to install pkg from ports References: <52A4FB3E.9090602@g7iii.net> From: Jeremy Boy Content-type: text/plain; charset=us-ascii X-Mailer: iPad Mail (11B554a) In-reply-to: <52A4FB3E.9090602@g7iii.net> Message-id: <1D220819-4836-452B-8556-900143A09F78@me.com> Date: Mon, 09 Dec 2013 00:16:23 +0100 To: "freebsd-arm@freebsd.org" Content-transfer-encoding: quoted-printable MIME-version: 1.0 (1.0) X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Dec 2013 23:16:33 -0000 > Am 09.12.2013 um 00:05 schrieb Iain Young : >=20 > Anyone got any ideas ? It's a tad frustrating not being able to rebuild > the kernel, when I need to add a couple of patches, and turn off a few > things, esp when I'm not actually going to make much use of pkg! >=20 Hi Iain, there is an update available for pkg which solves a segfault issue with free= bsd-arm: pkg-1.2.2. You might consider updating your ports tree. > https://github.com/freebsd/pkg/issues/666 Jeremy From owner-freebsd-arm@FreeBSD.ORG Mon Dec 9 04:16:20 2013 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 58239588; Mon, 9 Dec 2013 04:16:20 +0000 (UTC) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2DD6C1031; Mon, 9 Dec 2013 04:16:19 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id rB94GCbZ053185; Sun, 8 Dec 2013 23:16:12 -0500 (EST) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id rB94GCga053172; Mon, 9 Dec 2013 04:16:12 GMT (envelope-from tinderbox@freebsd.org) Date: Mon, 9 Dec 2013 04:16:12 GMT Message-Id: <201312090416.rB94GCga053172@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Subject: [head tinderbox] failure on arm/arm Precedence: bulk X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Dec 2013 04:16:20 -0000 TB --- 2013-12-09 01:10:19 - tinderbox 2.20 running on freebsd-current.sentex.ca TB --- 2013-12-09 01:10:19 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 des@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC amd64 TB --- 2013-12-09 01:10:19 - starting HEAD tinderbox run for arm/arm TB --- 2013-12-09 01:10:19 - cleaning the object tree TB --- 2013-12-09 01:10:19 - /usr/local/bin/svn stat /src TB --- 2013-12-09 01:10:24 - At svn revision 259112 TB --- 2013-12-09 01:10:25 - building world TB --- 2013-12-09 01:10:25 - CROSS_BUILD_TESTING=YES TB --- 2013-12-09 01:10:25 - MAKEOBJDIRPREFIX=/obj TB --- 2013-12-09 01:10:25 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2013-12-09 01:10:25 - SRCCONF=/dev/null TB --- 2013-12-09 01:10:25 - TARGET=arm TB --- 2013-12-09 01:10:25 - TARGET_ARCH=arm TB --- 2013-12-09 01:10:25 - TZ=UTC TB --- 2013-12-09 01:10:25 - __MAKE_CONF=/dev/null TB --- 2013-12-09 01:10:25 - cd /src TB --- 2013-12-09 01:10:25 - /usr/bin/make -B buildworld >>> Building an up-to-date make(1) >>> World build started on Mon Dec 9 01:10:34 UTC 2013 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Mon Dec 9 04:12:28 UTC 2013 TB --- 2013-12-09 04:12:28 - generating LINT kernel config TB --- 2013-12-09 04:12:28 - cd /src/sys/arm/conf TB --- 2013-12-09 04:12:28 - /usr/bin/make -B LINT TB --- 2013-12-09 04:12:29 - cd /src/sys/arm/conf TB --- 2013-12-09 04:12:29 - /usr/sbin/config -m LINT TB --- 2013-12-09 04:12:29 - building LINT kernel TB --- 2013-12-09 04:12:29 - CROSS_BUILD_TESTING=YES TB --- 2013-12-09 04:12:29 - MAKEOBJDIRPREFIX=/obj TB --- 2013-12-09 04:12:29 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2013-12-09 04:12:29 - SRCCONF=/dev/null TB --- 2013-12-09 04:12:29 - TARGET=arm TB --- 2013-12-09 04:12:29 - TARGET_ARCH=arm TB --- 2013-12-09 04:12:29 - TZ=UTC TB --- 2013-12-09 04:12:29 - __MAKE_CONF=/dev/null TB --- 2013-12-09 04:12:29 - cd /src TB --- 2013-12-09 04:12:29 - /usr/bin/make -B buildkernel KERNCONF=LINT >>> Kernel build for LINT started on Mon Dec 9 04:12:29 UTC 2013 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies [...] rm -f .depend CC='cc ' mkdep -f .depend -a -nostdinc -D_KERNEL -DKLD_MODULE -DHAVE_KERNEL_OPTION_HEADERS -I. -I@ -I@/contrib/altq -I/obj/arm.arm/src/sys/LINT -std=iso9899:1999 /src/sys/modules/cpsw/../../arm/ti/cpsw/if_cpsw.c ===> crypto (depend) @ -> /src/sys awk -f @/tools/makeobjops.awk @/opencrypto/cryptodev_if.m -c bmake[3]: don't know how to make deflate.c. Stop bmake[3]: stopped in /src/sys/modules/crypto *** Error code 2 Stop. bmake[2]: stopped in /src/sys/modules *** Error code 1 Stop. bmake[1]: stopped in /obj/arm.arm/src/sys/LINT *** Error code 1 Stop. bmake: stopped in /src *** Error code 1 Stop in /src. TB --- 2013-12-09 04:16:12 - WARNING: /usr/bin/make returned exit code 1 TB --- 2013-12-09 04:16:12 - ERROR: failed to build LINT kernel TB --- 2013-12-09 04:16:12 - 8775.55 user 1673.29 system 11152.87 real http://tinderbox.freebsd.org/tinderbox-head-build-HEAD-arm-arm.full From owner-freebsd-arm@FreeBSD.ORG Mon Dec 9 11:06:43 2013 Return-Path: Delivered-To: freebsd-arm@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 32CD3197 for ; Mon, 9 Dec 2013 11:06:43 +0000 (UTC) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 058841E6E for ; Mon, 9 Dec 2013 11:06:43 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id rB9B6g1p070929 for ; Mon, 9 Dec 2013 11:06:42 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id rB9B6gDS070927 for freebsd-arm@FreeBSD.org; Mon, 9 Dec 2013 11:06:42 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 9 Dec 2013 11:06:42 GMT Message-Id: <201312091106.rB9B6gDS070927@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-arm@FreeBSD.org Subject: Current problem reports assigned to freebsd-arm@FreeBSD.org X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Dec 2013 11:06:43 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o arm/184078 arm cross installworld missing include files o arm/183926 arm Crash when ctrl-c while process is enter o arm/183740 arm mutex on some arm hardware requires dcache enabled o arm/183668 arm Panic when read unalign in ddb o arm/182544 arm [patch] ARM busdma_machdep-v6.c o arm/182060 arm make buildworld fails on Raspberry PI o arm/181722 arm gdb on ARM unable to sensibly debug core file from ass o arm/181718 arm threads caused hung on ARM/RPI o arm/181601 arm Sporadic failure of root mount on ARM/Raspberry o arm/180080 arm Unmapped buffers on ARMv7 big-RAM boards o arm/179688 arm [patch] [rpi] serial console eats some characters at m o arm/179532 arm wireless networking on ARM o arm/178495 arm buildworld fail on arm/raspberry pi o arm/177687 arm gdb gets installed but does not know the EABI version o arm/177686 arm assertion failed in ld-elf.so.1 when invoking telnet w o arm/177685 arm [kernel] [patch] Correct return type and usage of at91 o arm/177538 arm tunefs(8) and mount(8) can not access a newfs(8)'d fil o arm/175803 arm building xdev for arm failing o arm/175605 arm please fix build binutils-2.23.1 in raspberry pi o arm/173617 arm Dreamplug exhibits eSATA file corruption using network o kern/171096 arm [arm][xscale][ixp]Allow 16bit access on PCI bus o arm/166256 arm build fail in pmap.c o arm/162159 arm [panic] USB errors leading to panic on DockStar 9.0-RC o arm/161110 arm /usr/src/sys/arm/include/signal.h is bad o arm/161044 arm devel/icu does not build on arm o arm/158950 arm arm/sheevaplug fails fsx when mmap operations are enab o arm/155894 arm [patch] Enable at91 booting from SDHC (high capacity) p arm/155214 arm [patch] MMC/SD IO slow on Atmel ARM with modern large o arm/154227 arm [geli] using GELI leads to panic on ARM o arm/153380 arm Panic / translation fault with wlan on ARM o arm/150581 arm [irq] Unknown error generates IRQ address decoding err o arm/134368 arm [new driver] [patch] nslu2_led driver for the LEDs on 32 problems total. From owner-freebsd-arm@FreeBSD.ORG Mon Dec 9 12:14:40 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AD9A1F99 for ; Mon, 9 Dec 2013 12:14:40 +0000 (UTC) Received: from mail-qa0-x22c.google.com (mail-qa0-x22c.google.com [IPv6:2607:f8b0:400d:c00::22c]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6F0B914BB for ; Mon, 9 Dec 2013 12:14:40 +0000 (UTC) Received: by mail-qa0-f44.google.com with SMTP id i13so2538016qae.17 for ; Mon, 09 Dec 2013 04:14:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=DwiHCru4xjQsfWDcVTE6M826RHy7b/tvMVWrmNtbArU=; b=S5yjjPWdxAkAfSIt9RJgFkHYrODX0zYomQSmBurVNR9WDrQlAf83VUjSNgndsTLD80 JF7derjapn3Cf/XcVyvFVv/M4n3jsjDhriDnjf0536WAkRy7373GkC+UmrbTQ8+yPUce 1XgIWNB66N4M+CGHv3Cu62uOyeKldv6t06BCpsErWRPU89mb9YORwYMPIJqhGKWmLjva zl1qRnrisXMoJCbEGRvHIXocnQMhTD+h25tFBj66ZLmJeJeZVIlwo4DuYC6QL4cQERDY /xeCTuOmiwoPOSPy7g6uiEA7SFJIXBFOHedgDHeqbYCtav+nGOfH+ptTJ5/7DsHi+UM0 9U8w== MIME-Version: 1.0 X-Received: by 10.49.129.38 with SMTP id nt6mr24844005qeb.78.1386591279685; Mon, 09 Dec 2013 04:14:39 -0800 (PST) Received: by 10.140.42.87 with HTTP; Mon, 9 Dec 2013 04:14:39 -0800 (PST) Date: Mon, 9 Dec 2013 13:14:39 +0100 Message-ID: Subject: _bus_dmamap_sync() and L2 cache sync From: Svatopluk Kraus To: freebsd-arm@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.17 X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Dec 2013 12:14:40 -0000 Hi, when I and Michal Meloun were debugging problems on our ethernet driver on arm11 mpcore platform at work, we found out that rx/tx descriptors rings are not correctly synced for DMA. These descriptors are mapped as uncachable, i.e. their bus_dmamap_t maps have DMAMAP_COHERENT flag set. We realized that L2 cache must be synced the same way as L1 cache. I.e., L2 cache write buffer and others must be flushed before DMA is started. Now, in our implementation, we always call cache_dma_sync() in the beginning of _bus_dmamap_sync() even for DMAMAP_COHERENT maps. The cache_dma_sync() is implemented as: static __inline void cache_dma_sync(void) { dsb(); l2cache.sync(l2cache.arg); dsb(); } Regards, Svatopluk Kraus From owner-freebsd-arm@FreeBSD.ORG Mon Dec 9 14:44:15 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id EA64BA17 for ; Mon, 9 Dec 2013 14:44:15 +0000 (UTC) Received: from mail-qc0-x22b.google.com (mail-qc0-x22b.google.com [IPv6:2607:f8b0:400d:c01::22b]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A5A73100D for ; Mon, 9 Dec 2013 14:44:15 +0000 (UTC) Received: by mail-qc0-f171.google.com with SMTP id c9so2734938qcz.16 for ; Mon, 09 Dec 2013 06:44:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=ivaGL8js7cfaE2I5IhfrR4eLs98ANPhSlwQqrqdK5ds=; b=Yt2tArhOYQuNOSca6IRHcOed1LwGdB1wVcPsy/emdMOEOdmqKOGq3mLv0cIGKtxA8K VFMJW1kEYMuBvbggX8nK2aGjY0smWZt/1C0tb8KYUwBPpgnZdh7OE7D9b+wK5YfcYkaH 7ijkcOpWlYL4y5i6ntBZVgBs8WcTD24ivn9LsqWuiE6SB9nnh+GBVF0XxhyiuP5poZJn lvvWGDa0WOqeMrJn/zfN1/mF6rjIZ/bfYkxpkTkwa55E1LmbecthflRl6cXXSSsfa1Gw o5VF1qqipSTlSODBj1UP5YyNzR/20gpBQjdl565Vq15FhRTG47sYqHt48MNF8YsGiwUV tn8w== MIME-Version: 1.0 X-Received: by 10.224.111.195 with SMTP id t3mr34226253qap.98.1386600254864; Mon, 09 Dec 2013 06:44:14 -0800 (PST) Received: by 10.224.130.194 with HTTP; Mon, 9 Dec 2013 06:44:14 -0800 (PST) In-Reply-To: References: Date: Mon, 9 Dec 2013 22:44:14 +0800 Message-ID: Subject: Re: [PATCH] Add stack unwind support for the functions in .ko From: Howard Su To: freebsd-arm Content-Type: multipart/mixed; boundary=047d7b60457ea31a1d04ed1b07e0 X-Content-Filtered-By: Mailman/MimeDel 2.1.17 X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Dec 2013 14:44:16 -0000 --047d7b60457ea31a1d04ed1b07e0 Content-Type: text/plain; charset=ISO-8859-1 Here is a new version which solve the unreadable $a problem. (the fix is in ddb/db_main.c in the end of the patch.) I attached the diff for review. Howard On Saturday, December 7, 2013, Howard Su wrote: > I need this function when working on dtrace/arm support. the basic idea is > locate the ARM.EXIDX section by the symbol __exidx_start and __exidx_stop. > > To keep it simple, I always look through the link_file_list when unwind > the stack. From the testing, the performance seems ok. > > Also, I implement the count parameter when unwind the stack which can make > 'show threads' output more readable. I also disabled some print output by > #if 0 which makes output more align with the other platform. > > Please review. > > Thanks, > > Howard Su > > > -- -Howard --047d7b60457ea31a1d04ed1b07e0 Content-Type: text/x-patch; charset=US-ASCII; name="unwind.2.patch" Content-Disposition: attachment; filename="unwind.2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: 28885608c4f0bc6a_0.1 ZGlmZiAtLWdpdCBhL3N5cy9hcm0vYXJtL2RiX3RyYWNlLmMgYi9zeXMvYXJtL2FybS9kYl90cmFj ZS5jCmluZGV4IDU3MTE5ZGEuLjExOTQxMmMgMTAwNjQ0Ci0tLSBhL3N5cy9hcm0vYXJtL2RiX3Ry YWNlLmMKKysrIGIvc3lzL2FybS9hcm0vZGJfdHJhY2UuYwpAQCAtMzgsNiArMzgsNyBAQCBfX0ZC U0RJRCgiJEZyZWVCU0QkIik7CiAjaW5jbHVkZSA8c3lzL3Byb2MuaD4KICNpbmNsdWRlIDxzeXMv a2RiLmg+CiAjaW5jbHVkZSA8c3lzL3N0YWNrLmg+CisjaW5jbHVkZSA8c3lzL2xpbmtlci5oPgog I2luY2x1ZGUgPG1hY2hpbmUvYXJtcmVnLmg+CiAjaW5jbHVkZSA8bWFjaGluZS9hc20uaD4KICNp bmNsdWRlIDxtYWNoaW5lL2NwdWZ1bmMuaD4KQEAgLTc5LDEyICs4MCw2IEBAIF9fRkJTRElEKCIk RnJlZUJTRCQiKTsKICNkZWZpbmUJUEMJMTUKIAogLyoKLSAqIFRoZXNlIGFyZSBzZXQgaW4gdGhl IGxpbmtlciBzY3JpcHQuIFRoZWlyIGFkZHJlc3NlcyB3aWxsIGJlCi0gKiBlaXRoZXIgdGhlIHN0 YXJ0IG9yIGVuZCBvZiB0aGUgZXhjZXB0aW9uIHRhYmxlIG9yIGluZGV4LgotICovCi1leHRlcm4g aW50IGV4dGFiX3N0YXJ0LCBleHRhYl9lbmQsIGV4aWR4X3N0YXJ0LCBleGlkeF9lbmQ7Ci0KLS8q CiAgKiBFbnRyeSB0eXBlcy4KICAqIFRoZXNlIGFyZSB0aGUgb25seSBlbnRyeSB0eXBlcyB0aGF0 IGhhdmUgYmVlbiBzZWVuIGluIHRoZSBrZXJuZWwuCiAgKi8KQEAgLTEzMSw4ICsxMjYsMzAgQEAg c3RydWN0IHVud2luZF9zdGF0ZSB7CiBzdGF0aWMgX19pbmxpbmUgaW50MzJfdAogZGJfZXhwYW5k X3ByZWwzMSh1aW50MzJfdCBwcmVsMzEpCiB7CisJcmV0dXJuICgoaW50MzJfdCkocHJlbDMxKSA8 PCAxKSAvIDI7Cit9CisKK3N0cnVjdCBkYl9maW5kX2luZGV4X2NvbnRleHRfdAoreworCWludCB2 YWxpZDsKKwljYWRkcl90IGFkZHI7CisJY2FkZHJfdCBleGlkeF9zdGFydCwgZXhpZHhfZW5kOwor fTsKIAotCXJldHVybiAoKGludDMyX3QpKHByZWwzMSAmIDB4N2ZmZmZmZmZ1KSA8PCAxKSAvIDI7 CitzdGF0aWMgaW50CitkYl9maW5kX2luZGV4X2ZpbGVfY2IobGlua2VyX2ZpbGVfdCBsZiwgdm9p ZCogYXJnKQoreworCXN0cnVjdCBkYl9maW5kX2luZGV4X2NvbnRleHRfdCAqY29udGV4dCA9IChz dHJ1Y3QgZGJfZmluZF9pbmRleF9jb250ZXh0X3QqKWFyZzsKKwlpZiAoY29udGV4dC0+YWRkciA+ PSBsZi0+YWRkcmVzcyAmJiBjb250ZXh0LT5hZGRyIDwgbGYtPmFkZHJlc3MgKyBsZi0+c2l6ZSkK Kwl7CisJCWNvbnRleHQtPmV4aWR4X3N0YXJ0ID0gbGlua2VyX2ZpbGVfbG9va3VwX3N5bWJvbChs ZiwgIl9fZXhpZHhfc3RhcnQiLCAwKTsKKwkJY29udGV4dC0+ZXhpZHhfZW5kID0gbGlua2VyX2Zp bGVfbG9va3VwX3N5bWJvbChsZiwgIl9fZXhpZHhfZW5kIiwgMCk7CisJCWlmIChjb250ZXh0LT5l eGlkeF9zdGFydCAmJiBjb250ZXh0LT5leGlkeF9lbmQpCisJCQljb250ZXh0LT52YWxpZCA9IDE7 CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOwogfQogCiAvKgpAQCAtMTQ4LDEwICsxNjUs MTggQEAgZGJfZmluZF9pbmRleCh1aW50MzJfdCBhZGRyKQogCWludDMyX3QgcHJlbDMxX2FkZHI7 CiAJdWludDMyX3QgZnVuY19hZGRyOwogCi0Jc3RhcnQgPSAoc3RydWN0IHVud2luZF9pZHggKikm ZXhpZHhfc3RhcnQ7CisJc3RydWN0IGRiX2ZpbmRfaW5kZXhfY29udGV4dF90IGNvbnRleHQ7CisJ Y29udGV4dC52YWxpZCA9IDA7CisJY29udGV4dC5hZGRyID0gKGNhZGRyX3QpYWRkcjsKKworCWxp bmtlcl9maWxlX2ZvcmVhY2goZGJfZmluZF9pbmRleF9maWxlX2NiLCAmY29udGV4dCk7CisJaWYg KCFjb250ZXh0LnZhbGlkKQorCQlyZXR1cm4gMDsKKworCXN0YXJ0ID0gKHN0cnVjdCB1bndpbmRf aWR4ICopY29udGV4dC5leGlkeF9zdGFydDsKIAogCW1pbiA9IDA7Ci0JbWF4ID0gKCZleGlkeF9l bmQgLSAmZXhpZHhfc3RhcnQpIC8gMjsKKwltYXggPSAoY29udGV4dC5leGlkeF9lbmQgLSBjb250 ZXh0LmV4aWR4X3N0YXJ0KSAvIDI7CiAKIAl3aGlsZSAobWluICE9IG1heCkgewogCQltaWQgPSBt aW4gKyAobWF4IC0gbWluICsgMSkgLyAyOwpAQCAtMjY5LDcgKzI5NCw3IEBAIGRiX3Vud2luZF9l eGVjX2luc24oc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUpCiAJCS8qIFN0b3AgcHJvY2Vzc2lu ZyAqLwogCQlzdGF0ZS0+ZW50cmllcyA9IDA7CiAKLQl9IGVsc2UgaWYgKChpbnNuID09IElOU05f UE9QX1JFR1MpKSB7CisJfSBlbHNlIGlmIChpbnNuID09IElOU05fUE9QX1JFR1MpIHsKIAkJdW5z aWduZWQgaW50IG1hc2ssIHJlZzsKIAogCQltYXNrID0gZGJfdW53aW5kX2V4ZWNfcmVhZF9ieXRl KHN0YXRlKTsKQEAgLTMwOCw3ICszMzMsNyBAQCBkYl91bndpbmRfZXhlY19pbnNuKHN0cnVjdCB1 bndpbmRfc3RhdGUgKnN0YXRlKQogI2lmIDAKIAlkYl9wcmludGYoImZwID0gJTA4eCwgc3AgPSAl MDh4LCBsciA9ICUwOHgsIHBjID0gJTA4eFxuIiwKIAkgICAgc3RhdGUtPnJlZ2lzdGVyc1tGUF0s IHN0YXRlLT5yZWdpc3RlcnNbU1BdLCBzdGF0ZS0+cmVnaXN0ZXJzW0xSXSwKLQkgICAgc3RhdGUt PnJlZ2lzdGVyc1tQQ10pOworCSAgICBzdGF0ZS0+cmVnaXN0ZXJzW1BDXT9zdGF0ZS0+cmVnaXN0 ZXJzW1BDXTpzdGF0ZS0+c3RhcnRfcGMpOwogI2VuZGlmCiAKIAlyZXR1cm4gMDsKQEAgLTM1Miwz MCArMzc3LDMwIEBAIGRiX3Vud2luZF90YWIoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUpCiB9 CiAKIHN0YXRpYyB2b2lkCi1kYl9zdGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAq c3RhdGUpCitkYl9zdGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUsIGlu dCBjb3VudCkKIHsKIAlzdHJ1Y3QgdW53aW5kX2lkeCAqaW5kZXg7CiAJY29uc3QgY2hhciAqbmFt ZTsKIAlkYl9leHByX3QgdmFsdWU7CiAJZGJfZXhwcl90IG9mZnNldDsKIAljX2RiX3N5bV90IHN5 bTsKKyNpZiAwCiAJdV9pbnQgcmVnLCBpOwogCWNoYXIgKnNlcDsKIAl1aW50MTZfdCB1cGRfbWFz azsKKyNlbmRpZgkKIAlib29sIGZpbmlzaGVkOwogCiAJZmluaXNoZWQgPSBmYWxzZTsKLQl3aGls ZSAoIWZpbmlzaGVkKSB7CisJc3RhdGUtPnN0YXJ0X3BjID0gc3RhdGUtPnJlZ2lzdGVyc1tQQ107 CisJd2hpbGUgKCFmaW5pc2hlZCAmJiBjb3VudC0tKSB7CiAJCS8qIFJlc2V0IHRoZSBtYXNrIG9m IHVwZGF0ZWQgcmVnaXN0ZXJzICovCiAJCXN0YXRlLT51cGRhdGVfbWFzayA9IDA7CiAKLQkJLyog VGhlIHBjIHZhbHVlIGlzIGNvcnJlY3QgYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4sIHNhdmUgaXQg Ki8KLQkJc3RhdGUtPnN0YXJ0X3BjID0gc3RhdGUtPnJlZ2lzdGVyc1tQQ107Ci0KIAkJLyogRmlu ZCB0aGUgaXRlbSB0byBydW4gKi8KIAkJaW5kZXggPSBkYl9maW5kX2luZGV4KHN0YXRlLT5zdGFy dF9wYyk7CiAKLQkJaWYgKGluZGV4LT5pbnNuICE9IEVYSURYX0NBTlRVTldJTkQpIHsKKwkJaWYg KGluZGV4ICYmIGluZGV4LT5pbnNuICE9IEVYSURYX0NBTlRVTldJTkQpIHsKIAkJCWlmIChpbmRl eC0+aW5zbiAmICgxVSA8PCAzMSkpIHsKIAkJCQkvKiBUaGUgZGF0YSBpcyB3aXRoaW4gdGhlIGlu c3RydWN0aW9uICovCiAJCQkJc3RhdGUtPmluc24gPSAmaW5kZXgtPmluc247CkBAIC0zOTYsMTYg KzQyMSwxNyBAQCBkYl9zdGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUp CiAJCQluYW1lID0gIihudWxsKSI7CiAJCX0gZWxzZQogCQkJZGJfc3ltYm9sX3ZhbHVlcyhzeW0s ICZuYW1lLCAmdmFsdWUpOworCiAJCWRiX3ByaW50ZigiJXMoKSBhdCAiLCBuYW1lKTsKIAkJZGJf cHJpbnRzeW0oc3RhdGUtPnN0YXJ0X3BjLCBEQl9TVEdZX1BST0MpOwogCQlkYl9wcmludGYoIlxu Iik7CisjaWYgMAogCQlkYl9wcmludGYoIlx0IHBjID0gMHglMDh4ICBsciA9IDB4JTA4eCAoIiwg c3RhdGUtPnN0YXJ0X3BjLAogCQkgICAgc3RhdGUtPnJlZ2lzdGVyc1tMUl0pOwogCQlkYl9wcmlu dHN5bShzdGF0ZS0+cmVnaXN0ZXJzW0xSXSwgREJfU1RHWV9QUk9DKTsKIAkJZGJfcHJpbnRmKCIp XG4iKTsKIAkJZGJfcHJpbnRmKCJcdCBzcCA9IDB4JTA4eCAgZnAgPSAweCUwOHgiLAogCQkgICAg c3RhdGUtPnJlZ2lzdGVyc1tTUF0sIHN0YXRlLT5yZWdpc3RlcnNbRlBdKTsKLQogCQkvKiBEb24n dCBwcmludCB0aGUgcmVnaXN0ZXJzIHdlIGhhdmUgYWxyZWFkeSBwcmludGVkICovCiAJCXVwZF9t YXNrID0gc3RhdGUtPnVwZGF0ZV9tYXNrICYgCiAJCSAgICB+KCgxIDw8IFNQKSB8ICgxIDw8IEZQ KSB8ICgxIDw8IExSKSB8ICgxIDw8IFBDKSk7CkBAIC00MjUsNiArNDUxLDkgQEAgZGJfc3RhY2tf dHJhY2VfY21kKHN0cnVjdCB1bndpbmRfc3RhdGUgKnN0YXRlKQogCQkJfQogCQl9CiAJCWRiX3By aW50ZigiXG4iKTsKKyNlbmRpZgorCQkvKiBUaGUgcGMgdmFsdWUgaXMgY29ycmVjdCBhbmQgd2ls bCBiZSBvdmVyd3JpdHRlbiwgc2F2ZSBpdCAqLworCQlzdGF0ZS0+c3RhcnRfcGMgPSBzdGF0ZS0+ cmVnaXN0ZXJzW1BDXTsKIAogCQkvKgogCQkgKiBTdG9wIGlmIGRpcmVjdGVkIHRvIGRvIHNvLCBv ciBpZiB3ZSd2ZSB1bndvdW5kIGJhY2sgdG8gdGhlCkBAIC00MzUsMTQgKzQ2NCwxNyBAQCBkYl9z dGFja190cmFjZV9jbWQoc3RydWN0IHVud2luZF9zdGF0ZSAqc3RhdGUpCiAJCSAqIHRoZSBsYXN0 IGZyYW1lIHByaW50ZWQgYmVmb3JlIHlvdSBzZWUgdGhlIHVud2luZCBmYWlsdXJlCiAJCSAqIG1l c3NhZ2UgKG1heWJlIGl0IG5lZWRzIGEgU1RPUF9VTldJTkRJTkcpLgogCQkgKi8KLQkJaWYgKGlu ZGV4LT5pbnNuID09IEVYSURYX0NBTlRVTldJTkQpIHsKLQkJCWRiX3ByaW50ZigiVW5hYmxlIHRv IHVud2luZCBmdXJ0aGVyXG4iKTsKKwkJaWYgKGluZGV4ICYmIGluZGV4LT5pbnNuID09IEVYSURY X0NBTlRVTldJTkQpIHsKKwkJCWlmIChjb3VudCkKKwkJCQlkYl9wcmludGYoIlVuYWJsZSB0byB1 bndpbmQgZnVydGhlclxuIik7CiAJCQlmaW5pc2hlZCA9IHRydWU7CiAJCX0gZWxzZSBpZiAoc3Rh dGUtPnJlZ2lzdGVyc1tQQ10gPCBWTV9NSU5fS0VSTkVMX0FERFJFU1MpIHsKLQkJCWRiX3ByaW50 ZigiVW5hYmxlIHRvIHVud2luZCBpbnRvIHVzZXIgbW9kZVxuIik7CisJCQlpZiAoY291bnQpCisJ CQkJZGJfcHJpbnRmKCJVbmFibGUgdG8gdW53aW5kIGludG8gdXNlciBtb2RlXG4iKTsKIAkJCWZp bmlzaGVkID0gdHJ1ZTsKIAkJfSBlbHNlIGlmIChzdGF0ZS0+dXBkYXRlX21hc2sgPT0gMCkgewot CQkJZGJfcHJpbnRmKCJVbndpbmQgZmFpbHVyZSAobm8gcmVnaXN0ZXJzIGNoYW5nZWQpXG4iKTsK KwkJCWlmIChjb3VudCkKKwkJCQlkYl9wcmludGYoIlVud2luZCBmYWlsdXJlIChubyByZWdpc3Rl cnMgY2hhbmdlZClcbiIpOwogCQkJZmluaXNoZWQgPSB0cnVlOwogCQl9CiAJfQpAQCAtNDc5LDcg KzUxMSw3IEBAIGRiX3N0YWNrX3RyYWNlX2NtZChzdHJ1Y3QgdW53aW5kX3N0YXRlICpzdGF0ZSkK IAogI2lmbmRlZiBfX0FSTV9FQUJJX18JLyogVGhlIGZyYW1lIGZvcm1hdCBpcyBkaWZmZXJlbmQg aW4gQUFQQ1MgKi8KIHN0YXRpYyB2b2lkCi1kYl9zdGFja190cmFjZV9jbWQoZGJfZXhwcl90IGFk ZHIsIGRiX2V4cHJfdCBjb3VudCwgYm9vbGVhbl90IGtlcm5lbF9vbmx5KQorZGJfc3RhY2tfdHJh Y2VfY21kKGRiX2V4cHJfdCBhZGRyLCBpbnQgY291bnQsIGJvb2xlYW5fdCBrZXJuZWxfb25seSkK IHsKIAl1X2ludDMyX3QJKmZyYW1lLCAqbGFzdGZyYW1lOwogCWNfZGJfc3ltX3Qgc3ltOwpAQCAt NjA4LDkgKzY0MCw5IEBAIGRiX3RyYWNlX3RocmVhZChzdHJ1Y3QgdGhyZWFkICp0aHIsIGludCBj b3VudCkKIAkJc3RhdGUucmVnaXN0ZXJzW0xSXSA9IGN0eC0+dW5fMzIucGNiMzJfbHI7CiAJCXN0 YXRlLnJlZ2lzdGVyc1tQQ10gPSBjdHgtPnVuXzMyLnBjYjMyX3BjOwogCi0JCWRiX3N0YWNrX3Ry YWNlX2NtZCgmc3RhdGUpOworCQlkYl9zdGFja190cmFjZV9jbWQoJnN0YXRlLCBjb3VudCk7CiAj ZWxzZQotCQlkYl9zdGFja190cmFjZV9jbWQoY3R4LT51bl8zMi5wY2IzMl9yMTEsIC0xLCBUUlVF KTsKKwkJZGJfc3RhY2tfdHJhY2VfY21kKGN0eC0+dW5fMzIucGNiMzJfcjExLCBjb3VudCwgVFJV RSk7CiAjZW5kaWYKIAl9IGVsc2UKIAkJZGJfdHJhY2Vfc2VsZigpOwpAQCAtNjMyLDcgKzY2NCw3 IEBAIGRiX3RyYWNlX3NlbGYodm9pZCkKIAlzdGF0ZS5yZWdpc3RlcnNbTFJdID0gKHVpbnQzMl90 KV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKTsKIAlzdGF0ZS5yZWdpc3RlcnNbUENdID0gKHVp bnQzMl90KWRiX3RyYWNlX3NlbGY7CiAKLQlkYl9zdGFja190cmFjZV9jbWQoJnN0YXRlKTsKKwlk Yl9zdGFja190cmFjZV9jbWQoJnN0YXRlLCAtMSk7CiAjZWxzZQogCWRiX2FkZHJfdCBhZGRyOwog CmRpZmYgLS1naXQgYS9zeXMvY29uZi9rbW9kLm1rIGIvc3lzL2NvbmYva21vZC5tawppbmRleCBi ZDA1ODc4Li5kMGExZjBmIDEwMDY0NAotLS0gYS9zeXMvY29uZi9rbW9kLm1rCisrKyBiL3N5cy9j b25mL2ttb2QubWsKQEAgLTEzMyw2ICsxMzMsMTYgQEAgQ0ZMQUdTKz0JLW1sb25nY2FsbCAtZm5v LW9taXQtZnJhbWUtcG9pbnRlcgogQ0ZMQUdTKz0JLUcwIC1mbm8tcGljIC1tbm8tYWJpY2FsbHMg LW1sb25nLWNhbGxzCiAuZW5kaWYKIAorLmlmICR7TUFDSElORV9DUFVBUkNIfSA9PSBhcm0KKy5p ZiAhZGVmaW5lZChXSVRIT1VUX0FSTV9FQUJJKQorQ0ZMQUdTKz0gICAgICAgLWZ1bndpbmQtdGFi bGVzCisuaWYgJHtDT01QSUxFUl9UWVBFfSA9PSAiY2xhbmciCisjIGNsYW5nIHJlcXVpcmVzIHVz IHRvIHRlbGwgaXQgdG8gZW1pdCBhc3NlbWJseSB3aXRoIHVud2luZCBpbmZvcm1hdGlvbgorQ0ZM QUdTKz0gICAgICAgLW1sbHZtIC1hcm0tZW5hYmxlLWVoYWJpCisuZW5kaWYKKy5lbmRpZgorLmVu ZGlmCisKIC5pZiBkZWZpbmVkKERFQlVHKSB8fCBkZWZpbmVkKERFQlVHX0ZMQUdTKQogQ1RGRkxB R1MrPQktZwogLmVuZGlmCmRpZmYgLS1naXQgYS9zeXMvY29uZi9sZHNjcmlwdC5hcm0gYi9zeXMv Y29uZi9sZHNjcmlwdC5hcm0KaW5kZXggMGQxYzdlZS4uMjQ4MmNlNyAxMDA2NDQKLS0tIGEvc3lz L2NvbmYvbGRzY3JpcHQuYXJtCisrKyBiL3N5cy9jb25mL2xkc2NyaXB0LmFybQpAQCAtNTcsMTcg KzU3LDExIEBAIFNFQ1RJT05TCiAgIC5wbHQgICAgICA6IHsgKigucGx0KQl9CiAKICAgLiA9IEFM SUdOKDQpOwotICBfZXh0YWJfc3RhcnQgPSAuOwotICBQUk9WSURFKGV4dGFiX3N0YXJ0ID0gLik7 CiAgIC5BUk0uZXh0YWIgOiB7ICooLkFSTS5leHRhYikgfQotICBfZXh0YWIuZW5kID0gLjsKLSAg UFJPVklERShleHRhYl9lbmQgPSAuKTsKIAotICBfZXhpZHhfc3RhcnQgPSAuOwotICBQUk9WSURF KGV4aWR4X3N0YXJ0ID0gLik7CisgIF9fZXhpZHhfc3RhcnQgPSAuOwogICAuQVJNLmV4aWR4IDog eyAqKC5BUk0uZXhpZHgpIH0KLSAgX2V4aWR4X2VuZCA9IC47Ci0gIFBST1ZJREUoZXhpZHhfZW5k ID0gLik7CisgIF9fZXhpZHhfZW5kID0gLjsKIAogICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9y IHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgICB0aGUgc2Ft ZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KZGlmZiAt LWdpdCBhL3N5cy9kZGIvZGJfbWFpbi5jIGIvc3lzL2RkYi9kYl9tYWluLmMKaW5kZXggNmU5Mjg2 Yy4uZjY0YjJlMiAxMDA2NDQKLS0tIGEvc3lzL2RkYi9kYl9tYWluLmMKKysrIGIvc3lzL2RkYi9k Yl9tYWluLmMKQEAgLTg2LDYgKzg2LDI0IEBAIFhfZGJfbG9va3VwKGRiX3N5bXRhYl90ICpzeW10 YWIsIGNvbnN0IGNoYXIgKnN5bWJvbCkKIAlyZXR1cm4gKE5VTEwpOwogfQogCisvKgorICogY2hl Y2sgaWYgdGhlIG5hbWUgaXMgdmFsaWQuCisgKiBpbnZsaWFkIHRoZSBuYW1lICRhLCRkLCV0IGdl bmVyYXRlZCBieSBFTEYgQVJNIHRvb2xjaGFpbgorICovCitzdGF0aWMgaW50CitkYl9pc192YWxp ZF9uYW1lKGNvbnN0IGNoYXIqIG5hbWUpCit7CisJaWYgKG5hbWUgPT0gTlVMTCB8fCBuYW1lWzBd ID09ICdcMCcpCisJCXJldHVybiAwOworCWlmIChuYW1lWzBdID09ICckJyAmJiBzdHJjaHIoImF0 ZCIsIG5hbWVbMV0pIAorCQkmJiBuYW1lWzJdID09ICdcMCcpCisJeworCQlyZXR1cm4gMDsKKwl9 CisKKwlyZXR1cm4gMTsKK30KKwogY19kYl9zeW1fdAogWF9kYl9zZWFyY2hfc3ltYm9sKGRiX3N5 bXRhYl90ICpzeW10YWIsIGRiX2FkZHJfdCBvZmYsIGRiX3N0cmF0ZWd5X3Qgc3RyYXQsCiAgICAg ZGJfZXhwcl90ICpkaWZmcCkKQEAgLTkzLDExICsxMTEsMTYgQEAgWF9kYl9zZWFyY2hfc3ltYm9s KGRiX3N5bXRhYl90ICpzeW10YWIsIGRiX2FkZHJfdCBvZmYsIGRiX3N0cmF0ZWd5X3Qgc3RyYXQs CiAJY19saW5rZXJfc3ltX3QgbHN5bTsKIAlFbGZfU3ltICpzeW0sICptYXRjaDsKIAl1bnNpZ25l ZCBsb25nIGRpZmY7CisJY29uc3QgY2hhciogbmFtZTsKIAogCWlmIChzeW10YWItPnByaXZhdGUg PT0gTlVMTCkgewogCQlpZiAoIWxpbmtlcl9kZGJfc2VhcmNoX3N5bWJvbCgoY2FkZHJfdClvZmYs ICZsc3ltLCAmZGlmZikpIHsKLQkJCSpkaWZmcCA9IChkYl9leHByX3QpZGlmZjsKLQkJCXJldHVy biAoKGNfZGJfc3ltX3QpbHN5bSk7CisJCQlYX2RiX3N5bWJvbF92YWx1ZXMoc3ltdGFiLCAoY19k Yl9zeW1fdClsc3ltLCAmbmFtZSwgTlVMTCk7CisJCQlpZiAoZGJfaXNfdmFsaWRfbmFtZShuYW1l KSkKKwkJCXsKKwkJCQkqZGlmZnAgPSAoZGJfZXhwcl90KWRpZmY7CisJCQkJcmV0dXJuICgoY19k Yl9zeW1fdClsc3ltKTsKKwkJCX0KIAkJfQogCQlyZXR1cm4gKE5VTEwpOwogCX0KQEAgLTExMyw4 ICsxMzYsMTQgQEAgWF9kYl9zZWFyY2hfc3ltYm9sKGRiX3N5bXRhYl90ICpzeW10YWIsIGRiX2Fk ZHJfdCBvZmYsIGRiX3N0cmF0ZWd5X3Qgc3RyYXQsCiAJCSAgICBFTEZfU1RfVFlQRShzeW0tPnN0 X2luZm8pICE9IFNUVF9GVU5DICYmCiAJCSAgICBFTEZfU1RfVFlQRShzeW0tPnN0X2luZm8pICE9 IFNUVF9OT1RZUEUpCiAJCQljb250aW51ZTsKKwogCQlpZiAoKG9mZiAtIHN5bS0+c3RfdmFsdWUp ID4gZGlmZikKIAkJCWNvbnRpbnVlOworCisJCVhfZGJfc3ltYm9sX3ZhbHVlcyhzeW10YWIsIChj X2RiX3N5bV90KXN5bSwgJm5hbWUsIE5VTEwpOworCQlpZiAoIWRiX2lzX3ZhbGlkX25hbWUobmFt ZSkpCisJCQljb250aW51ZTsKKwogCQlpZiAoKG9mZiAtIHN5bS0+c3RfdmFsdWUpIDwgZGlmZikg ewogCQkJZGlmZiA9IG9mZiAtIHN5bS0+c3RfdmFsdWU7CiAJCQltYXRjaCA9IHN5bTsK --047d7b60457ea31a1d04ed1b07e0-- From owner-freebsd-arm@FreeBSD.ORG Thu Dec 12 19:20:07 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 67424964; Thu, 12 Dec 2013 19:20:07 +0000 (UTC) Received: from mail-yh0-x22c.google.com (mail-yh0-x22c.google.com [IPv6:2607:f8b0:4002:c01::22c]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 08BAF1F86; Thu, 12 Dec 2013 19:20:06 +0000 (UTC) Received: by mail-yh0-f44.google.com with SMTP id f64so709874yha.31 for ; Thu, 12 Dec 2013 11:20:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=6fJ1YTjc5rwP2ZAZvf2eIZ9TyVFvnfmHriAeXDhnHkU=; b=rKE8dBvUbvjRlKfOjtCVqgQ0UUMvpB9RJN6uumIgfXSd6cE5r9DbkPUAUMbEtRFWyO B8VBGb7krw+xTW48JykdAHKZ+fvT5MBiJ4Ovp+B/Rx3U0MjNVkL8e8z/BMiYX6fpOgYn srE3FD1wlmylWliqeeSUVPDzsQcpyfaq42Nn1OQw7ooq7799NkzWGFE01sjC6VyDLiUe dEqMi6rHf+Jqz5l/LAayoOKwwsz4E7T6kBsnJnHXSdCwMWnKS3lFAqOQglt17hHr8moH gWfavt5iHFlPU9E/zQajW7LI6QlEcYP/BMsSSSZo9gveZt4QungnrZ0jHE1AznP0gYzF L3tg== X-Received: by 10.236.139.198 with SMTP id c46mr7518847yhj.78.1386876005676; Thu, 12 Dec 2013 11:20:05 -0800 (PST) Received: from [192.168.1.7] ([187.120.137.162]) by mx.google.com with ESMTPSA id r64sm35607308yhc.23.2013.12.12.11.20.02 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 12 Dec 2013 11:20:04 -0800 (PST) Content-Type: multipart/mixed; boundary="Apple-Mail=_8AC709E8-28F7-4B23-B62B-026FF9B7E725" Mime-Version: 1.0 (Mac OS X Mail 7.0 \(1822\)) Subject: Re: FDT Support for GPIO (gpiobus and friends) From: Luiz Otavio O Souza In-Reply-To: <7DBC8BB4-8CEF-48E0-BB6B-40C00F71284A@gmail.com> Date: Thu, 12 Dec 2013 17:19:52 -0200 Message-Id: <598EB94E-817C-47E9-BBA5-F6E6D5A1B2BA@gmail.com> References: <20121205.060056.592894859995638978.hrs@allbsd.org> <7DBC8BB4-8CEF-48E0-BB6B-40C00F71284A@gmail.com> To: freebsd-arch@FreeBSD.org X-Mailer: Apple Mail (2.1822) Cc: freebsd-arm@freebsd.org X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Dec 2013 19:20:07 -0000 --Apple-Mail=_8AC709E8-28F7-4B23-B62B-026FF9B7E725 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252 On Nov 26, 2013, at 4:44 PM, Luiz Otavio O Souza = wrote: > Right, so after playing a little bit with IIC and SPI on FDT i have = now a patch, which i believe, is more clean and complete to support an = OFW GPIO bus in the same way as it has been done with IIC and SPI. >=20 > The first patch (001-ofw-gpiobus.diff) implements the OFW GPIO bus and = all the changes to make possible to the available gpio devices (gpioled = and gpioiic) attach to it. >=20 > The second patch (002-iicbb-ofw-iicbus.diff) implements the changes to = make the OFW IIC bus attach to a gpioiic bit-banging (iicbb(4)) kind of = driver. >=20 > The third patch (006-ofw-gpio-man.diff) has the manual changes for = gpioiic and gpioled. >=20 > I would appreciate if you people could take a look and give me some = feedback. Okay, so here are the updated patches (updated to apply clean after the = last changes). I=92ve added one missing patch (000-gpio-node.diff) which gives access = to FDT node of the gpio controller to GPIO OFW bus. For now, this last patch is only for RPi and BBB. Both are tested and = known to work with gpioled(4) and gpioiic(4). There is an additional patch (000-bbb-gpioled.diff) which shows what is = needed to setup gpioled on BBB. In the next days, i=92ll check the changes for regressions with some non = FDT boards and if everything is okay and nobody objects, i=92ll ask for = permission to commit it. Comments ? Luiz --Apple-Mail=_8AC709E8-28F7-4B23-B62B-026FF9B7E725 Content-Disposition: attachment; filename=001-ofw-gpiobus.diff Content-Type: application/octet-stream; name="001-ofw-gpiobus.diff" Content-Transfer-Encoding: 7bit Index: sys/conf/files =================================================================== --- sys/conf/files (revision 259130) +++ sys/conf/files (working copy) @@ -1436,6 +1436,7 @@ dev/gpio/gpioled.c optional gpioled dev/gpio/gpio_if.m optional gpio dev/gpio/gpiobus_if.m optional gpio +dev/gpio/ofw_gpiobus.c optional fdt gpio dev/hatm/if_hatm.c optional hatm pci dev/hatm/if_hatm_intr.c optional hatm pci dev/hatm/if_hatm_ioctl.c optional hatm pci Index: sys/dev/gpio/gpiobus.c =================================================================== --- sys/dev/gpio/gpiobus.c (revision 259130) +++ sys/dev/gpio/gpiobus.c (working copy) @@ -46,7 +46,6 @@ #include "gpio_if.h" #include "gpiobus_if.h" -static void gpiobus_print_pins(struct gpiobus_ivar *); static int gpiobus_parse_pins(struct gpiobus_softc *, device_t, int); static int gpiobus_probe(device_t); static int gpiobus_attach(device_t); @@ -73,17 +72,7 @@ static int gpiobus_pin_get(device_t, device_t, uint32_t, unsigned int*); static int gpiobus_pin_toggle(device_t, device_t, uint32_t); -#define GPIOBUS_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) -#define GPIOBUS_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) -#define GPIOBUS_LOCK_INIT(_sc) \ - mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \ - "gpiobus", MTX_DEF) -#define GPIOBUS_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); -#define GPIOBUS_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); -#define GPIOBUS_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); - - -static void +void gpiobus_print_pins(struct gpiobus_ivar *devi) { int range_start, range_stop, need_coma; Index: sys/dev/gpio/gpiobusvar.h =================================================================== --- sys/dev/gpio/gpiobusvar.h (revision 259130) +++ sys/dev/gpio/gpiobusvar.h (working copy) @@ -30,13 +30,26 @@ #ifndef __GPIOBUS_H__ #define __GPIOBUS_H__ +#include "opt_platform.h" + #include #include #include -#define GPIOBUS_IVAR(d) (struct gpiobus_ivar *) device_get_ivars(d) -#define GPIOBUS_SOFTC(d) (struct gpiobus_softc *) device_get_softc(d) +#ifdef FDT +#include +#endif +#define GPIOBUS_IVAR(d) (struct gpiobus_ivar *) device_get_ivars(d) +#define GPIOBUS_SOFTC(d) (struct gpiobus_softc *) device_get_softc(d) +#define GPIOBUS_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) +#define GPIOBUS_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) +#define GPIOBUS_LOCK_INIT(_sc) mtx_init(&_sc->sc_mtx, \ + device_get_nameunit(_sc->sc_dev), "gpiobus", MTX_DEF) +#define GPIOBUS_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx) +#define GPIOBUS_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED) +#define GPIOBUS_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED) + struct gpiobus_softc { struct mtx sc_mtx; /* bus mutex */ @@ -54,4 +67,11 @@ uint32_t *pins; /* pins map */ }; +void gpiobus_print_pins(struct gpiobus_ivar *); +#ifdef FDT +device_t ofw_gpiobus_add_fdt_child(device_t, phandle_t); +#endif + +extern driver_t gpiobus_driver; + #endif /* __GPIOBUS_H__ */ Index: sys/dev/gpio/gpioiic.c =================================================================== --- sys/dev/gpio/gpioiic.c (revision 259130) +++ sys/dev/gpio/gpioiic.c (working copy) @@ -28,6 +28,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_platform.h" + #include #include #include @@ -38,6 +40,12 @@ #include #include "gpiobus_if.h" +#ifdef FDT +#include +#include +#include +#endif + #include #include @@ -71,6 +79,10 @@ gpioiic_probe(device_t dev) { +#ifdef FDT + if (!ofw_bus_is_compatible(dev, "gpioiic")) + return (ENXIO); +#endif device_set_desc(dev, "GPIO I2C bit-banging driver"); return (0); @@ -81,6 +93,10 @@ { struct gpioiic_softc *sc = device_get_softc(dev); device_t bitbang; +#ifdef FDT + phandle_t node; + pcell_t pin; +#endif sc->sc_dev = dev; sc->sc_busdev = device_get_parent(dev); @@ -91,6 +107,15 @@ device_get_unit(dev), "sda", &sc->sda_pin)) sc->sda_pin = SDA_PIN_DEFAULT; +#ifdef FDT + if ((node = ofw_bus_get_node(dev)) == -1) + return (ENXIO); + if (OF_getencprop(node, "scl", &pin, sizeof(pin)) > 0) + sc->scl_pin = (int)pin; + if (OF_getencprop(node, "sda", &pin, sizeof(pin)) > 0) + sc->sda_pin = (int)pin; +#endif + /* add generic bit-banging code */ bitbang = device_add_child(dev, "iicbb", -1); device_probe_and_attach(bitbang); @@ -209,6 +234,16 @@ return (IIC_ENOADDR); } +#ifdef FDT +static phandle_t +gpioiic_get_node(device_t bus, device_t dev) +{ + + /* We only have one child, the iicbb, which needs our own node. */ + return (ofw_bus_get_node(bus)); +} +#endif + static devclass_t gpioiic_devclass; static device_method_t gpioiic_methods[] = { @@ -225,6 +260,11 @@ DEVMETHOD(iicbb_getscl, gpioiic_getscl), DEVMETHOD(iicbb_reset, gpioiic_reset), +#ifdef FDT + /* OFW bus interface */ + DEVMETHOD(ofw_bus_get_node, gpioiic_get_node), +#endif + { 0, 0 } }; Index: sys/dev/gpio/gpioled.c =================================================================== --- sys/dev/gpio/gpioled.c (revision 259130) +++ sys/dev/gpio/gpioled.c (working copy) @@ -27,6 +27,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_platform.h" + #include #include #include @@ -39,6 +41,12 @@ #include #include +#ifdef FDT +#include +#include +#include +#endif + #include #include #include "gpiobus_if.h" @@ -84,10 +92,65 @@ GPIOLED_UNLOCK(sc); } +#ifdef FDT +static void +gpioled_identify(driver_t *driver, device_t bus) +{ + phandle_t child, leds, root; + + root = OF_finddevice("/"); + if (root == 0) + return; + leds = fdt_find_compatible(root, "gpio-leds", 1); + if (leds == 0) + return; + + /* Traverse the 'gpio-leds' node and add its children. */ + for (child = OF_child(leds); child != 0; child = OF_peer(child)) + if (ofw_gpiobus_add_fdt_child(bus, child) == NULL) + continue; +} +#endif + static int gpioled_probe(device_t dev) { +#ifdef FDT + int match; + phandle_t node; + char *compat; + + /* + * We can match against our own node compatible string and also against + * our parent node compatible string. The first is normally used to + * describe leds on a gpiobus and the later when there is a common node + * compatible with 'gpio-leds' which is used to concentrate all the + * leds nodes on the dts. + */ + match = 0; + if (ofw_bus_is_compatible(dev, "gpioled")) + match = 1; + + if (match == 0) { + if ((node = ofw_bus_get_node(dev)) == -1) + return (ENXIO); + if ((node = OF_parent(node)) == -1) + return (ENXIO); + if (OF_getprop_alloc(node, "compatible", 1, + (void **)&compat) == -1) + return (ENXIO); + + if (strcasecmp(compat, "gpio-leds") == 0) + match = 1; + + free(compat, M_OFWPROP); + } + + if (match == 0) + return (ENXIO); +#endif device_set_desc(dev, "GPIO led"); + return (0); } @@ -95,18 +158,35 @@ gpioled_attach(device_t dev) { struct gpioled_softc *sc; +#ifdef FDT + phandle_t node; + char *name; +#else const char *name; +#endif sc = device_get_softc(dev); sc->sc_dev = dev; sc->sc_busdev = device_get_parent(dev); GPIOLED_LOCK_INIT(sc); +#ifdef FDT + name = NULL; + if ((node = ofw_bus_get_node(dev)) == -1) + return (ENXIO); + if (OF_getprop_alloc(node, "label", 1, (void **)&name) == -1) + OF_getprop_alloc(node, "name", 1, (void **)&name); +#else if (resource_string_value(device_get_name(dev), device_get_unit(dev), "name", &name)) name = NULL; +#endif sc->sc_leddev = led_create(gpioled_control, sc, name ? name : device_get_nameunit(dev)); +#ifdef FDT + if (name != NULL) + free(name, M_OFWPROP); +#endif return (0); } @@ -129,6 +209,9 @@ static device_method_t gpioled_methods[] = { /* Device interface */ +#ifdef FDT + DEVMETHOD(device_identify, gpioled_identify), +#endif DEVMETHOD(device_probe, gpioled_probe), DEVMETHOD(device_attach, gpioled_attach), DEVMETHOD(device_detach, gpioled_detach), --- /dev/null 2013-12-12 17:00:00.000000000 -0200 +++ sys/dev/gpio/ofw_gpiobus.c 2013-11-25 10:15:00.322070491 -0200 @@ -0,0 +1,342 @@ +/*- + * Copyright (c) 2009, Nathan Whitehorn + * Copyright (c) 2013, Luiz Otavio O Souza + * Copyright (c) 2013 The FreeBSD Foundation + * All rights reserved. + * + * 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 unmodified, 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 ``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 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. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +#include "gpio_if.h" +#include "gpiobus_if.h" + +struct ofw_gpiobus_devinfo { + struct gpiobus_ivar opd_dinfo; + struct ofw_bus_devinfo opd_obdinfo; +}; + +static int ofw_gpiobus_parse_gpios(struct gpiobus_softc *, + struct gpiobus_ivar *, phandle_t); +static struct ofw_gpiobus_devinfo *ofw_gpiobus_setup_devinfo(device_t, + phandle_t); +static void ofw_gpiobus_destroy_devinfo(struct ofw_gpiobus_devinfo *); + +device_t +ofw_gpiobus_add_fdt_child(device_t bus, phandle_t child) +{ + struct ofw_gpiobus_devinfo *dinfo; + device_t childdev; + + /* + * Set up the GPIO child and OFW bus layer devinfo and add it to bus. + */ + dinfo = ofw_gpiobus_setup_devinfo(bus, child); + if (dinfo == NULL) + return (NULL); + childdev = device_add_child(bus, NULL, -1); + if (childdev == NULL) { + device_printf(bus, "could not add child: %s\n", + dinfo->opd_obdinfo.obd_name); + ofw_gpiobus_destroy_devinfo(dinfo); + return (NULL); + } + device_set_ivars(childdev, dinfo); + + return (childdev); +} + +static int +ofw_gpiobus_parse_gpios(struct gpiobus_softc *sc, struct gpiobus_ivar *dinfo, + phandle_t child) +{ + int i, len; + pcell_t *gpios; + phandle_t gpio; + + /* Check and process 'status' property. */ + if (!(fdt_is_enabled(child))) + return (ENXIO); + + /* Retrieve the gpios property. */ + if ((len = OF_getproplen(child, "gpios")) < 0) + return (EINVAL); + gpios = malloc(len, M_DEVBUF, M_NOWAIT | M_ZERO); + if (gpios == NULL) + return (ENOMEM); + if (OF_getencprop(child, "gpios", gpios, len) < 0) { + free(gpios, M_DEVBUF); + return (EINVAL); + } + + /* + * Each 'gpios' entry must contain 4 pcells. + * The first one is the GPIO controller phandler. + * Then the last three are the GPIO pin, the GPIO pin direction and + * the GPIO pin flags. + */ + if ((len / sizeof(pcell_t)) % 4) { + free(gpios, M_DEVBUF); + return (EINVAL); + } + dinfo->npins = len / (sizeof(pcell_t) * 4); + dinfo->pins = malloc(sizeof(uint32_t) * dinfo->npins, M_DEVBUF, + M_NOWAIT | M_ZERO); + if (dinfo->pins == NULL) { + free(gpios, M_DEVBUF); + return (ENOMEM); + } + + for (i = 0; i < dinfo->npins; i++) { + + /* Verify if we're attaching to the correct gpio controller. */ + gpio = OF_xref_phandle(gpios[i * 4 + 0]); + if (!OF_hasprop(gpio, "gpio-controller") || + gpio != ofw_bus_get_node(sc->sc_dev)) { + free(dinfo->pins, M_DEVBUF); + free(gpios, M_DEVBUF); + return (EINVAL); + } + + /* Get the GPIO pin number. */ + dinfo->pins[i] = gpios[i * 4 + 1]; + /* gpios[i * 4 + 2] - GPIO pin direction */ + /* gpios[i * 4 + 3] - GPIO pin flags */ + + if (dinfo->pins[i] > sc->sc_npins) { + device_printf(sc->sc_busdev, + "invalid pin %d, max: %d\n", + dinfo->pins[i], sc->sc_npins - 1); + free(dinfo->pins, M_DEVBUF); + free(gpios, M_DEVBUF); + return (EINVAL); + } + + /* + * Mark pin as mapped and give warning if it's already mapped. + */ + if (sc->sc_pins_mapped[dinfo->pins[i]]) { + device_printf(sc->sc_busdev, + "warning: pin %d is already mapped\n", + dinfo->pins[i]); + free(dinfo->pins, M_DEVBUF); + free(gpios, M_DEVBUF); + return (EINVAL); + } + sc->sc_pins_mapped[dinfo->pins[i]] = 1; + } + + free(gpios, M_DEVBUF); + + return (0); +} + +static struct ofw_gpiobus_devinfo * +ofw_gpiobus_setup_devinfo(device_t dev, phandle_t node) +{ + struct gpiobus_softc *sc; + struct ofw_gpiobus_devinfo *dinfo; + + sc = device_get_softc(dev); + dinfo = malloc(sizeof(*dinfo), M_DEVBUF, M_NOWAIT | M_ZERO); + if (dinfo == NULL) + return (NULL); + if (ofw_bus_gen_setup_devinfo(&dinfo->opd_obdinfo, node) != 0) { + free(dinfo, M_DEVBUF); + return (NULL); + } + + /* Parse the gpios property for the child. */ + if (ofw_gpiobus_parse_gpios(sc, &dinfo->opd_dinfo, node) != 0) { + ofw_bus_gen_destroy_devinfo(&dinfo->opd_obdinfo); + free(dinfo, M_DEVBUF); + return (NULL); + } + + return (dinfo); +} + +static void +ofw_gpiobus_destroy_devinfo(struct ofw_gpiobus_devinfo *dinfo) +{ + + ofw_bus_gen_destroy_devinfo(&dinfo->opd_obdinfo); + free(dinfo, M_DEVBUF); +} + +static int +ofw_gpiobus_probe(device_t dev) +{ + + if (ofw_bus_get_node(dev) == -1) + return (ENXIO); + device_set_desc(dev, "OFW GPIO bus"); + + return (0); +} + +static int +ofw_gpiobus_attach(device_t dev) +{ + struct gpiobus_softc *sc; + phandle_t child; + + sc = GPIOBUS_SOFTC(dev); + sc->sc_busdev = dev; + sc->sc_dev = device_get_parent(dev); + + /* Read the pin max. value */ + if (GPIO_PIN_MAX(sc->sc_dev, &sc->sc_npins) != 0) + return (ENXIO); + + KASSERT(sc->sc_npins != 0, ("GPIO device with no pins")); + + /* + * Increase to get number of pins. + */ + sc->sc_npins++; + + sc->sc_pins_mapped = malloc(sizeof(int) * sc->sc_npins, M_DEVBUF, + M_NOWAIT | M_ZERO); + + if (!sc->sc_pins_mapped) + return (ENOMEM); + + /* Init the bus lock. */ + GPIOBUS_LOCK_INIT(sc); + + bus_generic_probe(dev); + bus_enumerate_hinted_children(dev); + + /* + * Attach the children represented in the device tree. + */ + for (child = OF_child(ofw_bus_get_node(dev)); child != 0; + child = OF_peer(child)) + if (ofw_gpiobus_add_fdt_child(dev, child) == NULL) + continue; + + return (bus_generic_attach(dev)); +} + +static device_t +ofw_gpiobus_add_child(device_t dev, u_int order, const char *name, int unit) +{ + device_t child; + struct ofw_gpiobus_devinfo *devi; + + child = device_add_child_ordered(dev, order, name, unit); + if (child == NULL) + return (child); + devi = malloc(sizeof(struct ofw_gpiobus_devinfo), M_DEVBUF, + M_NOWAIT | M_ZERO); + if (devi == NULL) { + device_delete_child(dev, child); + return (0); + } + + /* + * NULL all the OFW-related parts of the ivars for non-OFW + * children. + */ + devi->opd_obdinfo.obd_node = -1; + devi->opd_obdinfo.obd_name = NULL; + devi->opd_obdinfo.obd_compat = NULL; + devi->opd_obdinfo.obd_type = NULL; + devi->opd_obdinfo.obd_model = NULL; + + device_set_ivars(child, devi); + + return (child); +} + +static int +ofw_gpiobus_print_child(device_t dev, device_t child) +{ + struct ofw_gpiobus_devinfo *devi; + int retval = 0; + + devi = device_get_ivars(child); + retval += bus_print_child_header(dev, child); + retval += printf(" at pin(s) "); + gpiobus_print_pins(&devi->opd_dinfo); + retval += bus_print_child_footer(dev, child); + + return (retval); +} + +static const struct ofw_bus_devinfo * +ofw_gpiobus_get_devinfo(device_t bus, device_t dev) +{ + struct ofw_gpiobus_devinfo *dinfo; + + dinfo = device_get_ivars(dev); + + return (&dinfo->opd_obdinfo); +} + +static device_method_t ofw_gpiobus_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, ofw_gpiobus_probe), + DEVMETHOD(device_attach, ofw_gpiobus_attach), + + /* Bus interface */ + DEVMETHOD(bus_child_pnpinfo_str, ofw_bus_gen_child_pnpinfo_str), + DEVMETHOD(bus_print_child, ofw_gpiobus_print_child), + DEVMETHOD(bus_add_child, ofw_gpiobus_add_child), + + /* ofw_bus interface */ + DEVMETHOD(ofw_bus_get_devinfo, ofw_gpiobus_get_devinfo), + DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat), + DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model), + DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name), + DEVMETHOD(ofw_bus_get_node, ofw_bus_gen_get_node), + DEVMETHOD(ofw_bus_get_type, ofw_bus_gen_get_type), + + DEVMETHOD_END +}; + +static devclass_t ofwgpiobus_devclass; + +DEFINE_CLASS_1(gpiobus, ofw_gpiobus_driver, ofw_gpiobus_methods, + sizeof(struct gpiobus_softc), gpiobus_driver); +DRIVER_MODULE(ofw_gpiobus, gpio, ofw_gpiobus_driver, ofwgpiobus_devclass, 0, 0); +MODULE_VERSION(ofw_gpiobus, 1); +MODULE_DEPEND(ofw_gpiobus, gpiobus, 1, 1, 1); --Apple-Mail=_8AC709E8-28F7-4B23-B62B-026FF9B7E725 Content-Disposition: attachment; filename=002-iicbb-ofw-iicbus.diff Content-Type: application/octet-stream; name="002-iicbb-ofw-iicbus.diff" Content-Transfer-Encoding: 7bit Index: sys/dev/iicbus/iicbb.c =================================================================== --- sys/dev/iicbus/iicbb.c (revision 258138) +++ sys/dev/iicbus/iicbb.c (working copy) @@ -43,6 +43,8 @@ * */ +#include "opt_platform.h" + #include #include #include @@ -50,6 +52,11 @@ #include #include +#ifdef FDT +#include +#include +#include +#endif #include #include @@ -77,6 +84,9 @@ static int iicbb_read(device_t, char *, int, int *, int, int); static int iicbb_reset(device_t, u_char, u_char, u_char *); static int iicbb_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs); +#ifdef FDT +static phandle_t iicbb_get_node(device_t, device_t); +#endif static device_method_t iicbb_methods[] = { /* device interface */ @@ -98,6 +108,11 @@ DEVMETHOD(iicbus_reset, iicbb_reset), DEVMETHOD(iicbus_transfer, iicbb_transfer), +#ifdef FDT + /* ofw_bus interface */ + DEVMETHOD(ofw_bus_get_node, iicbb_get_node), +#endif + { 0, 0 } }; @@ -154,6 +169,16 @@ return (0); } +#ifdef FDT +static phandle_t +iicbb_get_node(device_t bus, device_t dev) +{ + + /* We only have one child, the I2C bus, which needs our own node. */ + return (ofw_bus_get_node(bus)); +} +#endif + static void iicbb_child_detached( device_t dev, device_t child ) { Index: sys/dev/ofw/ofw_iicbus.c =================================================================== --- sys/dev/ofw/ofw_iicbus.c (revision 258138) +++ sys/dev/ofw/ofw_iicbus.c (working copy) @@ -80,6 +80,7 @@ DEFINE_CLASS_1(iicbus, ofw_iicbus_driver, ofw_iicbus_methods, sizeof(struct iicbus_softc), iicbus_driver); +DRIVER_MODULE(ofw_iicbus, iicbb, ofw_iicbus_driver, ofwiicbus_devclass, 0, 0); DRIVER_MODULE(ofw_iicbus, iichb, ofw_iicbus_driver, ofwiicbus_devclass, 0, 0); MODULE_VERSION(ofw_iicbus, 1); MODULE_DEPEND(ofw_iicbus, iicbus, 1, 1, 1); --Apple-Mail=_8AC709E8-28F7-4B23-B62B-026FF9B7E725 Content-Disposition: attachment; filename=006-ofw-gpio-man.diff Content-Type: application/octet-stream; name="006-ofw-gpio-man.diff" Content-Transfer-Encoding: 7bit Index: share/man/man4/gpioiic.4 =================================================================== --- share/man/man4/gpioiic.4 (revision 258550) +++ share/man/man4/gpioiic.4 (working copy) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 5, 2013 +.Dd November 26, 2013 .Dt GPIOIIC 4 .Os .Sh NAME @@ -73,12 +73,75 @@ .Va hint.gpioiic.%d.pins should be used as the SCLOCK source. +Optional, defaults to 0. .It Va hint.gpioiic.%d.sda Indicates which bit in the .Va hint.gpioiic.%d.pins should be used as the SDATA source. +Optional, defaults to 1. .El +.Pp +On a +.Xr FDT 4 +based system, like +.Li ARM , the dts part for a +.Nm gpioiic +device usually looks like: +.Bd -literal +gpio: gpio { + + gpio-controller; + ... + + gpioiic0 { + compatible = "gpioiic"; + /* + * Attach to GPIO pins 21 and 22. Set them + * initially as inputs. + */ + gpios = <&gpio 21 1 0 + &gpio 22 1 0>; + scl = <0>; /* GPIO pin 21 */ + sda = <1>; /* GPIO pin 22 */ + + /* This is an example of a gpioiic child. */ + gpioiic-child0 { + compatible = "lm75"; + i2c-address = <0x9e>; + }; + }; +}; +.Ed +.Pp +Where: +.Bl -tag -width ".Va compatible" +.It Va compatible +Should always be set to "gpioiic". +.It Va gpios +The +.Va gpios +property indicates which GPIO pins should be used for SCLOCK and SDATA +on the GPIO IIC bit-banging bus. +For more details about the +.Va gpios +property, please consult +.Pa /usr/src/sys/boot/fdt/dts/bindings-gpio.txt . +.It Va scl +The +.Va scl +option indicates which bit in the +.Va gpios +should be used as the SCLOCK source. +Optional, defaults to 0. +.It Va sda +The +.Va sda +option indicates which bit in the +.Va gpios +should be used as the SDATA source. +Optional, defaults to 1. +.El .Sh SEE ALSO .Xr gpio 4 , .Xr gpioled 4 , Index: share/man/man4/gpioled.4 =================================================================== --- share/man/man4/gpioled.4 (revision 258550) +++ share/man/man4/gpioled.4 (working copy) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 5, 2013 +.Dd November 26, 2013 .Dt GPIOLED 4 .Os .Sh NAME @@ -68,6 +68,73 @@ Please note that this mask should only ever have one bit set (any others bits - i.e., pins - will be ignored). .El +.Pp +On a +.Xr FDT 4 +based system, like +.Li ARM , the dts part for a +.Nm gpioled +device usually looks like: +.Bd -literal +gpio: gpio { + + gpio-controller; + ... + + led0 { + compatible = "gpioled"; + gpios = <&gpio 16 2 0>; /* GPIO pin 16. */ + name = "ok"; + }; + + led1 { + compatible = "gpioled"; + gpios = <&gpio 17 2 0>; /* GPIO pin 17. */ + name = "user-led1"; + }; +}; +.Ed +.Pp +And optionally, you can choose combine all the leds under a single +.Dq gpio-leds +compatible node: +.Bd -literal +simplebus0 { + + ... + + leds { + compatible = "gpio-leds"; + + led0 { + gpios = <&gpio 16 2 0>; + name = "ok" + }; + + led1 { + gpios = <&gpio 17 2 0>; + name = "user-led1" + }; + }; +}; +.Ed +.Pp +Both methods are equally supported and it is possible to have the leds +defined with any sort of mix between the methods. +The only restriction is that a GPIO pin cannot be mapped by two different +(gpio)leds. +.Pp +For more details about the +.Va gpios +property, please consult +.Pa /usr/src/sys/boot/fdt/dts/bindings-gpio.txt . +.Pp +The property +.Va name +is the arbitrary name of device in +.Pa /dev/led/ +to create for +.Xr led 4 . .Sh SEE ALSO .Xr gpio 4 , .Xr led 4 , --Apple-Mail=_8AC709E8-28F7-4B23-B62B-026FF9B7E725 Content-Disposition: attachment; filename=000-gpio-node.diff Content-Type: application/octet-stream; x-unix-mode=0644; name="000-gpio-node.diff" Content-Transfer-Encoding: 7bit Index: sys/arm/ti/ti_gpio.c =================================================================== --- sys/arm/ti/ti_gpio.c (revision 258855) +++ sys/arm/ti/ti_gpio.c (working copy) @@ -788,6 +788,14 @@ return(0); } +static phandle_t +ti_gpio_get_node(device_t bus, device_t dev) +{ + + /* We only have one child, the GPIO bus, which needs our own node. */ + return (ofw_bus_get_node(bus)); +} + static device_method_t ti_gpio_methods[] = { DEVMETHOD(device_probe, ti_gpio_probe), DEVMETHOD(device_attach, ti_gpio_attach), @@ -802,6 +810,10 @@ DEVMETHOD(gpio_pin_get, ti_gpio_pin_get), DEVMETHOD(gpio_pin_set, ti_gpio_pin_set), DEVMETHOD(gpio_pin_toggle, ti_gpio_pin_toggle), + + /* ofw_bus interface */ + DEVMETHOD(ofw_bus_get_node, ti_gpio_get_node), + {0, 0}, }; Index: sys/arm/broadcom/bcm2835/bcm2835_gpio.c =================================================================== --- sys/arm/broadcom/bcm2835/bcm2835_gpio.c (revision 258855) +++ sys/arm/broadcom/bcm2835/bcm2835_gpio.c (working copy) @@ -762,6 +762,14 @@ return (EBUSY); } +static phandle_t +bcm_gpio_get_node(device_t bus, device_t dev) +{ + + /* We only have one child, the GPIO bus, which needs our own node. */ + return (ofw_bus_get_node(bus)); +} + static device_method_t bcm_gpio_methods[] = { /* Device interface */ DEVMETHOD(device_probe, bcm_gpio_probe), @@ -778,6 +786,9 @@ DEVMETHOD(gpio_pin_set, bcm_gpio_pin_set), DEVMETHOD(gpio_pin_toggle, bcm_gpio_pin_toggle), + /* ofw_bus interface */ + DEVMETHOD(ofw_bus_get_node, bcm_gpio_get_node), + DEVMETHOD_END }; --Apple-Mail=_8AC709E8-28F7-4B23-B62B-026FF9B7E725 Content-Disposition: attachment; filename=000-bbb-gpioled.diff Content-Type: application/octet-stream; name="000-bbb-gpioled.diff" Content-Transfer-Encoding: 7bit Index: sys/arm/conf/BEAGLEBONE =================================================================== --- sys/arm/conf/BEAGLEBONE (revision 258798) +++ sys/arm/conf/BEAGLEBONE (working copy) @@ -101,6 +101,7 @@ # GPIO device gpio +device gpioled # USB support device usb Index: sys/boot/fdt/dts/beaglebone-black.dts =================================================================== --- sys/boot/fdt/dts/beaglebone-black.dts (revision 258798) +++ sys/boot/fdt/dts/beaglebone-black.dts (working copy) @@ -147,6 +147,30 @@ } }; + leds { + compatible = "gpio-leds"; + + led1 { + gpios = <&GPIO 53 2 0>; + name = "led1"; + }; + + led2 { + gpios = <&GPIO 54 2 0>; + name = "led2"; + }; + + led3 { + gpios = <&GPIO 55 2 0>; + name = "led3"; + }; + + led4 { + gpios = <&GPIO 56 2 0>; + name = "led4"; + }; + }; + chosen { stdin = "uart0"; stdout = "uart0"; --Apple-Mail=_8AC709E8-28F7-4B23-B62B-026FF9B7E725-- From owner-freebsd-arm@FreeBSD.ORG Sat Dec 14 21:17:54 2013 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E792C95A for ; Sat, 14 Dec 2013 21:17:54 +0000 (UTC) Received: from mailout10.t-online.de (mailout10.t-online.de [194.25.134.21]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9A3D61F26 for ; Sat, 14 Dec 2013 21:17:54 +0000 (UTC) Received: from fwd28.aul.t-online.de (fwd28.aul.t-online.de ) by mailout10.t-online.de with smtp id 1VrwM1-00028Z-QX; Sat, 14 Dec 2013 22:02:29 +0100 Received: from mail.juergendankoweit.local (ZYW5D2Zvrhw+PhGhpvUep9Th6gDh1Vrh39TRGd1rQFQsoBc1hifsLsIx50uUvrqg5a@[91.55.224.197]) by fwd28.t-online.de with esmtp id 1VrwLw-3wRNTs0; Sat, 14 Dec 2013 22:02:24 +0100 Received: from routerdeluxe.juergendankoweit.local (unknown [127.0.0.1]) by mail.juergendankoweit.local (Postfix) with ESMTP id A9521284BC for ; Sat, 14 Dec 2013 22:02:22 +0100 (CET) X-Virus-Scanned: amavisd-new at juergendankoweit.local Received: from mail.juergendankoweit.local ([127.0.0.1]) by routerdeluxe.juergendankoweit.local (mail.juergendankoweit.local [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id j9KOUQgjORCE for ; Sat, 14 Dec 2013 22:02:19 +0100 (CET) Received: from t400localhost.juergendankoweit.local (t400localhost.juergendankoweit.local [192.168.1.191]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mail.juergendankoweit.local (Postfix) with ESMTPSA id 01DEB284B8 for ; Sat, 14 Dec 2013 22:02:18 +0100 (CET) Message-ID: <52ACC759.4060006@T-Online.de> Date: Sat, 14 Dec 2013 22:02:17 +0100 From: =?ISO-8859-15?Q?J=FCrgen_Dankoweit?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 MIME-Version: 1.0 To: freebsd-arm@freebsd.org Subject: FreeBSD on Raspberry Pi: sdhci_bcm0-slot0: timeout too large X-Enigmail-Version: 1.4.6 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP X-ID: ZYW5D2Zvrhw+PhGhpvUep9Th6gDh1Vrh39TRGd1rQFQsoBc1hifsLsIx50uUvrqg5a X-TOI-MSGID: cb7cff87-bb9f-4e45-a392-398149fc9b8d X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: Juergen.Dankoweit@T-Online.de List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Dec 2013 21:17:55 -0000 Hello to the list, for my Raspberry PI Model B with Micron-Chip I found an image which boots FreeBSD. But on the monitor I see a lot of those messages: sdhci_bcm0-slot0: timeout too large What does this message mean and how to solve the problem which causes this message? Usage: FreeBSD 10-CURRENT #84 compiled with CLang 3.3 Many thanks in advance Juergen -- Meine stets unfertige Homepage: www.dankoweit.de