ARM arch subdir cleanups
Rafal Jaworowski
raj at semihalf.com
Fri Nov 30 03:53:42 PST 2007
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/<platform>/files.<platform>
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
-------------- next part --------------
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 <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/nexus_io.c,v 1.7 2006/11/19 23:46:50 sam Exp $");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/queue.h>
-#include <sys/bus.h>
-#include <sys/lock.h>
-#include <sys/mutex.h>
-#include <vm/vm.h>
-#include <vm/pmap.h>
-#include <vm/vm_extern.h>
-
-
-#include <machine/bus.h>
-#include <machine/pmap.h>
-
-/* 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 <machine/asm.h>
-__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
-------------- next part --------------
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
More information about the freebsd-arm
mailing list