Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Nov 2007 12:53:35 +0100
From:      Rafal Jaworowski <raj@semihalf.com>
To:        Olivier Houchard <mlfbsd@ci0.org>
Cc:        freebsd-arm@freebsd.org
Subject:   ARM arch subdir cleanups
Message-ID:  <474FF9BF.8090707@semihalf.com>

next in thread | raw e-mail | index | archive | help
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/<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

--------------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 <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

--------------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--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?474FF9BF.8090707>