From owner-freebsd-arm@FreeBSD.ORG Tue Oct 30 22:12:22 2012 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6589A7D7; Tue, 30 Oct 2012 22:12:22 +0000 (UTC) (envelope-from giovanni.trematerra@gmail.com) Received: from mail-qa0-f54.google.com (mail-qa0-f54.google.com [209.85.216.54]) by mx1.freebsd.org (Postfix) with ESMTP id 067398FC12; Tue, 30 Oct 2012 22:12:21 +0000 (UTC) Received: by mail-qa0-f54.google.com with SMTP id p27so595030qat.13 for ; Tue, 30 Oct 2012 15:12:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type; bh=0tN3PneKojwinAJNxD0gOQR6PEjYqfSnHpyM4cMDY10=; b=iELNxel881BY8Rc0i9vmPOET/LI1sbWbFhYcjN/gGsbFIxH90lBlnbTHMusH6mx0dX N9OJVASqW6D2l1OVQN2AG+AzB59+9lhDTFfnmjD98s5ebov4GzGJBULeAYjjTZw/JeCG YfQ9Mqw9u+zxeLbj6vvlEF1yVcMtpGAV0965ANjTsow5paPmxWrTEpRqQm/vF4STvhLB AgdOwkviX/V8AHqAMEcVJRQR1fao8Ly6hNWOwXfrpmh275rlytAY1go2ReL/otx/p639 CiotXcF6VLZmoXaGtqRiQVk06YirWHFS0PmOC4NVAES5ILF6+mlyQTEy3W8cuBamquvc ZCdw== MIME-Version: 1.0 Received: by 10.49.58.212 with SMTP id t20mr11095170qeq.26.1351635140869; Tue, 30 Oct 2012 15:12:20 -0700 (PDT) Sender: giovanni.trematerra@gmail.com Received: by 10.229.63.138 with HTTP; Tue, 30 Oct 2012 15:12:20 -0700 (PDT) Date: Tue, 30 Oct 2012 23:12:20 +0100 X-Google-Sender-Auth: O6zflEW17Y41DFum0tE0UQT3Pow Message-ID: Subject: [PATCH] use vtophys instead of pmap_kextract From: Giovanni Trematerra To: freebsd-arm@freebsd.org Content-Type: text/plain; charset=UTF-8 Cc: cognet@freebsd.org X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Oct 2012 22:12:22 -0000 Hi, could you please review and commit the patch below? The patch changes the calls to pmap_kextract in vtophys macro. This also fixes a compiler warning when SMP is enabled to Marvel ARMADA XP boards. Thank you -- Gianni Index: sys/arm/arm/busdma_machdep-v6.c =================================================================== --- sys/arm/arm/busdma_machdep-v6.c (revision 242212) +++ sys/arm/arm/busdma_machdep-v6.c (working copy) @@ -670,7 +670,7 @@ _bus_dmamap_count_pages(bus_dma_tag_t dmat, bus_dm while (vaddr < vendaddr) { if (__predict_true(map->pmap == pmap_kernel())) - paddr = pmap_kextract(vaddr); + paddr = vtophys(vaddr); else paddr = pmap_extract(map->pmap, vaddr); if (((dmat->flags & BUS_DMA_COULD_BOUNCE) != 0) && @@ -748,7 +748,7 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat, * Get the physical address for this segment. */ if (__predict_true(map->pmap == pmap_kernel())) - curaddr = pmap_kextract(vaddr); + curaddr = vtophys(vaddr); else curaddr = pmap_extract(map->pmap, vaddr); @@ -1424,7 +1424,7 @@ alloc_bounce_pages(bus_dma_tag_t dmat, u_int numpa free(bpage, M_DEVBUF); break; } - bpage->busaddr = pmap_kextract(bpage->vaddr); + bpage->busaddr = vtophys(bpage->vaddr); mtx_lock(&bounce_lock); STAILQ_INSERT_TAIL(&bz->bounce_page_list, bpage, links); total_bpages++; Index: sys/arm/arm/busdma_machdep.c =================================================================== --- sys/arm/arm/busdma_machdep.c (revision 242212) +++ sys/arm/arm/busdma_machdep.c (working copy) @@ -711,7 +711,7 @@ _bus_dmamap_count_pages(bus_dma_tag_t dmat, bus_dm while (vaddr < vendaddr) { if (__predict_true(pmap == pmap_kernel())) - paddr = pmap_kextract(vaddr); + paddr = vtophys(vaddr); else paddr = pmap_extract(pmap, vaddr); if (((dmat->flags & BUS_DMA_COULD_BOUNCE) != 0) && @@ -1371,7 +1371,7 @@ alloc_bounce_pages(bus_dma_tag_t dmat, u_int numpa free(bpage, M_DEVBUF); break; } - bpage->busaddr = pmap_kextract(bpage->vaddr); + bpage->busaddr = vtophys(bpage->vaddr); bpage->vaddr_nocache = (vm_offset_t)arm_remap_nocache( (void *)bpage->vaddr, PAGE_SIZE); mtx_lock(&bounce_lock); Index: sys/arm/mv/armadaxp/armadaxp_mp.c =================================================================== --- sys/arm/mv/armadaxp/armadaxp_mp.c (revision 242212) +++ sys/arm/mv/armadaxp/armadaxp_mp.c (working copy) @@ -179,7 +179,7 @@ platform_mp_start_ap(void) for (cpu_num = 1; cpu_num < mp_ncpus; cpu_num++ ) bus_space_write_4(fdtbus_bs_tag, CPU_PMU(cpu_num), CPU_PMU_BOOT, - pmap_kextract(mpentry)); + vtophys(mpentry)); cpu_idcache_wbinv_all(); Index: sys/arm/ti/omap4/omap4_mp.c =================================================================== --- sys/arm/ti/omap4/omap4_mp.c (revision 242379) +++ sys/arm/ti/omap4/omap4_mp.c (working copy) @@ -75,7 +75,7 @@ platform_mp_start_ap(void) cpu_idcache_wbinv_all(); cpu_l2cache_wbinv_all(); ti_smc0(0x200, 0xfffffdff, MODIFY_AUX_CORE_0); - ti_smc0(pmap_kextract((vm_offset_t)mpentry), 0, WRITE_AUX_CORE_1); + ti_smc0(vtophys(mpentry), 0, WRITE_AUX_CORE_1); armv7_sev(); bus_space_unmap(fdtbus_bs_tag, scu_addr, 0x1000); }