From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0053.outbound.protection.outlook.com [104.47.41.53]) by dpdk.org (Postfix) with ESMTP id A84897CB3 for ; Thu, 29 Jun 2017 12:29:03 +0200 (CEST) Received: from CY1PR03CA0034.namprd03.prod.outlook.com (10.174.128.44) by MWHPR03MB3376.namprd03.prod.outlook.com (10.174.249.158) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Thu, 29 Jun 2017 10:29:01 +0000 Received: from BN1BFFO11FD045.protection.gbl (2a01:111:f400:7c10::1:182) by CY1PR03CA0034.outlook.office365.com (2603:10b6:600::44) 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; Thu, 29 Jun 2017 10:29:01 +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 BN1BFFO11FD045.mail.protection.outlook.com (10.58.145.0) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1199.9 via Frontend Transport; Thu, 29 Jun 2017 10:29:00 +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 v5TASSbL002766; Thu, 29 Jun 2017 03:28:57 -0700 From: Nipun Gupta To: CC: , , , , , , Nipun Gupta Date: Thu, 29 Jun 2017 15:57:53 +0530 Message-ID: <1498732085-18449-10-git-send-email-nipun.gupta@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1498732085-18449-1-git-send-email-nipun.gupta@nxp.com> References: <1495735361-4840-1-git-send-email-nipun.gupta@nxp.com> <1498732085-18449-1-git-send-email-nipun.gupta@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131432057410777390; (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)(39850400002)(39840400002)(39380400002)(39450400003)(39400400002)(39410400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(5660300001)(50466002)(48376002)(4326008)(85426001)(36756003)(498600001)(77096006)(76176999)(50986999)(38730400002)(305945005)(110136004)(8936002)(81166006)(8676002)(104016004)(50226002)(6916009)(97736004)(356003)(53936002)(2950100002)(33646002)(106466001)(8656002)(86362001)(189998001)(54906002)(5003940100001)(6666003)(47776003)(2906002)(105606002)(2351001); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR03MB3376; 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; BN1BFFO11FD045; 1:4gHyk30ky6LP8w1GJPEtzEYNGqjrryXuYlrmmuM4p?= =?us-ascii?Q?y3RlLwDKm+gY7EyNUlc3gxvl02nk2j85iqYTxMsd15dvk97kHbmADe9kO+2z?= =?us-ascii?Q?za9reBaHsaDMhTypc3kX5bhoD2TLKvfnZ8sVHaeW3ZozKbrKv5vK4iRg8W+w?= =?us-ascii?Q?MuQMI/0AIkg1/FkYrh8SBw8a1YBQXes266JnOqXrWREGaQooLbX+xtC0YXWZ?= =?us-ascii?Q?QmO9Gpb+cTK4EoSU63wTra6PwRVfpMJJeQK/DPgJ6VPlj/IkuuXgWjLAqkdo?= =?us-ascii?Q?Hxic4vzzwGC8oLnqvBsidJrme/zcwi4cWx6bksoVasmxAH5M8eTfYYc5NWs3?= =?us-ascii?Q?2nf49cYFB5ldoMIaWqn5vHo3JMiha95wiO7U2job2Od/mXB/mlq+rCVCze8f?= =?us-ascii?Q?MT/+xiD+RQHxcLpa2nASI416Rh2r0Gd2EPVTKzBbon5av4vnKP8EJOzHHWSQ?= =?us-ascii?Q?a8QxGiOxt2aVSEGVSxex+85pv/M1zy6Ji88pF5Q1qGFQ3z0c691zSuyd6wRx?= =?us-ascii?Q?Kt1G/c6KrMt/TtVpMxAfD5Y3wgfKZD5zR0bW4I8bsBzm8AxKJ1Y0Ct2ToHli?= =?us-ascii?Q?DrpPjdZsqsZrKm8r5M+16M0HVSKHpvFh7MMiid2xpraWRYGX87OqENYrPczn?= =?us-ascii?Q?WaVcKXLwRTiUy9ZxHP2Zu7gvhxEKK7zsARfzKOubKkr/0zj1lRIOlmcdqkYJ?= =?us-ascii?Q?RrlghSYzf95dzpPdSPGj4pvgA2zKk8xuA9iEAOCJejW5ht1HDZ0CNmRg06vh?= =?us-ascii?Q?lsDFbukvKi0FBSfWlA9qB/z1sAFQIeI8PpaYwLYoismkFNnlhgeO8h7yMEps?= =?us-ascii?Q?FLFs1CCjfFaotGmXC2w9yuoxyIuGn/orSkmIDZEASRbJW18CGJROZ5WLHJcL?= =?us-ascii?Q?tbJncJMNvVggdmHhKo2x716DJjY/D1dqZ4lVAUwUROkOByfAg9mO8UrQYCwg?= =?us-ascii?Q?4aawO3VbpB3fFKtW5kRgXAO1LlmYE6R8LStr2LXT2NmEKLwT6vxq+FZhlwSU?= =?us-ascii?Q?CyaeOXbmdLM51LMEPHdzaSn8L5jSnMRQwCdjpC1kBKEGAk89CLyMwF2YJHpL?= =?us-ascii?Q?/r6Lvx4xs6ISqq3mOg9X1lSegZ/AEcSe9uBLElZIxVUwopHLA=3D=3D?= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fae82e31-643e-4403-712e-08d4bed9a888 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:MWHPR03MB3376; X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB3376; 3:xSlhiZDz0mCjbOWswRsg9fsrqXo3wkqMq3gr7pNLdUVf9UxNkB7j68b4WrvADqr5FEMfgJwBx5anNWY+yQ8LcYUxrPq/El15+HjCt7C4rN030L+zgkxHvA+JSxEezrUtD2PWXP+ani83grrT8MRrLIbZHRHmtkyf+ZeDfOCH9Q3D4Z+BhhZwIUWI2CTpeGOBPggRvNRvYEN1n+yupWGnaFNKuR19/mP2/aMcO5u24i+f2IQqu9EWUsNE/Q+morcwCO4FIzQqusoX9zhrp9M4wdnOmnTkM7Eh4Dj8xkBxHDS0zyZcNg+ishMydd/qKsxaE35hAbJb0BiKHgF9Q+kxPiPK/i+/xnVMP96abQevU/GRG9G7K28x3P8i8EXJFzsit4apOMse0lXSm1coGzbakNNYgo0GbT1WAuf77uEcGD/bHT7oT21qWsP/HJck+9d+KhnUw+rCeGs97ZUF+g+CiQ4TUki3Dha8vmG4NAZpTLB9eHJZ4hLWqxY2b+cdcvbvWKnwIM7tF2ctjyG1TikNIzW7xeBEwOMdo2WTi4lPTx4UiqsY8EO81MXqwht7S6eD3aFW1v3XIOKlTiyGrcLrHXJKgrPGZCbNBKvRl+BI94w48jJ3KdUlqRppKZzEOKss9wMrOtLeIn0WCGUHN1MK1un2y2/iqtL5HdVKvG28OcQ54vRmx0aaxSpcvszU6fa7dSm7n6DhZYZc0Tm01a6/C2RwVCofj/e37Ej7UO3loXuFIoOc4B9Xkj33gTgn4W3m3PFRIxS0K7k+EVJhU7yIL2BpXlZoTWGbgQCpfFM6ZXv9ZsSSHZ+LeY7iXwdm4TMzSSwoO3q08AswLrmZctKn6g== X-MS-TrafficTypeDiagnostic: MWHPR03MB3376: X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB3376; 25:sFkPFUN6lLBp7PFdz3KGvtcrxS/sJAzUml3sZRDV0p8rQkaMpcqo5YD4nyGPL4ZRcxOe/wq+9zMfBVj6ihOv6C8iLQy8FLNxQC5qUIB0d7sDpA7hJjIZKjkvGVxAFas6pY+KcrsY+332YXRjMTfCBtdpc5xpGwjG10qzOZbNqHjGvAiwkel/e+CSS97pzTGg9TbCONvlQYfFrzLz1GBEBWtfIaGeDo2YH9UB0KInC+MRL97qAwvSSVhZvsNvufj0Efp5bt3Bn/TRYRdKP5pUV/pDa97KZOmKBX7tlugDPY1rblll0Fh1b7BSvx95tYuBYEeXA4c85BsqHVpv27TAOtiwtzDCokHnFSH8Fi7egOxXtuDzvzBD47VjxO1epsxSpk2orHvb7o2NomiMZv8wNbdZxAB4i2lEFEd2rSDbfEgW//zA90eCygx/0lV5FdNiOX16DSqMv5d/KGDBInnkfApNKFYS03OdKI6wwSFfxXNjFyKqhCwuYQil1m8CjwyAgnzFDaqncObiPQND8kHj93eOvXHTGiztkZ9k7kJBNrbPwQHYwW7bQk/ljiDyfl8Qp3kvEUJqSBA+1B+E6NulJcGfN5VF3ySiuMmdul65A/l4+z8SJ0VVrJHJe6dGeMA+ncjtl6JpS2Qx9QsXW/8l5E7BoOS/KPjcaKLD6fyLCIEcJFUp2ow9Kl2qWYhSBJLo+me5ejxmTQMsWhlL2G5iDuIDrR8sNpzoEiQU1wnkBzGBme5LTWfWjVIr/i3Chr5Hoz3qUXyT55nZAuiXIkqqbSohbTOjdjmPSYvT6zIwa9ZnZyd9U883PZxikr5bnvkp2QxXQVKrawoFG6ArZrw/2IWATWQPyjpVZAAxgga4l1S0pGHJpzZo/yB2bEDpgKjk1aAQAAODqMCt4FTKsluY42RHE4PEXZEsH/51XgiSX/U= X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB3376; 31:51VkPcVczZyXVodZtOIZXz+/ZNm8Q7we4iS18UB7yCnQGOLCGCQ5LkJk+h6x6vHpF/QOIhItLl9dUBXGe2u+xa42pXVKentz0LqUmiAk0TUIgi6c/TAptp/TGOPMO96tE7EuhcmZYZg4QVXkDaopLXGdKwXbyzvJaViHRowsDLEYVXb0juEMn1FBwxc3YTTWp+ooW/OI9srPIQmdADy8vfiPcxYiOYsEyALvS0MUCT5M6yxHUDjvyuyktY24GVN8QPfumIz+6q59GUzAr383dhDyamAHiEYQJdgATEwLJ6FiWDIokCffS5drDmKRwHdBshUbxs39TaSr7JM6DqkTwAoCx9ZyliRilw14S5HpBGGFaz4f8BpcLQUmZXIoA0maZh2D6ErjCoZMA0CBdQGFPZ/mzmKphl70732YTd0FfOhShXRcnSongtUvq1JSxE1Wj5WSPVPUxMvQOwLEeXo/VYykcAjSDIbeDGFdE5f8ZNGGLepdlpWwhgE2f/pc6pdmyFYExObn1DMXkdQ+KzeVfwtTVn+YYYNPOfBMcN+iRrWp12L7auk/mTnevBm/A/Wj22E7tEP56vQRRJOCewzbq1CUL80rlsJL7yTQ44WmLPCkweoE/xTVDjfZen+3fbXJpX1lqbpjzv+3gUi3xpZSrRFaYoStEJmVKV3oXkdzUjiAiBCDA7EmzQU6HyjMQBAbruF8qHwN5cY4iLxFQdD7SA== 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)(8121501046)(13018025)(5005006)(13016025)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6096035)(20161123561025)(20161123565025)(20161123559100)(20161123556025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123563025)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR03MB3376; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR03MB3376; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR03MB3376; 4:Om4oGEqbdoKCgP/JR/Tcs7Hd/td8klDH7FI3obDLTB?= =?us-ascii?Q?yI3LUdvre/wEvYc/gjKaPVNaoxvvGFqXFsiE1pOlpmyDxhBg7+pcjBcJg3zU?= =?us-ascii?Q?lu/Y00uMtBNYk+jNQBzUHTYLK+5FFZ1lmp3pKgkefvehVWJuVeRI3QMTHJrQ?= =?us-ascii?Q?ZwmFtRcT4t4G+HzT6xmSJr5cHCsZdKSVaiERgxSpr0hs2T+TQWM5uzdEhw45?= =?us-ascii?Q?GJcfdUh1XU3Rw5LIlDPTOfu7NeaDksXigdudno9nS0iNy+Agr0xAB2Mw7EWh?= =?us-ascii?Q?j0sKtlABsC7WSCuRVNR/VBde4qyZBisVWE/yN9YnqtulNWCkGYZzCMpwX73a?= =?us-ascii?Q?OCKebP0IYrUlEXX1vgmoqsagzlGSZA/7ixcyreAXbayqlJm8k/hfpwN6ia83?= =?us-ascii?Q?JbQe7g5Mqmk0FkQdqbyTv3rF+REpSf51uhakGs56cJmjk34/JF9LCADIjO0B?= =?us-ascii?Q?mB1SrQcB+ygB7hzl7t5JsltFcnmxvEn4TU3QqUqiX+EmrNFKIFVYG5FwaYik?= =?us-ascii?Q?CDoJ6HRgwtPVf8uOR98JPBrHE4f/I1LnUYMqThJoZZm2JoeA+Zil3/gG68Hb?= =?us-ascii?Q?mtZMk15H/ui4pOSdBlA9em7X70ujucXyfObcK0E7rKMf9Bs4bApZXwnkCUea?= =?us-ascii?Q?UQLIXSqEwRXlL3r3zWsH2NOO6H5QnqUawp+MeOvtvw5tBHwJVJs6PWepE1Gx?= =?us-ascii?Q?sfMNsSV+2OTDn7k5/AU5DBGm7TtmC5/FZpqUb98s9K8mSDLMM1u4lJj41tmV?= =?us-ascii?Q?FXN7wSrKJy4h/U13bayYS0wwSX58u9GE6m+BfzQme4wE5yjg1EJOntDuFi37?= =?us-ascii?Q?vbU1fRjllmJsM4TwsZwW3w5UmmRgjQDfSdxrVA0Zkyo2puiLK4+QhGikEtqC?= =?us-ascii?Q?l2U2hjD8OKkDiVHQLM7ArxbWItSHkFPieRxdXKBxkZRjodLGoy5r8mpKPaOI?= =?us-ascii?Q?Mlh2PJoa24ShaztzGI2ZZXIcuZOrdsQ27VvFWaB3nwmdEnKQC2MGJmaMihEz?= =?us-ascii?Q?MI1SWQEMNrWdEZe7jdgBXXy/OEJ08SiLkBg6X8/Y1LJFu21H/XBul+7WLgNo?= =?us-ascii?Q?z4CDl0mdtTzbrUKgFetaQ/9CfkcN45zH/cM7HzXxA0eluWefPgeCHsNSSNtG?= =?us-ascii?Q?Ei7l/3f990k6XVd7SFPHDz18fasWtGg2jelHvsWVC350ktyiSL4DFDCkeBxK?= =?us-ascii?Q?kVF6y3HQ8Faji2haET+uPUu2XC9WwusTdf3SiEcndC0xEcqZNMKkU7gUh754?= =?us-ascii?Q?l/ibp5bFSc9ci5WCp6TSwMqIpAluy/9KXgty9fU1FThzt4vDMzb+0Vvr73i/?= =?us-ascii?Q?XIkygLL2ffCXsX35r8KwCwZPomDXhT+l+xpAINqVTE0cNtpd+M+WsxVpYZuq?= =?us-ascii?Q?S2LYI5NZSTthNytLLcGwYujxLeioaDU26VkQLu0g3Xl4tS?= X-Forefront-PRVS: 0353563E2B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR03MB3376; 23:nGHW57ZOAMoxvjdAEWUEvfeWgO0A5hWVGp155SFjT?= =?us-ascii?Q?C2mdfnJdUWstBISsATUpPssxBFzTu+oEk/6Pns/c2i245A6P2eKEJV2MukO4?= =?us-ascii?Q?LjKmH5+MDCauRdauBinX2jqlEqi3xmnXRO9Ff+eIXdn/lmhYpfATOFIuvd+2?= =?us-ascii?Q?KMuFbo4za1RhrrY0h5ByJM33jOqvmcp4enPyNDhqiXGypsY3Hc88Ac/BbX3a?= =?us-ascii?Q?QUC3ygV4T4vj9chpKHBwW0oJZsloIOFSj+t9aI8cgXAJjrJNAuJFMM71GKZp?= =?us-ascii?Q?yGqvV4qJed0vfnVW7a9x6gZLYG0Z8kDqVWFOmtOf3ORuim+7DNpKimWzSvQp?= =?us-ascii?Q?mkL8PYEVltj6uaCqpZh+wrkDfzEYN5QRQrgIxfAn5qycXqL8IALzygKlNX9m?= =?us-ascii?Q?Td51ZsJQJ6h2UlzntvwUWciSzDmPF+JNUlzAfMGMRW2k/GWSJz8zY394eq1j?= =?us-ascii?Q?B8ry0aKZH+eSLA/NjC5XdNoVmHoTSJK3WMXDxMZLWSyOLBBeGZhKir8TBe0j?= =?us-ascii?Q?evqH+UEPiwH+KOLQKLZbkS8fMa4haVd5Ej0bT1hg9aOZcIo9k5jf5nSDA6w4?= =?us-ascii?Q?papCzDpt/VFGDN0/GfEDJdYqQ/nHuXCCqVimuMGTxwaY9ZWSCufgZHQuSuMg?= =?us-ascii?Q?r7asn11OL3/DsZpLK96XJI4GrKahgNSLkungN6FqJ8pyx4MmzbW1EETKireB?= =?us-ascii?Q?E9O71E5RQhVWAJ7CsTd/kCqd2vebDJNxZTImiV7lOp+pe9M6n+eFvZ5vU6H8?= =?us-ascii?Q?04CPaA3w4Fn5uwIPmjw/wl1ukbm7lT4DNjpVFu7WWDV/kUHWOC7UZt9HnwXY?= =?us-ascii?Q?RFSDRyyk8GKwOkyhHSPUv8Bn3RO+zWw2Wo1fYY/QhSe4rE5OxD6mvCY8jwht?= =?us-ascii?Q?MfjETnDs+wqI72HRc0TWj6PRRU9V5gLbV6PkC7qH/oUfQ8/SZL5G/ZQlUS1u?= =?us-ascii?Q?c1BLa12RYbNV4q2+BK+M7Q8vX8zrq5BoFbvtkYbmkzSV+xlUG7EIzsthXDCj?= =?us-ascii?Q?jbQR2IxFwnkMZlMOoebN+i27SXLqyVn7HhJgNzTW3AURlAMI9ncqbPzPEK6q?= =?us-ascii?Q?TzYWjmROeTyBKNqRQq+7/J9mOQrC8LmQYlALEoq4eSjCvcVV4AQaE7T/UzQp?= =?us-ascii?Q?BymccQCXrA/87HeUUnBfeQgH9MDv2vv9GU7FDa/Ksuup6YeQREJo6UWsgJUN?= =?us-ascii?Q?EgcEEWVlplFAapEDpRDGIG0wG1owiRwgV8aLJIyDiOYkELKGzga8weIVauqi?= =?us-ascii?Q?46BRkytNUbYZssnwVlH7X/LwX7653Zmltyp11oS?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR03MB3376; 6:vKexzqEUQaUFNkj6Cdk0PCj4ne38ANSAm9fVQQZpnY?= =?us-ascii?Q?95/p3HtX7khezIaZyPUuUb7GrAR5XPMqP3nYmo2BdxPzzqE//ZFTRn6Od6ZK?= =?us-ascii?Q?ORYqXk0r/0pAWB1BAlV7hya8WQcAihHhSJ3p1+G6g/yLSSwmQlnX4KoT5RJR?= =?us-ascii?Q?bQqIZbJK6jeEZLVRbfHSXjBsKN2gMm1NVn/DqH8NoMoZAU/n7Bnju6sscD9T?= =?us-ascii?Q?JQ6/W+izzGPzBiyLgNDNtQEWfNKEg78CQBgxu2mW5/3YOEI+HnjRYRQXlG75?= =?us-ascii?Q?b/X45o/NxxJNptFrqOAzLCpzdeYlYOLv/vSD7qZSMiqdW/MO2RxjkM5fkgTf?= =?us-ascii?Q?hMBD3VS6oVs9N+6jYfiACia1j1HRHOJN2wYz0hT0IOLvSY36xwMgAbexXbLq?= =?us-ascii?Q?dzNgoqq/S973HdlI8hS3lvF8EqrykFnEzPsH1PbpBf7DdXncX8VNchhrU5uf?= =?us-ascii?Q?ArCgfAc7P1dRdZrahc+bYNR2L4gDggyXxQZQ3EnYDNia7MWOP3jkSgK+1aD3?= =?us-ascii?Q?OTI/fmxryKazjk+JtCTxdYk3rH6keeI1UFlf/GKWxp31Aq8JYbP+d30B9e98?= =?us-ascii?Q?SwwI6x9QE/rouuSMpSbpbIgD0Uadd+e2MqHZxIHN9HWJbEGFIb1DXUhMfoZH?= =?us-ascii?Q?bSi08D+ko4FlVqfDLg4xC4pi+SR4JJavKYuHNHyeFOT7z3EEYM8MLHTRD4u0?= =?us-ascii?Q?MPqdX79SbVhCUIrm2fPSQenXYwOlXOkYnwZdJO/cg/q7iwVf0beT0oqAwWDT?= =?us-ascii?Q?jH1uof3l58dkzBceUdAjSSmBSpcTBWcuutoc3VkpzVuJ5azrMVsPG4dkt5iv?= =?us-ascii?Q?pkaM5JafqeJcBaORt3zwmjqDAfa3Qe4LS7yz708hRHMhc/hNMZUjafmtGNf2?= =?us-ascii?Q?kuitNavPYdyWKAWODf/mDUJGC7bQu/2iNHWK9RS8eLgHwmiCF556NapfJEE+?= =?us-ascii?Q?h6zhlah2OWKzIkq+RRK3iib34ccd6/rnJUegRL0A=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB3376; 5:NJNYP4k/kTDlNjQQQ10VmBIRdmTgCaZeAtzDmtosO/DaK29sFzXPgi6enhE5Ha7z1o7F4x2VlviYt8bFeZ4NMpfeLNZYSy68kxgzrSIcQTzNFJbECrF/oTTglRd3er5/vsytV/aSLEJClBYsoutd8lR4IgtCeajfL0rgCT8F7pLy7sYPjx/XWW+08iq4JlbH/0LTA0N7oMwLs7TaOj3OqGvFcogi2TUjB5NxeJn4ZRKMf3SxzT+1ilv9Oqyc7oUaJ31sUN7j0s4pnlJHeKRKVUVJibuXeDs+zJEGet8YOdvQDrBCyyU3lY1NuhoT361cBExQrb3G0fK9DXCSv1PQDgsRmWkz9Ce53ecLkUFUCLiOQbKHHXwOFtW7qRgWKjwQYFAAaX5QRxj9GOU2LtT8fFnC5gA6gL5ty6/yH1tV70nhl0RLDYEdBVhesRUfqXAlbWnq2fcu3ip3MD3QkO1pKLadXTTQeKA8h1IB9dL5b2hdrg4rRqhJdvqRo6+PzgzwS/OTERd+/P037s9QwNAQMg==; 24:AaGRC+ObN6i5VfqtVqg0YfxCqWSmcpi7MrX4z0jevKE7i/ckRgxje91zoFEgJdYttjte7TcuzS+nyJHt735uD6tISFXfiR9qsY2toU+evmU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB3376; 7:nZ7yUYw61NAWNzb87BmpyEhWf04OmQfvY2Nm72fr67MTeoC9n6hXxEDKQW1y2aH9yfR6IFYPOqV2jGUGBTAprb0cgbLrYoM3J0B7+sGh0M19XE3UANl/m6Z0qSSCh8K1yYHUG8jUndp7rRiAxQXOsfprmc5Y7+uvsLfqOuu+Jy9+Ay3BMv3oxHpIQhD7/0K3K7ErLIs+86hD6kDOMbggVbMHyNqb56eDAcxseZFnFnV3OYyc9AekbEmDj4vMyYewVNWuZTrHroX4sn9nqbB30K2WEULDJh0lPsk2fs7vCTDBa6qz9Z3eBSOdskUYK+Gf0Tz0WcqRbHoG/qvhZa74yG45VZxXry44RROy2N7+/EIXx5H9HO2Llx12HvmkOMFkr1X3dgKg0SFR7PVrPg6r+TUxGF3CQ2XIV1Sw1LhrqmLI8OtB89vNxIC1ndDIYzduMDFqMIlzhZTJ4nPOjhYNvGTJLpJRI//NzDl2FN2IfYUQ1RuvmYXcX0ogIhOHpbY6tbNaeVeMr6IsrCRAc4Q3U/s7z1GyZeOabb/Pr6JYOi6p0SFYV36dE4i4RrGF/+CMAFH59PXEDXm1A/SMy0dcj7BOJP/cjigrKS7RAbbvy/vZ5U5rAE+W2Y4xrq/99Lvs0xMt9t4whLqtKz6s+axUd8QC9tpzceXw12zm1ZlLY2igPed8qg2oTagpSq0ckDp/HOsahczHXM4DBIZ+4rSiOSjWvSmj1hluaAz5UBSuFqxU3lbSTAetMD+pH2ieT1N4EBCjTvVg42NJ7f7uHqATB1zo9ZiPPRukLOa2zwjPtv0= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2017 10:29:00.8905 (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: MWHPR03MB3376 Subject: [dpdk-dev] [PATCH 09/21 v4] 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: Thu, 29 Jun 2017 10:29:04 -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