From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0050.outbound.protection.outlook.com [104.47.36.50]) by dpdk.org (Postfix) with ESMTP id 00B1D5587 for ; Wed, 28 Jun 2017 17:17:31 +0200 (CEST) Received: from BN6PR03CA0069.namprd03.prod.outlook.com (10.173.137.31) by DM5PR03MB3163.namprd03.prod.outlook.com (10.174.190.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Wed, 28 Jun 2017 15:17:30 +0000 Received: from BY2FFO11FD037.protection.gbl (2a01:111:f400:7c0c::134) by BN6PR03CA0069.outlook.office365.com (2603:10b6:404:4c::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11 via Frontend Transport; Wed, 28 Jun 2017 15:17:30 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11FD037.mail.protection.outlook.com (10.1.14.222) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1199.9 via Frontend Transport; Wed, 28 Jun 2017 15:17:30 +0000 Received: from b27504-OptiPlex-790.ap.freescale.net (b27504-OptiPlex-790.ap.freescale.net [10.232.132.60]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v5SFGaPr032734; Wed, 28 Jun 2017 08:17:26 -0700 From: Nipun Gupta To: CC: , , , , , , Nipun Gupta Date: Wed, 28 Jun 2017 20:45:52 +0530 Message-ID: <1498662964-11251-10-git-send-email-nipun.gupta@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1498662964-11251-1-git-send-email-nipun.gupta@nxp.com> References: <1495735361-4840-1-git-send-email-nipun.gupta@nxp.com> <1498662964-11251-1-git-send-email-nipun.gupta@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131431366503656108; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39400400002)(39850400002)(39840400002)(39410400002)(39380400002)(39450400003)(39860400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(356003)(498600001)(47776003)(2351001)(105606002)(33646002)(50466002)(48376002)(106466001)(4326008)(36756003)(110136004)(53936002)(54906002)(38730400002)(50226002)(104016004)(5003940100001)(8936002)(81156014)(5660300001)(81166006)(305945005)(8656002)(8676002)(189998001)(77096006)(6916009)(6666003)(2950100002)(76176999)(86362001)(50986999)(85426001)(2906002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB3163; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2FFO11FD037; 1:nmb3fT0xeJ+5DpgFP0DODAaj/B9NEZVPoZaD981Zo6?= =?us-ascii?Q?9cH+vWXxeaIqs1dlPzSmqQYH6Wz1LK/6VmqnQMZ5DEnQ2FEhM3TBt4Mjv240?= =?us-ascii?Q?YSAIcno0pdZBs0rlrsNJcts+15ay3FwD/ZcLoEmrBoCB/I9oK84LLywvN7Ci?= =?us-ascii?Q?sXiqjeFDVCfIVyq5jpMCTV8OyM5NJYfsM6oTecIG501aRb5SRDwAN1K/blv9?= =?us-ascii?Q?GkOOsoU2pV3rC0Fed1jY75mibTwopQMWeMmHNlT+nVVxDRQdu0Ce48F0RiDg?= =?us-ascii?Q?xSoJqHnoV5UowgIpoWUDYsN7iT1+PkQxVpEWOooE/oxVavsbZrxG0vfjge6K?= =?us-ascii?Q?kOXhYk4XfXNed1mCzxz0m8jS1Jze3g/uLu7+wubAObhlExo+lnlk5Hw6rzYU?= =?us-ascii?Q?nqe3wLs45touLKbbAz1aCh05umHKMK5sBwpp7JluOUy/hyYz1RT2K7y/mWrs?= =?us-ascii?Q?WscnmQy1Hu1JLpurVKbb/XVVISP25UMLnTWkRK8Eyr2jSHWgn88l2376oZiv?= =?us-ascii?Q?pS2I4o5dik5QYMrPEIO9Ys6pyoF/n+e0K7K2M36rFcJHpoCyewWW+c8tUVHj?= =?us-ascii?Q?zQMKch93kKdI0/T5dF8ELfjJ3amZCIq5II28Khi0B4lrB9pJKsMgLWyzh1aT?= =?us-ascii?Q?eH70c6uRDH8XSZIQkZL7f9XQxMtBF/cj1GrIOygb70ZQUxRfxQEwQzjImMqw?= =?us-ascii?Q?2kaLUXLXaq+GWcObCznvRwTHEx94aFS9ZQSFC6271LLHSLNEd7cnElpdeAjQ?= =?us-ascii?Q?brOktO2/btjwrmA3bN5igZ8JBTLu7M0eCil65ZuSQeCNGyC1AaHafFfqZ3/T?= =?us-ascii?Q?kCk4CMQmxsRjsVWoOW/7z98GX/YE0lGWb1hS+5zw09UB3Q8IAT6HkZJ6f2/U?= =?us-ascii?Q?WM9LeppCQopPTkERyR3FUaof7JBImyRQyVtQNcJLtsGU9MEpHiaf2irPOd9K?= =?us-ascii?Q?v2zXYMIF3xMbuOJNpMvFJOSno2YGGKohBONArLm6acfFdusUsCgPu1AWf7/w?= =?us-ascii?Q?gukV6YK1nGGLwgZTDFSlZpUms9wBCUmJ2QvpGnA0aqh58VLCqYebrpnhHzu4?= =?us-ascii?Q?ITF+02NiuWBc2iWqQoHLonDR/hIcorHcAl4cssi3QRNMW3Qg=3D=3D?= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0bf24d76-0779-4c40-094a-08d4be38cb40 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM5PR03MB3163; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB3163; 3:fTTFwNNp0xcG41JEFaZ737+zv1wVPq5YT/5ylnYJJoBKCaIS8EjWk7GDjontTD6nu/jJiYFYSGaB6L8RcSTjoFyYGpEo5kA9H3sUkXuUc6K+Ln9maQoji/fKEwG4fTx8c4YyPb+YtLxpG26FmhDnC79oSaXedckjbhBQ7U0ZtBZ4UdinzIT/HCpQ/hwUrn1U2S3gcILZhbLbtKAhmpHpYoEKMC+ziOklYLRc0hS2OVBVgp3gx1DGWorRCTv3R4RMKQU9IdpwTQt1fF++ow0mEQbM2waJ1UVURShiQ6a6KtXxNJs3o4pQl+S4xoa0O4X1uhdQw1v2YxyJs0bQk6VEqEU+gDNdmEM86c0UTaCP8LZC2yiV9oyAwUfK67pYpUcgKGWcf3a+mxMnKzHkE0Bfw6qdr2w31B8fLGkW1SyJKcq7CIqXNsVtKrmAICmmPrHqRXr8vsI2DP2YODV5vu2qSDLfGSd8JPTqHsGBJ+1dKFDYVWtQmY4ATzJ6nXhu6u13kJMhKpitNUnYA9sfNVlG9L4aSGei6W0AHteWy4c2oevzW3LvnG5vJRwDOkx5FCgHfdxjUCJPRFrvLkwBVflqYjP8SHD9MKw+8m0dbShk3RYFdze5sLm0p6jAahKhuvInFo+HmQrYPvjEB+9n8WIYZE9pBFXK0+FYu7Liayzck+4aQCQ/brh96kF9+9RM4oROjD5M/MLAr21Ui626llDnQtAiayF0DZKiY8FB7YbvAx8PfnZGef+xSuRxGLljSVtO03DmwTby0MAeDyjTmdwirucjt091bk7jR4UE/qB/L6Iljdj+P5xzb9P4VjlkMy+CtpLLGGkn4lU+82UCGyfkpQ== X-MS-TrafficTypeDiagnostic: DM5PR03MB3163: X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB3163; 25:P0jzKjSa7jWkmX04bhl+gg9dmNt4T8UVL48N+urb3rqBpXX67wEcYF9ZXidLdjisp+2GY1Al8AK4ixEdMwOI4TQrbWuFiNoyymWfGpURBuXKFd4kjGLDqkiyWrTYC90FYEw9AFeATSLsNDRkdSBkyz8+EyBy8KvGPZ/6FaEywqUs4XmumiDxpun7fFPZoVSiywO2fmMRpuPwEpKifUGtPaQOK0BBVmLFihNhaMsAeVa4gg76xAT4VbA9VE6Q+KtxKCGIMl+lQfcKGAE2amYn/uPEWl8OLeqU46GwKfhAO3Zp/rSUvPnuXkF53g9IQZTaElFXeuRLrKHsAC0B2DEI0Woc7TUr1/jjIavWRgOSehIY3VeK3w0Xo1CNjDL19cY8qHYV5mX3RGcTXnnME0SoyOC5tKmpEIWWwsim3LY+9LaVWzmvgNTH7fg9TjX+RI0QGq2BtxD0TfW6c62EPcH5jGcsvLNQ/emEEJYgltye6+lxaJJSJPXm5fFzppcjdAmS2AQinaxijpzqWiZxmaa3RbAsVJmTTSErxUVpYWhGKxdt0SWMcaygrg9730kGi251Z2AWcPEW1JWnysgU+dNdfagcjD3fPBQcqBUZvXKpC6IzEz4dqy2iTF5eWjRAuXgQOUXTzJTHRlHJUl9M9oRNx6Z1BHEM9dqKS2MBhZQxwiZ1DWuO4LRXcyKtn/lk39LFrpfCFJbmD1nPGqEdWcOp0BrGTn9wKJyicvjKuA5BpYOJR6bOBITFzmbpQiqPuRUNXdPuP54V4Nc9wlRUiv7iMvzQgT/wr8TWqThpBnBW9oe/5hcnqDYomQ4xhx2gyb+qO/nTiZIyrvLHy9Kgqzo3CDy4qaaECtXwLz7wiHP9/mvtiYIXQIzBRfIbs3euJu0/JGo0ri9AW1zBAm628RBMhLpcC6nkThw2sGQEgzqKwLM= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB3163; 31:tHQVZboIf638G8f8E3okCpXiECrbTLNk1a1c6rjTjBrqtulX0/ELGJNwc3nJr74AfVO/ubBjRXNKlbhmL6xMuW+C4ApWdLQyREr5zAw+HYRgNCRII0H3HyA8m3tef/etwMY+eEd1EbePnVAVvDyIL6Qes8wEasMLVWLsRY9r+qaNHAjrhVhW12CCpYBNPKfSr7lmXGyMtIjI4xtm+PNqg4g6SB9q1WKRnen7eubYLBRpTr5sxSpjwFNVhU5ZFdaRh5VXv7FtSwQhpJE1+uk5m72F7/GCscXQBBTpgbcQjSx+IiEZb0JdUkNzKKUUPJ7Ixe3El6/LYPm7x03LIKlP8azyKgTD2cCF7aNLCXBz1nmCkgDkDzt9pyRJeJEYkq9cxyPRQdsXauS2GmQYGKAu94+TUtXeJ2xpyWiFefmqLYcp6+aM1d6qvGjaeCeEuA6iM8RkMsLfhTZSHY/asJFgdHd5htfImRF/Cf+ZIrlxT2bANA5IBbwGLdaqWWBO+AWZYtjyvk0QyLmaJGgdyiua31lKcogFxuUJvczcp9VcFkM/75IDHHnVCLmnUTEZr31dx3wCR1d//y3v0Zc91JhlBGWKWy4C9PzgAA3GXzDeneXwW7P/2LrPbaQTgLDK9Dw8CGdd18EDrtXPohBz/6dYJbIA4E2GH3Z5pyaYEEMrlAobmPul71HN+1444PbKXXA7Q4/4Z7RU8Sb0ymzIDckwJg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(185117386973197)(148574349560750)(275809806118684)(158140799945019); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13016025)(5005006)(13018025)(8121501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6055026)(6096035)(20161123556025)(20161123565025)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(20161123559100)(20161123561025)(20161123563025)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR03MB3163; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR03MB3163; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB3163; 4:w7y5x7K7jo3IMl7f37aYcFAHp75kB4HvuIYO4CJOCV?= =?us-ascii?Q?1ZENxdw5nsDmm4+R9HxqiKTWQGKh9dEpcpFMW3z5JnKgpXXfItC/wtTcqBdv?= =?us-ascii?Q?8MyVYhWZm2BEKNF2OoM2P7E0HDCm1XgBAd/uf6UaXyvbbYSZRhV55/wMyI2T?= =?us-ascii?Q?os7sefo1W3yRVadom/sgmXiBpBwfPt7ZD60hNuX5GEgbiPcFoksRCS0GyvHJ?= =?us-ascii?Q?y5QLkMDWEzrccTOJkcNN6OG3NYe+ttIgjZ6S9h5hS3h7uH0a+N42XSBiQ+vp?= =?us-ascii?Q?3Q65xEIaJJq3aXseMyil2nstwO2sTcXLbly9i5KSDEBZ8nt0fWNPcgKkjKhT?= =?us-ascii?Q?D8luqV/lb5OVEUC6iY+xX9xg4RigspXUPoi+fYD7y9cmCGqjajL3KNnOpL75?= =?us-ascii?Q?gpC4OJZglf80wlpYMo+O9Yy00YzSvrtFgeSxKBo03ye+0tPCG7HEbpXmLmuY?= =?us-ascii?Q?yowDmIZEw0Ozrqvh+j9Jg8Aq7M9T+Sw6iHIawk+mMcyT/azZl8XvXWWH0EIN?= =?us-ascii?Q?qRQXPp+E5EIZVBrWrk3+rGhS1qR9HbW4EY8R0WLlcB0sgsizitg0EewRbqFF?= =?us-ascii?Q?3p2Mi5mULc2MApa2+F/w9Glhk57umNU/rD6shUG1HREXBZtasTTicwxN8BVq?= =?us-ascii?Q?tzKjiESLBJPj7QMmgLgHMYBK/b+v9EJNGHLZktSWXVuX79cIV6bKwi3We83Z?= =?us-ascii?Q?8pelQNWHkPn/p8U1dp1BGn74Pwo7bmF5nlSWp5N14lvqOtU6g+IXlJg+3yXv?= =?us-ascii?Q?yLnbkuyFKn5yeoEMNmDgzFT0J3g1oU5MQ2BhD+DV6dqDcVe7IDDsi0eq0v5l?= =?us-ascii?Q?7I3f3ukAxoIR57KGFoM9w5WvKN7mG9HNbBU009GzZSVFz0fOJXchyWknX2SU?= =?us-ascii?Q?Eq9mKCGFMGPasBMu3kuCi+j3Kfe6wVyTSTsp/b8g7zAZPm485f18fgb8AxZc?= =?us-ascii?Q?WKmsAwpzG5wv0aC9+FnRbnrM7Jo8iox2mmg5fMnxzb+eSfjZxyqO3LXCC/9H?= =?us-ascii?Q?wZXgkv77FF3i96DDkhgM1I5Cq/oPiCgEm0shvxctY9/EHMKk2DaBKGUOgQrg?= =?us-ascii?Q?THiLakMfYGGCXJ9bBr66F3KMfbDnocUEu9KYlb09sZJuNSlTsNXb5mVHgoPX?= =?us-ascii?Q?O2WHbDSXUKSZhBPzxsx+upuHvPFKLlVwuMZE7EAIYh/ZjLhn3CsW9ISlKzlC?= =?us-ascii?Q?KdL2XQGEuMgdRe0B3zwaXX3/qTZMGaAGmTIMilBBzvvSjUkOvZwzQz4QmpVf?= =?us-ascii?Q?LLVyPKLbCrEEqhYf7qr/UMzNhXrqyYPHvC960YfXWA2mC2ILBCmcv5XyGyxC?= =?us-ascii?Q?kF9i1yElLO58FBMlQyP3oGACkfdoDuC8XRf87LZf7pktX2i32VE6ncL5VAcv?= =?us-ascii?Q?KllYaA6NGiqjUC9sGeoGFsDWjK86Vuf2MwnytGy/c1Hwmk?= X-Forefront-PRVS: 03524FBD26 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB3163; 23:lRtlwU3ZCwuIpCUgwwBRc3soYsVQvEJEXjwdHswJ6?= =?us-ascii?Q?WhWSwjYqsRazD49mylQbUbPVqg3ADKLeN+Ool4lRc3+AX2uq2rnR+robiW35?= =?us-ascii?Q?C9wweW0zy6h0V/LoQZqf15Nr2kSMcRj/ftS10ddkvc+tNeHrce9i++wz2hKn?= =?us-ascii?Q?Y4LHv2nx/rL9+FpQ4uExIyW91P5mc1Lf//YDT376ThNypYP8iEiAkzkzHmAy?= =?us-ascii?Q?gaG+SYhdwfvNwyF3UQ5vn0QoHR68nVU3QM9jx6o5zGKM4dFGvO1PmhyUaDfh?= =?us-ascii?Q?OSx3p1oiCXSpr8TZ8yEkdHfOALZ5vKiBtLmVIgxSdHJkJ9L9AUrVGXESsh2M?= =?us-ascii?Q?gXFob9ZBHnWzkb8/IqOv2gCpaUPMLfn54NGbvvNyWLYAi0v3MKfb2+jnG+l2?= =?us-ascii?Q?pK5Q6hVPwV9kcXl73BE8iCgGipUUFeqoF9KLNsIgyO4xUGTM+Bg5vH7F9VTL?= =?us-ascii?Q?ixK2Ow8eXDtDCNCEFj0llywwZ24mZSFQY6xLpCp3EdPo9pWjMc7/t62RYIgU?= =?us-ascii?Q?eyBHT5sd5KZHK9dZVIMHFuqrAX12bv9YFMSTXsmlK+JVIUKRYX2ibN1qKaqU?= =?us-ascii?Q?AtNCZfB+RKJ7IIRSSqpJjQuNlKNlve5o+rE4Scer9DxBmBDz3538ZBkh3A7t?= =?us-ascii?Q?wQ2FN/AYCpvEiXMuyeicuvgdGqSR45qLGShT9OwWezTOT7ZpU2xmye0rfr/a?= =?us-ascii?Q?vAkhnHczE7TRZ57oEE1LBkWKGaVdIMk6312ABHzVktjj7OCcyJhPa6ULct0G?= =?us-ascii?Q?Le0J7xoZ5SM/SiGj0N5UdsV1MV1jqCLJrqeDPlTzTz0BieNy9idn7sQJfD3Y?= =?us-ascii?Q?aWPXwmKqrfWivpbkCS+Ee4p/MSoOFSY+T9/mX/CYPzAllFdK6hbIOj/sEbyX?= =?us-ascii?Q?41xsBbxt08ELvU9KwkTWtCplBsfLJWrFo95HM7Cn4W2lUXLg5P/4EGFTXeSy?= =?us-ascii?Q?ZmEIuTPFz5hRgcDclLc7dStzQSmnp3KyUS6Ym5V2EYhpek+QmhN/FrsCZuy2?= =?us-ascii?Q?H0FeVhgT6odirtTbCFl07nkfdOYcIfU/vKxUhQEM0Fq5wI+foQCszJq6MfkB?= =?us-ascii?Q?MVFnvH9Kje/6nUKxi94FOQsHt2wyUeIFNaagEV+Js3R4wwZh4sT03148SzDl?= =?us-ascii?Q?ngS3XL1wyB7nLRvEOYAroEdh4VazdER4so4+EdFCYrvVEZWwdoprQMWK+uBE?= =?us-ascii?Q?AirvUt7JC/7USpkL8RNQ1YaxBdrkZ9siUD0hmHI/5QQp1yG6+k0daOYyrtoc?= =?us-ascii?Q?oNENwy14qjb6C2mII1Fuhcyvn3tYpsSTra5uX7D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB3163; 6:l3nhedF47LTd12GoAZdrpRjm2bFgJXg/6dQQ8h1aBM?= =?us-ascii?Q?z9wJCOzb2MqwllI6iDy87qgyKyDmkehsFAD4HE44KgOc8F1XJl7d8UuBVg+S?= =?us-ascii?Q?3RuhETvlDXRLrUnCHTE6m4DoxEjwZWqtmXlx9QFgds+P+rc1B9nLGQMMG43M?= =?us-ascii?Q?+r9PIav1HzkRbx3fwDQG36g7aRjodB1adrh+HyElkMagGYrAKrAKQ9vEqOxA?= =?us-ascii?Q?bRWm4K20QIlMWeC5Ofhx7d4Nc0FNVZmpx+mm6obl2hNMeWWDPlUOms3/4lYo?= =?us-ascii?Q?Lq8AjGyzh9N2V5DjFGhfzaBwW1d5DCSrpMG0Px+gYzl/S9bY4HTl/dHUf2Ks?= =?us-ascii?Q?NhPLv0qqn6+Mx4o7tenE+V8rkf9xatcG1jbYnRIwUugcQ+hvIdtTf2kpmNw4?= =?us-ascii?Q?sFuqEgKUyQd6H+kR8LCHzSoK4CzDS79UqUkvoDGmxS/A0UCqQjXuJ2SwqbrT?= =?us-ascii?Q?z/UJoRJAKauwUsLBZB7K3J3XP0ESVriCEHFQahIm4ZusUXFG5sdOWVEsM4be?= =?us-ascii?Q?KvgnQ5d4QG1h7TIVt0/TwlhzOfjfTGbxYWcxLKQE4MkQp+/qBWlVnepfjFfy?= =?us-ascii?Q?nN2jgc2+wRCwh/obqu13KNi6SMJdTb/bhZ26sM1hS3aB1HBndKiLpSjn3ERj?= =?us-ascii?Q?TCbJvHkZleqXvXLRqVQ59CEMfT6gaYPobWZCIjhv7fzHG8vI9/97E3sW4txg?= =?us-ascii?Q?XthSV/L3Djel9aU8/61Tu0NiaL1oF1nTzqui0cPsBZm641ZjICG3junWYAjQ?= =?us-ascii?Q?WxsGvuXcZS763iYn87xBivtz2Q+oOrjgSlMcBLrotbAHzI354wTzWmKddmf2?= =?us-ascii?Q?NHP6jqZHugiGdUegxIduwuRwXDBSwTnhjL7DU9uykwGPlphAA2yJy+uqWnWJ?= =?us-ascii?Q?wH0r+oPuOXaL6bEeqdY6CtuVlBZj3GmXeIAz4EAjp5isUg0/jS8BBSDvoSud?= =?us-ascii?Q?cYarhGelo0WHiqLLzhmhjlHSjX8GmVmqpBcU8r4w=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB3163; 5:JPeVOUdEIsc/Hlio7s7iO/uRMUgNAUSnTZBZWfwmrOrfZD/uetu+c84Obyy4J/BH+p40Mzy+Cli1Yj7Sb6dZr2fjmSh4JxsfOQVZ3UtZqEQReyvpez+q+/UgwREX9h3ZUdehAaF6JC2wxqYQ6fRvs30S2Opkhy0KRo8Chhg4WTI6+D+BGFHhEI30zrKMJoPzxgUuJ/AfWfy5NORjVisElt4XdyvNkvXkHIZ4Z3EsQzfVV/anWuxVC3LEp3lLv6PVWP5rYP2cuc+CfcmTfVNMKnULVXQlJ8IC3J3gzmF3VGC05O7F7kxQbemXFxSDUs6ubcXAq5CptaxwOEUpupl+/4A+owliq73XNOGSl4COh08NUrQ+YPZxLC7jUhh3Zb+q4g8GOz8CTkF0d5SdH13FaUz3POWs1B44ZOJMG4gdFFBuvpX46guGgBA4VpN+joGTZh18EI432CylxKJSuEDk/qqbmPuIham1xfKPbLMWI4q09M3LpC/GrvkatfPjCWz4N0JkP0oQWmYfq9pxfGniLg==; 24:7zPWs7OuyF9F1/TRgglJPJN1YTGF3bd30Em+ve7j3sbo7zOPFz0w5BX2fLG8wORCaU5hjd4H69+qGn4ju7hP2eX34PYhWpYrw7Cff1FGVbc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB3163; 7:eows/DqqwBseyIDC/2kLqOHmWqMA5cNHd/81lryZyHZTtNjzt+/AMNRbhdjo2uL+blzq1so8zsVBrj9CrJF/dMU3joNr3pFZiKA80IRVo5IBw4N+2ZqH5LwqPo7Wn+79IuUia5SHsOp4EiRLUnFTfSEoSQkjkjkz8a+HdNl6OpbHGlKA6OmvSw8gun4P4pd/DahRYTwH3FI7COTJoUw/NtJcl40ZDvPM2gA49Ef6z0ckANAa+MKzKB7Cc/ED2BFcl5OdCDwXBGmJdk5CYMuQcS4m+1PnIbpZQJdJASUsgFH8MuwXC2xsddIag4/6pTh4veufgjiiD1usDhl3Ivoz0pvaKCILZPw1E33+1/1Q0rhsadIgaxrhwjS3u5DgaOgpCQAABs4p+11CJ3X1fyQR/eL5sHEB1K7SRKJuHkQq3owdawI0NYVWsyBcdgRsaRC72StFG3KTJyiOum2il03y8MZBcGJzOTci5jYXyleNIFqUsITumSnqOKjlox07RzacXJTBRVVAjUZ1Ex9iMPHwGcqOePXzPj9GczAZPH983nsc2ZcuysQji0M+P3dbe1qFaJrxDm+AmF+CuJb0JiO2pkSQiOtAtJXv4jfM9Bnn5cdZK5vNSO01WBI7yk62ayB5QA0g+QbLYwK7vhLW3AWXxbDTYBSoyAgTIRV/IHBDzaIq+h1aPxflLvxGEdEfP5uV20WgKYfZ7B8T5VABUSoPRq0llVqImQXbphlI2RBTSJfCcsKKAhe1GO1Uw7NbYXc/KFgx5IIOUXwh2P/r23135Fn+XDiHj+FE3DasFxACHis= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2017 15:17:30.1628 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB3163 Subject: [dpdk-dev] [PATCH 09/21 v3] bus/fslmc: register dpci as dpaa2 device for bus scan 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: , X-List-Received-Date: Wed, 28 Jun 2017 15:17:32 -0000 Registering dpci as dpaa2 type device handling initialization, allocation and freeing of the device Signed-off-by: Nipun Gupta --- drivers/bus/fslmc/Makefile | 1 + drivers/bus/fslmc/fslmc_vfio.h | 1 + drivers/bus/fslmc/portal/dpaa2_hw_dpci.c | 179 +++++++++++++++++++++++++++++++ drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 15 +++ 4 files changed, 196 insertions(+) create mode 100644 drivers/bus/fslmc/portal/dpaa2_hw_dpci.c diff --git a/drivers/bus/fslmc/Makefile b/drivers/bus/fslmc/Makefile index 4884d87..a156847 100644 --- a/drivers/bus/fslmc/Makefile +++ b/drivers/bus/fslmc/Makefile @@ -72,6 +72,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += \ SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += portal/dpaa2_hw_dpio.c SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += portal/dpaa2_hw_dpbp.c +SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += portal/dpaa2_hw_dpci.c SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc_vfio.c SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc_bus.c diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h index eddce31..7c725f4 100644 --- a/drivers/bus/fslmc/fslmc_vfio.h +++ b/drivers/bus/fslmc/fslmc_vfio.h @@ -42,6 +42,7 @@ #define DPAA2_MC_DPCON_DEVID 5 #define DPAA2_MC_DPIO_DEVID 9 #define DPAA2_MC_DPBP_DEVID 10 +#define DPAA2_MC_DPCI_DEVID 11 #define VFIO_MAX_GRP 1 diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c new file mode 100644 index 0000000..d222f26 --- /dev/null +++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c @@ -0,0 +1,179 @@ +/*- + * BSD LICENSE + * + * Copyright 2017 NXP. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Freescale Semiconductor, Inc nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include "portal/dpaa2_hw_pvt.h" +#include "portal/dpaa2_hw_dpio.h" + +TAILQ_HEAD(dpci_dev_list, dpaa2_dpci_dev); +static struct dpci_dev_list dpci_dev_list + = TAILQ_HEAD_INITIALIZER(dpci_dev_list); /*!< DPCI device list */ + +static int +rte_dpaa2_create_dpci_device(struct fslmc_vfio_device *vdev __rte_unused, + struct vfio_device_info *obj_info __rte_unused, + int dpci_id) +{ + struct dpaa2_dpci_dev *dpci_node; + struct dpci_attr attr; + struct dpci_rx_queue_cfg rx_queue_cfg; + struct dpci_rx_queue_attr rx_attr; + int ret, i; + + /* Allocate DPAA2 dpci handle */ + dpci_node = rte_malloc(NULL, sizeof(struct dpaa2_dpci_dev), 0); + if (!dpci_node) { + PMD_INIT_LOG(ERR, "Memory allocation failed for DPCI Device"); + return -1; + } + + /* Open the dpci object */ + dpci_node->dpci.regs = rte_mcp_ptr_list[MC_PORTAL_INDEX]; + ret = dpci_open(&dpci_node->dpci, + CMD_PRI_LOW, dpci_id, &dpci_node->token); + if (ret) { + PMD_INIT_LOG(ERR, "Resource alloc failure with err code: %d", + ret); + rte_free(dpci_node); + return -1; + } + + /* Get the device attributes */ + ret = dpci_get_attributes(&dpci_node->dpci, + CMD_PRI_LOW, dpci_node->token, &attr); + if (ret != 0) { + PMD_INIT_LOG(ERR, "Reading device failed with err code: %d", + ret); + rte_free(dpci_node); + return -1; + } + + /* Set up the Rx Queue */ + memset(&rx_queue_cfg, 0, sizeof(struct dpci_rx_queue_cfg)); + ret = dpci_set_rx_queue(&dpci_node->dpci, + CMD_PRI_LOW, + dpci_node->token, + 0, &rx_queue_cfg); + if (ret) { + PMD_INIT_LOG(ERR, "Setting Rx queue failed with err code: %d", + ret); + rte_free(dpci_node); + return -1; + } + + /* Enable the device */ + ret = dpci_enable(&dpci_node->dpci, + CMD_PRI_LOW, dpci_node->token); + if (ret != 0) { + PMD_INIT_LOG(ERR, "Enabling device failed with err code: %d", + ret); + rte_free(dpci_node); + return -1; + } + + for (i = 0; i < DPAA2_DPCI_MAX_QUEUES; i++) { + /* Get the Rx FQID's */ + ret = dpci_get_rx_queue(&dpci_node->dpci, + CMD_PRI_LOW, + dpci_node->token, i, + &rx_attr); + if (ret != 0) { + PMD_INIT_LOG(ERR, + "Reading device failed with err code: %d", + ret); + rte_free(dpci_node); + return -1; + } + + dpci_node->queue[i].fqid = rx_attr.fqid; + } + + dpci_node->dpci_id = dpci_id; + rte_atomic16_init(&dpci_node->in_use); + + TAILQ_INSERT_TAIL(&dpci_dev_list, dpci_node, next); + + PMD_INIT_LOG(DEBUG, "DPAA2: Added [dpci-%d]", dpci_id); + + return 0; +} + +struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void) +{ + struct dpaa2_dpci_dev *dpci_dev = NULL; + + /* Get DPCI dev handle from list using index */ + TAILQ_FOREACH(dpci_dev, &dpci_dev_list, next) { + if (dpci_dev && rte_atomic16_test_and_set(&dpci_dev->in_use)) + break; + } + + return dpci_dev; +} + +void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci) +{ + struct dpaa2_dpci_dev *dpci_dev = NULL; + + /* Match DPCI handle and mark it free */ + TAILQ_FOREACH(dpci_dev, &dpci_dev_list, next) { + if (dpci_dev == dpci) { + rte_atomic16_dec(&dpci_dev->in_use); + return; + } + } +} + +static struct rte_dpaa2_object rte_dpaa2_dpci_obj = { + .object_id = DPAA2_MC_DPCI_DEVID, + .create = rte_dpaa2_create_dpci_device, +}; + +RTE_PMD_REGISTER_DPAA2_OBJECT(dpci, rte_dpaa2_dpci_obj); diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h index 429eaee..0026ba9 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h +++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h @@ -79,6 +79,8 @@ #define DPAA2_HW_BUF_RESERVE 0 #define DPAA2_PACKET_LAYOUT_ALIGN 64 /*changing from 256 */ +#define DPAA2_DPCI_MAX_QUEUES 2 + struct dpaa2_dpio_dev { TAILQ_ENTRY(dpaa2_dpio_dev) next; /**< Pointer to Next device instance */ @@ -142,6 +144,16 @@ struct swp_active_dqs { extern struct swp_active_dqs rte_global_active_dqs_list[NUM_MAX_SWP]; +struct dpaa2_dpci_dev { + TAILQ_ENTRY(dpaa2_dpci_dev) next; + /**< Pointer to Next device instance */ + struct fsl_mc_io dpci; /** handle to DPCI portal object */ + uint16_t token; + rte_atomic16_t in_use; + uint32_t dpci_id; /*HW ID for DPCI object */ + struct dpaa2_queue queue[DPAA2_DPCI_MAX_QUEUES]; +}; + /*! Global MCP list */ extern void *(*rte_mcp_ptr_list); @@ -311,4 +323,7 @@ void set_swp_active_dqs(uint16_t dpio_index, struct qbman_result *dqs) struct dpaa2_dpbp_dev *dpaa2_alloc_dpbp_dev(void); void dpaa2_free_dpbp_dev(struct dpaa2_dpbp_dev *dpbp); +struct dpaa2_dpci_dev *rte_dpaa2_alloc_dpci_dev(void); +void rte_dpaa2_free_dpci_dev(struct dpaa2_dpci_dev *dpci); + #endif -- 1.9.1