summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2015-01-21 04:06:36 +0000
committerian <ian@FreeBSD.org>2015-01-21 04:06:36 +0000
commit1852f2db62c01de16f6d175ef3640b97fac602d1 (patch)
tree066b8497fcbabfab456d363cacd87b53fef1c463 /sys
parent2a957de5c05bfc237c68ba0e729739e9e6f5ad1f (diff)
downloadFreeBSD-src-1852f2db62c01de16f6d175ef3640b97fac602d1.zip
FreeBSD-src-1852f2db62c01de16f6d175ef3640b97fac602d1.tar.gz
The versatile platform had two copies of a bus_space that are essentially
duplicates of the standard arm base bus_space, so just use it.
Diffstat (limited to 'sys')
-rw-r--r--sys/arm/arm/bus_space_base.c6
-rw-r--r--sys/arm/include/bus.h1
-rw-r--r--sys/arm/versatile/bus_space.c114
-rw-r--r--sys/arm/versatile/files.versatile3
-rw-r--r--sys/arm/versatile/versatile_pci.c2
-rw-r--r--sys/arm/versatile/versatile_pci_bus_space.c152
-rw-r--r--sys/arm/versatile/versatile_pci_bus_space.h35
7 files changed, 7 insertions, 306 deletions
diff --git a/sys/arm/arm/bus_space_base.c b/sys/arm/arm/bus_space_base.c
index 8ddfcb0..a80b064 100644
--- a/sys/arm/arm/bus_space_base.c
+++ b/sys/arm/arm/bus_space_base.c
@@ -45,7 +45,7 @@ bs_protos(generic);
* The bus space tag. This is constant for all instances, so
* we never have to explicitly "create" it.
*/
-static struct bus_space arm_base_tag = {
+static struct bus_space arm_base_bus_space = {
/* privdata is whatever the implementer wants; unused in base tag */
.bs_privdata = NULL,
@@ -153,5 +153,7 @@ static struct bus_space arm_base_tag = {
};
#ifdef FDT
-bus_space_tag_t fdtbus_bs_tag = &arm_base_tag;
+bus_space_tag_t fdtbus_bs_tag = &arm_base_bus_space;
#endif
+
+bus_space_tag_t arm_base_bs_tag = &arm_base_bus_space;
diff --git a/sys/arm/include/bus.h b/sys/arm/include/bus.h
index 88458d7..7579199 100644
--- a/sys/arm/include/bus.h
+++ b/sys/arm/include/bus.h
@@ -245,6 +245,7 @@ struct bus_space {
bus_size_t, const uint64_t *, bus_size_t);
};
+extern bus_space_tag_t arm_base_bs_tag;
/*
* Utility macros; INTERNAL USE ONLY.
diff --git a/sys/arm/versatile/bus_space.c b/sys/arm/versatile/bus_space.c
deleted file mode 100644
index 850feef..0000000
--- a/sys/arm/versatile/bus_space.c
+++ /dev/null
@@ -1,114 +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>
-
-/* Prototypes for all the bus_space structure functions */
-bs_protos(generic);
-
-struct bus_space _base_tag = {
- /* cookie */
- .bs_privdata = (void *) 0,
-
- /* mapping/unmapping */
- .bs_map = generic_bs_map,
- .bs_unmap = generic_bs_unmap,
- .bs_subregion = generic_bs_subregion,
-
- /* allocation/deallocation */
- .bs_alloc = generic_bs_alloc,
- .bs_free = generic_bs_free,
-
- /* barrier */
- .bs_barrier = generic_bs_barrier,
-
- /* read (single) */
- .bs_r_1 = generic_bs_r_1,
- .bs_r_2 = generic_bs_r_2,
- .bs_r_4 = generic_bs_r_4,
- .bs_r_8 = NULL,
-
- /* read multiple */
- .bs_rm_1 = generic_bs_rm_1,
- .bs_rm_2 = generic_bs_rm_2,
- .bs_rm_4 = generic_bs_rm_4,
- .bs_rm_8 = NULL,
-
- /* read region */
- .bs_rr_1 = generic_bs_rr_1,
- .bs_rr_2 = generic_bs_rr_2,
- .bs_rr_4 = generic_bs_rr_4,
- .bs_rr_8 = NULL,
-
- /* write (single) */
- .bs_w_1 = generic_bs_w_1,
- .bs_w_2 = generic_bs_w_2,
- .bs_w_4 = generic_bs_w_4,
- .bs_w_8 = NULL,
-
- /* write multiple */
- .bs_wm_1 = generic_bs_wm_1,
- .bs_wm_2 = generic_bs_wm_2,
- .bs_wm_4 = generic_bs_wm_4,
- .bs_wm_8 = NULL,
-
- /* write region */
- .bs_wr_1 = generic_bs_wr_1,
- .bs_wr_2 = generic_bs_wr_2,
- .bs_wr_4 = generic_bs_wr_4,
- .bs_wr_8 = NULL,
-
- /* set multiple */
- /* XXX not implemented */
-
- /* set region */
- .bs_sr_1 = NULL,
- .bs_sr_2 = generic_bs_sr_2,
- .bs_sr_4 = generic_bs_sr_4,
- .bs_sr_8 = NULL,
-
- /* copy */
- .bs_c_1 = NULL,
- .bs_c_2 = generic_bs_c_2,
- .bs_c_4 = NULL,
- .bs_c_8 = NULL,
-};
-
-bus_space_tag_t fdtbus_bs_tag = &_base_tag;
diff --git a/sys/arm/versatile/files.versatile b/sys/arm/versatile/files.versatile
index 199fecb..217109f 100644
--- a/sys/arm/versatile/files.versatile
+++ b/sys/arm/versatile/files.versatile
@@ -1,5 +1,6 @@
# $FreeBSD$
+arm/arm/bus_space_base.c standard
arm/arm/bus_space_asm_generic.S standard
arm/arm/bus_space_generic.c standard
arm/arm/cpufunc_asm_arm11.S standard
@@ -7,14 +8,12 @@ arm/arm/cpufunc_asm_arm11x6.S standard
arm/arm/cpufunc_asm_armv5.S standard
arm/arm/cpufunc_asm_armv6.S standard
-arm/versatile/bus_space.c standard
arm/versatile/pl050.c optional sc
arm/versatile/sp804.c standard
arm/versatile/versatile_machdep.c standard
arm/versatile/versatile_clcd.c optional sc
arm/versatile/versatile_common.c standard
arm/versatile/versatile_pci.c optional pci
-arm/versatile/versatile_pci_bus_space.c optional pci
arm/versatile/versatile_sic.c standard
arm/versatile/versatile_timer.c standard
diff --git a/sys/arm/versatile/versatile_pci.c b/sys/arm/versatile/versatile_pci.c
index 0e48496..40a120a 100644
--- a/sys/arm/versatile/versatile_pci.c
+++ b/sys/arm/versatile/versatile_pci.c
@@ -355,7 +355,7 @@ versatile_pci_activate_resource(device_t bus, device_t child, int type, int rid,
vaddr = (vm_offset_t)pmap_mapdev(rman_get_start(r),
rman_get_size(r));
rman_set_bushandle(r, vaddr);
- rman_set_bustag(r, versatile_bus_space_pcimem);
+ rman_set_bustag(r, arm_base_bs_tag);
res = rman_activate_resource(r);
break;
case SYS_RES_IRQ:
diff --git a/sys/arm/versatile/versatile_pci_bus_space.c b/sys/arm/versatile/versatile_pci_bus_space.c
deleted file mode 100644
index 8945440..0000000
--- a/sys/arm/versatile/versatile_pci_bus_space.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*-
- * Copyright (c) 2009, Oleksandr Tymoshenko <gonzo@FreeBSD.org>
- * 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 unmodified, 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE 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 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 <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/bus.h>
-#include <sys/endian.h>
-
-#include <machine/bus.h>
-#include <arm/versatile/versatile_pci_bus_space.h>
-
-/* Prototypes for all the bus_space structure functions */
-bs_protos(generic);
-
-/*
- * Bus space that handles offsets in word for 1/2 bytes read/write access.
- * Byte order of values is handled by device drivers itself.
- */
-static struct bus_space bus_space_pcimem = {
- /* cookie */
- (void *) 0,
-
- /* mapping/unmapping */
- generic_bs_map,
- generic_bs_unmap,
- generic_bs_subregion,
-
- /* allocation/deallocation */
- NULL,
- NULL,
-
- /* barrier */
- generic_bs_barrier,
-
- /* read (single) */
- generic_bs_r_1,
- generic_bs_r_2,
- generic_bs_r_4,
- NULL,
-
- /* read multiple */
- generic_bs_rm_1,
- generic_bs_rm_2,
- generic_bs_rm_4,
- NULL,
-
- /* read region */
- generic_bs_rr_1,
- generic_bs_rr_2,
- generic_bs_rr_4,
- NULL,
-
- /* write (single) */
- generic_bs_w_1,
- generic_bs_w_2,
- generic_bs_w_4,
- NULL,
-
- /* write multiple */
- generic_bs_wm_1,
- generic_bs_wm_2,
- generic_bs_wm_4,
- NULL,
-
- /* write region */
- generic_bs_wr_1,
- generic_bs_wr_2,
- generic_bs_wr_4,
- NULL,
-
- /* set multiple */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* set region */
- NULL,
- NULL,
- generic_bs_sr_4,
- NULL,
-
- /* copy */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* read (single) stream */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* read multiple stream */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* read region stream */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* write (single) stream */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* write multiple stream */
- NULL,
- NULL,
- NULL,
- NULL,
-
- /* write region stream */
- NULL,
- NULL,
- NULL,
- NULL,
-};
-
-bus_space_tag_t versatile_bus_space_pcimem = &bus_space_pcimem;
diff --git a/sys/arm/versatile/versatile_pci_bus_space.h b/sys/arm/versatile/versatile_pci_bus_space.h
deleted file mode 100644
index d5b54ef..0000000
--- a/sys/arm/versatile/versatile_pci_bus_space.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*-
- * Copyright (c) 2009, Oleksandr Tymoshenko <gonzo@FreeBSD.org>
- * 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 unmodified, 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.
- *
- * THIS SOFTWARE IS PROVIDED BY THE 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 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.
- *
- * $FreeBSD$
- */
-
-#ifndef __VERSATILE_PCI_BUS_SPACEH__
-#define __VERSATILE_PCI_BUS_SPACEH__
-
-extern bus_space_tag_t versatile_bus_space_pcimem;
-
-#endif /* __VERSATILE_PCI_BUS_SPACEH__ */
OpenPOWER on IntegriCloud