Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp264037pxf; Thu, 8 Apr 2021 02:32:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzCcTKGbmnVwTBVscUH9It4z2Wu5REyCzY2u84kVJznqOs77QJPlZkRGblS9U6XNj+2VSCW X-Received: by 2002:a17:902:ee09:b029:e9:3900:1c95 with SMTP id z9-20020a170902ee09b02900e939001c95mr6672818plb.79.1617874375310; Thu, 08 Apr 2021 02:32:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617874375; cv=none; d=google.com; s=arc-20160816; b=WWEapA3sSS+Y56u3k3ndE+w8hcR//m7bte98LphRoeOcfHn7Y87uqDvyKooT4VxWVc 2R60WqLs+1FHNmA/UmdlEfwV4UTDP7rYxH38OvEHVoWeG0CIx9gNysbQK3pDHUJetVJ8 mV9alVglL826bYkos5YBnJ+hvQJBb9riLgn5WzaPDWRy0cK7CRCvNdtSAZkTBY80biDe To3go7qAjyojHHPnSDRQSDo8gUTUV1NvE11uTXvjNrQs8u4lYghc76NXT1RQ+VsyxsWu V1zWdW0VfOEkXMzjzF/Z6gqR4A1MyfjdZ38mvfyyJlODvi+eT1A9btyEzICTq+hrngGP IIdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:mime-version :dkim-signature; bh=fnMlI4cCi5i1NUufdtdv3pSuJm+l7oWlNXT7wYqme/w=; b=SIYt7UbPwyrAKczglEunMoeFU71jSksQEy8arVxQ3eOuyukuzsYS6iAUuVqBXxDJHi OVJX5C66jY7oF1k5//D7u9z08FbhZJoBgeK7XiZLJyxvFUuBdMVBCYXl+P5aTE1SG2ni 5d4u3HEwc0kuxDWd8si1mly5Ooz6y+dN8GnZmltKaGTWFvGsuiojQLYEsVS2GDeprn2k MLUDRrUJD904oez4yD2+PvO3XHk6JccqzpWvk0r+Io0/EasnB3OTR48vJuToBHuPH+U8 0yyBZjZNSDzeT+i5qQadlX5xRshvZxgOW3lyobpFNoZt/eNBiFzNCjqhLEmpMyyBmvMo c/SQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=bHgeyreC; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n1si14361954pgg.19.2021.04.08.02.32.42; Thu, 08 Apr 2021 02:32:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=bHgeyreC; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229686AbhDHJcY (ORCPT + 99 others); Thu, 8 Apr 2021 05:32:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43006 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231205AbhDHJcX (ORCPT ); Thu, 8 Apr 2021 05:32:23 -0400 Received: from mail-yb1-xb2d.google.com (mail-yb1-xb2d.google.com [IPv6:2607:f8b0:4864:20::b2d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7ED75C061760 for ; Thu, 8 Apr 2021 02:32:11 -0700 (PDT) Received: by mail-yb1-xb2d.google.com with SMTP id z1so1931835ybf.6 for ; Thu, 08 Apr 2021 02:32:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=fnMlI4cCi5i1NUufdtdv3pSuJm+l7oWlNXT7wYqme/w=; b=bHgeyreC34y/fcAqWRBoIwsfvdZkzYyZmrqHyhWcPg7AMKYpwTPLq28D/dFAhF5Yl+ XgR6err4AXKzcy6stJsw43sjDFB560/4rfw+ll+kNJfshWjncVPXRMr4FebB7kBt29W+ 0B9zB/cGDhfNM6X1J3Y6HEBk7KtW+/so6iQ8LBdf4j+giIhpckip8lcUuAPnVZYGBAm9 6w16j7CoA03fE9IVY0q3/Fc4SH0a8mIycVu8LVQmjenHD23gr5SoWcfnmfOODFkh0tzO kxeCVjEG9wdyWPa9u8CKnezQQ1OgKBN2D44b9ShOZIaHjX6cau5gGi02TY+rH75+UpCK Y70Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=fnMlI4cCi5i1NUufdtdv3pSuJm+l7oWlNXT7wYqme/w=; b=QCM1nexxjc3rU9ZQDY1phDWmkEPiBkGZHMRFutoHXVcuYvF66PT8gdA/7/JZiEZTuz CVPt8nZbX3aBovYnltXOKywRMMQ+3l/83cTyZK2IzXBwKtlH1wC4Wd7ElWtscSgD0fRG ulZz8vyfU8zYpR1d+UApv7F4St4HCO8B7rBrhQ4YhZV2bbVPRtCFcucz3CnP3QRR3Eo4 TtakjQz3w9tFYYotpI0+BbGCDg2oD/EcfLql3Mg8txafBYl3NItB48loaDf2WpT7WFR+ LGH6mxBzgqvHdHfU+okhh/9fSZzfT6TxUsmDGVgj3WGNtzp1JLDj7miDQmyPmlvHZAf5 V6yg== X-Gm-Message-State: AOAM532baojcaRWZDMdxsjcuWqd00v2kherDB86t8bxie8rbkpkp7RF2 FhpymccjpYxqCwUAXUp2HKayJDrrPGC2xDXXfmI= X-Received: by 2002:a25:b906:: with SMTP id x6mr9689759ybj.504.1617874330845; Thu, 08 Apr 2021 02:32:10 -0700 (PDT) MIME-Version: 1.0 From: Tony He Date: Thu, 8 Apr 2021 17:31:59 +0800 Message-ID: Subject: =?UTF-8?Q?Is_it_possible_to_add_block_ciphers_for_MIPS_OCTEON?= =?UTF-8?Q?=EF=BC=9F?= To: aaro.koskinen@iki.fi Cc: linux-crypto@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org [Resend this email because the previous one contains a HTML subpart. Very sorry!] Hi Aaro, Sorry to bother you. I saw you have added some message digest modules to support OCTEON hardware accelerator. May I know if we can support block ciphers such as AES/DES ? We can get ASM primitives from https://svn.dd-wrt.com//browser/src/linux/universal/linux-3.10/arch/mips/include/asm/octeon/cvmx-asm.h?rev=24520 Thanks. // AES #define CVMX_MT_AES_ENC_CBC0(val) asm volatile ("dmtc2 %[rt],0x0108" : : [rt] "d" (val)) #define CVMX_MT_AES_ENC_CBC1(val) asm volatile ("dmtc2 %[rt],0x3109" : : [rt] "d" (val)) #define CVMX_MT_AES_ENC0(val) asm volatile ("dmtc2 %[rt],0x010a" : : [rt] "d" (val)) #define CVMX_MT_AES_ENC1(val) asm volatile ("dmtc2 %[rt],0x310b" : : [rt] "d" (val)) #define CVMX_MT_AES_DEC_CBC0(val) asm volatile ("dmtc2 %[rt],0x010c" : : [rt] "d" (val)) #define CVMX_MT_AES_DEC_CBC1(val) asm volatile ("dmtc2 %[rt],0x310d" : : [rt] "d" (val)) #define CVMX_MT_AES_DEC0(val) asm volatile ("dmtc2 %[rt],0x010e" : : [rt] "d" (val)) #define CVMX_MT_AES_DEC1(val) asm volatile ("dmtc2 %[rt],0x310f" : : [rt] "d" (val)) // pos can be 0-3 #define CVMX_MT_AES_KEY(val,pos) asm volatile ("dmtc2 %[rt],0x0104+" CVMX_TMP_STR(pos) : : [rt] "d" (val)) // pos can be 0-1 #define CVMX_MT_AES_IV(val,pos) asm volatile ("dmtc2 %[rt],0x0102+" CVMX_TMP_STR(pos) : : [rt] "d" (val)) #define CVMX_MT_AES_KEYLENGTH(val) asm volatile ("dmtc2 %[rt],0x0110" : : [rt] "d" (val)) // write the keylen // pos can be 0-1 #define CVMX_MT_AES_RESULT(val,pos) asm volatile ("dmtc2 %[rt],0x0100+" CVMX_TMP_STR(pos) : : [rt] "d" (val)) // pos can be 0-1 #define CVMX_MF_AES_RESULT(val,pos) asm volatile ("dmfc2 %[rt],0x0100+" CVMX_TMP_STR(pos) : [rt] "=d" (val) : ) // pos can be 0-1 #define CVMX_MF_AES_IV(val,pos) asm volatile ("dmfc2 %[rt],0x0102+" CVMX_TMP_STR(pos) : [rt] "=d" (val) : ) // pos can be 0-3 #define CVMX_MF_AES_KEY(val,pos) asm volatile ("dmfc2 %[rt],0x0104+" CVMX_TMP_STR(pos) : [rt] "=d" (val) : ) #define CVMX_MF_AES_KEYLENGTH(val) asm volatile ("dmfc2 %[rt],0x0110" : [rt] "=d" (val) : ) // read the keylen #define CVMX_MF_AES_DAT0(val) asm volatile ("dmfc2 %[rt],0x0111" : [rt] "=d" (val) : ) // first piece of input data // 3DES // pos can be 0-2 #define CVMX_MT_3DES_KEY(val,pos) asm volatile ("dmtc2 %[rt],0x0080+" CVMX_TMP_STR(pos) : : [rt] "d" (val)) #define CVMX_MT_3DES_IV(val) asm volatile ("dmtc2 %[rt],0x0084" : : [rt] "d" (val)) #define CVMX_MT_3DES_ENC_CBC(val) asm volatile ("dmtc2 %[rt],0x4088" : : [rt] "d" (val)) #define CVMX_MT_3DES_ENC(val) asm volatile ("dmtc2 %[rt],0x408a" : : [rt] "d" (val)) #define CVMX_MT_3DES_DEC_CBC(val) asm volatile ("dmtc2 %[rt],0x408c" : : [rt] "d" (val)) #define CVMX_MT_3DES_DEC(val) asm volatile ("dmtc2 %[rt],0x408e" : : [rt] "d" (val)) #define CVMX_MT_3DES_RESULT(val) asm volatile ("dmtc2 %[rt],0x0098" : : [rt] "d" (val)) // pos can be 0-2 #define CVMX_MF_3DES_KEY(val,pos) asm volatile ("dmfc2 %[rt],0x0080+" CVMX_TMP_STR(pos) : [rt] "=d" (val) : ) #define CVMX_MF_3DES_IV(val) asm volatile ("dmfc2 %[rt],0x0084" : [rt] "=d" (val) : ) #define CVMX_MF_3DES_RESULT(val) asm volatile ("dmfc2 %[rt],0x0088" : [rt] "=d" (val) : ) Tony