summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2009-02-11 22:34:50 +0000
committersam <sam@FreeBSD.org>2009-02-11 22:34:50 +0000
commitc11da811854e545e53e8a7a525d429aa62bd1999 (patch)
tree1c44f809c80705471be905b36ad84d1e116b875a
parenta64807419101faff20b3a56c347e849cb9059808 (diff)
downloadFreeBSD-src-c11da811854e545e53e8a7a525d429aa62bd1999.zip
FreeBSD-src-c11da811854e545e53e8a7a525d429aa62bd1999.tar.gz
fix ARM_USE_SMALL_ALLOC after memory layout changes
Submitted by: cognet
-rw-r--r--sys/arm/xscale/ixp425/avila_machdep.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/sys/arm/xscale/ixp425/avila_machdep.c b/sys/arm/xscale/ixp425/avila_machdep.c
index f75ddd8..ec7c3e2 100644
--- a/sys/arm/xscale/ixp425/avila_machdep.c
+++ b/sys/arm/xscale/ixp425/avila_machdep.c
@@ -334,17 +334,20 @@ initarm(void *arg, void *arg2)
alloc_pages(minidataclean.pv_pa, 1);
valloc_pages(msgbufpv, round_page(MSGBUF_SIZE) / PAGE_SIZE);
#ifdef ARM_USE_SMALL_ALLOC
-#error "I am broken" /* XXX save people grief */
freemempos -= PAGE_SIZE;
freemem_pt = trunc_page(freemem_pt);
- freemem_after = freemempos - ((freemem_pt - 0x10100000) /
+ freemem_after = freemempos - ((freemem_pt - (PHYSADDR + 0x100000)) /
PAGE_SIZE) * sizeof(struct arm_small_page);
- arm_add_smallalloc_pages((void *)(freemem_after + (KERNVIRTADDR - KERNPHYSADDR)
- , (void *)0xc0100000, freemem_pt - 0x10100000, 1);
- freemem_after -= ((freemem_after - 0x10001000) / PAGE_SIZE) *
+ arm_add_smallalloc_pages(
+ (void *)(freemem_after + (KERNVIRTADDR - KERNPHYSADDR)),
+ (void *)0xc0100000,
+ freemem_pt - (PHYSADDR + 0x100000), 1);
+ freemem_after -= ((freemem_after - (PHYSADDR + 0x1000)) / PAGE_SIZE) *
sizeof(struct arm_small_page);
- arm_add_smallalloc_pages((void *)(freemem_after + (KEYVIRTADDR - KERNPHYSADDR))
- , (void *)0xc0001000, trunc_page(freemem_after) - 0x10001000, 0);
+ arm_add_smallalloc_pages(
+ (void *)(freemem_after + (KERNVIRTADDR - KERNPHYSADDR)),
+ (void *)0xc0001000,
+ trunc_page(freemem_after) - (PHYSADDR + 0x1000), 0);
freemempos = trunc_page(freemem_after);
freemempos -= PAGE_SIZE;
#endif
OpenPOWER on IntegriCloud