summaryrefslogtreecommitdiffstats
path: root/sys/arm/xscale/i80321
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2006-08-08 20:59:38 +0000
committercognet <cognet@FreeBSD.org>2006-08-08 20:59:38 +0000
commit2d628bb4d98b991fc187a29462ce204e463b7166 (patch)
tree04b496f0b265f6f59af71e0fdad414f440d96983 /sys/arm/xscale/i80321
parente813d81ecb6ebb4e3e75ac0c94d25e4e4c92bdad (diff)
downloadFreeBSD-src-2d628bb4d98b991fc187a29462ce204e463b7166.zip
FreeBSD-src-2d628bb4d98b991fc187a29462ce204e463b7166.tar.gz
Rewrite ARM_USE_SMALL_ALLOC so that instead of the current behavior, it maps
whole the physical memory, cached, using 1MB section mappings. This reduces the address space available for user processes a bit, but given the amount of memory a typical arm machine has, it is not (yet) a big issue. It then provides a uma_small_alloc() that works as it does for architectures which have a direct mapping.
Diffstat (limited to 'sys/arm/xscale/i80321')
-rw-r--r--sys/arm/xscale/i80321/iq31244_machdep.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/arm/xscale/i80321/iq31244_machdep.c b/sys/arm/xscale/i80321/iq31244_machdep.c
index 6329efd..e31706e 100644
--- a/sys/arm/xscale/i80321/iq31244_machdep.c
+++ b/sys/arm/xscale/i80321/iq31244_machdep.c
@@ -442,6 +442,15 @@ initarm(void *arg, void *arg2)
pmap_curmaxkvaddr = afterkern + PAGE_SIZE;
+ /*
+ * ARM_USE_SMALL_ALLOC uses dump_avail, so it must be filled before
+ * calling pmap_bootstrap.
+ */
+ dump_avail[0] = 0xa0000000;
+ dump_avail[1] = 0xa0000000 + memsize;
+ dump_avail[2] = 0;
+ dump_avail[3] = 0;
+
pmap_bootstrap(pmap_curmaxkvaddr,
0xd0000000, &kernel_l1pt);
msgbufp = (void*)msgbufpv.pv_va;
@@ -460,10 +469,6 @@ initarm(void *arg, void *arg2)
phys_avail[i++] = trunc_page(0xa0000000 + memsize - 1);
phys_avail[i++] = 0;
phys_avail[i] = 0;
- dump_avail[0] = 0xa0000000;
- dump_avail[1] = 0xa0000000 + memsize;
- dump_avail[2] = 0;
- dump_avail[3] = 0;
/* Do basic tuning, hz etc */
init_param1();
OpenPOWER on IntegriCloud