From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753113AbcGZBQn (ORCPT ); Mon, 25 Jul 2016 21:16:43 -0400 Received: from eu-smtp-delivery-143.mimecast.com ([146.101.78.143]:22175 "EHLO eu-smtp-delivery-143.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753129AbcGZBQk convert rfc822-to-8bit (ORCPT ); Mon, 25 Jul 2016 21:16:40 -0400 Date: Tue, 26 Jul 2016 09:16:25 +0800 From: Dennis Chen To: Lorenzo Pieralisi CC: , Will Deacon , Marc Zyngier , Robin Murphy , Joerg Roedel , "Rafael J. Wysocki" , Tomasz Nowicki , Hanjun Guo , "Jon Masters" , Sinan Kaya , , , , , Subject: Re: [RFC PATCH v3 00/13] ACPI IORT ARM SMMU v3 support Message-ID: <20160726011623.GA596@arm.com> References: <1469013815-24380-1-git-send-email-lorenzo.pieralisi@arm.com> <20160725055330.GA21004@arm.com> <20160725083641.GA20044@red-moon> MIME-Version: 1.0 In-Reply-To: <20160725083641.GA20044@red-moon> User-Agent: Mutt/1.5.24 (2015-08-30) X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140;IPV:CAL;SCL:-1;CTRY:GB;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(209900001)(24454002)(189002)(199003)(189998001)(77096005)(2906002)(4001350100001)(83506001)(110136002)(50986999)(15975445007)(23726003)(76176999)(54356999)(1076002)(26826002)(19580395003)(4326007)(50466002)(33656002)(586003)(86362001)(104016004)(46406003)(6806005)(2950100001)(106466001)(7696003)(5003600100003)(7846002)(8936002)(305945005)(356003)(5890100001)(92566002)(87936001)(97756001)(36756003)(8676002)(246002)(15395725005)(47776003)(31430400001)(18370500001)(217873001)(6606295002);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR08MB0969;H:nebula.arm.com;FPR:;SPF:Pass;PTR:fw-tnat.cambridge.arm.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM1FFO11FD033;1:4hBrVyNrCvHqJeP3cMotM19LvM66BruPXzhxWSQ8U1lZ/Fb3Okkhvo0eo/2yx0cOXtIFIKFGvW30YcJBm+qa3FwXsypFWgQ4hOb7IDejGMWcncRviVCmzIk38PIITYmQnNKqQv3yW3pJGGy32+B9Oy0c1ZvAm+ObfR6g1S5QCoY6I2Q9/yc5Q70RZkhUHqo+LN0yHIb+90qwRIJURhUF6oJ8O9M4o2NwFsP+b5VK4yjT7MKnuXo/PbC2I4v09qOsG/zqOOuvciay6PaTlXe0DC1McIxNsVD4O4seNwvPHH5o6zKBTnvAPivQEJnRTuP/kSmxXRlJwL23AiOwUK6vnxyFnJR2aBkhcWW3NoUg36uQVPoL3jRvI4a6q1yMEaATiO6oBvsFWw4AkNeJrkyPnjj/fnEnOREkY+3ekqRJyVG4s2/fqT4KLeHAokqXlNfT1tC5fOsrmt0oPStbS23Y1GbZ1K1QRtGb5iKDS7rahuUscHP48rdarehtN65+Z03XwAcfAR1BjQ67mMSbuz9t/W65HdOpAQNYo9TlJ6QtAcdElJBK8mMJCkNAwgaweSUEGHn2t2bvZNiCxUpzE7DEnkrC/vubyYUQRlLHluirHhM= X-MS-Office365-Filtering-Correlation-Id: f3ecfc0a-61a0-4afa-ff9e-08d3b4f27aac X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB0969;2:Su00toCM0dIgVSylJq6PmpAkB9zz/nkeaOF4pG5Em1CkxE/5JT9jI5Oc42/9aCjyxeP57l5F9kM1V51Z8WOpJQDEdXBUkcyPSA/MkKqAmpXREhXRRCZDwoPZQRYrZYsy/m5yWLHCUpDXlFH2HE9+RzS1LUU+jyWBYXALeMO9uVCf38si5lT8VokynfZo4dvc;3:tpdqcR5eNIAeXMzCDwU4Kt+1XWRYidAPZtga002tQTnbue3Zo16na3lvTSsDqB7GVWEv/n7GSOE2kxOROvrmjOXv4iS29DW7gDFzBuGexPtLz//KFndGh+8tyjCFDNQs+bNGr5fSDlRIrU55YAVJTASvOYnTg+LjxgcsVr9igqbA7GHFBDjq+DVGNIyxlnEUxxlAZl5fPL+x5EBLpTivFOxsIwanGfHTx69O90M5om3iTDyQGSt6lrDBrodGqjWBQ7JWQ44cOOkmLj2eiBBQsg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:HE1PR08MB0969; X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB0969;25:zzGdWx8nueIL/TEAZQxFmRHJeRu7qrqGHsoUoYiJli6vNa7rzV+Pzz8pl4ADelOi3HTDX3QzbOjsj3JsEUDlrXOL94SHsnNHhXSmPx/lCGhGaNG8baQ4AmLYW0wxwRWOvSOlt8cwuAl4pLjMI5IlWXJDdGr0tZVHtyGypJk/6CNd4ZHjRdH9wUH3fkbfuy/Sf406jLGHYKK50VDTD2QL+tomF72dXcJoJdCjqdbHdoyFLOpMDYEiXBeSDMP0sN5yEUVyDFVvl6k42HfCwkiyjC5sMT6b9YILjw6XOnQ5mXm5d1KZx6sIdG59AwGuffbVhwP+iaz5BqmSveXwveCP9LXupwO2GBDUpiG9E+t/I0wx5PvkIL+F1Aj7hdB004TwwFI7cfGuvN4UOQ0X/HinVPsMWIzN8ievMAAjKsew/m2dHjdGap0ApxtGQzC5KXEzJjVK8ItpQ/3vtiUrRQ9P1lblZEhbGUP5uxm34sBC22dwQC00GxLcawXmJTRrwtQ7EJdgxSAP+XHYt38S/GvIRRNkKjudtSMZC/Lfw0layy6AZFq/xSlbT7vBvJDFeKbmVjEt1Oir2XsGEDqsD5DcaumKQDgUlmjeHePKfHrarSbffU533x+Dk6+7dZotAUtQoEHiB7IcmiZFss9wgUlNK4iHSh4icr3LymEguMgB0LRN+eKxvnxSljrbuZVMUH8RflV9XyiDJO5//dH4QUEFyotyducI23H1Fmj1BoSuYhXY8IvX4EB/dGmbqWtCnFwdWe2QB0/HOEYfzFwHD1m6/mUrBSddsbzf9itIBv/0JtxZMljM81pKrHzhnS//MdZ+PdcUWg+Q6TJn7Ka0Ds17cBywoB/YknBMNiXl3JzF16c0V+OGyOiIVGSaO8Umz4z6J+AWI1xrpD8Yg0XL3vsa8g== X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB0969;31:t7JOVFSt+jhNQQgGT8gi9FbIStzf3dRyXif8sTYmEUHR8ojuAyzMKPeFWAfP9+ts6Ozm4Ojnug3eQFyPc/f4xOuAjljavU3o37lKwxOdnnN81Iyuca51iF2JfH3oyIdRwFPs0kuoHwrjZwKW3luPLbm0aLrdkAWoDFCZUXlpr/aYfFG+/eAjHEMxP6o1mX5Vc+hTr6+u8/eH0ntRY6e7CQ==;20:dUNR9eJajIhTTs0uaPL4WC41J6oFRz5AShkJxgYcil7hIias924Lq10x/lKWlZmGctBgW9R9N6sw6pnQCQT7DxiY/LLmHyprMCLRc8R821sUY5xrRXnq5w2HpntAI8kImBahl3ctQeg6KW1+M6liehpKpFCX7STYYbMVnVTJlNBgbaYKhZuoY0ofSLnaDe180e0TGTQtPJxiQ5uYXARVoYFL8XSJ5ywYhz1JynzztD0Zvq/MS1KIDalL8f8cbT6j NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917)(84791874153150); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13023025)(13024025)(13020025)(13013025)(5005006)(8121501046)(10201501046)(3002001)(6055026);SRVR:HE1PR08MB0969;BCL:0;PCL:0;RULEID:;SRVR:HE1PR08MB0969; X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB0969;4:qy57EPy7RrXql3yCL3RlxQChYEDQfIRwyUf9HJSNraRuyLtE9Mex2T2qpEcbQM8fhFt36zZdAbrw+nQy5arlohRp6m72myDU6/+4cXSnbd1zTywN60RetANPfqUDN3AboMpUQBJjixth57/7qS5Nyza8dc34ZbWtkTDmAgbzdl1+ZHhboxv5Ud46khCcn4emG06rM46bTAwnSQ5nkHmbiQgPB4h/o8KvcW4ew35H4jZ/dKT1A8VurPMBfGyHe6YHV7TH7G6S0vvP0MtiX86UwfNrsrBVnktue9qolHvJn9vurLfQ7dYcsOT1LZKWQJ6Ij3QdvcxsEl9XZwptpQxqC4Ks3tsLhHLEwXix+wA3IDTsEOAe3NUAZHoB8xYoI4bsGFBKHslNDPAroIwS6c+anZTsF6v71yqnjMDaNzuXLlZ8MkpJ1AIjdamhS6zeVN5h6mWLClcqIRu7cVS+wuVTU/ykNCXxCDclm/qxMyFllNUR4g1NnhAomDwdWhIyo6jxGHhWIzzHzWiZ1CRqvt/fOFGWeZs7THrEtavxhmrhzPw= X-Forefront-PRVS: 00159D1518 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR08MB0969;23:Qajbr6ju9S88VLCym1My9k2tNFJlUCkPw/puBBYgZ?= =?us-ascii?Q?f3JRTVQHT8Bjlxo9/3rUysY5hAxqdJJt18Sxi/8faGVlK7dkySban5Xhdk8e?= =?us-ascii?Q?b+0ySZMN5+MLX8MclzfLxpI3dVGB3ZqxPdJ6R3EflniCnKZRDL3Fh+FGVRKn?= =?us-ascii?Q?1Xah13GN8NJg5h30qocT/0zOvqewx4FadMnLEDBHGwzhz6H9X+SH0R/Qi4lX?= =?us-ascii?Q?I6td7qLHcDkTJXKQTnjH1/GMK0DUGdDhAsznixxXbSR2OvbI4YXeJ3g7kAWO?= =?us-ascii?Q?ADArCyJGGXK+s4CMuNd7vOEE6yhCYYwF9ZaUw9sFWFbpp/3IanUZxfS3vb6Y?= =?us-ascii?Q?krCGDmZFRT8Ifyb03nZOJGHbALNSIh/JRCWs1tTndKlrK+bcxYGfyGPBSNqI?= =?us-ascii?Q?rcORSC/DHkyYS7A8Rq/1ekgm9ku0PUKLrCTEI/HxUas6YtZrGAE0VYz4/RmW?= =?us-ascii?Q?+q7dBJMAde6FASlLVcqhesmHJS2HXS3u8RV+d3AENaHqLNA+HWbIuiWqYPXl?= =?us-ascii?Q?+s8vwzo18sV1IzDbLIBIsZH7ewyBiaXbvYkHJrBwU3Gbh5tiWGMkzrbzP2Bc?= =?us-ascii?Q?9ZnNA4xWbIG8ty3JwT20rXLsqEnyhLJswfyXYzmL+nwM7jJdMrYzVn5KuEuH?= =?us-ascii?Q?o81WW4bE/6FLMCcRfR1o6zEZ9mW4HA6bG87BLJVLp2UXLAzYs4wMYQ+LyOXQ?= =?us-ascii?Q?VFNrVI4P62142P88BGjZ94HAGTpv3B+8nHD9Lgzr7yHYpjh+T8BO1cl87EH9?= =?us-ascii?Q?gnfyCbYj+YX8nboQoXQ8vM0qT2Epv+kHeGadhkTx8gWz/APR4olJBLRbLJVt?= =?us-ascii?Q?6HflCqS9SSLO3jjoGHlIrk8tEIBmV+7dWpwIOrdwtI5E1hKtoURkIEvQjCk3?= =?us-ascii?Q?nlS3F5HSDk3Z0UgCRm16Y40ywxJAWPPxW9b4AHKtObeqL766Y/vcCktazAMi?= =?us-ascii?Q?08Rz5Gr3vpYnlLMuO3BgnSxFPjXPPRcl2oTWVsbz+erXKJRYwhg0C6ijl417?= =?us-ascii?Q?g31NsKmnJVfAxMO3F8o0AdAND5x6HvN4I+RuqXFebGYlMZlgJHma4iY8f0mM?= =?us-ascii?Q?g7fSm/oPKIfp/B3GfuH2Sdsl2ZrlNQ2sW9h9WNsnv9p7pdHS+iOSPlkb+hJO?= =?us-ascii?Q?2lfHeJAs44hxQzjawnT6ToQ9EFTEh74bY0oo6oEq07q9IqT2yLtCzxTEyPoA?= =?us-ascii?Q?jGbSW49F5LBa8gGigpKRcSoo/ZNpVsqt+wTLdpqbA4JD4dZ2Z3Fmb5ExvNmI?= =?us-ascii?Q?ne6O82QTWFc7NIwETqmV5gCbA3VGtCMMyjU7X4G?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB0969;6:TJjHG7BLh1IocETK8grvIboSTREQhlNYuxkTk36Bu4uSgbpP/rwsjF9befyN9VAs2MXshG5V7DWYQZWSzPejSrWSqYllih6GyFQsU1KNdCebT+1FKqTGaQ61Ya+KCAAGKBQfH0/NHevXJxDLeGm/zMRleb/sqUpXfbeU3sbCUhgb9CJq68TnySTEGEFjdjewZ4Gir63ZdE9O8meQRiRGdt470Tk3qs5JOO2hFMsz51GXLZ/rfGsPkrMPy9C3rINk8EAsuvOrT82qUAObb7dOEY0KPgRVpkKjuR/RaMmJCV2uNQtGLW+vHY9+y2Fj4GWK7JW94U0D6CDqBaLIiPaB/w==;5:POvgjj098rIq0rtYYi1plzoz0W4VKHFTRsC8s584c3CDgEvCeD3EJhLZmbMs5hc0UTgnkfLE4Wz0yRI4igNz/KYksLPH6OMRV/Aw15/D1GQnjxsgbOlwe0CPLh8mlZ9wQojnnttK3wG9TmzWWh3xxQ==;24:2KBS4tb5SjC2P5414REcYOKIWc/9C+0UjGpuotevc8jwwAYcAifFn+m2rlrm+5KwSfj6ZLU9C6LOlNuo08qs8S2tsr+Jo9qVyxG6MdanGG0=;7:qCDnHyJ/QSD2+obWgeFfkgv2drZ1SBulEdwPcRyuavRdnTY1xTjU5PokZ90aqJB1v4HU9kny5JESJWrY7ML5J8tD+bX7OdYudaXBapHveqpr8agfMTignPVI9uA4wro1Rju5PwH5etwblmvtxQi2WG/C8OpqmQ9/4N7sWQBS+XeVWNuk4CmphjQuALx/KnqYYstPbp0lOen26/WkGwSNFI6UlKSeSMgFnyFsq5UR48sRJAHPlEhx5Q7Sa2FEI7Ef SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR08MB0969;20:qHEb21VPLynuaPeZ0hmZb0A4VOwMojvq2ljV+OSEFVxy1WbzfeEe5tWnpnYKsRY50HRoNSvkticJTeduPzOFEoGAXqFJ5obDo+b4NhQuYQHcsKklD/2XSirPw/gZgM3dC+wR8tlEQAKnFaPe/SyVB9UzlEGr2Tjx+k0voy31px0= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2016 01:16:32.0119 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[217.140.96.140];Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR08MB0969 X-MC-Unique: wSoax6ztOZSfE4AoRRiOpg-1 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: 8BIT Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jul 25, 2016 at 09:36:41AM +0100, Lorenzo Pieralisi wrote: > On Mon, Jul 25, 2016 at 01:53:32PM +0800, Dennis Chen wrote: > > Hi > > On Wed, Jul 20, 2016 at 12:23:22PM +0100, Lorenzo Pieralisi wrote: > > > This RFC patch series is v3 of a previous posting: > > > > > > https://lkml.org/lkml/2016/6/7/523 > > > > > > v2 -> v3 > > > - Rebased on top of dependencies series [1][2][3](v4.7-rc3) > > > - Added back reliance on ACPI early probing infrastructure > > > - Patch[1-3] merged through other dependent series > > > - Added back IOMMU fwnode generalization > > > - Move SMMU v3 static functions configuration to IORT code > > > - Implemented generic IOMMU fwspec API > > > - Added code to implement fwnode platform device look-up > > > > > > v1 -> v2: > > > - Rebased on top of dependencies series [1][2][3](v4.7-rc1) > > > - Removed IOMMU fwnode generalization > > > - Implemented ARM SMMU v3 ACPI probing instead of ARM SMMU v2 > > > owing to patch series dependencies [1] > > > - Moved platform device creation logic to IORT code to > > > generalize its usage for ARM SMMU v1-v2-v3 components > > > - Removed reliance on ACPI early device probing > > > - Created IORT specific iommu_xlate() translation hook leaving > > > OF code unchanged according to v1 reviews > > > > > > The ACPI IORT table provides information that allows instantiating > > > ARM SMMU devices and carrying out id mappings between components on > > > ARM based systems (devices, IOMMUs, interrupt controllers). > > > > > > http://infocenter.arm.com/help/topic/com.arm.doc.den0049b/DEN0049B_IO_Remapping_Table.pdf > > > > > > Building on basic IORT support, available through [2]: > > > > > > this patchset enables ARM SMMU v3 support on ACPI systems. > > > > > > Most of the code is aimed at building the required generic ACPI > > > infrastructure to create and enable IOMMU components and to bring > > > the IOMMU infrastructure for ACPI on par with DT, which is going to > > > make future ARM SMMU components easier to integrate. > > > > > > PATCH (1) adds a FWNODE_IOMMU type to the struct fwnode_handle type. > > > It is required to attach a fwnode identifier to platform > > > devices allocated/detected through IORT tables entries; > > > IOMMU devices have to have an identifier to look them up > > > eg IOMMU core layer carrying out id translation. This can be > > > done through a fwnode_handle (ie IOMMU platform devices created > > > out of IORT tables are not ACPI devices hence they can't be > > > allocated as such, otherwise they would have a fwnode_handle of > > > type FWNODE_ACPI). This patch requires discussion and it is key > > > to the RFC. > > > > > > PATCH (2) makes use of the ACPI early probing API to add a linker script > > > section for probing devices via IORT ACPI kernel code. > > > > > > PATCH (3) provides IORT support for registering IOMMU IORT node through > > > their fwnode handle. > > > > > > PATCH (4) implements core code fwnode based platform devices look-up. > > > > > > PATCH (5) extends iommu_fwspec so that it can be used on ACPI based > > > system by creating a generic IOMMU fwspec kernel layer. > > > > > > PATCH (6) implements the of_dma_configure() API in ACPI world - > > > acpi_dma_configure() - and patches PCI and ACPI core code to > > > start making use of it. > > > > > > PATCH (7) provides an IORT function to detect existence of specific type > > > of IORT components. > > > > > > PATCH (8) creates the kernel infrastructure required to create ARM SMMU > > > platform devices for IORT nodes. > > > > > > PATCH (9) refactors the ARM SMMU v3 driver so that the init functions are > > > split in a way that groups together code that probes through DT > > > and code that carries out HW registers FW agnostic probing, in > > > preparation for adding the ACPI probing path. > > > > > > PATCH (10) rework ARM SMMU v3 platform driver registration to make it work > > > on ACPI systems. > > > > > > PATCH (11) Building on patch (8), it adds ARM SMMU v3 IORT IOMMU > > > operations to create and probe ARM SMMU v3 components. > > > > > > PATCH (12) Extend the IORT iort_node_map_rid() to work on a type mask > > > instead of a single type so that the translation API can > > > be used on a range of components. > > > > > > PATCH (13) provides IORT infrastructure to carry out IOMMU configuration > > > for devices and hook it up to the previously introduced ACPI > > > DMA configure API. > > > > > > This patchset is built on top and depends on these three patch series: > > > > > > [1] R.Murphy "Generic DT bindings for PCI and ARM SMMU v3" v4 > > > https://marc.info/?l=devicetree&m=146739193215518&w=2 > > > > > > [2] T.Nowicki "Introduce ACPI world to ITS irqchip" v7 > > > https://marc.info/?l=linux-arm-kernel&m=146642080022289&w=2 > > > > > > [3] T.Nowicki "Support for ARM64 ACPI based PCI host controller" v8 > > > http://marc.info/?l=linux-acpi&m=146462129816292&w=2 > > > > > > and is provided for early review/testing purposes here: > > > > > > git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git acpi/iort-smmu-v3i > > > > > I thought I can got all the 13 patches applied with the above git > > tree, but I can't find any ACPI related stuff after I cloned the git > > repos to my local machine, am I missing something here? > > Have you pulled the acpi/iort-smmu-v3 branch ? > Hello Lorenzo, forgive my carelessness missing the additional checkout of that branch. Thanks and have a nice day :) > > Thanks, > Lorenzo >