Date: Sun, 15 Jun 2014 12:21:06 +0000 (UTC) From: Andrew Turner <andrew@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r267508 - projects/arm64/sys/arm64/arm64 Message-ID: <201406151221.s5FCL64e013065@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: andrew Date: Sun Jun 15 12:21:06 2014 New Revision: 267508 URL: http://svnweb.freebsd.org/changeset/base/267508 Log: Implement pmap_pinit Modified: projects/arm64/sys/arm64/arm64/pmap.c Modified: projects/arm64/sys/arm64/arm64/pmap.c ============================================================================== --- projects/arm64/sys/arm64/arm64/pmap.c Sun Jun 15 12:08:33 2014 (r267507) +++ projects/arm64/sys/arm64/arm64/pmap.c Sun Jun 15 12:21:06 2014 (r267508) @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include <vm/vm.h> #include <vm/vm_page.h> +#include <vm/vm_pageout.h> #include <vm/vm_map.h> #include <machine/machdep.h> @@ -583,8 +584,22 @@ pmap_pinit0(pmap_t pmap) int pmap_pinit(pmap_t pmap) { + vm_paddr_t l1phys; + vm_page_t l1pt; - panic("pmap_pinit"); + while ((l1pt = vm_page_alloc(NULL, 0, VM_ALLOC_NORMAL | + VM_ALLOC_NOOBJ | VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) + VM_WAIT; + + l1phys = VM_PAGE_TO_PHYS(l1pt); + pmap->pm_l1 = (pd_entry_t *)PHYS_TO_DMAP(l1phys); + + if ((l1pt->flags & PG_ZERO) == 0) + bzero(pmap->pm_l1, PAGE_SIZE); + + bzero(&pmap->pm_stats, sizeof(pmap->pm_stats)); + + return (1); } /***************************************************
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201406151221.s5FCL64e013065>