From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0040.outbound.protection.outlook.com [104.47.40.40]) by dpdk.org (Postfix) with ESMTP id 09A212BD2 for ; Fri, 28 Oct 2016 14:25:22 +0200 (CEST) Received: from BY2PR03CA061.namprd03.prod.outlook.com (10.141.249.34) by SN1PR0301MB1632.namprd03.prod.outlook.com (10.162.130.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.679.12; Fri, 28 Oct 2016 12:25:19 +0000 Received: from BL2FFO11OLC009.protection.gbl (2a01:111:f400:7c09::133) by BY2PR03CA061.outlook.office365.com (2a01:111:e400:2c5d::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.679.12 via Frontend Transport; Fri, 28 Oct 2016 12:25:19 +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;nxp.com; dkim=none (message not signed) header.d=none; 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 BL2FFO11OLC009.mail.protection.outlook.com (10.173.160.145) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.679.5 via Frontend Transport; Fri, 28 Oct 2016 12:25:18 +0000 Received: from Tophie.ap.freescale.net ([10.232.14.87]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u9SCPEMC019399; Fri, 28 Oct 2016 05:25:15 -0700 From: Shreyansh Jain To: Date: Fri, 28 Oct 2016 17:56:17 +0530 Message-ID: <1477657598-826-1-git-send-email-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1477581467-12588-1-git-send-email-shreyansh.jain@nxp.com> References: <1477581467-12588-1-git-send-email-shreyansh.jain@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131221311188987585; (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)(7916002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(5003940100001)(11100500001)(561944003)(189998001)(81156014)(586003)(76176999)(50986999)(81166006)(47776003)(36756003)(2906002)(5890100001)(4326007)(105606002)(106466001)(2351001)(229853001)(97736004)(15395725005)(33646002)(104016004)(19580395003)(50466002)(48376002)(5660300001)(68736007)(86362001)(110136003)(8666005)(87936001)(92566002)(305945005)(7846002)(85426001)(50226002)(15975445007)(356003)(626004)(8936002)(77096005)(8676002)(6916009)(2950100002)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR0301MB1632; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11OLC009; 1:FZU+gbY7DMTCHum+zg3stOJS141Qil/sJ+FKATvU1tHa2OMnzZZK7d/pimA3nilmjF0wdhojQbJXi0iXENCtNAJHL4hUKgs3g3OntozihTwbCCI5I5ud23E07mraOQOSTl63Aid3wnPp1JZo5s31lKdef0mwXR7D2Hbjz9ELLk/sdkZGd1ljwVqaTP5yImOK4j3olKz43B+ArV0mt87wGnYMJ12KrnBNrZMmUmAa/yWYANv6sJsiIQTdsEK2Z4itwnDhSrKgiR+xZ3nxNdjhhTsNn9A6CnJ5DEIceNM7NmItCStE5x8nASxWFK5oVIK+dxuMeKqTvGJ6w/B4IRM3+jsALu02o53P7o9ITOT6BUa4nbz9aO9TWDm7Jrui82aGINfxwszVhxjqOtjuEs2L52zoizhwbWt2zSlIEEHS8Iads3CkDaZAXkhoRx2J9j6nQer7/V6jpGRWDKKTDg+YJn4VZw+mFDIC+Vyli3B8oBYPJGbdQZ+Kc7yRzX48g6Ow4XQWL7S8npw6gYF4mv3Nv3I3/6RvkdWKL8wWoIYFOoP+2U1EaHY703VGSyOFc9NTWGqF8gAyIVZvndQWK0iJzW3vQ7hDnq3251+NJVfR4A6V8S4EvCPYUMCUXhGnZP2TKCiBzn6wrIsLveiRfYrp1Ss5vqd0qh43IdRYyM7Y7x+akNsO0TDo+X2NGd3V9DUdOLhuwCMDoXGxL/ijlNqEWs71Ag94zFy3qn4+UjzgAfI= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 99c9dbf2-07fa-4a00-6ec1-08d3ff2d7ad8 X-Microsoft-Exchange-Diagnostics: 1; SN1PR0301MB1632; 2:t8AOyyq0kEey/N/8BMyPehwIxCm1/N9RVPKii2NZBVX9nPpYW/LdVjz2UzWlNN2+2R88BIXj4Q7WBT1LidbaXA4Wr8f6RD4uAEZ2ssF/qunQuodeI3Ym5i7qjSR+ErBrWH6Y9nlUYyEpm383fpYww1zDJ1k01jO8rf3mGEaAkTuIAfNkAPvqWbY+TdM2PPx5OTip84ueNZrcIwYKrwlhCQ==; 3:gDJuX7w3V8365M7BhHN09as1EUxAMey93wMj8cPOen5kPLLeb63p6cgcxqxFnlJ/nb6O/qKHH6LnyES3UmkB0WMZYYR/M+GIZqEOaJHJRnnvG9AKrD33Ux4Ip+aQocR0/2hQywcydQnFF+OE59FR+VqapYnFxPvN9BiwqLsQSk4boqmEWphBZTGFBSy7UFiOP51ygfSVjFonc3Dz3zsJs7wxiQC5WJ4KKNMJ9T5tdpaxMKBxKMRqEj9N2bJjaS9r X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR0301MB1632; X-Microsoft-Exchange-Diagnostics: 1; SN1PR0301MB1632; 25:r52RK6q0fW86mItOGPPxz9EBkmePGpxMHDZxVD+zx1eq3SV+zhP7igPLlhJN0FxWVaeMWwbuqHW1REHFz5BS1wQr7ywOB50B1YeuqlC/hBocxJC1efdl0UtPm5P8I4qnfha/Poirxtf9Kn967tXejjnoWoUadYFn5/EzP+uhDP9N1CKVvvi5HCzt1iIMXpGpJsAyOQICM5cpcG5XT/ee7Zfw9ZSosGh9a/Dljrzxe7pSUO/oshYxT99NgPNSOj+HyC3yKU0zaXs49j51TMcZ/HKkGLSj2+sGd1IZ9+t+NbaWoULkO9nDoP50vfRqwKSiUMHI7bcSqOVTCSPmxNlgA40vTBbdC4r4wx8YtWfNZPJdRCuqq9o1yjJGU0ew+HqO8qgWHxxEQYpRcsPTTJpKcVHQLiSzbs/t6QupfZhDD6NCE59VnujJkMztqkEuPLdc73V3gzvVSl3UaRnzvhAoK8ersrRJP2DMNnuVMA+Ih+i3yYkkNsU0k3KJVyYJQBxCN+uxz64jN2dBSVJscYkt1fQYMsJ+1ANBJnCON09qQ/bwh7k3SaVJC0C8+E82SysRfDtLZq5KpqceHen8xQm3XPGWFMbKoC6MTT9/0R0WLuJyAPN2XJXKcjTaVdiD+sX2wkuklPMZkmsXLt0Hq4Nl21OO/mEIgwji9+T6NFHdr9mHOpCAXIstG1S59gnl9Jwbdh95LRrvJ1ggP8fF0jwb7gpXyDW5Ar2Ops/vihFLHVbJzUcVuCb1XCJ+CNEfg9f+1yycubaFI6l5q+4pJwQ3lVEhCjkT+KyRg6EWITfMzIlhLLfVzjOtSCq2s+TW/nir/tNmxCAJEtHOgqBJItg6O5mVjhC3XrUUFui91zbZINhABozuqt8EvqVlRD/CdwsU X-Microsoft-Exchange-Diagnostics: 1; SN1PR0301MB1632; 31:M6pGCUOMRn9vbq3hdoh1rx8qUv4yV+yiLnhie0YND9eCOYDD3ra8Ita6dax3Hwwd9fL3PDNetQZiYXMzzEEV6uw850d8K9WKZAZugWMkNvD0WbcA2AAIT2plcZAoJKeTXubsG7jXebm67VJ3A4TaQ+U/PL5xeNMBuTf2geAlkn5JWdgXzFnc4a9DcF6t9965L5KmAPs6hgcDCR+GM27hu1famyEElg4pBnX8dXcnuS6fD63NC6HBtOBK1u2sBthTjdSQitn8/MiENRjhOyZFIHZEf6LZhN0HWRt1XAqsLW8=; 4:cmcKPQ1d/VPPT21pJScYi1AeF2tszMPlwUTaReLUd/b9p0EqXeh7fQ3rKdV/3KTX24dRc3vXJT+GDi61CvJCZ9uKOZvOiAYzpqLCVqWXTcF7bHwnNud7jOO+hsIB0B6QMMLlzSgBNuJEqkK8EJ6tej0Mns7OK/HwIJCyTjYcI10Vj/CK/WIzfkfSnqUriwySoGxXBSG/S8wWCesXJ6yHiMfx7eljoT9V4uQpI4JJI7/mcVp+LMeWTrm+Q6OZcB/GyoLO7KKRhedvGmCy9HWCRY/5eWp21DD99c4PQYjcyADojMAnA/laGsbQ1mYjL3t8wUgS1OL8SDV2D4EKfJn1uk3hpqcBQksuAiOUTAMkyJo7i7rP8JKsT9pqTOmYIOMlK2nYMa9kSLR63Jo44mprwrS1IG0OqtxiFYx4b9jGCki+yZJ/1SjI7d3MjfdpqvNXxH9WYE/1If5IPe7s+vkt8xyTMqMMSsnA1udEBo6gtHYcnUWQJ6IVEIIalLSv0oKstTwQurQL1ImULpP1KHAqfg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(13024025)(13023025)(13015025)(13017025)(13018025)(10201501046)(3002001)(6055026); SRVR:SN1PR0301MB1632; BCL:0; PCL:0; RULEID:(400006); SRVR:SN1PR0301MB1632; X-Forefront-PRVS: 0109D382B0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR0301MB1632; 23:8Bs6+L6Tw7G+lpfrgKOMjSZUfKFGExWKVCDfDsQ?= =?us-ascii?Q?gCptBsZ2U5pyFot/YMxMQNbgU8KsvuKvRr7I1fKvzs3+onVgbEbOd3RM4mBE?= =?us-ascii?Q?P15Dv+2qp0HeRd7ZR9xL5tIpltjyit3hcYWlE3mHuIKHv91uvg3TfwmaSLXh?= =?us-ascii?Q?JnWQVxTy9ZvhUMHySuXGZzc4sU6QbwDbBeljhRDJ1ufl3l01ZVnvMrNm++9+?= =?us-ascii?Q?g/90cpDrMOnC5aF6WRwAs4j3o9PQJb6R9ytBirV64OtGlvEFiBfQzgKGeDmb?= =?us-ascii?Q?lnVUzBf7e9J85fxBvbG5sABWnItQGID2/mbKuy8Q1PYNqOf99pEfypeoJ/9V?= =?us-ascii?Q?nibYN13iyLorp/ASQbASB2Vou6HO6gWjaOZTyadpa0XtzKu7jsFJNfJCVTyr?= =?us-ascii?Q?/jyIGKXg8UHRXjAOWALF4FazkZ1m4nSTfu85xddGtf1AtLdktAiZMd4xz083?= =?us-ascii?Q?fnkrTtOlbqNarxBOng+/VHtBuai5MtCJawdU9x8R3g1t5gsTJWgCnctF5WOe?= =?us-ascii?Q?MiW3MyweUJp/djTSWdXOXXlPyxR0YNKS+9K++Ulqre/zmY4XCh32d0LTP2zm?= =?us-ascii?Q?GzFkaTcCi4LYSUuhfAP2Wsmf5UdpTCjaTmEU9Nryfz83bj6K3aFzbWo04jng?= =?us-ascii?Q?63qgU6XjcaQ97rMbVpOXHDpeD6Z7bIndSVF582qvQaIdmGj7NxZKrxrZu5dY?= =?us-ascii?Q?NPdUbmrvH8wldi7N5HpDcRreGrTbPFZISZ03i07r3T/lWXt1XB06MuBTZFt8?= =?us-ascii?Q?mAZs835Ar9Gvkxgxfq4lDbUFFP2L8PQ39TlIC1+VHMFhEyJOlgZ59gpszHKu?= =?us-ascii?Q?3OoLJsWUMND8a4Bf9DSacBOQ2U9cY12mTQkbw1Bvs3OLbc5qDE5I7vtI44V/?= =?us-ascii?Q?Jb7ODbNYKex8ZmBkWAMht23nxZGAM1G2zJeRW6EAhOxoFC2Z6VfLZaC4alOQ?= =?us-ascii?Q?yp9evD8Bs1SGtdfsBq4mQXQQbqoAQOzEnUEFMndMuq983tO9WBvYUf1Sh+5+?= =?us-ascii?Q?vPOmJieVpBkWBOex3u8QFQ4EZ10Umld+2NLjfr1M2S4oJAaEsPr2dcoUi1tC?= =?us-ascii?Q?iA+V1iUA+r+UC6fveenSzlnZexwJBgrPW99fnygmP0t/XmOGYH/V2kWt4Sg0?= =?us-ascii?Q?8DejJKc870JLOntMopHW+TrKGg/yVZFcZhsOb5Y0XCybuCSv5+p5EWLTl+vn?= =?us-ascii?Q?CEX0CzVmhyf6923sipAq5JAHK+4i1lV+oKajGB9spfwV7gNAL+GUGHtK/eFI?= =?us-ascii?Q?4vBY3Na1y7B7ZkM4fUHbderi9QzIsgA5UN7Ytg0R2?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR0301MB1632; 6:aSMVIFcmnFZdOx9AF5DmsA/C4DWTkfuWdQLZJ4Min62QxLLh5fColIdWJBUJFx/jwzNy8nOy9h3fkcB2mtj3EcnluglCzRrRdwWrKrdZ48Pljs1j23ko1XCr5JqN7nfwOHPc2ym18AhEcvSy51jJZvVBjAM01CMIQOXZYZHURpPndnIZbDwU7ZO5OWz9q19thI2vIr/8ObrLMjVGPb8wzd5NMeICWL3Pm/F6r5vbaV+fsPuv04CnXWxLk0reccsha8qabZfzqfLDyAvyXyUIEq8L3P8bbRhd7N1poBouo44PppsGhpvSem43+mgUov7a; 5:y+jyvp+wd34Cjd7vig4HMPMzPQoHF/099j+P34QuFKifJdfrI5+sgcvc60eXfoaOgexn3HDpNVWd3U+dNogZ1S10xH3eG3IA+rCj5zSIqZTQksNRf7O+bW/Od/z65ZUjWxXzWv8WmktAJCf6WniXnJxwx4aenvfP78ivvxGLzpWih+c/HfLl7ey7r3FvPtfJ; 24:IlqWOCSX/mKVLRWfTUg2rYLcVLacNUsltoxzBezNbVMW/rpOcJQUYBcPBqDz6w2TxhmIzSnZnS3heSDlLsA9oCqHPZ+Zn+Boq/MWwtM/pvo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR0301MB1632; 7:1eOBPs/PpdDcoXUYBx02nHOJYWDTN1857qxmkn094oXJ6LDbYXZ6Oo7LmRewOuDk6+FmEituZLgazCuwAuvJLwlbvQeei1b+fZzVuZ3rtPUpKL7D7rXLlQeZfBokxuD9k67IDxyWtMrOCk1AZ6KKEuTrQsN4vADUMtUUu6sqksM23BvaICXpMY8x/RkcSVKHAAJW6yOKM6BrJvX8o/FXhSNABAHOO/HljjhBlJCRA35uYKImxcoX8FJ+TM4XPy1rK2YFRZXk30GV26YGr3pOGuSOF1pS0+gzMAJfkfIN0/4drTPcmZ01tQO5povpFMC3nNa7W1FpH6rhI7ASuKBMdeXsemeqIqjx14lDL942PAg= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2016 12:25:18.7271 (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: SN1PR0301MB1632 Cc: Shreyansh Jain , thomas.monjalon@6wind.com, viktorin@rehivetech.com Subject: [dpdk-dev] [PATCH v7 00/21] Introduce SoC device/driver framework for EAL X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Oct 2016 12:25:23 -0000 Introduction: ============= This patch set is direct derivative of Jan's original series [1],[2]. - This version is based on master HEAD (ca41215) - In this, I am merging the series [11] back. It was initially part of this set but I had split considering that those changes in PCI were good standalone as well. But, 1) not much feedback was avail- able and 2) this patchset is a use-case for those patches making it easier to review. Just like what Jan had intended in original series. - SoC support is not enabled by default. It needs the 'enable-soc' toggle on command line. This is primarily because this patchset is still experimental and we would like to keep it isolated from non-SoC ops. Though, it does impact the ABI. Aim: ==== As of now EAL is primarly focused on PCI initialization/probing. rte_eal_init() |- rte_eal_pci_init(): Find PCI devices from sysfs |- ... |- rte_eal_memzone_init() |- ... `- rte_eal_pci_probe(): Driver<=>Device initialization This patchset introduces SoC framework which would enable SoC drivers and drivers to be plugged into EAL, very similar to how PCI drivers/devices are done today. This is a stripped down version of PCI framework which allows the SoC PMDs to implement their own routines for detecting devices and linking devices to drivers. 1) Changes to EAL rte_eal_init() |- rte_eal_pci_init(): Find PCI devices from sysfs |- rte_eal_soc_init(): Calls PMDs->scan_fn |- ... |- rte_eal_memzone_init() |- ... |- rte_eal_pci_probe(): Driver<=>Device initialization, PMD->devinit() `- rte_eal_soc_probe(): Calls PMDs->match_fn and PMDs->devinit(); 2) New device/driver structures: - rte_soc_driver (inheriting rte_driver) - rte_soc_device (inheriting rte_device) - rte_eth_dev and eth_driver embedded rte_soc_device and rte_soc_driver, respectively. 3) The SoC PMDs need to: - define rte_soc_driver with necessary scan and match callbacks - Register themselves using DRIVER_REGISTER_SOC() - Implement respective bus scanning in the scan callbacks to add necessary devices to SoC device list - Implement necessary eth_dev_init/uninint for ethernet instances 4) Design considerations that are same as PCI: - SoC initialization is being done through rte_eal_init(), just after PCI initialization is done. - As in case of PCI, probe is done after rte_eal_pci_probe() to link the devices detected with the drivers registered. - Device attach/detach functions are available and have been designed on the lines of PCI framework. - PMDs register using DRIVER_REGISTER_SOC, very similar to DRIVER_REGISTER_PCI for PCI devices. - Linked list of SoC driver and devices exists independent of the other driver/device list, but inheriting rte_driver/rte_driver, these are also part of a global list. 5) Design considerations that are different from PCI: - Each driver implements its own scan and match function. PCI uses the BDF format to read the device from sysfs, but this _may_not_ be a case for a SoC ethernet device. = This is an important change from initial proposal by Jan in [2]. Unlike his attempt to use /sys/bus/platform, this patch relies on the PMD to detect the devices. This is because SoC may require specific or additional info for device detection. Further, SoC may have embedded devices/MACs which require initialization which cannot be covered through sysfs parsing. `-> Point (6) below is a side note to above. = PCI based PMDs rely on EAL's capability to detect devices. This proposal puts the onus on PMD to detect devices, add to soc_device_list and wait for Probe. Matching, of device<=>driver is again PMD's callback. 6) Adding default scan and match helpers for PMDs - The design warrrants the PMDs implement their own scan of devices on bus, and match routines for probe implementation. This patch introduces helpers which can be used by PMDs for scan of the platform bus and matching devices against the compatible string extracted from the scan. - Intention is to make it easier to integrate known SoC which expose platform bus compliant information (compat, sys/bus/platform...). - PMDs which have deviations from this standard model can implement and hook their bus scanning and probe match callbacks while registering driver. Patchset Overview: ================== - Patches 0001~0004 are from [11] - moving some PCI specific functions and definitions to non-PCI area. - Patches 0005~0008 introduce the base infrastructure and test case - Patch 0009 is for command line support for no-soc, on lines of no-pci - Patch 0010 enables EAL to handle SoC type devices - Patch 0011 adds support for scan and probe callbacks and updates the test framework with relevant test case. - Patch 0012~0014 enable device argument, driver specific flags and interrupt handling related basic infra. Subsequent patches build up on them. - Patch 0015~0016 add support for default function which PMDs can use for scanning platform bus. These functions are optional and need to be hooked to by PMDs. - Patch 0017~0019 makes changes to PCI as well as ethdev code to remove assumption that eth_driver is a PCI driver. - Patch 0020 adds necessary ethdev probe/remove functions for PMDs to use - Patch 0021 adds support for SoC driver/devices, along with probe/remove functions for Cryptodev devices. Future/Pending Changes: ======================= - Device whitelisting/blacklist still relies on command line '-b' and '-c' which are internally implemented using OPT_PCI_BLACKLIST/OPT_PCI_WHITELIST. This needs to be changed to a generic form - OPT_DEV_*LIST - probably. - No cryptodriver currently uses SoC framework - probably a example driver can be created to demonstrate usage. - test case for enable-soc command line parameter - This patch impacts a couple of ABIs (rte_device/driver) and thus require a patch for bump of libraries (if need be) and documentation. [1] http://dpdk.org/ml/archives/dev/2016-January/030915.html [2] http://www.dpdk.org/ml/archives/dev/2016-May/038486.html [3] http://dpdk.org/ml/archives/dev/2016-August/045707.html [4] http://dpdk.org/ml/archives/dev/2016-May/038948.html [5] http://dpdk.org/ml/archives/dev/2016-May/038953.html [6] http://dpdk.org/ml/archives/dev/2016-May/038487.html [7] http://dpdk.org/ml/archives/dev/2016-May/038488.html [8] http://dpdk.org/ml/archives/dev/2016-May/038489.html [9] http://dpdk.org/ml/archives/dev/2016-May/038491.html [10] http://dpdk.org/ml/archives/dev/2016-September/046256.html [11] http://dpdk.org/ml/archives/dev/2016-October/048915.html Changes since v6; - Fix patch rebase over HEAD (ca41215) Changes since v5: - fix devinit/devuninit name change; it was in wrong patch - rebased over HEAD (ca41215) - Update to pending section of coverletter Changes since v4: - change name of rte_eal_soc_scan function name to rte_eal_soc_scan_platform_bus. This still remains a helper function. - Fix comments over scan and match functions Changes since v3: - rebasing over HEAD (fed622df tag: v16.11-rc1) - Add support for default scan function; PMD can use this for scanning on platform bus. - Support for kernel driver bind/unbind, numa and DMA from Jan's original patches. - SoC is disabled by default. '--enable-soc' command line parameter enables it. doc updated. - Updated testcase function names and comments - Map file addition alphabetically ordered - Patch author corrected Changes since v2: - Rebasing over rte_driver/device patchset v9 [10] - Added cryptodev support for SoC - Default match function for SoC device<=>Driver - Some variables renamed to reflect 'drv' rather than 'dr' Change since v1 [2]: - Removed patch 1-5 which were for generalizing some PCI specific routines into EAL. These patches are good-to-have but not directly linked to SoC and hence would be proposed separately. - Removed support for sysfs parsing (patches 6~9) - Rebasing over the recent (v8) version of rte_driver/device patchset - Rebasing over master (16.07) - Changes to various map file to change API intro to 16.11 from 16.07 Jan Viktorin (19): eal: generalize PCI kernel driver enum to EAL eal: generalize PCI map/unmap resource to EAL eal/linux: generalize PCI kernel unbinding driver to EAL eal/linux: generalize PCI kernel driver extraction to EAL eal: define container macro eal/soc: introduce very essential SoC infra definitions eal/soc: add SoC PMD register/unregister logic eal/soc: implement SoC device list and dump eal: introduce command line enable SoC option eal/soc: init SoC infra from EAL eal/soc: extend and utilize devargs eal/soc: add drv_flags eal/soc: add intr_handle eal/soc: add default scan for Soc devices eal/soc: additional features for SoC ether: utilize container_of for pci_drv ether: verify we copy info from a PCI device ether: extract function eth_dev_get_intr_handle ether: introduce ethernet dev probe remove Shreyansh Jain (2): eal/soc: implement probing of drivers eal/crypto: Support rte_soc_driver/device for cryptodev app/test/Makefile | 1 + app/test/test_soc.c | 404 +++++++++++++++++++ doc/guides/testpmd_app_ug/run_app.rst | 4 + lib/librte_cryptodev/rte_cryptodev.c | 122 +++++- lib/librte_cryptodev/rte_cryptodev.h | 3 + lib/librte_cryptodev/rte_cryptodev_pmd.h | 18 +- lib/librte_cryptodev/rte_cryptodev_version.map | 2 + lib/librte_eal/bsdapp/eal/Makefile | 1 + lib/librte_eal/bsdapp/eal/eal.c | 18 + lib/librte_eal/bsdapp/eal/eal_pci.c | 6 +- lib/librte_eal/bsdapp/eal/eal_soc.c | 46 +++ lib/librte_eal/bsdapp/eal/rte_eal_version.map | 11 + lib/librte_eal/common/Makefile | 2 +- lib/librte_eal/common/eal_common_dev.c | 66 ++- lib/librte_eal/common/eal_common_devargs.c | 17 + lib/librte_eal/common/eal_common_options.c | 5 + lib/librte_eal/common/eal_common_pci.c | 39 -- lib/librte_eal/common/eal_common_pci_uio.c | 16 +- lib/librte_eal/common/eal_common_soc.c | 368 +++++++++++++++++ lib/librte_eal/common/eal_internal_cfg.h | 1 + lib/librte_eal/common/eal_options.h | 2 + lib/librte_eal/common/eal_private.h | 64 +++ lib/librte_eal/common/include/rte_common.h | 18 + lib/librte_eal/common/include/rte_dev.h | 44 ++ lib/librte_eal/common/include/rte_devargs.h | 8 + lib/librte_eal/common/include/rte_pci.h | 41 -- lib/librte_eal/common/include/rte_soc.h | 322 +++++++++++++++ lib/librte_eal/linuxapp/eal/Makefile | 2 + lib/librte_eal/linuxapp/eal/eal.c | 63 +++ lib/librte_eal/linuxapp/eal/eal_pci.c | 62 +-- lib/librte_eal/linuxapp/eal/eal_pci_uio.c | 2 +- lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 5 +- lib/librte_eal/linuxapp/eal/eal_soc.c | 515 ++++++++++++++++++++++++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 11 + lib/librte_ether/rte_ethdev.c | 166 +++++++- lib/librte_ether/rte_ethdev.h | 33 +- 36 files changed, 2343 insertions(+), 165 deletions(-) create mode 100644 app/test/test_soc.c create mode 100644 lib/librte_eal/bsdapp/eal/eal_soc.c create mode 100644 lib/librte_eal/common/eal_common_soc.c create mode 100644 lib/librte_eal/common/include/rte_soc.h create mode 100644 lib/librte_eal/linuxapp/eal/eal_soc.c -- 2.7.4