get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/20445/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 20445,
    "url": "http://patches.dpdk.org/api/patches/20445/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1487205586-6785-5-git-send-email-hemant.agrawal@nxp.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1487205586-6785-5-git-send-email-hemant.agrawal@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1487205586-6785-5-git-send-email-hemant.agrawal@nxp.com",
    "date": "2017-02-16T00:39:03",
    "name": "[dpdk-dev,PATCHv7,04/47] bus/fslmc: introducing fsl-mc bus driver",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "80f42ee7f5b8413ab4fcd9ca844a95f1c75e6939",
    "submitter": {
        "id": 477,
        "url": "http://patches.dpdk.org/api/people/477/?format=api",
        "name": "Hemant Agrawal",
        "email": "hemant.agrawal@nxp.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1487205586-6785-5-git-send-email-hemant.agrawal@nxp.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/20445/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/20445/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 282F2D4A4;\n\tWed, 15 Feb 2017 20:06:34 +0100 (CET)",
            "from NAM01-SN1-obe.outbound.protection.outlook.com\n\t(mail-sn1nam01on0088.outbound.protection.outlook.com [104.47.32.88])\n\tby dpdk.org (Postfix) with ESMTP id 9E9C52BA4\n\tfor <dev@dpdk.org>; Wed, 15 Feb 2017 20:06:01 +0100 (CET)",
            "from BN6PR03CA0065.namprd03.prod.outlook.com (10.173.137.27) by\n\tBN1PR0301MB0721.namprd03.prod.outlook.com (10.160.78.140) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id\n\t15.1.888.16; Wed, 15 Feb 2017 19:05:59 +0000",
            "from BY2FFO11FD006.protection.gbl (2a01:111:f400:7c0c::195) by\n\tBN6PR03CA0065.outlook.office365.com (2603:10b6:404:4c::27) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16 via\n\tFrontend Transport; Wed, 15 Feb 2017 19:05:58 +0000",
            "from tx30smr01.am.freescale.net (192.88.168.50) by\n\tBY2FFO11FD006.mail.protection.outlook.com (10.1.14.127) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.904.16\n\tvia Frontend Transport; Wed, 15 Feb 2017 19:05:58 +0000",
            "from bf-netperf1.idc ([10.232.134.28])\n\tby tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tv1FJ5fLY020023; Wed, 15 Feb 2017 12:05:55 -0700"
        ],
        "Authentication-Results": "spf=fail (sender IP is 192.88.168.50)\n\tsmtp.mailfrom=nxp.com; caviumnetworks.com;\n\tdkim=none (message not signed)\n\theader.d=none;caviumnetworks.com; dmarc=fail action=none\n\theader.from=nxp.com; caviumnetworks.com;\n\tdkim=none (message not signed) header.d=none;",
        "Received-SPF": "Fail (protection.outlook.com: domain of nxp.com does not\n\tdesignate 192.88.168.50 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.168.50; helo=tx30smr01.am.freescale.net;",
        "From": "Hemant Agrawal <hemant.agrawal@nxp.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<thomas.monjalon@6wind.com>, <bruce.richardson@intel.com>,\n\t<shreyansh.jain@nxp.com>, <john.mcnamara@intel.com>,\n\t<ferruh.yigit@intel.com>, <jerin.jacob@caviumnetworks.com>",
        "Date": "Thu, 16 Feb 2017 06:09:03 +0530",
        "Message-ID": "<1487205586-6785-5-git-send-email-hemant.agrawal@nxp.com>",
        "X-Mailer": "git-send-email 1.9.1",
        "In-Reply-To": "<1487205586-6785-1-git-send-email-hemant.agrawal@nxp.com>",
        "References": "<1485172803-17288-1-git-send-email-hemant.agrawal@nxp.com>\n\t<1487205586-6785-1-git-send-email-hemant.agrawal@nxp.com>",
        "X-EOPAttributedMessage": "0",
        "X-Matching-Connectors": "131316591583794254;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()",
        "X-Forefront-Antispam-Report": "CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(7916002)(336005)(39840400002)(39410400002)(39380400002)(39860400002)(39400400002)(39850400002)(39450400003)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(68736007)(54906002)(189998001)(33646002)(4326007)(8656002)(48376002)(575784001)(77096006)(356003)(47776003)(106466001)(2351001)(86362001)(8676002)(305945005)(50466002)(5660300001)(38730400002)(105606002)(53936002)(110136004)(5003940100001)(50226002)(36756003)(92566002)(8936002)(104016004)(6916009)(81166006)(626004)(6666003)(50986999)(2950100002)(97736004)(389900002)(76176999)(85426001)(2906002)(81156014);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BN1PR0301MB0721;\n\tH:tx30smr01.am.freescale.net; \n\tFPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BY2FFO11FD006;\n\t1:+vP9T3UT8nz5MsB7Qr6T//CjBEuilWgjie6mwMWxUI+FFfhLYoltCQe7u9Y1LNJQhrqtM9pcrPX5C7fJzEHXcObDyb2WaAz9vZd1ESTp3sDw7wG1in7j6rPsssbzs1yWFcuEl1SPAVOYS75Ey7KvaYsmleoPN6HN3hYLly2Dc4MUG+mqqBNhb7P4aanIhS9SmRRWsA97jpqhojWixWO7R7YjoVrEidbDXLuxTugZwgsSyC/vHm3Km6x007ToWGEQOlHhDcGxeWItHDu5/Z/ckKqa7Rco3JcRZxHFf+rfatoj42Ozt+pfqGUioVZzFHg0wql3YRNkbPsRYOP9OzesMwtD02FniT3R6X4ZaPOGxDBxyG56DJcvvwOmwGqUd82230rnCnfGbIVyt5W4/b5nB+XsaJ4hkYaXduUk3OEHFYuaRakg3hd4ROOTt8FYIfEabvK1VEacNQ5xgOOJeJo1OxCgplleotJ/0e8Kd9TKC53CZpO6vtmdKI2YiE785y5NXSMgZWY50ZwN9VywmHPCXq4jYxwGLM8RXfkjv0pwo3Lc+OoZgJAAqGnLMxqd2wzOjwUcqaeTwz57TmBkCVVos4askD9j3fpJIksbn8/1n6lwEa1Yq0EorCfHvOwn9Iwm0sdHAaCqAFUG8EQNBiiF4A==",
            "1; BN1PR0301MB0721;\n\t3:RgVzGFjNVrKITl7C8woUr0I2NyBkn8iXaAkkOYxINlnn6t3sDjMao/myO6YFUlADC6+wFLMLrziZMGC/ojppCYaybjUd2j6k9YGbPeD0GRPruPm5GugMCnWerZnQW4vM3UT2ZtOResbdy+yJaaTfj53XxsxoWtmHTWwulgSWb2D1BJ6U8AhEfXAus3V/j4BlMijN6ByVuO/zNGrdlIIwxWIohkft0DSBcRh+KDfIzbp0kxCC/NZmeMvRKzTl1wH3InNiDfqOby6ijhlELTt3+x94Wg4qFvNboiLclzLTKzqMIB+QIFIiif0xigCnCTEoPwvATJxXZVBL08AAW9UjA24oLjHQ++J+RNlNUwNRKJ/L9j15Y1/kWm1/mliSHVs/;\n\t25:D3z+CPlj0pVy5ZyRmh+WSfMK9l2ZSe9yxhSMebZn8/eUmmebGMJM1J6zsXfNPtxgiX0AuL/vxhv/Gh+aFYFrzJYriqVMk7zHdaiQdoD73lfCo61v942nlks5gvrVG/tUKm5MTrYxDg77v473UH0Zq3sdEbRgWNdSi+6uxNzsm04xhLKOdZGL2aNQy2b115UF6OZShW6XMTAm6lHoDEQxXjvvY+CZzM+rgROLjI23EFX2OOobDKrBGSYNLEF9n73Ct92jk9CKMf27BcVnSUEpfHhvB9vBqgSZpSMmvmXzfPPmyCdhPTK3jEE9Kqp/hCPd0qB+afIVeXwYx4z+gKtT9HphkmvM0RT9zVwMVTh953DID4DZZFdcp4jZmKGpy0sVZeqPwhRc5sVQdUoeIBPaVfO9u67renwV6EngJAv827x6rucAoingiuQZ16UIBDJ1eUHCT03mNcgPHZLrH4Qisw==",
            "1; BN1PR0301MB0721;\n\t31:KtLpiL5/Bsq2FHfaNYoLc33p1SUHS4+STk2uhuenW3ct3U/jgc4Xpr/dUIMKz3gpGwHaijS7XwaPkXTpNkbegJYRuNx6W2H7qISXjj14wWk6mzyRXRzzTfHrcYmGpjWAQWljCc4ItyJFO0HRTkY0mrAP6wYwmr0xJjotd9xj2BtNRBpu8H3VEZ7Ah6XQXbKGMetEz9gqoAnMIAwU8ZblhR7CyOlnU55kvVh0Hx8JPLKozc6GGIyo/zxCZLH8AbN2rGjyxp+IStWdDkCGSAImfQ==",
            "1; BN1PR0301MB0721;\n\t4:8/ZLboriXmVg7qC1O+qFpE3LnknxJ3YUBnRiuflBCBxeJodcpaE3um3RbLwqBi6ujQclI1+nfblDrngAelVxfHHuiAXeONdRnzOIBRsuRRbqZwsVCA2evffQ6ycXWThlfqYY9/sWrUF0IZaf4Be04GF4MNFGuF/XxquZFufRpMAVsweDL0jNIxVeFHCHXP8uNLc2Ps27x+INDCNNKXiUj1ZLT3X7oygORCRumL05fO7fa4Vs3BiH1NeE7gtibxzLgckKbqB/M4+C9NkXTQc0H9elER2wIy/PyamWBt6BJwqzilCv9al9dgALIX94LwpMVZTiXCZiKVsVAZZEa8iJQFc9TLHlA4QSQmB8yHItVbna15z6kFPbTTFWaU6XvboQxTgf8WECvDEcmr/Nr7moTBqv2gbs2xTnwENGWOHkTEBR8TiSV9WW5IYzErNQDPhoCAC2gk3VqyHyMcjxpodIrPA3MDZ1jFLLl5cGXDxjD/UErb2aPjEbhOVuved/pv5gqkC2zV19DbdbztYDNR+m64WtwefS+NfTczpBHhc38hbKmHzHvLFob2nvvmhBpDlPFHsj8CsAR/XO5CyQVExMrJHy/tqvSOpsfDoELrZ5QK0wvnyMOQSguM5MIgP9k2fRBC9gSEs+jk85GWEzFh5A+qSnF9q9/E2mSCK1kj6uHb7JIYAH+UScxyH/297niugMr0S2IlAEJUHVVIaPeG8gBN5qGAhAH4rnDs1XzXkhGIqb66/Iyuigd0gktVePasMj",
            "=?us-ascii?Q?1; BN1PR0301MB0721;\n\t23:KueSwlSJ116XikWhGuaPQX+SpX9s984ize8VB1A?=\n\ta9f1qZjY/t4qyEoE9rg02zC27AEbusTvBT3w0tKl/Uctm1KFVwtz/vEaVRGFRVP2CUdQG7tSirMBwlcSGQFVdIoWPIRYge32qsUieI+n+CMhb2A05JqArZT/HFSvGIyvnZ3loGrgmw83aFVBHJj7hQx5b8v+4cGWUGngKSiDzK3kUeYRCNmbf0oycT1xMLtFUwRZHvxkghAhwCN7XRg1OBMeFQD2DMowisGLh2FugfDV24YJkHnQxasbF1Io2PjYYz4xTPcY4FB/Wy0ppTnpZ6ZvgTHlWQeRmM5xHAHkayLZl29x0Pxhjx3bOlnNpYel8q9WjzN1rk7NFFoY4lSkT76CDIHkKgD66y//w4q4/uS/m/ygrsV8JnG64oWiM1PHuIz25ZLYZjC4nEe5prW9T91nIcL2/OGKDuKB2F9M2a5KhB5S5sixIaOWjimqM13bbb0FahMsCeR1dlL4rHPoMPU3xr1y9v5jZkf1y4jPZalFEn457YZJ4am+IHqXyEJJgniL5CpVMgWc5KywgzUhpIMjG1t93PR4blFXLwsW6ve4oGQOMjRKVs0iBKjTliN0SerP+3adi59Ig6zKZ3Tne0FG0m3pgtIJfTbE9UZvrH8jXwzfjtcq19vqSi2pXucuuDgqclQBzCWbIBx4DoeEoTiZcUtfSONrfBgcDwzdxrRvvaYrQ3a8wTHSF/sHGyZ9C6SZIBR39o7HW89NR+v0gAurpN3PKW17zzWmcooATY1+Pab6brMHzgRgYR1v9ewcrASw+gRuMY1kYrYj/2rLor7JnylkHg7Gr1Ig3RSHwR+37cnInYFN0nBPuw2r9QitY/b5kTlpOF2Qy5HhEKDowoVGvRfoPVnvytrZmjahB9qeTafpny2/ML+uu3VPXJRjj5UYd7wSw0hDoq7necjhD9pAN2HJv6/Q/3r3HRSUyd4R11q6CNXulpDy+s0ezjCRIhnXRj2RJbnFfW26GnFS0qf/aQeilGvpfFon7xHByIcJWwg0UgvtCFUl5DR3QVvrX2AFOIae6XfLlcX91CaZrRUtZsXSxabo5y2Sn6n9W6CGLzuiUWDqTd/qf8NNoyuEdZiEbQY3zMn+3jP7ZwL8/Qv9rJHE+CyN1EP9Wd71/dBg/wGBVJzpi+fhyDfQQxlRm3R3qlyRtSLPtNykEMN9yrLEiK3fGXssKZc6kOWLxwMIVLj4jzu4m8r4HsebXW4fTpWTrxM7VzO0yiUnhRYhnYaPitf7CC/pF9FbE+GdA58qMK7o9JciwCQG1Q20IKHULl3d+93NsFa+Q25nIf+jeydXr8DclF7n7tA23FnBL36h+DA==",
            "1; BN1PR0301MB0721;\n\t6:CBKA617fUo41X5tOjlUnvzN+mmoy29Pll6+K/LmQF3YCF0SpViXIc1dUTVnijA7y4rP4gWp/0WlHqTAyDDZe/Twq9ryHEYdnwwScJX0bg8Nb74ReVZcePV8/Gqigl0otitbIWanTTZIBJqSK3CaykgHl1IR3dHGpnL+qr0cxcT8sqjLRTgYlTYFSd3BLrJKIm3Wgrgm/VqcHP9wF2xIukoz9yjNdAvv2DmBXN7xk1TI2vtF4y3hidU3EPyeLVLVb99qo1SgRWbDnUbc/NtcoZpsAjgwA8y8Ia6Uaco6piB6jBla9RrVLSwQufh9tOmORojsqecHKEKXPpTgWAFr8X1poFIwUyGHBguiyHz/zUGqdWGR65aHbzqJgDuxIYIBKQiQZSxOfioGb14aM78sS4IWfKY0kbr+yFFI8a5Mpid0=;\n\t5:r5EOyQez1oZqYL5tXs/Cehsfc0Lb3+IEkI1LHcUkTNFwzOf5DNhEGfxNrX7TJnQFEMXVM1dI6rZDMF2CYh7IYE/cn8vz6FSdaNIyKjsksWdqExvU5GHsA//ttXdVfbwJpCfYHfLsnbAsGXbxkC5sVchScf4azdDy1PAgUJ01Vdu5QaJgJ9zYZtwvB7e/RzWD;\n\t24:5dKz/zb6H+agK4Nqj0DhT8iotFmbKW+ebtnbKdbfxjwIfwRWFjh9w0B8MeQPIUkVrX9BJzkFAMKUUIuuLw1TxmXtAkDeF72sXct3+JnTkMU=",
            "1; BN1PR0301MB0721;\n\t7:ZOV7dM3qV4CtkL+42Tvwvpi4WPbpL8w7BXAcTnM2PlcjelS6OA+OT3fLGEVVoP9nlcr+pXVCJLp4czgwkOjb0STvZfOBQT67DT5Led5LxOQ7/1X8Jl+1dfjLT0Fqso4x3kzR+ucOZ9bjQ0gZvoZqI5XuWjZ7HbGcdqcOZqBvkW+kvhGpKUoqUxa0A6CItj5lccva9W7mWLZzOEv2tBoG5OXA6MQh5EHS8FL4dXN+dw3BEtaynpFfx+B7mhgkyWLcPzlJ7gnyUlqJe2Z13sHv8OOxDrrh8Brr/NXxn5pcnpiScTfZeOkBhU6ooEbC745+COXkfPp71ZLImf2AICvfBg=="
        ],
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-MS-Office365-Filtering-Correlation-Id": "42cd18d7-0d95-41b8-944e-08d455d5acee",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0; RULEID:(22001);\n\tSRVR:BN1PR0301MB0721; ",
        "X-Microsoft-Antispam-PRVS": "<BN1PR0301MB0721DE5539DF53877D14A87B895B0@BN1PR0301MB0721.namprd03.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(185117386973197);",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6095060)(601004)(2401047)(13017025)(13018025)(13023025)(13015025)(13024025)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6096035)(20161123565025)(20161123556025)(20161123561025)(20161123559025)(20161123563025);\n\tSRVR:BN1PR0301MB0721; BCL:0; PCL:0; RULEID:(400006);\n\tSRVR:BN1PR0301MB0721; ",
        "X-Forefront-PRVS": "021975AE46",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "15 Feb 2017 19:05:58.1922\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Id": "5afe0b00-7697-4969-b663-5eab37d5f47e",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;\n\tIp=[192.88.168.50]; \n\tHelo=[tx30smr01.am.freescale.net]",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BN1PR0301MB0721",
        "Subject": "[dpdk-dev] [PATCHv7 04/47] bus/fslmc: introducing fsl-mc bus driver",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "The fslmc bus driver is a rte_bus driver which scans the fsl-mc bus\nfor NXP DPAA2 SoCs.\n\nSigned-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>\n---\n MAINTAINERS                                 |   1 +\n config/common_base                          |   5 +\n config/defconfig_arm64-dpaa2-linuxapp-gcc   |   8 +-\n drivers/Makefile                            |   1 +\n drivers/bus/Makefile                        |  36 +++++++\n drivers/bus/fslmc/Makefile                  |  52 ++++++++++\n drivers/bus/fslmc/fslmc_bus.c               | 125 +++++++++++++++++++++++\n drivers/bus/fslmc/rte_bus_fslmc_version.map |   7 ++\n drivers/bus/fslmc/rte_fslmc.h               | 148 ++++++++++++++++++++++++++++\n drivers/common/Makefile                     |   4 +\n drivers/common/dpaa2/Makefile               |   4 +\n drivers/common/dpaa2/qbman/Makefile         |   4 +\n 12 files changed, 394 insertions(+), 1 deletion(-)\n create mode 100644 drivers/bus/Makefile\n create mode 100644 drivers/bus/fslmc/Makefile\n create mode 100644 drivers/bus/fslmc/fslmc_bus.c\n create mode 100644 drivers/bus/fslmc/rte_bus_fslmc_version.map\n create mode 100644 drivers/bus/fslmc/rte_fslmc.h",
    "diff": "diff --git a/MAINTAINERS b/MAINTAINERS\nindex 7ec5683..c151546 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -358,6 +358,7 @@ F: doc/guides/nics/nfp.rst\n \n NXP dpaa2\n M: Hemant Agrawal <hemant.agrawal@nxp.com>\n+F: drivers/bus/fslmc/\n F: drivers/common/dpaa2/\n \n QLogic bnx2x\ndiff --git a/config/common_base b/config/common_base\nindex 71a4fcb..d162228 100644\n--- a/config/common_base\n+++ b/config/common_base\n@@ -287,6 +287,11 @@ CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_DRIVER=n\n CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_MBOX=n\n \n #\n+# Compile NXP DPAA2 FSL-MC Bus\n+#\n+CONFIG_RTE_LIBRTE_FSLMC_BUS=n\n+\n+#\n # Compile burst-oriented VIRTIO PMD driver\n #\n CONFIG_RTE_LIBRTE_VIRTIO_PMD=y\ndiff --git a/config/defconfig_arm64-dpaa2-linuxapp-gcc b/config/defconfig_arm64-dpaa2-linuxapp-gcc\nindex 66df54c..365ae5a 100644\n--- a/config/defconfig_arm64-dpaa2-linuxapp-gcc\n+++ b/config/defconfig_arm64-dpaa2-linuxapp-gcc\n@@ -1,6 +1,7 @@\n #   BSD LICENSE\n #\n-#   Copyright(c) 2016 Freescale Semiconductor, Inc. All rights reserved.\n+#   Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved.\n+#   Copyright (c) 2016 NXP. All rights reserved.\n #\n #   Redistribution and use in source and binary forms, with or without\n #   modification, are permitted provided that the following conditions\n@@ -40,3 +41,8 @@ CONFIG_RTE_ARCH_ARM_TUNE=\"cortex-a57+fp+simd\"\n #\n CONFIG_RTE_MAX_LCORE=8\n CONFIG_RTE_MAX_NUMA_NODES=1\n+\n+#\n+# Compile NXP DPAA2 FSL-MC Bus\n+#\n+CONFIG_RTE_LIBRTE_FSLMC_BUS=y\ndiff --git a/drivers/Makefile b/drivers/Makefile\nindex d5580f6..bdae63b 100644\n--- a/drivers/Makefile\n+++ b/drivers/Makefile\n@@ -32,6 +32,7 @@\n include $(RTE_SDK)/mk/rte.vars.mk\n \n DIRS-y += common\n+DIRS-y += bus\n DIRS-y += net\n DIRS-$(CONFIG_RTE_LIBRTE_CRYPTODEV) += crypto\n \ndiff --git a/drivers/bus/Makefile b/drivers/bus/Makefile\nnew file mode 100644\nindex 0000000..60e9764\n--- /dev/null\n+++ b/drivers/bus/Makefile\n@@ -0,0 +1,36 @@\n+#   BSD LICENSE\n+#\n+#   Copyright(c) 2016 NXP. All rights reserved.\n+#   All rights reserved.\n+#\n+#   Redistribution and use in source and binary forms, with or without\n+#   modification, are permitted provided that the following conditions\n+#   are met:\n+#\n+#     * Redistributions of source code must retain the above copyright\n+#       notice, this list of conditions and the following disclaimer.\n+#     * Redistributions in binary form must reproduce the above copyright\n+#       notice, this list of conditions and the following disclaimer in\n+#       the documentation and/or other materials provided with the\n+#       distribution.\n+#     * Neither the name of NXP nor the names of its\n+#       contributors may be used to endorse or promote products derived\n+#       from this software without specific prior written permission.\n+#\n+#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+#   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+#   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+\n+include $(RTE_SDK)/mk/rte.vars.mk\n+\n+DIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc\n+\n+include $(RTE_SDK)/mk/rte.subdir.mk\ndiff --git a/drivers/bus/fslmc/Makefile b/drivers/bus/fslmc/Makefile\nnew file mode 100644\nindex 0000000..5a0fd61\n--- /dev/null\n+++ b/drivers/bus/fslmc/Makefile\n@@ -0,0 +1,52 @@\n+#   BSD LICENSE\n+#\n+#   Copyright (c) 2016 NXP. All rights reserved.\n+#\n+#   Redistribution and use in source and binary forms, with or without\n+#   modification, are permitted provided that the following conditions\n+#   are met:\n+#\n+#     * Redistributions of source code must retain the above copyright\n+#       notice, this list of conditions and the following disclaimer.\n+#     * Redistributions in binary form must reproduce the above copyright\n+#       notice, this list of conditions and the following disclaimer in\n+#       the documentation and/or other materials provided with the\n+#       distribution.\n+#     * Neither the name of NXP nor the names of its\n+#       contributors may be used to endorse or promote products derived\n+#       from this software without specific prior written permission.\n+#\n+#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+#   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+#   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+\n+include $(RTE_SDK)/mk/rte.vars.mk\n+\n+#\n+# library name\n+#\n+LIB = librte_bus_fslmc.a\n+\n+CFLAGS += -O3\n+CFLAGS += $(WERROR_FLAGS)\n+\n+# versioning export map\n+EXPORT_MAP := rte_bus_fslmc_version.map\n+\n+# library version\n+LIBABIVER := 1\n+\n+SRCS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc_bus.c\n+\n+# library dependencies\n+DEPDIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += lib/librte_eal\n+\n+include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c\nnew file mode 100644\nindex 0000000..8a4f519\n--- /dev/null\n+++ b/drivers/bus/fslmc/fslmc_bus.c\n@@ -0,0 +1,125 @@\n+/*-\n+ *   BSD LICENSE\n+ *\n+ *   Copyright (c) 2016 NXP. All rights reserved.\n+ *\n+ *   Redistribution and use in source and binary forms, with or without\n+ *   modification, are permitted provided that the following conditions\n+ *   are met:\n+ *\n+ *     * Redistributions of source code must retain the above copyright\n+ *       notice, this list of conditions and the following disclaimer.\n+ *     * Redistributions in binary form must reproduce the above copyright\n+ *       notice, this list of conditions and the following disclaimer in\n+ *       the documentation and/or other materials provided with the\n+ *       distribution.\n+ *     * Neither the name of NXP nor the names of its\n+ *       contributors may be used to endorse or promote products derived\n+ *       from this software without specific prior written permission.\n+ *\n+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+ *   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+ */\n+\n+#include <string.h>\n+#include <dirent.h>\n+\n+#include <rte_log.h>\n+#include <rte_bus.h>\n+#include <rte_eal_memconfig.h>\n+#include <rte_malloc.h>\n+#include <rte_devargs.h>\n+#include <rte_memcpy.h>\n+#include <rte_ethdev.h>\n+\n+#include \"rte_fslmc.h\"\n+\n+#define FSLMC_BUS_LOG(level, fmt, args...) \\\n+\tRTE_LOG(level, EAL, \"%s(): \" fmt \"\\n\", __func__, ##args)\n+\n+struct rte_fslmc_bus rte_fslmc_bus;\n+\n+static int\n+rte_fslmc_scan(void)\n+{\n+\treturn 0;\n+}\n+\n+static int\n+rte_fslmc_match(struct rte_dpaa2_driver *dpaa2_drv,\n+\t\tstruct rte_dpaa2_device *dpaa2_dev)\n+{\n+\tif (dpaa2_drv->drv_type == dpaa2_dev->dev_type)\n+\t\treturn 0;\n+\n+\treturn 1;\n+}\n+\n+static int\n+rte_fslmc_probe(void)\n+{\n+\tint ret = -1;\n+\tstruct rte_dpaa2_device *dev;\n+\tstruct rte_dpaa2_driver *drv;\n+\n+\tTAILQ_FOREACH(dev, &rte_fslmc_bus.device_list, next) {\n+\t\tTAILQ_FOREACH(drv, &rte_fslmc_bus.driver_list, next) {\n+\t\t\tret = rte_fslmc_match(drv, dev);\n+\t\t\tif (ret)\n+\t\t\t\tcontinue;\n+\n+\t\t\tif (!drv->probe)\n+\t\t\t\tcontinue;\n+\n+\t\t\tret = drv->probe(drv, dev);\n+\t\t\tif (ret)\n+\t\t\t\tFSLMC_BUS_LOG(ERR, \"Unable to probe.\\n\");\n+\t\t\tbreak;\n+\t\t}\n+\t}\n+\treturn ret;\n+}\n+\n+/*register a fslmc bus based dpaa2 driver */\n+void\n+rte_fslmc_driver_register(struct rte_dpaa2_driver *driver)\n+{\n+\tRTE_VERIFY(driver);\n+\n+\tTAILQ_INSERT_TAIL(&rte_fslmc_bus.driver_list, driver, next);\n+\t/* Update Bus references */\n+\tdriver->fslmc_bus = &rte_fslmc_bus;\n+}\n+\n+/*un-register a fslmc bus based dpaa2 driver */\n+void\n+rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver)\n+{\n+\tstruct rte_fslmc_bus *fslmc_bus;\n+\n+\tfslmc_bus = driver->fslmc_bus;\n+\n+\tTAILQ_REMOVE(&fslmc_bus->driver_list, driver, next);\n+\t/* Update Bus references */\n+\tdriver->fslmc_bus = NULL;\n+}\n+\n+struct rte_fslmc_bus rte_fslmc_bus = {\n+\t.bus = {\n+\t\t.scan = rte_fslmc_scan,\n+\t\t.probe = rte_fslmc_probe,\n+\t},\n+\t.device_list = TAILQ_HEAD_INITIALIZER(rte_fslmc_bus.device_list),\n+\t.driver_list = TAILQ_HEAD_INITIALIZER(rte_fslmc_bus.driver_list),\n+};\n+\n+RTE_REGISTER_BUS(FSLMC_BUS_NAME, rte_fslmc_bus.bus);\ndiff --git a/drivers/bus/fslmc/rte_bus_fslmc_version.map b/drivers/bus/fslmc/rte_bus_fslmc_version.map\nnew file mode 100644\nindex 0000000..4d525ba\n--- /dev/null\n+++ b/drivers/bus/fslmc/rte_bus_fslmc_version.map\n@@ -0,0 +1,7 @@\n+DPDK_17.02 {\n+\tglobal:\n+        rte_fslmc_driver_register;\n+        rte_fslmc_driver_unregister;\n+\n+\tlocal: *;\n+};\ndiff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h\nnew file mode 100644\nindex 0000000..040ab95\n--- /dev/null\n+++ b/drivers/bus/fslmc/rte_fslmc.h\n@@ -0,0 +1,148 @@\n+/*-\n+ *   BSD LICENSE\n+ *\n+ *   Copyright (c) 2016 NXP. All rights reserved.\n+ *\n+ *   Redistribution and use in source and binary forms, with or without\n+ *   modification, are permitted provided that the following conditions\n+ *   are met:\n+ *\n+ *     * Redistributions of source code must retain the above copyright\n+ *       notice, this list of conditions and the following disclaimer.\n+ *     * Redistributions in binary form must reproduce the above copyright\n+ *       notice, this list of conditions and the following disclaimer in\n+ *       the documentation and/or other materials provided with the\n+ *       distribution.\n+ *     * Neither the name of NXP nor the names of its\n+ *       contributors may be used to endorse or promote products derived\n+ *       from this software without specific prior written permission.\n+ *\n+ *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+ *   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+ *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n+ *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n+ *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n+ *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n+ *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n+ *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n+ *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+ *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n+ *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+ */\n+\n+#ifndef _RTE_FSLMC_H_\n+#define _RTE_FSLMC_H_\n+\n+/**\n+ * @file\n+ *\n+ * RTE FSLMC Bus Interface\n+ */\n+\n+#ifdef __cplusplus\n+extern \"C\" {\n+#endif\n+\n+#include <stdio.h>\n+#include <stdlib.h>\n+#include <limits.h>\n+#include <errno.h>\n+#include <sys/queue.h>\n+#include <stdint.h>\n+#include <inttypes.h>\n+\n+#include <rte_debug.h>\n+#include <rte_interrupts.h>\n+#include <rte_dev.h>\n+#include <rte_bus.h>\n+\n+/** Name of FSLMC Bus */\n+#define FSLMC_BUS_NAME \"FSLMC\"\n+\n+struct rte_dpaa2_driver;\n+\n+/* DPAA2 Device and Driver lists for FSLMC bus */\n+TAILQ_HEAD(rte_fslmc_device_list, rte_dpaa2_device);\n+TAILQ_HEAD(rte_fslmc_driver_list, rte_dpaa2_driver);\n+\n+extern struct rte_fslmc_bus rte_fslmc_bus;\n+\n+/**\n+ * A structure describing a DPAA2 device.\n+ */\n+struct rte_dpaa2_device {\n+\tTAILQ_ENTRY(rte_dpaa2_device) next; /**< Next probed DPAA2 device. */\n+\tstruct rte_device device;           /**< Inherit core device */\n+\tunion {\n+\t\tstruct rte_eth_dev *eth_dev;        /**< ethernet device */\n+\t\tstruct rte_cryptodev *cryptodev;    /**< Crypto Device */\n+\t};\n+\tuint16_t dev_type;                  /**< Device Type */\n+\tuint16_t object_id;             /**< DPAA2 Object ID */\n+\tstruct rte_intr_handle intr_handle; /**< Interrupt handle */\n+\tstruct rte_dpaa2_driver *driver;    /**< Associated driver */\n+};\n+\n+typedef int (*rte_dpaa2_probe_t)(struct rte_dpaa2_driver *dpaa2_drv,\n+\t\t\t\t struct rte_dpaa2_device *dpaa2_dev);\n+typedef int (*rte_dpaa2_remove_t)(struct rte_dpaa2_device *dpaa2_dev);\n+\n+/**\n+ * A structure describing a DPAA2 driver.\n+ */\n+struct rte_dpaa2_driver {\n+\tTAILQ_ENTRY(rte_dpaa2_driver) next; /**< Next in list. */\n+\tstruct rte_driver driver;           /**< Inherit core driver. */\n+\tstruct rte_fslmc_bus *fslmc_bus;    /**< FSLMC bus reference */\n+\tuint32_t drv_flags;                 /**< Flags for controlling device.*/\n+\tuint16_t drv_type;                  /**< Driver Type */\n+\trte_dpaa2_probe_t probe;\n+\trte_dpaa2_remove_t remove;\n+};\n+\n+/*\n+ * FSLMC bus\n+ */\n+struct rte_fslmc_bus {\n+\tstruct rte_bus bus;     /**< Generic Bus object */\n+\tstruct rte_fslmc_device_list device_list;\n+\t\t\t\t/**< FSLMC DPAA2 Device list */\n+\tstruct rte_fslmc_driver_list driver_list;\n+\t\t\t\t/**< FSLMC DPAA2 Driver list */\n+\tint device_count;\n+\t\t\t\t/**< Optional: Count of devices on bus */\n+};\n+\n+/**\n+ * Register a DPAA2 driver.\n+ *\n+ * @param driver\n+ *   A pointer to a rte_dpaa2_driver structure describing the driver\n+ *   to be registered.\n+ */\n+void rte_fslmc_driver_register(struct rte_dpaa2_driver *driver);\n+\n+/**\n+ * Unregister a DPAA2 driver.\n+ *\n+ * @param driver\n+ *   A pointer to a rte_dpaa2_driver structure describing the driver\n+ *   to be unregistered.\n+ */\n+void rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver);\n+\n+/** Helper for DPAA2 device registration from driver (eth, crypto) instance */\n+#define RTE_PMD_REGISTER_DPAA2(nm, dpaa2_drv) \\\n+RTE_INIT(dpaa2initfn_ ##nm); \\\n+static void dpaa2initfn_ ##nm(void) \\\n+{\\\n+\t(dpaa2_drv).driver.name = RTE_STR(nm);\\\n+\trte_fslmc_driver_register(&dpaa2_drv); \\\n+} \\\n+RTE_PMD_EXPORT_NAME(nm, __COUNTER__)\n+\n+#ifdef __cplusplus\n+}\n+#endif\n+\n+#endif /* _RTE_FSLMC_H_ */\ndiff --git a/drivers/common/Makefile b/drivers/common/Makefile\nindex e5bfecb..cba1134 100644\n--- a/drivers/common/Makefile\n+++ b/drivers/common/Makefile\n@@ -31,6 +31,10 @@\n \n include $(RTE_SDK)/mk/rte.vars.mk\n \n+ifeq ($(CONFIG_RTE_LIBRTE_FSLMC_BUS),y)\n+CONFIG_RTE_LIBRTE_DPAA2_COMMON = $(CONFIG_RTE_LIBRTE_FSLMC_BUS)\n+endif\n+\n DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_COMMON) += dpaa2\n \n include $(RTE_SDK)/mk/rte.subdir.mk\ndiff --git a/drivers/common/dpaa2/Makefile b/drivers/common/dpaa2/Makefile\nindex 4960ebe..9681729 100644\n--- a/drivers/common/dpaa2/Makefile\n+++ b/drivers/common/dpaa2/Makefile\n@@ -31,6 +31,10 @@\n \n include $(RTE_SDK)/mk/rte.vars.mk\n \n+ifeq ($(CONFIG_RTE_LIBRTE_FSLMC_BUS),y)\n+CONFIG_RTE_LIBRTE_DPAA2_COMMON = $(CONFIG_RTE_LIBRTE_FSLMC_BUS)\n+endif\n+\n DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_COMMON) += qbman\n \n include $(RTE_SDK)/mk/rte.subdir.mk\ndiff --git a/drivers/common/dpaa2/qbman/Makefile b/drivers/common/dpaa2/qbman/Makefile\nindex 5e64d23..7ac1ba7 100644\n--- a/drivers/common/dpaa2/qbman/Makefile\n+++ b/drivers/common/dpaa2/qbman/Makefile\n@@ -36,6 +36,10 @@ include $(RTE_SDK)/mk/rte.vars.mk\n #\n LIB = librte_common_dpaa2_qbman.a\n \n+ifeq ($(CONFIG_RTE_LIBRTE_FSLMC_BUS),y)\n+CONFIG_RTE_LIBRTE_DPAA2_COMMON = $(CONFIG_RTE_LIBRTE_FSLMC_BUS)\n+endif\n+\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n",
    "prefixes": [
        "dpdk-dev",
        "PATCHv7",
        "04/47"
    ]
}