From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.4 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F18BBC433DF for ; Sat, 13 Jun 2020 14:31:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CD3B02080D for ; Sat, 13 Jun 2020 14:31:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="v1phM+bu" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726437AbgFMObX (ORCPT ); Sat, 13 Jun 2020 10:31:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50036 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726452AbgFMObT (ORCPT ); Sat, 13 Jun 2020 10:31:19 -0400 Received: from mail-pf1-x444.google.com (mail-pf1-x444.google.com [IPv6:2607:f8b0:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DBF08C03E96F for ; Sat, 13 Jun 2020 07:31:17 -0700 (PDT) Received: by mail-pf1-x444.google.com with SMTP id 23so5681206pfw.10 for ; Sat, 13 Jun 2020 07:31:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=nwRd2enOMG4jt4Uk5EPLoc0tMcEuCb0goMle7pInqTY=; b=v1phM+buXJcNsgCbhY7OeaSaTKaeubsTt31NEtds009yu+XOUKHTvTIJCV+/7YcP/V RRB6uQe1xI40VJj/AJw4XoZNbMCTxwJ8ojDQMjIglpRrRQfwOBEgZZHV9o2ll7pAC6EF Twqy38hGUe+MkCIEi+6Hs7RN/CkIefm4ZE/k1NI45g2U9FYwv/xQDiF1rN5GZ1vjx0QH 1I0elXulDV4eaWIGPMLNX06hEsLSxXUX2ukHpdfI47T9c2QAPXzzsZFSmwzz03GwHY/U 8k624e+htQjxxyypyCK+/cSTD96gRrZIuOHcPlPDOsQXuCD+CW492fDB2SN9XKS4xal7 aHqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=nwRd2enOMG4jt4Uk5EPLoc0tMcEuCb0goMle7pInqTY=; b=dcmGmaE5Gv9wAeUtO2/eYZYhPy520JTc755zVHV18axwitzFvGTtQMUoek5dMg787K P3JCc67ggYZ7ablDzu1GULm+ermiqvWIapewh4gemVCR3FR/5p9FPYXP7CmxhBylEhZS FNWlmM7GDEH3HMmGZOkS159oem0OLx8+v3Qj0qSU27EIe4XTjRTX/AjMPwu2KG0h3GY1 Vh0u0h/hYd3BkT5htybzPJ+3yJEJ3Rn5U2OSgEEIqgCaBy9Yysz3nj8fJ+lPZkKH2Hn0 j5fUy7Ncub9Bs65UkOrPuelfeNksBsn83npuEfAj6iEIJSHXcRGZii70FcMcyPdpuA4c LVOQ== X-Gm-Message-State: AOAM532egPpdmJ5X97TDxnrzB4DxwOMG41L7VcIPqaeEEbPJiTNJGRtg RcyjRqgIS0+Ty6VarkXLqTtrOQ== X-Google-Smtp-Source: ABdhPJxVRAOxi33M/Yo5lLiq44LB4Tmp+B+4yQr8teDhdEXqGSSr5eMFvu/Bf4aSvjnBDXFZJvwmhg== X-Received: by 2002:a62:7c49:: with SMTP id x70mr15175032pfc.66.1592058676966; Sat, 13 Jun 2020 07:31:16 -0700 (PDT) Received: from [10.82.1.102] ([45.135.186.60]) by smtp.gmail.com with ESMTPSA id 23sm9295417pfy.199.2020.06.13.07.31.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 13 Jun 2020 07:31:16 -0700 (PDT) Subject: Re: [PATCH 0/2] Introduce PCI_FIXUP_IOMMU To: Bjorn Helgaas Cc: Arnd Bergmann , Joerg Roedel , Bjorn Helgaas , Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , "Rafael J. Wysocki" , Len Brown , jean-philippe , Greg Kroah-Hartman , Herbert Xu , kenneth-lee-2012@foxmail.com, Wangzhou , "linux-kernel@vger.kernel.org" , "open list:HARDWARE RANDOM NUMBER GENERATOR CORE" , "open list:IOMMU DRIVERS" , ACPI Devel Maling List , Linux ARM , linux-pci , Thanu Rangarajan , Souvik Chakravarty References: <20200611134410.GA1586057@bjorn-Precision-5520> From: Zhangfei Gao Message-ID: <8f9f6a77-4a65-afeb-0af9-e4868b52d7ce@linaro.org> Date: Sat, 13 Jun 2020 22:30:56 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <20200611134410.GA1586057@bjorn-Precision-5520> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On 2020/6/11 下午9:44, Bjorn Helgaas wrote: > +++ b/drivers/iommu/iommu.c >>>>>>>>> @@ -2418,6 +2418,10 @@ int iommu_fwspec_init(struct device *dev, struct >>>>>>>>> fwnode_handle *iommu_fwnode, >>>>>>>>> fwspec->iommu_fwnode = iommu_fwnode; >>>>>>>>> fwspec->ops = ops; >>>>>>>>> dev_iommu_fwspec_set(dev, fwspec); >>>>>>>>> + >>>>>>>>> + if (dev_is_pci(dev)) >>>>>>>>> + pci_fixup_device(pci_fixup_final, to_pci_dev(dev)); >>>>>>>>> + >>>>>>>>> >>>>>>>>> Then pci_fixup_final will be called twice, the first in pci_bus_add_device. >>>>>>>>> Here in iommu_fwspec_init is the second time, specifically for iommu_fwspec. >>>>>>>>> Will send this when 5.8-rc1 is open. >>>>>>>> Wait, this whole fixup approach seems wrong to me. No matter how you >>>>>>>> do the fixup, it's still a fixup, which means it requires ongoing >>>>>>>> maintenance. Surely we don't want to have to add the Vendor/Device ID >>>>>>>> for every new AMBA device that comes along, do we? >>>>>>>> >>>>>>> Here the fake pci device has standard PCI cfg space, but physical >>>>>>> implementation is base on AMBA >>>>>>> They can provide pasid feature. >>>>>>> However, >>>>>>> 1, does not support tlp since they are not real pci devices. >>>>>>> 2. does not support pri, instead support stall (provided by smmu) >>>>>>> And stall is not a pci feature, so it is not described in struct pci_dev, >>>>>>> but in struct iommu_fwspec. >>>>>>> So we use this fixup to tell pci system that the devices can support stall, >>>>>>> and hereby support pasid. >>>>>> This did not answer my question. Are you proposing that we update a >>>>>> quirk every time a new AMBA device is released? I don't think that >>>>>> would be a good model. >>>>> Yes, you are right, but we do not have any better idea yet. >>>>> Currently we have three fake pci devices, which support stall and pasid. >>>>> We have to let pci system know the device can support pasid, because of >>>>> stall feature, though not support pri. >>>>> Do you have any other ideas? >>>> It sounds like the best way would be to allocate a PCI capability for it, so >>>> detection can be done through config space, at least in future devices, >>>> or possibly after a firmware update if the config space in your system >>>> is controlled by firmware somewhere. Once there is a proper mechanism >>>> to do this, using fixups to detect the early devices that don't use that >>>> should be uncontroversial. I have no idea what the process or timeline >>>> is to add new capabilities into the PCIe specification, or if this one >>>> would be acceptable to the PCI SIG at all. >>> That sounds like a possibility. The spec already defines a >>> Vendor-Specific Extended Capability (PCIe r5.0, sec 7.9.5) that might >>> be a candidate. >> Will investigate this, thanks Bjorn > FWIW, there's also a Vendor-Specific Capability that can appear in the > first 256 bytes of config space (the Vendor-Specific Extended > Capability must appear in the "Extended Configuration Space" from > 0x100-0xfff). Unfortunately our silicon does not have either Vendor-Specific Capability or Vendor-Specific Extended Capability. Studied commit 8531e283bee66050734fb0e89d53e85fd5ce24a4 Looks this method requires adding member (like can_stall) to struct pci_dev, looks difficult. > >>>> If detection cannot be done through PCI config space, the next best >>>> alternative is to pass auxiliary data through firmware. On DT based >>>> machines, you can list non-hotpluggable PCIe devices and add custom >>>> properties that could be read during device enumeration. I assume >>>> ACPI has something similar, but I have not done that. >> Yes, thanks Arnd >>> ACPI has _DSM (ACPI v6.3, sec 9.1.1), which might be a candidate. I >>> like this better than a PCI capability because the property you need >>> to expose is not a PCI property. >> _DSM may not workable, since it is working in runtime. >> We need stall information in init stage, neither too early (after allocation >> of iommu_fwspec) >> nor too late (before arm_smmu_add_device ). > I'm not aware of a restriction on when _DSM can be evaluated. I'm > looking at ACPI v6.3, sec 9.1.1. Are you seeing something different? DSM method seems requires vendor specific guid, and code would be vendor specific. Except adding uuid to some spec like pci_acpi_dsm_guid. obj = acpi_evaluate_dsm(ACPI_HANDLE(bus->bridge), &pci_acpi_dsm_guid, 1, IGNORE_PCI_BOOT_CONFIG_DSM, NULL); >> By the way, It would be a long time if we need modify either pcie >> spec or acpi spec. Can we use pci_fixup_device in iommu_fwspec_init >> first, it is relatively simple and meet the requirement of platform >> device using pasid, and they are already in product. > Neither the PCI Vendor-Specific Capability nor the ACPI _DSM requires > a spec change. Both can be completely vendor-defined. Adding vendor-specific code to common files looks a bit ugly. Thanks From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38135C433E2 for ; Sat, 13 Jun 2020 14:31:21 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F3A65207BC for ; Sat, 13 Jun 2020 14:31:20 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="v1phM+bu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F3A65207BC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 77C06895B3; Sat, 13 Jun 2020 14:31:20 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UAC6dkxwNJAf; Sat, 13 Jun 2020 14:31:19 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by hemlock.osuosl.org (Postfix) with ESMTP id 729D888CC6; Sat, 13 Jun 2020 14:31:19 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 55532C0888; Sat, 13 Jun 2020 14:31:19 +0000 (UTC) Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 64D06C016F for ; Sat, 13 Jun 2020 14:31:18 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 60692876DB for ; Sat, 13 Jun 2020 14:31:18 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VhjQcBEtQnt6 for ; Sat, 13 Jun 2020 14:31:17 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by whitealder.osuosl.org (Postfix) with ESMTPS id 94B8787698 for ; Sat, 13 Jun 2020 14:31:17 +0000 (UTC) Received: by mail-pf1-f196.google.com with SMTP id d66so5697502pfd.6 for ; Sat, 13 Jun 2020 07:31:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=nwRd2enOMG4jt4Uk5EPLoc0tMcEuCb0goMle7pInqTY=; b=v1phM+buXJcNsgCbhY7OeaSaTKaeubsTt31NEtds009yu+XOUKHTvTIJCV+/7YcP/V RRB6uQe1xI40VJj/AJw4XoZNbMCTxwJ8ojDQMjIglpRrRQfwOBEgZZHV9o2ll7pAC6EF Twqy38hGUe+MkCIEi+6Hs7RN/CkIefm4ZE/k1NI45g2U9FYwv/xQDiF1rN5GZ1vjx0QH 1I0elXulDV4eaWIGPMLNX06hEsLSxXUX2ukHpdfI47T9c2QAPXzzsZFSmwzz03GwHY/U 8k624e+htQjxxyypyCK+/cSTD96gRrZIuOHcPlPDOsQXuCD+CW492fDB2SN9XKS4xal7 aHqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=nwRd2enOMG4jt4Uk5EPLoc0tMcEuCb0goMle7pInqTY=; b=eHiNXmljYAbTyzC3CxQTNzsVZjl3j8hC3h9qMYtmzhUZYM4Cdz2dWYpuIACLU5ooOz BqWHRh0SkOjSaI8cyG4kDGPjOqc0LH+j8MUSTcB2Q5erjyW60DCxu1zjdV1o8G+oYpYD WbY2b7kj2Q58bhjbOrH1xKMHfMb4ZrTYqO6jMBaQ+DtmLJtrF6YrN5XHmHL01rSxGpFm EshHPKrfmNlBwAfUCEJb8+9CKOoUCQhfqBrtSh3DOqH4HG0VEqstQmRVcA6PIlIeGkHo BUlpCUt1VA5p3v6Ei0P4+pVxtFcwqb45t+2sPTVcS9+Y7BFyfpd2f29yYLb6aqVwpouw cAuQ== X-Gm-Message-State: AOAM532xj1alA6zvN66h4TFK5f2FXZ9d4JXfStYQyQ6KivDxfDvwdvhZ UcIzXDQylYYr5vzjDJ3/a6euIQ== X-Google-Smtp-Source: ABdhPJxVRAOxi33M/Yo5lLiq44LB4Tmp+B+4yQr8teDhdEXqGSSr5eMFvu/Bf4aSvjnBDXFZJvwmhg== X-Received: by 2002:a62:7c49:: with SMTP id x70mr15175032pfc.66.1592058676966; Sat, 13 Jun 2020 07:31:16 -0700 (PDT) Received: from [10.82.1.102] ([45.135.186.60]) by smtp.gmail.com with ESMTPSA id 23sm9295417pfy.199.2020.06.13.07.31.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 13 Jun 2020 07:31:16 -0700 (PDT) Subject: Re: [PATCH 0/2] Introduce PCI_FIXUP_IOMMU To: Bjorn Helgaas References: <20200611134410.GA1586057@bjorn-Precision-5520> From: Zhangfei Gao Message-ID: <8f9f6a77-4a65-afeb-0af9-e4868b52d7ce@linaro.org> Date: Sat, 13 Jun 2020 22:30:56 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <20200611134410.GA1586057@bjorn-Precision-5520> Content-Language: en-US Cc: Thanu Rangarajan , jean-philippe , Souvik Chakravarty , Herbert Xu , Arnd Bergmann , linux-pci , Greg Kroah-Hartman , Hanjun Guo , "Rafael J. Wysocki" , "linux-kernel@vger.kernel.org" , "open list:IOMMU DRIVERS" , ACPI Devel Maling List , "open list:HARDWARE RANDOM NUMBER GENERATOR CORE" , Sudeep Holla , Bjorn Helgaas , kenneth-lee-2012@foxmail.com, Linux ARM , Len Brown X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" CgpPbiAyMDIwLzYvMTEg5LiL5Y2IOTo0NCwgQmpvcm4gSGVsZ2FhcyB3cm90ZToKPiArKysgYi9k cml2ZXJzL2lvbW11L2lvbW11LmMKPj4+Pj4+Pj4+IEBAIC0yNDE4LDYgKzI0MTgsMTAgQEAgaW50 IGlvbW11X2Z3c3BlY19pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0Cj4+Pj4+Pj4+PiBm d25vZGVfaGFuZGxlICppb21tdV9md25vZGUsCj4+Pj4+Pj4+PiAgICAgICAgICAgICBmd3NwZWMt PmlvbW11X2Z3bm9kZSA9IGlvbW11X2Z3bm9kZTsKPj4+Pj4+Pj4+ICAgICAgICAgICAgIGZ3c3Bl Yy0+b3BzID0gb3BzOwo+Pj4+Pj4+Pj4gICAgICAgICAgICAgZGV2X2lvbW11X2Z3c3BlY19zZXQo ZGV2LCBmd3NwZWMpOwo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4gKyAgICAgICBpZiAoZGV2X2lzX3Bj aShkZXYpKQo+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgIHBjaV9maXh1cF9kZXZpY2UocGNpX2Zp eHVwX2ZpbmFsLCB0b19wY2lfZGV2KGRldikpOwo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+IFRoZW4gcGNpX2ZpeHVwX2ZpbmFsIHdpbGwgYmUgY2FsbGVkIHR3aWNlLCB0aGUgZmlyc3Qg aW4gcGNpX2J1c19hZGRfZGV2aWNlLgo+Pj4+Pj4+Pj4gSGVyZSBpbiBpb21tdV9md3NwZWNfaW5p dCBpcyB0aGUgc2Vjb25kIHRpbWUsIHNwZWNpZmljYWxseSBmb3IgaW9tbXVfZndzcGVjLgo+Pj4+ Pj4+Pj4gV2lsbCBzZW5kIHRoaXMgd2hlbiA1LjgtcmMxIGlzIG9wZW4uCj4+Pj4+Pj4+IFdhaXQs IHRoaXMgd2hvbGUgZml4dXAgYXBwcm9hY2ggc2VlbXMgd3JvbmcgdG8gbWUuICBObyBtYXR0ZXIg aG93IHlvdQo+Pj4+Pj4+PiBkbyB0aGUgZml4dXAsIGl0J3Mgc3RpbGwgYSBmaXh1cCwgd2hpY2gg bWVhbnMgaXQgcmVxdWlyZXMgb25nb2luZwo+Pj4+Pj4+PiBtYWludGVuYW5jZS4gIFN1cmVseSB3 ZSBkb24ndCB3YW50IHRvIGhhdmUgdG8gYWRkIHRoZSBWZW5kb3IvRGV2aWNlIElECj4+Pj4+Pj4+ IGZvciBldmVyeSBuZXcgQU1CQSBkZXZpY2UgdGhhdCBjb21lcyBhbG9uZywgZG8gd2U/Cj4+Pj4+ Pj4+Cj4+Pj4+Pj4gSGVyZSB0aGUgZmFrZSBwY2kgZGV2aWNlIGhhcyBzdGFuZGFyZCBQQ0kgY2Zn IHNwYWNlLCBidXQgcGh5c2ljYWwKPj4+Pj4+PiBpbXBsZW1lbnRhdGlvbiBpcyBiYXNlIG9uIEFN QkEKPj4+Pj4+PiBUaGV5IGNhbiBwcm92aWRlIHBhc2lkIGZlYXR1cmUuCj4+Pj4+Pj4gSG93ZXZl ciwKPj4+Pj4+PiAxLCBkb2VzIG5vdCBzdXBwb3J0IHRscCBzaW5jZSB0aGV5IGFyZSBub3QgcmVh bCBwY2kgZGV2aWNlcy4KPj4+Pj4+PiAyLiBkb2VzIG5vdCBzdXBwb3J0IHByaSwgaW5zdGVhZCBz dXBwb3J0IHN0YWxsIChwcm92aWRlZCBieSBzbW11KQo+Pj4+Pj4+IEFuZCBzdGFsbCBpcyBub3Qg YSBwY2kgZmVhdHVyZSwgc28gaXQgaXMgbm90IGRlc2NyaWJlZCBpbiBzdHJ1Y3QgcGNpX2RldiwK Pj4+Pj4+PiBidXQgaW4gc3RydWN0IGlvbW11X2Z3c3BlYy4KPj4+Pj4+PiBTbyB3ZSB1c2UgdGhp cyBmaXh1cCB0byB0ZWxsIHBjaSBzeXN0ZW0gdGhhdCB0aGUgZGV2aWNlcyBjYW4gc3VwcG9ydCBz dGFsbCwKPj4+Pj4+PiBhbmQgaGVyZWJ5IHN1cHBvcnQgcGFzaWQuCj4+Pj4+PiBUaGlzIGRpZCBu b3QgYW5zd2VyIG15IHF1ZXN0aW9uLiAgQXJlIHlvdSBwcm9wb3NpbmcgdGhhdCB3ZSB1cGRhdGUg YQo+Pj4+Pj4gcXVpcmsgZXZlcnkgdGltZSBhIG5ldyBBTUJBIGRldmljZSBpcyByZWxlYXNlZD8g IEkgZG9uJ3QgdGhpbmsgdGhhdAo+Pj4+Pj4gd291bGQgYmUgYSBnb29kIG1vZGVsLgo+Pj4+PiBZ ZXMsIHlvdSBhcmUgcmlnaHQsIGJ1dCB3ZSBkbyBub3QgaGF2ZSBhbnkgYmV0dGVyIGlkZWEgeWV0 Lgo+Pj4+PiBDdXJyZW50bHkgd2UgaGF2ZSB0aHJlZSBmYWtlIHBjaSBkZXZpY2VzLCB3aGljaCBz dXBwb3J0IHN0YWxsIGFuZCBwYXNpZC4KPj4+Pj4gV2UgaGF2ZSB0byBsZXQgcGNpIHN5c3RlbSBr bm93IHRoZSBkZXZpY2UgY2FuIHN1cHBvcnQgcGFzaWQsIGJlY2F1c2Ugb2YKPj4+Pj4gc3RhbGwg ZmVhdHVyZSwgdGhvdWdoIG5vdCBzdXBwb3J0IHByaS4KPj4+Pj4gRG8geW91IGhhdmUgYW55IG90 aGVyIGlkZWFzPwo+Pj4+IEl0IHNvdW5kcyBsaWtlIHRoZSBiZXN0IHdheSB3b3VsZCBiZSB0byBh bGxvY2F0ZSBhIFBDSSBjYXBhYmlsaXR5IGZvciBpdCwgc28KPj4+PiBkZXRlY3Rpb24gY2FuIGJl IGRvbmUgdGhyb3VnaCBjb25maWcgc3BhY2UsIGF0IGxlYXN0IGluIGZ1dHVyZSBkZXZpY2VzLAo+ Pj4+IG9yIHBvc3NpYmx5IGFmdGVyIGEgZmlybXdhcmUgdXBkYXRlIGlmIHRoZSBjb25maWcgc3Bh Y2UgaW4geW91ciBzeXN0ZW0KPj4+PiBpcyBjb250cm9sbGVkIGJ5IGZpcm13YXJlIHNvbWV3aGVy ZS4gIE9uY2UgdGhlcmUgaXMgYSBwcm9wZXIgbWVjaGFuaXNtCj4+Pj4gdG8gZG8gdGhpcywgdXNp bmcgZml4dXBzIHRvIGRldGVjdCB0aGUgZWFybHkgZGV2aWNlcyB0aGF0IGRvbid0IHVzZSB0aGF0 Cj4+Pj4gc2hvdWxkIGJlIHVuY29udHJvdmVyc2lhbC4gSSBoYXZlIG5vIGlkZWEgd2hhdCB0aGUg cHJvY2VzcyBvciB0aW1lbGluZQo+Pj4+IGlzIHRvIGFkZCBuZXcgY2FwYWJpbGl0aWVzIGludG8g dGhlIFBDSWUgc3BlY2lmaWNhdGlvbiwgb3IgaWYgdGhpcyBvbmUKPj4+PiB3b3VsZCBiZSBhY2Nl cHRhYmxlIHRvIHRoZSBQQ0kgU0lHIGF0IGFsbC4KPj4+IFRoYXQgc291bmRzIGxpa2UgYSBwb3Nz aWJpbGl0eS4gIFRoZSBzcGVjIGFscmVhZHkgZGVmaW5lcyBhCj4+PiBWZW5kb3ItU3BlY2lmaWMg RXh0ZW5kZWQgQ2FwYWJpbGl0eSAoUENJZSByNS4wLCBzZWMgNy45LjUpIHRoYXQgbWlnaHQKPj4+ IGJlIGEgY2FuZGlkYXRlLgo+PiBXaWxsIGludmVzdGlnYXRlIHRoaXMsIHRoYW5rcyBCam9ybgo+ IEZXSVcsIHRoZXJlJ3MgYWxzbyBhIFZlbmRvci1TcGVjaWZpYyBDYXBhYmlsaXR5IHRoYXQgY2Fu IGFwcGVhciBpbiB0aGUKPiBmaXJzdCAyNTYgYnl0ZXMgb2YgY29uZmlnIHNwYWNlICh0aGUgVmVu ZG9yLVNwZWNpZmljIEV4dGVuZGVkCj4gQ2FwYWJpbGl0eSBtdXN0IGFwcGVhciBpbiB0aGUgIkV4 dGVuZGVkIENvbmZpZ3VyYXRpb24gU3BhY2UiIGZyb20KPiAweDEwMC0weGZmZikuClVuZm9ydHVu YXRlbHkgb3VyIHNpbGljb24gZG9lcyBub3QgaGF2ZSBlaXRoZXIgVmVuZG9yLVNwZWNpZmljwqBD YXBhYmlsaXR5IG9yClZlbmRvci1TcGVjaWZpY8KgRXh0ZW5kZWQgQ2FwYWJpbGl0eS4KClN0dWRp ZWQgY29tbWl0IDg1MzFlMjgzYmVlNjYwNTA3MzRmYjBlODlkNTNlODVmZDVjZTI0YTQKTG9va3Mg dGhpcyBtZXRob2QgcmVxdWlyZXMgYWRkaW5nIG1lbWJlciAobGlrZSBjYW5fc3RhbGwpIHRvIHN0 cnVjdCAKcGNpX2RldiwgbG9va3MgZGlmZmljdWx0LgoKPgo+Pj4+IElmIGRldGVjdGlvbiBjYW5u b3QgYmUgZG9uZSB0aHJvdWdoIFBDSSBjb25maWcgc3BhY2UsIHRoZSBuZXh0IGJlc3QKPj4+PiBh bHRlcm5hdGl2ZSBpcyB0byBwYXNzIGF1eGlsaWFyeSBkYXRhIHRocm91Z2ggZmlybXdhcmUuIE9u IERUIGJhc2VkCj4+Pj4gbWFjaGluZXMsIHlvdSBjYW4gbGlzdCBub24taG90cGx1Z2dhYmxlIFBD SWUgZGV2aWNlcyBhbmQgYWRkIGN1c3RvbQo+Pj4+IHByb3BlcnRpZXMgdGhhdCBjb3VsZCBiZSBy ZWFkIGR1cmluZyBkZXZpY2UgZW51bWVyYXRpb24uIEkgYXNzdW1lCj4+Pj4gQUNQSSBoYXMgc29t ZXRoaW5nIHNpbWlsYXIsIGJ1dCBJIGhhdmUgbm90IGRvbmUgdGhhdC4KPj4gWWVzLCB0aGFua3Mg QXJuZAo+Pj4gQUNQSSBoYXMgX0RTTSAoQUNQSSB2Ni4zLCBzZWMgOS4xLjEpLCB3aGljaCBtaWdo dCBiZSBhIGNhbmRpZGF0ZS4gIEkKPj4+IGxpa2UgdGhpcyBiZXR0ZXIgdGhhbiBhIFBDSSBjYXBh YmlsaXR5IGJlY2F1c2UgdGhlIHByb3BlcnR5IHlvdSBuZWVkCj4+PiB0byBleHBvc2UgaXMgbm90 IGEgUENJIHByb3BlcnR5Lgo+PiBfRFNNIG1heSBub3Qgd29ya2FibGUsIHNpbmNlIGl0IGlzIHdv cmtpbmcgaW4gcnVudGltZS4KPj4gV2UgbmVlZCBzdGFsbCBpbmZvcm1hdGlvbiBpbiBpbml0IHN0 YWdlLCBuZWl0aGVyIHRvbyBlYXJseSAoYWZ0ZXIgYWxsb2NhdGlvbgo+PiBvZiBpb21tdV9md3Nw ZWMpCj4+IG5vciB0b28gbGF0ZSAoYmVmb3JlIGFybV9zbW11X2FkZF9kZXZpY2UgKS4KPiBJJ20g bm90IGF3YXJlIG9mIGEgcmVzdHJpY3Rpb24gb24gd2hlbiBfRFNNIGNhbiBiZSBldmFsdWF0ZWQu ICBJJ20KPiBsb29raW5nIGF0IEFDUEkgdjYuMywgc2VjIDkuMS4xLiAgQXJlIHlvdSBzZWVpbmcg c29tZXRoaW5nIGRpZmZlcmVudD8KRFNNIG1ldGhvZCBzZWVtcyByZXF1aXJlcyB2ZW5kb3Igc3Bl Y2lmaWMgZ3VpZCwgYW5kIGNvZGUgd291bGQgYmUgdmVuZG9yIApzcGVjaWZpYy4KRXhjZXB0IGFk ZGluZyB1dWlkIHRvIHNvbWUgc3BlYyBsaWtlIHBjaV9hY3BpX2RzbV9ndWlkLgpvYmogPSBhY3Bp X2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShidXMtPmJyaWRnZSksICZwY2lfYWNwaV9kc21fZ3Vp ZCwgMSwKSUdOT1JFX1BDSV9CT09UX0NPTkZJR19EU00sIE5VTEwpOwoKPj4gQnkgdGhlIHdheSwg SXQgd291bGQgYmUgYSBsb25nIHRpbWUgaWYgd2UgbmVlZCBtb2RpZnkgZWl0aGVyIHBjaWUKPj4g c3BlYyBvciBhY3BpIHNwZWMuICBDYW4gd2UgdXNlIHBjaV9maXh1cF9kZXZpY2UgaW4gaW9tbXVf ZndzcGVjX2luaXQKPj4gZmlyc3QsIGl0IGlzIHJlbGF0aXZlbHkgc2ltcGxlIGFuZCBtZWV0IHRo ZSByZXF1aXJlbWVudCBvZiBwbGF0Zm9ybQo+PiBkZXZpY2UgdXNpbmcgcGFzaWQsIGFuZCB0aGV5 IGFyZSBhbHJlYWR5IGluIHByb2R1Y3QuCj4gTmVpdGhlciB0aGUgUENJIFZlbmRvci1TcGVjaWZp YyBDYXBhYmlsaXR5IG5vciB0aGUgQUNQSSBfRFNNIHJlcXVpcmVzCj4gYSBzcGVjIGNoYW5nZS4g IEJvdGggY2FuIGJlIGNvbXBsZXRlbHkgdmVuZG9yLWRlZmluZWQuCkFkZGluZyB2ZW5kb3Itc3Bl Y2lmaWMgY29kZSB0byBjb21tb24gZmlsZXMgbG9va3MgYSBiaXQgdWdseS4KClRoYW5rcwoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaW9tbXUgbWFpbGlu ZyBsaXN0CmlvbW11QGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGlu dXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lvbW11 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2B60C433E0 for ; Sat, 13 Jun 2020 14:31:23 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 91ACB20792 for ; Sat, 13 Jun 2020 14:31:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="puQOR983"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="v1phM+bu" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 91ACB20792 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=xQsk2GLa1nSRd5EW7jqia9GXI2g5AHh/YwvdJg5HBSs=; b=puQOR983zV0aLh2M96xnBqb9Y dBE4YMI0L5LOrooFinA0hKvwpXPqRgtwHqHBJlBrs9kZgNirNUMO13EnH/bI1x2xHZNFMZZl1rlcH twO0EK3ygCPmL6TdkVpfyAuQKbZ+hCBy2czbw/KJhLR3omFtvYOdrb0fOSeIIPVgEzlTak1c6u/Dz rUtQNIceSf5bUbLUwEAD+rEjkObymSzJBrkdVy+GNS+FndoZy3kZfmuEIz5LY54Vmdg7c8IJPw8+/ pPEqpuv858dOGZWUXGS19xlUvsTSkWxwUxChN56Qlm7BWvxHgDkyQTgOwTUwkGIn05WneneE8KbSV M8LPXdXxg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jk7Br-0006dR-8l; Sat, 13 Jun 2020 14:31:23 +0000 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jk7Bl-0006d2-Up for linux-arm-kernel@lists.infradead.org; Sat, 13 Jun 2020 14:31:21 +0000 Received: by mail-pf1-x443.google.com with SMTP id x22so5701676pfn.3 for ; Sat, 13 Jun 2020 07:31:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=nwRd2enOMG4jt4Uk5EPLoc0tMcEuCb0goMle7pInqTY=; b=v1phM+buXJcNsgCbhY7OeaSaTKaeubsTt31NEtds009yu+XOUKHTvTIJCV+/7YcP/V RRB6uQe1xI40VJj/AJw4XoZNbMCTxwJ8ojDQMjIglpRrRQfwOBEgZZHV9o2ll7pAC6EF Twqy38hGUe+MkCIEi+6Hs7RN/CkIefm4ZE/k1NI45g2U9FYwv/xQDiF1rN5GZ1vjx0QH 1I0elXulDV4eaWIGPMLNX06hEsLSxXUX2ukHpdfI47T9c2QAPXzzsZFSmwzz03GwHY/U 8k624e+htQjxxyypyCK+/cSTD96gRrZIuOHcPlPDOsQXuCD+CW492fDB2SN9XKS4xal7 aHqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=nwRd2enOMG4jt4Uk5EPLoc0tMcEuCb0goMle7pInqTY=; b=gk9Mrl6u8Uow1y8I82efgZk+yCoKxjCdo/3FJgNDj3KFUzj7F1EeE4GRoMtJ5cBsd6 +GoqCgXMzFe8ApgRe9VSFV0Z34hhicZCj344rbR4YR/Pu7CT1YJL4a65bwElwyT84qa6 +oOxda/TfDtupyGXPt9b+HdW7Gg7bAL68cQpGEylg+3jd4DaSR7rzOaj6EGwNufwY097 VtRJA6wMWHZ4P5gdapNjGRFg27MhcwYwFlzEQ9EGg39n3JDAcKRjdzPHWweu7QlzIIJU 12bupQ7ynLYtaEctPO/ee1q0vrChRITG0+d3RaPNo54sc6lVFUkJxwdnY4YeuvvmUfOu TLVw== X-Gm-Message-State: AOAM533aUbTT+PPrbpgIqR+XSyC3znEH1a9zmoeQwhCas9jfFI35cXtB 36vXPqEsuGhfa/36pAcX2nuowg== X-Google-Smtp-Source: ABdhPJxVRAOxi33M/Yo5lLiq44LB4Tmp+B+4yQr8teDhdEXqGSSr5eMFvu/Bf4aSvjnBDXFZJvwmhg== X-Received: by 2002:a62:7c49:: with SMTP id x70mr15175032pfc.66.1592058676966; Sat, 13 Jun 2020 07:31:16 -0700 (PDT) Received: from [10.82.1.102] ([45.135.186.60]) by smtp.gmail.com with ESMTPSA id 23sm9295417pfy.199.2020.06.13.07.31.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 13 Jun 2020 07:31:16 -0700 (PDT) Subject: Re: [PATCH 0/2] Introduce PCI_FIXUP_IOMMU To: Bjorn Helgaas References: <20200611134410.GA1586057@bjorn-Precision-5520> From: Zhangfei Gao Message-ID: <8f9f6a77-4a65-afeb-0af9-e4868b52d7ce@linaro.org> Date: Sat, 13 Jun 2020 22:30:56 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <20200611134410.GA1586057@bjorn-Precision-5520> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200613_073117_997736_DCA9FAA7 X-CRM114-Status: GOOD ( 23.36 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thanu Rangarajan , jean-philippe , Lorenzo Pieralisi , Souvik Chakravarty , Herbert Xu , Arnd Bergmann , linux-pci , Greg Kroah-Hartman , Joerg Roedel , Hanjun Guo , "Rafael J. Wysocki" , "linux-kernel@vger.kernel.org" , "open list:IOMMU DRIVERS" , ACPI Devel Maling List , Wangzhou , "open list:HARDWARE RANDOM NUMBER GENERATOR CORE" , Sudeep Holla , Bjorn Helgaas , kenneth-lee-2012@foxmail.com, Linux ARM , Len Brown Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpPbiAyMDIwLzYvMTEg5LiL5Y2IOTo0NCwgQmpvcm4gSGVsZ2FhcyB3cm90ZToKPiArKysgYi9k cml2ZXJzL2lvbW11L2lvbW11LmMKPj4+Pj4+Pj4+IEBAIC0yNDE4LDYgKzI0MTgsMTAgQEAgaW50 IGlvbW11X2Z3c3BlY19pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0Cj4+Pj4+Pj4+PiBm d25vZGVfaGFuZGxlICppb21tdV9md25vZGUsCj4+Pj4+Pj4+PiAgICAgICAgICAgICBmd3NwZWMt PmlvbW11X2Z3bm9kZSA9IGlvbW11X2Z3bm9kZTsKPj4+Pj4+Pj4+ICAgICAgICAgICAgIGZ3c3Bl Yy0+b3BzID0gb3BzOwo+Pj4+Pj4+Pj4gICAgICAgICAgICAgZGV2X2lvbW11X2Z3c3BlY19zZXQo ZGV2LCBmd3NwZWMpOwo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4gKyAgICAgICBpZiAoZGV2X2lzX3Bj aShkZXYpKQo+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgIHBjaV9maXh1cF9kZXZpY2UocGNpX2Zp eHVwX2ZpbmFsLCB0b19wY2lfZGV2KGRldikpOwo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+IFRoZW4gcGNpX2ZpeHVwX2ZpbmFsIHdpbGwgYmUgY2FsbGVkIHR3aWNlLCB0aGUgZmlyc3Qg aW4gcGNpX2J1c19hZGRfZGV2aWNlLgo+Pj4+Pj4+Pj4gSGVyZSBpbiBpb21tdV9md3NwZWNfaW5p dCBpcyB0aGUgc2Vjb25kIHRpbWUsIHNwZWNpZmljYWxseSBmb3IgaW9tbXVfZndzcGVjLgo+Pj4+ Pj4+Pj4gV2lsbCBzZW5kIHRoaXMgd2hlbiA1LjgtcmMxIGlzIG9wZW4uCj4+Pj4+Pj4+IFdhaXQs IHRoaXMgd2hvbGUgZml4dXAgYXBwcm9hY2ggc2VlbXMgd3JvbmcgdG8gbWUuICBObyBtYXR0ZXIg aG93IHlvdQo+Pj4+Pj4+PiBkbyB0aGUgZml4dXAsIGl0J3Mgc3RpbGwgYSBmaXh1cCwgd2hpY2gg bWVhbnMgaXQgcmVxdWlyZXMgb25nb2luZwo+Pj4+Pj4+PiBtYWludGVuYW5jZS4gIFN1cmVseSB3 ZSBkb24ndCB3YW50IHRvIGhhdmUgdG8gYWRkIHRoZSBWZW5kb3IvRGV2aWNlIElECj4+Pj4+Pj4+ IGZvciBldmVyeSBuZXcgQU1CQSBkZXZpY2UgdGhhdCBjb21lcyBhbG9uZywgZG8gd2U/Cj4+Pj4+ Pj4+Cj4+Pj4+Pj4gSGVyZSB0aGUgZmFrZSBwY2kgZGV2aWNlIGhhcyBzdGFuZGFyZCBQQ0kgY2Zn IHNwYWNlLCBidXQgcGh5c2ljYWwKPj4+Pj4+PiBpbXBsZW1lbnRhdGlvbiBpcyBiYXNlIG9uIEFN QkEKPj4+Pj4+PiBUaGV5IGNhbiBwcm92aWRlIHBhc2lkIGZlYXR1cmUuCj4+Pj4+Pj4gSG93ZXZl ciwKPj4+Pj4+PiAxLCBkb2VzIG5vdCBzdXBwb3J0IHRscCBzaW5jZSB0aGV5IGFyZSBub3QgcmVh bCBwY2kgZGV2aWNlcy4KPj4+Pj4+PiAyLiBkb2VzIG5vdCBzdXBwb3J0IHByaSwgaW5zdGVhZCBz dXBwb3J0IHN0YWxsIChwcm92aWRlZCBieSBzbW11KQo+Pj4+Pj4+IEFuZCBzdGFsbCBpcyBub3Qg YSBwY2kgZmVhdHVyZSwgc28gaXQgaXMgbm90IGRlc2NyaWJlZCBpbiBzdHJ1Y3QgcGNpX2RldiwK Pj4+Pj4+PiBidXQgaW4gc3RydWN0IGlvbW11X2Z3c3BlYy4KPj4+Pj4+PiBTbyB3ZSB1c2UgdGhp cyBmaXh1cCB0byB0ZWxsIHBjaSBzeXN0ZW0gdGhhdCB0aGUgZGV2aWNlcyBjYW4gc3VwcG9ydCBz dGFsbCwKPj4+Pj4+PiBhbmQgaGVyZWJ5IHN1cHBvcnQgcGFzaWQuCj4+Pj4+PiBUaGlzIGRpZCBu b3QgYW5zd2VyIG15IHF1ZXN0aW9uLiAgQXJlIHlvdSBwcm9wb3NpbmcgdGhhdCB3ZSB1cGRhdGUg YQo+Pj4+Pj4gcXVpcmsgZXZlcnkgdGltZSBhIG5ldyBBTUJBIGRldmljZSBpcyByZWxlYXNlZD8g IEkgZG9uJ3QgdGhpbmsgdGhhdAo+Pj4+Pj4gd291bGQgYmUgYSBnb29kIG1vZGVsLgo+Pj4+PiBZ ZXMsIHlvdSBhcmUgcmlnaHQsIGJ1dCB3ZSBkbyBub3QgaGF2ZSBhbnkgYmV0dGVyIGlkZWEgeWV0 Lgo+Pj4+PiBDdXJyZW50bHkgd2UgaGF2ZSB0aHJlZSBmYWtlIHBjaSBkZXZpY2VzLCB3aGljaCBz dXBwb3J0IHN0YWxsIGFuZCBwYXNpZC4KPj4+Pj4gV2UgaGF2ZSB0byBsZXQgcGNpIHN5c3RlbSBr bm93IHRoZSBkZXZpY2UgY2FuIHN1cHBvcnQgcGFzaWQsIGJlY2F1c2Ugb2YKPj4+Pj4gc3RhbGwg ZmVhdHVyZSwgdGhvdWdoIG5vdCBzdXBwb3J0IHByaS4KPj4+Pj4gRG8geW91IGhhdmUgYW55IG90 aGVyIGlkZWFzPwo+Pj4+IEl0IHNvdW5kcyBsaWtlIHRoZSBiZXN0IHdheSB3b3VsZCBiZSB0byBh bGxvY2F0ZSBhIFBDSSBjYXBhYmlsaXR5IGZvciBpdCwgc28KPj4+PiBkZXRlY3Rpb24gY2FuIGJl IGRvbmUgdGhyb3VnaCBjb25maWcgc3BhY2UsIGF0IGxlYXN0IGluIGZ1dHVyZSBkZXZpY2VzLAo+ Pj4+IG9yIHBvc3NpYmx5IGFmdGVyIGEgZmlybXdhcmUgdXBkYXRlIGlmIHRoZSBjb25maWcgc3Bh Y2UgaW4geW91ciBzeXN0ZW0KPj4+PiBpcyBjb250cm9sbGVkIGJ5IGZpcm13YXJlIHNvbWV3aGVy ZS4gIE9uY2UgdGhlcmUgaXMgYSBwcm9wZXIgbWVjaGFuaXNtCj4+Pj4gdG8gZG8gdGhpcywgdXNp bmcgZml4dXBzIHRvIGRldGVjdCB0aGUgZWFybHkgZGV2aWNlcyB0aGF0IGRvbid0IHVzZSB0aGF0 Cj4+Pj4gc2hvdWxkIGJlIHVuY29udHJvdmVyc2lhbC4gSSBoYXZlIG5vIGlkZWEgd2hhdCB0aGUg cHJvY2VzcyBvciB0aW1lbGluZQo+Pj4+IGlzIHRvIGFkZCBuZXcgY2FwYWJpbGl0aWVzIGludG8g dGhlIFBDSWUgc3BlY2lmaWNhdGlvbiwgb3IgaWYgdGhpcyBvbmUKPj4+PiB3b3VsZCBiZSBhY2Nl cHRhYmxlIHRvIHRoZSBQQ0kgU0lHIGF0IGFsbC4KPj4+IFRoYXQgc291bmRzIGxpa2UgYSBwb3Nz aWJpbGl0eS4gIFRoZSBzcGVjIGFscmVhZHkgZGVmaW5lcyBhCj4+PiBWZW5kb3ItU3BlY2lmaWMg RXh0ZW5kZWQgQ2FwYWJpbGl0eSAoUENJZSByNS4wLCBzZWMgNy45LjUpIHRoYXQgbWlnaHQKPj4+ IGJlIGEgY2FuZGlkYXRlLgo+PiBXaWxsIGludmVzdGlnYXRlIHRoaXMsIHRoYW5rcyBCam9ybgo+ IEZXSVcsIHRoZXJlJ3MgYWxzbyBhIFZlbmRvci1TcGVjaWZpYyBDYXBhYmlsaXR5IHRoYXQgY2Fu IGFwcGVhciBpbiB0aGUKPiBmaXJzdCAyNTYgYnl0ZXMgb2YgY29uZmlnIHNwYWNlICh0aGUgVmVu ZG9yLVNwZWNpZmljIEV4dGVuZGVkCj4gQ2FwYWJpbGl0eSBtdXN0IGFwcGVhciBpbiB0aGUgIkV4 dGVuZGVkIENvbmZpZ3VyYXRpb24gU3BhY2UiIGZyb20KPiAweDEwMC0weGZmZikuClVuZm9ydHVu YXRlbHkgb3VyIHNpbGljb24gZG9lcyBub3QgaGF2ZSBlaXRoZXIgVmVuZG9yLVNwZWNpZmljwqBD YXBhYmlsaXR5IG9yClZlbmRvci1TcGVjaWZpY8KgRXh0ZW5kZWQgQ2FwYWJpbGl0eS4KClN0dWRp ZWQgY29tbWl0IDg1MzFlMjgzYmVlNjYwNTA3MzRmYjBlODlkNTNlODVmZDVjZTI0YTQKTG9va3Mg dGhpcyBtZXRob2QgcmVxdWlyZXMgYWRkaW5nIG1lbWJlciAobGlrZSBjYW5fc3RhbGwpIHRvIHN0 cnVjdCAKcGNpX2RldiwgbG9va3MgZGlmZmljdWx0LgoKPgo+Pj4+IElmIGRldGVjdGlvbiBjYW5u b3QgYmUgZG9uZSB0aHJvdWdoIFBDSSBjb25maWcgc3BhY2UsIHRoZSBuZXh0IGJlc3QKPj4+PiBh bHRlcm5hdGl2ZSBpcyB0byBwYXNzIGF1eGlsaWFyeSBkYXRhIHRocm91Z2ggZmlybXdhcmUuIE9u IERUIGJhc2VkCj4+Pj4gbWFjaGluZXMsIHlvdSBjYW4gbGlzdCBub24taG90cGx1Z2dhYmxlIFBD SWUgZGV2aWNlcyBhbmQgYWRkIGN1c3RvbQo+Pj4+IHByb3BlcnRpZXMgdGhhdCBjb3VsZCBiZSBy ZWFkIGR1cmluZyBkZXZpY2UgZW51bWVyYXRpb24uIEkgYXNzdW1lCj4+Pj4gQUNQSSBoYXMgc29t ZXRoaW5nIHNpbWlsYXIsIGJ1dCBJIGhhdmUgbm90IGRvbmUgdGhhdC4KPj4gWWVzLCB0aGFua3Mg QXJuZAo+Pj4gQUNQSSBoYXMgX0RTTSAoQUNQSSB2Ni4zLCBzZWMgOS4xLjEpLCB3aGljaCBtaWdo dCBiZSBhIGNhbmRpZGF0ZS4gIEkKPj4+IGxpa2UgdGhpcyBiZXR0ZXIgdGhhbiBhIFBDSSBjYXBh YmlsaXR5IGJlY2F1c2UgdGhlIHByb3BlcnR5IHlvdSBuZWVkCj4+PiB0byBleHBvc2UgaXMgbm90 IGEgUENJIHByb3BlcnR5Lgo+PiBfRFNNIG1heSBub3Qgd29ya2FibGUsIHNpbmNlIGl0IGlzIHdv cmtpbmcgaW4gcnVudGltZS4KPj4gV2UgbmVlZCBzdGFsbCBpbmZvcm1hdGlvbiBpbiBpbml0IHN0 YWdlLCBuZWl0aGVyIHRvbyBlYXJseSAoYWZ0ZXIgYWxsb2NhdGlvbgo+PiBvZiBpb21tdV9md3Nw ZWMpCj4+IG5vciB0b28gbGF0ZSAoYmVmb3JlIGFybV9zbW11X2FkZF9kZXZpY2UgKS4KPiBJJ20g bm90IGF3YXJlIG9mIGEgcmVzdHJpY3Rpb24gb24gd2hlbiBfRFNNIGNhbiBiZSBldmFsdWF0ZWQu ICBJJ20KPiBsb29raW5nIGF0IEFDUEkgdjYuMywgc2VjIDkuMS4xLiAgQXJlIHlvdSBzZWVpbmcg c29tZXRoaW5nIGRpZmZlcmVudD8KRFNNIG1ldGhvZCBzZWVtcyByZXF1aXJlcyB2ZW5kb3Igc3Bl Y2lmaWMgZ3VpZCwgYW5kIGNvZGUgd291bGQgYmUgdmVuZG9yIApzcGVjaWZpYy4KRXhjZXB0IGFk ZGluZyB1dWlkIHRvIHNvbWUgc3BlYyBsaWtlIHBjaV9hY3BpX2RzbV9ndWlkLgpvYmogPSBhY3Bp X2V2YWx1YXRlX2RzbShBQ1BJX0hBTkRMRShidXMtPmJyaWRnZSksICZwY2lfYWNwaV9kc21fZ3Vp ZCwgMSwKSUdOT1JFX1BDSV9CT09UX0NPTkZJR19EU00sIE5VTEwpOwoKPj4gQnkgdGhlIHdheSwg SXQgd291bGQgYmUgYSBsb25nIHRpbWUgaWYgd2UgbmVlZCBtb2RpZnkgZWl0aGVyIHBjaWUKPj4g c3BlYyBvciBhY3BpIHNwZWMuICBDYW4gd2UgdXNlIHBjaV9maXh1cF9kZXZpY2UgaW4gaW9tbXVf ZndzcGVjX2luaXQKPj4gZmlyc3QsIGl0IGlzIHJlbGF0aXZlbHkgc2ltcGxlIGFuZCBtZWV0IHRo ZSByZXF1aXJlbWVudCBvZiBwbGF0Zm9ybQo+PiBkZXZpY2UgdXNpbmcgcGFzaWQsIGFuZCB0aGV5 IGFyZSBhbHJlYWR5IGluIHByb2R1Y3QuCj4gTmVpdGhlciB0aGUgUENJIFZlbmRvci1TcGVjaWZp YyBDYXBhYmlsaXR5IG5vciB0aGUgQUNQSSBfRFNNIHJlcXVpcmVzCj4gYSBzcGVjIGNoYW5nZS4g IEJvdGggY2FuIGJlIGNvbXBsZXRlbHkgdmVuZG9yLWRlZmluZWQuCkFkZGluZyB2ZW5kb3Itc3Bl Y2lmaWMgY29kZSB0byBjb21tb24gZmlsZXMgbG9va3MgYSBiaXQgdWdseS4KClRoYW5rcwoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1r ZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJu ZWwK