diff options
author | ian <ian@FreeBSD.org> | 2013-12-13 23:56:53 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2013-12-13 23:56:53 +0000 |
commit | eae48ec05ef90176b68b7b5c7ebf3e4c792448aa (patch) | |
tree | 95426e39c61df08e259d54ab1d73d5aefa98c198 /sys/arm/at91 | |
parent | 689fd5c39017daa19a00a6cce247ad10ba00c1e7 (diff) | |
download | FreeBSD-src-eae48ec05ef90176b68b7b5c7ebf3e4c792448aa.zip FreeBSD-src-eae48ec05ef90176b68b7b5c7ebf3e4c792448aa.tar.gz |
MFC r257648, r257649, r257660:
Begin reducing code duplication in arm pmap.c and pmap-v6.c by factoring
out common code related to mapping device memory into a new devmap.c file.
Remove the growing duplication of code that used pmap_devmap_find_pa() and
then did some math with the returned results to generate a virtual address,
and likewise in reverse to get a physical address. Now there are a pair
of functions, arm_devmap_vtop() and arm_devmap_ptov(), to do that. The
bus_space_map() implementations are rewritten in terms of these.
Move remaining code and data related to static device mapping into the
new devmap.[ch] files. Emphasize the MD nature of these things by using
the prefix arm_devmap_ on the function and type names (already a few of
these things found their way into MI code, hopefully it will be harder to
do by accident in the future).
Diffstat (limited to 'sys/arm/at91')
-rw-r--r-- | sys/arm/at91/at91.c | 5 | ||||
-rw-r--r-- | sys/arm/at91/at91_machdep.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/sys/arm/at91/at91.c b/sys/arm/at91/at91.c index a3f9556..cceed8a 100644 --- a/sys/arm/at91/at91.c +++ b/sys/arm/at91/at91.c @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #define _ARM32_BUS_DMA_PRIVATE #include <machine/bus.h> +#include <machine/devmap.h> #include <machine/intr.h> #include <arm/at91/at91var.h> @@ -52,7 +53,7 @@ static struct at91_softc *at91_softc; static void at91_eoi(void *); -extern const struct pmap_devmap at91_devmap[]; +extern const struct arm_devmap_entry at91_devmap[]; uint32_t at91_master_clock; @@ -258,7 +259,7 @@ static int at91_attach(device_t dev) { struct at91_softc *sc = device_get_softc(dev); - const struct pmap_devmap *pdevmap; + const struct arm_devmap_entry *pdevmap; int i; at91_softc = sc; diff --git a/sys/arm/at91/at91_machdep.c b/sys/arm/at91/at91_machdep.c index f4a9316..f7c21f9 100644 --- a/sys/arm/at91/at91_machdep.c +++ b/sys/arm/at91/at91_machdep.c @@ -77,6 +77,7 @@ __FBSDID("$FreeBSD$"); #include <vm/vm_object.h> #include <vm/vm_page.h> #include <vm/vm_map.h> +#include <machine/devmap.h> #include <machine/vmparam.h> #include <machine/pcb.h> #include <machine/undefined.h> @@ -128,7 +129,7 @@ struct pv_addr abtstack; struct pv_addr kernelstack; /* Static device mappings. */ -const struct pmap_devmap at91_devmap[] = { +const struct arm_devmap_entry at91_devmap[] = { /* * Map the on-board devices VA == PA so that we can access them * with the MMU on or off. @@ -566,7 +567,7 @@ initarm(struct arm_boot_params *abp) VM_PROT_READ|VM_PROT_WRITE, PTE_PAGETABLE); } - pmap_devmap_bootstrap(l1pagetable, at91_devmap); + arm_devmap_bootstrap(l1pagetable, at91_devmap); cpu_domains((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL * 2)) | DOMAIN_CLIENT); setttb(kernel_l1pt.pv_pa); cpu_tlb_flushID(); |