From owner-freebsd-arm@FreeBSD.ORG Sun Sep 21 00:01:08 2008 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 30F74106564A; Sun, 21 Sep 2008 00:01:08 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from smarthost1.sentex.ca (smarthost1.sentex.ca [64.7.153.18]) by mx1.freebsd.org (Postfix) with ESMTP id ECB1C8FC13; Sun, 21 Sep 2008 00:01:07 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from smtp1.sentex.ca (smtp1c.sentex.ca [64.7.153.10]) by smarthost1.sentex.ca (8.14.2/8.14.2) with ESMTP id m8L0159N074376; Sat, 20 Sep 2008 20:01:05 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by smtp1.sentex.ca (8.14.2/8.14.2) with ESMTP id m8L0157b086752; Sat, 20 Sep 2008 20:01:05 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id F1B6173039; Sat, 20 Sep 2008 20:01:04 -0400 (EDT) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20080921000104.F1B6173039@freebsd-current.sentex.ca> Date: Sat, 20 Sep 2008 20:01:04 -0400 (EDT) X-Virus-Scanned: ClamAV version 0.93, clamav-milter version 0.93 on clamscanner2 X-Virus-Status: Clean X-Scanned-By: MIMEDefang 2.64 on 64.7.153.18 Cc: Subject: [head tinderbox] failure on arm/arm X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2008 00:01:08 -0000 TB --- 2008-09-21 00:00:00 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2008-09-21 00:00:00 - starting HEAD tinderbox run for arm/arm TB --- 2008-09-21 00:00:00 - cleaning the object tree TB --- 2008-09-21 00:00:26 - cvsupping the source tree TB --- 2008-09-21 00:00:26 - /usr/bin/csup -r 3 -g -L 1 -h localhost -s /tinderbox/HEAD/arm/arm/supfile TB --- 2008-09-21 00:00:33 - building world (CFLAGS=-O -pipe) TB --- 2008-09-21 00:00:33 - cd /src TB --- 2008-09-21 00:00:33 - /usr/bin/make -B buildworld >>> World build started on Sun Sep 21 00:00:36 UTC 2008 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools [...] /src/usr.bin/ar/acpyacc.y:505: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y: In function 'arscp_mlist2argv': /src/usr.bin/ar/acpyacc.y:621: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y:622: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y: In function 'arscp_free_argv': /src/usr.bin/ar/acpyacc.y:631: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y:632: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y:634: error: dereferencing pointer to incomplete type *** Error code 1 Stop in /src/usr.bin/ar. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2008-09-21 00:01:04 - WARNING: /usr/bin/make returned exit code 1 TB --- 2008-09-21 00:01:04 - ERROR: failed to build world TB --- 2008-09-21 00:01:04 - tinderbox aborted TB --- 17.95 user 4.66 system 64.59 real http://tinderbox.des.no/tinderbox-head-HEAD-arm-arm.full From owner-freebsd-arm@FreeBSD.ORG Sun Sep 21 00:20:33 2008 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 82316106567E; Sun, 21 Sep 2008 00:20:33 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from smarthost1.sentex.ca (smarthost1.sentex.ca [64.7.153.18]) by mx1.freebsd.org (Postfix) with ESMTP id 48E558FC26; Sun, 21 Sep 2008 00:20:33 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from smtp2.sentex.ca (smtp2c.sentex.ca [64.7.153.30]) by smarthost1.sentex.ca (8.14.2/8.14.2) with ESMTP id m8L0KVrO075194; Sat, 20 Sep 2008 20:20:31 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by smtp2.sentex.ca (8.14.3/8.14.3) with ESMTP id m8L0KV7r030550; Sat, 20 Sep 2008 20:20:31 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id 35C587303E; Sat, 20 Sep 2008 20:20:31 -0400 (EDT) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20080921002031.35C587303E@freebsd-current.sentex.ca> Date: Sat, 20 Sep 2008 20:20:31 -0400 (EDT) X-Virus-Scanned: ClamAV version 0.94, clamav-milter version 0.94 on clamscanner3 X-Virus-Status: Clean X-Scanned-By: MIMEDefang 2.64 on 64.7.153.18 Cc: Subject: [head tinderbox] failure on arm/arm X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2008 00:20:33 -0000 TB --- 2008-09-21 00:20:00 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2008-09-21 00:20:00 - starting HEAD tinderbox run for arm/arm TB --- 2008-09-21 00:20:00 - cleaning the object tree TB --- 2008-09-21 00:20:02 - cvsupping the source tree TB --- 2008-09-21 00:20:02 - /usr/bin/csup -r 3 -g -L 1 -h localhost -s /tinderbox/HEAD/arm/arm/supfile TB --- 2008-09-21 00:20:08 - building world (CFLAGS=-O -pipe) TB --- 2008-09-21 00:20:08 - cd /src TB --- 2008-09-21 00:20:08 - /usr/bin/make -B buildworld >>> World build started on Sun Sep 21 00:20:09 UTC 2008 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools [...] /src/usr.bin/ar/acpyacc.y:505: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y: In function 'arscp_mlist2argv': /src/usr.bin/ar/acpyacc.y:621: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y:622: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y: In function 'arscp_free_argv': /src/usr.bin/ar/acpyacc.y:631: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y:632: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y:634: error: dereferencing pointer to incomplete type *** Error code 1 Stop in /src/usr.bin/ar. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2008-09-21 00:20:31 - WARNING: /usr/bin/make returned exit code 1 TB --- 2008-09-21 00:20:31 - ERROR: failed to build world TB --- 2008-09-21 00:20:31 - tinderbox aborted TB --- 17.30 user 2.68 system 30.83 real http://tinderbox.des.no/tinderbox-head-HEAD-arm-arm.full From owner-freebsd-arm@FreeBSD.ORG Sun Sep 21 00:40:35 2008 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 282D01065670; Sun, 21 Sep 2008 00:40:35 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from smarthost1.sentex.ca (smarthost1.sentex.ca [64.7.153.18]) by mx1.freebsd.org (Postfix) with ESMTP id E38C98FC08; Sun, 21 Sep 2008 00:40:34 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from smtp2.sentex.ca (smtp2c.sentex.ca [64.7.153.30]) by smarthost1.sentex.ca (8.14.2/8.14.2) with ESMTP id m8L0eX0B076013; Sat, 20 Sep 2008 20:40:33 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by smtp2.sentex.ca (8.14.3/8.14.3) with ESMTP id m8L0eXJb074069; Sat, 20 Sep 2008 20:40:33 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id 244A17303E; Sat, 20 Sep 2008 20:40:33 -0400 (EDT) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20080921004033.244A17303E@freebsd-current.sentex.ca> Date: Sat, 20 Sep 2008 20:40:33 -0400 (EDT) X-Virus-Scanned: ClamAV version 0.94, clamav-milter version 0.94 on clamscanner3 X-Virus-Status: Clean X-Scanned-By: MIMEDefang 2.64 on 64.7.153.18 Cc: Subject: [head tinderbox] failure on arm/arm X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2008 00:40:35 -0000 TB --- 2008-09-21 00:40:00 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2008-09-21 00:40:00 - starting HEAD tinderbox run for arm/arm TB --- 2008-09-21 00:40:00 - cleaning the object tree TB --- 2008-09-21 00:40:03 - cvsupping the source tree TB --- 2008-09-21 00:40:03 - /usr/bin/csup -r 3 -g -L 1 -h localhost -s /tinderbox/HEAD/arm/arm/supfile TB --- 2008-09-21 00:40:09 - building world (CFLAGS=-O -pipe) TB --- 2008-09-21 00:40:09 - cd /src TB --- 2008-09-21 00:40:09 - /usr/bin/make -B buildworld >>> World build started on Sun Sep 21 00:40:10 UTC 2008 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools [...] /src/usr.bin/ar/acpyacc.y:505: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y: In function 'arscp_mlist2argv': /src/usr.bin/ar/acpyacc.y:621: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y:622: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y: In function 'arscp_free_argv': /src/usr.bin/ar/acpyacc.y:631: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y:632: error: dereferencing pointer to incomplete type /src/usr.bin/ar/acpyacc.y:634: error: dereferencing pointer to incomplete type *** Error code 1 Stop in /src/usr.bin/ar. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2008-09-21 00:40:33 - WARNING: /usr/bin/make returned exit code 1 TB --- 2008-09-21 00:40:33 - ERROR: failed to build world TB --- 2008-09-21 00:40:33 - tinderbox aborted TB --- 17.38 user 2.56 system 32.65 real http://tinderbox.des.no/tinderbox-head-HEAD-arm-arm.full From owner-freebsd-arm@FreeBSD.ORG Sun Sep 21 23:59:10 2008 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0D03106566B; Sun, 21 Sep 2008 23:59:10 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from smarthost1.sentex.ca (smarthost1.sentex.ca [64.7.153.18]) by mx1.freebsd.org (Postfix) with ESMTP id 4CD668FC12; Sun, 21 Sep 2008 23:59:10 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from smtp2.sentex.ca (smtp2c.sentex.ca [64.7.153.30]) by smarthost1.sentex.ca (8.14.2/8.14.2) with ESMTP id m8LNx5PM034774; Sun, 21 Sep 2008 19:59:05 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by smtp2.sentex.ca (8.14.3/8.14.3) with ESMTP id m8LNx5CC004221; Sun, 21 Sep 2008 19:59:05 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id 4E37B73039; Sun, 21 Sep 2008 19:59:05 -0400 (EDT) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20080921235905.4E37B73039@freebsd-current.sentex.ca> Date: Sun, 21 Sep 2008 19:59:05 -0400 (EDT) X-Virus-Scanned: ClamAV version 0.94, clamav-milter version 0.94 on clamscanner3 X-Virus-Status: Clean X-Scanned-By: MIMEDefang 2.64 on 64.7.153.18 Cc: Subject: [head tinderbox] failure on arm/arm X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Sep 2008 23:59:10 -0000 TB --- 2008-09-21 23:00:00 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2008-09-21 23:00:00 - starting HEAD tinderbox run for arm/arm TB --- 2008-09-21 23:00:00 - cleaning the object tree TB --- 2008-09-21 23:00:26 - cvsupping the source tree TB --- 2008-09-21 23:00:26 - /usr/bin/csup -r 3 -g -L 1 -h localhost -s /tinderbox/HEAD/arm/arm/supfile TB --- 2008-09-21 23:00:36 - building world (CFLAGS=-O -pipe) TB --- 2008-09-21 23:00:36 - cd /src TB --- 2008-09-21 23:00:36 - /usr/bin/make -B buildworld >>> World build started on Sun Sep 21 23:00:38 UTC 2008 >>> 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 [...] cc -O -pipe -I/src/sbin/ipf/ipresend/../../../contrib/ipfilter -I/src/sbin/ipf/ipresend/../../../contrib/ipfilter/tools -I/src/sbin/ipf/ipresend/../../../sys -I/src/sbin/ipf/ipresend/../../../sys/contrib/ipfilter -DSTATETOP -D__UIO_EXPOSE -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -o ipresend ipresend.o ip.o resend.o sbpf.o sock.o 44arp.o /obj/arm/src/sbin/ipf/ipresend/../libipf/libipf.a -lkvm gzip -cn /src/sbin/ipf/ipresend/../../../contrib/ipfilter/ipsend/ipresend.1 > ipresend.1.gz ===> sbin/ipfw (all) cc -O -pipe -Wno-pointer-sign -c /src/sbin/ipfw/ipfw2.c /src/sbin/ipfw/ipfw2.c: In function 'table_handler': /src/sbin/ipfw/ipfw2.c:5877: error: 'a' undeclared (first use in this function) /src/sbin/ipfw/ipfw2.c:5877: error: (Each undeclared identifier is reported only once /src/sbin/ipfw/ipfw2.c:5877: error: for each function it appears in.) *** Error code 1 Stop in /src/sbin/ipfw. *** Error code 1 Stop in /src/sbin. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2008-09-21 23:59:05 - WARNING: /usr/bin/make returned exit code 1 TB --- 2008-09-21 23:59:05 - ERROR: failed to build world TB --- 2008-09-21 23:59:05 - tinderbox aborted TB --- 2574.95 user 328.57 system 3544.58 real http://tinderbox.des.no/tinderbox-head-HEAD-arm-arm.full From owner-freebsd-arm@FreeBSD.ORG Mon Sep 22 02:24:24 2008 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C55DC106564A for ; Mon, 22 Sep 2008 02:24:24 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id CC3B28FC18 for ; Mon, 22 Sep 2008 02:24:23 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.2/8.14.1) with ESMTP id m8M2NfeC011299 for ; Sun, 21 Sep 2008 20:23:41 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Sun, 21 Sep 2008 20:24:30 -0600 (MDT) Message-Id: <20080921.202430.-893473872.imp@bsdimp.com> To: arm@freebsd.org From: "M. Warner Losh" X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Sun_Sep_21_20_24_30_2008_501)--" Content-Transfer-Encoding: 7bit Cc: Subject: Code review request X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Sep 2008 02:24:24 -0000 ----Next_Part(Sun_Sep_21_20_24_30_2008_501)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit I did this a long time ago, but never committed it. I believe that this works. It uses the common bus space methods to implement the default arm bus space methods. Comments? Warner ----Next_Part(Sun_Sep_21_20_24_30_2008_501)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="arm.diff" Index: sys/arm/include/bus.h =================================================================== --- sys/arm/include/bus.h (revision 183185) +++ sys/arm/include/bus.h (working copy) @@ -1,733 +1,86 @@ -/* $NetBSD: bus.h,v 1.11 2003/07/28 17:35:54 thorpej Exp $ */ - /*- - * Copyright (c) 1996, 1997, 1998, 2001 The NetBSD Foundation, Inc. - * All rights reserved. + * Copyright (c) 2008, by Cisco Systems, Inc. All rights reserved. * - * This code is derived from software contributed to The NetBSD Foundation - * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, - * NASA Ames Research Center. - * * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. + * modification, are permitted provided that the following conditions are met: * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. - */ - -/*- - * Copyright (c) 1996 Charles M. Hannum. All rights reserved. - * Copyright (c) 1996 Christopher G. Demetriou. All rights reserved. + * a) Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Christopher G. Demetriou - * for the NetBSD Project. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission + * b) 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. + * c) Neither the name of Cisco Systems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 + * COPYRIGHT OWNER 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. + * * $FreeBSD$ */ #ifndef _MACHINE_BUS_H_ #define _MACHINE_BUS_H_ +/* + * Arm uses the generic bus space indirection routines to implement its bus + * space. To setup, one must define bus_addr_t, bus_size_t, + * bus_space_tag_t, and bus_space_handle_t. bus_space_tag_t must be defined + * as + * typedef struct bus_space *bus_space_tag_t; + * for this sys/bs_ind.h to work correctly. + */ #include /* - * int bus_space_map (bus_space_tag_t t, bus_addr_t addr, - * bus_size_t size, int flags, bus_space_handle_t *bshp); - * - * Map a region of bus space. + * Define the bus spaces that we're using in the arm port. */ - #define BUS_SPACE_MAP_CACHEABLE 0x01 #define BUS_SPACE_MAP_LINEAR 0x02 #define BUS_SPACE_MAP_PREFETCHABLE 0x04 -struct bus_space { - /* cookie */ - void *bs_cookie; - - /* mapping/unmapping */ - int (*bs_map) (void *, bus_addr_t, bus_size_t, - int, bus_space_handle_t *); - void (*bs_unmap) (void *, bus_space_handle_t, bus_size_t); - int (*bs_subregion) (void *, bus_space_handle_t, - bus_size_t, bus_size_t, bus_space_handle_t *); - - /* allocation/deallocation */ - int (*bs_alloc) (void *, bus_addr_t, bus_addr_t, - bus_size_t, bus_size_t, bus_size_t, int, - bus_addr_t *, bus_space_handle_t *); - void (*bs_free) (void *, bus_space_handle_t, - bus_size_t); - - /* get kernel virtual address */ - /* barrier */ - void (*bs_barrier) (void *, bus_space_handle_t, - bus_size_t, bus_size_t, int); - - /* read (single) */ - u_int8_t (*bs_r_1) (void *, bus_space_handle_t, bus_size_t); - u_int16_t (*bs_r_2) (void *, bus_space_handle_t, bus_size_t); - u_int32_t (*bs_r_4) (void *, bus_space_handle_t, bus_size_t); - u_int64_t (*bs_r_8) (void *, bus_space_handle_t, bus_size_t); - - /* read multiple */ - void (*bs_rm_1) (void *, bus_space_handle_t, bus_size_t, - u_int8_t *, bus_size_t); - void (*bs_rm_2) (void *, bus_space_handle_t, bus_size_t, - u_int16_t *, bus_size_t); - void (*bs_rm_4) (void *, bus_space_handle_t, - bus_size_t, u_int32_t *, bus_size_t); - void (*bs_rm_8) (void *, bus_space_handle_t, - bus_size_t, u_int64_t *, bus_size_t); - - /* read region */ - void (*bs_rr_1) (void *, bus_space_handle_t, - bus_size_t, u_int8_t *, bus_size_t); - void (*bs_rr_2) (void *, bus_space_handle_t, - bus_size_t, u_int16_t *, bus_size_t); - void (*bs_rr_4) (void *, bus_space_handle_t, - bus_size_t, u_int32_t *, bus_size_t); - void (*bs_rr_8) (void *, bus_space_handle_t, - bus_size_t, u_int64_t *, bus_size_t); - - /* write (single) */ - void (*bs_w_1) (void *, bus_space_handle_t, - bus_size_t, u_int8_t); - void (*bs_w_2) (void *, bus_space_handle_t, - bus_size_t, u_int16_t); - void (*bs_w_4) (void *, bus_space_handle_t, - bus_size_t, u_int32_t); - void (*bs_w_8) (void *, bus_space_handle_t, - bus_size_t, u_int64_t); - - /* write multiple */ - void (*bs_wm_1) (void *, bus_space_handle_t, - bus_size_t, const u_int8_t *, bus_size_t); - void (*bs_wm_2) (void *, bus_space_handle_t, - bus_size_t, const u_int16_t *, bus_size_t); - void (*bs_wm_4) (void *, bus_space_handle_t, - bus_size_t, const u_int32_t *, bus_size_t); - void (*bs_wm_8) (void *, bus_space_handle_t, - bus_size_t, const u_int64_t *, bus_size_t); - - /* write region */ - void (*bs_wr_1) (void *, bus_space_handle_t, - bus_size_t, const u_int8_t *, bus_size_t); - void (*bs_wr_2) (void *, bus_space_handle_t, - bus_size_t, const u_int16_t *, bus_size_t); - void (*bs_wr_4) (void *, bus_space_handle_t, - bus_size_t, const u_int32_t *, bus_size_t); - void (*bs_wr_8) (void *, bus_space_handle_t, - bus_size_t, const u_int64_t *, bus_size_t); - - /* set multiple */ - void (*bs_sm_1) (void *, bus_space_handle_t, - bus_size_t, u_int8_t, bus_size_t); - void (*bs_sm_2) (void *, bus_space_handle_t, - bus_size_t, u_int16_t, bus_size_t); - void (*bs_sm_4) (void *, bus_space_handle_t, - bus_size_t, u_int32_t, bus_size_t); - void (*bs_sm_8) (void *, bus_space_handle_t, - bus_size_t, u_int64_t, bus_size_t); - - /* set region */ - void (*bs_sr_1) (void *, bus_space_handle_t, - bus_size_t, u_int8_t, bus_size_t); - void (*bs_sr_2) (void *, bus_space_handle_t, - bus_size_t, u_int16_t, bus_size_t); - void (*bs_sr_4) (void *, bus_space_handle_t, - bus_size_t, u_int32_t, bus_size_t); - void (*bs_sr_8) (void *, bus_space_handle_t, - bus_size_t, u_int64_t, bus_size_t); - - /* copy */ - void (*bs_c_1) (void *, bus_space_handle_t, bus_size_t, - bus_space_handle_t, bus_size_t, bus_size_t); - void (*bs_c_2) (void *, bus_space_handle_t, bus_size_t, - bus_space_handle_t, bus_size_t, bus_size_t); - void (*bs_c_4) (void *, bus_space_handle_t, bus_size_t, - bus_space_handle_t, bus_size_t, bus_size_t); - void (*bs_c_8) (void *, bus_space_handle_t, bus_size_t, - bus_space_handle_t, bus_size_t, bus_size_t); - - /* read stream (single) */ - u_int8_t (*bs_r_1_s) (void *, bus_space_handle_t, bus_size_t); - u_int16_t (*bs_r_2_s) (void *, bus_space_handle_t, bus_size_t); - u_int32_t (*bs_r_4_s) (void *, bus_space_handle_t, bus_size_t); - u_int64_t (*bs_r_8_s) (void *, bus_space_handle_t, bus_size_t); - - /* read multiple stream */ - void (*bs_rm_1_s) (void *, bus_space_handle_t, bus_size_t, - u_int8_t *, bus_size_t); - void (*bs_rm_2_s) (void *, bus_space_handle_t, bus_size_t, - u_int16_t *, bus_size_t); - void (*bs_rm_4_s) (void *, bus_space_handle_t, - bus_size_t, u_int32_t *, bus_size_t); - void (*bs_rm_8_s) (void *, bus_space_handle_t, - bus_size_t, u_int64_t *, bus_size_t); - - /* read region stream */ - void (*bs_rr_1_s) (void *, bus_space_handle_t, - bus_size_t, u_int8_t *, bus_size_t); - void (*bs_rr_2_s) (void *, bus_space_handle_t, - bus_size_t, u_int16_t *, bus_size_t); - void (*bs_rr_4_s) (void *, bus_space_handle_t, - bus_size_t, u_int32_t *, bus_size_t); - void (*bs_rr_8_s) (void *, bus_space_handle_t, - bus_size_t, u_int64_t *, bus_size_t); - - /* write stream (single) */ - void (*bs_w_1_s) (void *, bus_space_handle_t, - bus_size_t, u_int8_t); - void (*bs_w_2_s) (void *, bus_space_handle_t, - bus_size_t, u_int16_t); - void (*bs_w_4_s) (void *, bus_space_handle_t, - bus_size_t, u_int32_t); - void (*bs_w_8_s) (void *, bus_space_handle_t, - bus_size_t, u_int64_t); - - /* write multiple stream */ - void (*bs_wm_1_s) (void *, bus_space_handle_t, - bus_size_t, const u_int8_t *, bus_size_t); - void (*bs_wm_2_s) (void *, bus_space_handle_t, - bus_size_t, const u_int16_t *, bus_size_t); - void (*bs_wm_4_s) (void *, bus_space_handle_t, - bus_size_t, const u_int32_t *, bus_size_t); - void (*bs_wm_8_s) (void *, bus_space_handle_t, - bus_size_t, const u_int64_t *, bus_size_t); - - /* write region stream */ - void (*bs_wr_1_s) (void *, bus_space_handle_t, - bus_size_t, const u_int8_t *, bus_size_t); - void (*bs_wr_2_s) (void *, bus_space_handle_t, - bus_size_t, const u_int16_t *, bus_size_t); - void (*bs_wr_4_s) (void *, bus_space_handle_t, - bus_size_t, const u_int32_t *, bus_size_t); - void (*bs_wr_8_s) (void *, bus_space_handle_t, - bus_size_t, const u_int64_t *, bus_size_t); -}; - - /* - * Utility macros; INTERNAL USE ONLY. + * Bring in the generic indirection routines */ -#define __bs_c(a,b) __CONCAT(a,b) -#define __bs_opname(op,size) __bs_c(__bs_c(__bs_c(bs_,op),_),size) +#include -#define __bs_rs(sz, t, h, o) \ - (*(t)->__bs_opname(r,sz))((t)->bs_cookie, h, o) -#define __bs_ws(sz, t, h, o, v) \ - (*(t)->__bs_opname(w,sz))((t)->bs_cookie, h, o, v) -#define __bs_nonsingle(type, sz, t, h, o, a, c) \ - (*(t)->__bs_opname(type,sz))((t)->bs_cookie, h, o, a, c) -#define __bs_set(type, sz, t, h, o, v, c) \ - (*(t)->__bs_opname(type,sz))((t)->bs_cookie, h, o, v, c) -#define __bs_copy(sz, t, h1, o1, h2, o2, cnt) \ - (*(t)->__bs_opname(c,sz))((t)->bs_cookie, h1, o1, h2, o2, cnt) - -#define __bs_opname_s(op,size) __bs_c(__bs_c(__bs_c(__bs_c(bs_,op),_),size),_s) -#define __bs_rs_s(sz, t, h, o) \ - (*(t)->__bs_opname_s(r,sz))((t)->bs_cookie, h, o) -#define __bs_ws_s(sz, t, h, o, v) \ - (*(t)->__bs_opname_s(w,sz))((t)->bs_cookie, h, o, v) -#define __bs_nonsingle_s(type, sz, t, h, o, a, c) \ - (*(t)->__bs_opname_s(type,sz))((t)->bs_cookie, h, o, a, c) - - /* - * Mapping and unmapping operations. + * Define the largest bus_addr_t and bus_size_t respectively. Maybe these + * should be defined in terms of other constants, but in the ideal bus space + * model, the size of these types is defined to be large enough to hold the + * biggest address that is a natural size on the architecture. While the + * largest address or size might be a subset of that type. */ -#define bus_space_map(t, a, s, c, hp) \ - (*(t)->bs_map)((t)->bs_cookie, (a), (s), (c), (hp)) -#define bus_space_unmap(t, h, s) \ - (*(t)->bs_unmap)((t)->bs_cookie, (h), (s)) -#define bus_space_subregion(t, h, o, s, hp) \ - (*(t)->bs_subregion)((t)->bs_cookie, (h), (o), (s), (hp)) +#define BUS_SPACE_MAXADDR 0xFFFFFFFFul +#define BUS_SPACE_MAXSIZE 0xFFFFFFFFul - /* - * Allocation and deallocation operations. + * Maximum number of dma segments: no restrictions. */ -#define bus_space_alloc(t, rs, re, s, a, b, c, ap, hp) \ - (*(t)->bs_alloc)((t)->bs_cookie, (rs), (re), (s), (a), (b), \ - (c), (ap), (hp)) -#define bus_space_free(t, h, s) \ - (*(t)->bs_free)((t)->bs_cookie, (h), (s)) +#define BUS_SPACE_UNRESTRICTED (~0) /* - * Bus barrier operations. + * Different types of bus space barrier. Not sure if this should be here + * or if these are really common. */ -#define bus_space_barrier(t, h, o, l, f) \ - (*(t)->bs_barrier)((t)->bs_cookie, (h), (o), (l), (f)) - #define BUS_SPACE_BARRIER_READ 0x01 #define BUS_SPACE_BARRIER_WRITE 0x02 /* - * Bus read (single) operations. + * bus dma impelemenation, which is described in bus_dma(9) */ -#define bus_space_read_1(t, h, o) __bs_rs(1,(t),(h),(o)) -#define bus_space_read_2(t, h, o) __bs_rs(2,(t),(h),(o)) -#define bus_space_read_4(t, h, o) __bs_rs(4,(t),(h),(o)) -#define bus_space_read_8(t, h, o) __bs_rs(8,(t),(h),(o)) - -#define bus_space_read_stream_1(t, h, o) __bs_rs_s(1,(t), (h), (o)) -#define bus_space_read_stream_2(t, h, o) __bs_rs_s(2,(t), (h), (o)) -#define bus_space_read_stream_4(t, h, o) __bs_rs_s(4,(t), (h), (o)) -#define bus_space_read_stream_8(t, h, o) __bs_rs_s(8,8,(t),(h),(o)) - -/* - * Bus read multiple operations. - */ -#define bus_space_read_multi_1(t, h, o, a, c) \ - __bs_nonsingle(rm,1,(t),(h),(o),(a),(c)) -#define bus_space_read_multi_2(t, h, o, a, c) \ - __bs_nonsingle(rm,2,(t),(h),(o),(a),(c)) -#define bus_space_read_multi_4(t, h, o, a, c) \ - __bs_nonsingle(rm,4,(t),(h),(o),(a),(c)) -#define bus_space_read_multi_8(t, h, o, a, c) \ - __bs_nonsingle(rm,8,(t),(h),(o),(a),(c)) - -#define bus_space_read_multi_stream_1(t, h, o, a, c) \ - __bs_nonsingle_s(rm,1,(t),(h),(o),(a),(c)) -#define bus_space_read_multi_stream_2(t, h, o, a, c) \ - __bs_nonsingle_s(rm,2,(t),(h),(o),(a),(c)) -#define bus_space_read_multi_stream_4(t, h, o, a, c) \ - __bs_nonsingle_s(rm,4,(t),(h),(o),(a),(c)) -#define bus_space_read_multi_stream_8(t, h, o, a, c) \ - __bs_nonsingle_s(rm,8,(t),(h),(o),(a),(c)) - - -/* - * Bus read region operations. - */ -#define bus_space_read_region_1(t, h, o, a, c) \ - __bs_nonsingle(rr,1,(t),(h),(o),(a),(c)) -#define bus_space_read_region_2(t, h, o, a, c) \ - __bs_nonsingle(rr,2,(t),(h),(o),(a),(c)) -#define bus_space_read_region_4(t, h, o, a, c) \ - __bs_nonsingle(rr,4,(t),(h),(o),(a),(c)) -#define bus_space_read_region_8(t, h, o, a, c) \ - __bs_nonsingle(rr,8,(t),(h),(o),(a),(c)) - -#define bus_space_read_region_stream_1(t, h, o, a, c) \ - __bs_nonsingle_s(rr,1,(t),(h),(o),(a),(c)) -#define bus_space_read_region_stream_2(t, h, o, a, c) \ - __bs_nonsingle_s(rr,2,(t),(h),(o),(a),(c)) -#define bus_space_read_region_stream_4(t, h, o, a, c) \ - __bs_nonsingle_s(rr,4,(t),(h),(o),(a),(c)) -#define bus_space_read_region_stream_8(t, h, o, a, c) \ - __bs_nonsingle_s(rr,8,(t),(h),(o),(a),(c)) - - -/* - * Bus write (single) operations. - */ -#define bus_space_write_1(t, h, o, v) __bs_ws(1,(t),(h),(o),(v)) -#define bus_space_write_2(t, h, o, v) __bs_ws(2,(t),(h),(o),(v)) -#define bus_space_write_4(t, h, o, v) __bs_ws(4,(t),(h),(o),(v)) -#define bus_space_write_8(t, h, o, v) __bs_ws(8,(t),(h),(o),(v)) - -#define bus_space_write_stream_1(t, h, o, v) __bs_ws_s(1,(t),(h),(o),(v)) -#define bus_space_write_stream_2(t, h, o, v) __bs_ws_s(2,(t),(h),(o),(v)) -#define bus_space_write_stream_4(t, h, o, v) __bs_ws_s(4,(t),(h),(o),(v)) -#define bus_space_write_stream_8(t, h, o, v) __bs_ws_s(8,(t),(h),(o),(v)) - - -/* - * Bus write multiple operations. - */ -#define bus_space_write_multi_1(t, h, o, a, c) \ - __bs_nonsingle(wm,1,(t),(h),(o),(a),(c)) -#define bus_space_write_multi_2(t, h, o, a, c) \ - __bs_nonsingle(wm,2,(t),(h),(o),(a),(c)) -#define bus_space_write_multi_4(t, h, o, a, c) \ - __bs_nonsingle(wm,4,(t),(h),(o),(a),(c)) -#define bus_space_write_multi_8(t, h, o, a, c) \ - __bs_nonsingle(wm,8,(t),(h),(o),(a),(c)) - -#define bus_space_write_multi_stream_1(t, h, o, a, c) \ - __bs_nonsingle_s(wm,1,(t),(h),(o),(a),(c)) -#define bus_space_write_multi_stream_2(t, h, o, a, c) \ - __bs_nonsingle_s(wm,2,(t),(h),(o),(a),(c)) -#define bus_space_write_multi_stream_4(t, h, o, a, c) \ - __bs_nonsingle_s(wm,4,(t),(h),(o),(a),(c)) -#define bus_space_write_multi_stream_8(t, h, o, a, c) \ - __bs_nonsingle_s(wm,8,(t),(h),(o),(a),(c)) - - -/* - * Bus write region operations. - */ -#define bus_space_write_region_1(t, h, o, a, c) \ - __bs_nonsingle(wr,1,(t),(h),(o),(a),(c)) -#define bus_space_write_region_2(t, h, o, a, c) \ - __bs_nonsingle(wr,2,(t),(h),(o),(a),(c)) -#define bus_space_write_region_4(t, h, o, a, c) \ - __bs_nonsingle(wr,4,(t),(h),(o),(a),(c)) -#define bus_space_write_region_8(t, h, o, a, c) \ - __bs_nonsingle(wr,8,(t),(h),(o),(a),(c)) - -#define bus_space_write_region_stream_1(t, h, o, a, c) \ - __bs_nonsingle_s(wr,1,(t),(h),(o),(a),(c)) -#define bus_space_write_region_stream_2(t, h, o, a, c) \ - __bs_nonsingle_s(wr,2,(t),(h),(o),(a),(c)) -#define bus_space_write_region_stream_4(t, h, o, a, c) \ - __bs_nonsingle_s(wr,4,(t),(h),(o),(a),(c)) -#define bus_space_write_region_stream_8(t, h, o, a, c) \ - __bs_nonsingle_s(wr,8,(t),(h),(o),(a),(c)) - - -/* - * Set multiple operations. - */ -#define bus_space_set_multi_1(t, h, o, v, c) \ - __bs_set(sm,1,(t),(h),(o),(v),(c)) -#define bus_space_set_multi_2(t, h, o, v, c) \ - __bs_set(sm,2,(t),(h),(o),(v),(c)) -#define bus_space_set_multi_4(t, h, o, v, c) \ - __bs_set(sm,4,(t),(h),(o),(v),(c)) -#define bus_space_set_multi_8(t, h, o, v, c) \ - __bs_set(sm,8,(t),(h),(o),(v),(c)) - - -/* - * Set region operations. - */ -#define bus_space_set_region_1(t, h, o, v, c) \ - __bs_set(sr,1,(t),(h),(o),(v),(c)) -#define bus_space_set_region_2(t, h, o, v, c) \ - __bs_set(sr,2,(t),(h),(o),(v),(c)) -#define bus_space_set_region_4(t, h, o, v, c) \ - __bs_set(sr,4,(t),(h),(o),(v),(c)) -#define bus_space_set_region_8(t, h, o, v, c) \ - __bs_set(sr,8,(t),(h),(o),(v),(c)) - - -/* - * Copy operations. - */ -#define bus_space_copy_region_1(t, h1, o1, h2, o2, c) \ - __bs_copy(1, t, h1, o1, h2, o2, c) -#define bus_space_copy_region_2(t, h1, o1, h2, o2, c) \ - __bs_copy(2, t, h1, o1, h2, o2, c) -#define bus_space_copy_region_4(t, h1, o1, h2, o2, c) \ - __bs_copy(4, t, h1, o1, h2, o2, c) -#define bus_space_copy_region_8(t, h1, o1, h2, o2, c) \ - __bs_copy(8, t, h1, o1, h2, o2, c) - -/* - * Macros to provide prototypes for all the functions used in the - * bus_space structure - */ - -#define bs_map_proto(f) \ -int __bs_c(f,_bs_map) (void *t, bus_addr_t addr, \ - bus_size_t size, int cacheable, bus_space_handle_t *bshp); - -#define bs_unmap_proto(f) \ -void __bs_c(f,_bs_unmap) (void *t, bus_space_handle_t bsh, \ - bus_size_t size); - -#define bs_subregion_proto(f) \ -int __bs_c(f,_bs_subregion) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, bus_size_t size, \ - bus_space_handle_t *nbshp); - -#define bs_alloc_proto(f) \ -int __bs_c(f,_bs_alloc) (void *t, bus_addr_t rstart, \ - bus_addr_t rend, bus_size_t size, bus_size_t align, \ - bus_size_t boundary, int cacheable, bus_addr_t *addrp, \ - bus_space_handle_t *bshp); - -#define bs_free_proto(f) \ -void __bs_c(f,_bs_free) (void *t, bus_space_handle_t bsh, \ - bus_size_t size); - -#define bs_mmap_proto(f) \ -int __bs_c(f,_bs_mmap) (struct cdev *, vm_offset_t, vm_paddr_t *, int); - -#define bs_barrier_proto(f) \ -void __bs_c(f,_bs_barrier) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, bus_size_t len, int flags); - -#define bs_r_1_proto(f) \ -u_int8_t __bs_c(f,_bs_r_1) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset); - -#define bs_r_2_proto(f) \ -u_int16_t __bs_c(f,_bs_r_2) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset); - -#define bs_r_4_proto(f) \ -u_int32_t __bs_c(f,_bs_r_4) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset); - -#define bs_r_8_proto(f) \ -u_int64_t __bs_c(f,_bs_r_8) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset); - -#define bs_r_1_s_proto(f) \ -u_int8_t __bs_c(f,_bs_r_1_s) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset); - -#define bs_r_2_s_proto(f) \ -u_int16_t __bs_c(f,_bs_r_2_s) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset); - -#define bs_r_4_s_proto(f) \ -u_int32_t __bs_c(f,_bs_r_4_s) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset); - -#define bs_w_1_proto(f) \ -void __bs_c(f,_bs_w_1) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int8_t value); - -#define bs_w_2_proto(f) \ -void __bs_c(f,_bs_w_2) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int16_t value); - -#define bs_w_4_proto(f) \ -void __bs_c(f,_bs_w_4) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int32_t value); - -#define bs_w_8_proto(f) \ -void __bs_c(f,_bs_w_8) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int64_t value); - -#define bs_w_1_s_proto(f) \ -void __bs_c(f,_bs_w_1_s) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int8_t value); - -#define bs_w_2_s_proto(f) \ -void __bs_c(f,_bs_w_2_s) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int16_t value); - -#define bs_w_4_s_proto(f) \ -void __bs_c(f,_bs_w_4_s) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int32_t value); - -#define bs_rm_1_proto(f) \ -void __bs_c(f,_bs_rm_1) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int8_t *addr, bus_size_t count); - -#define bs_rm_2_proto(f) \ -void __bs_c(f,_bs_rm_2) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int16_t *addr, bus_size_t count); - -#define bs_rm_4_proto(f) \ -void __bs_c(f,_bs_rm_4) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int32_t *addr, bus_size_t count); - -#define bs_rm_8_proto(f) \ -void __bs_c(f,_bs_rm_8) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int64_t *addr, bus_size_t count); - -#define bs_wm_1_proto(f) \ -void __bs_c(f,_bs_wm_1) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, const u_int8_t *addr, bus_size_t count); - -#define bs_wm_2_proto(f) \ -void __bs_c(f,_bs_wm_2) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, const u_int16_t *addr, bus_size_t count); - -#define bs_wm_4_proto(f) \ -void __bs_c(f,_bs_wm_4) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, const u_int32_t *addr, bus_size_t count); - -#define bs_wm_8_proto(f) \ -void __bs_c(f,_bs_wm_8) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, const u_int64_t *addr, bus_size_t count); - -#define bs_rr_1_proto(f) \ -void __bs_c(f, _bs_rr_1) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int8_t *addr, bus_size_t count); - -#define bs_rr_2_proto(f) \ -void __bs_c(f, _bs_rr_2) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int16_t *addr, bus_size_t count); - -#define bs_rr_4_proto(f) \ -void __bs_c(f, _bs_rr_4) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int32_t *addr, bus_size_t count); - -#define bs_rr_8_proto(f) \ -void __bs_c(f, _bs_rr_8) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int64_t *addr, bus_size_t count); - -#define bs_wr_1_proto(f) \ -void __bs_c(f, _bs_wr_1) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, const u_int8_t *addr, bus_size_t count); - -#define bs_wr_2_proto(f) \ -void __bs_c(f, _bs_wr_2) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, const u_int16_t *addr, bus_size_t count); - -#define bs_wr_4_proto(f) \ -void __bs_c(f, _bs_wr_4) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, const u_int32_t *addr, bus_size_t count); - -#define bs_wr_8_proto(f) \ -void __bs_c(f, _bs_wr_8) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, const u_int64_t *addr, bus_size_t count); - -#define bs_sm_1_proto(f) \ -void __bs_c(f,_bs_sm_1) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int8_t value, bus_size_t count); - -#define bs_sm_2_proto(f) \ -void __bs_c(f,_bs_sm_2) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int16_t value, bus_size_t count); - -#define bs_sm_4_proto(f) \ -void __bs_c(f,_bs_sm_4) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int32_t value, bus_size_t count); - -#define bs_sm_8_proto(f) \ -void __bs_c(f,_bs_sm_8) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int64_t value, bus_size_t count); - -#define bs_sr_1_proto(f) \ -void __bs_c(f,_bs_sr_1) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int8_t value, bus_size_t count); - -#define bs_sr_2_proto(f) \ -void __bs_c(f,_bs_sr_2) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int16_t value, bus_size_t count); - -#define bs_sr_4_proto(f) \ -void __bs_c(f,_bs_sr_4) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int32_t value, bus_size_t count); - -#define bs_sr_8_proto(f) \ -void __bs_c(f,_bs_sr_8) (void *t, bus_space_handle_t bsh, \ - bus_size_t offset, u_int64_t value, bus_size_t count); - -#define bs_c_1_proto(f) \ -void __bs_c(f,_bs_c_1) (void *t, bus_space_handle_t bsh1, \ - bus_size_t offset1, bus_space_handle_t bsh2, \ - bus_size_t offset2, bus_size_t count); - -#define bs_c_2_proto(f) \ -void __bs_c(f,_bs_c_2) (void *t, bus_space_handle_t bsh1, \ - bus_size_t offset1, bus_space_handle_t bsh2, \ - bus_size_t offset2, bus_size_t count); - -#define bs_c_4_proto(f) \ -void __bs_c(f,_bs_c_4) (void *t, bus_space_handle_t bsh1, \ - bus_size_t offset1, bus_space_handle_t bsh2, \ - bus_size_t offset2, bus_size_t count); - -#define bs_c_8_proto(f) \ -void __bs_c(f,_bs_c_8) (void *t, bus_space_handle_t bsh1, \ - bus_size_t offset1, bus_space_handle_t bsh2, \ - bus_size_t offset2, bus_size_t count); - -#define bs_protos(f) \ -bs_map_proto(f); \ -bs_unmap_proto(f); \ -bs_subregion_proto(f); \ -bs_alloc_proto(f); \ -bs_free_proto(f); \ -bs_mmap_proto(f); \ -bs_barrier_proto(f); \ -bs_r_1_proto(f); \ -bs_r_2_proto(f); \ -bs_r_4_proto(f); \ -bs_r_8_proto(f); \ -bs_r_1_s_proto(f); \ -bs_r_2_s_proto(f); \ -bs_r_4_s_proto(f); \ -bs_w_1_proto(f); \ -bs_w_2_proto(f); \ -bs_w_4_proto(f); \ -bs_w_8_proto(f); \ -bs_w_1_s_proto(f); \ -bs_w_2_s_proto(f); \ -bs_w_4_s_proto(f); \ -bs_rm_1_proto(f); \ -bs_rm_2_proto(f); \ -bs_rm_4_proto(f); \ -bs_rm_8_proto(f); \ -bs_wm_1_proto(f); \ -bs_wm_2_proto(f); \ -bs_wm_4_proto(f); \ -bs_wm_8_proto(f); \ -bs_rr_1_proto(f); \ -bs_rr_2_proto(f); \ -bs_rr_4_proto(f); \ -bs_rr_8_proto(f); \ -bs_wr_1_proto(f); \ -bs_wr_2_proto(f); \ -bs_wr_4_proto(f); \ -bs_wr_8_proto(f); \ -bs_sm_1_proto(f); \ -bs_sm_2_proto(f); \ -bs_sm_4_proto(f); \ -bs_sm_8_proto(f); \ -bs_sr_1_proto(f); \ -bs_sr_2_proto(f); \ -bs_sr_4_proto(f); \ -bs_sr_8_proto(f); \ -bs_c_1_proto(f); \ -bs_c_2_proto(f); \ -bs_c_4_proto(f); \ -bs_c_8_proto(f); - -#define BUS_SPACE_ALIGNED_POINTER(p, t) ALIGNED_POINTER(p, t) - -#define BUS_SPACE_MAXADDR_24BIT 0xFFFFFF -#define BUS_SPACE_MAXADDR_32BIT 0xFFFFFFFF -#define BUS_SPACE_MAXADDR 0xFFFFFFFF -#define BUS_SPACE_MAXSIZE_24BIT 0xFFFFFF -#define BUS_SPACE_MAXSIZE_32BIT 0xFFFFFFFF -#define BUS_SPACE_MAXSIZE 0xFFFFFFFF - #include #endif /* _MACHINE_BUS_H_ */ ----Next_Part(Sun_Sep_21_20_24_30_2008_501)---- From owner-freebsd-arm@FreeBSD.ORG Mon Sep 22 04:18:56 2008 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 458161065672; Mon, 22 Sep 2008 04:18:56 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from smarthost1.sentex.ca (smarthost1.sentex.ca [64.7.153.18]) by mx1.freebsd.org (Postfix) with ESMTP id E4D218FC17; Mon, 22 Sep 2008 04:18:55 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from smtp2.sentex.ca (smtp2c.sentex.ca [64.7.153.30]) by smarthost1.sentex.ca (8.14.2/8.14.2) with ESMTP id m8M4Iqjs048692; Mon, 22 Sep 2008 00:18:53 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by smtp2.sentex.ca (8.14.3/8.14.3) with ESMTP id m8M4Iq66031521; Mon, 22 Sep 2008 00:18:52 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: by freebsd-current.sentex.ca (Postfix, from userid 666) id B6E7973039; Mon, 22 Sep 2008 00:18:52 -0400 (EDT) Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Message-Id: <20080922041852.B6E7973039@freebsd-current.sentex.ca> Date: Mon, 22 Sep 2008 00:18:52 -0400 (EDT) X-Virus-Scanned: ClamAV version 0.94, clamav-milter version 0.94 on clamscanner3 X-Virus-Status: Clean X-Scanned-By: MIMEDefang 2.64 on 64.7.153.18 Cc: Subject: [head tinderbox] failure on arm/arm X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Sep 2008 04:18:56 -0000 TB --- 2008-09-22 03:20:00 - tinderbox 2.3 running on freebsd-current.sentex.ca TB --- 2008-09-22 03:20:00 - starting HEAD tinderbox run for arm/arm TB --- 2008-09-22 03:20:00 - cleaning the object tree TB --- 2008-09-22 03:20:26 - cvsupping the source tree TB --- 2008-09-22 03:20:26 - /usr/bin/csup -r 3 -g -L 1 -h localhost -s /tinderbox/HEAD/arm/arm/supfile TB --- 2008-09-22 03:20:36 - building world (CFLAGS=-O -pipe) TB --- 2008-09-22 03:20:36 - cd /src TB --- 2008-09-22 03:20:36 - /usr/bin/make -B buildworld >>> World build started on Mon Sep 22 03:20:38 UTC 2008 >>> 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 [...] cc -O -pipe -I/src/sbin/ipf/ipresend/../../../contrib/ipfilter -I/src/sbin/ipf/ipresend/../../../contrib/ipfilter/tools -I/src/sbin/ipf/ipresend/../../../sys -I/src/sbin/ipf/ipresend/../../../sys/contrib/ipfilter -DSTATETOP -D__UIO_EXPOSE -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -o ipresend ipresend.o ip.o resend.o sbpf.o sock.o 44arp.o /obj/arm/src/sbin/ipf/ipresend/../libipf/libipf.a -lkvm gzip -cn /src/sbin/ipf/ipresend/../../../contrib/ipfilter/ipsend/ipresend.1 > ipresend.1.gz ===> sbin/ipfw (all) cc -O -pipe -Wno-pointer-sign -c /src/sbin/ipfw/ipfw2.c /src/sbin/ipfw/ipfw2.c: In function 'table_handler': /src/sbin/ipfw/ipfw2.c:5877: error: 'a' undeclared (first use in this function) /src/sbin/ipfw/ipfw2.c:5877: error: (Each undeclared identifier is reported only once /src/sbin/ipfw/ipfw2.c:5877: error: for each function it appears in.) *** Error code 1 Stop in /src/sbin/ipfw. *** Error code 1 Stop in /src/sbin. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2008-09-22 04:18:52 - WARNING: /usr/bin/make returned exit code 1 TB --- 2008-09-22 04:18:52 - ERROR: failed to build world TB --- 2008-09-22 04:18:52 - tinderbox aborted TB --- 2578.04 user 324.55 system 3531.68 real http://tinderbox.des.no/tinderbox-head-HEAD-arm-arm.full From owner-freebsd-arm@FreeBSD.ORG Mon Sep 22 05:36:40 2008 Return-Path: Delivered-To: arm@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B1CDD106564A; Mon, 22 Sep 2008 05:36:40 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 5ADAB8FC14; Mon, 22 Sep 2008 05:36:40 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.2/8.14.1) with ESMTP id m8M5ZsxA012765; Sun, 21 Sep 2008 23:35:54 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Sun, 21 Sep 2008 23:36:44 -0600 (MDT) Message-Id: <20080921.233644.1649786512.imp@bsdimp.com> To: kevlo@FreeBSD.org From: "M. Warner Losh" In-Reply-To: <1222061003.10402.4.camel@nsl> References: <20080921.202430.-893473872.imp@bsdimp.com> <1222061003.10402.4.camel@nsl> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: arm@FreeBSD.org Subject: Re: Code review request X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Sep 2008 05:36:40 -0000 In message: <1222061003.10402.4.camel@nsl> Kevin Lo writes: : M. Warner Losh wrote: : > I did this a long time ago, but never committed it. I believe that : > this works. It uses the common bus space methods to implement the : > default arm bus space methods. : > : > Comments? : : You're missing the bs_ind.h header file and this patch doesn't apply : cleanly against -HEAD. Hmmm.... I'll try again. Sorry about that... Warner From owner-freebsd-arm@FreeBSD.ORG Mon Sep 22 05:49:06 2008 Return-Path: Delivered-To: arm@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D15C106566C for ; Mon, 22 Sep 2008 05:49:06 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from ns.kevlo.org (kevlo.org [220.128.136.52]) by mx1.freebsd.org (Postfix) with ESMTP id 2B8E48FC1D for ; Mon, 22 Sep 2008 05:49:03 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from [127.0.0.1] (ns.kevlo.org [220.128.136.52]) by ns.kevlo.org (8.14.3/8.14.3) with ESMTP id m8M5LFWA027206; Mon, 22 Sep 2008 13:21:16 +0800 (CST) (envelope-from kevlo@FreeBSD.org) X-Authentication-Warning: ns.kevlo.org: Host ns.kevlo.org [220.128.136.52] claimed to be [127.0.0.1] From: Kevin Lo To: "M. Warner Losh" In-Reply-To: <20080921.202430.-893473872.imp@bsdimp.com> References: <20080921.202430.-893473872.imp@bsdimp.com> Content-Type: text/plain Date: Mon, 22 Sep 2008 13:23:23 +0800 Message-Id: <1222061003.10402.4.camel@nsl> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 Content-Transfer-Encoding: 7bit Cc: arm@FreeBSD.org Subject: Re: Code review request X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Sep 2008 05:49:06 -0000 M. Warner Losh wrote: > I did this a long time ago, but never committed it. I believe that > this works. It uses the common bus space methods to implement the > default arm bus space methods. > > Comments? You're missing the bs_ind.h header file and this patch doesn't apply cleanly against -HEAD. > Warner Kevin From owner-freebsd-arm@FreeBSD.ORG Wed Sep 24 12:25:31 2008 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B8C9F1065682 for ; Wed, 24 Sep 2008 12:25:31 +0000 (UTC) (envelope-from raj@semihalf.com) Received: from semihalf.com (semihalf.com [206.130.101.55]) by mx1.freebsd.org (Postfix) with ESMTP id 88A798FC1B for ; Wed, 24 Sep 2008 12:25:26 +0000 (UTC) (envelope-from raj@semihalf.com) Received: from mail.semihalf.com (mail.semihalf.com [83.15.139.206]) by semihalf.com (8.13.1/8.13.1) with ESMTP id m8OCPOQw018524 for ; Wed, 24 Sep 2008 06:25:25 -0600 Message-ID: <48DA31B3.5040906@semihalf.com> Date: Wed, 24 Sep 2008 14:25:23 +0200 From: Rafal Jaworowski Organization: Semihalf MIME-Version: 1.0 To: freebsd-arm@freebsd.org Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 7bit Subject: FreeBSD/arm support for Marvell chips -- please review X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2008 12:25:31 -0000 All, With the recent series of submits in P4's arm-devel branch, I have completed import of FreeBSD/arm support for three families of Marvell integrated systems-on-chip built on ARMv5TE-compliant core. Orion support has been around for a while already, and recently added were extensions for Kirkwood and Discovery support, new drivers for integrated peripherals and other improvements. I'd like to merge this with SVN within the coming weeks, so would like to ask everyone to review the code and let me know about any comments or notes: 1. CPU + SOC specific integrated peripherals http://p4web.freebsd.org/@md=d&cd=//depot/&c=jjG@//depot/projects/arm/src/sys/arm/mv/?ac=83 2. Other peripherals: http://p4web.freebsd.org/@md=d&cd=//depot/&c=jjG@//depot/projects/arm/src/sys/dev/mge/?ac=83 http://p4web.freebsd.org/@md=d&cd=//depot/&c=jjG@//depot/projects/arm/src/sys/dev/usb/ehci_mbus.c?ac=22 http://p4web.freebsd.org/@md=d&cd=//depot/&c=jjG@//depot/projects/arm/src/sys/dev/uart/uart_bus_mbus.c?ac=22 http://p4web.freebsd.org/@md=d&cd=//depot/&c=jjG@//depot/projects/arm/src/sys/dev/uart/uart_cpu_mv.c?ac=22 The code is synced with up-to-date CURRENT and has been successfully tested on the following chips: * 88F5182, 88F5281 * 88F6281 * MV78100 Supported functionality highlights: * EHCI USB 2.0 * Ethernet * GPIO * Interrupt controller * L1, L2 cache * Timers, watchdog, RTC * TWSI (I2C) * UART * Multiuser operation * Self-hosted kernel/world builds * NFS- or USB-mounted root filesystem For users reference I have put together an initial howto with examples and other details: http://wiki.freebsd.org/FreeBSDMarvell Rafal From owner-freebsd-arm@FreeBSD.ORG Wed Sep 24 20:46:29 2008 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3E839106568D for ; Wed, 24 Sep 2008 20:46:29 +0000 (UTC) (envelope-from jhein@timing.com) Received: from Daffy.timing.com (w.timing.com [206.168.13.218]) by mx1.freebsd.org (Postfix) with ESMTP id 0194D8FC20 for ; Wed, 24 Sep 2008 20:46:28 +0000 (UTC) (envelope-from jhein@timing.com) Received: from gromit.timing.com (gromit.timing.com [206.168.13.209]) by Daffy.timing.com (8.13.1/8.13.1) with ESMTP id m8OK5R8u014156 for ; Wed, 24 Sep 2008 14:05:28 -0600 (MDT) (envelope-from jhein@timing.com) Received: from gromit.timing.com (localhost [127.0.0.1]) by gromit.timing.com (8.14.2/8.14.2) with ESMTP id m8OJQW04083518; Wed, 24 Sep 2008 13:26:32 -0600 (MDT) (envelope-from jhein@gromit.timing.com) Received: (from jhein@localhost) by gromit.timing.com (8.14.2/8.14.2/Submit) id m8OJQWdw083515; Wed, 24 Sep 2008 13:26:32 -0600 (MDT) (envelope-from jhein) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <18650.37992.131070.673817@gromit.timing.com> Date: Wed, 24 Sep 2008 13:26:32 -0600 From: John Hein To: arm@freebsd.org X-Mailer: VM 7.19 under Emacs 22.2.1 X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on Daffy.timing.com X-Virus-Status: Clean Cc: Subject: kernel panic: "Translation Fault" X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2008 20:46:29 -0000 Has anyone ever seen this? ... vm_fault(0xc0c61a20, bf7dd000, 1, 0) -> 5 Fatal kernel mode data abort: 'Translation Fault (S)' trapframe: 0xc5a4cc90 FSR=00000005, FAR=bf7ddff4, spsr=20000013 r0 =bf7ddfb8, r1 =00000001, r2 =00001000, r3 =c02ed000 r4 =c02bb000, r5 =00000000, r6 =00000000, r7 =00001000 r8 =00000000, r9 =c02005f8, r10=00000001, r11=c5a4ccf8 r12=c5a4ccfc, ssp=c5a4ccdc, slr=c0179890, pc =c0179220 [thread pid 4149 tid 100095 ] Stopped at pmap_wb_page+0xc: ldr r4, [r0, #0x03c] This is a somewhat older codebase (FreeBSD 6.2-ish + patches) and may not have more recent vm fixes. Sorry for the vague report, but I'm just curious if this has been seen by anyone. From owner-freebsd-arm@FreeBSD.ORG Sat Sep 27 21:43:08 2008 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E57261065688; Sat, 27 Sep 2008 21:43:08 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from cmail.optima.ua (cmail.optima.ua [195.248.191.121]) by mx1.freebsd.org (Postfix) with ESMTP id E48138FC08; Sat, 27 Sep 2008 21:43:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) X-Spam-Flag: SKIP X-Spam-Yversion: Spamooborona-2.1.0 Received: from [212.86.226.226] (account mav@alkar.net HELO mavbook.mavhome.dp.ua) by cmail.optima.ua (CommuniGate Pro SMTP 5.1.14) with ESMTPSA id 222571166; Sat, 27 Sep 2008 23:43:05 +0300 Message-ID: <48DEA8E7.2080503@FreeBSD.org> Date: Sun, 28 Sep 2008 00:43:03 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.16 (X11/20080726) MIME-Version: 1.0 To: freebsd-arm@FreeBSD.org, freebsd-mobile@FreeBSD.org, freebsd-current@freebsd.org Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit Cc: imp@FreeBSD.org Subject: RFC: PCI SD host controller driver & mmc/mmcsd modules improvements X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Sep 2008 21:43:09 -0000 Hi. I would like to present initial revision of my generic PCI SD Host Controller driver (sdhci). It support PCI devices with class 8 and subclass 5 according to SD Host Controller Specification. With some limitations it successfully works on my Acer TM6292 notebook with ENE CB714 card reader. Things that are working now: - PIO mode single and multiple block read and write, - 1 and 4 bits bus width support. In PIO mode with 4GB SD card on 30MHz 4bit bus I have reached about 3.5MB/s (limited by CPU) linear read and 7MB/s (limited by card) linear write. Small blocks read/write performance limited by card. Things that are not working yet: - DMA modes (code is written, but as my controller looks like has broken DMA I have no ability to debug it), - card insert/remove detection (need more thinking), you should reload mmc module to rescan cards, - SDHC and MMC cards (have no such cards now to debug that code), only standard capacity SD Memory cards up to 4GB size are supported now, - high speed (double rate) bus mode (need more thinking and DMA support). Also to get such results I have improved existing mmc and mmcsd drivers a bit. mmc driver got: - 4 bit bus width support, - write protection switch support, - cards with more then 2GB capacity support. mmcsd driver got: - multiple block read and write support, - cards with more then 2GB capacity support, - I/O error reporting, - write protection switch support. Latest patches against 8-CURRENT (should also fit 7-STABLE) may be found at: http://people.freebsd.org/~mav/sdhci/ I will be grateful for any feedbacks, comments and support. -- Alexander Motin From owner-freebsd-arm@FreeBSD.ORG Sat Sep 27 21:52:34 2008 Return-Path: Delivered-To: freebsd-arm@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5816C10656C0; Sat, 27 Sep 2008 21:52:34 +0000 (UTC) (envelope-from gonzo@bluezbox.com) Received: from core.tav.kiev.ua (tavex.colocall.com [62.149.10.42]) by mx1.freebsd.org (Postfix) with ESMTP id E61028FC1B; Sat, 27 Sep 2008 21:52:33 +0000 (UTC) (envelope-from gonzo@bluezbox.com) Received: from s01060021299bf294.vc.shawcable.net ([24.87.45.120] helo=jeeves.bluezbox.com) by core.tav.kiev.ua with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.52 (FreeBSD)) id 1KjhJ0-000Osq-G8; Sun, 28 Sep 2008 00:26:23 +0300 Message-ID: <48DEA4EC.3030300@bluezbox.com> Date: Sat, 27 Sep 2008 14:26:04 -0700 From: Oleksandr Tymoshenko User-Agent: Thunderbird 2.0.0.16 (X11/20080831) MIME-Version: 1.0 To: Alexander Motin References: <48DEA8E7.2080503@FreeBSD.org> In-Reply-To: <48DEA8E7.2080503@FreeBSD.org> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 7bit X-Core-Spam-Level: ---- X-Core-Spam-Report: Spam detection software, running on the system "core.tav.kiev.ua", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Alexander Motin wrote: > Hi. > > Latest patches against 8-CURRENT (should also fit 7-STABLE) may be found > at: > http://people.freebsd.org/~mav/sdhci/ Thanks! That's just what I was looking for about three weeks ago :) > > I will be grateful for any feedbacks, comments and support. 7.1 requires s/kproc/kthread/ but otherwise works fine: [...] Content analysis details: (-4.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.8 ALL_TRUSTED Passed through trusted hosts only via SMTP -2.6 BAYES_00 BODY: Bayesian spam probability is 0 to 1% [score: 0.0000] 0.4 AWL AWL: From: address is in the auto white-list Cc: freebsd-arm@FreeBSD.org, freebsd-current@freebsd.org, imp@FreeBSD.org, freebsd-mobile@FreeBSD.org Subject: Re: RFC: PCI SD host controller driver & mmc/mmcsd modules improvements X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Sep 2008 21:52:34 -0000 Alexander Motin wrote: > Hi. > > Latest patches against 8-CURRENT (should also fit 7-STABLE) may be found > at: > http://people.freebsd.org/~mav/sdhci/ Thanks! That's just what I was looking for about three weeks ago :) > > I will be grateful for any feedbacks, comments and support. 7.1 requires s/kproc/kthread/ but otherwise works fine: sdhci0: mem 0xff9fb800-0xff9fb8ff irq 9 at device 1.2 on pci2 sdhci0: 1 slot(s) allocated sdhci0: [ITHREAD] mmc0: on sdhci0 mmc0: SD card: 507379712 bytes mmcsd0: 483MB (read-only) at mmc0 mmc0: setting transfer rate to 30.000MHz mmc0: setting bus width to 4 bits GEOM_LABEL: Label for provider mmcsd0s1 is msdosfs/SD. From owner-freebsd-arm@FreeBSD.ORG Sat Sep 27 23:25:48 2008 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7790B106568B for ; Sat, 27 Sep 2008 23:25:48 +0000 (UTC) (envelope-from rpaulo@gmail.com) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.173]) by mx1.freebsd.org (Postfix) with ESMTP id 033E68FC1B for ; Sat, 27 Sep 2008 23:25:47 +0000 (UTC) (envelope-from rpaulo@gmail.com) Received: by ug-out-1314.google.com with SMTP id m2so154823uge.39 for ; Sat, 27 Sep 2008 16:25:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:references:message-id:to :in-reply-to:content-type:content-transfer-encoding:x-mailer :mime-version:subject:date:cc:from:sender; bh=MisK+0IjqFwDBUzwm3/2/8jAhy0EWNoVIdUqw3fV/wg=; b=bZ9Cg7zccNqijrJhUk94ATotUp9J2+WVgsZn1FiyJG00kZkWrXfyFtHRjP5JPkSEbu A0jdW8nVX3Mxu/af3gm/mzMKbI/G5QPPVls1Zekdz0Ost7XnJ88lUMa+cV+TLOoe+qvU w738hqbYqKNnEXGZ300spp1s3oTRFjrv7URJM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=references:message-id:to:in-reply-to:content-type :content-transfer-encoding:x-mailer:mime-version:subject:date:cc :from:sender; b=d16NKjvgInxtbXIeXrZvadDjYjFnbu9d8+Z2Mnp+HhmlRfPTRZEtf/z4JjKpLKb2qT l3mVVASC0VaH+oH6OJvyPwZO1bTe38VBux51Sd74TGNbkNtiSqlPRRPBJAw3TdWiCPwa WQ271kqAeBSLvSryPEzbkYfn430QI/w6GFZjA= Received: by 10.210.87.14 with SMTP id k14mr3806217ebb.7.1222556351614; Sat, 27 Sep 2008 15:59:11 -0700 (PDT) Received: from ?10.0.1.4? ([89.214.188.107]) by mx.google.com with ESMTPS id q9sm867075gve.5.2008.09.27.15.59.05 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 27 Sep 2008 15:59:10 -0700 (PDT) References: <48DEA8E7.2080503@FreeBSD.org> Message-Id: <9D33158B-B28D-4D22-B3BF-A7CE376FCAD1@freebd.org> To: Alexander Motin In-Reply-To: <48DEA8E7.2080503@FreeBSD.org> Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Mailer: iPod Mail (5F137) Mime-Version: 1.0 (iPod Mail 5F137) Date: Sat, 27 Sep 2008 23:58:56 +0100 From: Rui Paulo Sender: Rui Paulo Cc: "freebsd-arm@FreeBSD.org" , "freebsd-current@freebsd.org" , "imp@FreeBSD.org" , "freebsd-mobile@FreeBSD.org" Subject: Re: RFC: PCI SD host controller driver & mmc/mmcsd modules improvements X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Sep 2008 23:25:48 -0000 On 27 Sep 2008, at 22:43, Alexander Motin wrote: > Hi. > > I would like to present initial revision of my generic PCI SD Host > Controller driver (sdhci). It support PCI devices with class 8 and > subclass 5 according to SD Host Controller Specification. With some > limitations it successfully works on my Acer TM6292 notebook with > ENE CB714 card reader. > > Things that are working now: > - PIO mode single and multiple block read and write, > - 1 and 4 bits bus width support. > > In PIO mode with 4GB SD card on 30MHz 4bit bus I have reached about > 3.5MB/s (limited by CPU) linear read and 7MB/s (limited by card) > linear write. Small blocks read/write performance limited by card. > > Things that are not working yet: > - DMA modes (code is written, but as my controller looks like has > broken DMA I have no ability to debug it), > - card insert/remove detection (need more thinking), you should > reload mmc module to rescan cards, > - SDHC and MMC cards (have no such cards now to debug that code), > only standard capacity SD Memory cards up to 4GB size are supported > now, > - high speed (double rate) bus mode (need more thinking and DMA > support). > > Also to get such results I have improved existing mmc and mmcsd > drivers a bit. mmc driver got: > - 4 bit bus width support, > - write protection switch support, > - cards with more then 2GB capacity support. > mmcsd driver got: > - multiple block read and write support, > - cards with more then 2GB capacity support, > - I/O error reporting, > - write protection switch support. > > Latest patches against 8-CURRENT (should also fit 7-STABLE) may be > found at: > http://people.freebsd.org/~mav/sdhci/ > > I will be grateful for any feedbacks, comments and support. Well, here's my support: Great work! :-) -- Rui Paulo