From patchwork Thu Jan 17 07:02:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalyani Akula X-Patchwork-Id: 10767573 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7558C14E5 for ; Thu, 17 Jan 2019 07:03:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 64D9C2F075 for ; Thu, 17 Jan 2019 07:03:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5903B2F179; Thu, 17 Jan 2019 07:03:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EB2ED2F075 for ; Thu, 17 Jan 2019 07:03:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729812AbfAQHCq (ORCPT ); Thu, 17 Jan 2019 02:02:46 -0500 Received: from mail-eopbgr790089.outbound.protection.outlook.com ([40.107.79.89]:4444 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729594AbfAQHCp (ORCPT ); Thu, 17 Jan 2019 02:02:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nj/5dvRYEK1/x6oe5UBQotrsUdbouHjYlO/MyMpPMOU=; b=J9wT53mcv9/my4yrwuZJy2TvZnFvr9zajVZkHZAE3Bx9UyL1ISwEUxrOQsUhmyUUW4g/4rQcZEF7PiphgJf4JhRWeoMQ7M8O4WY2CJJqcnqacGg5PiQqVwcqtOP0PPEHGzM3jxnWWklFHOx9UJ+DIHP/Q4eeLSr8Os3A7NnBDno= Received: from SN4PR0201CA0029.namprd02.prod.outlook.com (2603:10b6:803:2e::15) by BL0PR02MB4451.namprd02.prod.outlook.com (2603:10b6:208:45::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.19; Thu, 17 Jan 2019 07:02:42 +0000 Received: from BL2NAM02FT020.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e46::204) by SN4PR0201CA0029.outlook.office365.com (2603:10b6:803:2e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.25 via Frontend Transport; Thu, 17 Jan 2019 07:02:41 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by BL2NAM02FT020.mail.protection.outlook.com (10.152.77.162) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1471.13 via Frontend Transport; Thu, 17 Jan 2019 07:02:41 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1gk1hI-0005kD-S5; Wed, 16 Jan 2019 23:02:40 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1gk1hD-0007Rm-Oc; Wed, 16 Jan 2019 23:02:35 -0800 Received: from xsj-pvapsmtp01 (smtp2.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id x0H72PA1022374; Wed, 16 Jan 2019 23:02:25 -0800 Received: from [172.23.155.90] (helo=xhdengvm155090.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1gk1h3-0007ML-4Q; Wed, 16 Jan 2019 23:02:25 -0800 Received: by xhdengvm155090.xilinx.com (Postfix, from userid 23151) id 5C07F800D3; Thu, 17 Jan 2019 12:32:24 +0530 (IST) From: Kalyani Akula To: , , , CC: Kalyani Akula , Sarat Chand Savitala , Kalyani Akula Subject: [RFC PATCH 1/5] dt-bindings: crypto: Add bindings for ZynqMP AES driver Date: Thu, 17 Jan 2019 12:32:17 +0530 Message-ID: <1547708541-23730-2-git-send-email-kalyani.akula@xilinx.com> X-Mailer: git-send-email 1.9.5 In-Reply-To: <1547708541-23730-1-git-send-email-kalyani.akula@xilinx.com> References: <1547708541-23730-1-git-send-email-kalyani.akula@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(376002)(136003)(39860400002)(346002)(396003)(2980300002)(189003)(199004)(44832011)(446003)(186003)(478600001)(106466001)(51416003)(76176011)(426003)(52956003)(107886003)(26005)(6266002)(63266004)(356004)(2201001)(217873002)(336012)(6666004)(4326008)(5660300001)(103686004)(305945005)(106002)(42186006)(8676002)(16586007)(90966002)(8936002)(486006)(50226002)(54906003)(110136005)(81156014)(81166006)(316002)(476003)(36756003)(126002)(2906002)(2616005)(11346002)(47776003)(50466002)(48376002)(36386004)(107986001);DIR:OUT;SFP:1101;SCL:1;SRVR:BL0PR02MB4451;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;LANG:en;PTR:unknown-60-83.xilinx.com;MX:1;A:1; X-Microsoft-Exchange-Diagnostics: 1;BL2NAM02FT020;1:4lV0YwY/1NjJJl84RZ1HxYcSGWZ/zkHrDqXVahoee6o7IF4a20ORYRpIMHwC7GE1m5ovMIPhAEjbsx13VieAb+af3iF+3oUUaD6IbtgCmcNrlvR/IWt2neLSxP8QLVYf MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 256f31fe-9cef-4a33-fc72-08d67c49c5fd X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4608076)(4709027)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060);SRVR:BL0PR02MB4451; X-Microsoft-Exchange-Diagnostics: 1;BL0PR02MB4451;3:28IQ1dQFZAITAlCymO3+LoDFO4sR4xLauUnwdZ5uVmkCDPZpNUjZhn+089CIUQ89jBIFwd99dDtRxIqnzDe7ei2JcafV/7jC38O9UyUaMrwxhLolxnDLWSbA+VqBCL3SE8QXxTtXaU6ZRXAD+oKspu16cpXuTlo7MDpqeP/twslCZ8KodeMiHBN4NW0L7TDPBFz+t7v4w+dYUwcbZjsi1HMujJqYxMdYFWCy3gQoS93dl9jvTG/xMUihtZlOYKhVkSyqxZVrxmJCxheiayPVskexrM4gnzCsE7PnSnSJnqJ3DtcSehCGlGLG6dBXOPWZUkMxgKvx8q3alOZMCj2h2w36myyc7xH0sI+NPQQ2+IuHtDv8LSrxqpgp3q8s4isr;25:gKtWu1J35ktVQcE36rXtBIgY3VLGSHBMMEQ54Uig6+96VuVmStIsAZIiWb7zZN9AkTfJunnPYvS+n/fJLkJu31aj+F9D7IvrColmeeH5OO1+5tz5kEqz+AN5sTcGO+GFQLfZZQf9qHea5S6Hy9ECBJkOuWY5MMVjS2P2SPRgnSuPHbmOpK9MOiaLTipYUhX9Ogbdybrve0rALGFTV0+joXXo4yGc7SOVDETMvMHQsXfm0Awqxu7DuCmDEh9cm/QjA/tvnkSj4RxQAANiZhSqCke5Ja7e5Yzv4dzBepPTA2l+fkwdfsrf+1taxCEdWqyy5oDBj8n5VL47qrZgPuNnDA== X-MS-TrafficTypeDiagnostic: BL0PR02MB4451: X-Microsoft-Exchange-Diagnostics: 1;BL0PR02MB4451;31:DgaznS6DuOsV27EPyPr8vmwhYqqwoul+RTKVXSXCodh/Yl9Nc/a6F5J9X4ntSFQmE+uz2c/GON5e41FAPL/sJsXOpJ61q5OdyOyngNimF9tcV8/be9923/TCGb/16vR6jX0wAAvuhl1GT0xTHoeFQ0Ts7NjmMnOJ00cfrHkkU24wweMrtsKHzUhKU0jBr3KaObwbNgTJzo5v+ivVuSubNwMLgijdRtVcEiO6tWtDIyg=;20:M2wgvHObCWyYfiRqCvJ11us2br3mx1J1R7HWJNFd5o7SBc4GWZoUb0eq5UpHx+JA96zfxtUBhmDLkStm8x5x8AU4VWdY5S9gijEtMZJBl0RPvziWk797CnAJEq2VjoaJAqaK6Vsd21cPC/DyFzHjMxQ574SePLE1yTvnkbTsPBL4UA+Sk0bm9StyCQ61llQWy3RtsM2Lh4RNRiuTr7M4/DVFDXXCJeANDMZCiArc3OCE1pae7HkvgwM3lNOtW6V5M/w+/kqyfzz8fDh+M/TPeDUu8+9/nMLu+AJNuUgsm0a2Yl4OkrD3NzTu/S1riF+jdW6yytEohxK2omS35LxTyyl1ZqDbEom4b9l053uC02Qsc5UE2kfEnGdob2HUvqlk2LD7LZFe3/0RN6oCJUwMarrbQ1NxtEkADZEuSxX3ZTtRN8kh4d3GecBIyJccUVEag2UJKmDAwnxIga5XZQ7TPhwQtmP3gumDegJ+91ek9mM28Dap8C/XeoLt9Bmatj68 X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Microsoft-Exchange-Diagnostics: 1;BL0PR02MB4451;4:gVX+/TXqvrn25NI3hHoDM8VGt/kw67S8ptOlTvKvi3pIZm8ciUXQvV9nkQTi45ZGm7gjYBj+w2Nvi2SCnrwLrDrffe+4lCgfs5xaWicAAEb4QwH4FM9ld75znTr9eENBgZR0zuj4BLkUtxco3wTTM/0b2tfWC1/KK1Hcp27Ywu7JwRv7hCReDbrNRB5F4zSbvn7X2Emnf1YULEnbV3gf8SLy7SPdQTY2n3H1l1/AONwx+mdziRzC8MnvcBTdVggX4Ryb4vnw8dGhQyk3fLV0uKOjoGtCnnKHGyRNRekkxDo= X-Forefront-PRVS: 0920602B08 X-Microsoft-Exchange-Diagnostics: 1;BL0PR02MB4451;23:LGZ7HraUHm5tsYMa28WETn8jJ2byZ7/Wi+rSHP/ghU8HXOTH+peuGy4m+yDXohL0R1OAz6DeZCjz9hZKc0XFMSgvlgKFBGekAcugl7lUkiQIU0uClLz6MpfM4RnOB9ehNLejMWQSwFKddSLaKBn5G+007Opng8yCVz+8yMN8ZRV6cUw0SAOgWXwmOdiEF8b9b3OZyYMrR/bOjOuQVM1vh/ZeFEEe1AwwA2m7JCuy8G6f9cNn/0L99oBd1EMldzWPNfBfCphCkEU8I8HVwepfTJd/ZiYSGTnX/4CxvFeaSa9egI+GskwG97rzvDP4nkXFt+b3i79rMqzrdZi6h4duJnN0bJqbCI5N5tYWqoaMxGxXAdRVDvxP9exvV0WGtgKnoYjh18fK01mZ6NzhRaEYMXewtFsOimpVmJDX1ljXSuVN55tS9rGxRn2PPEMuD2e82v+TpvRn+iJLD6bwLlYbzRS292i6346WbrFCFo/wxrt17qLRz7uSzurUaj/wg0WsSySP9hNqYnLrewwY1t6oN/Yk5GCFfkOgw8HG/UK+E5iooNxe2NsDRmVjUNqscsEJNOaPnpodxibsP81uO5ekFRV+6RIsBbeA7O2Hg8MQBCEsE5bUZfkEjt5v0NETsHLNhSmvOcltsIc5beG5VLsMMLKnja7UWdYj8dD/s8K+WTDhcbQNe8cSkCQC/9WOjln+n0aAcWo0jlTOnXfF3pvFeoCb7EauZmEwXQBjWJTgK8ajf8O7wLPwatB0AtAAncIlNpH2gq0P8GRA9+zyV+DMImf6RVZl2lR5M9DmAf6tpEVqKw6JWn8r5x8VzkbxPe+ulwQncDFx43/Eov+DCJjvm/PjkZ8yAb3L1MIhgs5AzYEuP3cc4jgzHZ+6UUKAANmc9nQitXEocxnnJbNqhELWZ6ZXnpeRaYGEAFaw9LpNNIcSrpdtaF7T/v/GBTciiHyGsH5RLM2BgYIYmJeFeNmB6h49OVjRA1WKaGqSaMuGIx5EwmwvUleuNuSNbbM3CWT4RDqIYD3S2V6JJpWmc2PeaIoOpunRhSy9GgJYUM3nq1zZTtGhh6qmTpRd33UjX6cOIdQW1QfJdZtaJ75r43taTWrpysucu8+s4aeZTHsoOWs7ZNuF1S2wyPsMPEKsadsXhIVDsN3yguvhn91oXCuN0azu6xcY3GM1kPYo7oiZhOGPo4CUWxBmRk+1v66o87Mo X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: ZNM+YKxFi7mnR/Ostm7AU+ToPzxGw4g5t0xNAmGRS2+b4JIMF0QVuiZNKCw9B9l7liWwrMp3zmKiCGflfuXCsmShJtOII9MWnpLsCsZv2WGaFdJdI8eunuEciEcGysIhaUxoLqvNNWp2qo+9VIkoBN7GjAkUev6AT/gi9q6ZUKXusQbyEnbb7XtwEk8YlfYaaJxVNja8cC+ppwUPH9M9XCLDHHPgFVi0Wqau2SwsWmGG2kb1cmUZa+1VQ0PID544CMJ39tLBJMCyGTctjfNpCh19HCMCwiN7bt/ReodZEFmSXOg85bvU7LEm8rZhIdqNqcDDB7UGfQ/NZOpSt3URA0/wgk6r97A2YXaZXfGeIftK09mZxmtBPv1mHjn2B2yry7qcFukB2bVipTVfuYole6mpYOo5HbOqtNL8zHnQIRg= X-Microsoft-Exchange-Diagnostics: 1;BL0PR02MB4451;6:7BKd55JmiO8cloOd1IeGfypXXehLcsc8FDWCQntqqqFnsFF2s38InwpDQ2HgjEUBrM8HVahWWzkn0xvi6NoXBhnBy3G+GjgyGatc4d7+0Y2p9MEUoQd1N9A28M9ocfeT2nVk3Hf7kmOEMeYiCy5BuBr+FBJhG0Gf0cfW9/2bHLXNYA05aVmPr9dw7wUemXyXMzb7yPmZw7GvTVbxJo4kq7Vf4/ixU+ZSqOT7rxz8V++7FuVrEvv1wjSZrC6UsrVmAvN9UXPWpKttPGX/LGd3i+6TQ5GKjjMSlChAI9mt8g4HUkS36yfUPOJuI6dHJI5/55qMp7SGyvRsILRP9gVZcetC+8yOKRqKA4BCDIasKAxXzwtiniip2xskCyMbXxCod9xBHlBMAYP7RsGFZfV6KUoKjB4LTPWIdtRuBvCeww1PVMkx69J8FrTncj/H6Oy9EBYPb3EKIXl2CxPn3KRNkA==;5:j/sLiVtmn+RBxmfH+timGuarD1fLXX4pOeTVcLx8fYSwS+s9kY5wdp5ez1C6ltrQ4TFgmsaere/EygrQXSVy3IvrenNSIA8GtgBU1pZVLtoDNq8Y/ItPygX6TYmwRGFCEnAYbObgouH1SdmuT0C7aFuBQSC/N2VRaAPVV/aSA7wrr/B9WhrC1PNZF463wmcdKw2//aoGLbEZRe61DZbNgw==;7:STY8LI92CiMpQcdhCUsEQfwBXO5MkUt/+Dqyd4reOB913+ErQyegUqr/uGN57rpmHVE4aA54j1gGyorkY7Bejv400Kzs3WO+INP148V/jamHfGtwPNvlLlw0QIwbP7xIxMMVoovgfc0Ch4WXUG9WSg== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2019 07:02:41.3998 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 256f31fe-9cef-4a33-fc72-08d67c49c5fd X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR02MB4451 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Add documentation to describe Xilinx ZynqMP AES driver bindings. Signed-off-by: Kalyani Akula --- Documentation/devicetree/bindings/crypto/xlnx,zynqmp-aes.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Documentation/devicetree/bindings/crypto/xlnx,zynqmp-aes.txt diff --git a/Documentation/devicetree/bindings/crypto/xlnx,zynqmp-aes.txt b/Documentation/devicetree/bindings/crypto/xlnx,zynqmp-aes.txt new file mode 100644 index 0000000..226bfb9 --- /dev/null +++ b/Documentation/devicetree/bindings/crypto/xlnx,zynqmp-aes.txt @@ -0,0 +1,12 @@ +Xilinx ZynqMP AES hw acceleration support + +The ZynqMP PS-AES hw accelerator is used to encrypt/decrypt +the given user data. + +Required properties: +- compatible: should contain "xlnx,zynqmp-aes" + +Example: + zynqmp_aes { + compatible = "xlnx,zynqmp-aes"; + }; From patchwork Thu Jan 17 07:02:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalyani Akula X-Patchwork-Id: 10767575 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A46D813A4 for ; Thu, 17 Jan 2019 07:03:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 940B82F075 for ; Thu, 17 Jan 2019 07:03:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 87E082F179; Thu, 17 Jan 2019 07:03:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2F7D82F075 for ; Thu, 17 Jan 2019 07:03:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729648AbfAQHCq (ORCPT ); Thu, 17 Jan 2019 02:02:46 -0500 Received: from mail-eopbgr790082.outbound.protection.outlook.com ([40.107.79.82]:27584 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729577AbfAQHCp (ORCPT ); Thu, 17 Jan 2019 02:02:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nJ1lNp9yN3MpyMNsNgJb2HTckE82kdkkFVqkfcZPb+w=; b=vYWEXhcNv7S6TA3Ke4rwLgfNR6z0795TsaWHhNJ3sNgQrK7REoJ3BPlr1/3X2ZwjqcZjOiaKae+YZkxgufcNSZbL1fzLaZDszixGdp5J8fFWzZXBPWt1cTFBgyqgU+Si+dgrlNNj77kKW2j2d7PYLsGGwZUYXgNzt2F0fdF3xmU= Received: from SN4PR0201CA0031.namprd02.prod.outlook.com (2603:10b6:803:2e::17) by BYAPR02MB4456.namprd02.prod.outlook.com (2603:10b6:a03:57::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.24; Thu, 17 Jan 2019 07:02:42 +0000 Received: from BL2NAM02FT036.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e46::203) by SN4PR0201CA0031.outlook.office365.com (2603:10b6:803:2e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.25 via Frontend Transport; Thu, 17 Jan 2019 07:02:41 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by BL2NAM02FT036.mail.protection.outlook.com (10.152.77.154) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1471.13 via Frontend Transport; Thu, 17 Jan 2019 07:02:41 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1gk1hJ-0005kF-0X; Wed, 16 Jan 2019 23:02:41 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1gk1hD-0007Rm-TY; Wed, 16 Jan 2019 23:02:35 -0800 Received: from xsj-pvapsmtp01 (mailman.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id x0H72PME022376; Wed, 16 Jan 2019 23:02:25 -0800 Received: from [172.23.155.90] (helo=xhdengvm155090.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1gk1h3-0007MN-5C; Wed, 16 Jan 2019 23:02:25 -0800 Received: by xhdengvm155090.xilinx.com (Postfix, from userid 23151) id 61D6D800D5; Thu, 17 Jan 2019 12:32:24 +0530 (IST) From: Kalyani Akula To: , , , CC: Kalyani Akula , Sarat Chand Savitala , Kalyani Akula Subject: [RFC PATCH 2/5] ARM64: zynqmp: Add Xilinix AES node. Date: Thu, 17 Jan 2019 12:32:18 +0530 Message-ID: <1547708541-23730-3-git-send-email-kalyani.akula@xilinx.com> X-Mailer: git-send-email 1.9.5 In-Reply-To: <1547708541-23730-1-git-send-email-kalyani.akula@xilinx.com> References: <1547708541-23730-1-git-send-email-kalyani.akula@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(396003)(39860400002)(136003)(376002)(346002)(2980300002)(199004)(189003)(4326008)(107886003)(106002)(8676002)(486006)(44832011)(16586007)(90966002)(42186006)(6266002)(110136005)(63266004)(186003)(54906003)(2906002)(26005)(47776003)(426003)(217873002)(305945005)(50226002)(336012)(11346002)(103686004)(51416003)(446003)(76176011)(81166006)(476003)(126002)(81156014)(2616005)(106466001)(8936002)(316002)(48376002)(356004)(6666004)(2201001)(478600001)(52956003)(50466002)(4744005)(5660300001)(36386004)(36756003)(107986001);DIR:OUT;SFP:1101;SCL:1;SRVR:BYAPR02MB4456;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;LANG:en;PTR:unknown-60-83.xilinx.com;A:1;MX:1; X-Microsoft-Exchange-Diagnostics: 1;BL2NAM02FT036;1:zaZ41sp1g/NzQgheoEIWxs/n/lOwG8gBUoSusQEh79gSLPyKOlPX4HX8NQbq3t2eW/+IHGTcZHOK2HDz8YZXi9Ma2TjC4ZN3JcWeYfKn97OMQSUlakf6VaIcyLW/E2NR MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 09518b58-3759-48d2-d687-08d67c49c61c X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4608076)(4709027)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060);SRVR:BYAPR02MB4456; X-Microsoft-Exchange-Diagnostics: 1;BYAPR02MB4456;3:1r8LZjx5qJvf0jJMInjHXNOc2vCbdP3k47uhYkhXsDwLQ7dZ+cLfDwKORRAKUR5+b4uaqp0s5D5ex2KeF3W4C6Sy5YcEgKV/UE7ckvcJp6Wu83aIrJFW+JXu9vYVJ0uYVAYsNdmdN0NXbovl0uI7I64tENcdWXZAnU6YRvcIGMFds4Ne5du/s5WwyiZws2MWB6ZlgeOjLSkGCKP3/QOAD8c76KEEwptsUpzgF4SIQydt9sDboaiEwtIHWnbAmOHbpelYRMbSOvFKTFoJXMa8pXHJpXgiOLfedxr1vPFaHPYMrZkkPbTd/IoNZ82J11p7RNQoDBNX9G8cZERCMdabM0Lsl729Z38hCdStsXG7nfWiiB3vK5N2eVgzd3QOWOoN;25:rrBr/+cPQG+Dfos0nQby1s30Wqaje2diyeuLMnpGgRVotrg0QgT9nZpdcnyYIxmEBBg6YmUnEIRlbo3dbK9sh9+42AQMTM6SH7SMX1lbHljhmryZUEUOAmhdIvrwpSoedINONagRLUnhOo+zzPsotlObpbLY0QqKsmUgR4S81rOFlAkOJYBUv865svhazhBt4sP0h9OOExos/dI8IMFCa4XvcJoG2bnaMs48I3WnZmpoYkPk40jhjuccKHZDoFibkTPV4KpEuVQhLIo5XFqMkAaILN+/8oHpH3YSL4TYLFAYoBU4Cg5IcJOd5ug3afRMEkF5eFHjNq6wOGD3YDpydQ== X-MS-TrafficTypeDiagnostic: BYAPR02MB4456: X-Microsoft-Exchange-Diagnostics: 1;BYAPR02MB4456;31:6bUlqMfQTjFja/FTahEa+95zMMLhy5KvqdAo3VUUcAd+CcZAWWbbGSx//B5rachK7Smo/kxZc2Y1ap0lW9jpwd1w8FDlIMwn+MBL1blFbXavvYck6btqsmH/Pw6jF5HxJWmCjWoU4QYvMGoBnwg8KY5qwye1/StN5OIlDDtBJ2+T9SMBQlr7Sjz/EAKJ6NBkP1PSZEFljp04svd6mLhbd8BfcrQ+66wq4WI+RHxbhxc=;20:aUsjP5OoatU6YtOaq1Tl+ZM9XdkJ3s6QlQYCMdnng10Ldpl5B747pTHM/dGPFJDWtHNtodYgSCnXxB7YFYWArpGk/0VL78sE/JOya7ypJaxJ7howYoG25V/RUO/cVwWPoi3IRY6uhxESmbncNhW5+XCPs6Hv6RvM44t032FCHWyE2W7jJ/7ocO0G2qdQjdj9ZFyMGIA6YEmfdA5XNLWQ6w69gn1DwqlUm0e2w0cNTA0wasq/fDw2xqHi3dTsQ8Q/8F+oDsL6pNpfdbRW0Hw7p7YL7cpVNejCuIsCaWfZs6kBRQkDZThyIie9GqAQnNRgzREasoN95l/t06jcZrchCgnfAR5Fhti31TpeCWz5mVMU9O0friZxTWVS8x5AqaS1E5wp41GyOZhHAcSehgafIVaySAqx9IQWf1RMJ4Ncd2+ApW6MynkmfOlH/osW17KomGZo4J8yYZIkAa2qMFjx4AY8bc5lUwdY2JDARO8ESWb4KY0NAeKlkZPviJbASj1W X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Microsoft-Exchange-Diagnostics: 1;BYAPR02MB4456;4:d21CHhKppJjeB3yvoRxTH575ihKkZV6mhg4TqQTnYZcsVdL6m8ZyHe3Bs7Ul9K48SJNLPtxSG2Fpnwq6QRvigNJJWXwL3n5pXerMxc+p6kaFohgSB73d5t14AcWQDCDWzqgBBEnN7D8f1rNcFe65oyOIpkzqfZDTbEMf9nlPGWv3VO6nPhNaj09y+gaqPEQtumhbfrTIJSgP+eN6rYXtyWuMNtKScCnPWEi4JqxJ5MqVzvfjuvo/1q6Mvjb4tXLPQrwI16Zb6WUrVfeSBD10R7aiWttZM2fEPJ5ogXqfL13Gwx08ucPBAxlQEVtybN5A X-Forefront-PRVS: 0920602B08 X-Microsoft-Exchange-Diagnostics: 1;BYAPR02MB4456;23:UV+rrznKQDBFzJ7tOdqyV++71GPWmsOEdSEcLwoN1R6YnyQxLURY9wlW5FpzEtGZZFwsQ3ViHgMAw+jwPp8F31J2GiPNiFWC0z3LCaWI+Fja5/qfDYO3jo98LhLA9tTWm2f29M2uzHungeP/cR2W2mItRSvgTGBplEZvQWSF4C+zNdmbinOIFoqUGQcakRUV4jrYyM1vMZ5s+2obT5HwUOsN0zOJSu3iX61NnG3kIk96HNdo0PgQNgntGBeEdVg2WeL87JNlHYW9nT4aThCKl3INvnmk1cb43g9pLeZPSPVSrgJOIT5VVTvjAniSzWLQVO0bfLlsft5cGevj5eejqffg7AP54uX8Z8E6dDoxZYKdFIAHHcB7XTIx/mG13IRO2+dduONIIQB17ArzIAfm/1f5EOUfzdzXhhqt4Ag8qIshs+aNim7P+u0J6VNtAaR+80N5WbopK2Kvp0V0/QM8YkOSC9slTk1AJ+6zjBBWeS0vW+G2bLUl1kZqRFtJME1i0WN2NWfa0B0Sns6OLKkyxM3oMcAoE9Q9xgDF52QRyKbNBskw59H4NKPsqX7QQY+wQ1Em0QGbFSSSqvcOqtpwnlCROGC55a8VGpFD5TNjRcQJtsfkzISETPtPglXVzsMlgiZwv4A1Ejy010j2zMdig6REK3OIH06+FlrDZvS19Oc/q6Z8R/2lew4B73uB8I7rHJHbJriafuYhWBOdVtMT2TXxVKX8FLHePGTs2qGAdg696aX+Mw3M3COk5OEiotaSnngO5nOZu/ABMcBFPoQNktKfTahnL1VvcWRPpkon7vPSZF4Ore6BcBOftcHZeRYXu7pGbvMfjZRDGVSw+SOAk4JsY5FTeFkUtG8XkS8EhZM4EeTOgSILrJ5FVDSZRnCft+0jaKF622hDyMDqKYDVAlA63Kpq6ykEXpVf0+Vrcb74mvzdqhTjPkUf3NoXcFQQdXD/TDBWR+m5PSs4eI8x715IQ3tUqfOI+NvLRmTpHP6nZVsrjv7vz44/K9SustuWYH4FfYgo3mIJiwr9jLH3ssVPpnBDIdwiSimRnABFzuO+CmStutGik8T6cJL07uhrKV1OmpWN7ykP+YWXV5KRGfSTB8IGe6iAwoHkYpeCWHtPIsU5vLVS7XGbwLxna6T2bMf6hk3pwbOgqpBWrKSQ5u4ffAoSQ1kgpw53FQmbnURiIG405GLTxVfHB1WE5pfI X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: 5clRLH/76Z9StLA/VFqUoZrhfVFlK/2QD4z8zUoLqtvbS7r8fCC+Wi9hchIbjcvA6GbDgXyzSCk4SnSGkg0Pw8vgtb6HgAovWd/E8qPmDXQdpoBJis1sleqi2FBi4uGBGojCjUYJfwkfk2w4KfnouSIFjeDgSMSoJbThKLlx+xKXbL2gkNJKtkitqzs4alSlN4uM9g7Yj6rTgp4Ar8F8Lso4KMhso07e/YFGT6CbfPxwUgOeWgZe6EqptQyvQL4u36wCsaSWlYstMefl6lIrsXfctCwUUiEvUiR3HHdggRAfo6efYiJV3aKnPoCFTmxuIEbw0GS8jlLHgRjt0HYNEBElqy1nj8T5MU7Ry3kS/VdWHSRmtnf50yX1kj0Xd30PhjpQI+TmxePoT7XCv1gSVZICJnDBVjCNuxg4qo6/4nQ= X-Microsoft-Exchange-Diagnostics: 1;BYAPR02MB4456;6:uDU/bkg7FkmXekX9BaghUL6l0I2BYryB4CBPWFDRpeXEr+eOrAxsgMvTjw2bM4f5J+YPDB40jQwn93XYTymaCd3ZTWx6KR/VsNCJdSo3QVyhWK6zYE6HH8XHwFu9pDKZbpw6kIsvn9Bs0yrFvdWK3ZkamYlXlpeLEW0olOvASaGspQM9Izu9l5wPhTNWbSdcRlUr9WUdGgJaMk2WCumiyn5OWtFI53EwMmkbPZlnhILDyhyX4zADI5dY7UZt6svyT08onKrQI+WoCOuRINsxkBxDGkKQk7hOwrLyWhsBXdSALJf0s/HatLhFk9bEhjEUVq060N/kwkKet/FeTU6pcB6BInnClSniIapHv+2XnByWeR/8gDn0yX8f3JYz8C6k91fRA7ONnBMPcUUHWSwNH659pHOf/ge1jL84dS2G5xZP2mpYn+lZfLns1Nwulb/9P4io/w5dE5G5+KZF/S1WFw==;5:nD2Eg4PapL9VjkDfGrA9kMFuwmzLJQs4VV6zg/FrfOKd2gUf/H1E93psYexZ2tq75P6KqPzZHa4BnZPA/DaEvpXsEDppfrs9cuoS9fUIus+OX3tvKDmaM7wQCIuTWlto55MnNK+xidIr/4hRqfoUqoTn/HKfs8SnLVdoi683K3XuYr/NF7PEQtpgpyz2ZaoxKx55ZBZ5UkzJ8fuK9YVV1Q==;7:RjwwlMxRxs3Cw5l0Oki7QLdSy+MQa4ZrDyNdIzPl3Tqt2NeJ+aKejZZ3k3Av1vWptoPYWgJmJ77+brTZON3e58MfFIKzV7g2BVVFv2s1Nx47vxUYqOY3Kg9JF8PYFrpvisDV2JWdjIuxuqSSSy+jYQ== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2019 07:02:41.5987 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 09518b58-3759-48d2-d687-08d67c49c61c X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR02MB4456 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds a AES DT node for Xilinx ZynqMP SoC. Signed-off-by: Kalyani Akula --- arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi index fa4fd77..a3e8332 100644 --- a/arch/arm64/boot/dts/xilinx/zynqmp.dtsi +++ b/arch/arm64/boot/dts/xilinx/zynqmp.dtsi @@ -124,6 +124,10 @@ <1 10 0xf08>; }; + xlnx_aes: zynqmp_aes { + compatible = "xlnx,zynqmp-aes"; + }; + amba_apu: amba-apu@0 { compatible = "simple-bus"; #address-cells = <2>; From patchwork Thu Jan 17 07:02:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalyani Akula X-Patchwork-Id: 10767571 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E01296C5 for ; Thu, 17 Jan 2019 07:03:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CE5082F075 for ; Thu, 17 Jan 2019 07:03:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C2AFB2F179; Thu, 17 Jan 2019 07:03:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 480812F075 for ; Thu, 17 Jan 2019 07:03:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727882AbfAQHDE (ORCPT ); Thu, 17 Jan 2019 02:03:04 -0500 Received: from mail-eopbgr810050.outbound.protection.outlook.com ([40.107.81.50]:24298 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729689AbfAQHCr (ORCPT ); Thu, 17 Jan 2019 02:02:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rPGlAuSkCLmXFrix51WqbphvboZUkyg6fYxRuDySG6Y=; b=oD31oScOCCJUOw4JcRKC9k/gTUcBVCNPKXyf5viTPoOr4kWLntYwxJsyLi8IzLze7dZz/9TsgcuOf/BqbaButUlLYY6r+ElX119ZUX0mNoIjLJszR4R/PieXnxGc/99OHtUg15fRh+8o0ZKxSEAyRiFL4/yXqkGtTJKwiwHK7G4= Received: from BN6PR02CA0036.namprd02.prod.outlook.com (2603:10b6:404:5f::22) by DM6PR02MB4329.namprd02.prod.outlook.com (2603:10b6:5:2a::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.25; Thu, 17 Jan 2019 07:02:43 +0000 Received: from CY1NAM02FT041.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::200) by BN6PR02CA0036.outlook.office365.com (2603:10b6:404:5f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1537.26 via Frontend Transport; Thu, 17 Jan 2019 07:02:42 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; Received: from xsj-pvapsmtpgw02 (149.199.60.100) by CY1NAM02FT041.mail.protection.outlook.com (10.152.74.156) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1471.13 via Frontend Transport; Thu, 17 Jan 2019 07:02:42 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:42170 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1gk1hJ-0006rl-3r; Wed, 16 Jan 2019 23:02:41 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1gk1hE-0007Rm-0N; Wed, 16 Jan 2019 23:02:36 -0800 Received: from xsj-pvapsmtp01 (xsj-smtp1.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id x0H72Pli022378; Wed, 16 Jan 2019 23:02:25 -0800 Received: from [172.23.155.90] (helo=xhdengvm155090.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1gk1h3-0007MO-5j; Wed, 16 Jan 2019 23:02:25 -0800 Received: by xhdengvm155090.xilinx.com (Postfix, from userid 23151) id 64DBC800EC; Thu, 17 Jan 2019 12:32:24 +0530 (IST) From: Kalyani Akula To: , , , CC: Kalyani Akula , Sarat Chand Savitala , Kalyani Akula Subject: [RFC PATCH 3/5] firmware: xilinx: Add ZynqMP aes API for AES functionality Date: Thu, 17 Jan 2019 12:32:19 +0530 Message-ID: <1547708541-23730-4-git-send-email-kalyani.akula@xilinx.com> X-Mailer: git-send-email 1.9.5 In-Reply-To: <1547708541-23730-1-git-send-email-kalyani.akula@xilinx.com> References: <1547708541-23730-1-git-send-email-kalyani.akula@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(346002)(396003)(39860400002)(136003)(376002)(2980300002)(199004)(189003)(106002)(8936002)(44832011)(103686004)(107886003)(54906003)(90966002)(110136005)(50226002)(50466002)(48376002)(305945005)(2616005)(51416003)(76176011)(63266004)(446003)(81156014)(8676002)(126002)(106466001)(426003)(81166006)(4326008)(486006)(476003)(36386004)(11346002)(217873002)(2906002)(356004)(6666004)(36756003)(5660300001)(336012)(478600001)(14444005)(52956003)(316002)(16586007)(42186006)(26005)(6266002)(47776003)(2201001)(186003)(107986001)(5001870100001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR02MB4329;H:xsj-pvapsmtpgw02;FPR:;SPF:Pass;LANG:en;PTR:unknown-60-100.xilinx.com,xapps1.xilinx.com;A:1;MX:1; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02FT041;1:UfXZelcT+c5mFqBKSENm6I0efSHRaVPqbjizxh9+WflEz493QYwzCBloFWGKC1TvDoaYnSqak78U+5Hlvx6hKoICfyRM3t2dEcyfiCkg/H147r/XcDjil4X5eFKocRcC MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fadfeb9f-ad61-49cd-1802-08d67c49c694 X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060);SRVR:DM6PR02MB4329; X-Microsoft-Exchange-Diagnostics: 1;DM6PR02MB4329;3:1RtsIToIqcuLvW/VKHO0rn1iYkSd1Rih1B/VwFPFoSiqyve5lXWVgyO/z4/Zj9Mxt8IxFYhnWrMmRgei84UKYsFQ0O5Sr+MryICl9AU/BZI0aOcaT+twkwY0KHlJYXWieHxMYvCvrFhiKPJP9FtIhkZ0T5H19iba3XJBypnjywh6mXJsnRYc8WrMkY7iXATA+RsNY3KxqsVAjYksijUJdzV6AqAJEG4Pb8vQgCn1TjU4MCv3tXNGJoyoj25a145v6fDL98gcACHePrsLXLz5vttk6eTTRDvRG3PYiqzxx25XXcZZnS+nbMCnzPh6WPFKrfkgl4Qra0aF8/DxTMaQsA8t1FnPgPYTAghEDeoEB7e+eLE/boasLmY1k+1oA3ia;25:5n7OIp3V6iXaYZFhc+zlYy6qJE8C2rtb3+01vrwUvJl0mCKXhV7bTIDZVeBAp6YwVxGV+lSBL1e0wjW9mVnhFyLWanwJ3fengKVIDd/B7iJq3dxjoz+vWelXr3UloAp4XC6DPzbeZN3Msp38jXsE3XntpRu3nF4DmXnJvfIM3kIxfUq3ca3MlOsjT4CFyae64xfXtQQORWdRZLsmfAbtE2c9Db4IXqVCEUqD/7wdX4lMt+cMcvA/eQffwZSxaKMxI/LMk5OK1fsbLb2tmQ889u2s9uyC/0EIswXm5osakMExVY7Q333qOHt7OZKFOKRvT40HBqAaC5c9/4M9JCwi6w== X-MS-TrafficTypeDiagnostic: DM6PR02MB4329: X-Microsoft-Exchange-Diagnostics: 1;DM6PR02MB4329;31:1LHn9YLyZQZyrbWKYqTNJKRT0urR0oolNrieSIdgkBbswihMlcVLOh90nap7qplgFGmVevhjyku/094WvRDUioGzpoOJzLIvjtSYmKpLUs6GGTk1PppD306JL+axg606GkubSuHr73k5CRpNMmel02suOQlWUUMc71BK7ZsXlEBeSHmfciW/BjCsZ8zXu7VuOwE6xOuh+j9xwZzkTTu2z5JSxM2tfKTK2RSB4yHPvdY=;20:9DVTX4IC7pMn2QL7lWcHWHi1Dcv09CkoavB3ByXBqVKWleEcYwQ4Tlnry8ydaMEuLgOHEAgwL1Uqu7Euc4XrbgNznG6/Sdo8XeOl7sbEUwqYNxXfjsPShMe/Fx+41Ac0Ez/X19d3SK9GNZqjhKUWTPvS6Ziq/QlDYY4C2bh8XINKOLCD27Fk5paoEBIL9nVfI7caYCTphAhXZbFnJprrIUApfTRkIW5Wb+1d9YkZYz8AL5eHu+El+1LvpYV43PyCr/DK2OPTWilTLMQAKuB2xhlz+Vayd21kRttgZruj4ZJ47BR6B5vfHH0xlTozfsoeiA+6ZTGwXzFiv73+jw0rlUfv58BJ5sprLKiW5NSeQLF8g8pP91ZyDAuwst6YMnyAMReMi+N860LPwtCZopPgC7ZdV9U1RbPifOtfu7b7iVPhBxtSfJAK5tp+j8TasyEBEad1iMLNFSWegSiGRzDGkQdqM7fyOsXqMdq0Quj6RMKZ9bCnNb/ncCvOb06b+JMj X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Microsoft-Exchange-Diagnostics: 1;DM6PR02MB4329;4:0UPX2aD7eqLsDPaYqdm+NWG7hWjCdSBNnXc2ltlrGG/WSUzHw6bHr5lp4Fpb30hF9UXZqGAT4ZV2uQAh/bgqMmEEfvBRQnku3KBVQyK72iZZCGZlFlr5yITGAeBZdSyTnhSuz8vG7dqkuqkkUkzwAwhpXmzSczFTXGAk1NL0fnYzME71sr/RODwxIolisZjusYzweFFGktS/jK06jCcy6fl3F0boM/ugoEMuS+t9CpdE4i82R/csfE7uabrazN+CqqjV552YZ55Ri1gN+BaCifYC2RlaMW972h7syFrPhBlklszhF0Qcyg7O1eIPCyM+ X-Forefront-PRVS: 0920602B08 X-Microsoft-Exchange-Diagnostics: 1;DM6PR02MB4329;23:USoYIlxwICE3//6FOJHYW2vpK1v0xTi6BPFL4QyBY7QrFAo1sbGGq0+LaL7VMwb9d52NBdbtmc3IVJee5OPHmT1/M9bIcpdees8/QVg/BXdlHdgsSK11TOUj4PkITAOhAvJ5ETOIJQq66Wom+JzpLePA3asXDpOWcbMuEGBd0qA17EzsHDnt+x9LDiE6zdz8S5Pu1ik8aE4ny4tqAmYYdyYE+1AVeCSfUIrwq1YglMovaTps0JtETLcwN/+7DciM6duHRAXpXl2KIkpo9KeJW/8VZxL7IHTfz/KDMw5RA7MVBFlsCVCWQfi6+RVNthHSrZU8+xQTnCf1UmrSwIh/f4L7LvwOIDKkXxpnmtxsbm1XiSvat8VEUi+msjPGuUtHNRzl+iUHTm4U7z49/YSgeVxyko4HCUsEZkwcSX8G69bNlVSTeKUABb8t+TiQ4aYE/DMQ/j9pw6gNvtb3btFUoHnRuGUeID1R8wsS1dC/AWmT/kV03DfabCAGTg0NffqdrdOGuPt8rgtrKQpx99gQBFtfvA7dVFALL77SIz5n2df3Y3eemVU3FXd+x6+Zbmg8UE71w+WWSb3a4slYLZow6OCuOprVpFQOe6waqzlHOvV2bXseJNOyap16uVJp1C0LBP+TecTwk0Em5vuprxSKI7b2BpqJyZXdrQtTMeBS2HLR9jdS1Xl5IudeYOFYZ5YoJI09qikK1SCqZLo/i9+i9CU4bjVGwml74Zfp1MXppik6SeDdI5qaM79Bkfs3sbHiaRl4qt0MVv2uYdl7I2u8eAqwsETFW2cx0KqSM46PtT/kqwJ8SNkwZjz8c8zcKBZnNydqIKHYoO8KGYbNy2td7Lqmo7MHMzHly+o7tEm3PcFAKENIl/VtjCu9bqQhSF5gT/i6X8PzCqyNCI0GcUpFJ9IL5STlMftgEDOos2mlggOn49TBmRAWVGoYEolCCUUWmNr5igIsRqzKvOacYaAUDRBrMfYuIBlMGorCeevChtaomH7qBw+OOXHu6MUPqKEk8usfBqC9II5MGTaiBK0CMwOpRoC+sgBHeqmllN0GbXMeuftvj2jgpUzzbRmLPfk4Ifua8Rv9KbYHuxEB/cdbRs5L+4P/CrQxPcKPR2U0KwvMUeqj4fVzBGbG2ZMUpE0NEDGBiZ0Apfvo/gsC6RIdG32PDRorUjXHaXn1hmsGSmuW6H/7FUWEWGXzMyM355eMCr39tPXO6iDMHY/oCKpwtBguHFX2P5w4BowsaTVD8H0= X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: 82SdCLd4APNgU1JYwIqF2nn2jiSKZ1TAAfLh0Km+F+IoTRFsoHZMY6xVPrEg+6wG1El32TVO4ELzCbJPVfGDBGaK2sWDXrJLsVZVt22utNqugy3iVS/X77FOdKp2bSgM1yR2VBvx+QcnB9wZzv5eXkjVCUlbcvUTV5V/giYEpzXEypG/WG/WAV4oAM+Y1Rv5cgyyuM6Hz3mzRuLBbGTtEHMXOypsScfV0k92sUmt1bLMkmpPLkxNMEpL4EpZucTkLD+OwFlJOSrUg8jBuOMNHxQD2TUmOfIhhXwqe1KYhSO0lcyMh/TEW5lTLmB4M8VoYzzJPX9t7WxR53LwxTH9+XWmNleDT2b0SctRTbeYDsEoPUQAbYMkJNfDno3I/hNpFEd7Z/mjph/7ml47BXtCoLHNZn79a+qK+4QZ9JfeMHs= X-Microsoft-Exchange-Diagnostics: 1;DM6PR02MB4329;6:uOBLlCk9cFikqn7SJPRcEfs6s1rPv6VTDwlqeAa56yVhVHZGhGxGwnJxU8aveZIu6u7S9KWzvQmS/dMFlS8u/3gL+Z7/GOwhwbvgiquZvpXmE9XZVr6DEJ7UcCNlaWRAHn9W2gFIZemccq3G8H3ik2ymscg0H6VRrRUTlY3N8b6hbwW5uReUlAuksxx5uKd8grArTRQQafezFU+kBbDPS0yRb6Su1Ds5pQeQFpwjvu4B/sDXeOStxAZZbeH/7D5Jy17X4byl2SKt6f82VTiobUXbLxgAn4YceTdzOEMvcgeqRBsJmZesJDATtvlGnqBlOCbGTj86ySEB6xqK14nRVjkwGxq4ISIB/0wuMNpxyX3rSLMibwUN2sDPHFm1OJEEYCwPqMPG+QIBg2ERELh8wjWcOo5QO/LHKdkQDIDO34TiczWyLiLpW5TYkmxWJ0lJb5g283vHveDmWwFecmfD8Q==;5:9lR9bX976eMBPNQkFeWo2C1qi5uZTv9BrX7JUufwTz3r1RWFMpjil45VZKCZ814+IXWO3YyHo5OhYslc9f97bZW9zUfCr6s0PzY7sgnC0yRPfQNt3wMUSz0TK1JZkCUi+SzrhfqFEWKKRjXCh6AiAs0ufG4zAKF13CYalZfMKC+fQULvEj4xOKUlOMTl2ILoKAmoelMxlH+ZCqJ7BMZtdQ==;7:5+HUc2/fqiWmcF3CIdGC1iLm/1GWhqtNVTOkvctXX1xtNge7bwOPe+jBOT3YJsZnfBsS15+ijV7IfABhRulhcaAuc0E/oYc9w3J78TJ/v8fDGeb8+lxlHbdTLe7QxWT1d7mdihTAalkrQaqSlr3Oig== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2019 07:02:42.3054 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fadfeb9f-ad61-49cd-1802-08d67c49c694 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.100];Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR02MB4329 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Add ZynqMP firmware AES API to perform encryption/decryption of given data. Signed-off-by: Kalyani Akula --- drivers/firmware/xilinx/zynqmp.c | 24 ++++++++++++++++++++++++ include/linux/firmware/xlnx-zynqmp.h | 2 ++ 2 files changed, 26 insertions(+) diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c index 9a1c72a..332f98c1 100644 --- a/drivers/firmware/xilinx/zynqmp.c +++ b/drivers/firmware/xilinx/zynqmp.c @@ -469,6 +469,29 @@ static int zynqmp_pm_ioctl(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2, arg1, arg2, out); } +/** + * zynqmp_pm_aes - Access AES hardware to encrypt/decrypt the data using + * AES-GCM core. + * @address: Address of the AesParams structure. + * @out: Returned output value + * + * Return: Returns status, either success or error code. + */ +static int zynqmp_pm_aes_engine(const u64 address, u32 *out) +{ + u32 ret_payload[PAYLOAD_ARG_CNT]; + int ret; + + if (!out) + return -EINVAL; + + ret = zynqmp_pm_invoke_fn(PM_SECURE_AES, upper_32_bits(address), + lower_32_bits(address), + 0, 0, ret_payload); + *out = ret_payload[1]; + return ret; +} + static const struct zynqmp_eemi_ops eemi_ops = { .get_api_version = zynqmp_pm_get_api_version, .query_data = zynqmp_pm_query_data, @@ -482,6 +505,7 @@ static int zynqmp_pm_ioctl(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2, .clock_setparent = zynqmp_pm_clock_setparent, .clock_getparent = zynqmp_pm_clock_getparent, .ioctl = zynqmp_pm_ioctl, + .aes = zynqmp_pm_aes_engine, }; /** diff --git a/include/linux/firmware/xlnx-zynqmp.h b/include/linux/firmware/xlnx-zynqmp.h index 3c3c28e..815fa30 100644 --- a/include/linux/firmware/xlnx-zynqmp.h +++ b/include/linux/firmware/xlnx-zynqmp.h @@ -45,6 +45,7 @@ enum pm_api_id { PM_CLOCK_GETRATE, PM_CLOCK_SETPARENT, PM_CLOCK_GETPARENT, + PM_SECURE_AES = 47, }; /* PMU-FW return status codes */ @@ -102,6 +103,7 @@ struct zynqmp_eemi_ops { int (*clock_setparent)(u32 clock_id, u32 parent_id); int (*clock_getparent)(u32 clock_id, u32 *parent_id); int (*ioctl)(u32 node_id, u32 ioctl_id, u32 arg1, u32 arg2, u32 *out); + int (*aes)(const u64 address, u32 *out); }; #if IS_REACHABLE(CONFIG_ARCH_ZYNQMP) From patchwork Thu Jan 17 07:02:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalyani Akula X-Patchwork-Id: 10767567 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2ED4313A4 for ; Thu, 17 Jan 2019 07:03:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1BCFB2F16C for ; Thu, 17 Jan 2019 07:03:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0C5392F1CB; Thu, 17 Jan 2019 07:03:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4459F2F16C for ; Thu, 17 Jan 2019 07:03:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726774AbfAQHC4 (ORCPT ); Thu, 17 Jan 2019 02:02:56 -0500 Received: from mail-eopbgr700084.outbound.protection.outlook.com ([40.107.70.84]:23296 "EHLO NAM04-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729608AbfAQHCs (ORCPT ); Thu, 17 Jan 2019 02:02:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Aev3OpyfSUsm7cLtAhvtGwjx5J8yuQwizR0wmLKwRVo=; b=ggdzGy0MWkXOjEWcJnGdevLMxWaUlW9mQyD0GQp2wKHJCr3s7TquLII69+BLEo03SZrtS7Otfp7x/f8b4FFQNIBaNksCdglRwFdO4sB/wX6JkCA5hWOu3xZpLLBlH96xbVYePJ00ELY1jWP6EZC5E/L8f6LGU8U0aKvFKwUhpzI= Received: from SN6PR02CA0032.namprd02.prod.outlook.com (2603:10b6:805:a2::45) by SN6PR02MB4336.namprd02.prod.outlook.com (2603:10b6:805:a4::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.18; Thu, 17 Jan 2019 07:02:43 +0000 Received: from CY1NAM02FT007.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::203) by SN6PR02CA0032.outlook.office365.com (2603:10b6:805:a2::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1537.26 via Frontend Transport; Thu, 17 Jan 2019 07:02:42 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by CY1NAM02FT007.mail.protection.outlook.com (10.152.75.5) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1471.13 via Frontend Transport; Thu, 17 Jan 2019 07:02:41 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1gk1hI-0005kB-KL; Wed, 16 Jan 2019 23:02:40 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1gk1hD-0007Rm-Fd; Wed, 16 Jan 2019 23:02:35 -0800 Received: from xsj-pvapsmtp01 (xsj-mail.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id x0H72PFc022382; Wed, 16 Jan 2019 23:02:25 -0800 Received: from [172.23.155.90] (helo=xhdengvm155090.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1gk1h3-0007MP-6J; Wed, 16 Jan 2019 23:02:25 -0800 Received: by xhdengvm155090.xilinx.com (Postfix, from userid 23151) id 67E74800ED; Thu, 17 Jan 2019 12:32:24 +0530 (IST) From: Kalyani Akula To: , , , CC: Kalyani Akula , Sarat Chand Savitala , Kalyani Akula Subject: [RFC PATCH 4/5] crypto: Adds user space interface for ALG_SET_KEY_TYPE Date: Thu, 17 Jan 2019 12:32:20 +0530 Message-ID: <1547708541-23730-5-git-send-email-kalyani.akula@xilinx.com> X-Mailer: git-send-email 1.9.5 In-Reply-To: <1547708541-23730-1-git-send-email-kalyani.akula@xilinx.com> References: <1547708541-23730-1-git-send-email-kalyani.akula@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(39860400002)(396003)(136003)(346002)(376002)(2980300002)(199004)(189003)(2906002)(16586007)(356004)(6666004)(4326008)(44832011)(186003)(110136005)(54906003)(26005)(36386004)(106002)(426003)(63266004)(316002)(42186006)(305945005)(106466001)(478600001)(336012)(90966002)(14444005)(81166006)(81156014)(486006)(51416003)(8936002)(8676002)(107886003)(5660300001)(47776003)(50226002)(6266002)(76176011)(217873002)(11346002)(2201001)(48376002)(50466002)(36756003)(446003)(103686004)(52956003)(126002)(2616005)(476003)(107986001);DIR:OUT;SFP:1101;SCL:1;SRVR:SN6PR02MB4336;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;LANG:en;PTR:unknown-60-83.xilinx.com;A:1;MX:1; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02FT007;1:IJbnXJO0OPqV8U1Xo6dlBW7bJrPiGUb42NFbWcywt1aTCx0vSQB4Fsx5xliSYIxxhBEJQ2NRCfWmFyB0/nCd08xV79vWb3etyYZ38n13WxygibwcCtRuK+NYV9Et/Pw9 MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6f1e570f-fa92-4daa-4d16-08d67c49c5ec X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060);SRVR:SN6PR02MB4336; X-Microsoft-Exchange-Diagnostics: 1;SN6PR02MB4336;3:K14C/5P94gP5rtvPWPQCoADF0TusqizjhccdlVg1/7f1Ux5gvvL1OzUFwVdBJ7Anw0MbGFgx54vH3q77v+epFZHjkA0xuHDpPqmSh1cipWDh+EHHPPB3f71B1jZPZG1Y1k/U8aHo+82tnH3Vzg370Nvnx19i2J/r06UXh5YzX8fDGl3lCLSEjFU8pyLebpdNlBcutKMUAnQyX0//psqNMJWwjolatKyEtfVDDa0XwEITfR+Z2mu00hiUcYfKLfaChLVsBFpbFiR8Ob8swrmUxyT6YAqMcDX8OHPMIUPMWCDSYlsU/tVsII0Hl15z87PLogQmpYF17Zid3Cbc8rKeZSVYsBoiQy7nFIJHyqlQ8J2taazP7lIfeK6QNO8L4Zf4;25:LX9xoneArQ0FTEdiwDD0eOeNGYfAN5Ytv+9OqQtBNiUCjUE6Ynqa/rEvfceHZGMNaoin9Br/r7jjc5km0Qt2tC8F37Q2fJJY4PFcu+ii5n8eT+NQfJSe9Tfl/0SZNCeuKwWfuoNeqkGMDUEcTZhliFdcE1hNWZU8+Nw0JSNOJ2tetjePCGvEg+FklvJ0u15B21ptRaaWzXgvdJzm3p5s2tCGMY+Ic/aCqzWcg84oyvvWpnyTQOYP022gOQKWhy1TloItj0nyYFsJXA3pHMOHjylAJ9v3g49/oB4e80k5aH0MUI8ALq4s9MyXYLTHRZ2NTdCWltaOqI8Ng5JhGeWHtg== X-MS-TrafficTypeDiagnostic: SN6PR02MB4336: X-Microsoft-Exchange-Diagnostics: 1;SN6PR02MB4336;31:b1gPx4SB4yVfTrmo5r+4Q1GjYzqDlBqSgrGd+R0c3Kp8TaIHlx2lSfuSlu0PGtGtwmjkAKKPuDUjNDiupPfW4ezx47rXj4rMLjyIeGb7RSYM2g3G8HSb8xEliZWO7/1tjPsAB3zUh3wL690JzukaVPJDEEUY/XotTxGTKmZCRqRovY+GGJjGY7DYoQQpDWnLa7wAEqwPh4eM+axojLFIJa7sw54kpvaT8aFsgkVnMT8=;20:48VPZdIM5opmBqWaoRct0MTwHDtuhzrrI2Iaz7XGryLvEtizgf9SLcTGnfthzzmiDRQUzc6Wq5OJmiVkeDZbKI4cdXS5HcnySAdY3NVORbo8RqyHl4W4EQgS2XHsEHLvViSYiT5n3B63fsTgCTmEqoOoaOPqDkrBmL29PQlDvPJoncYQov9Vsi93GJqHcPnnf0HGiXvbltMQT/dYBSNvRdTWdy9bgfpu5fG5pT5/vAl+Qi0t7XSwJ5iXgM8AVlcwV1hqT3YWvzrpY7vNu1i/Dy9RSc5wlm9i+IwV/sgM1400+qAPTdBbKfWvd644tJX7QbAIpcoj8iqGEzg/UtpyaCJId/4ewEGYNfYhK7XRBy/EVQw/SYvkWlQBlg6hT3v3gIAD7zrXXr1mpvvWKP+BzhDB6PGjjKjpZMfdfeFrVY5o6l4xwhTklJGFuDdN7zN9UxPoYY3qVtMPrvwO/P3MY/WnT09h/0lawaedPovBurQ1/ZDZdiNuzTuQ/VJwcMzJ X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Microsoft-Exchange-Diagnostics: 1;SN6PR02MB4336;4:jT+L+V5LAeJzfJBUoVO9KNRUmBHlPu9usgpK/AZjEcEffImaIQ+xfZVSpyaTPGpddPcKcYNsSN58goRyKl65NICVsosuzTYAA6+EmEiDwbbh1DwUqhr5yLLtNfeqtld6CyiXtsF0yaJ5tnklEXJLegLja6LPG/hnPWWCMK8ueahsOFh2tk3nAFrPCS/iKBaN2hwaaHrb2hlCX0q6nJo2bS0lzkVQdOmZ0gvok+Ek3rmi+8UMbi/RQuWAmDCvod8iie/fGv4pY5uUqhKkx0ayXrY8h2Ay9LTMExen7dblOHUVWdiUEny/bQyr54NjzLdd X-Forefront-PRVS: 0920602B08 X-Microsoft-Exchange-Diagnostics: 1;SN6PR02MB4336;23:IKBW54pdRttpU6dEzMVl/IEI1nijhyuDwr+d8j/keUFfJmEdIcsH48m41sBQPu8xZfnYvvVLpn75CIWTBPWqI1dEhHsYHbISfHX1Gg0z5foEKtEXcizGu9jqs70X1u4u6ZId7kg/I3tvgQfYB/dQNXJuIw109NXGq3jb/MoxzS4qIrqj2cH0CO2HxH2Nzd/ugOBRiOdRv57EwHpLObnIrkkoQpvRMA/DeDmF2qt7drxfLyKBGtw3OcKrC38cHPQjs8+058qrkHcovPwObzu4xo+4ip02RvqA3ehUaQI95JUD1gBMdZWfQVZ4+1ED03Xz+ybFL43FJ8U7gkCX/IYcQvL1hVnQNQtwdZy6mdhd1+051LWra1gKA7/GHGNZw+JxiovssDKSAIWNzD1MGSUnEc5E0aojrGW/oHgndX9sO0CrFZ2Vlw68tprlPRzsAwqoDaaB+S4eIOxnBmO5vAl601P/09AskQK7Y3eTUU59JgWXg4VICZ4z+soQF1QTxBWXVABpo7zdNDIgfM+PPm48i8zzIlLGwjrNJpSxFT14nFbO2IDGallhc8quhyDcqx1HoslkSnauFbDCHuVQQwxevYW3APw/vrsZfT3matulJvz4ZYNqjarTprJiK74RCxH7FIW8WdWHnyWIwMXoAEaVnrj6fcPUSpkxktlTb2tGkKHu3NXkLFkAurObk6RRRvb3HNNLgBi1YEprZH5P3RGp+ApzlxENlRXfB1kSskF1rkABC7mxBT5ha4sHOveB2KGjdssZQKszQrHAxKZmM8dKUbs2GM1TIxOFaBZrn5m6LFwA9trgcEWwGLV6F66xpmxJaPpjEZV+e9rbMJ4uTskEhx0lBAcoPd1L+YoyfpZQPGJev9yVhNqQ16d/0ncm3dzUqPtI5Yqu3Z2miSVLw04NgsmnVNxyO8bS6mywZSbVVPiM13JDHI3i11i0klMhVt/9gfFO84kMu4+f33Rq/g7Xf9INBbn/jFaeZa59O634koipcw/XNrwrqQKQxCDLkd/fdfisBjeF53g0POHAtOF7QA8wa2DpIKMsjdr6dTdkOK7pvjZNGlzXnExAsxKtHNgvH2af6XX2urCDxUd908zrj4sFinRenXINsWDsbZ22Nuj81cM+baZ/kfADYQwxnqHU29/ILCpXpHmD1qLcx7PyZezvKhp9JPOYManjwTxNtLoqez9lzLrCNMuas5VQb0wO X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: RXeewfogAnlm/3Vj2pn/xWbFd0FFTd5HvPqGhVBA/LUymmnMFJS9h0+eN4rw5oAPmkHjE0+7d5zig2MdmmEz96fa8+zHSEjhJJp4l7nDxbfvTYIMY5HD/3HOFQO0c7RcMJZpaGesximAj4OAwIp3YENVG8aPnUFfUvSbOJqz5xk4d9bRqycH6e6319YaGiCwIhjQWEwRpWF/7ZOMWoW+9yLtyyQgwOZwialOUlXsrVX+xRjMCIsNGLZkcqP0xsqRJ/UC+hqiFV/x/l/2dJ/ce4QckElAGXthjCUUleCN1AWzDipaUvrBfb03UgPOYx6c3IkpBPRuHAxxL1NJ9inORoOswMqBimmJySUYHVMyOt/G8eqd/5dexS9cDkRU0YsMufYV16u6y5hjHVLf5COHxoKRz57AfVj4TaAptpmh3yw= X-Microsoft-Exchange-Diagnostics: 1;SN6PR02MB4336;6:/spLuqRiDbxqRkb0PiywxLidk7+ceh2Q+LGEln1bzALkFQIQIxKgFqkjuJSpTVgbU4lxuEh/zUxDMm+Th4KKtCywVoF4HLARsFTWwH3yaInBgoBugHq7Q6HbXqzskc3a+F12VF4x+2EZBhWjvuyvU97n9jaoxlO9GuqsrW6HBQqvEXcCGQni/7iY9q80A5sdcpVDRWwvNHDlhnDLbjq3uOVVTSdXOd37sFc3sd5ppS1oMmEerPgN7eedMcnMS3OgqdkMRGbX9oBLuSApaeJRBSSq7RFgPR8AaJEf1DX8fASQ8nFt+yMR1wVoYatpDfMgVN6IiriQ35yk2YdlksqYEQHLzeXn9irImBQEpXLmY9lL3+aDxxuIWULfMZyRmG1iHUCbiF2T3PslMNP1eOmk2HmdkW53eXevTBbawhl/+mlPecDTld9h5Qq16W4dBuB1pXxYh68H7a6zMN4dKg34Ag==;5:SM6GuE1ZIjQKRBc9jsRfnWdiQrGJxX+Ub5WWbU6hkRP7vRMv8KWN5tw954h3AXuLrIJdyWdVwikM+d1HBZZ7eWCb1Ve9Z6ZPPzWI+CpsfMVFNPYj2ESrAGCZxUkP0XLge2S1XxITp07IfpxUUABBalSi1Tv5i/s9smaA5Gl1Tiy1S/xpKVXq0msGujwE3bH8Mi1zNyzwcz4c5wa2GSQKgw==;7:NQ2V43fj8Nc6o/1ov78c5Kio7gkySJRwAt1syBZPnFgZooixHEV1A3vdFaVvstqEjMkAMieMQhbteY+Di7hTDzqLuQZlanr0ScI1jPfk1iItWY28af1jkaSSJW4y5Hxg0/7ZvgBPtc5NNvSzgdHeCw== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2019 07:02:41.0495 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6f1e570f-fa92-4daa-4d16-08d67c49c5ec X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR02MB4336 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP ALG_SET_KEY_TYPE requires caller to pass the key_type to be used for AES encryption/decryption. Sometimes the cipher key will be stored in the device's hardware. So, there is a need to specify the information about the key to use for AES operations. In Xilinx ZynqMP SoC, below key types are available 1. Device key, which is flashed in the HW. 2. PUF KEK, which can be regenerated using the helper data programmed in the HW. 3. User supplied key. So to choose the AES key to be used, this patch adds key-type attribute. Signed-off-by: Kalyani Akula --- crypto/af_alg.c | 7 +++++++ crypto/algif_skcipher.c | 7 +++++++ crypto/blkcipher.c | 9 +++++++++ crypto/skcipher.c | 18 ++++++++++++++++++ include/crypto/if_alg.h | 2 ++ include/crypto/skcipher.h | 10 ++++++++++ include/linux/crypto.h | 12 ++++++++++++ include/uapi/linux/if_alg.h | 1 + 8 files changed, 66 insertions(+) diff --git a/crypto/af_alg.c b/crypto/af_alg.c index 17eb09d..c3c0660 100644 --- a/crypto/af_alg.c +++ b/crypto/af_alg.c @@ -261,6 +261,13 @@ static int alg_setsockopt(struct socket *sock, int level, int optname, if (!type->setauthsize) goto unlock; err = type->setauthsize(ask->private, optlen); + break; + case ALG_SET_KEY_TYPE: + if (sock->state == SS_CONNECTED) + goto unlock; + if (!type->setkeytype) + goto unlock; + err = type->setkeytype(ask->private, optval, optlen); } unlock: diff --git a/crypto/algif_skcipher.c b/crypto/algif_skcipher.c index cfdaab2..9911a56 100644 --- a/crypto/algif_skcipher.c +++ b/crypto/algif_skcipher.c @@ -320,6 +320,12 @@ static int skcipher_setkey(void *private, const u8 *key, unsigned int keylen) return crypto_skcipher_setkey(private, key, keylen); } +static int skcipher_setkeytype(void *private, const u8 *key, + unsigned int keylen) +{ + return crypto_skcipher_setkeytype(private, key, keylen); +} + static void skcipher_sock_destruct(struct sock *sk) { struct alg_sock *ask = alg_sk(sk); @@ -384,6 +390,7 @@ static int skcipher_accept_parent(void *private, struct sock *sk) .bind = skcipher_bind, .release = skcipher_release, .setkey = skcipher_setkey, + .setkeytype = skcipher_setkeytype, .accept = skcipher_accept_parent, .accept_nokey = skcipher_accept_parent_nokey, .ops = &algif_skcipher_ops, diff --git a/crypto/blkcipher.c b/crypto/blkcipher.c index c5398bd..8922f58 100644 --- a/crypto/blkcipher.c +++ b/crypto/blkcipher.c @@ -408,6 +408,14 @@ static int setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen) return cipher->setkey(tfm, key, keylen); } +static int setkeytype(struct crypto_tfm *tfm, const u8 *key, + unsigned int keylen) +{ + struct blkcipher_alg *cipher = &tfm->__crt_alg->cra_blkcipher; + + return cipher->setkeytype(tfm, key, keylen); +} + static int async_setkey(struct crypto_ablkcipher *tfm, const u8 *key, unsigned int keylen) { @@ -478,6 +486,7 @@ static int crypto_init_blkcipher_ops_sync(struct crypto_tfm *tfm) unsigned long addr; crt->setkey = setkey; + crt->setkeytype = setkeytype; crt->encrypt = alg->encrypt; crt->decrypt = alg->decrypt; diff --git a/crypto/skcipher.c b/crypto/skcipher.c index 2a96929..6a2a0dd 100644 --- a/crypto/skcipher.c +++ b/crypto/skcipher.c @@ -605,6 +605,23 @@ static int skcipher_setkey_blkcipher(struct crypto_skcipher *tfm, return 0; } +static int skcipher_setkeytype_blkcipher(struct crypto_skcipher *tfm, + const u8 *key, unsigned int keylen) +{ + struct crypto_blkcipher **ctx = crypto_skcipher_ctx(tfm); + struct crypto_blkcipher *blkcipher = *ctx; + int err; + + crypto_blkcipher_clear_flags(blkcipher, ~0); + crypto_blkcipher_set_flags(blkcipher, crypto_skcipher_get_flags(tfm) & + CRYPTO_TFM_REQ_MASK); + err = crypto_blkcipher_setkeytype(blkcipher, key, keylen); + crypto_skcipher_set_flags(tfm, crypto_blkcipher_get_flags(blkcipher) & + CRYPTO_TFM_RES_MASK); + + return err; +} + static int skcipher_crypt_blkcipher(struct skcipher_request *req, int (*crypt)(struct blkcipher_desc *, struct scatterlist *, @@ -671,6 +688,7 @@ static int crypto_init_skcipher_ops_blkcipher(struct crypto_tfm *tfm) tfm->exit = crypto_exit_skcipher_ops_blkcipher; skcipher->setkey = skcipher_setkey_blkcipher; + skcipher->setkeytype = skcipher_setkeytype_blkcipher; skcipher->encrypt = skcipher_encrypt_blkcipher; skcipher->decrypt = skcipher_decrypt_blkcipher; diff --git a/include/crypto/if_alg.h b/include/crypto/if_alg.h index 482461d..202298e 100644 --- a/include/crypto/if_alg.h +++ b/include/crypto/if_alg.h @@ -51,6 +51,8 @@ struct af_alg_type { void *(*bind)(const char *name, u32 type, u32 mask); void (*release)(void *private); int (*setkey)(void *private, const u8 *key, unsigned int keylen); + int (*setkeytype)(void *private, const u8 *keytype, + unsigned int keylen); int (*accept)(void *private, struct sock *sk); int (*accept_nokey)(void *private, struct sock *sk); int (*setauthsize)(void *private, unsigned int authsize); diff --git a/include/crypto/skcipher.h b/include/crypto/skcipher.h index e555294..a6e1eda 100644 --- a/include/crypto/skcipher.h +++ b/include/crypto/skcipher.h @@ -42,6 +42,8 @@ struct skcipher_request { struct crypto_skcipher { int (*setkey)(struct crypto_skcipher *tfm, const u8 *key, unsigned int keylen); + int (*setkeytype)(struct crypto_skcipher *tfm, const u8 *key, + unsigned int keylen); int (*encrypt)(struct skcipher_request *req); int (*decrypt)(struct skcipher_request *req); @@ -116,6 +118,8 @@ struct crypto_sync_skcipher { struct skcipher_alg { int (*setkey)(struct crypto_skcipher *tfm, const u8 *key, unsigned int keylen); + int (*setkeytype)(struct crypto_skcipher *tfm, const u8 *key, + unsigned int keylen); int (*encrypt)(struct skcipher_request *req); int (*decrypt)(struct skcipher_request *req); int (*init)(struct crypto_skcipher *tfm); @@ -444,6 +448,12 @@ static inline int crypto_sync_skcipher_setkey(struct crypto_sync_skcipher *tfm, return crypto_skcipher_setkey(&tfm->base, key, keylen); } +static inline int crypto_skcipher_setkeytype(struct crypto_skcipher *tfm, + const u8 *key, unsigned int keylen) +{ + return tfm->setkeytype(tfm, key, keylen); +} + static inline unsigned int crypto_skcipher_default_keysize( struct crypto_skcipher *tfm) { diff --git a/include/linux/crypto.h b/include/linux/crypto.h index 902ec17..a47c9a8 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h @@ -268,6 +268,8 @@ struct ablkcipher_alg { struct blkcipher_alg { int (*setkey)(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen); + int (*setkeytype)(struct crypto_tfm *tfm, const u8 *keytype, + unsigned int keylen); int (*encrypt)(struct blkcipher_desc *desc, struct scatterlist *dst, struct scatterlist *src, unsigned int nbytes); @@ -734,6 +736,8 @@ struct blkcipher_tfm { void *iv; int (*setkey)(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen); + int (*setkeytype)(struct crypto_tfm *tfm, const u8 *key, + unsigned int keylen); int (*encrypt)(struct blkcipher_desc *desc, struct scatterlist *dst, struct scatterlist *src, unsigned int nbytes); int (*decrypt)(struct blkcipher_desc *desc, struct scatterlist *dst, @@ -1466,6 +1470,14 @@ static inline int crypto_blkcipher_setkey(struct crypto_blkcipher *tfm, key, keylen); } +static inline int crypto_blkcipher_setkeytype(struct crypto_blkcipher *tfm, + const u8 *key, + unsigned int keylen) +{ + return crypto_blkcipher_crt(tfm)->setkeytype(crypto_blkcipher_tfm(tfm), + key, keylen); +} + /** * crypto_blkcipher_encrypt() - encrypt plaintext * @desc: reference to the block cipher handle with meta data diff --git a/include/uapi/linux/if_alg.h b/include/uapi/linux/if_alg.h index bc2bcde..aa31b18 100644 --- a/include/uapi/linux/if_alg.h +++ b/include/uapi/linux/if_alg.h @@ -35,6 +35,7 @@ struct af_alg_iv { #define ALG_SET_OP 3 #define ALG_SET_AEAD_ASSOCLEN 4 #define ALG_SET_AEAD_AUTHSIZE 5 +#define ALG_SET_KEY_TYPE 6 /* Operations */ #define ALG_OP_DECRYPT 0 From patchwork Thu Jan 17 07:02:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalyani Akula X-Patchwork-Id: 10767565 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2D6C96C5 for ; Thu, 17 Jan 2019 07:02:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1B7F42F16C for ; Thu, 17 Jan 2019 07:02:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0F8752F1CB; Thu, 17 Jan 2019 07:02:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D2C002F16C for ; Thu, 17 Jan 2019 07:02:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729927AbfAQHCs (ORCPT ); Thu, 17 Jan 2019 02:02:48 -0500 Received: from mail-eopbgr820052.outbound.protection.outlook.com ([40.107.82.52]:49856 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729597AbfAQHCr (ORCPT ); Thu, 17 Jan 2019 02:02:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xilinx.onmicrosoft.com; s=selector1-xilinx-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gkuSW2sh0WdxnATrGUtgv0ni8XnJJWcmetfngirinfY=; b=uMzdtGcdzLZ4vAdxqBV5EUTMC1vdxmAgqmZbJntOGG5sdZebdC6HbHclxL9zheNsS1br4uAo0YoWYNbe5ao3gVbCuujGrRHy4u2L8ekOjdZkmyP1ycsR8suaXHvYgtGmHLSxNVbAhRsUwu9mjL2y/jIVDwJbh4h5UBa9UM7VcrU= Received: from MWHPR02CA0014.namprd02.prod.outlook.com (2603:10b6:300:4b::24) by DM5PR0201MB3510.namprd02.prod.outlook.com (2603:10b6:4:77::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1516.19; Thu, 17 Jan 2019 07:02:41 +0000 Received: from CY1NAM02FT011.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e45::200) by MWHPR02CA0014.outlook.office365.com (2603:10b6:300:4b::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1537.25 via Frontend Transport; Thu, 17 Jan 2019 07:02:41 +0000 Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.100 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.100; helo=xsj-pvapsmtpgw02; Received: from xsj-pvapsmtpgw02 (149.199.60.100) by CY1NAM02FT011.mail.protection.outlook.com (10.152.75.156) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1471.13 via Frontend Transport; Thu, 17 Jan 2019 07:02:41 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:42114 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1gk1hI-0006rj-Mi; Wed, 16 Jan 2019 23:02:40 -0800 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1gk1hD-0007Rm-IN; Wed, 16 Jan 2019 23:02:35 -0800 Received: from xsj-pvapsmtp01 (xsj-pvapsmtp01.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id x0H72QPt022400; Wed, 16 Jan 2019 23:02:27 -0800 Received: from [172.23.155.90] (helo=xhdengvm155090.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1gk1h4-0007N7-9P; Wed, 16 Jan 2019 23:02:26 -0800 Received: by xhdengvm155090.xilinx.com (Postfix, from userid 23151) id 6B9E3800EE; Thu, 17 Jan 2019 12:32:24 +0530 (IST) From: Kalyani Akula To: , , , CC: Kalyani Akula , Sarat Chand Savitala , Kalyani Akula Subject: [RFC PATCH 5/5] crypto: Add Xilinx AES driver Date: Thu, 17 Jan 2019 12:32:21 +0530 Message-ID: <1547708541-23730-6-git-send-email-kalyani.akula@xilinx.com> X-Mailer: git-send-email 1.9.5 In-Reply-To: <1547708541-23730-1-git-send-email-kalyani.akula@xilinx.com> References: <1547708541-23730-1-git-send-email-kalyani.akula@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.2.0.1013-23620.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(396003)(39860400002)(376002)(346002)(136003)(2980300002)(199004)(189003)(90966002)(48376002)(316002)(305945005)(36756003)(36386004)(103686004)(4326008)(356004)(42186006)(6666004)(2906002)(6266002)(107886003)(110136005)(54906003)(2201001)(106002)(16586007)(52956003)(47776003)(26005)(63266004)(6346003)(217873002)(126002)(476003)(106466001)(426003)(5660300001)(186003)(336012)(50466002)(8936002)(11346002)(446003)(81156014)(8676002)(81166006)(76176011)(2616005)(50226002)(14444005)(44832011)(51416003)(478600001)(486006)(107986001)(5001870100001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR0201MB3510;H:xsj-pvapsmtpgw02;FPR:;SPF:Pass;LANG:en;PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com;A:1;MX:1; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02FT011;1:zONl3tZy+JxTjQUMdBVdDKcWR5ZaReL+lHt85NAHkdWrbolVg+Egd2scf70/8R2m8/2ZPTM4NvPQURs1W2612dxPI+Q7xN+AydVkQKUu6XoyhLM/Ua9dfUioPvAz2/gE MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7f447d72-cb63-4734-2032-08d67c49c5e8 X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4608076)(4709027)(2017052603328)(7153060);SRVR:DM5PR0201MB3510; X-Microsoft-Exchange-Diagnostics: 1;DM5PR0201MB3510;3:uy8KVaDMLfXfX4i5YxJMyjSGiyC3vIOCUuH687zIueS0AjjbEpCn6jxbfp88waRXF4mVxRETY0EH9gIa2EuNsFTli8XRZSAC16F4SPrQ75Gwfin5fJbwW4pQXuKdn/pQ+5ulGPEBUOEHvwB81DSd3v5BgIaiL36X1g+72GwC7TRzLYBKgRgORzDzG4bqxL7P+ymKWuo9RVEMkSxTRa06D2/uceB1MaTnNKgdGcMjf+pMX6tisbLtueUyD/lS3IRzNY1HRypEaWfUCCAfpXieRDpm333/MCo/1D33PY1jK9SINQTm3VHgfmp+PsguN+xJXQvtCFsm3oYFtcuvz18+I3aU2YbHzLO50uxD43Svna3Um65fvaCzrpLsrwAW7uVl;25:ZSe5/Y5UB0/M+8Bp/n1x24ToDVS2q4YHEfq7JW0kAbWVN+mGLaSXBs38uxcO/077WJOw278m+E59qaiH5SDpQvpY+zrt/mmkxDd1GbiVV1msdzrUvOtwBtzauVRPbVAvjpOGkyzL4ttB3e2+S8fWWG14X3Qh9SDw8/Twt0MgjeHj/xAuoKjfSkVsrTOL4vHEtSxOw0T8LQ25+QYiWi7XnHtpKkMZxxtnXocnjrRfdQowDXLNVlBTMK8Kv1Fb8KJjliZ24BuH4ErGvKFvuaEqWFSVVFS+x5/KyDLEPQuZWjP9FlJyT7lNvgPwJ9Ix9xPJMdSbTqf7meRC8kfKRuazpw== X-MS-TrafficTypeDiagnostic: DM5PR0201MB3510: X-Microsoft-Exchange-Diagnostics: 1;DM5PR0201MB3510;31:dCZgbX/qkYzlzl3LqM6gSS5XhT3bhdFP4f4jmEseUlHfVzXviIus5AVi3nQwhF8XMBZP1oIp7BOHr3CtD+VdKOOWMS9O7TkF98MrczPNtNPxN9RblPiJpOkBXuwTZT64TSF5xwKoCLJ7xNOiHyOF/z2YtznOB84aP3TrcPoKnN4+cHy8vqnWav19cfpmoP+xsIzBo3IXTX14HuAqIERiYvRwO5r/bTcbcQErY+L68Fs=;20:E7NXL55JxWUTWQ1jX+SydjlI4vf3zHY5vt56yw0uuREElWr1UWEXENBgytZUv9gwjNPMHVVbqyk1Ayj9fjQ8uq8mw/4K3Q7lqtTmLew7wvJGWoUczlpLvu6FA2OIp3/wQDNmVql8Ww8WM4Dw7IGQK4VxeKKthOJntvxTWlgQQj5IAU2DOJmXy61F7Hi2ffLMERTd398ozLO9wx/lC9XCn9kn9VOi++effsrDPRJF7sv1a18Wc/mzhrrXOwz8/6xxOKyvfxXpfEH9/3i4krILWHHnhn2tyeUOrfGeiGBPajMj7cGSuKvcsM5aT2ap/iQtYeGMK2eP6fE29YzP9oqpYipC9Dq1BWM9gu1G1eUQcJ1gypIEOp3XfNY3QcThSL2DrWj8io/BJTHgcyebTW9aazq2C+VY1wgB/e6P0ga1bv8Qc+Y0kc2Gg47X8uyBfT0XWwht6O2FBA5LoLHLJ0snwg/hVAAuuP8pfSmeyC9aFOkW5rObaKt2c3Mf8trNGlfN X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Microsoft-Antispam-PRVS: X-Microsoft-Exchange-Diagnostics: 1;DM5PR0201MB3510;4:BXbX7co2eYjMlwPC9NMcTrC+PbBae5FiWrkq+DFeKBtPypwj6NsmpKsbCU8zAjC4tVkz7cL+VCU0cB31s6XBMo5Hr3aY2Nuv/ZGIqGXrQBeZ0EQYHSKjtx/Z6eCh51y4yG4smg7FbZ68ABP/uiSNSkOqn3IIFBsIATBjzCFnY78ILscPm8xRSiAJN32Or+fLCNtwJZ/XEJ2c0f148hAMhPZLfKM2obHP1VwmrFt19t1PY1JSt8t1VTK1fVwLsX0UkjgYRH4bv/gfjrGB0UJSqWTWWLOM07WsJBFDzfD52HckhwSn+2Tl6td8cQGxOaIa X-Forefront-PRVS: 0920602B08 X-Microsoft-Exchange-Diagnostics: 1;DM5PR0201MB3510;23:jCCKt2RUkmFleTUQguOWzossh+F5JQfuw7HdcZrHRDNyYnv+zbuqQu5WcO42kHwIlArEN7528ngifOOm7ttaPqfKkaz9I6AwpXUOBpFF5qmXKPfwmj7ZzMnCdChbZKs+63B5HIebSv4l+AiSU7Jpr4Vv4jH5ox+hFlFewcsZ16a3ZOrt/mfZJFepTBosp588iPM48wC4aEEA0R2pJi8NQeyHmTjChyh04LM8E8TxmhV+G8wnxUZrDiTGuo7GAfDrvI6LvSn/pizfWwioSrQOf8vhJaelyX25kxulPtVqfurp4ht6jydoyarMkZKWl6pTfTtKbyzH7U2COcFlobugVCZyvltqnEt8kt6lOF8t/Rl6ZtBpmmPu1k4RV0fLudqW54b6ko7TpRKRj42SnTwT/b2GnZQM6eUfpCUjgBycw1w6R3dDjW1ya+wgAGdBT/AJ7p42yE98GOlrZ4gngs0bCjMDXwjDZeTLoKVPppM+/p4cV8ZjVU2cKVJ6TUq6DkqRhFaDmH/SkEBmWko94JK5M+kGPRPUW2D3iQ/dLL8MHl/tsNTxbQf2PV2GQlmF2uQO1CJLyen4f7jMqxy969PYoEUwHXir7PXBn8P+NcXcYLOQA/FlbS+ZXeqSEOuqLnsv5MCUeiA5M6Mrp34sXSD5z5KYBdt9YL1tgyt2HP3yM9CLTv1nCt9r6yPVKvvfvId/DlWBPLUaduvdjJHU4V60oVfHmfsNw6YzDS1aa/NK+lXWMT5aE324zxYHDspuDSgI9WNbiS74I3fg45RyoEekoVOuCJIVQ5olN7iMekimHVQw4W50Nff0v8O2arAfuLPJhcblTAzAw25+ShtjI5zw8tJIdvaL5qSSP2rI4upHNbNL7U5mCcE64qkyjjiBth6Bk3Jx74hkUyAkxm9BwLvNKUCIVS146AUaBpWko+FKjQOtaULfj8GzKDPzyG6QCmrXPWdwhJv5b7BZkUeai9192V+uwZhpZ6Yz6+Fox/bZ5qad3MxXFBbBqOUz/X6e+O7ZCiqvLE2QrC9bYwEWfsi+go220MwVMxP5w2qafyKri9sYvgoGh2sn/zrrl0RTlyaR2S6AEIjMc8/SEXWnHwW+DCHESZpIan6uzwFStRTne77aeaz/gpithsZoPDBHDX2/hAp0pKyR8+ATJkPqB4baVmFQDbzIDYg+UTa6O/akZiH874udgFDqEaXEm7r280vu3V0r3tc+9Gomq6aDyZJXrdM+AffG9es0hRNLFvIm6mArYTfrJ4f8Tga7LIux2j8b X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: utrZFv48zzdvtzImdN8ywmS9iaGrX99WuaWmOPTuxXQYtDEoB3KTjPOe2gdbERVwyDGA4s8Ws0Rivx55g+yjpWcBpAzmYyHQBtnbOnkJiC8Slw3FCzXgapVWV0MtLB30MffrXPbrQQ6XfE7iFM083J1jllW3jSNOn9xEXYjcQhFZVH+uTY/gqYsqrbGkBqZ/ogkSr7nnleKwihMi0GKhYXhud84mLaJJ9glLvmapjOXL9rdy6fo04ouIgqoYTx2FdgxQ9saLBaXfFyOYRIQTzg7DWe5V+XcvG7z03fhJ/RAgjIiJHSQGIVvfRPrnbOwk7VoNOvcsROShEESgIjlhyCx5lDaQo2qf+8psvKFUpKyV7H9tS7wvfy/v40UsP7Xn6ZYVYanvRY4ALO8XBLV4B4fCj9qUe02cjh/ehNn0A14= X-Microsoft-Exchange-Diagnostics: 1;DM5PR0201MB3510;6:tVuK+kY2+GdPLT3FEKDQaZ1qzlzK82GRVLjBvpqf4cfhFSgLzn1W7EfZJNaAv0osZgLkTX8YUSFZH2mIZEqCrRry3ObCk1uaMqVhoBEH2uEgpYIDXgKliRdWG0qHldMrFenBuralO6Eggtqrq7S8XKkYHR7a+1jn2qcS3iXYHXPjwx9nxoKU/0Qr7OTazNna++zHnVAULmNSLJzH6h8qPSeZwSxMDAdyzqxmvM8tBj35D2OeT7qPa0tTvAeODE5DvvzjWf6qCNFK4J+GkKvOtgzWuUBMOioeERb9/Sd4aK6Z2dOJ7J01vHJ/r9c6Ox4/iqnu9kHUDgeQuutbNtnjMVNhJJYjiCBwc19S4bZNVnQYemH4SRq85gUScPtWqy6UMGNC3Nff+vEk/Z9ZitrDS6FbLIYRMQg/tO2E6kML4tYdv7b2XcaOvRkQVGurDce2F169avj7bK95PXm6oJpDgg==;5:MJC6s3CuMXeGZC/ZN0llp/lEyHMc8vLXJH8nUFc3A7pJCaXuZMaBarUXb+rhIGPDFEzJkN2Zj/vhMPT96ThShlQjAeN2kdliytfT9uhGgiTdpKypK7sOzugu7u2XOR0iDoTiTR+wFrzrK98uwCyPcBGZI0rkXzHbSvrT08gZ7NF3wvZFYbpkonaq6Z2UoXWp9yUr+5EOk3vZqeLyIIlm/w==;7:PRuzKCKuihP5+59aQwGaHUpY9//1rMql7YbfrQkigxtqXcEb97EmyfGznMaVyzhUlS57R27M0FeaHzz8FHr2On/twJTRgGs/bgQDuhF80AyPFwimBn+6Cy7VcGp5gqut+Eu2OSwDEsNIb23n+K6OmQ== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2019 07:02:41.1003 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7f447d72-cb63-4734-2032-08d67c49c5e8 X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.100];Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR0201MB3510 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This patch adds AES driver support for the Xilinx ZynqMP SoC. Signed-off-by: Kalyani Akula --- drivers/crypto/Kconfig | 11 ++ drivers/crypto/Makefile | 1 + drivers/crypto/zynqmp-aes.c | 331 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 343 insertions(+) create mode 100644 drivers/crypto/zynqmp-aes.c diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index 5a90075..66d9faa 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -667,6 +667,17 @@ config CRYPTO_DEV_ROCKCHIP This driver interfaces with the hardware crypto accelerator. Supporting cbc/ecb chainmode, and aes/des/des3_ede cipher mode. +config CRYPTO_DEV_ZYNQMP_AES + tristate "Support for Xilinx ZynqMP AES hw accelerator" + depends on ARCH_ZYNQMP || COMPILE_TEST + select CRYPTO_AES + select CRYPTO_BLKCIPHER + help + Xilinx ZynqMP has AES-GCM engine used for symmetric key + encryption and decryption. This driver interfaces with AES hw + accelerator. Select this if you want to use the ZynqMP module + for AES algorithms. + config CRYPTO_DEV_MEDIATEK tristate "MediaTek's EIP97 Cryptographic Engine driver" depends on (ARM && ARCH_MEDIATEK) || COMPILE_TEST diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile index 8e7e225..991b343 100644 --- a/drivers/crypto/Makefile +++ b/drivers/crypto/Makefile @@ -47,3 +47,4 @@ obj-$(CONFIG_CRYPTO_DEV_BCM_SPU) += bcm/ obj-$(CONFIG_CRYPTO_DEV_SAFEXCEL) += inside-secure/ obj-$(CONFIG_CRYPTO_DEV_ARTPEC6) += axis/ obj-y += hisilicon/ +obj-$(CONFIG_CRYPTO_DEV_ZYNQMP_AES) += zynqmp-aes.o diff --git a/drivers/crypto/zynqmp-aes.c b/drivers/crypto/zynqmp-aes.c new file mode 100644 index 0000000..3a38d2d --- /dev/null +++ b/drivers/crypto/zynqmp-aes.c @@ -0,0 +1,331 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Xilinx ZynqMP AES Driver. + * Copyright (c) 2018 Xilinx Inc. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define ZYNQMP_AES_QUEUE_LENGTH 1 +#define ZYNQMP_AES_IV_SIZE 12 +#define ZYNQMP_AES_GCM_SIZE 16 +#define ZYNQMP_AES_KEY_SIZE 32 + +#define ZYNQMP_AES_DECRYPT 0 +#define ZYNQMP_AES_ENCRYPT 1 + +#define ZYNQMP_AES_KUP_KEY 0 + +#define ZYNQMP_AES_GCM_TAG_MISMATCH_ERR 0x01 +#define ZYNQMP_AES_SIZE_ERR 0x06 +#define ZYNQMP_AES_WRONG_KEY_SRC_ERR 0x13 +#define ZYNQMP_AES_PUF_NOT_PROGRAMMED 0xE300 + +#define ZYNQMP_AES_BLOCKSIZE 0x04 + +struct zynqmp_aes_dev { + struct list_head list; + struct device *dev; + /* the lock protects queue and dev list */ + spinlock_t lock; + struct crypto_queue queue; +}; + +struct zynqmp_aes_op { + struct zynqmp_aes_dev *dd; + void *src; + void *dst; + int len; + u8 key[ZYNQMP_AES_KEY_SIZE]; + u8 *iv; + u32 keylen; + u32 keytype; +}; + +struct zynqmp_aes_data { + u64 src; + u64 iv; + u64 key; + u64 dst; + u64 size; + u64 optype; + u64 keysrc; +}; + +struct zynqmp_aes_drv { + struct list_head dev_list; + /* the lock protects dev list */ + spinlock_t lock; +}; + +static struct zynqmp_aes_drv zynqmp_aes = { + .dev_list = LIST_HEAD_INIT(zynqmp_aes.dev_list), + .lock = __SPIN_LOCK_UNLOCKED(zynqmp_aes.lock), +}; + +static struct zynqmp_aes_dev *zynqmp_aes_find_dev(struct zynqmp_aes_op *ctx) +{ + struct zynqmp_aes_dev *aes_dd = NULL; + struct zynqmp_aes_dev *tmp; + + spin_lock_bh(&zynqmp_aes.lock); + if (!ctx->dd) { + list_for_each_entry(tmp, &zynqmp_aes.dev_list, list) { + aes_dd = tmp; + break; + } + ctx->dd = aes_dd; + } else { + aes_dd = ctx->dd; + } + spin_unlock_bh(&zynqmp_aes.lock); + + return aes_dd; +} + +static int zynqmp_setkey_blk(struct crypto_tfm *tfm, const u8 *key, + unsigned int len) +{ + struct zynqmp_aes_op *op = crypto_tfm_ctx(tfm); + + op->keylen = len; + memcpy(op->key, key, len); + + return 0; +} + +static int zynqmp_setkeytype(struct crypto_tfm *tfm, const u8 *keytype, + unsigned int len) +{ + struct zynqmp_aes_op *op = crypto_tfm_ctx(tfm); + + op->keytype = (u32)(*keytype); + + return 0; +} + +static int zynqmp_aes_xcrypt(struct blkcipher_desc *desc, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes, + unsigned int flags) +{ + struct zynqmp_aes_op *op = crypto_blkcipher_ctx(desc->tfm); + struct zynqmp_aes_dev *dd = zynqmp_aes_find_dev(op); + const struct zynqmp_eemi_ops *eemi_ops = zynqmp_pm_get_eemi_ops(); + int err, ret, copy_bytes, src_data = 0, dst_data = 0; + dma_addr_t dma_addr, dma_addr_buf; + struct zynqmp_aes_data *abuf; + struct blkcipher_walk walk; + unsigned int data_size; + size_t dma_size; + char *kbuf; + + if (!eemi_ops || !eemi_ops->aes) + return -ENOTSUPP; + + if (op->keytype == ZYNQMP_AES_KUP_KEY) + dma_size = nbytes + ZYNQMP_AES_KEY_SIZE + + ZYNQMP_AES_IV_SIZE; + else + dma_size = nbytes + ZYNQMP_AES_IV_SIZE; + + kbuf = dma_alloc_coherent(dd->dev, dma_size, &dma_addr, GFP_KERNEL); + if (!kbuf) + return -ENOMEM; + + abuf = dma_alloc_coherent(dd->dev, sizeof(struct zynqmp_aes_data), + &dma_addr_buf, GFP_KERNEL); + if (!abuf) { + dma_free_coherent(dd->dev, dma_size, kbuf, dma_addr); + return -ENOMEM; + } + + data_size = nbytes; + blkcipher_walk_init(&walk, dst, src, data_size); + err = blkcipher_walk_virt(desc, &walk); + op->iv = walk.iv; + + while ((nbytes = walk.nbytes)) { + op->src = walk.src.virt.addr; + memcpy(kbuf + src_data, op->src, nbytes); + src_data = src_data + nbytes; + nbytes &= (ZYNQMP_AES_BLOCKSIZE - 1); + err = blkcipher_walk_done(desc, &walk, nbytes); + } + memcpy(kbuf + data_size, op->iv, ZYNQMP_AES_IV_SIZE); + abuf->src = dma_addr; + abuf->dst = dma_addr; + abuf->iv = abuf->src + data_size; + abuf->size = data_size - ZYNQMP_AES_GCM_SIZE; + abuf->optype = flags; + abuf->keysrc = op->keytype; + + if (op->keytype == ZYNQMP_AES_KUP_KEY) { + memcpy(kbuf + data_size + ZYNQMP_AES_IV_SIZE, + op->key, ZYNQMP_AES_KEY_SIZE); + + abuf->key = abuf->src + data_size + ZYNQMP_AES_IV_SIZE; + } else { + abuf->key = 0; + } + eemi_ops->aes(dma_addr_buf, &ret); + + if (ret != 0) { + switch (ret) { + case ZYNQMP_AES_GCM_TAG_MISMATCH_ERR: + dev_err(dd->dev, "ERROR: Gcm Tag mismatch\n\r"); + break; + case ZYNQMP_AES_SIZE_ERR: + dev_err(dd->dev, "ERROR : Non word aligned data\n\r"); + break; + case ZYNQMP_AES_WRONG_KEY_SRC_ERR: + dev_err(dd->dev, "ERROR: Wrong KeySrc, enable secure mode\n\r"); + break; + case ZYNQMP_AES_PUF_NOT_PROGRAMMED: + dev_err(dd->dev, "ERROR: PUF is not registered\r\n"); + break; + default: + dev_err(dd->dev, "ERROR: Invalid"); + break; + } + goto END; + } + if (flags) + copy_bytes = data_size; + else + copy_bytes = data_size - ZYNQMP_AES_GCM_SIZE; + + blkcipher_walk_init(&walk, dst, src, copy_bytes); + err = blkcipher_walk_virt(desc, &walk); + + while ((nbytes = walk.nbytes)) { + memcpy(walk.dst.virt.addr, kbuf + dst_data, nbytes); + dst_data = dst_data + nbytes; + nbytes &= (ZYNQMP_AES_BLOCKSIZE - 1); + err = blkcipher_walk_done(desc, &walk, nbytes); + } +END: + dma_free_coherent(dd->dev, dma_size, kbuf, dma_addr); + dma_free_coherent(dd->dev, sizeof(struct zynqmp_aes_data), + abuf, dma_addr_buf); + return err; +} + +static int zynqmp_aes_decrypt(struct blkcipher_desc *desc, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes) +{ + return zynqmp_aes_xcrypt(desc, dst, src, nbytes, ZYNQMP_AES_DECRYPT); +} + +static int zynqmp_aes_encrypt(struct blkcipher_desc *desc, + struct scatterlist *dst, + struct scatterlist *src, + unsigned int nbytes) +{ + return zynqmp_aes_xcrypt(desc, dst, src, nbytes, ZYNQMP_AES_ENCRYPT); +} + +static struct crypto_alg zynqmp_alg = { + .cra_name = "xilinx-zynqmp-aes", + .cra_driver_name = "zynqmp-aes", + .cra_priority = 400, + .cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER | + CRYPTO_ALG_KERN_DRIVER_ONLY, + .cra_blocksize = ZYNQMP_AES_BLOCKSIZE, + .cra_ctxsize = sizeof(struct zynqmp_aes_op), + .cra_alignmask = 15, + .cra_type = &crypto_blkcipher_type, + .cra_module = THIS_MODULE, + .cra_u = { + .blkcipher = { + .min_keysize = 0, + .max_keysize = ZYNQMP_AES_KEY_SIZE, + .setkey = zynqmp_setkey_blk, + .setkeytype = zynqmp_setkeytype, + .encrypt = zynqmp_aes_encrypt, + .decrypt = zynqmp_aes_decrypt, + .ivsize = ZYNQMP_AES_IV_SIZE, + } + } +}; + +static const struct of_device_id zynqmp_aes_dt_ids[] = { + { .compatible = "xlnx,zynqmp-aes" }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, zynqmp_aes_dt_ids); + +static int zynqmp_aes_probe(struct platform_device *pdev) +{ + struct zynqmp_aes_dev *aes_dd; + struct device *dev = &pdev->dev; + int ret; + + aes_dd = devm_kzalloc(dev, sizeof(*aes_dd), GFP_KERNEL); + if (!aes_dd) + return -ENOMEM; + + aes_dd->dev = dev; + platform_set_drvdata(pdev, aes_dd); + + ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(44)); + if (ret < 0) { + dev_err(dev, "no usable DMA configuration"); + return ret; + } + + INIT_LIST_HEAD(&aes_dd->list); + crypto_init_queue(&aes_dd->queue, ZYNQMP_AES_QUEUE_LENGTH); + list_add_tail(&aes_dd->list, &zynqmp_aes.dev_list); + + ret = crypto_register_alg(&zynqmp_alg); + if (ret) + goto err_algs; + + dev_info(dev, "AES Successfully Registered\n\r"); + return 0; + +err_algs: + list_del(&aes_dd->list); + dev_err(dev, "initialization failed.\n"); + + return ret; +} + +static int zynqmp_aes_remove(struct platform_device *pdev) +{ + struct zynqmp_aes_dev *aes_dd; + + aes_dd = platform_get_drvdata(pdev); + if (!aes_dd) + return -ENODEV; + list_del(&aes_dd->list); + crypto_unregister_alg(&zynqmp_alg); + return 0; +} + +static struct platform_driver xilinx_aes_driver = { + .probe = zynqmp_aes_probe, + .remove = zynqmp_aes_remove, + .driver = { + .name = "zynqmp_aes", + .of_match_table = of_match_ptr(zynqmp_aes_dt_ids), + }, +}; + +module_platform_driver(xilinx_aes_driver); + +MODULE_DESCRIPTION("Xilinx ZynqMP AES hw acceleration support."); +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Nava kishore Manne "); +MODULE_AUTHOR("Kalyani Akula ");