Module Name: src Committed By: skrll Date: Fri Oct 19 09:50:30 UTC 2012
Modified Files: src/sys/arch/arm/arm32: arm32_kvminit.c Log Message: Comments. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/arm32/arm32_kvminit.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/arm32/arm32_kvminit.c diff -u src/sys/arch/arm/arm32/arm32_kvminit.c:1.9 src/sys/arch/arm/arm32/arm32_kvminit.c:1.10 --- src/sys/arch/arm/arm32/arm32_kvminit.c:1.9 Fri Oct 19 09:06:42 2012 +++ src/sys/arch/arm/arm32/arm32_kvminit.c Fri Oct 19 09:50:30 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: arm32_kvminit.c,v 1.9 2012/10/19 09:06:42 skrll Exp $ */ +/* $NetBSD: arm32_kvminit.c,v 1.10 2012/10/19 09:50:30 skrll Exp $ */ /* * Copyright (c) 2002, 2003, 2005 Genetec Corporation. All rights reserved. @@ -122,7 +122,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: arm32_kvminit.c,v 1.9 2012/10/19 09:06:42 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: arm32_kvminit.c,v 1.10 2012/10/19 09:50:30 skrll Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -409,7 +409,7 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b * We are going to allocate our bootstrap pages from the beginning of * the free space that we just calculated. We allocate one page * directory and a number of page tables and store the physical - * addresses in the kernel_l2pt_table array. + * addresses in the bmi_l2pts array in bootmem_info. * * The kernel page directory must be on a 16K boundary. The page * tables must be on 4K boundaries. What we do is allocate the @@ -435,6 +435,12 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b kernel_l1pt.pv_va = 0; /* + * Allocate the L2 pages, but if we get to a page that is aligned for + * an L1 page table, we will allocate the pages for it first and then + * allocate the L2 page. + */ + + /* * First allocate L2 page for the vectors. */ #ifdef VERBOSE_INIT_ARM @@ -445,9 +451,7 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b add_pages(bmi, &bmi->bmi_vector_l2pt); /* - * Allocate the L2 pages, but if we get to a page that aligned for a - * L1 page table, we will allocate pages for it first and allocate - * L2 page. + * Now allocate L2 pages for the kernel */ #ifdef VERBOSE_INIT_ARM printf(" kernel"); @@ -457,6 +461,10 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b VM_PROT_READ|VM_PROT_WRITE, PTE_PAGETABLE); add_pages(bmi, &kernel_l2pt[idx]); } + + /* + * Now allocate L2 pages for the initial kernel VA space. + */ #ifdef VERBOSE_INIT_ARM printf(" vm"); #endif @@ -482,7 +490,7 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b printf("%s: allocating stacks\n", __func__); #endif - /* Allocate stacks for all modes */ + /* Allocate stacks for all modes and CPUs */ valloc_pages(bmi, &abtstack, ABT_STACK_SIZE * cpu_num, VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE); add_pages(bmi, &abtstack);