From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Ravi1.Kumar@amd.com>
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 <dev@dpdk.org>; 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 <Ravi1.kumar@amd.com>
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
Content-Type: text/plain
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: <BN6PR12MB1508827D718D95803A7AB788AE1C0@BN6PR12MB1508.namprd12.prod.outlook.com>
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?=
 =?us-ascii?Q?6PIbGG4Y2wKi+TveMnhaOBuDmUwsFqh3LT0qpJyftPtfMOp8v6jXHOdUYpIv?=
 =?us-ascii?Q?J7of+Bg1Nkd7mv40KCec2XkiIV4ZxYPjQ6Zoi9+YLVFrUv3lQvZicNUOvwqR?=
 =?us-ascii?Q?fdQnc/yBcNmbp5a4g9V3M9R1JY8XfWN/4/VTR0NhrodR1CSF/h30KQ/unAMf?=
 =?us-ascii?Q?HktndrsH4FVECi6QVeEQl56h92rCPwubuvKhuXoHsyx6ihbeTJLqZ7USXPwI?=
 =?us-ascii?Q?/dI66dkWJNVUTNnNhQKLCNL7SmPDCAc9BbV5fP/K0/nWM2a7JWxg8poL+Waw?=
 =?us-ascii?Q?WfLrmFFNi1z8uOd56CSXw/iLsZL9bIyc09gp//2f6IR1zhBDvsaqRorh0CDM?=
 =?us-ascii?Q?9j52mXYaskgPpHV1LHIVxWdkVSipoqt/mcrzbj1VgPI0xVBAtOI7IgdUq239?=
 =?us-ascii?Q?8s+CHgfW1V+0Cm5NGHH4xM6Hi0MhZaTlIDqu755ik7Wk3bX4Py8/0dpKznlL?=
 =?us-ascii?Q?l4KJpWGSmLaIMgcUwPJinjGhlipWkKI5tnKU3HajzwAN273iUD91dTKzXRqc?=
 =?us-ascii?Q?nRowlxzhSMB17iDH8f9+cTRsYcGBpUEfv9KB1Iihp8YjBJ72lu1w0zm89ekO?=
 =?us-ascii?Q?Oinqf0YJ9RwX/GHGAwpHLskQNwe+IwghZV7+71Jnwjd92ATqDmFYLI/47qgb?=
 =?us-ascii?Q?YhGc0ZAtlKxsgRVCgK7sJj6ItJf0liYWdMzgENCPer1/1nICD1WIZubq7Y/O?=
 =?us-ascii?Q?GuzRH2xlfhOuulo5f50ddbNqU7QZjf3dg+0ivNCSy6SG0jEUnyHXjypHfpSZ?=
 =?us-ascii?Q?7QSIeWzIsg4Hub3TnuOBVP7oqNTms5PpFKNkaQ3+TdyFjN44xGT45wNHcCrv?=
 =?us-ascii?Q?ARrF27W+Dy0cqrr9eS533RqUAgWoYAfxzg4rWxECajRWYeNnerRx6UsJhm8h?=
 =?us-ascii?Q?Pyq6Hvr7/nynnCzv6ZeFpDiCWuwTFbYGvV+uEtzcxji5J9b89L3/3OHEJyKf?=
 =?us-ascii?Q?hiqw/jWV251fiaD7JkegFAyqtukwdQqXl8tJGPihB+wUnmc8yPgMJJy/9v/R?=
 =?us-ascii?Q?1Bji0KAeO44fOK3DEHVB2m0pxkt35t+1o9M6mwnAgYZAXRhR/jycQZXUnK/z?=
 =?us-ascii?Q?VQeTP0xoGZNdfHbfpI8eT/L66gLEhrWZqAbOIWm9Z6YOhscPlI8YA=3D=3D?=
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 <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 05 Jan 2018 09:40:38 -0000

Signed-off-by: Ravi Kumar <Ravi1.kumar@amd.com>
---
 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_ */
-- 
2.7.4