From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0057.outbound.protection.outlook.com [104.47.33.57]) by dpdk.org (Postfix) with ESMTP id 12D29F72 for ; Wed, 31 Aug 2016 13:00:53 +0200 (CEST) Received: from BN6PR03CA0053.namprd03.prod.outlook.com (10.173.137.15) by CY1PR0301MB2011.namprd03.prod.outlook.com (10.164.2.17) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.599.9; Wed, 31 Aug 2016 11:00:50 +0000 Received: from BY2FFO11FD050.protection.gbl (2a01:111:f400:7c0c::162) by BN6PR03CA0053.outlook.office365.com (2603:10b6:404:4c::15) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.599.9 via Frontend Transport; Wed, 31 Aug 2016 11:00:49 +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 BY2FFO11FD050.mail.protection.outlook.com (10.1.15.187) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.587.6 via Frontend Transport; Wed, 31 Aug 2016 11:00:50 +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 u7VB0laR010481; Wed, 31 Aug 2016 04:00:48 -0700 From: Shreyansh Jain To: CC: Shreyansh Jain Date: Wed, 31 Aug 2016 16:30:21 +0530 Message-ID: <1472641235-23626-1-git-send-email-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1451682326-5834-1-git-send-email-viktorin@rehivetech.com> References: <1451682326-5834-1-git-send-email-viktorin@rehivetech.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131171148509054162; (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)(1110001)(1109001)(339900001)(189002)(199003)(48376002)(50466002)(626004)(4326007)(87936001)(106466001)(50226002)(561944003)(5890100001)(50986999)(2906002)(76176999)(5660300001)(110136002)(85426001)(97736004)(104016004)(2351001)(8676002)(5003940100001)(68736007)(8666005)(2950100001)(229853001)(36756003)(356003)(81166006)(586003)(86362001)(92566002)(8936002)(305945005)(105606002)(15395725005)(47776003)(189998001)(77096005)(81156014)(33646002)(19580395003)(7846002)(15975445007)(7059030)(21314002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB2011; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD050; 1:ZXtDZP2TNnQx2Ne6KkDNRoFX6nBu4GmEFVHdPulkfOibcbFnZLiB3haV7toDrvehB+9yFMXZBmW7iVUVOl/4XPAk+b1Iiuea0QZYZRRitRpCkDTV/1/Ff5/uQvuqlRJgmXl7ZdUDvHyA9kYGPGOo05U413gxSvHpBCn0Be1SekU8+mCXvqCDYn09rnZkvX78SN8gI/wEAbnOM8fK7UtWy2S+TlrhVpSsxctCMVw2JGT7vDCEYuAJg/ZOd8lzDAAupxHopMNtEFUhxGI8FaAbwd+cDKmInoNqtu5zwnIqFzRUKj2LKimP2Hy0gnNxA/oopNKnnVlqUBlm92e4Z+FgIz52ecV7U0pKJXC9TbqN653W5wN8czzUA+XeapMiJRv1/KakSP/fiSjbElWdZIk+18mGF13m3x16XSOz2DAt8dmwYkrzsK6vFKGOn75noTYAhNzb9gZ7h0gpzRWuHmFiMa/SSumycNUus4TIaM51T5UFuT72uvBp7jksMwgkNFlJeUWx7Ism8PBLhyT+EaV47mnH/5Ja+Ls+cKTyFIli/py6HxdBPA4qlxR8ixp1+Fx0qDFBMkaA7vovO9DmN/ijLF6xfSdgldggqJNEBJxQQ+ccWBlAvy/cXuzKHKMe+/Z1QWN9Botk6k4R/dHy6wAm0w0NFWn9UjechqRhmlVTFn2jOP1lMHkPK0H0JiO1i6HjCCBMA2AWAVqJTu0QjnNgwwHOGxNm6jSZIpwBtwZwFkc= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 3e42ddb0-7725-4bf7-2373-08d3d18e121e X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB2011; 2:TZzQAn7UEGQABLDHXlYAc4vkcAQlDN+rriRq/s9kZKVfxouPdR35sLQJwlp+qhR4eRNu3oHQFKl4OvQUUBa8LfsvOCSsecw0YUQ1apQa2r7PCxJ3ajO+ObM/j3urVnYLfJwoprYNnUJbt6SsNofPjBCX3TuT4FYmBfX/xs4/71Sbpzj3ksvF5yBK1Wz7C/RY; 3:QKA20O1qJ3/q2VOd1zUqQhltar4kXNoccxhOQIUw6ET/yGFpgFUaYXDYPpjWKCungxO8s9Nm68FoDcl3NvyB5siWbiznU/Elck5pvxBu/jg4VBjrF2+N7jOfnT49iCpqja5xTaSvQUl92LWlnD+QiEgbNHqySui9cjdEVVWpbbxBkzCgnup70XmM5FGZrIYPcEB06woav+sYt6v+sndGBu7fzp3Sf1uWeML2T8Nxtrc=; 25:H4H/asCheopyelOOqN2QsCINGlXPVOqICGxB+cnIGGyT0/lnIkKvoFrlV/G6Z9SuCqguUj2xtquozp5yGQv8tQP++1rkJgB+m9iCEpbZVz2AV1WmOFzHickfKoozE7hsY/4LIdLyblk2lSgAjwlKlMkRUhyxJeNX3NLXRMqWc83a7hPqnp+34eoF5eHMywzPF6Tuyp2czHZ3a1YZqu/WDJdGSNuWnsyQ7LyOQurPxaaIsBuHzCg+zDitJ8mlz3tUIUt+xBHgeYPmE+ZAgoo67AzVPHkVBC4dp2zDgO6GKKLwqk5WwkGwtZ3a6UNxOBjlWQicZyKSGZY+vh9IjmdcuzrXduh+kaqhuXBwGiC6XdQ8EQUDmTP+FwLjXQ9pbbt6mhffhkbS52DnjEz+KmX4QZhy8O9wCUnMEDVa4ZFLso8= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB2011; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB2011; 31:sifWYZgnrgJcgPmrULO1QuXy9eD7V5OSNGZsa5gFHxOwXnzJiIa6CkhgSigCauUQHlNh2C97wsm/AQtxIPMJFNr3I6a66Mf70b2UflI4ksIEUdSZyE3k50ZIeWZQ7FERu7xMrCRmCWRedFfOr6pGKLGBtG1+ucenOsj+eAklmrcPUd1FnvGUy4dJaWEhLEMmgxm290dvyDgSCQzqC6k9WQMvnPfzLxeB1F7qjljDpgg=; 4:r3gMWwt77L0B8RvAnUISF+MwzjiK90pWwGIKzA0k8TK26MKvxhC4vZcWW2/6fKl6xrNOM6PHtRbaHU59fxagbgHSJj4mCvs5otjWcs/w2m/rAF53HDYQs4NvIB2O2oAq1XI1L6ljFXv7RObsi1fpYOKsVkO67wM6Qud8DRrrqxpXXPnlTwxWmFmykjNS+LJTFEQtBsEgmjIPq69Oxfgq+EQWujuQ+OWqg3j/AlLLMXZuUK/fwf+qBBOnSC2+54KLkJao7WqZ8HSnk7P1016goYw1DuecB23y8gkH6aso3MZXJCb6lreOKuA5cvBpAhfUh/yud2jXVBpwYsjHai+o/6cZYoQrwB4TqJMGDZtMm4BQmo/j1tIgMxISsS7y7dm00f+zy0csSkJNvbKInt0H66bn20H2SqCl/EAgu2bOyzlq0++VZlLxt+FjmLrw5VpXgWIqrkQWSTdkYh33/4Lbl3z57hI9J5yLTMms7udH4wl9k8lU7/U0GzPqZj/IAgVo X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13015025)(13023025)(13018025)(13024025)(13017025)(8121501046)(5005006)(3002001)(10201501046)(6055026); SRVR:CY1PR0301MB2011; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB2011; X-Forefront-PRVS: 00514A2FE6 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB2011; 23:drBprqozPPTPOxCXa1IjVlQFu47o1CWPFBWVeFu?= =?us-ascii?Q?CICfab95pfc3yJIBr0RGzj7nj0hwVVD4jkYt4HNZpGUp2hWtJ7NHFQJE0zoU?= =?us-ascii?Q?iMclUf2+jjBNUP8Z//l9TwJZbzht3lLiVZ3/JJEUlE9PC+dNLEtDf83aiDWF?= =?us-ascii?Q?6aZuiEoZn8vWQj2pnOsMdLQ6tGsPuU5uvt35KExMjBmHz7WI6cd1YRa1c54c?= =?us-ascii?Q?Qjanj4ToEBZVkSX6/XtmTkYAflDCCjXbJKQr46cwgDFqcy7eyzJ48Vqx1hR9?= =?us-ascii?Q?pEogV/A2Ia1AKgTuo/XsbqIWjQIRGvymkVkXG1dlhUud6q0ZU2sfP9ZdkEax?= =?us-ascii?Q?Isk+jh8SUKfUZ9Ceu4ljYpxHBzZfLUi8hLgj01wB9w/63Z/UWaNE6AjkdT+R?= =?us-ascii?Q?urur5qFmbDf7Hvlj2QBxCwaUpbQ0ezLrUZvqT/2Lf84z6CVaTXS6QCPAnCkw?= =?us-ascii?Q?9E2VdlYte1T4IZVCKW8rz9oO2DHygsjSkQnHwV9fS494ZxBSb1WkYfm/gsdi?= =?us-ascii?Q?TDHupkP9zAQWUyHSb7cVT6If7ufFqZF1AkE0vjQry2IiKUlTkmswkXZ8IY/J?= =?us-ascii?Q?53OGbawCu4Zu60b24QVTyJDrJHKIGa1yrkd05tSofUPB86Kf7+p75zqlP/UC?= =?us-ascii?Q?R0TrhdCX9fqyBh4HG1IEGwVkbjRnVXm/Thn5FYyQ/FKQkzUW0MsMzYVLyl87?= =?us-ascii?Q?3ugA/k73Kc8cAT+AMAaZA//HAh7i875Fyy20tDKi/Fffh0uSLUIx+Z4uFOOj?= =?us-ascii?Q?It6sXQKlwI35rnZaFX2gQpcciPWXO7mEPKx9uKZruV2afPIEjip8zt7SJ+QK?= =?us-ascii?Q?miQZ53L9ptfsOQ9V0ub57A+cLrW87KFsV076E55v2ISVMp7p84bkq4VHb2hv?= =?us-ascii?Q?U95WQPqadbLNMpeXUF//kOQp8pGb7i9vDFVgCfgGfMJJLaoCQjpOWp+RdwS9?= =?us-ascii?Q?nLN7wL1SfjXaCYXbZHcsS92UnhS9kMKzupe3IcyQqKrWir4TiowiavOJewuy?= =?us-ascii?Q?EWwrum2qciT2H2178Fa9mLFwaaBkaIOuXcMiv3G2B9aWehpHTsLDYB6pJdc+?= =?us-ascii?Q?T9pDQHwVfLxXEv6vbAsBGSPmpIzY8e7OEY65qUfCKKvjaUV5eomL3D4umIm2?= =?us-ascii?Q?f/YDajw7/4avre2CtkWBENmI/zQ7rkYEnPKm5cfwbagfdRIf3CGfYNhNaOvl?= =?us-ascii?Q?U+3pCk/y2drxMCnapHyI84CRzP6R7PPO1ZdJNVTLrUa2YUS8YQ24KbiDY2AC?= =?us-ascii?Q?OovRSvIBddutEaarYMoQ=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB2011; 6:EL3WOI40gsZMzpx2IU/eX0+iQvwfcl0zXpDuIJwpuIWCVOXqjKEIktnO57xnPUfL3so9Oou4hl3W3M+9jsauZh1PqJ7gwaVysQyvWkg3bac/oJzYKDBzAyEwDeh4Uefzy0jFVnjgkrH12UwnnnAjm/0rwDa/qd/dSUW44xMIB1EL/EChfNxdDjWVIgmLotL0nqic0yvT/KMw+nb97YkwL/LS2PlRWWeE4F+GdR4GWDuKcev8QGcq/4GK/vcFsfzg+SAIFupT2Cf2si/UFKWb/akl28qsCsziYqCtzxRqSVk=; 5:wBYaP5iUFTwiEmj/IZNKRIrzGjnVnzt1qX9QxQ/mATVIX7APOBVqzAvBlDKEWEpsrrI7ku0thtEa4mR5hlHroXK/3t1b7I3MfJPYowpPAFnX9f6A5tdWdT4iynsR8d3zWYaMz/fnTH20ePnCHnJtApM2Fd/KKAI5s5/Gh/SFer4=; 24:kuLwvcSh4caa2LCOlhLKG9hHlj08vCve9uLgyF3Kjux/tzlHrOwpYurBnY75Um/7EUCNaySFUWeZUJsGCT0LUsjz+kLSifEL9N5a4dUbS3o=; 7:pkDcjwuR9RK9BbEMMLVEB8TiFyl9EpIS7Da18gMO+FL9C/V38Qdm9XVxch+2qFcX9L1dXrJYEndJG9tgyvdG1OlTOX4LN4GGevxhdkgNod1Y5S/zGGvnnR8hmOk03+T5T7SanZm+QgWcDAAEY0Tgo5iK8Q/IPupkExQ5Pf72CkOzirGgXDxr9SwNzqgIqK3Z1fV9hAOWzr2FKeRWm/gzHkCRBTC0Tfa9SOzYoKI6K/M5LtWf9V/GZM73Q2Au5wLp SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2016 11:00:50.7026 (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: CY1PR0301MB2011 Subject: [dpdk-dev] [PATCH v2 00/14] 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: Wed, 31 Aug 2016 11:00:53 -0000 Introduction: ============= This patch set is direct derivative of Jan's original series [1],[2]. (Confirmed offline with Jan before posting.) - As this deviates substantially from original series, if need be I can post it as a separate patch rather than v2. Please suggest. - Also, there are comments on original v1 ([4]) which are _not_ incorporated in this series as they refer to section no more in new version. - Initial set also contains certain patches to generalize some PCI specific structures and function to common EAL ([6,7,8,9]. Those patches I'll post separately as they are good changes (in my opinion) and not related to SoC framework. It is built over the series [3] which introduces device structures for rte_driver/rte_device for generalizing devices into PCI, VDEV, XXX. For the purpose of this patchset, XXX=>SOC. 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. = 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. Patchset Overview: ================== - Patches 0001~0003 introduce the base infrastructure and test case - Patch 0004 is for command line support for no-soc, on lines of no-pci - Patch 0005 enables EAL to handle SoC type devices - Patch 0006 adds support for scan and probe callbacks and updates the test framework with relevant test case. - Patch 0007~0009 enable device argument, driver specific flags and interrupt handling related basic infra. Subsequent patches build up on them. - Patch 0010~0013 makes changes to PCI as well as ethdev code to remove assumption that eth_driver is a PCI driver. - Patch 0014 adds necessary ethdev probe/remove functions for PMDs to use 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. [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 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 Shreyansh Jain (14): eal/soc: introduce very essential SoC infra definitions eal/soc: add rte_eal_soc_register/unregister logic eal/soc: Implement SoC device list and dump eal: introduce --no-soc option eal/soc: init SoC infra from EAL eal/soc: implement probing of drivers eal/soc: extend and utilize devargs eal/soc: add drv_flags eal/soc: add intr_handle 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: extract function eth_dev_get_driver_name ether: Support rte_soc_driver/device for etherdev app/test/Makefile | 1 + app/test/test_soc.c | 337 ++++++++++++++++++++++++ lib/librte_eal/bsdapp/eal/Makefile | 1 + lib/librte_eal/bsdapp/eal/eal.c | 4 + lib/librte_eal/bsdapp/eal/eal_soc.c | 46 ++++ lib/librte_eal/bsdapp/eal/rte_eal_version.map | 9 + lib/librte_eal/common/Makefile | 2 +- lib/librte_eal/common/eal_common_dev.c | 27 +- lib/librte_eal/common/eal_common_devargs.c | 17 ++ lib/librte_eal/common/eal_common_options.c | 5 + lib/librte_eal/common/eal_common_soc.c | 326 +++++++++++++++++++++++ lib/librte_eal/common/eal_internal_cfg.h | 1 + lib/librte_eal/common/eal_options.h | 2 + lib/librte_eal/common/eal_private.h | 14 + lib/librte_eal/common/include/rte_devargs.h | 8 + lib/librte_eal/common/include/rte_soc.h | 246 +++++++++++++++++ lib/librte_eal/linuxapp/eal/Makefile | 2 + lib/librte_eal/linuxapp/eal/eal.c | 8 + lib/librte_eal/linuxapp/eal/eal_soc.c | 72 +++++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 8 + lib/librte_ether/rte_ethdev.c | 165 +++++++++++- lib/librte_ether/rte_ethdev.h | 33 ++- 22 files changed, 1320 insertions(+), 14 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