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 3CF1BC433EF for ; Fri, 8 Jul 2022 12:43:22 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 50FBF84580; Fri, 8 Jul 2022 14:43:20 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="TPifDpSu"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BFEA38458F; Fri, 8 Jul 2022 14:43:18 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2056.outbound.protection.outlook.com [40.107.93.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 705A684557 for ; Fri, 8 Jul 2022 14:43:16 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: phobos.denx.de; spf=fail smtp.mailfrom=michal.simek@amd.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OUIHL1ojwKG5rvLUKaZbnveAcUce35jQI2z9+9wzmmBVmpgWgCc+MGnfENbriWi/kBuQYBNDXvUvRxRdJ/B4AQ++t67smqixPdEShqHgDWdhcjTXBqV7gr7O2HdYX9Dt9Bv6hE2RryRULKxgTh32tBKDLgKeciwvkOmGhRu9TPjUEHoxmgXeeo+pihRq+x+8db1i2d/TSzqgzRyYjDto0eejTrBDxCF/NFnFWlM6AByq5k2XB0r+3Pa1yUfX5RdHuJvIVwngvNNa21FFV6ESG7r4M+jpmm+2VJxZJlkcB0xMFYbL4JT9T+UVPp/9CoVodB+OraqTd/oLO+vlcHOeEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3nwT9royKHRTVgLY4wi9komC+tPvqiMQuqjLfC6adwI=; b=UVKAtdRSDGl/5NxnbDB76YJsHV5ejfREoA2OUGoWuoH/t9hfkwbPCvMLTsfeqEe3Dn0aijvq46HH5Z5wMs1Qb91WP+kwL6Z7RbG8ymCHFWHnu/2gT/lA73FlAKhdgWQ1t59t7rycQhU6WlxacUr0XQRdzYjRqJipIZ3AH777o0bVOXspn0pCS3b6PourTCzC9uLYpVs8u6t9vn8nKhhBakAY2gOOJTB6FA8epLU60jcu4oAy02KnyOEIy2kFVLhWBMBGVpvPs7+ZQx5WHoJyjmTUMkmgOazeQ4CHKrDteF/fTjQmXnvKjDSTe//Idd1r25FQX/RRDWttR2HMye3lXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=foundries.io smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3nwT9royKHRTVgLY4wi9komC+tPvqiMQuqjLfC6adwI=; b=TPifDpSuJI7SpYq4OTtuCLgekCeLDFJJ3GsHDuk3l63vo+XFWKnpBDwI09XPUh1QeGjA6+7NeTFPNOoJmFNFCvDc25j5OYFoVupP3h42cgdM+V3zl+hZe7pRscXOwkfCoDga45icuH5yN8RICbcAWiglJT0/lPYdlLGKrCrFU30= Received: from BN9PR03CA0692.namprd03.prod.outlook.com (2603:10b6:408:ef::7) by CH0PR12MB5057.namprd12.prod.outlook.com (2603:10b6:610:e0::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.16; Fri, 8 Jul 2022 12:43:13 +0000 Received: from BN8NAM11FT003.eop-nam11.prod.protection.outlook.com (2603:10b6:408:ef:cafe::2b) by BN9PR03CA0692.outlook.office365.com (2603:10b6:408:ef::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.17 via Frontend Transport; Fri, 8 Jul 2022 12:43:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT003.mail.protection.outlook.com (10.13.177.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5417.15 via Frontend Transport; Fri, 8 Jul 2022 12:43:13 +0000 Received: from [10.254.241.52] (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Fri, 8 Jul 2022 07:43:09 -0500 Message-ID: <46380a1d-752f-e03e-3fde-80d0496d469a@amd.com> Date: Fri, 8 Jul 2022 14:43:07 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH v11 10/13] fpga: zynqmp: optimize zynqmppl_load() code Content-Language: en-US To: Oleksandr Suvorov , CC: Adrian Fiergolski , Michal Simek , Jorge Ramirez-Ortiz , Ricardo Salveti , Igor Opaniuk 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> From: Michal Simek In-Reply-To: <20220705192320.415861-11-oleksandr.suvorov@foundries.io> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 115d19ed-a431-4b3e-3c9e-08da60df6c1f X-MS-TrafficTypeDiagnostic: CH0PR12MB5057:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SNS/7yVLKqPLZNfEu5+LkvZPNZxC+fd1kLy7zmlCn744vcZULgbhsG0ji2ieps8qTCErXr8aHsXJKiynFs5wDVfVxBcv1bRHFmmlWaiDYFqPygJbjncXyfo7125DcQBXqD2WKqeKwvVhat+PtQ90wgHaCtPd118Ykd6+fU4PWlq++W/AOkozA11PjZEPIXFeNNgxjNBTXALk7aiZb18Zn5+s3jMFQTJY0kALSSbV+aIS/alz8TcNxKJtARWJGTtiwAgApIFgOz6U8zDA1jRYPXLH4l+GMk76iaamYDwCtKOhY6U9AjVotI2pNS3/joHI/hrB5JkeB3JyJz77g0xrO0zfXsFgqcJRgu6MFDuK7oqqdMCFZJqFgoHEaeQXwMG47ubjvk7Ha+3UgLLxLc9iTK9e9eP4aVe2lYI5UoYSPJwtCgCUb0j50jyMPGjhuzYlvx33/ZeGJ71t1MnC6NucSOzGjrzaENr+7vhh6+qpm2LdgvK00RAxxBUvZDbGicr45fQ1RZYuY/2UVHTCdN+riAmT2B1ASO51byw0bUVPTrCHb4wq1Oumtw3p8Yha4W4CJNfGfR5e6RnOtDOZsF26S7vt+i7NwRGZPyKFjqdJtrKczQTkdrYvINg6VJ74eOWr/4DF0wHfuVvydyo5lYVgdfoLxyUphuB/rKrtDgiGUjcyUGxMkIxUpcwM2L9bVvGPmKIMwH0mqosOEvZSx7CQCfHuVV5BIV6XRH5b91quo992zj1udsG2YmhoMSkJ8xbesMH7YEhj5i4sa//FrGw3HQZHx3AV6NqDbpn+BmUNRuUpYF26kq/sA9hth4qK5BvB8vDde2Q/FP0OJGQXsOK0YfldW3FMFkgVvRZdUEiYCnenBtl97ciSnY+kOFYM+3MJ8tkfueEanGJdyVIps7UEHONSnzoK0JpSWbAZxZCxy38= X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB04.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230016)(4636009)(396003)(39860400002)(346002)(376002)(136003)(46966006)(36840700001)(40470700004)(2906002)(5660300002)(8936002)(40480700001)(44832011)(82310400005)(36860700001)(34020700004)(40460700003)(83380400001)(82740400003)(478600001)(336012)(36756003)(54906003)(356005)(26005)(110136005)(41300700001)(81166007)(70206006)(31696002)(70586007)(16526019)(316002)(8676002)(4326008)(16576012)(186003)(2616005)(53546011)(47076005)(426003)(86362001)(31686004)(43740500002)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jul 2022 12:43:13.3369 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 115d19ed-a431-4b3e-3c9e-08da60df6c1f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT003.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5057 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 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. > > 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. > { > 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. > 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. > 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