Module Name: src Committed By: skrll Date: Tue Jul 31 07:00:48 UTC 2018
Modified Files: src/sys/arch/aarch64/aarch64: cpu.c pmap.c src/sys/arch/arm/arm32: arm32_boot.c arm32_kvminit.c arm32_machdep.c pmap.c Log Message: Define and use VPRINTF To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/arch/aarch64/aarch64/cpu.c cvs rdiff -u -r1.15 -r1.16 src/sys/arch/aarch64/aarch64/pmap.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/arm32/arm32_boot.c cvs rdiff -u -r1.41 -r1.42 src/sys/arch/arm/arm32/arm32_kvminit.c cvs rdiff -u -r1.115 -r1.116 src/sys/arch/arm/arm32/arm32_machdep.c cvs rdiff -u -r1.365 -r1.366 src/sys/arch/arm/arm32/pmap.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/aarch64/aarch64/cpu.c diff -u src/sys/arch/aarch64/aarch64/cpu.c:1.3 src/sys/arch/aarch64/aarch64/cpu.c:1.4 --- src/sys/arch/aarch64/aarch64/cpu.c:1.3 Tue Jul 17 00:29:55 2018 +++ src/sys/arch/aarch64/aarch64/cpu.c Tue Jul 31 07:00:48 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.c,v 1.3 2018/07/17 00:29:55 christos Exp $ */ +/* $NetBSD: cpu.c,v 1.4 2018/07/31 07:00:48 skrll Exp $ */ /* * Copyright (c) 2017 Ryo Shimizu <r...@nerv.org> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: cpu.c,v 1.3 2018/07/17 00:29:55 christos Exp $"); +__KERNEL_RCSID(1, "$NetBSD: cpu.c,v 1.4 2018/07/31 07:00:48 skrll Exp $"); #include "locators.h" #include "opt_arm_debug.h" @@ -50,6 +50,12 @@ __KERNEL_RCSID(1, "$NetBSD: cpu.c,v 1.3 #include <arm/fdt/arm_fdtvar.h> #endif +#ifdef VERBOSE_INIT_ARM +#define VPRINTF(...) printf(__VA_ARGS__) +#else +#define VPRINTF(...) do { } while (/* CONSTCOND */ 0) +#endif + void cpu_attach(device_t, cpuid_t); static void identify_aarch64_model(uint32_t, char *, size_t); static void cpu_identify(device_t self, struct cpu_info *, uint32_t, uint64_t); @@ -495,9 +501,7 @@ cpu_boot_secondary_processors(void) { mutex_init(&cpu_hatch_lock, MUTEX_DEFAULT, IPL_NONE); -#ifdef VERBOSE_INIT_ARM - printf("%s: writing mbox with %#x\n", __func__, arm_cpu_hatched); -#endif + VPRINTF("%s: writing mbox with %#x\n", __func__, arm_cpu_hatched); /* send mbox to have secondary processors do cpu_hatch() */ atomic_or_32(&arm_cpu_mbox, arm_cpu_hatched); @@ -508,9 +512,7 @@ cpu_boot_secondary_processors(void) __asm __volatile ("wfe"); } -#ifdef VERBOSE_INIT_ARM - printf("%s: secondary processors hatched\n", __func__); -#endif + VPRINTF("%s: secondary processors hatched\n", __func__); /* add available processors to kcpuset */ uint32_t mbox = arm_cpu_hatched; Index: src/sys/arch/aarch64/aarch64/pmap.c diff -u src/sys/arch/aarch64/aarch64/pmap.c:1.15 src/sys/arch/aarch64/aarch64/pmap.c:1.16 --- src/sys/arch/aarch64/aarch64/pmap.c:1.15 Fri Jul 27 07:04:04 2018 +++ src/sys/arch/aarch64/aarch64/pmap.c Tue Jul 31 07:00:48 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.15 2018/07/27 07:04:04 ryo Exp $ */ +/* $NetBSD: pmap.c,v 1.16 2018/07/31 07:00:48 skrll Exp $ */ /* * Copyright (c) 2017 Ryo Shimizu <r...@nerv.org> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.15 2018/07/27 07:04:04 ryo Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.16 2018/07/31 07:00:48 skrll Exp $"); #include "opt_arm_debug.h" #include "opt_ddb.h" @@ -50,6 +50,11 @@ __KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.1 //#define PMAP_DEBUG //#define PMAP_PV_DEBUG +#ifdef VERBOSE_INIT_ARM +#define VPRINTF(...) printf(__VA_ARGS__) +#else +#define VPRINTF(...) do { } while (/* CONSTCOND */ 0) +#endif UVMHIST_DEFINE(pmaphist); #ifdef UVMHIST @@ -289,16 +294,12 @@ pmap_devmap_bootstrap(const struct pmap_ l0 = (void *)AARCH64_PA_TO_KVA(reg_ttbr1_el1_read()); -#ifdef VERBOSE_INIT_ARM - printf("%s:\n", __func__); -#endif + VPRINTF("%s:\n", __func__); for (i = 0; table[i].pd_size != 0; i++) { -#ifdef VERBOSE_INIT_ARM - printf(" devmap: pa %08lx-%08lx = va %016lx\n", + VPRINTF(" devmap: pa %08lx-%08lx = va %016lx\n", table[i].pd_pa, table[i].pd_pa + table[i].pd_size - 1, table[i].pd_va); -#endif va = table[i].pd_va; /* update and check virtual_devmap_addr */ Index: src/sys/arch/arm/arm32/arm32_boot.c diff -u src/sys/arch/arm/arm32/arm32_boot.c:1.19 src/sys/arch/arm/arm32/arm32_boot.c:1.20 --- src/sys/arch/arm/arm32/arm32_boot.c:1.19 Sun Jul 2 16:16:44 2017 +++ src/sys/arch/arm/arm32/arm32_boot.c Tue Jul 31 07:00:48 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: arm32_boot.c,v 1.19 2017/07/02 16:16:44 skrll Exp $ */ +/* $NetBSD: arm32_boot.c,v 1.20 2018/07/31 07:00:48 skrll Exp $ */ /* * Copyright (c) 2002, 2003, 2005 Genetec Corporation. All rights reserved. @@ -123,8 +123,9 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: arm32_boot.c,v 1.19 2017/07/02 16:16:44 skrll Exp $"); +__KERNEL_RCSID(1, "$NetBSD: arm32_boot.c,v 1.20 2018/07/31 07:00:48 skrll Exp $"); +#include "opt_arm_debug.h" #include "opt_ddb.h" #include "opt_kgdb.h" #include "opt_multiprocessor.h" @@ -151,6 +152,12 @@ __KERNEL_RCSID(1, "$NetBSD: arm32_boot.c #include <sys/kgdb.h> #endif +#ifdef VERBOSE_INIT_ARM +#define VPRINTF(...) printf(__VA_ARGS__) +#else +#define VPRINTF(...) do { } while (/* CONSTCOND */ 0) +#endif + #ifdef MULTIPROCESSOR static kmutex_t cpu_hatch_lock; #endif @@ -161,11 +168,9 @@ initarm_common(vaddr_t kvm_base, vsize_t { struct bootmem_info * const bmi = &bootmem_info; -#ifdef VERBOSE_INIT_ARM - printf("nfreeblocks = %u, free_pages = %d (%#x)\n", + VPRINTF("nfreeblocks = %u, free_pages = %d (%#x)\n", bmi->bmi_nfreeblocks, bmi->bmi_freepages, bmi->bmi_freepages); -#endif /* * Moved from cpu_startup() as data_abort_handler() references @@ -194,17 +199,11 @@ initarm_common(vaddr_t kvm_base, vsize_t tf->tf_spsr = PSR_USR32_MODE; #endif -#ifdef VERBOSE_INIT_ARM - printf("bootstrap done.\n"); -#endif + VPRINTF("bootstrap done.\n"); -#ifdef VERBOSE_INIT_ARM - printf("vectors"); -#endif + VPRINTF("vectors"); arm32_vector_init(systempage.pv_va, ARM_VEC_ALL); -#ifdef VERBOSE_INIT_ARM - printf(" %#"PRIxVADDR"\n", vector_page); -#endif + VPRINTF(" %#"PRIxVADDR"\n", vector_page); /* * Pages were allocated during the secondary bootstrap for the @@ -214,9 +213,7 @@ initarm_common(vaddr_t kvm_base, vsize_t * Since the ARM stacks use STMFD etc. we must set r13 to the top end * of the stack memory. */ -#ifdef VERBOSE_INIT_ARM - printf("init subsystems: stacks "); -#endif + VPRINTF("init subsystems: stacks "); set_stackptr(PSR_FIQ32_MODE, fiqstack.pv_va + FIQ_STACK_SIZE * PAGE_SIZE); set_stackptr(PSR_IRQ32_MODE, @@ -235,28 +232,20 @@ initarm_common(vaddr_t kvm_base, vsize_t * Initialisation of the vectors will just panic on a data abort. * This just fills in a slightly better one. */ -#ifdef VERBOSE_INIT_ARM - printf("vectors "); -#endif + VPRINTF("vectors "); data_abort_handler_address = (u_int)data_abort_handler; prefetch_abort_handler_address = (u_int)prefetch_abort_handler; undefined_handler_address = (u_int)undefinedinstruction_bounce; /* Initialise the undefined instruction handlers */ -#ifdef VERBOSE_INIT_ARM - printf("undefined "); -#endif + VPRINTF("undefined "); undefined_init(); /* Load memory into UVM. */ -#ifdef VERBOSE_INIT_ARM - printf("page "); -#endif + VPRINTF("page "); uvm_md_init(); -#ifdef VERBOSE_INIT_ARM - printf("pmap_physload "); -#endif + VPRINTF("pmap_physload "); KASSERT(bp != NULL || nbp == 0); KASSERT(bp == NULL || nbp != 0); @@ -297,9 +286,7 @@ initarm_common(vaddr_t kvm_base, vsize_t } /* Boot strap pmap telling it where the kernel page table is */ -#ifdef VERBOSE_INIT_ARM - printf("pmap "); -#endif + VPRINTF("pmap "); pmap_bootstrap(kvm_base, kvm_base + kvm_size); #ifdef __HAVE_MEMORY_DISK__ @@ -329,9 +316,7 @@ initarm_common(vaddr_t kvm_base, vsize_t mutex_init(&cpu_hatch_lock, MUTEX_DEFAULT, IPL_NONE); #endif -#ifdef VERBOSE_INIT_ARM - printf("done.\n"); -#endif + VPRINTF("done.\n"); /* We return the new stack pointer address */ return pcb->pcb_ksp; @@ -359,9 +344,7 @@ cpu_hatch(struct cpu_info *ci, cpuid_t c #endif #endif -#ifdef VERBOSE_INIT_ARM - printf("%s(%s): ", __func__, ci->ci_data.cpu_name); -#endif + VPRINTF("%s(%s): ", __func__, ci->ci_data.cpu_name); uint32_t mpidr = armreg_mpidr_read(); if (mpidr & MPIDR_MT) { ci->ci_data.cpu_smt_id = mpidr & MPIDR_AFF0; @@ -375,18 +358,14 @@ cpu_hatch(struct cpu_info *ci, cpuid_t c /* * Make sure we have the right vector page. */ -#ifdef VERBOSE_INIT_ARM - printf(" vectors"); -#endif + VPRINTF(" vectors"); arm32_vector_init(systempage.pv_va, ARM_VEC_ALL); /* * Initialize the stack for each mode (we are already running on the * SVC32 stack of the idlelwp). */ -#ifdef VERBOSE_INIT_ARM - printf(" stacks"); -#endif + VPRINTF(" stacks"); set_stackptr(PSR_FIQ32_MODE, fiqstack.pv_va + (cpu_index(ci) + 1) * FIQ_STACK_SIZE * PAGE_SIZE); set_stackptr(PSR_IRQ32_MODE, @@ -399,9 +378,7 @@ cpu_hatch(struct cpu_info *ci, cpuid_t c ci->ci_lastlwp = NULL; ci->ci_pmap_lastuser = NULL; #ifdef ARM_MMU_EXTENDED -#ifdef VERBOSE_INIT_ARM - printf(" tlb"); -#endif + VPRINTF(" tlb"); /* * Attach to the tlb. */ @@ -424,30 +401,22 @@ cpu_hatch(struct cpu_info *ci, cpuid_t c aprint_naive("%s", device_xname(ci->ci_dev)); aprint_normal("%s", device_xname(ci->ci_dev)); identify_arm_cpu(ci->ci_dev, ci); -#ifdef VERBOSE_INIT_ARM - printf(" vfp"); -#endif + VPRINTF(" vfp"); vfp_attach(ci); mutex_exit(&cpu_hatch_lock); -#ifdef VERBOSE_INIT_ARM - printf(" interrupts"); -#endif + VPRINTF(" interrupts"); /* * Let the interrupts do what they need to on this CPU. */ intr_cpu_init(ci); -#ifdef VERBOSE_INIT_ARM - printf(" md(%p)", md_cpu_init); -#endif + VPRINTF(" md(%p)", md_cpu_init); if (md_cpu_init != NULL) (*md_cpu_init)(ci); -#ifdef VERBOSE_INIT_ARM - printf(" done!\n"); -#endif + VPRINTF(" done!\n"); atomic_and_32(&arm_cpu_mbox, ~(1 << cpuid)); membar_producer(); __asm __volatile("sev; sev; sev"); Index: src/sys/arch/arm/arm32/arm32_kvminit.c diff -u src/sys/arch/arm/arm32/arm32_kvminit.c:1.41 src/sys/arch/arm/arm32/arm32_kvminit.c:1.42 --- src/sys/arch/arm/arm32/arm32_kvminit.c:1.41 Sun Dec 10 21:38:26 2017 +++ src/sys/arch/arm/arm32/arm32_kvminit.c Tue Jul 31 07:00:48 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: arm32_kvminit.c,v 1.41 2017/12/10 21:38:26 skrll Exp $ */ +/* $NetBSD: arm32_kvminit.c,v 1.42 2018/07/31 07:00:48 skrll Exp $ */ /* * Copyright (c) 2002, 2003, 2005 Genetec Corporation. All rights reserved. @@ -121,11 +121,12 @@ * SUCH DAMAGE. */ +#include "opt_arm_debug.h" #include "opt_fdt.h" #include "opt_multiprocessor.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: arm32_kvminit.c,v 1.41 2017/12/10 21:38:26 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: arm32_kvminit.c,v 1.42 2018/07/31 07:00:48 skrll Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -153,6 +154,12 @@ __KERNEL_RCSID(0, "$NetBSD: arm32_kvmini #endif #endif +#ifdef VERBOSE_INIT_ARM +#define VPRINTF(...) printf(__VA_ARGS__) +#else +#define VPRINTF(...) do { } while (/* CONSTCOND */ 0) +#endif + struct bootmem_info bootmem_info; extern void *msgbufaddr; @@ -190,10 +197,8 @@ arm32_bootmem_init(paddr_t memstart, psi struct bootmem_info * const bmi = &bootmem_info; pv_addr_t *pv = bmi->bmi_freeblocks; -#ifdef VERBOSE_INIT_ARM - printf("%s: memstart=%#lx, memsize=%#lx, kernelstart=%#lx\n", + VPRINTF("%s: memstart=%#lx, memsize=%#lx, kernelstart=%#lx\n", __func__, memstart, memsize, kernelstart); -#endif physical_start = bmi->bmi_start = memstart; physical_end = bmi->bmi_end = memstart + memsize; @@ -202,10 +207,8 @@ arm32_bootmem_init(paddr_t memstart, psi physical_end = -PAGE_SIZE; memsize -= PAGE_SIZE; bmi->bmi_end -= PAGE_SIZE; -#ifdef VERBOSE_INIT_ARM - printf("%s: memsize shrunk by a page to avoid ending at 4GB\n", + VPRINTF("%s: memsize shrunk by a page to avoid ending at 4GB\n", __func__); -#endif } #endif physmem = memsize / PAGE_SIZE; @@ -221,9 +224,7 @@ arm32_bootmem_init(paddr_t memstart, psi bmi->bmi_kernelend - bmi->bmi_kernelstart); #endif -#ifdef VERBOSE_INIT_ARM - printf("%s: kernelend=%#lx\n", __func__, bmi->bmi_kernelend); -#endif + VPRINTF("%s: kernelend=%#lx\n", __func__, bmi->bmi_kernelend); /* * Now the rest of the free memory must be after the kernel. @@ -232,11 +233,9 @@ arm32_bootmem_init(paddr_t memstart, psi pv->pv_va = KERN_PHYSTOV(bmi, pv->pv_pa); pv->pv_size = bmi->bmi_end - bmi->bmi_kernelend; bmi->bmi_freepages += pv->pv_size / PAGE_SIZE; -#ifdef VERBOSE_INIT_ARM - printf("%s: adding %lu free pages: [%#lx..%#lx] (VA %#lx)\n", + VPRINTF("%s: adding %lu free pages: [%#lx..%#lx] (VA %#lx)\n", __func__, pv->pv_size / PAGE_SIZE, pv->pv_pa, pv->pv_pa + pv->pv_size - 1, pv->pv_va); -#endif pv++; #if !defined(FDT) @@ -248,11 +247,9 @@ arm32_bootmem_init(paddr_t memstart, psi pv->pv_va = KERN_PHYSTOV(bmi, pv->pv_pa); pv->pv_size = bmi->bmi_kernelstart - pv->pv_pa; bmi->bmi_freepages += pv->pv_size / PAGE_SIZE; -#ifdef VERBOSE_INIT_ARM - printf("%s: adding %lu free pages: [%#lx..%#lx] (VA %#lx)\n", + VPRINTF("%s: adding %lu free pages: [%#lx..%#lx] (VA %#lx)\n", __func__, pv->pv_size / PAGE_SIZE, pv->pv_pa, pv->pv_pa + pv->pv_size - 1, pv->pv_va); -#endif pv++; } #endif @@ -270,11 +267,9 @@ concat_pvaddr(pv_addr_t *acc_pv, pv_addr && acc_pv->pv_va + acc_pv->pv_size == pv->pv_va && acc_pv->pv_prot == pv->pv_prot && acc_pv->pv_cache == pv->pv_cache) { -#ifdef VERBOSE_INIT_ARMX - printf("%s: appending pv %p (%#lx..%#lx) to %#lx..%#lx\n", + VPRINTF("%s: appending pv %p (%#lx..%#lx) to %#lx..%#lx\n", __func__, pv, pv->pv_pa, pv->pv_pa + pv->pv_size + 1, acc_pv->pv_pa, acc_pv->pv_pa + acc_pv->pv_size + 1); -#endif acc_pv->pv_size += pv->pv_size; return true; } @@ -290,21 +285,17 @@ add_pages(struct bootmem_info *bmi, pv_a pv_addr_t * const pv0 = (*pvp); KASSERT(SLIST_NEXT(pv0, pv_list) == NULL || pv0->pv_pa < SLIST_NEXT(pv0, pv_list)->pv_pa); if (concat_pvaddr(pv0, pv)) { -#ifdef VERBOSE_INIT_ARM - printf("%s: %s pv %p (%#lx..%#lx) to %#lx..%#lx\n", + VPRINTF("%s: %s pv %p (%#lx..%#lx) to %#lx..%#lx\n", __func__, "appending", pv, pv->pv_pa, pv->pv_pa + pv->pv_size - 1, pv0->pv_pa, pv0->pv_pa + pv0->pv_size - pv->pv_size - 1); -#endif pv = SLIST_NEXT(pv0, pv_list); if (pv != NULL && concat_pvaddr(pv0, pv)) { -#ifdef VERBOSE_INIT_ARM - printf("%s: %s pv %p (%#lx..%#lx) to %#lx..%#lx\n", + VPRINTF("%s: %s pv %p (%#lx..%#lx) to %#lx..%#lx\n", __func__, "merging", pv, pv->pv_pa, pv->pv_pa + pv->pv_size - 1, pv0->pv_pa, pv0->pv_pa + pv0->pv_size - pv->pv_size - 1); -#endif SLIST_REMOVE_AFTER(pv0, pv_list); SLIST_INSERT_HEAD(&bmi->bmi_freechunks, pv, pv_list); } @@ -320,15 +311,15 @@ add_pages(struct bootmem_info *bmi, pv_a *new_pv = *pv; SLIST_NEXT(new_pv, pv_list) = *pvp; (*pvp) = new_pv; -#ifdef VERBOSE_INIT_ARM - printf("%s: adding pv %p (pa %#lx, va %#lx, %lu pages) ", + + VPRINTF("%s: adding pv %p (pa %#lx, va %#lx, %lu pages) ", __func__, new_pv, new_pv->pv_pa, new_pv->pv_va, new_pv->pv_size / PAGE_SIZE); - if (SLIST_NEXT(new_pv, pv_list)) - printf("before pa %#lx\n", SLIST_NEXT(new_pv, pv_list)->pv_pa); - else - printf("at tail\n"); -#endif + if (SLIST_NEXT(new_pv, pv_list)) { + VPRINTF("before pa %#lx\n", SLIST_NEXT(new_pv, pv_list)->pv_pa); + } else { + VPRINTF("at tail\n"); + } } static void @@ -468,10 +459,8 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b const size_t KERNEL_L2PT_KERNEL_NUM = round_page(kernel_size + L2_S_SEGSIZE - 1) / L2_S_SEGSIZE; -#ifdef VERBOSE_INIT_ARM - printf("%s: %zu L2 pages are needed to map %#zx kernel bytes\n", + VPRINTF("%s: %zu L2 pages are needed to map %#zx kernel bytes\n", __func__, KERNEL_L2PT_KERNEL_NUM, kernel_size); -#endif KASSERT(KERNEL_L2PT_KERNEL_NUM + KERNEL_L2PT_VMDATA_NUM < __arraycount(bmi->bmi_l2pts)); pv_addr_t * const kernel_l2pt = bmi->bmi_l2pts; @@ -500,9 +489,7 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b * least one 16K aligned region. */ -#ifdef VERBOSE_INIT_ARM - printf("%s: allocating page tables for", __func__); -#endif + VPRINTF("%s: allocating page tables for", __func__); for (size_t i = 0; i < __arraycount(chunks); i++) { SLIST_INSERT_HEAD(&bmi->bmi_freechunks, &chunks[i], pv_list); } @@ -520,9 +507,7 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b /* * First allocate L2 page for the vectors. */ -#ifdef VERBOSE_INIT_ARM - printf(" vector"); -#endif + VPRINTF(" vector"); valloc_pages(bmi, &bmi->bmi_vector_l2pt, 1, VM_PROT_READ|VM_PROT_WRITE, PTE_PAGETABLE, true); add_pages(bmi, &bmi->bmi_vector_l2pt); @@ -531,9 +516,7 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b /* * Now allocate L2 pages for the kernel */ -#ifdef VERBOSE_INIT_ARM - printf(" kernel"); -#endif + VPRINTF(" kernel"); for (size_t idx = 0; idx < KERNEL_L2PT_KERNEL_NUM; ++idx) { valloc_pages(bmi, &kernel_l2pt[idx], 1, VM_PROT_READ|VM_PROT_WRITE, PTE_PAGETABLE, true); @@ -543,9 +526,7 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b /* * Now allocate L2 pages for the initial kernel VA space. */ -#ifdef VERBOSE_INIT_ARM - printf(" vm"); -#endif + VPRINTF(" vm"); for (size_t idx = 0; idx < KERNEL_L2PT_VMDATA_NUM; ++idx) { valloc_pages(bmi, &vmdata_l2pt[idx], 1, VM_PROT_READ|VM_PROT_WRITE, PTE_PAGETABLE, true); @@ -556,17 +537,13 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b * If someone wanted a L2 page for I/O, allocate it now. */ if (iovbase) { -#ifdef VERBOSE_INIT_ARM - printf(" io"); -#endif + VPRINTF(" io"); valloc_pages(bmi, &bmi->bmi_io_l2pt, 1, VM_PROT_READ|VM_PROT_WRITE, PTE_PAGETABLE, true); add_pages(bmi, &bmi->bmi_io_l2pt); } -#ifdef VERBOSE_INIT_ARM - printf("%s: allocating stacks\n", __func__); -#endif + VPRINTF("%s: allocating stacks\n", __func__); /* Allocate stacks for all modes and CPUs */ valloc_pages(bmi, &abtstack, ABT_STACK_SIZE * cpu_num, @@ -629,9 +606,7 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b "page directory", __func__); -#ifdef VERBOSE_INIT_ARM - printf("Creating L1 page table at 0x%08lx\n", kernel_l1pt.pv_pa); -#endif + VPRINTF("Creating L1 page table at 0x%08lx\n", kernel_l1pt.pv_pa); /* * Now we start construction of the L1 page table @@ -645,12 +620,10 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b /* Map the L2 pages tables in the L1 page table */ pmap_link_l2pt(l1pt_va, systempage.pv_va & -L2_S_SEGSIZE, &bmi->bmi_vector_l2pt); -#ifdef VERBOSE_INIT_ARM - printf("%s: adding L2 pt (VA %#lx, PA %#lx) " + VPRINTF("%s: adding L2 pt (VA %#lx, PA %#lx) " "for VA %#lx\n (vectors)", __func__, bmi->bmi_vector_l2pt.pv_va, bmi->bmi_vector_l2pt.pv_pa, systempage.pv_va); -#endif } const vaddr_t kernel_base = @@ -658,38 +631,30 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b for (size_t idx = 0; idx < KERNEL_L2PT_KERNEL_NUM; idx++) { pmap_link_l2pt(l1pt_va, kernel_base + idx * L2_S_SEGSIZE, &kernel_l2pt[idx]); -#ifdef VERBOSE_INIT_ARM - printf("%s: adding L2 pt (VA %#lx, PA %#lx) for VA %#lx (kernel)\n", + VPRINTF("%s: adding L2 pt (VA %#lx, PA %#lx) for VA %#lx (kernel)\n", __func__, kernel_l2pt[idx].pv_va, kernel_l2pt[idx].pv_pa, kernel_base + idx * L2_S_SEGSIZE); -#endif } for (size_t idx = 0; idx < KERNEL_L2PT_VMDATA_NUM; idx++) { pmap_link_l2pt(l1pt_va, kernel_vm_base + idx * L2_S_SEGSIZE, &vmdata_l2pt[idx]); -#ifdef VERBOSE_INIT_ARM - printf("%s: adding L2 pt (VA %#lx, PA %#lx) for VA %#lx (vm)\n", + VPRINTF("%s: adding L2 pt (VA %#lx, PA %#lx) for VA %#lx (vm)\n", __func__, vmdata_l2pt[idx].pv_va, vmdata_l2pt[idx].pv_pa, kernel_vm_base + idx * L2_S_SEGSIZE); -#endif } if (iovbase) { pmap_link_l2pt(l1pt_va, iovbase & -L2_S_SEGSIZE, &bmi->bmi_io_l2pt); -#ifdef VERBOSE_INIT_ARM - printf("%s: adding L2 pt (VA %#lx, PA %#lx) for VA %#lx (io)\n", + VPRINTF("%s: adding L2 pt (VA %#lx, PA %#lx) for VA %#lx (io)\n", __func__, bmi->bmi_io_l2pt.pv_va, bmi->bmi_io_l2pt.pv_pa, iovbase & -L2_S_SEGSIZE); -#endif } /* update the top of the kernel VM */ pmap_curmaxkvaddr = kernel_vm_base + (KERNEL_L2PT_VMDATA_NUM * L2_S_SEGSIZE); -#ifdef VERBOSE_INIT_ARM - printf("Mapping kernel\n"); -#endif + VPRINTF("Mapping kernel\n"); extern char etext[], _end[]; size_t totalsize = bmi->bmi_kernelend - bmi->bmi_kernelstart; @@ -705,10 +670,8 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b text.pv_prot = VM_PROT_READ | VM_PROT_EXECUTE; text.pv_cache = PTE_CACHE; -#ifdef VERBOSE_INIT_ARM - printf("%s: adding chunk for kernel text %#lx..%#lx (VA %#lx)\n", + VPRINTF("%s: adding chunk for kernel text %#lx..%#lx (VA %#lx)\n", __func__, text.pv_pa, text.pv_pa + text.pv_size - 1, text.pv_va); -#endif add_pages(bmi, &text); @@ -718,25 +681,21 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b data.pv_prot = VM_PROT_READ|VM_PROT_WRITE; data.pv_cache = PTE_CACHE; -#ifdef VERBOSE_INIT_ARM - printf("%s: adding chunk for kernel data/bss %#lx..%#lx (VA %#lx)\n", + VPRINTF("%s: adding chunk for kernel data/bss %#lx..%#lx (VA %#lx)\n", __func__, data.pv_pa, data.pv_pa + data.pv_size - 1, data.pv_va); -#endif add_pages(bmi, &data); -#ifdef VERBOSE_INIT_ARM - printf("Listing Chunks\n"); + VPRINTF("Listing Chunks\n"); pv_addr_t *lpv; SLIST_FOREACH(lpv, &bmi->bmi_chunks, pv_list) { - printf("%s: pv %p: chunk VA %#lx..%#lx " + VPRINTF("%s: pv %p: chunk VA %#lx..%#lx " "(PA %#lx, prot %d, cache %d)\n", __func__, lpv, lpv->pv_va, lpv->pv_va + lpv->pv_size - 1, lpv->pv_pa, lpv->pv_prot, lpv->pv_cache); } - printf("\nMapping Chunks\n"); -#endif + VPRINTF("\nMapping Chunks\n"); pv_addr_t cur_pv; pv_addr_t *pv = SLIST_FIRST(&bmi->bmi_chunks); @@ -771,13 +730,11 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b /* * We couldn't so emit the current chunk and then */ -#ifdef VERBOSE_INIT_ARM - printf("%s: mapping chunk VA %#lx..%#lx " + VPRINTF("%s: mapping chunk VA %#lx..%#lx " "(PA %#lx, prot %d, cache %d)\n", __func__, cur_pv.pv_va, cur_pv.pv_va + cur_pv.pv_size - 1, cur_pv.pv_pa, cur_pv.pv_prot, cur_pv.pv_cache); -#endif pmap_map_chunk(l1pt_va, cur_pv.pv_va, cur_pv.pv_pa, cur_pv.pv_size, cur_pv.pv_prot, cur_pv.pv_cache); @@ -797,12 +754,10 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b * The new pv didn't concatenate so emit the current one * and use the new pv as the current pv. */ -#ifdef VERBOSE_INIT_ARM - printf("%s: mapping chunk VA %#lx..%#lx " + VPRINTF("%s: mapping chunk VA %#lx..%#lx " "(PA %#lx, prot %d, cache %d)\n", __func__, cur_pv.pv_va, cur_pv.pv_va + cur_pv.pv_size - 1, cur_pv.pv_pa, cur_pv.pv_prot, cur_pv.pv_cache); -#endif pmap_map_chunk(l1pt_va, cur_pv.pv_va, cur_pv.pv_pa, cur_pv.pv_size, cur_pv.pv_prot, cur_pv.pv_cache); cur_pv = *pv; @@ -820,12 +775,10 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b KASSERTMSG(cur_pv.pv_va + cur_pv.pv_size <= kernel_vm_base, "%#lx >= %#lx", cur_pv.pv_va + cur_pv.pv_size, kernel_vm_base); -#ifdef VERBOSE_INIT_ARM - printf("%s: mapping chunk VA %#lx..%#lx " + VPRINTF("%s: mapping chunk VA %#lx..%#lx " "(PA %#lx, prot %d, cache %d)\n", __func__, cur_pv.pv_va, cur_pv.pv_va + cur_pv.pv_size - 1, cur_pv.pv_pa, cur_pv.pv_prot, cur_pv.pv_cache); -#endif pmap_map_chunk(l1pt_va, cur_pv.pv_va, cur_pv.pv_pa, cur_pv.pv_size, cur_pv.pv_prot, cur_pv.pv_cache); cur_pv.pv_pa += cur_pv.pv_size; @@ -846,11 +799,9 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b /* * Now we map the final chunk. */ -#ifdef VERBOSE_INIT_ARM - printf("%s: mapping last chunk VA %#lx..%#lx (PA %#lx, prot %d, cache %d)\n", + VPRINTF("%s: mapping last chunk VA %#lx..%#lx (PA %#lx, prot %d, cache %d)\n", __func__, cur_pv.pv_va, cur_pv.pv_va + cur_pv.pv_size - 1, cur_pv.pv_pa, cur_pv.pv_prot, cur_pv.pv_cache); -#endif pmap_map_chunk(l1pt_va, cur_pv.pv_va, cur_pv.pv_pa, cur_pv.pv_size, cur_pv.pv_prot, cur_pv.pv_cache); @@ -879,67 +830,66 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b if (devmap) pmap_devmap_bootstrap(l1pt_va, devmap); -#ifdef VERBOSE_INIT_ARM /* Tell the user about where all the bits and pieces live. */ - printf("%22s Physical Virtual Num\n", " "); - printf("%22s Starting Ending Starting Ending Pages\n", " "); + VPRINTF("%22s Physical Virtual Num\n", " "); + VPRINTF("%22s Starting Ending Starting Ending Pages\n", " "); static const char mem_fmt[] = "%20s: 0x%08lx 0x%08lx 0x%08lx 0x%08lx %u\n"; static const char mem_fmt_nov[] = "%20s: 0x%08lx 0x%08lx %zu\n"; - printf(mem_fmt, "SDRAM", bmi->bmi_start, bmi->bmi_end - 1, + VPRINTF(mem_fmt, "SDRAM", bmi->bmi_start, bmi->bmi_end - 1, KERN_PHYSTOV(bmi, bmi->bmi_start), KERN_PHYSTOV(bmi, bmi->bmi_end - 1), (int)physmem); - printf(mem_fmt, "text section", + VPRINTF(mem_fmt, "text section", text.pv_pa, text.pv_pa + text.pv_size - 1, text.pv_va, text.pv_va + text.pv_size - 1, (int)(text.pv_size / PAGE_SIZE)); - printf(mem_fmt, "data section", + VPRINTF(mem_fmt, "data section", KERN_VTOPHYS(bmi, __data_start), KERN_VTOPHYS(bmi, _edata), (vaddr_t)__data_start, (vaddr_t)_edata, (int)((round_page((vaddr_t)_edata) - trunc_page((vaddr_t)__data_start)) / PAGE_SIZE)); - printf(mem_fmt, "bss section", + VPRINTF(mem_fmt, "bss section", KERN_VTOPHYS(bmi, __bss_start), KERN_VTOPHYS(bmi, __bss_end__), (vaddr_t)__bss_start, (vaddr_t)__bss_end__, (int)((round_page((vaddr_t)__bss_end__) - trunc_page((vaddr_t)__bss_start)) / PAGE_SIZE)); - printf(mem_fmt, "L1 page directory", + VPRINTF(mem_fmt, "L1 page directory", kernel_l1pt.pv_pa, kernel_l1pt.pv_pa + L1_TABLE_SIZE - 1, kernel_l1pt.pv_va, kernel_l1pt.pv_va + L1_TABLE_SIZE - 1, L1_TABLE_SIZE / PAGE_SIZE); - printf(mem_fmt, "ABT stack (CPU 0)", + VPRINTF(mem_fmt, "ABT stack (CPU 0)", abtstack.pv_pa, abtstack.pv_pa + (ABT_STACK_SIZE * PAGE_SIZE) - 1, abtstack.pv_va, abtstack.pv_va + (ABT_STACK_SIZE * PAGE_SIZE) - 1, ABT_STACK_SIZE); - printf(mem_fmt, "FIQ stack (CPU 0)", + VPRINTF(mem_fmt, "FIQ stack (CPU 0)", fiqstack.pv_pa, fiqstack.pv_pa + (FIQ_STACK_SIZE * PAGE_SIZE) - 1, fiqstack.pv_va, fiqstack.pv_va + (FIQ_STACK_SIZE * PAGE_SIZE) - 1, FIQ_STACK_SIZE); - printf(mem_fmt, "IRQ stack (CPU 0)", + VPRINTF(mem_fmt, "IRQ stack (CPU 0)", irqstack.pv_pa, irqstack.pv_pa + (IRQ_STACK_SIZE * PAGE_SIZE) - 1, irqstack.pv_va, irqstack.pv_va + (IRQ_STACK_SIZE * PAGE_SIZE) - 1, IRQ_STACK_SIZE); - printf(mem_fmt, "UND stack (CPU 0)", + VPRINTF(mem_fmt, "UND stack (CPU 0)", undstack.pv_pa, undstack.pv_pa + (UND_STACK_SIZE * PAGE_SIZE) - 1, undstack.pv_va, undstack.pv_va + (UND_STACK_SIZE * PAGE_SIZE) - 1, UND_STACK_SIZE); - printf(mem_fmt, "IDLE stack (CPU 0)", + VPRINTF(mem_fmt, "IDLE stack (CPU 0)", idlestack.pv_pa, idlestack.pv_pa + (UPAGES * PAGE_SIZE) - 1, idlestack.pv_va, idlestack.pv_va + (UPAGES * PAGE_SIZE) - 1, UPAGES); - printf(mem_fmt, "SVC stack", + VPRINTF(mem_fmt, "SVC stack", kernelstack.pv_pa, kernelstack.pv_pa + (UPAGES * PAGE_SIZE) - 1, kernelstack.pv_va, kernelstack.pv_va + (UPAGES * PAGE_SIZE) - 1, UPAGES); - printf(mem_fmt, "Message Buffer", + VPRINTF(mem_fmt, "Message Buffer", msgbuf.pv_pa, msgbuf.pv_pa + (msgbuf_pgs * PAGE_SIZE) - 1, msgbuf.pv_va, msgbuf.pv_va + (msgbuf_pgs * PAGE_SIZE) - 1, (int)msgbuf_pgs); if (map_vectors_p) { - printf(mem_fmt, "Exception Vectors", + VPRINTF(mem_fmt, "Exception Vectors", systempage.pv_pa, systempage.pv_pa + PAGE_SIZE - 1, systempage.pv_va, systempage.pv_va + PAGE_SIZE - 1, 1); @@ -947,31 +897,26 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b for (size_t i = 0; i < bmi->bmi_nfreeblocks; i++) { pv = &bmi->bmi_freeblocks[i]; - printf(mem_fmt_nov, "Free Memory", + VPRINTF(mem_fmt_nov, "Free Memory", pv->pv_pa, pv->pv_pa + pv->pv_size - 1, pv->pv_size / PAGE_SIZE); } -#endif /* * Now we have the real page tables in place so we can switch to them. * Once this is done we will be running with the REAL kernel page * tables. */ -#if defined(VERBOSE_INIT_ARM) - printf("TTBR0=%#x", armreg_ttbr_read()); + VPRINTF("TTBR0=%#x", armreg_ttbr_read()); #ifdef _ARM_ARCH_6 - printf(" TTBR1=%#x TTBCR=%#x CONTEXTIDR=%#x", + VPRINTF(" TTBR1=%#x TTBCR=%#x CONTEXTIDR=%#x", armreg_ttbr1_read(), armreg_ttbcr_read(), armreg_contextidr_read()); #endif - printf("\n"); -#endif + VPRINTF("\n"); /* Switch tables */ -#ifdef VERBOSE_INIT_ARM - printf("switching to new L1 page table @%#lx...", l1pt_pa); -#endif + VPRINTF("switching to new L1 page table @%#lx...", l1pt_pa); #ifdef ARM_MMU_EXTENDED cpu_domains((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) @@ -980,9 +925,7 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b cpu_domains((DOMAIN_CLIENT << (PMAP_DOMAIN_KERNEL*2)) | DOMAIN_CLIENT); #endif cpu_idcache_wbinv_all(); -#ifdef VERBOSE_INIT_ARM - printf(" ttb"); -#endif + VPRINTF(" ttb"); #ifdef ARM_MMU_EXTENDED /* * TTBCR should have been initialized by the MD start code. @@ -1001,13 +944,11 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b #endif cpu_tlb_flushID(); -#ifdef VERBOSE_INIT_ARM #ifdef ARM_MMU_EXTENDED - printf(" (TTBCR=%#x TTBR0=%#x TTBR1=%#x)", + VPRINTF(" (TTBCR=%#x TTBR0=%#x TTBR1=%#x)", armreg_ttbcr_read(), armreg_ttbr_read(), armreg_ttbr1_read()); #else - printf(" (TTBR0=%#x)", armreg_ttbr_read()); -#endif + VPRINTF(" (TTBR0=%#x)", armreg_ttbr_read()); #endif #ifdef MULTIPROCESSOR @@ -1015,13 +956,9 @@ arm32_kernel_vm_init(vaddr_t kernel_vm_b * Kick the secondaries to load the TTB. After which they'll go * back to sleep to wait for the final kick so they will hatch. */ -#ifdef VERBOSE_INIT_ARM - printf(" hatchlings"); -#endif + VPRINTF(" hatchlings"); cpu_boot_secondary_processors(); #endif -#ifdef VERBOSE_INIT_ARM - printf(" OK\n"); -#endif + VPRINTF(" OK\n"); } Index: src/sys/arch/arm/arm32/arm32_machdep.c diff -u src/sys/arch/arm/arm32/arm32_machdep.c:1.115 src/sys/arch/arm/arm32/arm32_machdep.c:1.116 --- src/sys/arch/arm/arm32/arm32_machdep.c:1.115 Tue Oct 31 12:37:23 2017 +++ src/sys/arch/arm/arm32/arm32_machdep.c Tue Jul 31 07:00:48 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: arm32_machdep.c,v 1.115 2017/10/31 12:37:23 martin Exp $ */ +/* $NetBSD: arm32_machdep.c,v 1.116 2018/07/31 07:00:48 skrll Exp $ */ /* * Copyright (c) 1994-1998 Mark Brinicombe. @@ -42,8 +42,9 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: arm32_machdep.c,v 1.115 2017/10/31 12:37:23 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: arm32_machdep.c,v 1.116 2018/07/31 07:00:48 skrll Exp $"); +#include "opt_arm_debug.h" #include "opt_modular.h" #include "opt_md.h" #include "opt_pmap_debug.h" @@ -80,6 +81,13 @@ __KERNEL_RCSID(0, "$NetBSD: arm32_machde #include <machine/bootconfig.h> #include <machine/pcb.h> +#ifdef VERBOSE_INIT_ARM +#define VPRINTF(...) printf(__VA_ARGS__) +#else +#define VPRINTF(...) do { } while (/* CONSTCOND */ 0) +#endif + + void (*cpu_reset_address)(void); /* Used by locore */ paddr_t cpu_reset_address_paddr; /* Used by locore */ @@ -151,9 +159,7 @@ arm32_vector_init(vaddr_t va, int which) vector_page = (vaddr_t)page0rel; KASSERT((vector_page & 0x1f) == 0); armreg_vbar_write(vector_page); -#ifdef VERBOSE_INIT_ARM - printf(" vbar=%p", page0rel); -#endif + VPRINTF(" vbar=%p", page0rel); cpu_control(CPU_CONTROL_VECRELOC, 0); return; #ifndef ARM_HAS_VBAR @@ -700,9 +706,7 @@ cpu_uarea_alloc_idlelwp(struct cpu_info void cpu_boot_secondary_processors(void) { -#ifdef VERBOSE_INIT_ARM - printf("%s: writing mbox with %#x\n", __func__, arm_cpu_hatched); -#endif + VPRINTF("%s: writing mbox with %#x\n", __func__, arm_cpu_hatched); arm_cpu_mbox = arm_cpu_hatched; membar_producer(); #ifdef _ARM_ARCH_7 Index: src/sys/arch/arm/arm32/pmap.c diff -u src/sys/arch/arm/arm32/pmap.c:1.365 src/sys/arch/arm/arm32/pmap.c:1.366 --- src/sys/arch/arm/arm32/pmap.c:1.365 Sun Apr 1 04:35:03 2018 +++ src/sys/arch/arm/arm32/pmap.c Tue Jul 31 07:00:48 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.365 2018/04/01 04:35:03 ryo Exp $ */ +/* $NetBSD: pmap.c,v 1.366 2018/07/31 07:00:48 skrll Exp $ */ /* * Copyright 2003 Wasabi Systems, Inc. @@ -217,7 +217,7 @@ #include <arm/locore.h> -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.365 2018/04/01 04:35:03 ryo Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.366 2018/07/31 07:00:48 skrll Exp $"); //#define PMAP_DEBUG #ifdef PMAP_DEBUG @@ -258,6 +258,13 @@ int pmapdebug = 0; #define NPDEBUG(_lev_,_stat_) /* Nothing */ #endif /* PMAP_DEBUG */ + +#ifdef VERBOSE_INIT_ARM +#define VPRINTF(...) printf(__VA_ARGS__) +#else +#define VPRINTF(...) do { } while (/* CONSTCOND */ 0) +#endif + /* * pmap_kernel() points here */ @@ -6122,9 +6129,7 @@ pmap_bootstrap(vaddr_t vstart, vaddr_t v KASSERT(pte_l2_s_cache_mode == pte_l2_s_cache_mode_pt); #endif -#ifdef VERBOSE_INIT_ARM - printf("kpm "); -#endif + VPRINTF("kpm "); /* * Initialise the kernel pmap object */ @@ -6132,14 +6137,10 @@ pmap_bootstrap(vaddr_t vstart, vaddr_t v #ifdef ARM_MMU_EXTENDED pm->pm_l1 = l1pt; pm->pm_l1_pa = kernel_l1pt.pv_pa; -#ifdef VERBOSE_INIT_ARM - printf("tlb0 "); -#endif + VPRINTF("tlb0 "); pmap_tlb_info_init(&pmap_tlb0_info); #ifdef MULTIPROCESSOR -#ifdef VERBOSE_INIT_ARM - printf("kcpusets "); -#endif + VPRINTF("kcpusets "); pm->pm_onproc = kcpuset_running; pm->pm_active = kcpuset_running; #endif @@ -6147,9 +6148,7 @@ pmap_bootstrap(vaddr_t vstart, vaddr_t v pm->pm_l1 = l1; #endif -#ifdef VERBOSE_INIT_ARM - printf("locks "); -#endif + VPRINTF("locks "); #if defined(PMAP_CACHE_VIPT) && !defined(ARM_MMU_EXTENDED) if (arm_cache_prefer_mask != 0) { mutex_init(&pmap_lock, MUTEX_DEFAULT, IPL_VM); @@ -6163,9 +6162,7 @@ pmap_bootstrap(vaddr_t vstart, vaddr_t v uvm_obj_init(&pm->pm_obj, NULL, false, 1); uvm_obj_setlock(&pm->pm_obj, &pm->pm_obj_lock); -#ifdef VERBOSE_INIT_ARM - printf("l1pt "); -#endif + VPRINTF("l1pt "); /* * Scan the L1 translation table created by initarm() and create * the required metadata for all valid mappings found in it. @@ -6240,9 +6237,7 @@ pmap_bootstrap(vaddr_t vstart, vaddr_t v } } -#ifdef VERBOSE_INIT_ARM - printf("cache(l1pt) "); -#endif + VPRINTF("cache(l1pt) "); /* * Ensure the primary (kernel) L1 has the correct cache mode for * a page table. Bitch if it is not correctly set. @@ -6269,9 +6264,7 @@ pmap_bootstrap(vaddr_t vstart, vaddr_t v virtual_avail = vstart; virtual_end = vend; -#ifdef VERBOSE_INIT_ARM - printf("specials "); -#endif + VPRINTF("specials "); #ifdef PMAP_CACHE_VIPT /* * If we have a VIPT cache, we need one page/pte per possible alias @@ -6344,9 +6337,7 @@ pmap_bootstrap(vaddr_t vstart, vaddr_t v pm->pm_pl1vec = NULL; #endif -#ifdef VERBOSE_INIT_ARM - printf("pools "); -#endif + VPRINTF("pools "); /* * Initialize the pmap cache */ @@ -6749,10 +6740,8 @@ pmap_map_chunk(vaddr_t l1pt, vaddr_t va, if (l1pt == 0) panic("pmap_map_chunk: no L1 table provided"); -#ifdef VERBOSE_INIT_ARM - printf("pmap_map_chunk: pa=0x%lx va=0x%lx size=0x%lx resid=0x%lx " + VPRINTF("pmap_map_chunk: pa=0x%lx va=0x%lx size=0x%lx resid=0x%lx " "prot=0x%x cache=%d\n", pa, va, size, resid, prot, cache); -#endif switch (cache) { case PTE_NOCACHE: @@ -6789,9 +6778,7 @@ pmap_map_chunk(vaddr_t l1pt, vaddr_t va, | (va & 0x80000000 ? 0 : L1_S_V6_nG) #endif | L1_S_PROT(PTE_KERNEL, prot) | f1; -#ifdef VERBOSE_INIT_ARM - printf("sS"); -#endif + VPRINTF("sS"); l1pte_set(&pdep[l1slot], npde); PDE_SYNC_RANGE(&pdep[l1slot], L1_SS_SIZE / L1_S_SIZE); va += L1_SS_SIZE; @@ -6809,9 +6796,7 @@ pmap_map_chunk(vaddr_t l1pt, vaddr_t va, #endif | L1_S_PROT(PTE_KERNEL, prot) | f1 | L1_S_DOM(PMAP_DOMAIN_KERNEL); -#ifdef VERBOSE_INIT_ARM - printf("S"); -#endif + VPRINTF("S"); l1pte_set(&pdep[l1slot], npde); PDE_SYNC(&pdep[l1slot]); va += L1_S_SIZE; @@ -6843,9 +6828,7 @@ pmap_map_chunk(vaddr_t l1pt, vaddr_t va, | (va & 0x80000000 ? 0 : L2_XS_nG) #endif | L2_L_PROT(PTE_KERNEL, prot) | f2l; -#ifdef VERBOSE_INIT_ARM - printf("L"); -#endif + VPRINTF("L"); l2pte_set(ptep, npte, 0); PTE_SYNC_RANGE(ptep, L2_L_SIZE / L2_S_SIZE); va += L2_L_SIZE; @@ -6854,9 +6837,7 @@ pmap_map_chunk(vaddr_t l1pt, vaddr_t va, continue; } -#ifdef VERBOSE_INIT_ARM - printf("P"); -#endif + VPRINTF("P"); /* Use a small page mapping. */ pt_entry_t npte = L2_S_PROTO | pa #ifdef ARM_MMU_EXTENDED @@ -6873,9 +6854,7 @@ pmap_map_chunk(vaddr_t l1pt, vaddr_t va, pa += PAGE_SIZE; resid -= PAGE_SIZE; } -#ifdef VERBOSE_INIT_ARM - printf("\n"); -#endif + VPRINTF("\n"); return (size); } @@ -6908,13 +6887,11 @@ pmap_devmap_bootstrap(vaddr_t l1pt, cons pmap_devmap_table = table; for (i = 0; pmap_devmap_table[i].pd_size != 0; i++) { -#ifdef VERBOSE_INIT_ARM - printf("devmap: %08lx -> %08lx @ %08lx\n", + VPRINTF("devmap: %08lx -> %08lx @ %08lx\n", pmap_devmap_table[i].pd_pa, pmap_devmap_table[i].pd_pa + pmap_devmap_table[i].pd_size - 1, pmap_devmap_table[i].pd_va); -#endif pmap_map_chunk(l1pt, pmap_devmap_table[i].pd_va, pmap_devmap_table[i].pd_pa, pmap_devmap_table[i].pd_size,