From owner-freebsd-arm@FreeBSD.ORG Fri Nov 30 11:53:42 2007 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 B372516A46E for ; Fri, 30 Nov 2007 11:53:42 +0000 (UTC) (envelope-from raj@semihalf.com) Received: from mail.semihalf.com (mail.semihalf.com [83.15.139.206]) by mx1.freebsd.org (Postfix) with ESMTP id BC2DC13C4F4 for ; Fri, 30 Nov 2007 11:53:41 +0000 (UTC) (envelope-from raj@semihalf.com) Received: from localhost (unknown [127.0.0.1]) by mail.semihalf.com (Postfix) with ESMTP id 612301449F; Fri, 30 Nov 2007 12:55:46 +0100 (CET) Received: from mail.semihalf.com ([127.0.0.1]) by localhost (mail.semihalf.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15132-02; Fri, 30 Nov 2007 12:55:42 +0100 (CET) Message-ID: <474FF9BF.8090707@semihalf.com> Date: Fri, 30 Nov 2007 12:53:35 +0100 From: Rafal Jaworowski MIME-Version: 1.0 To: Olivier Houchard Content-Type: multipart/mixed; boundary="------------090709020103070600080902" X-Virus-Scanned: by amavisd-new at semihalf.com Cc: freebsd-arm@freebsd.org Subject: ARM arch subdir cleanups 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: Fri, 30 Nov 2007 11:53:42 -0000 This is a multi-part message in MIME format. --------------090709020103070600080902 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 7bit Hi, Attached are two patches with the following cleanups: 1. Convert nexus to standard device since it's mandatory anyway, remove stale nexus_io_asm.S and nexus_io.c 2. Streamline sys/conf/files.arm (and hence the kernel image contents): move asm routines to appropriate sys/arm//files. It seems to me other items in the ARM arch subdirectory would benefit from optimization/cleanups too, for example: - Shared OBIO routines. At least these are nearly identical and could be compressed into one I guess: xscale/i80321/obio_space.c xscale/i8134x/obio_space.c xscale/pxa2x0/pxa2x0_space.c (in P4) - Shared bus space generic methods. A lot of BS methods like *_bs_map(), _bs_subregion() etc. are copied in separate files for different ARM platforms, but most of this could be placed in one file, just like we have a common assembly routines in the arm/arm/bus_space_asm_generic.S. - Others like arm/arm/machdep.c and arm/arm/sys_machdep.c seem akin, could they be merged into one file? I can work on cleaning those up, would such changes be welcome? Rafal --------------090709020103070600080902 Content-Type: text/plain; name="nexus_cleanup.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="nexus_cleanup.diff" diff --git a/sys/arm/arm/nexus.c b/sys/arm/arm/nexus.c index 8103df1..3e0efc9 100644 --- a/sys/arm/arm/nexus.c +++ b/sys/arm/arm/nexus.c @@ -166,7 +166,7 @@ nexus_print_child(device_t bus, device_t int retval = 0; retval += bus_print_child_header(bus, child); - retval += printf(" on motherboard\n"); /* XXX "motherboard", ick */ + retval += printf("\n"); return (retval); } diff --git a/sys/arm/arm/nexus_io.c b/sys/arm/arm/nexus_io.c deleted file mode 100644 index 37fad02..0000000 --- a/sys/arm/arm/nexus_io.c +++ /dev/null @@ -1,202 +0,0 @@ -/* $NetBSD: mainbus_io.c,v 1.13 2003/07/15 00:24:47 lukem Exp $ */ - -/*- - * Copyright (c) 1997 Mark Brinicombe. - * 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, 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 Mark Brinicombe. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 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 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. - */ - -/* - * bus_space I/O functions for mainbus - */ - -#include -__FBSDID("$FreeBSD: src/sys/arm/arm/nexus_io.c,v 1.7 2006/11/19 23:46:50 sam Exp $"); - -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#include -#include - -/* Proto types for all the bus_space structure functions */ -vm_offset_t lala; -bs_protos(nexus); -/* Declare the mainbus bus space tag */ - -struct bus_space mainbus_bs_tag = { - /* cookie */ - NULL, - - /* mapping/unmapping */ - nexus_bs_map, - nexus_bs_unmap, - nexus_bs_subregion, - - /* allocation/deallocation */ - nexus_bs_alloc, - nexus_bs_free, - - /* barrier */ - nexus_bs_barrier, - - /* read (single) */ - nexus_bs_r_1, - nexus_bs_r_2, - nexus_bs_r_4, - NULL, - - /* read multiple */ - NULL, - nexus_bs_rm_2, - NULL, - NULL, - - /* read region */ - NULL, - NULL, - NULL, - NULL, - - /* write (single) */ - nexus_bs_w_1, - nexus_bs_w_2, - nexus_bs_w_4, - NULL, - - /* write multiple */ - nexus_bs_wm_1, - nexus_bs_wm_2, - NULL, - NULL, - - /* write region */ - NULL, - NULL, - NULL, - NULL, - - NULL, - NULL, - NULL, - NULL, - - /* set region */ - NULL, - NULL, - NULL, - NULL, - - /* copy */ - NULL, - NULL, - NULL, - NULL, -}; - -/* bus space functions */ - -int -nexus_bs_map(void *t, bus_addr_t bpa, bus_size_t size, int cacheable, - bus_space_handle_t *bshp) -{ - return(0); -} - -int -nexus_bs_alloc(t, rstart, rend, size, alignment, boundary, cacheable, - bpap, bshp) - void *t; - bus_addr_t rstart, rend; - bus_size_t size, alignment, boundary; - int cacheable; - bus_addr_t *bpap; - bus_space_handle_t *bshp; -{ - panic("mainbus_bs_alloc(): Help!"); -} - - -void -nexus_bs_unmap(void *t, bus_space_handle_t h, bus_size_t size) -{ - /* - * Temporary implementation - */ -} - -void -nexus_bs_free(t, bsh, size) - void *t; - bus_space_handle_t bsh; - bus_size_t size; -{ - - panic("mainbus_bs_free(): Help!"); - /* mainbus_bs_unmap() does all that we need to do. */ -/* mainbus_bs_unmap(t, bsh, size);*/ -} - -int -nexus_bs_subregion(t, bsh, offset, size, nbshp) - void *t; - bus_space_handle_t bsh; - bus_size_t offset, size; - bus_space_handle_t *nbshp; -{ - - *nbshp = bsh + offset; - return (0); -} - -int -nexus_bs_mmap(struct cdev *dev, vm_offset_t off, vm_paddr_t *addr, int prot) -{ - *addr = off; - return (0); -} - -void -nexus_bs_barrier(t, bsh, offset, len, flags) - void *t; - bus_space_handle_t bsh; - bus_size_t offset, len; - int flags; -{ -} - -/* End of mainbus_io.c */ diff --git a/sys/arm/arm/nexus_io_asm.S b/sys/arm/arm/nexus_io_asm.S deleted file mode 100644 index bbf7eb7..0000000 --- a/sys/arm/arm/nexus_io_asm.S +++ /dev/null @@ -1,114 +0,0 @@ -/* $NetBSD: mainbus_io_asm.S,v 1.1 2001/02/24 19:38:02 reinoud Exp $ */ - -/*- - * Copyright (c) 1997 Mark Brinicombe. - * 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, 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 Mark Brinicombe. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * 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 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. - * - */ - -#include -__FBSDID("$FreeBSD: src/sys/arm/arm/nexus_io_asm.S,v 1.3 2005/01/05 21:58:47 imp Exp $"); - -/* - * bus_space I/O functions for nexus - */ - - -/* - * read single - */ - -ENTRY(nexus_bs_r_1) - ldrb r0, [r1, r2, lsl #2] - RET - -ENTRY(nexus_bs_r_2) - ldr r0, [r1, r2, lsl #2] - bic r0, r0, #0xff000000 - bic r0, r0, #0x00ff0000 - RET - -ENTRY(nexus_bs_r_4) - ldr r0, [r1, r2, lsl #2] - RET - -/* - * write single - */ - -ENTRY(nexus_bs_w_1) - strb r3, [r1, r2, lsl #2] - RET - -ENTRY(nexus_bs_w_2) - mov r3, r3, lsl #16 - orr r3, r3, r3, lsr #16 - str r3, [r1, r2, lsl #2] - RET - -ENTRY(nexus_bs_w_4) - str r3, [r1, r2, lsl #2] - RET - -/* - * read multiple - */ - -ENTRY(nexus_bs_rm_2) - add r0, r1, r2, lsl #2 - mov r1, r3 - ldr r2, [sp, #0] - b _C_LABEL(insw16) - -/* - * write multiple - */ - -ENTRY(nexus_bs_wm_1) - add r0, r1, r2, lsl #2 - ldr r2, [sp, #0] - - /* Make sure that we have a positive length */ - cmp r2, #0x00000000 - movle pc, lr - -nexus_wm_1_loop: - ldrb r1, [r3], #0x0001 - str r1, [r0] - subs r2, r2, #0x00000001 - bgt nexus_wm_1_loop - - RET - -ENTRY(nexus_bs_wm_2) - add r0, r1, r2, lsl #2 - mov r1, r3 - ldr r2, [sp, #0] - b _C_LABEL(outsw16) diff --git a/sys/arm/conf/AVILA b/sys/arm/conf/AVILA index d37d67b..94e9501 100644 --- a/sys/arm/conf/AVILA +++ b/sys/arm/conf/AVILA @@ -80,7 +80,6 @@ #options PREEMPTION #options VERBOSE_SYSINIT device genclock -device nexus device mem # Memory and kernel memory devices #device saarm diff --git a/sys/arm/conf/BWCT b/sys/arm/conf/BWCT index 1ad60a7..8dfcf16 100644 --- a/sys/arm/conf/BWCT +++ b/sys/arm/conf/BWCT @@ -73,7 +73,6 @@ device random device ether device vlan device pty -device nexus device uart device ate device mii diff --git a/sys/arm/conf/CRB b/sys/arm/conf/CRB index 4f66544..cc48b00 100644 --- a/sys/arm/conf/CRB +++ b/sys/arm/conf/CRB @@ -67,7 +67,6 @@ #options PREEMPTION device genclock device loop device ether -device nexus device mem # Memory and kernel memory devices #device saarm device miibus diff --git a/sys/arm/conf/EP80219 b/sys/arm/conf/EP80219 index 4bd600e..9c99132 100644 --- a/sys/arm/conf/EP80219 +++ b/sys/arm/conf/EP80219 @@ -69,7 +69,6 @@ #options PREEMPTION device genclock device loop device ether -device nexus device mem # Memory and kernel memory devices #device saarm device miibus diff --git a/sys/arm/conf/HL200 b/sys/arm/conf/HL200 index 6e6c4a4..f70c037 100644 --- a/sys/arm/conf/HL200 +++ b/sys/arm/conf/HL200 @@ -78,7 +78,6 @@ device random device pty device loop device ether -device nexus device uart device ate device mii diff --git a/sys/arm/conf/IQ31244 b/sys/arm/conf/IQ31244 index c05d549..86c008e 100644 --- a/sys/arm/conf/IQ31244 +++ b/sys/arm/conf/IQ31244 @@ -66,7 +66,6 @@ #options PREEMPTION device genclock device loop device ether -device nexus device mem # Memory and kernel memory devices #device saarm device miibus diff --git a/sys/arm/conf/KB920X b/sys/arm/conf/KB920X index 74c8a2d..7d6463d 100644 --- a/sys/arm/conf/KB920X +++ b/sys/arm/conf/KB920X @@ -66,7 +66,6 @@ device random device pty device loop device ether -device nexus device uart device ate device mii diff --git a/sys/arm/conf/SIMICS b/sys/arm/conf/SIMICS index b55d5fe..edc1106 100644 --- a/sys/arm/conf/SIMICS +++ b/sys/arm/conf/SIMICS @@ -58,7 +58,6 @@ device loop device ether device saip device assabet -device nexus #device saarm device rl device uart diff --git a/sys/arm/conf/SKYEYE b/sys/arm/conf/SKYEYE index a083cdf..e8efcbb 100644 --- a/sys/arm/conf/SKYEYE +++ b/sys/arm/conf/SKYEYE @@ -61,7 +61,6 @@ options KBD_INSTALL_CDEV # install a CD device genclock device loop device ether -device nexus #device saarm device rl device uart diff --git a/sys/conf/files.arm b/sys/conf/files.arm index 1cc792f..1f2b796 100644 --- a/sys/conf/files.arm +++ b/sys/conf/files.arm @@ -32,9 +32,7 @@ arm/arm/intr.c standard arm/arm/locore.S standard no-obj arm/arm/machdep.c standard arm/arm/mem.c optional mem -arm/arm/nexus.c optional nexus -arm/arm/nexus_io.c optional nexus -arm/arm/nexus_io_asm.S optional nexus +arm/arm/nexus.c standard arm/arm/pmap.c standard arm/arm/setcpsr.S standard arm/arm/setstack.s standard --------------090709020103070600080902 Content-Type: text/plain; name="files_arm.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="files_arm.diff" diff --git a/sys/arm/sa11x0/files.sa11x0 b/sys/arm/sa11x0/files.sa11x0 index 4f0af53..451bf03 100644 --- a/sys/arm/sa11x0/files.sa11x0 +++ b/sys/arm/sa11x0/files.sa11x0 @@ -1,4 +1,6 @@ # $FreeBSD: src/sys/arm/sa11x0/files.sa11x0,v 1.2 2004/05/14 13:26:52 cognet Exp $ +arm/arm/cpufunc_asm_sa1.S standard +arm/arm/cpufunc_asm_sa11x0.S standard arm/sa11x0/assabet_machdep.c optional assabet arm/sa11x0/sa11x0.c optional saip arm/sa11x0/sa11x0_ost.c optional saip diff --git a/sys/conf/files.arm b/sys/conf/files.arm index 1cc792f..6dcaa51 100644 --- a/sys/conf/files.arm +++ b/sys/conf/files.arm @@ -11,9 +11,7 @@ arm/arm/busdma_machdep.c standard arm/arm/copystr.S standard arm/arm/cpufunc.c standard arm/arm/cpufunc_asm.S standard -arm/arm/cpufunc_asm_sa1.S standard arm/arm/cpufunc_asm_armv4.S standard -arm/arm/cpufunc_asm_sa11x0.S standard arm/arm/db_disasm.c optional ddb arm/arm/db_interface.c optional ddb arm/arm/db_trace.c optional ddb --------------090709020103070600080902--