Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S939361AbcKOCmr (ORCPT ); Mon, 14 Nov 2016 21:42:47 -0500 Received: from mail-dm3nam03on0061.outbound.protection.outlook.com ([104.47.41.61]:3520 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753369AbcKOCml (ORCPT ); Mon, 14 Nov 2016 21:42:41 -0500 Authentication-Results: spf=fail (sender IP is 66.35.236.236) smtp.mailfrom=opensource.altera.com; xilinx.com; dkim=pass (signature was verified) header.d=altera.onmicrosoft.com;xilinx.com; dmarc=none action=none header.from=opensource.altera.com;xilinx.com; dkim=pass (signature was verified) header.d=altera.onmicrosoft.com; X-IncomingTopHeaderMarker: OriginalChecksum:;UpperCasedChecksum:;SizeAsReceived:8633;Count:39 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=atull@opensource.altera.com; Date: Mon, 14 Nov 2016 20:42:19 -0600 From: atull X-X-Sender: atull@atull-VirtualBox To: Moritz Fischer CC: , , , , , Subject: Re: [PATCH 3/4] fpga mgr: zynq: Add support for encrypted bitstreams In-Reply-To: <20161107001326.7395-4-moritz.fischer@ettus.com> Message-ID: References: <20161107001326.7395-1-moritz.fischer@ettus.com> <20161107001326.7395-4-moritz.fischer@ettus.com> User-Agent: Alpine 2.10 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="8323329-833693773-1479176765=:6582" Content-ID: X-Originating-IP: [24.206.110.125] X-ClientProxiedBy: BLUPR11CA0067.namprd11.prod.outlook.com (10.141.30.35) To CY1PR03MB1518.namprd03.prod.outlook.com (10.163.17.24) X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1518;2:+hvaI051C1YZ8Fx5lTmyYoLgJ5ZlGcVx/aL2ZKwWmmIHvEDzk6nrLUKxPXNhrdz/swNMDLvrdRln8zzI8HKtik0GD6e55KJ98xXfo/cds6KzG6fX9sVkLh3ZpyaEdA9u+dgGrGD9aU5yDhMEimGGf459IHXJyZBaEOLPnRm11L8=;3:ALQGq17Wvnn14xX72SkTEf/cyDvv3Z5mQcNumEvYG8c09t5x+fMyRt/j7eA1ZQgI3DYhr3q61Cu8H0X9UhGHH2V24+ODOeHKNUnHqZEiq/URhEptPxZBDnwpt/158E6RkCuWlwr6ik8qg8qRyBJW4hvoXCIoqBI2NFDlQH3TUQQ=;25:59KlRQkHQ4cLQAGt+JmxHjU3yzCASAiOG/SzIcah2xn8N90q9idlslM8uaIM2OpYQCyT0NrZHMsXKgOigX/RaYjWnXSTmzgMWj6PvTtxnc+Y686zB+RyzgqhqNOni4UsWKw1PfdcQ/EZ72GME4IFzrReAgV0xlibUfy9OHxHtheQo3v6/MB/noCSuRzyXKcH27J6jUJoLLJ4nZg7j8Da2UI2MTUSAmZJ5wvyDXsrPJRVtoaIyqOyBnFvKuDy6bDA4fzSTmLj8ki5nnV1QUi6VZDqLy6LyiMezexrXqECWoqMQfJzvOLprP5yqEtoTWXym2QnOZaE6lkncxtE+IsDn1FSHGJc4lpHQ2mexpVVjR/h01orBfEs/M7q6mQiwSvBaZl3bADCZ6/diQ7c+k7n3XcqdnoXgpquypUmWdl28waA9JF0zWKDBpywA9n538wKrldxSIzWbdtEnKOtJHJGfA== X-MS-Office365-Filtering-Correlation-Id: 4117640d-30b6-4851-7c42-08d40d010ef4 X-Microsoft-Antispam-Untrusted: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:CY1PR03MB1518; X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1518;31:4mwyoCSC806WKD5L3C0iWtcZf03nkMkomaqfGGsq9g/Gr+SvlFDuWU7iHwP0KLCO0wJKowHWvQACHRzOsx8dL6a02MnytEjWMom9Gx5i4DJZ2qPcg5bgO5l+XVGoqJJsWQUF8bqeKFt73TM/j30Npu/EusE6J6W9eUQ4H9zd4EEW8Oboq3lLil6FusI7e3xwMrEuAdcmduIKKuCur2RQQ67xBJ6SssTnVsQl8dAV9RcrUQb3mzxOuqY7wj7N8VfmH7wjmskOQgK6J/i4/NfDIg==;20:CC/9STrd4DK8+N5WihHpugT1TjVzo1olFi+EOoovbq5d1VnP059eGHB7EMaaWTlxPmqG45L59xCaPLkKM/SnDdeYAaf1QI6C5QF9T8BgD8SlCjMi4yN30hkcUFNhk4gO628RzauVj57uo1TCZawVmqke2X5au6F544yue3TLm2o= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(80048183373757)(258649278758335)(192813158149592);UriScan:(9452136761055)(80048183373757)(258649278758335)(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6045074)(6060326)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6061324)(6046074);SRVR:CY1PR03MB1518;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1518;BCL:0;PCL:0;RULEID:(6060326)(6045074)(601004)(2401047)(8121501046)(13017025)(13023025)(5005006)(13024025)(13018025)(13015025)(10201501046)(3002001)(6055026)(6046074)(6061324);SRVR:BLUPR03MB152;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB152; X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1518;4:2yFA3l2sPZ9nF1WyipOM4/JL/jeVVWxxmsKRa9nr29nJKYDMh7oXh6xT9yBU6LfSzq5RwZZu0mCoBOSXnpPSnJPjOsPGmipWRojwhaabpIkanxMpOMuuYRpS9msimGFd1R32m4xqi+u0+0Jvaq7wnDFeSNrdnRmzyVtlN8mGcnNa+6MhnFMp0cpF/jAyQud7gxAs+teVCoOs+9jo7jFRIDpfSR240jMYuiGt55lcIEs7AJlN0IaRSL5D9SxAGseiXfOP9x0ybafWvHasnD2eQo76EZqMUJoPeppP7NEcFyAhEWsPDzWL+1IvP+yBexfqYOo2lQR+OKjlnecl4woImc1Tb+zQ5ES5P973y80ZgGsuvPtTNVckvftdkBSD4teJ/qci5vKLYBFD8dxdi0NIYExhq9Utow5P8nP99yRcwRwO/v2+PxcukTrxSeRQSt16PFrqI7rQUC4A8RVC6yTW7ZBoMJ6ryHAQKzcy0vv1bt9sTTKWyhsMYjrdCcwY1rEvD5Muh3cirSF2yKdn2xbCdNJz+y5DUVjo0wllPJxo37ceIo1vhMdnWLAIZ6EPTGJOWr56qYZi4LUzyAVGfNWizsEoqa3pE2+mXu7bPAycgQg= X-Forefront-PRVS: 012792EC17 X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(7916002)(189002)(199003)(24454002)(7736002)(7846002)(8666005)(2906002)(81166006)(4326007)(41446006)(54356999)(2476003)(60046009)(101416001)(81156014)(50986999)(33716001)(76176999)(6666003)(2950100002)(189998001)(42186005)(6916009)(4610100001)(8676002)(42882006)(83506001)(84326002)(105586002)(229853002)(68736007)(106356001)(512934002)(97736004)(66066001)(5660300001)(86362001)(77096005)(4001350100001)(5009310100001)(9686002)(305945005)(3846002)(6116002)(86152002)(92566002)(110136003)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR03MB1518;H:[10.0.2.15];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:0;LANG:en; X-Microsoft-Exchange-Diagnostics-untrusted: =?us-ascii?Q?1;CY1PR03MB1518;23:W02MVPoHUzajqqfrRGVaiqs5UOm/C3NKpJTh1EuZw?= =?us-ascii?Q?c/uu9CgTBZuiOCFpzs6g++ScAscWRo+t5eAyuoNNWAFV3U7oVz4Il55k8Abn?= =?us-ascii?Q?BYql86BeiHNvJPxyQnwRv6kg4FF98fpZEPFdECgUVNUtaoUtzoHgUGjw7YgV?= =?us-ascii?Q?Xxj/ZG+kaMpjzg+U9WzQHX77SLtNExloXOIgE2oraj+OwksWnMLm4mujZcOU?= =?us-ascii?Q?AH9AlRPOpDCLXra2oJGnzWLWKMeI8HDVAzU2EInrDUbsz+cHDKnBCcXHb8Uq?= =?us-ascii?Q?2ctfdNo5vXXlFyShX4lnQd/MNTZ5+7zfa5Eu9+Y/esourK4i2JQ+tc0GUAS4?= =?us-ascii?Q?S4/fStKD/VxNolsqRdVMHre+3CGYLK3BY5eawTp7MNnhNx1UC1koedx2pRmk?= =?us-ascii?Q?tDQHtcmSTXqqiq5LiCDP4hPJMZAtjpeTPVlIj8oPnIKdt6vgm+RdSHL8A+s1?= =?us-ascii?Q?NSdKKc7UG+evlzkdjdQwTR0RgmIgSXiM1xQmPaM/OLFAdqMco4292rQEfIul?= =?us-ascii?Q?6nRsF5vZGc+L8vEHAC1c9sdHhD3ZOVDPd9C4rhdgmhOw8sL4YTqYZ9PgY+BV?= =?us-ascii?Q?/V9BVbZTJrpw06Asir8AOdNZkpkxBg4I2Og9VPd2oMcPF5Q9JYRYQXPkrAdn?= =?us-ascii?Q?LrhSqsdVPiWFSb/Tpxh8wjU83lpPnBlisGVHTnoHiRY1Xm3Ue6gKMUN79t8C?= =?us-ascii?Q?XM/siQeBRnw3NkJKcdf2QC9UbEDWQ37vSjRJ4Epvd8lm73a9fUyos0CD8zL8?= =?us-ascii?Q?mizpDj6RtQ99RJaUT+/05lY4J0Vfs+evxpOMrnnLc/BEMbuk20WaeKj5foj1?= =?us-ascii?Q?i+fW+vipeoDE4mp1ptsm/sTAMglPdKsgOVkGppvvaIDSakh0HjvcHJ8rrFeB?= =?us-ascii?Q?Xcc2/uw8oz1CPwJRZjd4NGWEHNI6mY9qfqy61JV5JuTESbaQqKnn+JhGy+iF?= =?us-ascii?Q?0YNUT03l8dDitSv8FPjMuWdXNHGiToqNBxAXiGqVqQij0hmLv6X2WQhlkprH?= =?us-ascii?Q?svz1vE4b2djk4qePbuUAFF9r4NczuWlVm9dPfVnIjMWmqW0X+Z9QervtdpsE?= =?us-ascii?Q?8vHfqHBD10GQO7Vd2ivf8I0aRq1lJNoQp21JZM6a+O5sHFT1BK/deI5xllKw?= =?us-ascii?Q?FiUqVOBHCG0sfXpJj2oL3Crs4IPbYbBtAGvLnML/T3Tg/Isdon6dYx9F628N?= =?us-ascii?Q?CTIvriQq/om2jS6QlSgq3Cx1iCIuO8kpJ4J4x2CwR59rp1Bwz1MlX5yahtxd?= =?us-ascii?Q?q7wirIu1xc5eZr5ijQ=3D?= X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1518;6:+97ZoEMzrr/4CncgR+grhVntKStQaDbsHM8uKC6O4Adu1oM1Z754xE1GsQ9waMGeSYrLn/34D1roxOFEjnL+whOZGHHD1ly5+WCHz1xG/pzqV+TPazd0CmkZSJxyl6WSZddiscPIvRpunKbjZp0HT+tJwGUUMK+NIEAoQPkwbx7IfhTep9zJh9Jc/UUkt5GPd6ua/+iqaYBF+eZWYW5btFwQxYmkUnZg8Zj76LejH0ARtSvijdEnH2SMt9TWHcN67vu4zkvUP5BrX5eZmJj5/681eyAflD5Xv9mVopsB9r7BI8y6X2vTfeW4MpnKJiD+mOOP+FR6UsA8FVXGpY+sEZOYDmy/8J8Ajr4MuWxgDyojNK071s/zez/RyLmkX9Lp;5:TMKX5ZIvEiAdxqdMub3ealdmDEAReEQZeJNj9Sbk+RDRFZQO+/uJ4oWmd9QBEpll/TRiFG5aY/yf+YxuEqvbK393DT/Gm7/gV15pYpKUw/8dLmuiJwfLdYXaZD52DSk/nQMGMQZvSxgu93lz/fjHPA==;24:yX43VzFpP+9MZxiBRS+/ZzhVol6sV9QyzdlFoHcrtkNZR4nbeoRF75tmvDZo/eU4ksTI+GfV8EtXTplIdKEC65LWDYWvwOtHqSKMIDC8Wf4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics-untrusted: 1;CY1PR03MB1518;7:FbcJbyVx9D8hP5dlF/Jsq2iDSNYSnLvsa4vlMR6wm9ChLmjVYYKX+hBHeb9QOb9U8l6TEC2TLjJECxpyhjajh4wrBLRabrM+5MuulXE/RGjDavBz7YVL7LZWlxCu1KQpbJWtHpwMaCGXb76Slwc3KJstPNd/686j9CPRLK6LeA1+sDxqPbGM2NnzFqc7vvILiEYHKnT1Uqd+BgcgUqQUDaifkjePGh4iI5MCDfmCcjV7FGRzaSOP/IBGn+e9uFUI9ouGoNchVAoT3K3KACEFEQCqsUXnU/YmC99vichkbR+UcyPML9BTp2MtTMULiBbdmGbHLIudjRQ4JGRRisYqtZ7AQm7HV2x6RjfgZ3E9ytM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB1518 X-IncomingHeaderCount: 39 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: BN1AFFO11FD012.protection.gbl X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:66.35.236.236;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(1110001)(1109001)(339900001)(24454002)(189002)(199003)(6666003)(6916009)(5660300001)(2950100002)(42882006)(92566002)(33716001)(110136003)(626004)(229853002)(4610100001)(86362001)(84326002)(2476003)(305945005)(3720700001)(66066001)(85426001)(83506001)(86152002)(87936001)(2906002)(68736007)(41446006)(60046009)(4326007)(76176999)(50986999)(5009310100001)(7846002)(7736002)(9686002)(6070500001)(8666005)(189998001)(6116002)(4001350100001)(106466001)(54356999)(8676002)(956001)(3846002)(77096005)(512934002)(97736004)(356003)(81166006)(105606002)(92616002)(81156014)(90366008)(8936002)(7099028)(7059030);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR03MB152;H:sj-itexedge04.altera.priv.altera.com;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:0;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD012;1:u5wbFcYoB0feUi04qOvXjaexGtrEQnuCznCDtTni3w4f/qJL4UWJDJzRvJuhgkL8nJeNvQscyTKX/D8kWq10YzoTVpI5btGyBhDGa1r3i1k9yQENv498GTW8Fk13LlaxRYSCT2OA96tBIW6F2JS8yzpVf4L02ob+LYtsuc8XsBfFsZ+P1Va7pOVqHt3gu9mnr6PSuRkzEccxiVpjxjj9VopZoNVgUYbIpxH7jEhPKJLkoX/au5IU47miGgOWO0UU/icD6OK5XqcjTDRHItVnm595YPE4Ggrcg/x4wPFTmpm1JEFQbZ3VHyYiMMbsrIRCVP+AVir7U8eMXriXUDGD94AEQzFA1lqOf0Qj9HRYXon93hgat5poPBTOXljz58DgrBsWnVWc3XDeRvMxva1c6zIpXlcKfjjSHA/YNG9BkP9IiKlohqi2MVuizkymojWqfxdwZrC3HI8XI0Z6aB6pPZyf/8SeBMEKg2QGVXXM8k+X8s/DLWDEZdl9K6BUN/kLOYxlEb/oeBm+4hCn9X4ra2Nf+k8bt9eyzzkDG5DGtQVyLM2oB0+7V5VKFkUAfY7sAVHJ9KUZiZZPb6075BAkN31Ayj9b5o/+jWhXa1RW3Qw= X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB152;2:CLdlNuL+0W9ox4z3rrlDFvWXULFy9wiQh4C+7hx+JekjVpeJRB15uEvmEK74a1ljU3+1EEpz1sW25mNXFZTy+DJfTV1h38Bp6fFJHarj9AIXi5y3EbOwQ/5yim8p/ycB58X5SZ0FUD3vthDbQxsX240xkstzshEuosLbpeOL5tw=;3:kKbVh0ZoWIfQ34F3yObwiqUjjxkp5nh8Xaw4Fc0Uxrjyy3yRtfiMlfJZcTOzIIm/Jj2NeIt+TyAaEzmKwIPFFIQlpi9jCM6cJ+c79NRpSnzwWvtZfGUu66dBujjdEWWYSafi1oj8mTvyq3Rs0WvtRSXYoZgFOopLWEXofLOqQZJXSgIcyOPO6vx4qHdqOYm4ymLZqE1SA2oic8Zc7Yy0JvGpdrBwKCfrXMbTrScAiPmhK7G389c56s/y2Fe1ZvJ73leMIb28kPi82CN3ucnEditYVwmKZJB23iAfhALTABE= X-DkimResult-Test: Passed X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(3001016);SRVR:BLUPR03MB152; X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB152;25:1YVyODYVxpRpiycB/eExDeEV3vhr1iV6NVbMXMEID1DY+t1LvzANuhCe9RgkOmYNn7QpZcyRLsVDQiJmFhHFgK579ADNGN4EtVujEHYpTO/JjjohvcNiMJmbar+orUtVmM+x4yunB0Ev+UFkwtaf8ArZ//7Oxs6OdniHp7eDLZz3lqJP7z5wx57tK5CcaAkS+mLelfSmX63OpQHFCrRpM6ZT9voEh1z/yUHJKjdvV/6kqt7ZHfH0/3Q2jHXIhT+tZv/WbyayTM9ADKW8NX7Nza+qBK1MhmBr8LzM1XclqsXZKdxVCYTqNizR2cklAGBFMs6KGeNn6DxtQlbtxoKAgtKmnkbUB3rN3z5b7kg10MI2g7Pyu4E805B2vZh6R6g13bf8XGYP8fdQzRMCQqVJsOVlsSxCeCiO1obpzAEPAa6PbDM0FvyJwglMKUh8MNcDROQfrYc63KK7CsS+5PLLVA==;31:O6IzfkFZwIrak8ze2lgPs7z5Z6hJ6KskTxLsIWvVTODHn/bWYL4Bb/zZkXfxXdtAKT7DHqV6ad7T2507w0XyYZMD5XX7+gR8uZu6LTnRVN5CuOeCqCXJkFrPKLqV5jCVHFqbIlmY/3aR8vjmbpB/QrdOwaXEW9OJeQpz09vXEXB6zamVNs5Stc8TkuI8QbCZwcbomXl6l3vLCsG0vkZ0fbKY9b+P5NYYhjcFKPHTYwGBd+BgkMWLkNRSCG+JMi4fiDtUuNsf6fr/OCDkQHjG9dc+8v9Jt+10UsD51+z0qBo= X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB152;20:HHb8Ff1GC6GkGfZmbfxNYeYJXI8GrKE+QMZcbS2eM0LIsPBnU18tw/7Di4FWU6ItDqetp+YqX6mJXTq9PLhWr/3Vs8s/ZN0FHxIGwlX/6u/gKMMezGoVajA/D/9XN5LAKw7D07d65/rIrcsAAYAxwZAcUYdWzqqVc/4HjTyKDYM=;4:P7iWF8XTZy33YWyJDkFWmUJbhuIS9rWcVwynbZ1PauZHVfdyqS/PVR1QYM6aAgtmEUm6wNSxz6RsT221lLBb3iVWPS/mKTbtPtbSnhJV/VtNu3v8OteXKGhOxVZY8GQpmHaCbf8Yo477/laDx2IogLazUYqpd5NqOcr2DOtC2ImY0oFfx5ke6ZlVP9okq7vLDclKGy+yTQsz3ea5+EOvYckRWPOHc8zWuIMtf3F1mWfE1GhP2q5DmoKxE4/7DhuF1vPQroA/JyYaI/N8rPyGCcAcQio/mA4ebkKJedzAQ+DI2OdWE/+RMtB5BT7X8sKqS/hy2pKIYOKZJ+hAWMBEqWCTgtOIprK/t4/kxSzeCKS79wRfir+4pcsw/yqhYIxB/ZxOdmo/+IGg64GaFG+XdOo3/kMbAekWwae76kDDKWaGoBl603JJLUnST5jIbv8SZDuhqLy7+PwInyokdFe4ANPmoiBUvjt7nEo9WlTpzpe5xnkluCI38AOde0OxfX0mR3ozBJyf6ANf2imlHtJmUmkLivpfmKML8tvWBrFrFTio694+llXDsoDDCIGgBjlnCh43fITxi2DYB/HyHVNgISJOstuIUXzMUUkqc2+1ScA5qDKTnqpHOKRTD6jFaNnb9WmJnv6yNO5XkHOQY7NubFyiDL0WHaO7Dbzo/wSTvZbeRXeZ0yoV+mUve+epTXceWd7ophrzkv8S+8EyiwLy3Q== X-Forefront-PRVS: 012792EC17 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR03MB152;23:gAm/xcScCmRJ/Pfu/5yMB+YMAQ3pZQF+a+FGY7zuCh?= =?us-ascii?Q?70VSO//ogEg/6It2N0ifV0L1WyLenAqgWQImY++Ol/qhlm5fBMkeTSaL9rTV?= =?us-ascii?Q?wcMZzIMTDVA4rtK2x+YOw1k4y3FUb6gT8HQlilx8HGiFt5hcQYQiYWXjDIAj?= =?us-ascii?Q?r45vDAyHNyFSvR3l3M1rCfLTMMvH0FB+HuxKkwZgaF2skmKO9hGrVA15/ydx?= =?us-ascii?Q?+xhZtolv/rawwjXHum5PchXHktRp38q4HKd6WpYDWjGPkTJ+qnD9052B3RGs?= =?us-ascii?Q?UnyK3tVrPJsiNiK1a0mVCQDaYeqPXfwktlCBVGC2qGokwnU2ajN4vufItXH6?= =?us-ascii?Q?X+KWcWI7Lb/5Z/x340QC0gmhfWCoysjRiXlrkHyVEm85xFo6kVRqhodl42zs?= =?us-ascii?Q?v7/UDMKf/qrvOaqJlD9pKvnzHTMvB9HvVNoyKdFJfvDQMNCwFTnzLizDq7Uy?= =?us-ascii?Q?VdsDerPImPvqWEly2LmG5hnYaRMKZ+IEizcVeRZdB4aRV1xNJsl5q3DDLzdy?= =?us-ascii?Q?O8jvsJY0nLbwv7nSuCpIiN45bpnJ7NA5VQsBvzLomHNQWl0Fa8KyDGVeVVU9?= =?us-ascii?Q?wa3b2Z4XOhGDXrJCsH7G7kCBVrZ8o1hLDh/KRUKLmjwAfvRsxIvxi1gbywd6?= =?us-ascii?Q?Epg7wPgrSACh8D050SzmDTCwp+1Py7oDhv2BBtpobqk5TaDcG48c/TTY00al?= =?us-ascii?Q?5TN3E84XgHrql3muphMrKT93BxMPDbDqeL3qi5KwULAkduLg/0q4rZEutnXP?= =?us-ascii?Q?IKuA96Hm0Y+0Uqnu4IepiQpUj5g8EtiFA31CrNCWP7XWvLRiJxN23ZBUjWwm?= =?us-ascii?Q?LXAjUIDok7ymEkwjYm54PaGqB+N0IcuuDwkpJEhlnvXSr5/EFS9b8fQSHp08?= =?us-ascii?Q?Uq6tNOpTOnB4BmH1RjQIy6ucPNGOVemR4uxIH7xqoGj+WGr4Y55PS30yzpLd?= =?us-ascii?Q?YXA/UD1Dp0zLNaP8iGnXFmRFF9KKex+VhUhr5N8zpbORILGBgFGhLpbKUi3t?= =?us-ascii?Q?iVML76/MxZ0RjHsrkEV1fCMEVcFpdeuFwPdZnf3MQcC9iusu6nARwrlbS3Yc?= =?us-ascii?Q?oMsF7R49ZKssSUHmK0l8kAbZZeQX18zH/Cdy1DK102Wn//hWzVZ5Ilki5E/t?= =?us-ascii?Q?bWCSthuhX13ZOtnm1Izx5JTOJSJuUnwMmcgFXjeglIOoCBoEPilJPA/iXeTJ?= =?us-ascii?Q?yX7Dtj1ILepwsTuLAviW7U8jTlS4FeTZ6hjmO+MMfD4RKDnFuv0eFyYjZZ5a?= =?us-ascii?Q?b0tAme7XGmJN8uVMGXFWJoQgHv4gBgVhe7cO+U2JQyDrBp/OsIz8OzNyJoKh?= =?us-ascii?Q?DH+OkkP+jOcCd8yFfSuQXDWptgI3ciuao9MMedgGtQ8S3pK6DaxoEihzDIZF?= =?us-ascii?Q?+xxRZUUP0SjWKFF+cxKkKQQAxjoxzaeoG6tnUm1qUmbVlapO24fUMuEgU2Cc?= =?us-ascii?Q?Ku4ixgQBtXQToAJa0xOOTQYbtIbgQWDvvlyxJiW3PHd0ki31WX?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB152;6:q6n7YwdyKDMKjFBhsBa1SJ8yn+rQnVs8ovZobyd6l8Du9vdI7IULGdp/vNtkYBYyes0qGbtVmBtNNgzlKBjtm2qMkbv+IO/b4M51ng94qAmYQdbpZZ7KC0gW6qc2RzQRaQOyBTIpui1rF0zrbJsKURpi+GhvNMuNRMbH8tl+YTCNrmUtFtgR6/f8F9tiTcCAPJsYf3rt5YU/4/oSyXQ/PLrVr0b39In0/CblBKmvuVHZDSj+de6HOQ0B6uyY/zMxtlmioc9uMN/tFjK69wBygV1P6Gwiz/OfWjfiCiUZOQT+Zh2OO4Zl5Xr/TQYoY180j8pBcIR/vJ1+q7zgcFYgT5mgyQlLkxy8eBEWvSEexTW4r8ENo2bCX3yx2PSjr4Po;5:aNvEsb1xnVxbi5QpmSaqNuAnuFQ4OkRkrlxIQEbMbUk+UVZzB9FZvkerLbdE4RTH85o96fX/773YHFMckdLR5gJAHfzvaR3IVZTr4VT9dllPcNrQzXayj69ygZueWdRQWxPbehX/Ee2Wa3hkUmZvNw==;24:z7DlggWyoVf6fgx6Q8ASwNo68+4U6HOxnTRt1e8/WNDvzq+gSHBpoM1eKwKiXU42SwZ6rBMfI9Ipfytf+yXKSt0PXhvOqZy4xXZDQRwvDZM= X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB152;7:hxVb8zDwEyIYXRy6x/xbwD67TwCzaHY2EUAIOuHCZYj8Z/B9jUJiov4XPS3hqogVipSlJLFRONJ/xZUXcXOwUTMUkPrYNAtY4vWhjISpKcXXbqWMmy8YAX/w7nCcIiVDeewG+BMDuwR0smHadOjUHZXrGDT2b3BCoM7yDP+j7mL0W2+80HxaW0YGfxVgvqAlRnVvS8AOUP2rsxXjVwCFB+YKHiXIFIx/shjmG19ZnPV5qZSo00vYidK6kSkIE1YF/5fI/EumsJV302G0ND0WiX2s6s5h2Hw1MAFODZJWDHlii6bakHaLi1dU4EpFvZfPfA1wzYTa54z4tFdiNFt+ug== X-OriginatorOrg: opensource.altera.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2016 02:42:35.8434 (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.236];Helo=[sj-itexedge04.altera.priv.altera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR03MB152 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5755 Lines: 157 --8323329-833693773-1479176765=:6582 Content-Type: text/plain; charset="ISO-8859-15" Content-Transfer-Encoding: 8BIT Content-ID: On Mon, 7 Nov 2016, Moritz Fischer wrote: Hi Moritz, This looks good. Probably the socfpga changes could get folded into this patch (was patch 4/4) unless you thought of a reason not to (after that patch is changed to see if the MSEL bits are set to enable decrypt). There also could be a uncompress cap as well since cyclone 5 supports both compressed and encrypted images and has bits in the MSEL for them (I mentioned separately in my comments about patch 4/4). For the Zynq, does the encrypt bit denote a requirement that the part will only take an encrypted image or is it an option that it supports? IIRC (and my brain is currently pretty tired), if the MSEL for Cyclone5 is set for encryption, the bitsream must be encrypted (same for compress). That might change the meaning of this stuff a bit but probably doesn't necessitate a change in the implementation. It also makes the sysfs that much more useful as it allows the users to know what type of image they are required to provide. Thanks, Alan > Add new flag FPGA_MGR_DECRYPT_BISTREAM as well as a matching > capability FPGA_MGR_CAP_DECRYPT to allow for on-the-fly > decryption of an encrypted bitstream. > > If the system is not booted in secure mode AES & HMAC units > are disabled by the boot ROM, therefore the capability > is not available. > > Signed-off-by: Moritz Fischer > Cc: Alan Tull > Cc: Michal Simek > Cc: S?ren Brinkmann > Cc: linux-kernel@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > --- > drivers/fpga/fpga-mgr.c | 7 +++++++ > drivers/fpga/zynq-fpga.c | 21 +++++++++++++++++++-- > include/linux/fpga/fpga-mgr.h | 2 ++ > 3 files changed, 28 insertions(+), 2 deletions(-) > > diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c > index 98230b7..e4d08e1 100644 > --- a/drivers/fpga/fpga-mgr.c > +++ b/drivers/fpga/fpga-mgr.c > @@ -61,6 +61,12 @@ int fpga_mgr_buf_load(struct fpga_manager *mgr, u32 flags, const char *buf, > return -ENOTSUPP; > } > > + if (flags & FPGA_MGR_DECRYPT_BITSTREAM && > + !fpga_mgr_has_cap(FPGA_MGR_CAP_DECRYPT, mgr->caps)) { > + dev_err(dev, "Bitstream decryption not supported\n"); > + return -ENOTSUPP; > + } > + > /* > * Call the low level driver's write_init function. This will do the > * device-specific things to get the FPGA into the state where it is > @@ -170,6 +176,7 @@ static const char * const state_str[] = { > static const char * const cap_str[] = { > [FPGA_MGR_CAP_FULL_RECONF] = "Full reconfiguration", > [FPGA_MGR_CAP_PARTIAL_RECONF] = "Partial reconfiguration", > + [FPGA_MGR_CAP_DECRYPT] = "Decrypt bitstream on the fly", > }; > > static ssize_t name_show(struct device *dev, > diff --git a/drivers/fpga/zynq-fpga.c b/drivers/fpga/zynq-fpga.c > index 1d37ff0..0aa4705 100644 > --- a/drivers/fpga/zynq-fpga.c > +++ b/drivers/fpga/zynq-fpga.c > @@ -71,6 +71,10 @@ > #define CTRL_PCAP_PR_MASK BIT(27) > /* Enable PCAP */ > #define CTRL_PCAP_MODE_MASK BIT(26) > +/* Needed to reduce clock rate for secure config */ > +#define CTRL_PCAP_RATE_EN_MASK BIT(25) > +/* System booted in secure mode */ > +#define CTRL_SEC_EN_MASK BIT(7) > > /* Miscellaneous Control Register bit definitions */ > /* Internal PCAP loopback */ > @@ -252,12 +256,20 @@ static int zynq_fpga_ops_write_init(struct fpga_manager *mgr, u32 flags, > > /* set configuration register with following options: > * - enable PCAP interface > - * - set throughput for maximum speed > + * - set throughput for maximum speed (if we're not decrypting) > * - set CPU in user mode > */ > ctrl = zynq_fpga_read(priv, CTRL_OFFSET); > - zynq_fpga_write(priv, CTRL_OFFSET, > + if (flags & FPGA_MGR_DECRYPT_BITSTREAM) { > + zynq_fpga_write(priv, CTRL_OFFSET, > + (CTRL_PCAP_PR_MASK | CTRL_PCAP_MODE_MASK | > + CTRL_PCAP_RATE_EN_MASK | ctrl)); > + > + } else { > + ctrl &= ~CTRL_PCAP_RATE_EN_MASK; > + zynq_fpga_write(priv, CTRL_OFFSET, > (CTRL_PCAP_PR_MASK | CTRL_PCAP_MODE_MASK | ctrl)); > + } > > /* check that we have room in the command queue */ > status = zynq_fpga_read(priv, STATUS_OFFSET); > @@ -412,6 +424,7 @@ static int zynq_fpga_probe(struct platform_device *pdev) > struct resource *res; > fpga_mgr_cap_mask_t caps; > int err; > + u32 tmp; > > priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); > if (!priv) > @@ -466,6 +479,10 @@ static int zynq_fpga_probe(struct platform_device *pdev) > fpga_mgr_cap_set(FPGA_MGR_CAP_FULL_RECONF, caps); > fpga_mgr_cap_set(FPGA_MGR_CAP_PARTIAL_RECONF, caps); > > + /* only works if we booted in secure mode */ > + tmp = zynq_fpga_read(priv, CTRL_OFFSET); > + if (tmp & CTRL_SEC_EN_MASK) > + fpga_mgr_cap_set(FPGA_MGR_CAP_DECRYPT, caps); > > err = fpga_mgr_register(dev, "Xilinx Zynq FPGA Manager", > &zynq_fpga_ops, caps, priv); > diff --git a/include/linux/fpga/fpga-mgr.h b/include/linux/fpga/fpga-mgr.h > index 9bb96a5..aabe258 100644 > --- a/include/linux/fpga/fpga-mgr.h > +++ b/include/linux/fpga/fpga-mgr.h > @@ -68,10 +68,12 @@ enum fpga_mgr_states { > */ > #define FPGA_MGR_PARTIAL_RECONFIG BIT(0) > #define FPGA_MGR_FULL_RECONFIG BIT(1) > +#define FPGA_MGR_DECRYPT_BITSTREAM BIT(2) > > enum fpga_mgr_capability { > FPGA_MGR_CAP_PARTIAL_RECONF, > FPGA_MGR_CAP_FULL_RECONF, > + FPGA_MGR_CAP_DECRYPT, > > /* last capability type for creation of the capabilities mask */ > FPGA_MGR_CAP_END, > -- > 2.10.0 > > --8323329-833693773-1479176765=:6582--