CVS commit: [matt-nb5-mips64] src/sys/arch/arm/arm32
Module Name:src Committed By: matt Date: Thu Aug 13 00:07:15 UTC 2015 Modified Files: src/sys/arch/arm/arm32 [matt-nb5-mips64]: arm32_kvminit.c Log Message: Make sure the amount of direct mapped memory doesn't cross over into the mappable KVA range. To generate a diff of this commit: cvs rdiff -u -r1.22.2.3 -r1.22.2.4 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.22.2.3 src/sys/arch/arm/arm32/arm32_kvminit.c:1.22.2.4 --- src/sys/arch/arm/arm32/arm32_kvminit.c:1.22.2.3 Mon Mar 24 07:37:39 2014 +++ src/sys/arch/arm/arm32/arm32_kvminit.c Thu Aug 13 00:07:15 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: arm32_kvminit.c,v 1.22.2.3 2014/03/24 07:37:39 matt Exp $ */ +/* $NetBSD: arm32_kvminit.c,v 1.22.2.4 2015/08/13 00:07:15 matt 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.22.2.3 2014/03/24 07:37:39 matt Exp $); +__KERNEL_RCSID(0, $NetBSD: arm32_kvminit.c,v 1.22.2.4 2015/08/13 00:07:15 matt Exp $); #include sys/param.h #include sys/device.h @@ -773,6 +773,14 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b } } + // The amount we can direct is limited by the start of the + // virtual part of the kernel address space. Don't overrun + // into it. + if (mapallmem_p cur_pv.pv_va + cur_pv.pv_size kernel_vm_base) { + cur_pv.pv_size = kernel_vm_base - cur_pv.pv_va; + } + + /* * Now we map the final chunk. */
CVS commit: [matt-nb5-mips64] src/sys/arch/arm/arm32
Module Name:src Committed By: matt Date: Mon Mar 24 07:37:39 UTC 2014 Modified Files: src/sys/arch/arm/arm32 [matt-nb5-mips64]: arm32_kvminit.c Log Message: Make sure kernel starts on a page boundary. To generate a diff of this commit: cvs rdiff -u -r1.22.2.2 -r1.22.2.3 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.22.2.2 src/sys/arch/arm/arm32/arm32_kvminit.c:1.22.2.3 --- src/sys/arch/arm/arm32/arm32_kvminit.c:1.22.2.2 Sat Feb 15 16:18:36 2014 +++ src/sys/arch/arm/arm32/arm32_kvminit.c Mon Mar 24 07:37:39 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: arm32_kvminit.c,v 1.22.2.2 2014/02/15 16:18:36 matt Exp $ */ +/* $NetBSD: arm32_kvminit.c,v 1.22.2.3 2014/03/24 07:37:39 matt 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.22.2.2 2014/02/15 16:18:36 matt Exp $); +__KERNEL_RCSID(0, $NetBSD: arm32_kvminit.c,v 1.22.2.3 2014/03/24 07:37:39 matt Exp $); #include sys/param.h #include sys/device.h @@ -182,7 +182,7 @@ arm32_bootmem_init(paddr_t memstart, psi /* * Let's record where the kernel lives. */ - bmi-bmi_kernelstart = kernelstart; + bmi-bmi_kernelstart = trunc_page(kernelstart); bmi-bmi_kernelend = KERN_VTOPHYS(bmi, round_page((vaddr_t)_end)); #ifdef VERBOSE_INIT_ARM
CVS commit: [matt-nb5-mips64] src/sys/arch/arm/arm32
Module Name:src Committed By: matt Date: Mon Mar 24 18:44:44 UTC 2014 Modified Files: src/sys/arch/arm/arm32 [matt-nb5-mips64]: arm32_boot.c Log Message: Need to deal with proc0paddr. To generate a diff of this commit: cvs rdiff -u -r1.5.2.2 -r1.5.2.3 src/sys/arch/arm/arm32/arm32_boot.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_boot.c diff -u src/sys/arch/arm/arm32/arm32_boot.c:1.5.2.2 src/sys/arch/arm/arm32/arm32_boot.c:1.5.2.3 --- src/sys/arch/arm/arm32/arm32_boot.c:1.5.2.2 Sat Feb 15 16:18:36 2014 +++ src/sys/arch/arm/arm32/arm32_boot.c Mon Mar 24 18:44:43 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: arm32_boot.c,v 1.5.2.2 2014/02/15 16:18:36 matt Exp $ */ +/* $NetBSD: arm32_boot.c,v 1.5.2.3 2014/03/24 18:44:43 matt Exp $ */ /* * Copyright (c) 2002, 2003, 2005 Genetec Corporation. All rights reserved. @@ -123,7 +123,7 @@ #include sys/cdefs.h -__KERNEL_RCSID(1, $NetBSD: arm32_boot.c,v 1.5.2.2 2014/02/15 16:18:36 matt Exp $); +__KERNEL_RCSID(1, $NetBSD: arm32_boot.c,v 1.5.2.3 2014/03/24 18:44:43 matt Exp $); #include opt_ddb.h #include opt_kgdb.h @@ -165,7 +165,8 @@ initarm_common(vaddr_t kvm_base, vsize_t * this during uvm init. */ //uvm_lwp_setuarea(lwp0, kernelstack.pv_va); - lwp0.l_addr = (void *)kernelstack.pv_va; + extern struct user *proc0paddr; + lwp0.l_addr = proc0paddr = (void *)kernelstack.pv_va; #ifdef VERBOSE_INIT_ARM printf(bootstrap done.\n);
CVS commit: [matt-nb5-mips64] src/sys/arch/arm/arm32
Module Name:src Committed By: matt Date: Mon Mar 24 18:45:16 UTC 2014 Modified Files: src/sys/arch/arm/arm32 [matt-nb5-mips64]: exception.S Log Message: Use the improved undefined method from HEAD To generate a diff of this commit: cvs rdiff -u -r1.16.18.1 -r1.16.18.2 src/sys/arch/arm/arm32/exception.S 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/exception.S diff -u src/sys/arch/arm/arm32/exception.S:1.16.18.1 src/sys/arch/arm/arm32/exception.S:1.16.18.2 --- src/sys/arch/arm/arm32/exception.S:1.16.18.1 Sat Feb 15 16:18:36 2014 +++ src/sys/arch/arm/arm32/exception.S Mon Mar 24 18:45:16 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: exception.S,v 1.16.18.1 2014/02/15 16:18:36 matt Exp $ */ +/* $NetBSD: exception.S,v 1.16.18.2 2014/03/24 18:45:16 matt Exp $ */ /* * Copyright (c) 1994-1997 Mark Brinicombe. @@ -51,7 +51,7 @@ #include arm/locore.h - RCSID($NetBSD: exception.S,v 1.16.18.1 2014/02/15 16:18:36 matt Exp $) + RCSID($NetBSD: exception.S,v 1.16.18.2 2014/03/24 18:45:16 matt Exp $) .text .align 0 @@ -218,13 +218,11 @@ ASEND(address_exception_entry) * look like direct entry from the vector. */ ASENTRY_NP(undefined_entry) - stmfd sp!, {r0, r1} + str r0, [sp, #-8]! GET_CURCPU(r0) - ldr r1, [sp], #0x0004 - str r1, [r0, #CI_UNDEFSAVE]! - ldr r1, [sp], #0x0004 - str r1, [r0, #0x0004] - ldmia r0, {r0, r1, pc} + ldr r0, [r0, #CI_UNDEFSAVE+8] + str r0, [sp, #4] + pop {r0, pc} ASEND(undefined_entry) /*