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 72185C001DC for ; Thu, 27 Jul 2023 07:36:27 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2A39486258; Thu, 27 Jul 2023 09:36:25 +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="d8Ml3GlR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 325B78622D; Thu, 27 Jul 2023 09:36:23 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on20600.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe5a::600]) (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 3D92A8620C for ; Thu, 27 Jul 2023 09:36:18 +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=e5GPin8TcFiZRj0At5imaZ7rdVZlnYYtnjJsxUT8xk9N7H/V2u4+5VUwGs6FxdwBHLcI9q7tUod+wDiU1/vlSbiPj5pC7SD3SP3XKL4qrvyiE44Fskr+Qk9HKRIIF+Jlc3F4DCY8J7gJ7ytDJdQ6frUDdSiXC34ijjzpQi++F9SaWUw82Gm3xkvooeNTTvAGhLxcmGlD1QjJ1FVu5qwQmFLnjV96QGZbB5hNyHtaE47/e3TvNLJC+uWFMXeVtIFwZgb2vp9cG/g97ZvnRyfX4kGwJmhO1XtI/G79q1rgZAuQKCrwHleSPEcI8Drg70bvVzfkFjcVLk1XGJJbmt+5Bg== 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=GH51KIUeXKggEbxeECzIFkHEq3PfcpNG48QQZTl95SM=; b=c7SFigvgXrFlSU1zPciVPBu47cZDDllzecAdVvYDewGh+L7PvBSyPGA9cp5Sh7htTiKXwsx+8rUhCIqgA7U7e9sXZdPNdgE9pEnLWxnBUo0JcVuBrlBkGdgOIZow7IUoRSDPvv5aqojYEo+jKo54EZ1GAEbrWeR/d3xHqIk9MiSVW/k0HIREDou23q9vHrvvvTGaq45sB2ZWI1JBgarLk2ocZhi+A+IUHhGWvO3EWV/uCfR+hhbQYRUwvdDUEAlZB+nRJLR/M29tNxC1Yr21+SCUuZvwQW1wWPoKQpaYtfaVifjJg7mOeoWcVIR+tbWnOFJQCU6U3K9cB06qbeq2pg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; 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=GH51KIUeXKggEbxeECzIFkHEq3PfcpNG48QQZTl95SM=; b=d8Ml3GlRITl5gfSjJvOHhIOk8VkhljKkt7nR1FM/FK5RqatXlw3G186iZb/2uAiZU2Odk+0E2ThCGJ9NUHZ/83IOim6xCWDwMRGBReLrSXUtabH1qzLN/foiYHzy1d5xaxcjQtXmhhafUTfXM06GmsRbfKnnM9J0H3MkmU0D61c= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from BYAPR12MB4758.namprd12.prod.outlook.com (2603:10b6:a03:a5::28) by DM8PR12MB5429.namprd12.prod.outlook.com (2603:10b6:8:29::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.29; Thu, 27 Jul 2023 07:36:13 +0000 Received: from BYAPR12MB4758.namprd12.prod.outlook.com ([fe80::7790:1431:1e52:44db]) by BYAPR12MB4758.namprd12.prod.outlook.com ([fe80::7790:1431:1e52:44db%5]) with mapi id 15.20.6609.032; Thu, 27 Jul 2023 07:36:13 +0000 Message-ID: <95c5705d-71f6-1a09-1663-cd2c893d6f19@amd.com> Date: Thu, 27 Jul 2023 09:35:58 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH v4] xilinx: zynqmp: Extract aes operation into new file Content-Language: en-US To: christian.taedcke-oss@weidmueller.com, u-boot@lists.denx.de Cc: Christian Taedcke References: <20230725072658.16341-1-christian.taedcke-oss@weidmueller.com> From: Michal Simek In-Reply-To: <20230725072658.16341-1-christian.taedcke-oss@weidmueller.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR2P281CA0120.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9d::13) To BYAPR12MB4758.namprd12.prod.outlook.com (2603:10b6:a03:a5::28) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR12MB4758:EE_|DM8PR12MB5429:EE_ X-MS-Office365-Filtering-Correlation-Id: c227b27e-909a-4e06-b1bf-08db8e7426ff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: r3Uj5AoCVrHaGPwKK7Wc8c5aWWr7N+h4E+d5prbHX06ppIzaWvMF/6E0/mz21FcpA4gL7bLrxxlMs/9Vl0AkabrgnavaqqZKP5I0NbvMrUnp9NqsNVjPDtkAzH/nTylGLiTL4/W8dtNJdrLxITJJD6IcwNWNQz1Y9m/aM2QZt9YeoE+T9bORjXez8+csALo4V1iyHx7uzJwEe2FYoh207kJXrXCstw+iQJDSLOH8fMb9OCCrthMuYW9xljkcH944gu33VpiYu0UtyXh1Ji6fMEZvIuE3t7UstwNpgINLfClTmswI4wprPznLm9ZJhTlNStXwS62okW0thmp8LGlPOcDcb58IeYe9ZjJCgmboFsfPO4PJsKE3MeYzll228VIZuIYNVnokWCYTGuCXzm+hzxtxbWbBC/gnLSlC1wzQe5tlTUR0fVDobSGjP7zkijkXn5Lt/t1gmlZRAnDg5wYX9aO+YXChHpPPQFBXBeWLrBv/Q7o8HlMp6oO0WNJnf/J8F7mKFJPeRBn8RZ5ka4VXYavH+P1l8j+eTcRo6zSKFbExVNWQ3WbrPxZ4WO/+1WOBr+uk+npdXaYEEYhs7vbAXMKQxK7VHv9/B/YTbwYH+FvpUoov6Oz/h2ml+R3B9G9WK64HdB114UyGxAAgQ22P2w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR12MB4758.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(366004)(39860400002)(346002)(136003)(396003)(451199021)(316002)(41300700001)(8676002)(8936002)(26005)(53546011)(6506007)(66946007)(478600001)(66476007)(6512007)(66556008)(4326008)(6666004)(6486002)(38100700002)(36756003)(2616005)(2906002)(83380400001)(86362001)(31686004)(31696002)(186003)(44832011)(5660300002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R1pIL3Z0NTUxWDIwQzVvN1NFRE1nZUlBRFRvbVlTMnl6WVAyd01OMjFKbld5?= =?utf-8?B?aDBYdGttR3pFSVFDSlVudlZJNjRpMUNrMTFGenBrVEJOYUZiV1doWUxnS2Jx?= =?utf-8?B?MmMwdmxIRVFielNkM2puTW9JUWh6U3VqNm9JYlJzZklTd0l2aXd5OTV0NWUr?= =?utf-8?B?NUtkRzJlTUtVTHE5Szd6YndGUENPdHRpRVhvQkZ2MmdLOHJPYTFhS1M3QUpV?= =?utf-8?B?K0lUeWt1VHJkODdWOWJBcEVGNmJuOVE5UE53L3dwRDIzQTlaSHBWTkx3emxN?= =?utf-8?B?RW1HZFQ4Kzd3MWJMQ3N3Vlphdi9HYlFGcTIvUjVpbWMvb3AxZHhSQXBvTTgz?= =?utf-8?B?aW8zNUUwR2M0R1p3TDlSUWFqWUtETW55bGRIdjFuRlhSZ0hxZ1dIZlZLVGdG?= =?utf-8?B?ditvQ1ZxYWhaZ3JGT0xRR2VVaDFoWC9xUlBiNWRtQS93ZEZOanIwU0l5Rm1r?= =?utf-8?B?OUQ3Wm1iaXJqbTNHamhkUmhaWXZxSGFYalYxNjVsejVLT3lpZ1ViVjRrVjFV?= =?utf-8?B?WW9BcCt6TUZTVGtkR0lLVFo1eU5xRGcxWlZyMkI5VUlFWWxjempicmMzRzB4?= =?utf-8?B?Ukpmc085R01RVi9FM084cHBqZVlDTm5XY282WnNhK0xGVDA0UzQvNlE4YkxJ?= =?utf-8?B?OGltQkE3Tm0vUDREWE5jaFIvZGhnTEttbFpMSkF0TGtTV05ycm5YQjU2SE96?= =?utf-8?B?ZGZFMkRZMmtWSGc1MGtPTEVXRHdsdTM4Q2gvN1FOUkdYSVQyMC9vTFJvQ3gv?= =?utf-8?B?U0l2Um5DcVZUcHV4QlBpdGFIeHZzWGcvRGR3Nzk5bHFJQkZxTndIckZHRnZi?= =?utf-8?B?S25Yd3BPbnZoVXZPVEM2MnJDQzFVSmZRNTNGVmtFNlB5ZFlDV2UwZzNTbUdC?= =?utf-8?B?Y0lkRnVHWlEzclVrYkxXSWszUXZtQ3FCZUhLZTBLZzBEbUNiZWprNEY1dCtQ?= =?utf-8?B?TUhIUFdkRDFwS24vZWVzT0tKU29TSitRSUNVcEJTUGt5UGJ6T2lqeHdsZGdL?= =?utf-8?B?QzlWdjc2OWZ4dU5nZWdlZHd5MmdiZDdEdHRXNGlVUlMzTjJ2ZTlGYzJoRlJF?= =?utf-8?B?VmoweEcwaXFnRnZnelAxdmNmSXcyZnp4ZGM5aHQrZjIzYjRVUEJncEU1aE02?= =?utf-8?B?TWdHaHhmdmZHY3lLTDkvZmlJQ1ZvSHVlSnZmam5ISCtiTFhDWiswQzV0YkMx?= =?utf-8?B?cTNNUWdzaGJ1Wi80bStGYkVxVnp2TUQ3N2JmaWVGS1p6eHF4VlJZc2M0cnU4?= =?utf-8?B?UC9tUEJFM3NqclJ6bStvZ1p6NEsxdGw0MzBTSm4wVUI2NEl0eG8wTC9Vb3Bm?= =?utf-8?B?OW9xcFFaN3pGdm9HdG9aYTBrTlo1SUFKUFZCRFVkNVUyMWZJL3M1WGQ2S2dH?= =?utf-8?B?YTcwZFJPV1NhRUkzbmlNdGI3UmxZTjFlck81NW9lU1EzeDY5WHZoLytaaFdD?= =?utf-8?B?dXV2QkR2THJmOEU4ZDFyWStjWUViTjBpR2p0eGxWK2VHaGJ5c2RncnNocnVi?= =?utf-8?B?b016a3lxMGptK3p5M1d5V3Z0YmwwNktsZWZ2M0RjYy9zMnU1OElEdWw5ZzJO?= =?utf-8?B?L0x3ME5LOVZRNjVraGFneExrMExaSFlUeURaRFZaUEljcmNyOE1tRUJCVjNI?= =?utf-8?B?UUMzVXA1NW9sWVI1ZWF3VzRHMU10bzNoSXJxZFhZbm1GZzlLQ091UkZwSWJC?= =?utf-8?B?bHVFdHcvQ0hZZGVlMlJhcENDRXlLdW1ET2JVaGlQckd2UnRUQVJHMWVDWTBX?= =?utf-8?B?NVM3a0hxaERTUmJseFJuVkZGYlo2Y015TVZGVmlHVTFIN3VjaUgxZkUxa0l2?= =?utf-8?B?M2pwRWg3TWVWRGJPTWxHaUFpOWhvaE82R1NWbUdad0Nhb0RXQU9meUJqUktW?= =?utf-8?B?cHpDRnU0MDZqYkhwalJyVTRlVFBCT2NxZVBCMzBxNTlYMWlnd1FQWFZYTUxt?= =?utf-8?B?UFhBMmxSR2JZN0Jxa2tMaWg1dTAvMnZmT2N0cWhuL082OFo5Rlh2MTVqaklR?= =?utf-8?B?RmwwdEdkSEJlMXA0cENxN1JpdUxaUUdNREVaVGNPS2szdWNXRWd3QWtwUWgv?= =?utf-8?B?bkZyYU14T3VKd1ZHZHhlUFA5SE1jVGRINHZpT05rUG1iR3NVb0lkbERvdkZE?= =?utf-8?Q?YvWLIt6VIF8JOUWXUXBitpFCY?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: c227b27e-909a-4e06-b1bf-08db8e7426ff X-MS-Exchange-CrossTenant-AuthSource: BYAPR12MB4758.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jul 2023 07:36:12.7132 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SXkZc3TVyRxbeKAilwUUD70x7bspohHOEeT2xpPhqX91E59c/P8lESWOdXI8Pxs6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR12MB5429 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.8 at phobos.denx.de X-Virus-Status: Clean On 7/25/23 09:26, christian.taedcke-oss@weidmueller.com wrote: > From: Christian Taedcke > > This moves the aes operation that is performed by the pmu into a > separate file. This way it can be called not just from the shell > command, but also e.g. from board initialization code. > > Signed-off-by: Christian Taedcke > --- > > Changes in v4: > - remove redundant () around parameters > - fix indentation > > Changes in v3: > - fix function doc format > > Changes in v2: > - convert doxygen comments to kernel-doc > - fix typos > - fix header license > - fix do_zynqmp_aes() return value > > arch/arm/mach-zynqmp/Makefile | 3 +- > arch/arm/mach-zynqmp/aes.c | 59 +++++++++++++++++++ > .../arm/mach-zynqmp/include/mach/zynqmp_aes.h | 32 ++++++++++ > board/xilinx/zynqmp/cmds.c | 43 +------------- > 4 files changed, 95 insertions(+), 42 deletions(-) > create mode 100644 arch/arm/mach-zynqmp/aes.c > create mode 100644 arch/arm/mach-zynqmp/include/mach/zynqmp_aes.h > > diff --git a/arch/arm/mach-zynqmp/Makefile b/arch/arm/mach-zynqmp/Makefile > index bb1830c846..1a76493bef 100644 > --- a/arch/arm/mach-zynqmp/Makefile > +++ b/arch/arm/mach-zynqmp/Makefile > @@ -3,8 +3,7 @@ > # (C) Copyright 2014 - 2015 Xilinx, Inc. > # Michal Simek > > -obj-y += clk.o > -obj-y += cpu.o > +obj-y += aes.o clk.o cpu.o > obj-$(CONFIG_MP) += mp.o > obj-$(CONFIG_SPL_BUILD) += spl.o handoff.o psu_spl_init.o > obj-$(CONFIG_SPL_ZYNQMP_DRAM_ECC_INIT) += ecc_spl_init.o > diff --git a/arch/arm/mach-zynqmp/aes.c b/arch/arm/mach-zynqmp/aes.c > new file mode 100644 > index 0000000000..8a2b7fdcbe > --- /dev/null > +++ b/arch/arm/mach-zynqmp/aes.c > @@ -0,0 +1,59 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * (C) Copyright 2018 Xilinx, Inc. > + * Siva Durga Prasad Paladugu > + * > + * Copyright (C) 2023 Weidmueller Interface GmbH & Co. KG > + * Christian Taedcke > + */ > + > +#include > +#include > + > +#include > +#include > +#include > +#include > + > +int zynqmp_aes_operation(struct zynqmp_aes *aes) > +{ > + u32 ret_payload[PAYLOAD_ARG_CNT]; > + int ret; > + > + if (zynqmp_firmware_version() <= PMUFW_V1_0) > + return -ENOENT; > + > + if (aes->srcaddr && aes->ivaddr && aes->dstaddr) { > + flush_dcache_range(aes->srcaddr, > + aes->srcaddr + > + roundup(aes->len, ARCH_DMA_MINALIGN)); > + flush_dcache_range(aes->ivaddr, > + aes->ivaddr + > + roundup(IV_SIZE, ARCH_DMA_MINALIGN)); > + flush_dcache_range(aes->dstaddr, > + aes->dstaddr + > + roundup(aes->len, ARCH_DMA_MINALIGN)); > + } > + > + if (aes->keysrc == 0) { > + if (aes->keyaddr == 0) > + return -EINVAL; > + > + flush_dcache_range(aes->keyaddr, > + aes->keyaddr + > + roundup(KEY_PTR_LEN, ARCH_DMA_MINALIGN)); > + } > + > + flush_dcache_range((ulong)aes, (ulong)(aes) + > + roundup(sizeof(struct zynqmp_aes), ARCH_DMA_MINALIGN)); > + > + ret = xilinx_pm_request(PM_SECURE_AES, upper_32_bits((ulong)aes), > + lower_32_bits((ulong)aes), 0, 0, ret_payload); > + if (ret || ret_payload[1]) { > + printf("Failed: AES op status:0x%x, errcode:0x%x\n", > + ret, ret_payload[1]); > + return -EIO; > + } > + > + return 0; > +} > diff --git a/arch/arm/mach-zynqmp/include/mach/zynqmp_aes.h b/arch/arm/mach-zynqmp/include/mach/zynqmp_aes.h > new file mode 100644 > index 0000000000..2a9cffbd0f > --- /dev/null > +++ b/arch/arm/mach-zynqmp/include/mach/zynqmp_aes.h > @@ -0,0 +1,32 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +/* > + * Copyright (C) 2023 Weidmueller Interface GmbH & Co. KG > + * Christian Taedcke > + * > + * Declaration of AES operation functionality for ZynqMP. > + */ > + > +#ifndef ZYNQMP_AES_H > +#define ZYNQMP_AES_H > + > +struct zynqmp_aes { > + u64 srcaddr; > + u64 ivaddr; > + u64 keyaddr; > + u64 dstaddr; > + u64 len; > + u64 op; > + u64 keysrc; > +}; > + > +/** > + * zynqmp_aes_operation() - Performs an aes operation using the pmu firmware > + * > + * @aes: The aes operation buffer that must have been allocated using > + * ALLOC_CACHE_ALIGN_BUFFER(struct zynqmp_aes, aes, 1) > + * > + * Return: 0 in case of success, in case of an error any other value > + */ > +int zynqmp_aes_operation(struct zynqmp_aes *aes); > + > +#endif /* ZYNQMP_AES_H */ > diff --git a/board/xilinx/zynqmp/cmds.c b/board/xilinx/zynqmp/cmds.c > index dd1ad66f90..60c7bfca02 100644 > --- a/board/xilinx/zynqmp/cmds.c > +++ b/board/xilinx/zynqmp/cmds.c > @@ -14,16 +14,7 @@ > #include > #include > #include > - > -struct aes { > - u64 srcaddr; > - u64 ivaddr; > - u64 keyaddr; > - u64 dstaddr; > - u64 len; > - u64 op; > - u64 keysrc; > -}; > +#include > > static int do_zynqmp_verify_secure(struct cmd_tbl *cmdtp, int flag, int argc, > char *const argv[]) > @@ -121,9 +112,7 @@ static int do_zynqmp_mmio_write(struct cmd_tbl *cmdtp, int flag, int argc, > static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc, > char * const argv[]) > { > - ALLOC_CACHE_ALIGN_BUFFER(struct aes, aes, 1); > - int ret; > - u32 ret_payload[PAYLOAD_ARG_CNT]; > + ALLOC_CACHE_ALIGN_BUFFER(struct zynqmp_aes, aes, 1); > > if (zynqmp_firmware_version() <= PMUFW_V1_0) { > puts("ERR: PMUFW v1.0 or less is detected\n"); > @@ -142,40 +131,14 @@ static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc, > aes->keysrc = hextoul(argv[6], NULL); > aes->dstaddr = hextoul(argv[7], NULL); > > - if (aes->srcaddr && aes->ivaddr && aes->dstaddr) { > - flush_dcache_range(aes->srcaddr, > - (aes->srcaddr + > - roundup(aes->len, ARCH_DMA_MINALIGN))); > - flush_dcache_range(aes->ivaddr, > - (aes->ivaddr + > - roundup(IV_SIZE, ARCH_DMA_MINALIGN))); > - flush_dcache_range(aes->dstaddr, > - (aes->dstaddr + > - roundup(aes->len, ARCH_DMA_MINALIGN))); > - } > - > if (aes->keysrc == 0) { > if (argc < cmdtp->maxargs) > return CMD_RET_USAGE; > > aes->keyaddr = hextoul(argv[8], NULL); > - if (aes->keyaddr) > - flush_dcache_range(aes->keyaddr, > - (aes->keyaddr + > - roundup(KEY_PTR_LEN, > - ARCH_DMA_MINALIGN))); > } > > - flush_dcache_range((ulong)aes, (ulong)(aes) + > - roundup(sizeof(struct aes), ARCH_DMA_MINALIGN)); > - > - ret = xilinx_pm_request(PM_SECURE_AES, upper_32_bits((ulong)aes), > - lower_32_bits((ulong)aes), 0, 0, ret_payload); > - if (ret || ret_payload[1]) > - printf("Failed: AES op status:0x%x, errcode:0x%x\n", > - ret, ret_payload[1]); > - > - return ret; > + return zynqmp_aes_operation(aes); > } > > #ifdef CONFIG_DEFINE_TCM_OCM_MMAP Applied. M