From owner-svn-src-head@freebsd.org Fri Jun 3 18:54:18 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 39196B69ADF; Fri, 3 Jun 2016 18:54:18 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id EF8C910D2; Fri, 3 Jun 2016 18:54:17 +0000 (UTC) (envelope-from zbb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u53IsHQa052852; Fri, 3 Jun 2016 18:54:17 GMT (envelope-from zbb@FreeBSD.org) Received: (from zbb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u53IsHcb052850; Fri, 3 Jun 2016 18:54:17 GMT (envelope-from zbb@FreeBSD.org) Message-Id: <201606031854.u53IsHcb052850@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org using -f From: Zbigniew Bodek Date: Fri, 3 Jun 2016 18:54:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r301282 - head/sys/dev/cesa X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Jun 2016 18:54:18 -0000 Author: zbb Date: Fri Jun 3 18:54:16 2016 New Revision: 301282 URL: https://svnweb.freebsd.org/changeset/base/301282 Log: Use proper interface for FDT parsing and memory mapping in CESA Improvements after r301220. Bus space methods are not called so simple pmap_mapdev will suffice. Use OF_getencprop to get buffer with already converted endianess. Pointed out by: ian Submitted by: Michal Stanek Obtained from: Semihalf Modified: head/sys/dev/cesa/cesa.c head/sys/dev/cesa/cesa.h Modified: head/sys/dev/cesa/cesa.c ============================================================================== --- head/sys/dev/cesa/cesa.c Fri Jun 3 18:52:57 2016 (r301281) +++ head/sys/dev/cesa/cesa.c Fri Jun 3 18:54:16 2016 (r301282) @@ -970,29 +970,30 @@ cesa_setup_sram(struct cesa_softc *sc) pcell_t sram_handle, sram_reg[2]; int rv; - rv = OF_getprop(ofw_bus_get_node(sc->sc_dev), "sram-handle", + rv = OF_getencprop(ofw_bus_get_node(sc->sc_dev), "sram-handle", (void *)&sram_handle, sizeof(sram_handle)); if (rv <= 0) return (rv); sram_ihandle = (ihandle_t)sram_handle; - sram_ihandle = fdt32_to_cpu(sram_ihandle); sram_node = OF_instance_to_package(sram_ihandle); - rv = OF_getprop(sram_node, "reg", (void *)sram_reg, sizeof(sram_reg)); + rv = OF_getencprop(sram_node, "reg", (void *)sram_reg, sizeof(sram_reg)); if (rv <= 0) return (rv); - sc->sc_sram_base_pa = fdt32_to_cpu(sram_reg[0]); + sc->sc_sram_base_pa = sram_reg[0]; /* Store SRAM size to be able to unmap in detach() */ - sc->sc_sram_size = fdt32_to_cpu(sram_reg[1]); + sc->sc_sram_size = sram_reg[1]; #if defined(SOC_MV_ARMADA38X) + void *sram_va; + /* SRAM memory was not mapped in platform_sram_devmap(), map it now */ - rv = bus_space_map(fdtbus_bs_tag, sc->sc_sram_base_pa, sc->sc_sram_size, - 0, &(sc->sc_sram_base_va)); - if (rv != 0) - return (rv); + sram_va = pmap_mapdev(sc->sc_sram_base_pa, sc->sc_sram_size); + if (sram_va == NULL) + return (ENOMEM); + sc->sc_sram_base_va = (vm_offset_t)sram_va; #endif return (0); } @@ -1246,7 +1247,7 @@ err3: bus_teardown_intr(dev, sc->sc_res[RES_CESA_IRQ], sc->sc_icookie); err2: #if defined(SOC_MV_ARMADA38X) - bus_space_unmap(fdtbus_bs_tag, sc->sc_sram_base_va, sc->sc_sram_size); + pmap_unmapdev(sc->sc_sram_base_va, sc->sc_sram_size); #endif err1: bus_release_resources(dev, cesa_res_spec, sc->sc_res); @@ -1297,7 +1298,7 @@ cesa_detach(device_t dev) #if defined(SOC_MV_ARMADA38X) /* Unmap SRAM memory */ - bus_space_unmap(fdtbus_bs_tag, sc->sc_sram_base_va, sc->sc_sram_size); + pmap_unmapdev(sc->sc_sram_base_va, sc->sc_sram_size); #endif /* Destroy mutexes */ mtx_destroy(&sc->sc_sessions_lock); Modified: head/sys/dev/cesa/cesa.h ============================================================================== --- head/sys/dev/cesa/cesa.h Fri Jun 3 18:52:57 2016 (r301281) +++ head/sys/dev/cesa/cesa.h Fri Jun 3 18:54:16 2016 (r301282) @@ -267,7 +267,7 @@ struct cesa_softc { /* CESA SRAM Address */ bus_addr_t sc_sram_base_pa; - bus_space_handle_t sc_sram_base_va; + vm_offset_t sc_sram_base_va; bus_size_t sc_sram_size; };