From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 84E9FC433EF for ; Fri, 8 Jul 2022 13:16:27 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A8D418459B; Fri, 8 Jul 2022 15:15:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="YJsvbyRQ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 603E08459B; Fri, 8 Jul 2022 15:15:36 +0200 (CEST) Received: from mail-yw1-x112d.google.com (mail-yw1-x112d.google.com [IPv6:2607:f8b0:4864:20::112d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A9CC38459A for ; Fri, 8 Jul 2022 15:15:32 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=cryosay@gmail.com Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-31cb2c649f7so123477207b3.11 for ; Fri, 08 Jul 2022 06:15:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=F+Frjw5IoK7u6e0gcnrViufxSnFAlfA+ToubY8kczMw=; b=YJsvbyRQOKwahzp8M8BoewSTuLuTqi89fd74ppv1U5nGH/SqGwdxWbRY71aUKowx0B p/UECyi4ng6z8Xxc+PEHrhTiUOcNgVBGIlq6wB3kd7vLvtrLPRAODgpZO/soP75HbOXk KWPPRDppyfn593FNK72cI5UvgHUhAmoQvtlgVA7MT/wFfYwxqinbOyd1Cj6osDZOa0Fc r9D95Dqud08o53Ss90mAv9jdtI91bEDVCv9QeovpfVimbixztdCxUfpNJbA4jBHSeIgY H7/VPYvprkz83r6xusKxkYZCOwvJPqU73jazgyxgf/NDc1/3D1fxf1XL5tEfegFxOSHz kl1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=F+Frjw5IoK7u6e0gcnrViufxSnFAlfA+ToubY8kczMw=; b=S28HsU24VoyDdiBKnksWt8B4r0h6fySuWA3HRnnCqH1wNUAkVjKP8wlhLXanO0Fn+z sMc2zNNuLEtR2SJc65oKQuWu8Mn+xfuT1FgpYUAXb3vppZTTpcMgqi5OKgvF1FcPCX7D ILXPiPMpbJabIdUvodBmHwj4TZdGXwor7M7LWRMDoOjOXrXdyUQRSmFBM6XGDiVApNN9 9bOpynnYTtI+95EkVxT8wbQqfxcWmAZi7D3XhFlJuBnnVX1QhEVfr+eAM9YS+i1r9QOo eOQSOf0XcQItifaM+3eJK7EPzvclI1YnwFyeBN5nP+0I2LyUmOGmPTRHO6lPgU2Pwxi6 46EQ== X-Gm-Message-State: AJIora/YZrsNUVeCozkPbSIc3D8eBaL8gywlZ6hcEa8BlNuoBOVlWVCR dzVAhAPmZwqI/86o0kohH6tnrihzjEhN5CDIEic= X-Google-Smtp-Source: AGRyM1vXej7skFPYkR0MnoYuSkXc6JM9xqb/GI5cOJxan/4iOiasUR1AdiQparEFKbxwFX1reSSa0J+aL4/bZWkK57g= X-Received: by 2002:a81:9142:0:b0:31c:97e4:d1cc with SMTP id i63-20020a819142000000b0031c97e4d1ccmr3978213ywg.27.1657286131080; Fri, 08 Jul 2022 06:15:31 -0700 (PDT) MIME-Version: 1.0 References: <20220705192320.415861-1-oleksandr.suvorov@foundries.io> <20220705192320.415861-2-oleksandr.suvorov@foundries.io> <20220705192320.415861-3-oleksandr.suvorov@foundries.io> <20220705192320.415861-4-oleksandr.suvorov@foundries.io> <20220705192320.415861-5-oleksandr.suvorov@foundries.io> <20220705192320.415861-6-oleksandr.suvorov@foundries.io> <20220705192320.415861-7-oleksandr.suvorov@foundries.io> <20220705192320.415861-8-oleksandr.suvorov@foundries.io> <20220705192320.415861-9-oleksandr.suvorov@foundries.io> <20220705192320.415861-10-oleksandr.suvorov@foundries.io> <20220705192320.415861-11-oleksandr.suvorov@foundries.io> <46380a1d-752f-e03e-3fde-80d0496d469a@amd.com> In-Reply-To: <46380a1d-752f-e03e-3fde-80d0496d469a@amd.com> From: Oleksandr Suvorov Date: Fri, 8 Jul 2022 16:15:20 +0300 Message-ID: Subject: Re: [PATCH v11 10/13] fpga: zynqmp: optimize zynqmppl_load() code To: Michal Simek Cc: Oleksandr Suvorov , U-Boot Mailing List , Adrian Fiergolski , Michal Simek , Jorge Ramirez-Ortiz , Ricardo Salveti , Igor Opaniuk Content-Type: text/plain; charset="UTF-8" X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.6 at phobos.denx.de X-Virus-Status: Clean Hi Michal, On Fri, Jul 8, 2022 at 3:43 PM Michal Simek wrote: > > > > On 7/5/22 21:23, Oleksandr Suvorov wrote: > > Optimize function code preparing to add secure bitstream types > > support. > > Can you please extend this? I understand what you do below but better > description will be good. Ok, if I'll realize how to do this :) > > > > Signed-off-by: Oleksandr Suvorov > > Tested-by: Ricardo Salveti > > Tested-by: Adrian Fiergolski > > --- > > > > (no changes since v1) > > > > drivers/fpga/zynqmppl.c | 27 +++++++++++++-------------- > > 1 file changed, 13 insertions(+), 14 deletions(-) > > > > diff --git a/drivers/fpga/zynqmppl.c b/drivers/fpga/zynqmppl.c > > index 239c498f7b5..6959b8ae97e 100644 > > --- a/drivers/fpga/zynqmppl.c > > +++ b/drivers/fpga/zynqmppl.c > > @@ -199,46 +199,45 @@ static int zynqmp_validate_bitstream(xilinx_desc *desc, const void *buf, > > return 0; > > } > > > > -static int zynqmp_load(xilinx_desc *desc, const void *buf, size_t bsize, > > - bitstream_type bstype, int flags) > > +static int zynqmp_load(xilinx_desc *desc, const void *buf, > > + size_t bsize, bitstream_type bstype, > > + int flags) > > This is unrelated to commit. This is purely coding style change. Ok, I'll separate to another commit. > > { > > ALLOC_CACHE_ALIGN_BUFFER(u32, bsizeptr, 1); > > u32 swap = 0; > > ulong bin_buf; > > int ret; > > u32 buf_lo, buf_hi; > > + u32 bsize_req = (u32)bsize; > > u32 ret_payload[PAYLOAD_ARG_CNT]; > > - bool xilfpga_old = false; > > + > > + debug("%s called!\n", __func__); > > > > if (zynqmp_firmware_version() <= PMUFW_V1_0) { > > puts("WARN: PMUFW v1.0 or less is detected\n"); > > puts("WARN: Not all bitstream formats are supported\n"); > > puts("WARN: Please upgrade PMUFW\n"); > > - xilfpga_old = true; > > - if (zynqmp_validate_bitstream(desc, buf, bsize, bsize, &swap)) > > + if (zynqmp_validate_bitstream(desc, buf, bsize, > > + bsize, &swap)) > > This is also coding style change only. Ok. > > return FPGA_FAIL; > > bsizeptr = (u32 *)&bsize; > > flush_dcache_range((ulong)bsizeptr, > > (ulong)bsizeptr + sizeof(size_t)); > > + bsize_req = (u32)(uintptr_t)bsizeptr; > > bstype |= BIT(ZYNQMP_FPGA_BIT_NS); > > + } else { > > + bstype = 0; > > } > > > > bin_buf = zynqmp_align_dma_buffer((u32 *)buf, bsize, swap); > > > > - debug("%s called!\n", __func__); > > nit: And this also has nothing to do with optimization. You just changed location. Michal, what is this closer to? Refactor? It's not only about changing location. Now there is only one call of xilinx_pm_request(). > > flush_dcache_range(bin_buf, bin_buf + bsize); > > > > buf_lo = (u32)bin_buf; > > buf_hi = upper_32_bits(bin_buf); > > > > - if (xilfpga_old) > > - ret = xilinx_pm_request(PM_FPGA_LOAD, buf_lo, > > - buf_hi, (u32)(uintptr_t)bsizeptr, > > - bstype, ret_payload); > > - else > > - ret = xilinx_pm_request(PM_FPGA_LOAD, buf_lo, > > - buf_hi, (u32)bsize, 0, ret_payload); > > - > > + ret = xilinx_pm_request(PM_FPGA_LOAD, buf_lo, buf_hi, > > + bsize_req, bstype, ret_payload); > > if (ret) > > printf("PL FPGA LOAD failed with err: 0x%08x\n", ret); > > > > M -- Best regards Oleksandr Oleksandr Suvorov cryosay@gmail.com