From owner-svn-src-all@freebsd.org Fri Jan 27 10:57:32 2017 Return-Path: Delivered-To: svn-src-all@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 64539CC4D83; Fri, 27 Jan 2017 10:57:32 +0000 (UTC) (envelope-from melounmichal@gmail.com) Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 0203A18C2; Fri, 27 Jan 2017 10:57:32 +0000 (UTC) (envelope-from melounmichal@gmail.com) Received: by mail-wm0-x244.google.com with SMTP id d140so57625241wmd.2; Fri, 27 Jan 2017 02:57:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:references:to:reply-to:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=P44pRlq9rA1Zw4DIntShZPTX4fXyX/DG8QgOyYnx7EI=; b=KqCc4OpJngurjSFvgzQeIx+HaQko6Lnsi1GDpDCsBMSOCTe6qH5Y4hYO6qDkmjsMyq RoXmyaspklzAC3tlx1IOHAoVmHHBxXStZz1e8048bePT5Fg8cjfmyyvpAkPWZJDTpwDl Pt9MnEgaaNBcLOdXRwEG4TcGzuKGaoAQgvcW3lSvjoduHSWFNBeQftjz1Kq0xlgcCkCr 28XjINySre5vr2BECJT6UNLlG6C17wzSCuuI23JCm9caDgbuGQdTuk+YMQ9jcazYUxMA C8NdmX497Pos8o7N04ri7pvKwaPLU0udQjOp/KWii63z/JWVYpNb1OWtQyo0EuMz8xUL m4Sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:references:to:reply-to:message-id :date:user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=P44pRlq9rA1Zw4DIntShZPTX4fXyX/DG8QgOyYnx7EI=; b=IwAdqgH5StK8mx69YfLutibwP5YvlSWOz1qKkGfJ5UHsyoWWNUkHJI2gkWzk2IWFMY NRhV3nulbF+VxTW9e1EH+uLwh1PqSSjjHRzuDqior3E+F0wooiERLOqvhcPMd1fmvvJj olVHgSfZfN10WkSMniXqu0HqCmChlsFeCx+lwPafQB8il2rPYeiMaC5Wd9J9Cn3hqLZu t6YF2IjsZJqLveFU5/IrfuRtxw89h02UWQFrzrP6vRtoPxjvF8hzIloYK0ZPzvDE1Nl0 ZSwntY4+uDgCgD3Lp8tJELA++bO4yJRiYYDbIU2QUsAOy+YzKoyXyhmoudotkxtiGSFv hcZw== X-Gm-Message-State: AIkVDXLBSWeNSNyd9QiSgqN9UeYcl6cMp9ITr6Ghi4pcRHB4y2A2QefmJUvedQ06vngs3A== X-Received: by 10.28.50.135 with SMTP id y129mr2448504wmy.2.1485514649664; Fri, 27 Jan 2017 02:57:29 -0800 (PST) Received: from [88.208.79.100] (halouny.humusoft.cz. [88.208.79.100]) by smtp.gmail.com with ESMTPSA id e74sm3264244wmd.2.2017.01.27.02.57.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 27 Jan 2017 02:57:29 -0800 (PST) From: Michal Meloun X-Google-Original-From: Michal Meloun Subject: Re: svn commit: r312743 - head/sys/dev/cesa References: <201701251022.v0PAM70M046189@repo.freebsd.org> To: Wojciech Macek , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Reply-To: mmel@freebsd.org Message-ID: <06845374-0a4d-dc59-ee6f-39f76422a445@freebsd.org> Date: Fri, 27 Jan 2017 11:57:33 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: <201701251022.v0PAM70M046189@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Jan 2017 10:57:32 -0000 This breaks DB-88F6XXX kernel with: --- cesa.o --- ... /usr2/Meloun/git/tegra/sys/dev/cesa/cesa.c:960:57: error: use of undeclared identifier 'CESA_SA_CMD_SHA2' CESA_REG_WRITE(sc, CESA_SA_CMD, CESA_SA_CMD_ACTVATE | CESA_SA_CMD_SHA2); ^ /usr2/Meloun/git/tegra/sys/dev/cesa/cesa.c:1209:10: error: use of undeclared identifier 'CESA_TDMA_NUM_OUTSTAND' val |= CESA_TDMA_NUM_OUTSTAND; ^ 2 errors generated. *** [cesa.o] Error code 1 Michal On 25.01.2017 11:22, Wojciech Macek wrote: > Author: wma > Date: Wed Jan 25 10:22:07 2017 > New Revision: 312743 > URL: https://svnweb.freebsd.org/changeset/base/312743 > > Log: > Use SoC ID - based detection in CESA > > This commit introduces following changes in order to get rid of > ifdef's from all around the driver. > * Introduce sc_soc_id field in cesa_softc structure - this value is > obtained in cesa_attach() anyway, so make use of it. > * Replace ifdefs with SoC ID checks. > * Perform PM control status only for relevant SoC's. > > Submitted by: Marcin Wojtas > Obtained from: Semihalf > Sponsored by: Stormshield > Reviewed by: zbb > Differential revision: https://reviews.freebsd.org/D9247 > > 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 Wed Jan 25 07:51:53 2017 (r312742) > +++ head/sys/dev/cesa/cesa.c Wed Jan 25 10:22:07 2017 (r312743) > @@ -953,11 +953,13 @@ cesa_execute(struct cesa_softc *sc) > ctd = STAILQ_FIRST(&cr->cr_tdesc); > > CESA_TDMA_WRITE(sc, CESA_TDMA_ND, ctd->ctd_cthd_paddr); > -#if defined (SOC_MV_ARMADA38X) > - CESA_REG_WRITE(sc, CESA_SA_CMD, CESA_SA_CMD_ACTVATE | CESA_SA_CMD_SHA2); > -#else > - CESA_REG_WRITE(sc, CESA_SA_CMD, CESA_SA_CMD_ACTVATE); > -#endif > + > + if (sc->sc_soc_id == MV_DEV_88F6828 || > + sc->sc_soc_id == MV_DEV_88F6820 || > + sc->sc_soc_id == MV_DEV_88F6810) > + CESA_REG_WRITE(sc, CESA_SA_CMD, CESA_SA_CMD_ACTVATE | CESA_SA_CMD_SHA2); > + else > + CESA_REG_WRITE(sc, CESA_SA_CMD, CESA_SA_CMD_ACTVATE); > > CESA_UNLOCK(sc, requests); > } > @@ -968,6 +970,7 @@ cesa_setup_sram(struct cesa_softc *sc) > phandle_t sram_node; > ihandle_t sram_ihandle; > pcell_t sram_handle, sram_reg[2]; > + void *sram_va; > int rv; > > rv = OF_getencprop(ofw_bus_get_node(sc->sc_dev), "sram-handle", > @@ -986,15 +989,17 @@ cesa_setup_sram(struct cesa_softc *sc) > /* Store SRAM size to be able to unmap in detach() */ > sc->sc_sram_size = sram_reg[1]; > > -#if defined(SOC_MV_ARMADA38X) > - void *sram_va; > + if (sc->sc_soc_id != MV_DEV_88F6828 && > + sc->sc_soc_id != MV_DEV_88F6820 && > + sc->sc_soc_id != MV_DEV_88F6810) > + return (0); > > /* SRAM memory was not mapped in platform_sram_devmap(), map it now */ > 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); > } > > @@ -1018,7 +1023,7 @@ static int > cesa_attach(device_t dev) > { > struct cesa_softc *sc; > - uint32_t d, r; > + uint32_t d, r, val; > int error; > int i; > > @@ -1027,23 +1032,19 @@ cesa_attach(device_t dev) > sc->sc_error = 0; > sc->sc_dev = dev; > > - /* Check if CESA peripheral device has power turned on */ > -#if defined(SOC_MV_KIRKWOOD) > - if (soc_power_ctrl_get(CPU_PM_CTRL_CRYPTO) == CPU_PM_CTRL_CRYPTO) { > - device_printf(dev, "not powered on\n"); > - return (ENXIO); > - } > -#else > - if (soc_power_ctrl_get(CPU_PM_CTRL_CRYPTO) != CPU_PM_CTRL_CRYPTO) { > - device_printf(dev, "not powered on\n"); > - return (ENXIO); > - } > -#endif > soc_id(&d, &r); > > switch (d) { > case MV_DEV_88F6281: > case MV_DEV_88F6282: > + /* Check if CESA peripheral device has power turned on */ > + if (soc_power_ctrl_get(CPU_PM_CTRL_CRYPTO) == > + CPU_PM_CTRL_CRYPTO) { > + device_printf(dev, "not powered on\n"); > + return (ENXIO); > + } > + sc->sc_tperr = 0; > + break; > case MV_DEV_88F6828: > case MV_DEV_88F6820: > case MV_DEV_88F6810: > @@ -1051,12 +1052,20 @@ cesa_attach(device_t dev) > break; > case MV_DEV_MV78100: > case MV_DEV_MV78100_Z0: > + /* Check if CESA peripheral device has power turned on */ > + if (soc_power_ctrl_get(CPU_PM_CTRL_CRYPTO) != > + CPU_PM_CTRL_CRYPTO) { > + device_printf(dev, "not powered on\n"); > + return (ENXIO); > + } > sc->sc_tperr = CESA_ICR_TPERR; > break; > default: > return (ENXIO); > } > > + sc->sc_soc_id = d; > + > /* Initialize mutexes */ > mtx_init(&sc->sc_sc_lock, device_get_nameunit(dev), > "CESA Shared Data", MTX_DEF); > @@ -1191,12 +1200,15 @@ cesa_attach(device_t dev) > * - Outstanding reads enabled, > * - No byte-swap. > */ > - CESA_TDMA_WRITE(sc, CESA_TDMA_CR, CESA_TDMA_CR_DBL128 | > - CESA_TDMA_CR_SBL128 | CESA_TDMA_CR_ORDEN | CESA_TDMA_CR_NBS | > -#if defined (SOC_MV_ARMADA38X) > - CESA_TDMA_NUM_OUTSTAND | > -#endif > - CESA_TDMA_CR_ENABLE); > + val = CESA_TDMA_CR_DBL128 | CESA_TDMA_CR_SBL128 | > + CESA_TDMA_CR_ORDEN | CESA_TDMA_CR_NBS | CESA_TDMA_CR_ENABLE; > + > + if (sc->sc_soc_id == MV_DEV_88F6828 || > + sc->sc_soc_id == MV_DEV_88F6820 || > + sc->sc_soc_id == MV_DEV_88F6810) > + val |= CESA_TDMA_NUM_OUTSTAND; > + > + CESA_TDMA_WRITE(sc, CESA_TDMA_CR, val); > > /* > * Initialize SA: > @@ -1248,9 +1260,10 @@ err4: > err3: > bus_teardown_intr(dev, sc->sc_res[RES_CESA_IRQ], sc->sc_icookie); > err2: > -#if defined(SOC_MV_ARMADA38X) > - pmap_unmapdev(sc->sc_sram_base_va, sc->sc_sram_size); > -#endif > + if (sc->sc_soc_id == MV_DEV_88F6828 || > + sc->sc_soc_id == MV_DEV_88F6820 || > + sc->sc_soc_id == MV_DEV_88F6810) > + pmap_unmapdev(sc->sc_sram_base_va, sc->sc_sram_size); > err1: > bus_release_resources(dev, cesa_res_spec, sc->sc_res); > err0: > @@ -1298,10 +1311,12 @@ cesa_detach(device_t dev) > /* Relase I/O and IRQ resources */ > bus_release_resources(dev, cesa_res_spec, sc->sc_res); > > -#if defined(SOC_MV_ARMADA38X) > /* Unmap SRAM memory */ > - pmap_unmapdev(sc->sc_sram_base_va, sc->sc_sram_size); > -#endif > + if (sc->sc_soc_id == MV_DEV_88F6828 || > + sc->sc_soc_id == MV_DEV_88F6820 || > + sc->sc_soc_id == MV_DEV_88F6810) > + pmap_unmapdev(sc->sc_sram_base_va, sc->sc_sram_size); > + > /* Destroy mutexes */ > mtx_destroy(&sc->sc_sessions_lock); > mtx_destroy(&sc->sc_requests_lock); > > Modified: head/sys/dev/cesa/cesa.h > ============================================================================== > --- head/sys/dev/cesa/cesa.h Wed Jan 25 07:51:53 2017 (r312742) > +++ head/sys/dev/cesa/cesa.h Wed Jan 25 10:22:07 2017 (r312743) > @@ -231,6 +231,7 @@ struct cesa_packet { > struct cesa_softc { > device_t sc_dev; > int32_t sc_cid; > + uint32_t sc_soc_id; > struct resource *sc_res[RES_CESA_NUM]; > void *sc_icookie; > bus_dma_tag_t sc_data_dtag; >