summaryrefslogtreecommitdiffstats
path: root/sys/arm/s3c2xx0
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2013-12-13 23:56:53 +0000
committerian <ian@FreeBSD.org>2013-12-13 23:56:53 +0000
commiteae48ec05ef90176b68b7b5c7ebf3e4c792448aa (patch)
tree95426e39c61df08e259d54ab1d73d5aefa98c198 /sys/arm/s3c2xx0
parent689fd5c39017daa19a00a6cce247ad10ba00c1e7 (diff)
downloadFreeBSD-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/s3c2xx0')
-rw-r--r--sys/arm/s3c2xx0/s3c24x0_machdep.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/arm/s3c2xx0/s3c24x0_machdep.c b/sys/arm/s3c2xx0/s3c24x0_machdep.c
index 1811b52..3fc0f8e 100644
--- a/sys/arm/s3c2xx0/s3c24x0_machdep.c
+++ b/sys/arm/s3c2xx0/s3c24x0_machdep.c
@@ -78,6 +78,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>
@@ -126,7 +127,7 @@ struct pv_addr kernelstack;
#define _S(s) (((s) + L1_S_SIZE - 1) & ~(L1_S_SIZE-1))
/* Static device mappings. */
-static const struct pmap_devmap s3c24x0_devmap[] = {
+static const struct arm_devmap_entry s3c24x0_devmap[] = {
/*
* Map the devices we need early on.
*/
@@ -324,7 +325,7 @@ initarm(struct arm_boot_params *abp)
VM_PROT_READ|VM_PROT_WRITE, PTE_PAGETABLE);
}
- pmap_devmap_bootstrap(l1pagetable, s3c24x0_devmap);
+ arm_devmap_bootstrap(l1pagetable, s3c24x0_devmap);
cpu_domains((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT);
setttb(kernel_l1pt.pv_pa);
OpenPOWER on IntegriCloud