From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754772AbbJ0WQ1 (ORCPT ); Tue, 27 Oct 2015 18:16:27 -0400 Received: from mail-bl2on0070.outbound.protection.outlook.com ([65.55.169.70]:49177 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754646AbbJ0WQS (ORCPT ); Tue, 27 Oct 2015 18:16:18 -0400 Authentication-Results: spf=fail (sender IP is 66.35.236.227) smtp.mailfrom=opensource.altera.com; lwn.net; dkim=none (message not signed) header.d=none;lwn.net; dmarc=none action=none header.from=opensource.altera.com; Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=atull@opensource.altera.com; From: To: CC: Moritz Fischer , Josh Cartwright , , , Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , "Kumar Gala" , Jonathan Corbet , , , , , , , Alan Tull Subject: [PATCH v12 0/6] simple fpga bus and fpga bridge framework Date: Tue, 27 Oct 2015 17:09:09 -0500 Message-ID: <1445983755-24007-1-git-send-email-atull@opensource.altera.com> X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [64.129.157.38] X-ClientProxiedBy: BY1PR20CA0021.namprd20.prod.outlook.com (25.162.140.31) To CY1PR03MB1517.namprd03.prod.outlook.com (25.163.17.23) X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1517;2:Gb1SdzSb595QMzWXPqaM0LauzdWCA+oCgil28R3JJ5+XYiqSa5NoXg3j5UT7J224gzj4dm9rBNtq+gBxHy/PGIA2fT/8NMdUyyvUiJVJkd0tK4TBcyjCOQVdVlGuleQjrFWjQWZ8uif1S1ymLXF9LS8QM/6vxhX6zckL7GxCWeg=;3:W/fEvVXY1E7fQv4K3YgpPMwqKYmXz0/k5Uo5dcQ8l0ENhIk5WRmMJIaAOOLhdSpYTwhbjgNZmni9iBUhcGljP6Vf9yfbgwsSb4jCQkQ0aMwuYAAwkdFAg2fzw9JsVhT+QrBiLy0Ttfs+RTM2hHlTTQ==;25:y2Fn3eSh5DDf3ZCpuJTNAWD8gIMGtaBvL+5hl8/6HUoLY13XWO6V1DuVuA6vTxYXHfVvYermPs/iQM6QjRtxakPIjIuNlm6JqZJBW00RN6cdE1usjnm+9jBZxL8+4ImGbswmQockRIntc66agl3sRaR0N9Rhg9EhV2OYKIPdA+VZUpeYe69VgCNh6EaiA7IajB445a4sqouWPuLqy4ndkABzl1Kmj9YDsC0aZcBpwLYSznbNPfuT/aoyhmZytpGR;20:Qbb35t/u4pVePI1UlGuGH/joyFkTNyR5FSb8Brr47sQgJMYmYYti9o2MMmT3kClbgcQxPs8+buo+/jiprVgd/Xq6zCLCCEKCyZ+id4BJY9anqM1amFbYfNaWAFBFJk/vrAPROIPo3FTUqjmGyX5GPIuYu6uHveIrew9NDc72w+U= X-Microsoft-Antispam-Untrusted: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1517; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(80048183373757)(204874498639787);UriScan:(80048183373757)(204874498639787); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(3002001)(10201501037)(102215026);SRVR:CY1PR03MB1517;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1517;BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(5005006)(8121501046)(3002001)(102215026);SRVR:SN2PR03MB047;BCL:0;PCL:0;RULEID:;SRVR:SN2PR03MB047; X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1517;4:SrJpd2aW1G5Ai7s/50UMZBbhyMoMif7j8lMPgwEAm0KOuqWc/q1fcGKrKdgfzbDt4Cl0NX5CwIWiYZTHm9pM1fy+2Z1ot3B0eduPVa7UxF2ThupKAtQiU8zLbMmJ3bHeQ5dvnN6CGrLwifnGYlXDlV8xxY1st8vWh3o6UH3E/MFaYHqumfL9E3l9Zef6l3BAo+EZKdVxpweUdzyrTT+APufW1T7R0OAnhxQoh5K7yN78GJq3U0lphqJFblREft1kB3SUSvoXqUUtuXlzEv9ZzA3FTLwAy8xM8FbtdvE1fE02xmWA7Hds3DNFuvymcGvhmUAnMLlB4Edk1+jGSv8c0E8bHSlRnQoFzMqBjQVXaElN18IPaqvWwcEWh/IA34r51Bj8oYFYMhAae1nACB+FRw== X-Forefront-PRVS: 0742443479 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(6009001)(199003)(189002)(2351001)(50226001)(19580405001)(19580395003)(229853001)(92566002)(5003940100001)(33646002)(40100003)(106356001)(69596002)(105586002)(110136002)(101416001)(5001960100002)(122386002)(107886002)(97736004)(86362001)(77096005)(81156007)(86152002)(5008740100001)(4001430100002)(66066001)(5007970100001)(47776003)(5004730100002)(189998001)(87976001)(50986999)(53416004)(48376002)(42186005)(50466002)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR03MB1517;H:linuxheads99.altera.com;FPR:;SPF:None;PTR:InfoNoRecords;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;CY1PR03MB1517;23:X4Z+fc9nsSRvq1N0wDLU3j3CKPjYStmI0+B6k+jVK?= =?us-ascii?Q?FKm8irHFa2lfFpVPS+x+sc5CGlPsUvratA6O8A6tNdoUAIn5jUVrWIHKJez3?= =?us-ascii?Q?BSyKfmYEUA2MTAJFkUuKPW9478XaHfpo+HsnXQunymBfJkGI2BPxor78LoVd?= =?us-ascii?Q?06fn9Av6PsIPVp5JV5fmZUUbUn1rpqhXAXzfcANMJe1Qmb3rZGXUUqw1VCz9?= =?us-ascii?Q?ZRiZvlhE4IwphmnAw/bj2WusilNZJDZ65d96tGXopphfzSFHGxYKHG3orgam?= =?us-ascii?Q?65eya+YvRY5JyT7GAjwxby6TexHIhnSneGCd4nb/5okaC1T1Dxgf6IFgo263?= =?us-ascii?Q?2gjeyk3bAhuYCTMZYA3TUDkqCPCGwoLAhFHgFpc5BrCs60CoqKr3s7ULkgFW?= =?us-ascii?Q?/OkzG2R982u1Lz4gtgwbtaZDDWZyKIiQu82qB23FKFCn7EQD3AhlVDRowAB4?= =?us-ascii?Q?ErpUDNi98lOOU8xoo35SzU7XsbENquRNNKPy11tf/HZBnU3VTZPliiy4iBLo?= =?us-ascii?Q?TAQ8SeX56VmkuVaND9bEZw3HTaXZwFvCIbyyHca3jcSZOOniCXJ2A0aqJqIo?= =?us-ascii?Q?+c8hqbGdRbHzapHOxoaIgBESwB2s3r0QPMeOfn9HUoCrLCWK8UI8GXEPSZYE?= =?us-ascii?Q?WshfjGbL5zrC70f7LR8ewUlbHLSVxijaUKzL0x7oC3IFxGHQ2QpHCD7qB1gX?= =?us-ascii?Q?mP2OCB+L+l8ktKIiZJa6Ks3JeEkoXkQu24MIg4uFOVcPf7UAyQA/d1v8edYe?= =?us-ascii?Q?zq8Aaj6yodhfSJ6CMbk23/Hpo8trAvhbr1VCyVwpvP2l9YPGjSKUzUlmz4dw?= =?us-ascii?Q?PFDF+iH51PhTbKY2V6KAeiMPPRsQCjXD2vKinK9zn/5ir89UBw6b+4yYoFnI?= =?us-ascii?Q?fHlr3UMzZrd8wCGrJwQQM/uViAwZb7j40vCkM2cxpeUvBpM9Y9OjGTDHd6fC?= =?us-ascii?Q?j6ZU23fpEW0LWBYyU697/jcamHk/LyiuthkSsENs8nRAK8BnmVBk4xr7bo5i?= =?us-ascii?Q?q4l9kTw+cQkV8v18pI108Sv+mz3leLUTGJzXDRr2HNmKcYqzJxXew6xmhPhN?= =?us-ascii?Q?cquxDya4BQwMDErEphJ/X4FsOIT?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1517;5:PG/4QwDelGkYLco6pEuo636SpsXJiTu7oYj7eA4Li22K2nHzycZU39rneYQ4bbB74WWIF3rlwIDu8jhF/G4xX91PyW1BWHl4wNedtzLPNY0+vqOEMq4v1CGYOY7pvA8uA77A47bpWkrK+kaVAfJKtQ==;24:qmMmd2YiUJFB/ff9R4huTA7E12O/uVtVoyXE3TjxvxwQl3ZKztRKQkYDZWsUVBcUJnOwxUsR4yyNVMl+dodE1sxdx9d4COmOPJptu4lIDtk=;20:pWSs63BsWwBVOxB2hj1ha7redXESEi6H9rlJE4S7z7mT7ZQmPYT8JrtlqGbKGo85UFSunslwP+ioFSF00Dvag47Z1IP/aN2KbC8zVkUuGolzuAn9mnxl7g2yTwYTrSobYTImijANQHt3MUV0N/UXaGWDO2fCISqzE9nNwQ+HwM0= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB1517 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BY2FFO11OLC009.protection.gbl X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11OLC009;1:Y7HDTcaio5OqUeWJS2K9HnXWkQIyrNMrZVIsqqDgDGVppMd5O5iphreL38gJDvdbXbGDwDCivZs6SWIZAYo+6q4w8wxhbBiAB1M/YU7jxB8KSZCoa4BfXfStmJCkbGgc7zXNNrkAAPfpx/xOvqB2JDiK9XTOvrPTXVGZwNQ+vq41DW8CwfCiTWR6jj6nUias7qBsbC0WgRW5ErYb9KsFEE9yb608zjitDZMOpwikNQxRU8cLkM6HWN+ihfzXpHf8d+TQsEvjzHwL3c6yAICa3IA+ai9AYm/pU/duTncnW8LwUlqmhSx6oowpAgtPHLca+8uzZiZxeSHOj0n4TUFxOibypBoL8xAlXG6+MzzTxHBxxcBCcYIskvcSkUCi+yl0iHyDJLR1T+xAGVY3vMakKQ== X-Forefront-Antispam-Report: CIP:66.35.236.227;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(92566002)(5004730100002)(87936001)(11100500001)(5007970100001)(40100003)(189998001)(6806005)(122386002)(110136002)(4001430100002)(86362001)(77096005)(5003940100001)(50986999)(5001960100002)(107886002)(5008740100001)(50226001)(16796002)(97736004)(229853001)(86152002)(2351001)(106466001)(19580395003)(33646002)(53416004)(105606002)(48376002)(5001920100001)(6070500001)(66066001)(47776003)(85426001)(81156007)(19580405001)(50466002)(7099028)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:SN2PR03MB047;H:sj-itexedge03.altera.priv.altera.com;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:0;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB047;2:g4XhP6fG04YJvwrHjfUmmM20kb9k+0R5GVzYXluaVFPZ95WDXGqcnXG852smbzM9bsH8rXAjqhfdV5DBNUBT1r0K+nP5hnAWJu/CyyaLbAte57ZRHQ5m0dQehWQBKh4cp+D5VytKjEWUePMyfU/83I12ENDeFv5mttpn6sSrNO0=;3:FAjvASl2K2MmokkV+U2/AwAXFvavbx6N9BNwQ/EE8JU2O++uGpVw8ZiP9Q+wX2imUngcyGyKu1kDEDiNXhnjZK2bjilbNBIFog95pIvL95x1PS6+zI5W4eefR9l3uA5IRS+WseIqznDcxrVnkvG0Oh1H2yjcNWoZSE8xsn+rj3KhqXXe2qx4OteaaZDbDQaFX2caL4+HEtP6WYvZ3RFzeY0vPDA3nVTcv43ujE/4zso=;25:AnblCFpbUyvOhqRqF5KtKNlbvO8B64pAr+NJtyu6yJHG1054/glDAHolvJy4lHWfL1b+15hqDbALK7Pr9YTOUeVn2T9LSy1tLsFWnvrw66K/qwZQkVcRsJFGGPic1XLnJpD9HWI3hjsMGAWOJdfF/981tJijhFTZNXFLSY1ZnxHr+/avLKJhHCMxcGn2p1M22qvmwQBa/zck15dxylYHUl8J9kAlb+FJg7k3CSLA0CpJnNnxaMmRmZHj1UlTJQMt;20:Jkajn6F3Z+/2Y3Dc0QklG03xTxv1aFlAi5+wNNaKpuxevB5q0g7b8QcFUZz29CVmfWdo+7O8riJhlFXPxJKc4SPiWQvSIDkLa1s2b5Ynng0MqAApU0Iml3XPSwZwK9OJXKgBq/Sy9wLlHOqitmpCFify37LmsXW5ZIXX53w+c74= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN2PR03MB047; X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB047;4:OTKHogN/xVEbUacyIwrPGUu3lrUg8drhpZYVemG86ZJTChhad9nmY5dt4PEEyxIFVVT+xtyK4jCbpWYBwDuaukj4afcWOG9hMybFw/tmqb+xR/Nic11CMs1ngRE9knD/uDTfJCgXO8aej95BAD7Im0vkBO804gimQkAY1bkpIoGV/ST4FKL7WXHJpkct2NFAB9wrkiVYgEG2nXNhrBEGNco9x59NKr47uCGW6fGpoxSSAsn8RSU3ctPenENxkDbm0v0ZsawfOIFDEtcQUccmc7eaBoAVUheevcgg/BWMhlU9qtXgUDOLd6mVrEN1hfauuyPJHvR0svRkEWEGorFpq22QzljwA1e7XjuTRSUS4pfCh7BDqa97Hxm6zI/BC74C X-Forefront-PRVS: 0742443479 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;SN2PR03MB047;23:kb1OtEkJpvKdFkxH7IapHSc0vcERH5T6TZKXtPh+iv?= =?us-ascii?Q?9xduhhEPUCCj7i77e3IVtliXBW6HHQvyqFFYGXOSeUbBwG+6ujfO3PxKRnfT?= =?us-ascii?Q?Q5F9Y8mhKOPK8XQ7aL49lVon1UgVidJS8nCo7QpPxpZ5SN/Og+QS7/0aQoTP?= =?us-ascii?Q?mPZAKEyVDGBjQcQHaDFnp/RM4ZXSiNddmD9J2vrvKQj/5vOfRBg022mVQOtL?= =?us-ascii?Q?iU7O5nTxmZK8U+3RiCDPt9ZbNetH9q0yO54aMtbVkf+4agl+WTaaUeEayQgI?= =?us-ascii?Q?9rYl++HY6uw45ZuWKB2qz3IB7ou08MbYXFYdjCg5FqaHXu6liIurPlvUxXh4?= =?us-ascii?Q?KaqRhsKAFXCpUF9jZhoCF1DW3sek7DyaJVog5L5tF+QQdE+AuaABlA+1pvA4?= =?us-ascii?Q?4+z1gg0roKNMOG4n7CHQKxorPDu/4r8J0jeUz2vE+od+smT/1odTCe+cUjfp?= =?us-ascii?Q?SEi+ByxemSKJah8vuJQEV7aOlXnVNlVVrXXLwLZNUR1ghgwftQVpxgWOUbCT?= =?us-ascii?Q?8x4VPj29lW/2XDi9WIDigjZjh/fqDry41/gKTej3hDH/S5L9nJ1uKu+AXK+2?= =?us-ascii?Q?JZCj7Yp5gxohotoyXJCmEAxXFFOvE8E5UEqCU+7L1qMaEmoJy0tfj8r53UhS?= =?us-ascii?Q?L3pqk3DMg7KNg74mibLmhtKPuBJQw9CECI3JdNTDnavVop3fB7fsNtGh4z9s?= =?us-ascii?Q?PIIYjDnXncKuq8AeP7hfhfMKLY1eXadoXUp/f3kX6diAOtyy71CAD7GyTEwM?= =?us-ascii?Q?5rCJ+qRvrHAQIrCwRySGiuLTe60ed0tPMYF1FY9f6/giczSrK6T+hsFZOdLt?= =?us-ascii?Q?o4VwUOyARRpgKcCKI0Ld6FvBgLlLHa3QfJFSqIByt/MYOj9jjF3RdI5H8o9G?= =?us-ascii?Q?7/aYKhqCOxvXyjNF6QkY7Bk5fir9MaFR+i3xHLckQwh4dT8eS6lJdo6sJ+yW?= =?us-ascii?Q?aXgiYBmWa17PsZQEFSsYlqV1kB2BwD/Ea6HxGRyzweoKe2vnRngx/SDyw+5Y?= =?us-ascii?Q?GkEbhtNPtuoDlFjJRlHrH+fNqqzmQa5dkE2DMpPUH56M1CDgTCHZuUVdb9Tf?= =?us-ascii?Q?ZZBEHDozKponf9W3prX2WvumansRq6w67wc5V13VK7Df4zBFc+udA4fKoBL+?= =?us-ascii?Q?Gj4Dir9A5s4BHPIzYaYpp52HdKnVsptc4+0uV0OjedSQfYxb0MsX7fvP6OAY?= =?us-ascii?Q?hg9qWig0Q28PzxJU5odj12Z+dZUclJlKy003UzuvyMe/bu9XfjhId64HF2fQ?= =?us-ascii?Q?t2/bIIqq8yczBpqvI=3D?= X-Microsoft-Exchange-Diagnostics: 1;SN2PR03MB047;5:uX7+NadHLbsJkeaB/hAeT2fwu286oRsfwIAWMuY4zUdNhfObuVs9ppHYKotEdHNPj1gl05JRVBpizkWwnRFwmZaIooxByLE6jDgTjCqWJkfLht4gPWuYrs//Mrsr83/EIwxCqMO5OZjVPWTYd+/Aow==;24:kGI0J1t0ozTMbJp2STl1yui8f50WBsYo3HKueznvp1S/fv/f53kg7l6r6bG0+bF1w2jqhZDQVADOVO67G19gUzYxmfZ1zs3t5iCm77SBsno=;20:z+D2x83UorwZ540vznPIS9OqV29+ikjEpYJhigK63SrH9CI4tPda2XuXcOFf3aa9nJBxHPBoFYeuFXgcBWZ05b0HA2zhuCjCaicc7B5qZqje2oOqEnXSt4cloUb1rSQKSGpnWdjXj4OzJPnxh0zOycL8pTvBI+FcodIPciU5s4Q= X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2015 22:16:14.8268 (UTC) X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fbd72e03-d4a5-4110-adce-614d51f2077a;Ip=[66.35.236.227];Helo=[sj-itexedge03.altera.priv.altera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR03MB047 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Alan Tull The Simple FPGA Bus provides a manufacturer-agnostic interface for reprogramming FPGAs using Device Tree Overlays. It uses the FPGA Bridge Framework and the upstreamed FPGA Manager Framework. When a Device Tree Overlay is applied, the Simple FPGA Bus will use information the overlay to: * Disable FPGA bridges * Reprogram the FPGA * Enable FPGA bridges * Populate the child devices Simple FPGA Bus was originally submitted with the FPGA Manager Framework which was accepted upstream. This version uses the FPGA Bridge Framework to provide methods to enable/bridges. Alan Tull (6): fpga: add usage documentation for simple fpga bus fpga: add bindings document for simple fpga bus fpga: add simple-fpga-bus fpga: add fpga bridge framework ARM: socfpga: add bindings document for fpga bridge drivers ARM: socfpga: fpga bridge driver support .../bindings/fpga/altera-fpga2sdram-bridge.txt | 18 ++ .../bindings/fpga/altera-hps2fpga-bridge.txt | 36 +++ .../devicetree/bindings/fpga/simple-fpga-bus.txt | 81 +++++ Documentation/fpga/simple-fpga-bus.txt | 58 ++++ drivers/fpga/Kconfig | 21 ++ drivers/fpga/Makefile | 7 + drivers/fpga/altera-fpga2sdram.c | 185 +++++++++++ drivers/fpga/altera-hps2fpga.c | 234 ++++++++++++++ drivers/fpga/fpga-bridge.c | 242 +++++++++++++++ drivers/fpga/simple-fpga-bus.c | 327 ++++++++++++++++++++ include/linux/fpga/fpga-bridge.h | 49 +++ 11 files changed, 1258 insertions(+) create mode 100644 Documentation/devicetree/bindings/fpga/altera-fpga2sdram-bridge.txt create mode 100644 Documentation/devicetree/bindings/fpga/altera-hps2fpga-bridge.txt create mode 100644 Documentation/devicetree/bindings/fpga/simple-fpga-bus.txt create mode 100644 Documentation/fpga/simple-fpga-bus.txt create mode 100644 drivers/fpga/altera-fpga2sdram.c create mode 100644 drivers/fpga/altera-hps2fpga.c create mode 100644 drivers/fpga/fpga-bridge.c create mode 100644 drivers/fpga/simple-fpga-bus.c create mode 100644 include/linux/fpga/fpga-bridge.h -- 1.7.9.5