From patchwork Fri Jan 5 09:39:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kumar, Ravi1" X-Patchwork-Id: 32954 X-Patchwork-Delegate: pablo.de.lara.guarch@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DE0E51B1BC; Fri, 5 Jan 2018 10:40:39 +0100 (CET) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0079.outbound.protection.outlook.com [104.47.32.79]) by dpdk.org (Postfix) with ESMTP id EDA741B1B8 for ; Fri, 5 Jan 2018 10:40:37 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Ik5N05DF0rNI8a+4yTIqHdwqsm1UXAVIA6T1f8qFnFA=; b=cNASihX1ZGm7IeabwtP50lfZ0NfcuoSLPA34lZDWLILJJcO21kdgzeugX7J58Dw65TEtgxUte1MsgGNomSX8lHnE/kuruzN6wSE9eHffwbqABT5IsF9P4UVyUgnDVDe7IqHnjTha0jgWxhUdqpfyjHsi3dCDKUW9gd0PRD5eRuo= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Ravi1.Kumar@amd.com; Received: from wallaby-smavila.amd.com (202.56.249.162) by BN6PR12MB1508.namprd12.prod.outlook.com (10.172.24.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Fri, 5 Jan 2018 09:40:35 +0000 From: Ravi Kumar To: dev@dpdk.org Cc: pablo.de.lara.guarch@intel.com Date: Fri, 5 Jan 2018 04:39:47 -0500 Message-Id: <1515145198-97367-9-git-send-email-Ravi1.kumar@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1515145198-97367-1-git-send-email-Ravi1.kumar@amd.com> References: <1512047553-118101-1-git-send-email-Ravi1.kumar@amd.com> <1515145198-97367-1-git-send-email-Ravi1.kumar@amd.com> MIME-Version: 1.0 X-Originating-IP: [202.56.249.162] X-ClientProxiedBy: PN1PR01CA0084.INDPRD01.PROD.OUTLOOK.COM (10.174.144.152) To BN6PR12MB1508.namprd12.prod.outlook.com (10.172.24.149) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 394495f4-9656-45d2-f04b-08d554205fd1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060); SRVR:BN6PR12MB1508; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1508; 3:dzuEVdrWHygfBxT6OD345nTkVjmtSo9D16QliL1e8ZADkoco3vjPXEqUUtHODMyWAA1wRPhh/UqiWq2+oAxXHxxv2XWqt0S7D+tylF45ZqkheiWCQ4/PgZaqy3Rsozt2brgZuhEst9JXt6GBNWgXskvPtskS93okYEkDo4SAhQ4LGe/2Cmv3zXfyLhTLu2pDHIbdRAdEG6zfsm//VmiJk16Iel5iP8HivlunU8fMj6aTG5Qg7IQNsVrEZskBQ5bh; 25:i3pw3z6Zgnf6SQc1lgOjIWgivLBvZu7zEl909/PU+dSae0bnTiM8gCj0jH9KkXWXcxgwUB2WzxigLIyxEvs8vIy4vch8oy2hxmo1CQ0EClMGLMknHFWUToJ5AYQ9PucKJhchW4jOE33VEJTlQONoYVxnPhTgd3DO4Q+jbY+af1GmLjwH161CsZLzm6K+6YZIeQMUvvQ+oyvRn4UIQqD81HuX8RTkItQSfR0gcK6yRd7zv8m1ENMBZaFW/Wmwo48oB8ytUJIQjzTq179QBKtntkbk1VMCtXVyGpyosPeaGJmTLNZ+yUwai8t1P9FoXJOQhSOI31va4h17GO0kyLcVYQ==; 31:Ac+R7epwHMNRnZ2PJIo4oIrAAHp88nHRofzRwIoznNSmV5RTSPJBV/7mkyiqzo8KRLwXnxDycctQeEZlMVBMiHx9m84TP9Olx396Xfk/lDWQrK7gaaun+iIzsDmEarR2XSwthxB+y2Nks3voOngqMwbhkWDK0UpeODaUpTfXn0JTE4v3aqKLmQ2lwP+Gf8S0pBNzglOM5UgUHiRFqkxmtxVGOVkFfQZxDhR0WS5ABU4= X-MS-TrafficTypeDiagnostic: BN6PR12MB1508: X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1508; 20:lUQwP25VuQQHGKc608cq7HNc5/GxmfmbQG6CLgzWkVyZ/vrZVbgF8z26Fpksj9kJe/7d1YvUoKEn7ojt2VstRfjzbTxrIHWumc5OdobtVVGh1WCT5IiZZ/Idk+JkqjKQvvd6htF7I1s+NEOTjkmUlsptqkqD0cqKsSSknAkvL0hnEl9Klx6EWz59Xno45PD4E6hoCoHgBKC8JBQUm+BgGgIMew/Y5QufFOUA7LxFTTBwVP85TFxK8E1xnpssdk3Qa4nS96k0ImIWCZm3+pNYg6LX/zGotIpdFSBVQhnJWTyYvNzLf47ZgYs4ZG8x1Ou5+5K8MIUYK6NEbFgCns1pq7F9ljz1suo/qj3E/nxWdrB1nhsdQBu+zmbTXtTQSyML5XiY0GnpKUxSim0B6wPdQJW/JVWWDRpEeTT8Y4m6X4eNFrlG9vHU7oMSMAlfGvB51AUymXGYzYpZZhZAafM0nxIOSaqGjl0Dq++n1uxV7pvcWg14ffKLznFO0SkvYYJu; 4:axTJV0lSeT+ZiWoMDAyqOxoG25HpIsoiQMtJv8wBsjHefACD+QkCRhhGPTjGYr7gnHV3czMiBZ2flngf22LbvWBhrCdXg9q4RQ/PttIeDB1CbAcdWqgygQbhzkgMBYpSRfcKlzE31och2xUjrLo7Qb/FOnFH0rPTWjDLN1Wxr6lVbmRN8+SRL9/yKqaGNG4I4h2HEwXH/RANKaOZamiiEcPUjwCTCuNhpMWQX+e732RDXn4kGiJjd1UQz4IFrVbcT8tuyfalt6mEfXyMoRYCCrHn4T4Fenxnzlf+zS0wjrDIP/EpxQYrTKizgmQqHZFZ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(3231023)(944501075)(6055026)(6041268)(20161123558120)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(6072148)(201708071742011); SRVR:BN6PR12MB1508; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:BN6PR12MB1508; X-Forefront-PRVS: 05437568AA X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(39860400002)(366004)(346002)(39380400002)(376002)(199004)(189003)(6486002)(2361001)(6116002)(106356001)(386003)(105586002)(3846002)(6916009)(2950100002)(16586007)(6666003)(16526018)(36756003)(4326008)(2906002)(316002)(97736004)(25786009)(478600001)(86362001)(68736007)(575784001)(8676002)(48376002)(51416003)(81166006)(2351001)(81156014)(52116002)(8936002)(53936002)(305945005)(50226002)(76176011)(72206003)(50466002)(53416004)(7696005)(47776003)(66066001)(5660300001)(7736002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR12MB1508; H:wallaby-smavila.amd.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR12MB1508; 23:r//1e5qEI98xJc7kIPFBGbZSAGJiDLKF7wXmMi7mj?= 6PIbGG4Y2wKi+TveMnhaOBuDmUwsFqh3LT0qpJyftPtfMOp8v6jXHOdUYpIvJ7of+Bg1Nkd7mv40KCec2XkiIV4ZxYPjQ6Zoi9+YLVFrUv3lQvZicNUOvwqRfdQnc/yBcNmbp5a4g9V3M9R1JY8XfWN/4/VTR0NhrodR1CSF/h30KQ/unAMfHktndrsH4FVECi6QVeEQl56h92rCPwubuvKhuXoHsyx6ihbeTJLqZ7USXPwI/dI66dkWJNVUTNnNhQKLCNL7SmPDCAc9BbV5fP/K0/nWM2a7JWxg8poL+WawWfLrmFFNi1z8uOd56CSXw/iLsZL9bIyc09gp//2f6IR1zhBDvsaqRorh0CDM9j52mXYaskgPpHV1LHIVxWdkVSipoqt/mcrzbj1VgPI0xVBAtOI7IgdUq2398s+CHgfW1V+0Cm5NGHH4xM6Hi0MhZaTlIDqu755ik7Wk3bX4Py8/0dpKznlLl4KJpWGSmLaIMgcUwPJinjGhlipWkKI5tnKU3HajzwAN273iUD91dTKzXRqcnRowlxzhSMB17iDH8f9+cTRsYcGBpUEfv9KB1Iihp8YjBJ72lu1w0zm89ekOOinqf0YJ9RwX/GHGAwpHLskQNwe+IwghZV7+71Jnwjd92ATqDmFYLI/47qgbYhGc0ZAtlKxsgRVCgK7sJj6ItJf0liYWdMzgENCPer1/1nICD1WIZubq7Y/OGuzRH2xlfhOuulo5f50ddbNqU7QZjf3dg+0ivNCSy6SG0jEUnyHXjypHfpSZ7QSIeWzIsg4Hub3TnuOBVP7oqNTms5PpFKNkaQ3+TdyFjN44xGT45wNHcCrvARrF27W+Dy0cqrr9eS533RqUAgWoYAfxzg4rWxECajRWYeNnerRx6UsJhm8hPyq6Hvr7/nynnCzv6ZeFpDiCWuwTFbYGvV+uEtzcxji5J9b89L3/3OHEJyKfhiqw/jWV251fiaD7JkegFAyqtukwdQqXl8tJGPihB+wUnmc8yPgMJJy/9v/R1Bji0KAeO44fOK3DEHVB2m0pxkt35t+1o9M6mwnAgYZAXRhR/jycQZXUnK/zVQeTP0xoGZNdfHbfpI8eT/L66gLEhrWZqAbOIWm9Z6YOhscPlI8YA== X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1508; 6:PAoBK7eNeRa1V6whXyl72Hsq8OAG9Das8pBK4wV4UZnnJMveahDWjOsxA56knocaneObGS5XSgWwbDQhSQKvsS4IbckLEVLC1NhT3NS2vWoi9/9UIYX5/Mfnp1h0cPdx+WY3zywRhieXZBYsVcyP0NAv4odV+Gk3k/Kr6qWtisJ9dVPx1sRZZqOMpo8guiEXVXZUfzVlPixx4qxQVskiCiSBUefZ5CO1rA092fNEfsyvQsPBTt8kAdc3whQmcLwPqKqIH8Z06LPIJKXNoZ1ql9BVhfsgoY+geKyvAsr3Z3Wh0sLkJVdYS450jXNYkBXBk3oUbx0mhAQCWPSle8JcA6+3oSfyEM630+F6yBf+YrA=; 5:J5MTo02hed3hYhbYMo8GvIVXNPVz3DJXIFq7LyqfjbTbmNlbgiqLd1KLH+7moYhKYnG0ed9efg8CqInG6lFQ3ATVF/qB27GIWQVfLHuPghrcGHuySzce4zsQh29aushvK0mEiD0n7iuuk2xV6kjHR3FacguVwDUhi3GceRab81I=; 24:3dJnjAhQ9olSZ/Ik9ef9dJqa8ki/fOxMEBKljZ6j4BX2WH8gq6i3ytW8eyXNAcj64W+789HoBA9OZUOztcuEcvewbQH98f4TcOZ1EHBZU3E=; 7:EBrMPvskNycK4X38C1j+fy6n9bGyOi6B242+Y1abv+bmiKzYnM5LGyvAXquRov2B2US1eqvYTTuPus+A73N/1QZ6bKK2wkD3DJFoHoAVH1e44DWsw4vA5N4XIf+8RyJhP/uZas2quMOBFZU9WZUCHHpJrSCGisVGisAU9z2cCI0Dlu2BHlxZWor64jk3pB27PDuJoEw3HivQK736kH/SLcHJaXwsi6jtnAjLgrxhqeW3inmaMawNbT2nCJH1QvPQ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1508; 20:rrw12mrZbvTRh6L7A1phbSXErWLsxSUudFajgbs60XqdIuXc1WioS7wm78sV1iNNYSAaE7kkKL1IFA2znR43HEinwm3Er0PN+u+jRLtf1GQxr7b4pQ39cFbhk6jn5aY33s+pmbb4IiwZnHT7zSOW9JBwb83ZTEAuMdqngmD1ycnE+2BhyjH6SS4sIZ08D8z6WuSTJqpHXlO/2z2iY55rVnrwpN+hI5RtJeYlzg9Z++4MElLZrNeYZylyXo7mKXA0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2018 09:40:35.6855 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 394495f4-9656-45d2-f04b-08d554205fd1 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1508 Subject: [dpdk-dev] [PATCH v2 09/20] crypto/ccp: add ccp hwrng feature support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: Ravi Kumar --- drivers/crypto/ccp/ccp_dev.c | 20 ++++++++++++++++++++ drivers/crypto/ccp/ccp_dev.h | 11 +++++++++++ 2 files changed, 31 insertions(+) diff --git a/drivers/crypto/ccp/ccp_dev.c b/drivers/crypto/ccp/ccp_dev.c index fee90e3..d8c0ab4 100644 --- a/drivers/crypto/ccp/ccp_dev.c +++ b/drivers/crypto/ccp/ccp_dev.c @@ -88,6 +88,26 @@ ccp_allot_queue(struct rte_cryptodev *cdev, int slot_req) return NULL; } +int +ccp_read_hwrng(uint32_t *value) +{ + struct ccp_device *dev; + + TAILQ_FOREACH(dev, &ccp_list, next) { + void *vaddr = (void *)(dev->pci.mem_resource[2].addr); + + while (dev->hwrng_retries++ < CCP_MAX_TRNG_RETRIES) { + *value = CCP_READ_REG(vaddr, TRNG_OUT_REG); + if (*value) { + dev->hwrng_retries = 0; + return 0; + } + } + dev->hwrng_retries = 0; + } + return -1; +} + static const struct rte_memzone * ccp_queue_dma_zone_reserve(const char *queue_name, uint32_t queue_size, diff --git a/drivers/crypto/ccp/ccp_dev.h b/drivers/crypto/ccp/ccp_dev.h index cfb3b03..a5c9ef3 100644 --- a/drivers/crypto/ccp/ccp_dev.h +++ b/drivers/crypto/ccp/ccp_dev.h @@ -47,6 +47,7 @@ /**< CCP sspecific */ #define MAX_HW_QUEUES 5 +#define CCP_MAX_TRNG_RETRIES 10 /**< CCP Register Mappings */ #define Q_MASK_REG 0x000 @@ -223,6 +224,8 @@ struct ccp_device { /**< protection for shared lsb region allocation */ int qidx; /**< current queue index */ + int hwrng_retries; + /**< retry counter for CCP TRNG */ } __rte_cache_aligned; /**< CCP H/W engine related */ @@ -454,4 +457,12 @@ int ccp_probe_devices(const struct rte_pci_id *ccp_id); */ struct ccp_queue *ccp_allot_queue(struct rte_cryptodev *dev, int slot_req); +/** + * read hwrng value + * + * @param trng_value data pointer to write RNG value + * @return 0 on success otherwise -1 + */ +int ccp_read_hwrng(uint32_t *trng_value); + #endif /* _CCP_DEV_H_ */