get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 18165,
    "url": "http://patches.dpdk.org/api/patches/18165/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1482180853-18823-6-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": "<1482180853-18823-6-git-send-email-hemant.agrawal@nxp.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1482180853-18823-6-git-send-email-hemant.agrawal@nxp.com",
    "date": "2016-12-19T20:53:44",
    "name": "[dpdk-dev,PATCHv2,05/34] bus/fslmc: introducing fsl-mc bus driver",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "6212a0caf640d168573dc924aa3742d2823ba102",
    "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/1482180853-18823-6-git-send-email-hemant.agrawal@nxp.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/18165/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/18165/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 AA71CFA40;\n\tMon, 19 Dec 2016 16:21:19 +0100 (CET)",
            "from NAM03-DM3-obe.outbound.protection.outlook.com\n\t(mail-dm3nam03on0060.outbound.protection.outlook.com [104.47.41.60])\n\tby dpdk.org (Postfix) with ESMTP id B9579F96C\n\tfor <dev@dpdk.org>; Mon, 19 Dec 2016 16:20:51 +0100 (CET)",
            "from BN6PR03CA0020.namprd03.prod.outlook.com (10.168.230.158) by\n\tDM2PR0301MB0752.namprd03.prod.outlook.com (10.160.97.148) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id\n\t15.1.771.8; Mon, 19 Dec 2016 15:20:50 +0000",
            "from BL2FFO11FD033.protection.gbl (2a01:111:f400:7c09::187) by\n\tBN6PR03CA0020.outlook.office365.com (2603:10b6:404:23::30) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14 via\n\tFrontend Transport; Mon, 19 Dec 2016 15:20:49 +0000",
            "from az84smr01.freescale.net (192.88.158.2) by\n\tBL2FFO11FD033.mail.protection.outlook.com (10.173.161.129) with\n\tMicrosoft\n\tSMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id\n\t15.1.789.10 via Frontend Transport; Mon, 19 Dec 2016 15:20:49 +0000",
            "from bf-netperf1.idc ([10.232.134.28])\n\tby az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id\n\tuBJFKMhU029110; Mon, 19 Dec 2016 08:20:44 -0700"
        ],
        "Authentication-Results": "spf=fail (sender IP is 192.88.158.2)\n\tsmtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)\n\theader.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com;\n\tnxp.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.158.2 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=192.88.158.2; helo=az84smr01.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>,\n\tHemant Agrawal <hemant.agrawal@nxp.com>",
        "Date": "Tue, 20 Dec 2016 02:23:44 +0530",
        "Message-ID": "<1482180853-18823-6-git-send-email-hemant.agrawal@nxp.com>",
        "X-Mailer": "git-send-email 1.9.1",
        "In-Reply-To": "<1482180853-18823-1-git-send-email-hemant.agrawal@nxp.com>",
        "References": "<1480875447-23680-1-git-send-email-hemant.agrawal@nxp.com>\n\t<1482180853-18823-1-git-send-email-hemant.agrawal@nxp.com>",
        "X-EOPAttributedMessage": "0",
        "X-Matching-Connectors": "131266344495834066;\n\t(91ab9b29-cfa4-454e-5278-08d120cd25b8); ()",
        "X-Forefront-Antispam-Report": "CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(7916002)(336005)(39450400003)(39860400002)(39850400002)(39840400002)(39400400002)(39410400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(50986999)(76176999)(2351001)(68736007)(106466001)(47776003)(36756003)(50466002)(97736004)(2906002)(48376002)(110136003)(189998001)(33646002)(356003)(2950100002)(104016004)(8666005)(5660300001)(6916009)(5003940100001)(85426001)(8936002)(8676002)(50226002)(626004)(81156014)(38730400001)(81166006)(4326007)(92566002)(305945005)(69596002)(77096006)(105606002)(86362001)(7059030);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0301MB0752;\n\tH:az84smr01.freescale.net; \n\tFPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; BL2FFO11FD033;\n\t1:I5xGLVkJgng1PTioBmqJPTuhrLpRUqf3aethPTWmc8oLlcPH8c5vd/rzrk06YjolKmr9vSAmd9/Mi3ZMN6yoacAgwHWKL0VHT6DeJkYsd2eqSN+IKsDkDEQTULw6Yir0aHHxsIA86nPStFC+L6AIUMPXi/xzvLlPDVHOHHk8qdB8Uz7Rw8mdpl0+M4LZe4Rck/lTLvXrdouH/LxXEsHAMmV0+eDpI2+ZEkDP4l/ITNQqvk+CR8eGYVQLwFA6ui4oddxkUAGs4qYAe5Mja3pg3sOeQZv52EfDm7p+Ez7DgenrR/XYnGQxaC1ArjNXUePvVTKqEnR7WCU/ZP8OFBZrPwpzEistuNVHLXoiUIPl7OYlJVjCyqBSOaf4hefbiSprEosHhA9oqhoy4ZIbur2q75FAxiFj1l18/qkPvRM8dNfcSgKuLpBYXBK2dKtxrMholC2w2cQgCFdUjHcddKhfw4siJ76aOPfH3OzN1M37Bb1F428nArhxjt3O83QNl++CwpddQOuw+z8/wMM3TGaXhiB+mznHDzsB6wKp1pOpE8Kwtz8A04f3n8gvas854Pu1FpIr0FeEEVbh/R1p3Fv+nu2frlPMCABWCeN1Auu08zu//BbZgOZnUIhOc2GMLhMuvlABm5sfx6u8CL/q5SHD8dqwbqo56N0tCS2tKxltpyOg8XKmBt640e/n+8YNLYu/z1Aa5mWdqRu2JaTNYcbl/8kCDh3T59uOMdmgXxQkV1st8wBJQAz7NQTdlo8I+tCtsy/Tn0bneEzX9uRbQgtzsQ==",
            "1; DM2PR0301MB0752;\n\t3:O58Cyv2euiViawrZpYTlJhyxUSqvrg3zo74v10eSo6mcZs0BpLqJBz0tzd1YmkV2ZFOh27Xl/vqJua6uKkDEfzEuXl4fq5sno6khGBglZgNATteXI9jt5xqKNRB36eXUwodwFY7hqwfrUTOZ1nCmZ+rBQ68cohBoShdqgXkx+at2cMYWIi4Y5y4S+JNlvGG5sX7ZDyKvrUaWTyaxRFt+sk1h1jzqx3beQkBYoouBupbQc81D28WwkSPNyY594Nen5lReVwFiClLOi3MIYK1rXbLILiG/+UNGFWhESSO7tCDg3YF0QPnBTOPB3Zp++fyYWamgatGQln2UCJvYT3UNeNd8xxwCK0jd4KsmZqxFIIz36MqfXPbZih2HD2k7Dzh1;\n\t25:ImnbhC7ZPCISY+9B0kh0TxsY0Pf/Fr2VFoAAvisDVJTRArzocHmwJhgBqxoxbJsUu01+6F2CtFD8jX1az+Vs/c7XAOXcvHY822BJBiMn1T//PEz7pioWKMX/jp6dTMVhOjZgTjkY9KN8fpPjffON9IO4f27YBHfPJikkXEvWq9ujw2LQ94beJNakhtx65J7eKMGDEuYRuzFzcbdllqvcuqPkbUFTkljIhFESITEKqXpkak5e/8pa7gWT+L1MU0S73Ajw6pwsXDSvS4hrgU97vsO6UY0k2sUjNQ1MTSIpzOxOVCHm5XRxaNm8dY9Wz5y76ZUrJVyx7a6FPq6o9Ay1b7AoUdGSRQdnKrmhJtWtmxB9qnB7H6bNOsnzF2wtudvPWEwD2oB3wShzUQWUlbrPz3bnig0PKcxOVx79Qy3X5HsziijeMWXe/zzcnsZj0xI0HJTnIVbR1u3S9OHH+pvoHw==",
            "1; DM2PR0301MB0752;\n\t31:EejZxcJTdjfEjLU8mw1eOh/PUCJvqWJ083OFYyuLdfUUh2kWuX3quyA5JFkQqvomVNEr+/CbBlzsUeAH2T0J/Ij+1y1MQtze6pHG8gH5Z1aPK761Q4PxlyPvyD+QDD7LpzGTP+1hdTv35FLf5/ziBnIfX7T8ixfAv9mgJsmrh1gwZ7xLtH2OXCFv9fchKpLfcgN1+9vCPq7dZBNqvmLaPiLw8p9U9PaCNIIAILh6yWeGuncIJjy6xjXcYf3Difhx1UHl5XNymwxvxKtJdkIzcw==",
            "1; DM2PR0301MB0752;\n\t4:brEpGGy9PNKeFlMU7daVKdGAYGX2xFZYv7/78pUPZFT1NRZuBOrhEdsf5XK2o8PZI/JO0BzCK47/46E6IXtuvifOH7ISwE9tfNYXfPAtcobs544gNjWafiJrovY86w++XtoRXNP8LMFmlccM/JLRvcwjvFkRVzQzLVe4J49oH3s8zg9j1p/gnsuv+bgfqe9XjSN8j1onvWy51vQ7JRy3QmX88inOD7aY7wI+nDdpt/CIGs1nXh61+Opo3MQVnwGZTg8HXbR4u3Vh0UzGRV/bSJz+n2V1vPxBTPQH4IzJ0Nbuqox84+h1w5UPiANEp7b3753qOr2VuT89oQM+dFs9wbE8BsiWzyXfwcRlrx0NDr52s3UOm70XfKVq869sGr8PYkERPfaqlNQSfgnVaFwJAP0GCjOyoM3Uj5RDvxYTGYi2stRbtqZ5NQcjWLcrB1OGzseVRYlYdVIWn7kmD/dz0crXiLcKy6CCDoP6VDRibS+7YsvolmfPKf1KwrWNsQ3K4hfuB4bAU05a2y8+ggtz+9rtZoaYx8WjSlUDvDKt4pQAyYB29MCcSLIejFPwFHpbYWp/jcy8Nn60f8xxskdquO3oLmCTUk4qjGp8QyVUA7QGZWRPS33M4aRte+3SAIEwBtwVhJ2IgOA4sf4ROlIA8/RqmGESDhq4IMewD/wP9NolRa0hRUWQ9tAXRi8ub7DZBuj/aJNiktkjUN+MLLcIiCzLJdxPfuTvsHNfCJ+KdeMBlXaxpp9AiMqoQhbAauZs",
            "=?us-ascii?Q?1; DM2PR0301MB0752;\n\t23:hwaxVzmt0hkrxCMJiB4V4986YCAO/ziG0t2IpIr?=\n\t8y4qN+R3bKqr5rOLFI1QPibmGuZ7KX1t2618KkaRgAXeTgW3yVD2ylKtg90qz0ugVK5mjcJUrbZM/PDXyUG6W8XPNZ6QD7FLaOlOlDsfL88eu8Pg/jGvTfF47pf+4zwwvkiBSGi2zHNqbQObN+BJIJrW16RRyohWWs/m0pPTh+axrD8jY/YGucJTuZjDColhj6Lz8NpQWZ74Nr3jSiVDyKWTgPx3HSDby/PBTVSVJc2YIzcT2OYjKCv9bRe6ic3IemObMS5QjZ0YSUf1ujcy9/UGbcj7AOBGPjPJEMGFkKIj/cwYvdaL1UUHzOpZjqkjpR4nXeQTkrNmmlbMMNzc2T4+/oY+6BL/OFAtGHwQVUOVxNRFZkemIjXpzLJQ/g2fTiXd+o4sFPHRmwbw3E9stBJDR+HtiTAK26HSJW1T10np/jmk6xe3BCneG+z6c01Tf7UlAoympdFBZN7YdfhGdT45NHdqaBbf0ceEDxzj4ZhvmGltyYVJA9bEHTW0kX0ynOzBI3tXpfxdLrI1h0jZq2scn467UcnUlY1HWagM2elHiUMeVsdepDCDruJjvyxZ4oqJuk33SCymXGI4W9gWaDebdWntvEn5qMscpiSlNNnjtQhbn9G95DIP+EyYMtCQ0t7KRHc72B8LGmd9KbJ4xLmffcW47SoOCGrSK5o6uLixzVn0cXQYVw1sIWMMiiirrMdaA1IDgEFdrioJBtXMhB8ClLOBup2SAKj3oi5GNF7iG0qwPl0jWnNYpMh2n1I5HRYIMgP1E3/l6VjsNJGzvCvKA111tpQTT2H1hCy/u1EMHcTfs6woNYi6ZcnCt5UFeVFJK7QbIf8uE9k73rdhNOHMyOHLClU5WmRvSWdXh/N3vFeF/zPU+4B8wtRhgcZ3z4Rcp3FeMdMnU8WPmDN/U5FtQSAK0bZXEgTFlNmBq+LFw49panbvegZ534oQ5A35rW1jaaC7LYc3M6aS1ksOobQIQESA9qK+S2kcjam+wy6d7h9nHxsS7xoq6NqzlH5Y4q7k9u3oYGEclxPO+fImPB5CkLxt19MB5gQJmkuXHfgXAex2sLBmbrJBoezvgBS57csRGgv0VEXABZ4sbuiKeILIUZxBdgPhakW3CRHwWI73HgYirJn3ZQOlsUss8Qr8w5jzx4FUsI+M1rAqcSLTKXxH6kxpIW3sm4OE/3PVCSdGVZP3br38vcX0chTVli/+UWGymzb0SqFS4a5lTgOP4HtbLZ78j+C6LPTj64MJs3lg+JQ==",
            "1; DM2PR0301MB0752;\n\t6:VLUCeHSRbY1RUJosxFxXA81/V67ybfop7rE50MP2bBVspN1cBdSZ+MtpJo9bLLniCv0OEcDRQ8TL25EcIdljuofBxFqKVxNe5roJI4sTDCiq5iOdV+ijH35lYoBFRPkt5B2fC6dgPpJ6wn/auMq+RglMNgdPC2lEfKY/DyoPa9QyBxs/gAy8gbVB4z1WjwVC2x4rpNLWGBPY/PHROMVElML9AzVEZTfLQLFcXT1tBgx6gIJUs0G+TSESFwpcHRW/tGh9uz1pOYw8ofNZo1ZY+UKgPAnvmtvGmgptcQw5Spg1vE8Rwx9DpEFBzPvOb8/9Vm8xPcgMKkk8xUqyVPWrelrsOML+4OgOpc7b+xT/8ryTVvmCV1M3msYDptYjahJmS2AelDF1nb0kNusmQJJ5Wj3XGwfA/5anrtESZARqmVomWsv5VFPfjSD+Um0M4tmx;\n\t5:VftAQ79Y9qn/XTlqYq8f9wGTPHsUGnhltjhd156OcmSt9KQohxjCmFLHrpwkT3MYRnllGhEuVZ6DMrz5OlUXxB/+sVb3pGxGgL+2zQ0XYQIK+5kpLCV7tDBbH1fcjqG8pAidTd2MYctDb3IQ/qA4ib7zJeCGbUBDbD9BMd5Z5vYG6ksDrUUHvPD1PjDaH0Kk;\n\t24:jQBIFeaGbOCbuZ1XjsScK5ZMNwlcIlWw0GsxZWBmxg+5PFfOqHztJEKk1KsW4Vds1V6Ynlt0xBDBXwjjxO3he17lYMWhzqDCeMaiq46Q6EY=",
            "1; DM2PR0301MB0752;\n\t7:sOsL3GOFeCMQVHHA7TLm0I755/cOJ0nfvKl/ezR2iD+49fV6AuNUyQqIIgRISmvZk6XTCvfwhvPSRFLmgnm4Ln0quECcNrrBXNgcY/kRFAlvtfzsggRRzzBeXVdLRj396CxBEmz94xr7d0yrm9Fg/hoXQZ3zwRovCym9N8G9impWGcgRl3A3JmABeuqXXDWJB5H3s9z6p+HeTlf4fy9zCpHlLUgQ8Zdfvfl89/C503TsWAkHQoZkpsx882BfqdjkWhL3gdzaeo0zdc+H5ZTL/iU/3C/ke8OD6CTAF/qXjeY+fW6lEeix4M5kbCjJTGhFqytFN4CY57QvTZEOB7IzfGZrCTZt9SCybdSVhYlCcDMY6efFps71FDneKrNW/icOkyPE8fnWEdKv+ftS8fN0NzPt2Q/kFDxzVdPZZBSLjdwkZqGDOfwkVA3D1GAZwjz2TPLM64UuKZAFUcfTgHg6hw=="
        ],
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-MS-Office365-Filtering-Correlation-Id": "60827d6b-1bc1-4426-0271-08d428229d18",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0; RULEID:(22001);\n\tSRVR:DM2PR0301MB0752; ",
        "X-Microsoft-Antispam-PRVS": "<DM2PR0301MB0752A19F18E0D367774C2DE589910@DM2PR0301MB0752.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)(5005006)(8121501046)(13024025)(13017025)(13015025)(13023025)(13018025)(10201501046)(3002001)(6055026)(6096035)(20161123556025)(20161123563025)(20161123565025)(20161123559025)(20161123561025);\n\tSRVR:DM2PR0301MB0752; BCL:0; PCL:0; RULEID:(400006);\n\tSRVR:DM2PR0301MB0752; ",
        "X-Forefront-PRVS": "01613DFDC8",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "19 Dec 2016 15:20:49.3494\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.158.2]; \n\tHelo=[az84smr01.freescale.net]",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM2PR0301MB0752",
        "Subject": "[dpdk-dev] [PATCHv2 05/34] 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 config/common_base                             |   6 ++\n config/defconfig_arm64-dpaa2-linuxapp-gcc      |   5 ++\n drivers/Makefile                               |   1 +\n drivers/bus/Makefile                           |  36 ++++++++\n drivers/bus/fslmc/Makefile                     |  52 +++++++++++\n drivers/bus/fslmc/fslmc_bus.c                  |  96 ++++++++++++++++++++\n drivers/bus/fslmc/rte_fslmc.h                  | 116 +++++++++++++++++++++++++\n drivers/bus/fslmc/rte_pmd_fslmcbus_version.map |   7 ++\n 8 files changed, 319 insertions(+)\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_fslmc.h\n create mode 100644 drivers/bus/fslmc/rte_pmd_fslmcbus_version.map",
    "diff": "diff --git a/config/common_base b/config/common_base\nindex 68cd51a..45386cc 100644\n--- a/config/common_base\n+++ b/config/common_base\n@@ -276,6 +276,12 @@ CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_MBOX=n\n # Compile Support Libraries for NXP DPAA2\n #\n CONFIG_RTE_LIBRTE_DPAA2_COMMON=n\n+\n+#\n+# Compile NXP DPAA2 FSL-MC Bus\n+#\n+CONFIG_RTE_LIBRTE_FSLMC_BUS=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 c57c340..800e22b 100644\n--- a/config/defconfig_arm64-dpaa2-linuxapp-gcc\n+++ b/config/defconfig_arm64-dpaa2-linuxapp-gcc\n@@ -46,3 +46,8 @@ CONFIG_RTE_MAX_NUMA_NODES=1\n # Compile Support Libraries for DPAA2\n #\n CONFIG_RTE_LIBRTE_DPAA2_COMMON=y\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..be5e9ce\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_pmd_fslmcbus.a\n+\n+CFLAGS += -O3\n+CFLAGS += $(WERROR_FLAGS)\n+\n+# versioning export map\n+EXPORT_MAP := rte_pmd_fslmcbus_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-y += 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..cbf7600\n--- /dev/null\n+++ b/drivers/bus/fslmc/fslmc_bus.c\n@@ -0,0 +1,96 @@\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+static\n+int rte_fslmc_scan(struct rte_bus *bus_d __rte_unused)\n+{\n+\treturn 0;\n+}\n+\n+static\n+int rte_fslmc_match(struct rte_driver *drv __rte_unused,\n+\t\t    struct rte_device *dev __rte_unused)\n+{\n+\treturn 0;\n+}\n+\n+struct rte_bus fslmc_bus = {\n+\t.scan = rte_fslmc_scan,\n+\t.match = rte_fslmc_match,\n+};\n+\n+/*register a fslmc bus based dpaa2 driver */\n+void\n+rte_fslmc_driver_register(struct rte_dpaa2_driver *driver)\n+{\n+\tstruct rte_bus *bus;\n+\n+\tbus = rte_eal_get_bus(\"fslmc\");\n+\tif (!bus) {\n+\t\tFSLMC_BUS_LOG(ERR, \"fslmc bus not registered\\n\");\n+\t\treturn;\n+\t}\n+\n+\trte_eal_bus_add_driver(bus, &driver->driver);\n+}\n+\n+void\n+rte_fslmc_driver_unregister(struct rte_dpaa2_driver *driver)\n+{\n+\tstruct rte_bus *bus;\n+\n+\tbus = driver->driver.bus;\n+\tif (!bus) {\n+\t\tFSLMC_BUS_LOG(ERR, \"Unable to find bus for device\\n\");\n+\t\treturn;\n+\t}\n+\n+\trte_eal_bus_remove_driver(&driver->driver);\n+}\n+\n+RTE_REGISTER_BUS(fslmc, fslmc_bus);\ndiff --git a/drivers/bus/fslmc/rte_fslmc.h b/drivers/bus/fslmc/rte_fslmc.h\nnew file mode 100644\nindex 0000000..d891933\n--- /dev/null\n+++ b/drivers/bus/fslmc/rte_fslmc.h\n@@ -0,0 +1,116 @@\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+\n+\n+struct rte_dpaa2_driver;\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+\tstruct rte_eth_dev *eth_dev;        /**< ethernet device */\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+/**\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+\tuint32_t drv_flags;                 /**< Flags for controlling device.*/\n+\tuint16_t drv_type;                  /**< Driver Type */\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+\n+#ifdef __cplusplus\n+}\n+#endif\n+\n+#endif /* _RTE_FSLMC_H_ */\ndiff --git a/drivers/bus/fslmc/rte_pmd_fslmcbus_version.map b/drivers/bus/fslmc/rte_pmd_fslmcbus_version.map\nnew file mode 100644\nindex 0000000..773884f\n--- /dev/null\n+++ b/drivers/bus/fslmc/rte_pmd_fslmcbus_version.map\n@@ -0,0 +1,7 @@\n+DPDK_17.02 {\n+\tglobal:\n+\trte_fslmc_driver_register;\n+\trte_fslmc_driver_unregister;\n+\n+\tlocal: *;\n+};\n",
    "prefixes": [
        "dpdk-dev",
        "PATCHv2",
        "05/34"
    ]
}