Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753984AbdCTKli (ORCPT ); Mon, 20 Mar 2017 06:41:38 -0400 Received: from mail-bn3nam01on0040.outbound.protection.outlook.com ([104.47.33.40]:26624 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753019AbdCTKlO (ORCPT ); Mon, 20 Mar 2017 06:41:14 -0400 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; Subject: Re: [PATCH v3 2/2] fpga: Add support for Xilinx LogiCORE PR Decoupler To: Moritz Fischer , References: <1489781473-30772-1-git-send-email-mdf@kernel.org> <1489781473-30772-2-git-send-email-mdf@kernel.org> CC: , , , , "Michal Simek" , =?UTF-8?Q?S=c3=b6ren_Brinkmann?= , , From: Michal Simek Message-ID: Date: Mon, 20 Mar 2017 11:02:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <1489781473-30772-2-git-send-email-mdf@kernel.org> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.1.0.1062-22952.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.83;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(39410400002)(39450400003)(39840400002)(39860400002)(39850400002)(2980300002)(438002)(189002)(24454002)(199003)(9170700003)(8676002)(36756003)(33646002)(81166006)(23676002)(356003)(31696002)(9786002)(8936002)(63266004)(229853002)(77096006)(6246003)(189998001)(47776003)(54906002)(31686004)(50466002)(38730400002)(64126003)(2870700001)(53546008)(2906002)(65806001)(65956001)(83506001)(4001350100001)(36386004)(6666003)(106466001)(54356999)(2950100002)(305945005)(76176999)(65826007)(50986999)(575784001)(86362001)(5660300001)(4326008)(107986001)(2004002);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR0201MB0758;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;MLV:sfv;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;CY1NAM02FT037;1:hOeTMb97jXeQ+CUzYh1uxpOr85zVEujuU3xlk0x5DFq0CIbN6lLz6SKIh8K/Jc15b8FdyJ6DhicwckHDcp2keKsIGktBnRVj40E6z/3t9eVlqOZ2yLqD3ovylunYjLKC4HEKyNRDj/ZMrGYjI9GzivKeQmV3l8cwY27LF0VOebPit8uSXtVA8/i38tTdjgjAARW+MnvI3ZcYWKdMP0iP4LBcddtQoN4wv2afpalH8cZ4tbiS/8m6N+1NCHrAssRhRcpbWECjSMNtceW68xt+UtYiUyD6mONFXz0gKlOysEGV8tWGED2vH7sk3VKVEhGOFiBKPMk/Q968XOd3iCeuWxyaOC7FobNSSCjusOWpo4kzY7A6KfnukXbxLz4TqHLVKMNhwM4SXBtQLCr63SvvS5VzgBHEVo0JyDpbe8uHOA3a4RrqjBq977YOG55brdxLO/GpNSMHciyW0sW+ifw4ifdJR/URh+hUhklSnITpG3Ccuw0AOcKYSohwGVd5dF9SYDydH/YLsHuvhK4X5FX1lSGTPhqYrURhlrwakkE124jzTNuOAPhR7V6mE4lmC30o X-MS-Office365-Filtering-Correlation-Id: bc714ad9-edea-4aac-53a5-08d46f783a0b X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002)(2017030254075);SRVR:BY2PR0201MB0758; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0758;3:jw2qa8PXxDyBcLC5/I8Sn9aHPxn4o6tUN/H/xxdJGT15HWqObbaH3oM9JztFF77aVDeXyFHEKLjdEj1GT0aYAvhw8z09V/sOMx0N6CoDUSMQRRfibUyxW1gCwAWD6jgTl/P0NKUKvtRDF8rD90oWMBLwww4j+1fZfQLaefnqjw4Vwpy46/OUCmivuMrtixUsllY8EYmXhAEVbW04JVfLDjWM39N2Lqg1zFBB7xYXv6CBInOI/U22C9u+0YeENiemKu5JaPeA8I6bpbo4bGn2zd9Ut6XdyWfoqJErqb5wqmSsALvYyDvLGkKIHpvHrj4xKm7hB/xW+8TeXwZcl/Ln3ItY+49D536OOO1enc4g4x4XsfCHy0HShtd3GlnvYq73jklrWtjvQX45t4VXiFqL45ZsjOTthZLNSf530kVkH1k=;25:dX6fVoudGEudpb1/PhHSXyxyAlkKQUHIfIaqnKzOR2dgl5laSNuzSem6L9FBxjnQjwGPK/7+boNsroXoiMykDg4IDzHL053QlZBPJy0rzKbbDJOndswFQIBp13fbAMgXSVpTNIlf5ZzOwlaErBVFGbnz4MCekiEMpAvakWltLYsjP68eLGanuc7rWWuWNNnD3uPydKs+0vZcsmK6JQEeIPMmhlSrvt3LjBPVSsp065wPW/PQPpa/gzSijVyB1sKYH5EdMgcSiyGwbvLPkunnIOyra1zTlrKarTEtl1u2YxO74IcOodJLuXCq6Coj3xxtpY8sp/YDx6QLBVAkz9oTwmH+OvjJmKdm4jcvkUPF1c6HfKjP1WUwU2MDRUFaog7Irtbd3rhImaYSFNLFuXSAAxcINHuvLQDNArLaU026Aa4RSNATqCt0D/xKEIOKRs6QwTy1JWq9ZnCKe5R5xFAHxA== X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0758;31:TRuf1e4T44U5iyD3CyjtFKSscb+bH2aPMpGVlk7TL1naFTkjSc/YI29JyoG7syL1mQXw92GF24gWC62uiGTbO3gS97ZJoFj1JCrybWJTJsYeVLMIcLbeJq9tSBleQxc6D195uTgUXi8yjSQJFzeYkJZDjBOJKi6v3ecK+ZohxE+DhuV5xn+N61OdjiNmVen15I83d6s+oaOHWmqlT1Gj4Ye0TZBs32j2gi/P5NPgEpTYhTZ5PqzA+o8JmVxxMLxDfbOou+f3wrB2XanFbgiQQA==;20:zWmWHE5j8LTre4pu0vV7pFdnYHII3Y3oo9JXi1tzzO6n3OOmZfNTNSjW/YL9BCeysN+p9zUpwd53NNmzUqtc1DGIpzXxqtjGR8gqaN0WtSuW9mi4WDDFqYHR4UxHCc0La6UDRt+CtOrwwOrl3ubryMsHO4i0AdwPGLvnPOFKISqcwl/LFJfoCqN9M1DIZRLM/bODAMaLhoi7jJ+siDRdR5xFLX2EoOOZnkrxtfxpJT+MELKiGB9yCbGdOF9Y44OJ7qx77ozJMFyIkkUjkm3NV71ds66ER3elWgYejMpvLkFhjRaPE9/JAZnnMK9+907wWRncsJj8gqhgELTs5KHFtDrnQWgE9JdKAxbc+j1MmsoaJbhjUbRybIgN0SWaQulYibOL19Fw2kEh0DkfsKsq2uKazv6+6ldVyHnSq+9dMIkaEqikRykrm/zOTZJ1+ZD21OnuGjfwiXFO2I+lrOx2YsdnKnAA59tiJRht+Nig1msMkMGRd460G5TeSj1wUU8Z X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(13015025)(13024025)(13018025)(13017025)(5005006)(13023025)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123555025)(20161123558025)(20161123564025)(20161123560025)(6072148);SRVR:BY2PR0201MB0758;BCL:0;PCL:0;RULEID:;SRVR:BY2PR0201MB0758; X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0758;4:yn9Z7CSm7wRzUmQgWTTraSHm1WIujcZ+fbVlM50//5zR0ACvTS/OSiiHMDPKV1lRHl4/J3KNulYRJ62FjewTrkSsSbXzw6+ZuOmpBjxLYTsnyC11WaUr/jLKcZ5EztuTXiBPlNvCQ76RNpxsadhFDCpD2nJH4Py7JM9WAsO7E/ZajTOOoFsvDKymUNmqSLnJep8EqnnddRh6qBWYI9xshfls/4uz0cfCTujBotpz4IF2opCj093lQyXZ7Eayp584u2yYmXpuKfLuidqBp0dDP5XW3CupfkBi3qHqUpGzbBLu2M3RXuGVbGYZHVtHDfwfAdELC98e0cP+RresKGL8NAUWwcpEqJL4VsqZCZIhv0ZqOo1Gi1ym4/u2EgQnTM3D5/5bBBl+2oz7PcjO7dRa3b57ECtYbrBu4NJd2GeCKv67fekjBGr+8yo/YY84lE6ljGq+sfLgqZ2nXRct4Fbd43gYnrPvU8f4jRPr2gHjytsAJ4ecw73dF2I+iPS1NPrsZPu16S1ns9yeithrcDHSJ10IQSVbIYmcDh3D7nDcpSFcoxFjAC9dWHkg2FB5n2eRGdDcZjTwu26nf0abjzuVc2ASolqCz7LymI5AjBzJ1cGAEOb/tg+MF0Ss1LiJDwRBrPCWPc1bMRZYkUY196XwtHZlEcd7/TltR8uuvEdVIEhWh34cZk/shHiMcYfgtbROJU6ju5D2hpGzbznB6CIjBxONddXjDX89Gma3aLb7vZgmPZo/akNwBRoY3qfZwGYb1T3VXQErz9TraLuvRypyT/q17uJ+qV/l4ZQArNLW/+o= X-Forefront-PRVS: 02524402D6 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCWTJQUjAyMDFNQjA3NTg7MjM6S29YSUVvMUlZUTdEeVc0WFF1SXA5eGpo?= =?utf-8?B?QkpZM3pUTmpxVXB1VnMyYmw3L3lQa0l6WEpYeFhkYmFEaVc4czZIa24vUVpC?= =?utf-8?B?Y3AvNkVPanRhOCtnTDZMZTVPSStXNm9WMjNvNTgzaXlpdHh5eWtXNjl4RThR?= =?utf-8?B?RW1BZ0xHZzU0YWJndDJVSy9Ic1Q0R1QzbFFZSGF0NmVGY2FpWkl3Q3pJcThP?= =?utf-8?B?VEEwYUE3a21YYjcrM0ExWkxvekVhenRSSDFXMTUzcllra1VKRFVQcGFVb2p2?= =?utf-8?B?WVRQdTNOZ0xRbURGbUlLNENvL1ZsTENRSThBV00xcHRLUHFDMnFPNFlvQUZR?= =?utf-8?B?N3dOb2lLMFJ5cDUxWGNXSFlweVFKTkY1aUpmZ0ZJbXVYVFBqNTlybE9vbXBv?= =?utf-8?B?eEFhSUpXRmpqRUJDQ2I3bnhXbjFYVzJlaC9qbUQwSTBjV1VEQU0xQ1Y4alla?= =?utf-8?B?V003ZzlzalhsZXRkVysrQUlkTW5ROE5GVHJ6OWlERFV5cDdXbUhiTStJVnJV?= =?utf-8?B?cVVwaXdBTWNFVnIzYmZXY3lHQTZBSHZyeWhnQlZOSVcrWmtpQVBsTzUzTWRn?= =?utf-8?B?YzA5NnJLcVlhWnhZL1R6Mm8rOFBkSXhWV0JyMDkwVEpaYmdQdTJRWjhxaTE2?= =?utf-8?B?cXVuaTFHNTVpYnl0SDlyM1JDc3NIVjlaZWFodjREejZsNk9iRzNSemR5NW9Y?= =?utf-8?B?akZmQjhPWW1CMnd4UDZDNTZNUUtlaW5TTnE2OENyTGJQbUFMME8weW40M1dh?= =?utf-8?B?UHVOL0s0bDc4YUpHR2x3L05KY0FuUEwyYjYyaWR1M3lNUnBwS3pHaUxQZVJo?= =?utf-8?B?UUREdlBBL045UjNkbmVGeEtoRWZVdy9uVjR0SW1NakRRWksvWjVKbGVIVHM4?= =?utf-8?B?UERXRXQxaGJlUmlweTNra2psUGM0WGlrWWNWeGE2TU1ja2ZkMEtTQ1lzQTVW?= =?utf-8?B?VytLY1pIMlNOUE92Nm1tR2ZsQlY5TlBiUUxBd0k1VXFWVlZxekZkNXF3bDI2?= =?utf-8?B?aS9NdklTZ2tNMkNnVXV4enJoRDRHeGpMUko1ZzRZZW5EMW9KclZ5NjZIclJD?= =?utf-8?B?WTQ2eUYxL3JzNTlpb1VzS09RV3hjeWp0S2grRVVoQjRUMnhiRGR3VW8xaHdK?= =?utf-8?B?eXYrK3dqRE1wRitvcmRnTWdSOVlyeVpWamxaNkM0RXNvYWkxTi9MbHdqbi8v?= =?utf-8?B?MjVySjU2N3RHMzZ5QlU3SDJNYzhqdUVPcVg0NUFHUXo1R0ZSTitFbXl5YzIz?= =?utf-8?B?N2ZxTmhoWEkxWFRkL2NqWXhZRmdFeVNmQ09OK2JGZm85QWh3ODZycFhzbzkx?= =?utf-8?B?SGpuNTRWVWR5RzQ1NUFZR0FPeEdabS9uWEVSZjlmZWpTYk5qTUw2ODY2ZVlt?= =?utf-8?B?bWNpK3ZSdnlKTmczaXlSVmN2bEhvZExkVEpiT0kxbm5YQ1daNmwyUUVBejdH?= =?utf-8?B?MXk2bW1veDRqR0pUbFprU3RpMHZpbmI2Mys2SHgrMmRtSkJYeHVNRjBScmlG?= =?utf-8?B?M0xCV2d3K2ZRNVU5Tk5sV3NZUDhtQ0pjb3hpTHBKR25zazhnY3VhbDkreTR1?= =?utf-8?B?NVN4SlJMQk1mODVBQlBkUGljOVdaWnhjWmtneDJWN1hZak5mVUVodU8zWkhh?= =?utf-8?B?b0tYVjRsZm01Mm5VYkVtb1ZzSmVaOGdudk1DRm1vd0J1WUJWMXNGRGJ5VzA4?= =?utf-8?B?cVZkSndFNGNod1ZkM1Q3dDMwN0pBZ0lsa2RMWFZmNWluenptME8wcHVrSG1W?= =?utf-8?Q?USVrxHGlzNkFFQuP7yYj1GZgIoBbSViit5jRmZ8=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0758;6:7AyAMnPpmMGm8vjicrEWyRajIf4JC1gqMQl/0GE1aYT+kzFHz7CrO0c2brEn/UAXMgZPWZMZCHEQCEQz40JjCuad+x7r+5Rg3cfMHbrTkQiLiwK+Iaf5Gx8Oysk40V8qARcAYHlOX4/BrkrcOpcwcTWoilsGJFT7d3pj8HLTieztoZJbL1tgCT3ly8Jyf98kXpr4Id4Cv2IDdyUB1X9cKcJg/dMzLpRmQ87mkUtp9lri1s0GsXZmhGTEyj4nL8rEvLcuZXyNpgKjr82tkg6bPugy2VJx2yrX069+sDppAnJrbBGt8CEa9zpxzUpChKfGqrQbkQ/DgIqUFnLwE9cFz6Vh7BclDUlE/pAEdz/g3T8JjwaJe3+uDU7w/Jz0evvt7Gn+BPtotLHn8oFyUJuMAZDFHE4mSwHtRqQAQph+A50=;5:Yt24kMk46u4pa9vMCO32yfDodOu2ZyGBL8iEJ8MyRKwpicr/Mvc0wnaFgJMjEyB/11W68yZQcyXI6J7mxQepGoagQwIx+kyWZBf62frH88A1K5wHqHFypLG7x+5at8AssM8iCaBToBZ/Wt6HV5h5AQ==;24:2tjBccWEKdK5Lq4n8NwvUim2Z1Nlz4I2EcR+hU0AFFJga0Tr2amcjRlAIO7KFeJY/xqYSP9kybj/mpj0SbB1jNuyqQDxSHOMRNAVYq3nLb8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY2PR0201MB0758;7:RSfTESY1iDv4IXmsEciUF0OnPQgH7PHChabyM1nHPcyOt+zWO/NCucZFluAReZ5bvlpG7eWm/7PUUjndV1X4mhUvbrJM5OzWN6ToIujXcKq0e/p+Ko75H/3Np4vbrhCy44sMiBRS1qOX2wTmz+yv23HRvFFr2jUTJ+N3jd0J4gjwmLIgSHqhp7on3YiSVJZNv4DV9w6+FzTIpA9qzw0v/anGPsvIKunNB5qxSCXu578eHLAG5rnnrkUbzX5rjZcvGdk8h3h8uX1zrOit8wamiAxinu7Sxh65bRnqiapTIuD0IcmFwmoTMf6TETETcO0w09D6XzkZ7mgpUQJjUUqFmg== X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Mar 2017 10:02:32.1661 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0201MB0758 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3513 Lines: 98 On 17.3.2017 21:11, Moritz Fischer wrote: > This adds support for the Xilinx LogiCORE PR Decoupler > soft-ip that does decoupling of PR regions in the FPGA > fabric during partial reconfiguration. > > Signed-off-by: Moritz Fischer > Cc: Michal Simek > Cc: Sören Brinkmann > Cc: linux-kernel@vger.kernel.org > Cc: devicetree@vger.kernel.org > --- > Changes from v2: > - Added Michal's Signed-off-by btw: you forgot to add it above. :-) > - Added "xlnx,pr-decoupler" unversioned fallback > > Changes from v1: > - Added Michal as Co-Author since I pulled in some of his code > - Reworked clk handling in _remove() > - Pulled in Michal's version of show_enable(), ditched priv->enabled > > --- > drivers/fpga/Kconfig | 9 +++ > drivers/fpga/Makefile | 1 + > drivers/fpga/xilinx-pr-decoupler.c | 148 +++++++++++++++++++++++++++++++++++++ > 3 files changed, 158 insertions(+) > create mode 100644 drivers/fpga/xilinx-pr-decoupler.c > > diff --git a/drivers/fpga/Kconfig b/drivers/fpga/Kconfig > index ce861a2..ce0c91d 100644 > --- a/drivers/fpga/Kconfig > +++ b/drivers/fpga/Kconfig > @@ -63,6 +63,15 @@ config ALTERA_FREEZE_BRIDGE > isolate one region of the FPGA from the busses while that > region is being reprogrammed. > > +config XILINX_PR_DECOUPLER > + tristate "Xilinx LogiCORE PR Decoupler" > + depends on FPGA_BRIDGE > + help > + Say Y to enable drivers for Xilinx LogiCORE PR Decoupler. > + The PR Decoupler exists in the FPGA fabric to isolate one > + region of the FPGA from the busses while that region is > + being reprogrammed during partial reconfig. > + > endif # FPGA > > endmenu > diff --git a/drivers/fpga/Makefile b/drivers/fpga/Makefile > index 8df07bc..ba94b79 100644 > --- a/drivers/fpga/Makefile > +++ b/drivers/fpga/Makefile > @@ -14,6 +14,7 @@ obj-$(CONFIG_FPGA_MGR_ZYNQ_FPGA) += zynq-fpga.o > obj-$(CONFIG_FPGA_BRIDGE) += fpga-bridge.o > obj-$(CONFIG_SOCFPGA_FPGA_BRIDGE) += altera-hps2fpga.o altera-fpga2sdram.o > obj-$(CONFIG_ALTERA_FREEZE_BRIDGE) += altera-freeze-bridge.o > +obj-$(CONFIG_XILINX_PR_DECOUPLER) += xilinx-pr-decoupler.o > > # High Level Interfaces > obj-$(CONFIG_FPGA_REGION) += fpga-region.o > diff --git a/drivers/fpga/xilinx-pr-decoupler.c b/drivers/fpga/xilinx-pr-decoupler.c > new file mode 100644 > index 0000000..dd37b1c > --- /dev/null > +++ b/drivers/fpga/xilinx-pr-decoupler.c > @@ -0,0 +1,148 @@ > +/* > + * Copyright (c) 2017, National Instruments Corp. > + * Copyright (c) 2017, Xilix Inc > + * > + * FPGA Bridge Driver for the Xilinx LogiCORE Partial Reconfiguration > + * Decoupler IP Core. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; version 2 of the License. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > + > +#define CTRL_CMD_DECOUPLE BIT(0) > +#define CTRL_CMD_COUPLE ~BIT(0) for others - this was reported by 0-day testing system as a warning. M