summaryrefslogtreecommitdiffstats
path: root/sys/arm/samsung
diff options
context:
space:
mode:
authorbr <br@FreeBSD.org>2013-11-13 16:17:05 +0000
committerbr <br@FreeBSD.org>2013-11-13 16:17:05 +0000
commit1b08920425975db25d17c1287ebcaf714066c725 (patch)
treed4dab16d9f9850129b0b2703e9e29830093300c4 /sys/arm/samsung
parenteaccbfc090a117f398fe4db90a3cf466d306bb5e (diff)
downloadFreeBSD-src-1b08920425975db25d17c1287ebcaf714066c725.zip
FreeBSD-src-1b08920425975db25d17c1287ebcaf714066c725.tar.gz
o Use common ARMv6/v7 bus_space tag.
o Use new helper routines for arm static device mapping. o style(9) tweaks.
Diffstat (limited to 'sys/arm/samsung')
-rw-r--r--sys/arm/samsung/exynos/bus_space.c153
-rw-r--r--sys/arm/samsung/exynos/exynos5_machdep.c29
-rw-r--r--sys/arm/samsung/exynos/files.exynos52
3 files changed, 8 insertions, 176 deletions
diff --git a/sys/arm/samsung/exynos/bus_space.c b/sys/arm/samsung/exynos/bus_space.c
deleted file mode 100644
index 8d21f55..0000000
--- a/sys/arm/samsung/exynos/bus_space.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*-
- * Copyright (c) 2012 Damjan Marion <damjan.marion@gmail.com>
- * 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.
- *
- * 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/kernel.h>
-#include <sys/malloc.h>
-
-#include <machine/bus.h>
-
-/* 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/samsung/exynos/exynos5_machdep.c b/sys/arm/samsung/exynos/exynos5_machdep.c
index 742d63d..c10ccab 100644
--- a/sys/arm/samsung/exynos/exynos5_machdep.c
+++ b/sys/arm/samsung/exynos/exynos5_machdep.c
@@ -30,27 +30,25 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
-#define _ARM32_BUS_DMA_PRIVATE
+#define _ARM32_BUS_DMA_PRIVATE
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/bus.h>
#include <vm/vm.h>
-#include <vm/pmap.h>
+#include <machine/armreg.h>
#include <machine/bus.h>
#include <machine/devmap.h>
#include <machine/machdep.h>
#include <dev/fdt/fdt_common.h>
-#define DEVMAP_BOOTSTRAP_MAP_START 0xF0000000
-
vm_offset_t
initarm_lastaddr(void)
{
- return (DEVMAP_BOOTSTRAP_MAP_START);
+ return (arm_devmap_lastaddr());
}
void
@@ -62,35 +60,22 @@ initarm_early_init(void)
void
initarm_gpio_init(void)
{
+
}
void
initarm_late_init(void)
{
-}
-#define FDT_DEVMAP_MAX (1 + 2 + 1 + 1) /* FIXME */
-static struct arm_devmap_entry fdt_devmap[FDT_DEVMAP_MAX] = {
- { 0, 0, 0, 0, 0, }
-};
+}
-/*
- * Construct pmap_devmap[] with DT-derived config data.
- */
int
initarm_devmap_init(void)
{
- int i;
- i = 0;
- fdt_devmap[i].pd_va = 0xf2C00000;
- fdt_devmap[i].pd_pa = 0x12C00000;
- fdt_devmap[i].pd_size = 0x100000;
- fdt_devmap[i].pd_prot = VM_PROT_READ | VM_PROT_WRITE;
- fdt_devmap[i].pd_cache = PTE_NOCACHE;
- i++;
+ /* UART */
+ arm_devmap_add_entry(0x12C00000, 0x100000);
- arm_devmap_register_table(&fdt_devmap[0]);
return (0);
}
diff --git a/sys/arm/samsung/exynos/files.exynos5 b/sys/arm/samsung/exynos/files.exynos5
index e0b7407..1d90415 100644
--- a/sys/arm/samsung/exynos/files.exynos5
+++ b/sys/arm/samsung/exynos/files.exynos5
@@ -10,12 +10,12 @@ arm/arm/cpufunc_asm_arm11.S standard
arm/arm/cpufunc_asm_armv7.S standard
arm/arm/irq_dispatch.S standard
+arm/arm/bus_space-v6.c standard
arm/arm/gic.c standard
arm/arm/generic_timer.c standard
arm/samsung/exynos/arch_timer.c standard
arm/samsung/exynos/exynos5_mp.c optional smp
-arm/samsung/exynos/bus_space.c standard
arm/samsung/exynos/common.c standard
arm/samsung/exynos/exynos5_machdep.c standard
arm/samsung/exynos/uart.c optional uart
OpenPOWER on IntegriCloud