From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0065.outbound.protection.outlook.com [104.47.34.65]) by dpdk.org (Postfix) with ESMTP id AA0217CC0 for ; Fri, 30 Jun 2017 10:55:16 +0200 (CEST) Received: from CY4PR03CA0004.namprd03.prod.outlook.com (10.168.162.14) by CY1PR0301MB0602.namprd03.prod.outlook.com (10.160.142.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Fri, 30 Jun 2017 08:55:14 +0000 Received: from BL2FFO11OLC003.protection.gbl (2a01:111:f400:7c09::137) by CY4PR03CA0004.outlook.office365.com (2603:10b6:903:33::14) 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; Fri, 30 Jun 2017 08:55:14 +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 BL2FFO11OLC003.mail.protection.outlook.com (10.173.161.187) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1199.9 via Frontend Transport; Fri, 30 Jun 2017 08:55:14 +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 v5U8sfK3032271; Fri, 30 Jun 2017 01:55:11 -0700 From: Nipun Gupta To: CC: , , , , , , Nipun Gupta Date: Fri, 30 Jun 2017 14:24:23 +0530 Message-ID: <1498812875-6945-10-git-send-email-nipun.gupta@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1498812875-6945-1-git-send-email-nipun.gupta@nxp.com> References: <1495735361-4840-1-git-send-email-nipun.gupta@nxp.com> <1498812875-6945-1-git-send-email-nipun.gupta@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131432865146815295; (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)(39410400002)(39850400002)(39840400002)(39380400002)(39450400003)(39860400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(5660300001)(4326008)(2950100002)(33646002)(54906002)(305945005)(81166006)(104016004)(53936002)(77096006)(6666003)(6916009)(5003940100001)(50986999)(85426001)(2906002)(356003)(8656002)(50226002)(47776003)(48376002)(498600001)(189998001)(2351001)(105606002)(76176999)(106466001)(50466002)(8676002)(36756003)(110136004)(38730400002)(86362001)(8936002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB0602; 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; BL2FFO11OLC003; 1:01c2im3H5CY2+em7JWVbX2x+3BI4dAZCFt6m/MfSn?= =?us-ascii?Q?doKGHOqN8LLAhW2V4x66lJNx8xxID/TzByyyXrVqROibzz2RtJT4gZlcFbqd?= =?us-ascii?Q?j5ovg0w2nexUDy2ek+28bzhL4UC6/8teGzg5okmsYkIFV2J6ILyKxO0RCJEg?= =?us-ascii?Q?xiV+xFBcRyaPgv+Xj5GMiDlyhkMWeXUya8qRIhT3DxVixa2kyFjKgSy9ldkN?= =?us-ascii?Q?w+tK36CII1bwEMZnYFwz1tTiiHDJuB6ntiOBwch9Fwz5eOLjO8andNCesUqY?= =?us-ascii?Q?jIst83HIvhFaGrKaWWHpM1iWGQNPM1AS0oC/hW3L/44w7gLAzdAtt6zESlJT?= =?us-ascii?Q?FTc3wiQ4MqCf2STxsT1+PzT5bBK2ZJSJO/Vajrg+buZlH3UJwIoUPmIbxIZ6?= =?us-ascii?Q?vFzKagvtK16IYACg5n1Cq4W3wT5b2kg3SXeOsG9qPZqNY0kuwJbUv1p0x8iy?= =?us-ascii?Q?DTX6m1SwKmKOXXqe410Vdy+fqFmsacPSiYIgJ67e3TiV62/LG6pxC6Y9UtEA?= =?us-ascii?Q?yT3vJj6PWnjncagWQo+8VZiem4rjZgK4OAwuiqp6uzpU65l6/fFfLUEK5R32?= =?us-ascii?Q?3yjRkBWXYSUQk4IYIZ/fW4x10DijqQzyY8ioBBsbMhgOQ5jWMKgtEHbUczcG?= =?us-ascii?Q?y4KdjhIaUA1cmGijw2I0PwLVh9U+2XPKaJDTlps0WC2Kau3QkgDs/d38KBX0?= =?us-ascii?Q?M6K7W7Yx5bqH9jPRXu2w9X6unF+GX3VpDojz6RPGUQAuOSn6q1XiliuIrDpc?= =?us-ascii?Q?QrhL+jw01vnbSKaAbwZf5RDZgQs+CymrO/NwW6ZMTjP+aXt/lQJYt+NQZ/Oz?= =?us-ascii?Q?hsfBjzfHtH4TMvGuRMR6EpgCQ/Qtl19+hGNHoXxZQCbEsJuiuIxsUzasUwhq?= =?us-ascii?Q?cpGA7nsrsibK33hlPY4XlnRQiuHlsvHFRRR9eE3kgeyGH3t16idKVdDjNr86?= =?us-ascii?Q?I0/r/rnv6jb/ZieMdmyeX0zRJEOYN5LAoBYjg3itWPXt32QGrr4yxkDcDW1A?= =?us-ascii?Q?eMpxLWIWMdIpwHocr/tUODPeuxPJxNjiKjm8cPk4uXBhJPTnuxEMTRi5Z3Pq?= =?us-ascii?Q?rRIVrRlmlvW+egQaZHRQnIIaxS0RkzmLVKffkyk3YP+VwbX/g=3D=3D?= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6c91df83-2e4e-428f-e1e0-08d4bf95b957 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603031)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY1PR0301MB0602; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0602; 3:p7cPAi1oX74L926OfxsGK+QOo/GUAysPVGw3+f+oSeCk5Zjx6YVspLrazz5/DKodHP6YbTJhWESnL6lSMMbB/uF4VJ6LWnWu0x0FIAKN3pUljyv/bC5HeS9fdSI+0GNIWPm7BTFEkf4lFWnYEvH2xd2vo36na9qUuU5RuyCxifAJqW7QrdlJpM5NH6emNgGHtIf6KPpnOPS3GMS1YMmVpDFjwzYkxUEZbFPCj34hYFtww7dGxfmBnuheGBIfxbt16VFHKTyMr8k0WRM/YFk3Sjl4tkoJhnYntDzPmU/CHJYVGfY7dETndASJq91MzJRK7HpOJuy00L9aKXjUEzZ/HVqKGPwCs6RvWE9+wa5R5NI3m0JnXpky9K0Q/tM9rkhSygtihn++dz74uNCrM9h1jkmukO98JOOaPRtY+yvsayWVLRwJVAuqAHNv7iFOJZRUYDYHKaCDt6VFxsNFl7UU/XALRNukd3OlW0/EWbfh5lSkauk3rFtWsrhKC1pYK/jJZaDfP6X+m4WK/ojx1HdaskK51K1CeQZKrJZfFFNbfl/kzhobYB/7luip74u5LnsS9EBMETbDmYLY2XUALBktCepLePQgYXae0SjnrwpcQ45Ztt1K5QmmyL/qjPKusrWwXXww3j7yHk26hAn3NsZLiwF7yz5L8QrkNairPEfNbV4NEXrO8eCM5c61eZJjUwYMBsjQ9JZKN6jLP9QoTr/F7junTAINotbfycd+e6O7sqp3mSTgTGdV6Ok7cg7b+QItuSz7XOabE7f9AClKu3QTjsTpLRhn+4YFVMaRDxtbpUiUDXRR16sQroxHpT/MGv0W3o+1oVRYkVK5yxsRsCPAwWKOWAkS/XGGOo2B9FdcrOIzWWcn18N3dhh6ls++wlXH X-MS-TrafficTypeDiagnostic: CY1PR0301MB0602: X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0602; 25:LReElG8ZARh5lgTBZ73cwIdn6Qnhrvb81Pv66sAnGHZ3p2Oj5gj3+W3C1JqkPz2UEBVhR2Kkjne4ZTPk9kVQ8odWZQ4R1akzU6HQJYYucAUWqOl/Boz/Z6i6PvB/m62hiBkAOAqaaYeSlMp26h6Vygp8pCFfzZ1CotcUvsl7g9MAsApUtEvsyIb2775ThDMcNXOohfbd+P8zuJoZSq1r3zwXj26q89dTQq2VeBbPQI8AgzOtry2iGxRBOT0mEAUT/g5EJjhlVwRBlMkyXjAvf4fhN8vPtSViR8wb5IV5+qSYrlhlSiOc929jONmH9nHeeJpVXwc+hUscXvkZJlM58wlqM/RA2Rc5EsjRClPLi1q9bAp+x4EhZLusUogwd6pZLHRSYQrQZxjzghbUqd4Gwnu+fNt54pMkGbKrH8IgT6YcMVas1/J8bNT/aIN7XLlSYf+G/8T3Xa2w3M33gshPyMHhgtYb8X5U4eDjlADIpkFlJ5p6mVegxfxvI0g6aTwyq9IV8DWpL9R+OYvbC2YX3pTpJe/3/OEvHUI8FRAI3M6m1n4ZTqklvG3DO8DnPun+AS0Lx6g256b4Zu7vZzGXPabVjvYzRlWBAoCrwUb6/XkcIiGjtzbIht+PzfkpP7cx7N11kkDtkiKojuYHA+l/fXkWWT+oawmZAeVsEdTNtShbZJGcNa645f+sJadaWD/QnY/yPZ+diZO1m9lR7shoKcRAfhw35w/IGU6QKVtQMXbx29bHIKoYwiMpLj3h27H7uXpE31VlSW0+mHdwCRMRUInpISwPEeq0sFzYdxG2bqQgv1tY1pHdcIYz7Qb6WQUwjeNPdNUJ0+voSYbu1sPDEtnDxrI/2Kpm/XFbgN4/WEVEoYQ8wrgYTzNXsWcA5rCTQ3bYbk/JsMzlfS7JoGZGCq73barKcDMR1pFqClmCFWI= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0602; 31:MA3p6e6Ym0p1HnMOw2f+oudY6MJFmWvH2FgXMdCdm3jciwp+Xxb7nd9mkllfjdquhaYQwUqf4tNs40MUeNXuzcMbGD1C08h+vv0Kq9zndB/2zr36Iy3VCeYEdYAv/WBWmEVtAIyDb7ncam7J7EecfcSKZ4UT+eJGkPdNZ5hmSbEQWGbxdHnBv3goIRc8MDPa3OMaDw7Wi+v8I3kTZmBfziLLWyX1A1Q7UrgOVgNqjwKBvfi/GtcVoPmZW03WETUFhWo0ZHWHf+r18XvJKxXF8uE/DjQSTDKaaqP16U+4IoH8Iv/3TTn/yu7li9mbuzfGfi5cnnMxsNJfvvuCdR2xiLuuPUb+erz5kNbHPlLUi4meJtKR7B7MYmmbC0apnqZtV2Q2K+Gopx3HZUunEiDRaw+p5GSX5wCJZ9RyN62zg0OoH3V0Em/J32L/DTaEgy1Y5rU4uieE+q3ITTJT+yrpgcRT/6QBf9Ezqd+xQsj59pxswfLN+ADM+0/+j6MheONMx4g1ok0xSgLrJPy/NEjhbHB2KMpn7e5B8wzXS3+LmTCIkG3mGst2AXALhxDdKX4UU90SOLfgvNAP9jPfkBVbzvfv/h9EtBMM6dq/sb9MHAH52wsbQXcbTKVnTkK3Dpjt8RqOrkwIxqUcA83UoBq4kVjjMKFgVtmKa9aw8whGoh4PffzcXBJkoIidX3ibn9zcfn7xald4b6l2CSsfIDvkpmOMV3GWgT6EAeiN+mkYmhk= 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)(3002001)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6055026)(6096035)(20161123559100)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123563025)(20161123565025)(20161123556025)(20161123561025)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR0301MB0602; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR0301MB0602; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB0602; 4:VhhcXPf2BlKqIJmr125WzfPlnWN6fw+h70i40nDX?= =?us-ascii?Q?G4EmKOa81OXl72OdLznkSoVmeOznx/WIpKyMK4+1n9SarMRwlIhiGctensdF?= =?us-ascii?Q?3gGhxtszx+ww/SGcGhrrAebXF61YuHrrs5AgJAQ7hktREU9otDFlNSVDwypq?= =?us-ascii?Q?lnCoiJcecb7b9hpr1ZFjPDaQkBdm5vVDIjlJIJ5QRZisv+m/b4T/yYj2jrrZ?= =?us-ascii?Q?Xnku5fCegXqehzMiwieQKQ7K8FYXCtkTvjfJf4t0XyCb0hDsPdo8q8VdS3Pr?= =?us-ascii?Q?DAyoDI814fytSUci0aZWeKMCvyaRv3yyJ+qrv7PqjHq6axllurwt17IVFDOR?= =?us-ascii?Q?4/WvTkj5Cc19I7KMSqIA66lBMnyS0iidEs5lRRO5oHUK5uG34ETxyRC9se45?= =?us-ascii?Q?P7NtqhzrgVJ9gGuVyM7qrLv7KVz+U7zKspLB5TH9CU/DUvTwtKQCUcuJUsOF?= =?us-ascii?Q?g5SSccG/Hwuw05ub3Cvv9ctHiWxDuCZtVTFttJqV6FdToe1EVdZ/s08apJzg?= =?us-ascii?Q?FJ9XxvA3+LsFHX8WDmSWPukEvi8aE8aBECu7hv/sbIHwO68mlTNL2uHp4/A0?= =?us-ascii?Q?/1g0un3OpuDDqm4HKOhpb19/gXauioQEhuL0Mz6AJWgrUrMtvnP1K/hp01hd?= =?us-ascii?Q?v2NHg15eAgYXEyGtQ5j0fMIC8+xr5YlFG5D6OIw8KSqdekq0x62Y2x/yYoGd?= =?us-ascii?Q?4Chm2F247N+osoV0+ytNi6KZz0M/vaqxH0hRN1T9lSCoJczjQ/a/O3d703Fn?= =?us-ascii?Q?aMjhYzIwgnrDD0DFv4Fbi7bEao6Y2zGa0MnobCRb0A1PhPod998kHXcyN/So?= =?us-ascii?Q?nzxUn/7hz6IufuaQrtV7JN6gWcPA9fQfUChQT3l8v51tTSobIDystU9C2yQ/?= =?us-ascii?Q?B3JAnW3Ujuf2dd9aiQrFzQFntKME1P99IT8GfZxvB9g2llg5Vf2T2oyipV8O?= =?us-ascii?Q?MBFoioIANWbbMyxcoixAWQiH0/PNIfRIs0bjO0nPmJDIoPgXZs0y20fvV0i7?= =?us-ascii?Q?+s17WRCt5PsStszKrGDrUiFMp4ygbq0PwQ3aRp6ADXP29lrBIlfm0qLN8ccz?= =?us-ascii?Q?ueyUCOO8PfAMIqe/oxFaUBrxM76vlhyqrv4snKbDhCE3yhSsIQOfw6TGB34e?= =?us-ascii?Q?nSnXFcsKizrHn2auSvVpAogC0To5PK36/Mb+4wXAIr+5LIG9yIeblZwdvFv0?= =?us-ascii?Q?kAhjk10UGjrtxatbVBgRHTuFxgYDX5OWQOuiznJdFnHS4EOGx+e+meXN9icZ?= =?us-ascii?Q?NTk25RB9B/+P4RCoDaWPDgiHkurl5JWu8MdV4Q+eGW1mOGuT/PRnf+UXu3XM?= =?us-ascii?Q?JONU5Jadv21ZFnc6bbhn8gbVLfExjcCwjjWZwgwxoiq75qaTOJ2eQPXeYz3Y?= =?us-ascii?Q?N8GR6slO0OgCbmad9YlIgMXffXso6XJDk3bYeCWd6+Rqy6c9?= X-Forefront-PRVS: 0354B4BED2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB0602; 23:U9VoprPsiZHsLJ4ZDw3HouL/9K6gjrb+0bb79PZ?= =?us-ascii?Q?Py4kjmPfv06Ou946NllThZ/vUQGnHUWMskv5DjCJEUmHzMV50XQ6HLxpg1g7?= =?us-ascii?Q?rBbWFlH5/cLd1p98WnwSa4+6srHWvplSM3g1kwfbA/QbW4C05ciX7oEPcKBp?= =?us-ascii?Q?qb9AUkHMv1/UpeFNQjHAfHndwSb/U9hNrmFMDQJgu4KXijg1jtoVxKmLx8Ci?= =?us-ascii?Q?gM3iF8TNqvnaQF9P8gWSuOFdHloRg7PaVH/b3GCi+L78sJVB6Hp2W3yApN/C?= =?us-ascii?Q?4MY8GX+hiQaB69/FAxp+AEMBIaS0Rg9fa+OUT9RmqrZPYlwduJgoIsEdAeFX?= =?us-ascii?Q?cUCeW5hCNs8QzSqM8FdLgqVJ6I/U0qb1lN23/+2L+MbZil8DvaAzbCeXLywV?= =?us-ascii?Q?TAxRN01R6RsxhKDDW9JhGBij15R3vcLHbq3XwoRgzXYT2nrZkutZa6odvA9K?= =?us-ascii?Q?aRDZgpEbUyNcT91XeMJh+g5jTP4huFrj/ETXIRXECZ6zy578N6v7yK5K4qud?= =?us-ascii?Q?uhRB1vMRKCfTi6encWzp0ZMZdRfxQKECUho20Df4RAVIFt8yO+7JTjPHuhPf?= =?us-ascii?Q?Am0N/fiO5LgI/+84GE9B50lzF+lnmBVFF9Np5ZBHgO7Dqfm+QCS503coK5XS?= =?us-ascii?Q?doqRSvwmNwOr8xbG2SV2J1FXbFgMZgxbJHkbH2MjnbSsO5u2Erd+yGeEkU0l?= =?us-ascii?Q?vfvNF5JcuSp/eC9QdpemoFmevW49K7TuRPgz08azMHJnlk2ckVOgOwb1Z3nS?= =?us-ascii?Q?l9rNhKIhfjpYhSAv6R6x3lYaXoGmxxPYKN+HnzWqTpHPHs+tM8txvAMUfZoB?= =?us-ascii?Q?7qnvuMl52b9JrrTDTAhI7HUaCsbAaI6Eeizpri9VcZEWcVwe3RBxofuRqr09?= =?us-ascii?Q?s7XvQiEe+u7XqSuN4ffUE/SD+YGp/C4GSpZwK/LDHu9jbh8bkPAxuSdRARaZ?= =?us-ascii?Q?WN/6cQBjz/LfjBo0M4gNWTYzO59b8Zy3VVDDzHYkCihzmyh4Y0tf6pfIACsx?= =?us-ascii?Q?ajM0dAPcyBptNJrzC+7Nxeyxw5jSc5g2iGELj606AOniwNP8jcCcWKhtLmN8?= =?us-ascii?Q?K/CQA3JAlq+ftX+IVuDZVchvmgqX15cvmZaIXOO+YihI5lHUgzzgK5GIW2Bx?= =?us-ascii?Q?xwngw/vJne1LKnKf3qWZ9QqEWEWQ/ZrT3QgsHbHBpezDGSuW5Oav4LN32526?= =?us-ascii?Q?Nx+eKCPm6hCobs1vnZ0JzTEzyi/ruZlLRQCbux36AvwDtPLi413HwwEv3/8O?= =?us-ascii?Q?07ZCuPPFwHjmNvzMltqg=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB0602; 6:HD69A0XPkZ0P1uVKW6qNU5AOsR0WdZuuEda4Lf8r?= =?us-ascii?Q?3bq8mbit6LuMP4NGYv9vEa/C9iI++lxx2xLYx52JJxWubWioZOm73v+2n6/x?= =?us-ascii?Q?hHTK3Ud9rjttyh4Hh3rpGR61WAbVaX9lAo/U9DwIqSOvU0xvR4ekWnFl1m/v?= =?us-ascii?Q?QpVid6Ley0mANn/YwNTbpPkFffkSbN28MBw1va9L1/pZ05IIvypsr7+yLGUi?= =?us-ascii?Q?NmzMtdofVAfHc1OzCXq6ljOEbmdIaU0cb6IgsmW+N/UhbSHo//OvmnTwXIfu?= =?us-ascii?Q?AoPpS2eJmxzumwp43lZKSZavt6tzPLkL+qbu2LNx1IVi8oqmx2HRZ03S3Q3u?= =?us-ascii?Q?IY6Mq8zaeJCK+M2s9D1N4b2fdZzko/1gc2Eu2zXDFudR5ojUSs6J2CIIIra4?= =?us-ascii?Q?qrYxPIKke4DQZe0jb2Csh4Cqjv1I1TNN+2N5HZnRmb855LdvztBSnGQAYUaw?= =?us-ascii?Q?VbTLBeij3Dx+DLaf/vvLggLjbj/ZmWHGKYPxHT1fQ3jMFMGXWIjx6QsWFSOp?= =?us-ascii?Q?fN3Qqpl8hNdZNBFnsIkcKJRUKCOr0n6R0NGhnIzJqZp2LJlVbjcKLAnwAUJg?= =?us-ascii?Q?+WxCsgzmWcge7bFgVrF5/u2ZSWTw4WmAHBkgbF6plOxpkmyg9T9btZquNKvS?= =?us-ascii?Q?YZT88ctfPVoYk5s4IUUF93wp9myhcFgvg9BgJi0yW0vW5QkL/6pmIyzOZKkb?= =?us-ascii?Q?tp4dg0QAIsjAZHaHde/NDhYZDLcePJPPRdpI5yd4a9fpiQRd1nnBLoHlr7Dq?= =?us-ascii?Q?O7YEbJ5u+IaaXYK/f6xEM7kG6/2idjGiSFKqWkid96EOUTGX/iVJHAtxngu0?= =?us-ascii?Q?8eCGlsYzE59wZHpSa36C/kOTuNHNZsyx5fr88IdMCVR/d7Bgm4G1Ua/CAxjj?= =?us-ascii?Q?W5Q82a4ct/Y26v/f/BVTXZ+4LqKrrEB2Am03F9BKVszJJjPaDlbbpyTCZAQn?= =?us-ascii?Q?0BMrGe6/fHtUG55xF81VK1kNW8cmDW1L3aQ6j64FFA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0602; 5:UB3LU/ht3BPhB2N8HYU4HZoDFpIMhdMt5TuqU2nwEPPwEZb7z8Jb4oOKkLQhAhpBY1CDq8Kb8AFsikkwp2iJ/Tzl+ULc9ls08kGWt2wwdFQ2nii8Lvysydwdaj7yuh/u0/MH7STyqiFvkPA7UNlJrAVErthp9f4M+WLT4BRT+YN8nXz4CIl4HJJxKcyaznEoqq/xLeIIHaoiANxvRpzZPK2Er06xuIXoMSMB20gwD6JV5i9LEd/FK4Gu4k9zSzStbdSd+57ZMImndEeJyYv33TzlIhxaFABsEo3c7aoC5EOcjifdZgU7xWXW5mm92t5opdrWj+IYlEY/doaoTEt/DTGBSjo6C9tKWnV0syZeNauR/ZAscJxilmlSsyzwFFNaFndea8SZE6L8f8y1DV6jrdYVTVii06CUVKcHaQqs48wAnqqI6zPbon6ouWzsQAKuKD2nLVcgeqvso5QNCG7OwNb+ZEXQ2F5X5Z6VUkt5BM62gw0GouKAH6AKQMb0rzjomndmqEn19kBos0vzmYcpGg==; 24:0Bsq5LNKTjT5MhTOrnJAF+v8Xb0xe8ISGaQ1fJql9YX945DcOT183t1XrwfwilPh6jBL0uS9oGCOmaXmPvh1BaqeS06u2G+PuWkJemsw/PM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0602; 7:BwADAL6VoYdzNFbKfVmFLxlf84z/Lw34ghQl9b6Dee6fjLSswg4LD/3RiQwzSpWqkY5X99Ma6ObG9dw6iixzVPBGHOmr5xIumIRCoOLn2lBny2CzJRZszW/QqhFhXDdiwJ/jOcMGm349I1kKDbJq5jd7S5/CQBwVhkO2QIkwW6TZb+0RAWClWH2sN7kdXsgbotxON40kqPEdOD3jSTRwhLDIfQs0IvTd92XxilRB7AOyRHR/g6ZaT9SSpc9d0b/5yMtxDnCed2nLifzyFSWJEwBVxjp/E3TXKhqelnYqALw9fZudOEVCwzBLdEFaniLJhijdC3H7UWa2aZP9CfornsHGFwyAdRPy0rkS/mRfS6agysN0pmhfVcJ1Vnas0bh1oKNxdeuoX01OpXdSV12w70w7XR8LLCRb2hqKuCWlFaVSIsCkaNmCYRMc6DQCVQNQlc4zogkPNVH+c5znGfROWfZMMsW+90u7O4fapcukcVopT2C+VDUoyI7NTtncFycIvoHhr1RZYMalwhmTxSq2myLm+23pYq80kMaK44IAwfakI4FGpulW38byBUHr4MRVlwsxLlTfIlO0DnBlgOV5OcUf8XGKbtzsR8jpQDfmqpg7lYRF1AihSQYVNeT9U5VuocxRDBRBPn1uwgAoENUQGWDYPT61rCslrGGwfRBulAf42u6Y2dMKffWuwSQ82RJW/6S0z30gwNq+xtTXX/g8/yk/x1hoXD+2UIWnqEWGcsQgKJbxVFFpSGAU/SjwmlEfozz4gX6NgjPmXJ8eGS0YiP/ll6/a4k8MD8TWDpbfZdw= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2017 08:55:14.5099 (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: CY1PR0301MB0602 Subject: [dpdk-dev] [PATCH 09/21 v5] 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: Fri, 30 Jun 2017 08:55:18 -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