summaryrefslogtreecommitdiffstats
path: root/sys/arm/mv
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2015-02-13 22:32:02 +0000
committerian <ian@FreeBSD.org>2015-02-13 22:32:02 +0000
commit56013bbc63788f7f357610ccce91f2cc61c70d95 (patch)
treef7990f29f83b3e942c97bf9fd8ada9ff38d30acf /sys/arm/mv
parentb137f825dc5437b86b9badcabaf55639bb4d862b (diff)
downloadFreeBSD-src-56013bbc63788f7f357610ccce91f2cc61c70d95.zip
FreeBSD-src-56013bbc63788f7f357610ccce91f2cc61c70d95.tar.gz
MFC r277454, r277460, r277465, r277466, r277467, r277469, r277470, r277471,
r277472, r277473, r277474, r277475, r277476, r277477, r277478, r277479, r277480, r277512, r277516: Add inline implementations of arm bus_space_read/write_N(). Revise the arm bus_space implementation to avoid dereferencing the tag on every operation to retrieve the bs_cookie value almost nothing actually uses. Use the explicit member initializer style to init the bus_space struct. Use arm/bus_space-v6.c for all armv6 systems Consolidate many identical implementations of bus_space to a single common tag and implementation shared by armv4 and armv6. Micro-optimize the new arm inline bus_space implementation by grouping all the data the inline functions access together at the start of the bus_space struct so that they all fit in a single cache line.
Diffstat (limited to 'sys/arm/mv')
-rw-r--r--sys/arm/mv/bus_space.c162
-rw-r--r--sys/arm/mv/files.mv2
2 files changed, 1 insertions, 163 deletions
diff --git a/sys/arm/mv/bus_space.c b/sys/arm/mv/bus_space.c
deleted file mode 100644
index 356f3e3..0000000
--- a/sys/arm/mv/bus_space.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/*-
- * Copyright (C) 2008 MARVELL INTERNATIONAL LTD.
- * All rights reserved.
- *
- * Developed by Semihalf.
- *
- * 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. Neither the name of MARVELL nor the names of contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY AUTHOR 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 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/bus.h>
-#include <sys/kernel.h>
-#include <sys/malloc.h>
-
-#include <machine/bus.h>
-
-/*
- * Bus space functions for Marvell SoC family
- */
-
-/* Prototypes for all the bus_space structure functions */
-bs_protos(generic);
-bs_protos(generic_armv4);
-
-/*
- * The bus space tag. This is constant for all instances, so
- * we never have to explicitly "create" it.
- */
-static struct bus_space _base_tag = {
- /* cookie */
- (void *) 0,
-
- /* mapping/unmapping */
- generic_bs_map,
- generic_bs_unmap,
- generic_bs_subregion,
-
- /* allocation/deallocation */
- generic_bs_alloc,
- generic_bs_free,
-
- /* barrier */
- generic_bs_barrier,
-
- /* read (single) */
- generic_bs_r_1,
- generic_armv4_bs_r_2,
- generic_bs_r_4,
- NULL,
-
- /* read multiple */
- generic_bs_rm_1,
- generic_armv4_bs_rm_2,
- generic_bs_rm_4,
- NULL,
-
- /* read region */
- generic_bs_rr_1,
- generic_armv4_bs_rr_2,
- generic_bs_rr_4,
- NULL,
-
- /* write (single) */
- generic_bs_w_1,
- generic_armv4_bs_w_2,
- generic_bs_w_4,
- NULL,
-
- /* write multiple */
- generic_bs_wm_1,
- generic_armv4_bs_wm_2,
- generic_bs_wm_4,
- NULL,
-
- /* write region */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* set multiple */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* set region */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* copy */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* read stream (single) */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* read multiple stream */
- NULL,
- generic_armv4_bs_rm_2, /* bus_space_read_multi_stream_2 */
- NULL,
- NULL,
-
- /* read region stream */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* write stream (single) */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* write multiple stream */
- NULL,
- generic_armv4_bs_wm_2, /* bus_space_write_multi_stream_2 */
- NULL,
- NULL,
-
- /* write region stream */
- NULL,
- NULL,
- NULL,
- NULL
-};
-
-bus_space_tag_t fdtbus_bs_tag = &_base_tag;
diff --git a/sys/arm/mv/files.mv b/sys/arm/mv/files.mv
index 0d14e4d..d730c01 100644
--- a/sys/arm/mv/files.mv
+++ b/sys/arm/mv/files.mv
@@ -12,6 +12,7 @@
# - JTAG/ICE
# - Vector Floating Point (VFP) unit
#
+arm/arm/bus_space_base.c standard
arm/arm/bus_space_generic.c standard
arm/arm/cpufunc_asm_arm10.S standard
arm/arm/cpufunc_asm_arm11.S standard
@@ -21,7 +22,6 @@ arm/arm/cpufunc_asm_armv7.S standard
arm/arm/cpufunc_asm_sheeva.S standard
arm/arm/cpufunc_asm_pj4b.S standard
-arm/mv/bus_space.c standard
arm/mv/gpio.c standard
arm/mv/mv_common.c standard
arm/mv/mv_localbus.c standard
OpenPOWER on IntegriCloud