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=-7.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS autolearn=ham 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 11612C43603 for ; Wed, 4 Dec 2019 08:13:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CBEA320675 for ; Wed, 4 Dec 2019 08:13:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575447238; bh=yguauI0IayAymFt04WWVObdEb9zbkaHw3KCapf9TULg=; h=Date:From:To:Cc:Subject:In-Reply-To:References:List-ID:From; b=ZmjkmYpGA8uQsGA4HmAps/Bd86GUtQiDw6O043DEJVbgt5e0KoQMin/6Fbc30GeBW T0JPO5gi4CWJrOT3iQzqA7wymCbQfWDqupyAjVN+IiGJtWtGBW/rYM+Bw7RrganX7h ma3HIi88+Fb6AWkGJyvIKdBI63ygV7IYCqe5hVdo= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726166AbfLDIN6 convert rfc822-to-8bit (ORCPT ); Wed, 4 Dec 2019 03:13:58 -0500 Received: from inca-roads.misterjones.org ([213.251.177.50]:45862 "EHLO inca-roads.misterjones.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726053AbfLDIN6 (ORCPT ); Wed, 4 Dec 2019 03:13:58 -0500 Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=big-swifty.misterjones.org) by cheepnis.misterjones.org with esmtpsa (TLSv1.2:AES256-GCM-SHA384:256) (Exim 4.80) (envelope-from ) id 1icPnH-000632-3q; Wed, 04 Dec 2019 09:13:55 +0100 Date: Wed, 04 Dec 2019 08:13:53 +0000 Message-ID: <86k17czewu.wl-maz@kernel.org> From: Marc Zyngier To: Xiaowei Bao Cc: Robin Murphy , Roy Zang , "lorenzo.pieralisi@arm.com" , "devicetree@vger.kernel.org" , "linux-pci@vger.kernel.org" , "Z.q. Hou" , "linux-kernel@vger.kernel.org" , "M.h. Lian" , "robh+dt@kernel.org" , "linux-arm-kernel@lists.infradead.org" , "bhelgaas@google.com" , "andrew.murray@arm.com" , "frowand.list@gmail.com" , Mingkai Hu Subject: Re: [PATCH] PCI: layerscape: Add the SRIOV support in host side In-Reply-To: References: <20191202104506.27916-1-xiaowei.bao@nxp.com> <606a00a2edcf077aa868319e0daa4dbc@www.loen.fr> <3dcdf44eb76390730658e3f4d932620c@www.loen.fr> <8f56c2d9-ab01-a91e-902f-a61def0e8ce8@arm.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 EasyPG/1.0.0 Emacs/26 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: xiaowei.bao@nxp.com, robin.murphy@arm.com, roy.zang@nxp.com, lorenzo.pieralisi@arm.com, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, zhiqiang.hou@nxp.com, linux-kernel@vger.kernel.org, minghuan.lian@nxp.com, robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org, bhelgaas@google.com, andrew.murray@arm.com, frowand.list@gmail.com, mingkai.hu@nxp.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on cheepnis.misterjones.org); SAEximRunCond expanded to false Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org On Wed, 04 Dec 2019 04:34:32 +0000, Xiaowei Bao wrote: > > > > > -----Original Message----- > > From: Robin Murphy > > Sent: 2019年12月3日 23:20 > > To: Marc Zyngier ; Xiaowei Bao > > Cc: Roy Zang ; lorenzo.pieralisi@arm.com; > > devicetree@vger.kernel.org; linux-pci@vger.kernel.org; Z.q. Hou > > ; linux-kernel@vger.kernel.org; M.h. Lian > > ; robh+dt@kernel.org; > > linux-arm-kernel@lists.infradead.org; bhelgaas@google.com; > > andrew.murray@arm.com; frowand.list@gmail.com; Mingkai Hu > > > > Subject: Re: [PATCH] PCI: layerscape: Add the SRIOV support in host side > > > > On 03/12/2019 11:51 am, Marc Zyngier wrote: > > > On 2019-12-03 01:42, Xiaowei Bao wrote: > > >>> -----Original Message----- > > >>> From: Marc Zyngier > > >>> Sent: 2019年12月2日 20:48 > > >>> To: Xiaowei Bao > > >>> Cc: robh+dt@kernel.org; frowand.list@gmail.com; M.h. Lian > > >>> ; Mingkai Hu ; Roy > > Zang > > >>> ; lorenzo.pieralisi@arm.com; > > >>> andrew.murray@arm.com; bhelgaas@google.com; > > >>> devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; > > >>> linux-pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org; > > >>> Z.q. Hou > > >>> Subject: Re: [PATCH] PCI: layerscape: Add the SRIOV support in host > > >>> side > > >>> > > >>> On 2019-12-02 10:45, Xiaowei Bao wrote: > > >>> > GIC get the map relations of devid and stream id from the msi-map > > >>> > property of DTS, our platform add this property in u-boot base on > > >>> > the PCIe device in the bus, but if enable the vf device in kernel, > > >>> > the vf device msi-map will not set, so the vf device can't work, > > >>> > this patch purpose is that manage the stream id and device id map > > >>> > relations dynamically in kernel, and make the new PCIe device work in > > kernel. > > >>> > > > >>> > Signed-off-by: Xiaowei Bao > > >>> > --- > > >>> >  drivers/of/irq.c                            |  9 +++ > > >>> >  drivers/pci/controller/dwc/pci-layerscape.c | 94 > > >>> > +++++++++++++++++++++++++++++ > > >>> >  drivers/pci/probe.c                         |  6 ++ > > >>> >  drivers/pci/remove.c                        |  6 ++ > > >>> >  4 files changed, 115 insertions(+) > > >>> > > > >>> > diff --git a/drivers/of/irq.c b/drivers/of/irq.c index > > >>> > a296eaf..791e609 100644 > > >>> > --- a/drivers/of/irq.c > > >>> > +++ b/drivers/of/irq.c > > >>> > @@ -576,6 +576,11 @@ void __init of_irq_init(const struct > > >>> >of_device_id > > >>> > *matches) > > >>> >      } > > >>> >  } > > >>> > > > >>> > +u32 __weak ls_pcie_streamid_fix(struct device *dev, u32 rid) { > > >>> > +    return rid; > > >>> > +} > > >>> > + > > >>> >  static u32 __of_msi_map_rid(struct device *dev, struct > > >>> >device_node **np, > > >>> >                  u32 rid_in) > > >>> >  { > > >>> > @@ -590,6 +595,10 @@ static u32 __of_msi_map_rid(struct device > > >>> >*dev, struct device_node **np, > > >>> >          if (!of_map_rid(parent_dev->of_node, rid_in, "msi-map", > > >>> >                  "msi-map-mask", np, &rid_out)) > > >>> >              break; > > >>> > + > > >>> > +    if (rid_out == rid_in) > > >>> > +        rid_out = ls_pcie_streamid_fix(parent_dev, rid_in); > > >>> > > >>> Over my dead body. Get your firmware to properly program the LUT so > > >>> that it presents the ITS with a reasonable topology. There is > > >>> absolutely no way this kind of change makes it into the kernel. > > >> > > >> Sorry for this, I know it is not reasonable, but I have no other way, > > >> as I know, ARM get the mapping of stream ID to request ID from the > > >> msi-map property of DTS, if add a new device which need the stream ID > > >> and try to get it from the msi-map of DTS, it will failed and not > > >> work, yes? So could you give me a better advice to fix this issue, I > > >> would really appreciate any comments or suggestions, thanks a lot. > > > > > > Why can't firmware expose an msi-map/msi-map-mask that has a large > > > enough range to ensure mapping of VFs? What are the limitations of the > > > LUT that would prevent this from being configured before the kernel > > > boots? > > Thanks for your comments, yes, this is the root cause, we only have > 16 stream IDs for PCIe domain, this is the hardware limitation, if > there have enough stream IDs, we can expose an msi-map/msi-map-mask > for all PCIe devices in system, unfortunately, the stream IDs is not > enough, I think other ARM vendor have same issue that they don't > have enough stream IDs. Not that I know off. I'm using a number of ARM-based, SMMU-equipped HW that works just fine. SR-IOV is perfectly functional on these platforms, and it seems that only FSL/NXP HW requires hacks of this sort. M. -- Jazz is not dead, it just smells funny. 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=-7.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS autolearn=ham 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 2D6E8C43603 for ; Wed, 4 Dec 2019 08:14:09 +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 E7FAE20675 for ; Wed, 4 Dec 2019 08:14:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Qo/75rLI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E7FAE20675 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.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-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Subject:To:From:Message-ID:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=bHtbNNd4+MkJdQV3yyoShma09eEUDfLFpaN7G0m6PIg=; b=Qo/75rLIUG66DC 3shLsu63bE/cxrEXgy9tdyCsaXIE9YboN3u1iywH2PjnkfPx4YLFZMGlDhMgZa4brUmpnbqVfc0Dn mDJUYvXvvTs47S1K+JB0drpnKmIEK6qtKqfF0NmzxlMeS/TV0WFB9Spa7iVa+DWy5TGkTTQxSSw24 5JIlJ7yq0QJCkvVvSNi4As9Bq2hFZ6NOFjnkyEA51kkl025z4WDAtv35jRmIrm6tCuzZDLyGpw8j/ 5lIZvOc3dDXWwr1O7rzcXHKynpQtKjiYBtytV+c8e+4qtaz8cB3bEHGBUzyrtoAgNd1QtR09eBTK0 GS4jp5jMDb0+k2g7pvEQ==; 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 1icPnQ-0000Ja-Ue; Wed, 04 Dec 2019 08:14:04 +0000 Received: from inca-roads.misterjones.org ([213.251.177.50]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1icPnM-0000Ii-42 for linux-arm-kernel@lists.infradead.org; Wed, 04 Dec 2019 08:14:02 +0000 Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=big-swifty.misterjones.org) by cheepnis.misterjones.org with esmtpsa (TLSv1.2:AES256-GCM-SHA384:256) (Exim 4.80) (envelope-from ) id 1icPnH-000632-3q; Wed, 04 Dec 2019 09:13:55 +0100 Date: Wed, 04 Dec 2019 08:13:53 +0000 Message-ID: <86k17czewu.wl-maz@kernel.org> From: Marc Zyngier To: Xiaowei Bao Subject: Re: [PATCH] PCI: layerscape: Add the SRIOV support in host side In-Reply-To: References: <20191202104506.27916-1-xiaowei.bao@nxp.com> <606a00a2edcf077aa868319e0daa4dbc@www.loen.fr> <3dcdf44eb76390730658e3f4d932620c@www.loen.fr> <8f56c2d9-ab01-a91e-902f-a61def0e8ce8@arm.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 EasyPG/1.0.0 Emacs/26 (aarch64-unknown-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: xiaowei.bao@nxp.com, robin.murphy@arm.com, roy.zang@nxp.com, lorenzo.pieralisi@arm.com, devicetree@vger.kernel.org, linux-pci@vger.kernel.org, zhiqiang.hou@nxp.com, linux-kernel@vger.kernel.org, minghuan.lian@nxp.com, robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org, bhelgaas@google.com, andrew.murray@arm.com, frowand.list@gmail.com, mingkai.hu@nxp.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on cheepnis.misterjones.org); SAEximRunCond expanded to false X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191204_001400_311129_21B557EB X-CRM114-Status: GOOD ( 29.29 ) 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: Roy Zang , "lorenzo.pieralisi@arm.com" , "frowand.list@gmail.com" , "devicetree@vger.kernel.org" , "linux-pci@vger.kernel.org" , "Z.q. Hou" , "linux-kernel@vger.kernel.org" , "M.h. Lian" , "robh+dt@kernel.org" , Mingkai Hu , "bhelgaas@google.com" , "andrew.murray@arm.com" , Robin Murphy , "linux-arm-kernel@lists.infradead.org" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCAwNCBEZWMgMjAxOSAwNDozNDozMiArMDAwMCwKWGlhb3dlaSBCYW8gPHhpYW93ZWku YmFvQG54cC5jb20+IHdyb3RlOgo+IAo+IAo+IAo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0KPiA+IEZyb206IFJvYmluIE11cnBoeSA8cm9iaW4ubXVycGh5QGFybS5jb20+Cj4gPiBTZW50 OiAyMDE55bm0MTLmnIgz5pelIDIzOjIwCj4gPiBUbzogTWFyYyBaeW5naWVyIDxtYXpAa2VybmVs Lm9yZz47IFhpYW93ZWkgQmFvIDx4aWFvd2VpLmJhb0BueHAuY29tPgo+ID4gQ2M6IFJveSBaYW5n IDxyb3kuemFuZ0BueHAuY29tPjsgbG9yZW56by5waWVyYWxpc2lAYXJtLmNvbTsKPiA+IGRldmlj ZXRyZWVAdmdlci5rZXJuZWwub3JnOyBsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnOyBaLnEuIEhv dQo+ID4gPHpoaXFpYW5nLmhvdUBueHAuY29tPjsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9y ZzsgTS5oLiBMaWFuCj4gPiA8bWluZ2h1YW4ubGlhbkBueHAuY29tPjsgcm9iaCtkdEBrZXJuZWwu b3JnOwo+ID4gbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyBiaGVsZ2Fhc0Bn b29nbGUuY29tOwo+ID4gYW5kcmV3Lm11cnJheUBhcm0uY29tOyBmcm93YW5kLmxpc3RAZ21haWwu Y29tOyBNaW5na2FpIEh1Cj4gPiA8bWluZ2thaS5odUBueHAuY29tPgo+ID4gU3ViamVjdDogUmU6 IFtQQVRDSF0gUENJOiBsYXllcnNjYXBlOiBBZGQgdGhlIFNSSU9WIHN1cHBvcnQgaW4gaG9zdCBz aWRlCj4gPiAKPiA+IE9uIDAzLzEyLzIwMTkgMTE6NTEgYW0sIE1hcmMgWnluZ2llciB3cm90ZToK PiA+ID4gT24gMjAxOS0xMi0wMyAwMTo0MiwgWGlhb3dlaSBCYW8gd3JvdGU6Cj4gPiA+Pj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+ID4+PiBGcm9tOiBNYXJjIFp5bmdpZXIgPG1hekBt aXN0ZXJqb25lcy5vcmc+Cj4gPiA+Pj4gU2VudDogMjAxOeW5tDEy5pyIMuaXpSAyMDo0OAo+ID4g Pj4+IFRvOiBYaWFvd2VpIEJhbyA8eGlhb3dlaS5iYW9AbnhwLmNvbT4KPiA+ID4+PiBDYzogcm9i aCtkdEBrZXJuZWwub3JnOyBmcm93YW5kLmxpc3RAZ21haWwuY29tOyBNLmguIExpYW4KPiA+ID4+ PiA8bWluZ2h1YW4ubGlhbkBueHAuY29tPjsgTWluZ2thaSBIdSA8bWluZ2thaS5odUBueHAuY29t PjsgUm95Cj4gPiBaYW5nCj4gPiA+Pj4gPHJveS56YW5nQG54cC5jb20+OyBsb3JlbnpvLnBpZXJh bGlzaUBhcm0uY29tOwo+ID4gPj4+IGFuZHJldy5tdXJyYXlAYXJtLmNvbTsgYmhlbGdhYXNAZ29v Z2xlLmNvbTsKPiA+ID4+PiBkZXZpY2V0cmVlQHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVs QHZnZXIua2VybmVsLm9yZzsKPiA+ID4+PiBsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnOyBsaW51 eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7Cj4gPiA+Pj4gWi5xLiBIb3UgPHpoaXFp YW5nLmhvdUBueHAuY29tPgo+ID4gPj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIFBDSTogbGF5ZXJz Y2FwZTogQWRkIHRoZSBTUklPViBzdXBwb3J0IGluIGhvc3QKPiA+ID4+PiBzaWRlCj4gPiA+Pj4K PiA+ID4+PiBPbiAyMDE5LTEyLTAyIDEwOjQ1LCBYaWFvd2VpIEJhbyB3cm90ZToKPiA+ID4+PiA+ IEdJQyBnZXQgdGhlIG1hcCByZWxhdGlvbnMgb2YgZGV2aWQgYW5kIHN0cmVhbSBpZCBmcm9tIHRo ZSBtc2ktbWFwCj4gPiA+Pj4gPiBwcm9wZXJ0eSBvZiBEVFMsIG91ciBwbGF0Zm9ybSBhZGQgdGhp cyBwcm9wZXJ0eSBpbiB1LWJvb3QgYmFzZSBvbgo+ID4gPj4+ID4gdGhlIFBDSWUgZGV2aWNlIGlu IHRoZSBidXMsIGJ1dCBpZiBlbmFibGUgdGhlIHZmIGRldmljZSBpbiBrZXJuZWwsCj4gPiA+Pj4g PiB0aGUgdmYgZGV2aWNlIG1zaS1tYXAgd2lsbCBub3Qgc2V0LCBzbyB0aGUgdmYgZGV2aWNlIGNh bid0IHdvcmssCj4gPiA+Pj4gPiB0aGlzIHBhdGNoIHB1cnBvc2UgaXMgdGhhdCBtYW5hZ2UgdGhl IHN0cmVhbSBpZCBhbmQgZGV2aWNlIGlkIG1hcAo+ID4gPj4+ID4gcmVsYXRpb25zIGR5bmFtaWNh bGx5IGluIGtlcm5lbCwgYW5kIG1ha2UgdGhlIG5ldyBQQ0llIGRldmljZSB3b3JrIGluCj4gPiBr ZXJuZWwuCj4gPiA+Pj4gPgo+ID4gPj4+ID4gU2lnbmVkLW9mZi1ieTogWGlhb3dlaSBCYW8gPHhp YW93ZWkuYmFvQG54cC5jb20+Cj4gPiA+Pj4gPiAtLS0KPiA+ID4+PiA+wqAgZHJpdmVycy9vZi9p cnEuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB8wqAgOSArKysKPiA+ID4+PiA+wqAgZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWxh eWVyc2NhcGUuYyB8IDk0Cj4gPiA+Pj4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ ID4gPj4+ID7CoCBkcml2ZXJzL3BjaS9wcm9iZS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA2ICsrCj4gPiA+Pj4gPsKgIGRyaXZlcnMvcGNpL3Jl bW92ZS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAg NiArKwo+ID4gPj4+ID7CoCA0IGZpbGVzIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspCj4gPiA+ Pj4gPgo+ID4gPj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvb2YvaXJxLmMgYi9kcml2ZXJzL29m L2lycS5jIGluZGV4Cj4gPiA+Pj4gPiBhMjk2ZWFmLi43OTFlNjA5IDEwMDY0NAo+ID4gPj4+ID4g LS0tIGEvZHJpdmVycy9vZi9pcnEuYwo+ID4gPj4+ID4gKysrIGIvZHJpdmVycy9vZi9pcnEuYwo+ ID4gPj4+ID4gQEAgLTU3Niw2ICs1NzYsMTEgQEAgdm9pZCBfX2luaXQgb2ZfaXJxX2luaXQoY29u c3Qgc3RydWN0Cj4gPiA+Pj4gPm9mX2RldmljZV9pZAo+ID4gPj4+ID4gKm1hdGNoZXMpCj4gPiA+ Pj4gPsKgwqDCoMKgwqAgfQo+ID4gPj4+ID7CoCB9Cj4gPiA+Pj4gPgo+ID4gPj4+ID4gK3UzMiBf X3dlYWsgbHNfcGNpZV9zdHJlYW1pZF9maXgoc3RydWN0IGRldmljZSAqZGV2LCB1MzIgcmlkKSB7 Cj4gPiA+Pj4gPiArwqDCoMKgIHJldHVybiByaWQ7Cj4gPiA+Pj4gPiArfQo+ID4gPj4+ID4gKwo+ ID4gPj4+ID7CoCBzdGF0aWMgdTMyIF9fb2ZfbXNpX21hcF9yaWQoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QKPiA+ID4+PiA+ZGV2aWNlX25vZGUgICoqbnAsCj4gPiA+Pj4gPsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTMyIHJpZF9pbikKPiA+ID4+PiA+wqAgewo+ID4gPj4+ ID4gQEAgLTU5MCw2ICs1OTUsMTAgQEAgc3RhdGljIHUzMiBfX29mX21zaV9tYXBfcmlkKHN0cnVj dCBkZXZpY2UKPiA+ID4+PiA+KmRldiwgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqKm5wLAo+ID4gPj4+ ID7CoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFvZl9tYXBfcmlkKHBhcmVudF9kZXYtPm9mX25vZGUs IHJpZF9pbiwgIm1zaS1tYXAiLAo+ID4gPj4+ID7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICJtc2ktbWFwLW1hc2siLCBucCwgJnJpZF9vdXQpKQo+ID4gPj4+ID7CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBicmVhazsKPiA+ID4+PiA+ICsKPiA+ID4+PiA+ICvCoMKgwqAgaWYg KHJpZF9vdXQgPT0gcmlkX2luKQo+ID4gPj4+ID4gK8KgwqDCoMKgwqDCoMKgIHJpZF9vdXQgPSBs c19wY2llX3N0cmVhbWlkX2ZpeChwYXJlbnRfZGV2LCByaWRfaW4pOwo+ID4gPj4+Cj4gPiA+Pj4g T3ZlciBteSBkZWFkIGJvZHkuIEdldCB5b3VyIGZpcm13YXJlIHRvIHByb3Blcmx5IHByb2dyYW0g dGhlIExVVCBzbwo+ID4gPj4+IHRoYXQgaXQgcHJlc2VudHMgdGhlIElUUyB3aXRoIGEgcmVhc29u YWJsZSB0b3BvbG9neS4gVGhlcmUgaXMKPiA+ID4+PiBhYnNvbHV0ZWx5IG5vIHdheSB0aGlzIGtp bmQgb2YgY2hhbmdlIG1ha2VzIGl0IGludG8gdGhlIGtlcm5lbC4KPiA+ID4+Cj4gPiA+PiBTb3Jy eSBmb3IgdGhpcywgSSBrbm93IGl0IGlzIG5vdCByZWFzb25hYmxlLCBidXQgSSBoYXZlIG5vIG90 aGVyIHdheSwKPiA+ID4+IGFzIEkga25vdywgQVJNIGdldCB0aGUgbWFwcGluZyBvZiBzdHJlYW0g SUQgdG8gcmVxdWVzdCBJRCBmcm9tIHRoZQo+ID4gPj4gbXNpLW1hcCBwcm9wZXJ0eSBvZiBEVFMs IGlmIGFkZCBhIG5ldyBkZXZpY2Ugd2hpY2ggbmVlZCB0aGUgc3RyZWFtIElECj4gPiA+PiBhbmQg dHJ5IHRvIGdldCBpdCBmcm9tIHRoZSBtc2ktbWFwIG9mIERUUywgaXQgd2lsbCBmYWlsZWQgYW5k IG5vdAo+ID4gPj4gd29yaywgeWVzPyBTbyBjb3VsZCB5b3UgZ2l2ZSBtZSBhIGJldHRlciBhZHZp Y2UgdG8gZml4IHRoaXMgaXNzdWUsIEkKPiA+ID4+IHdvdWxkIHJlYWxseSBhcHByZWNpYXRlIGFu eSBjb21tZW50cyBvciBzdWdnZXN0aW9ucywgdGhhbmtzIGEgbG90Lgo+ID4gPgo+ID4gPiBXaHkg Y2FuJ3QgZmlybXdhcmUgZXhwb3NlIGFuIG1zaS1tYXAvbXNpLW1hcC1tYXNrIHRoYXQgaGFzIGEg bGFyZ2UKPiA+ID4gZW5vdWdoIHJhbmdlIHRvIGVuc3VyZSBtYXBwaW5nIG9mIFZGcz8gV2hhdCBh cmUgdGhlIGxpbWl0YXRpb25zIG9mIHRoZQo+ID4gPiBMVVQgdGhhdCB3b3VsZCBwcmV2ZW50IHRo aXMgZnJvbSBiZWluZyBjb25maWd1cmVkIGJlZm9yZSB0aGUga2VybmVsCj4gPiA+IGJvb3RzPwo+ IAo+IFRoYW5rcyBmb3IgeW91ciBjb21tZW50cywgeWVzLCB0aGlzIGlzIHRoZSByb290IGNhdXNl LCB3ZSBvbmx5IGhhdmUKPiAxNiBzdHJlYW0gSURzIGZvciBQQ0llIGRvbWFpbiwgdGhpcyBpcyB0 aGUgaGFyZHdhcmUgbGltaXRhdGlvbiwgaWYKPiB0aGVyZSBoYXZlIGVub3VnaCBzdHJlYW0gSURz LCB3ZSBjYW4gZXhwb3NlIGFuIG1zaS1tYXAvbXNpLW1hcC1tYXNrCj4gZm9yIGFsbCBQQ0llIGRl dmljZXMgaW4gc3lzdGVtLCB1bmZvcnR1bmF0ZWx5LCB0aGUgc3RyZWFtIElEcyBpcyBub3QKPiBl bm91Z2gsIEkgdGhpbmsgb3RoZXIgQVJNIHZlbmRvciBoYXZlIHNhbWUgaXNzdWUgdGhhdCB0aGV5 IGRvbid0Cj4gaGF2ZSBlbm91Z2ggc3RyZWFtIElEcy4KCk5vdCB0aGF0IEkga25vdyBvZmYuCgpJ J20gdXNpbmcgYSBudW1iZXIgb2YgQVJNLWJhc2VkLCBTTU1VLWVxdWlwcGVkIEhXIHRoYXQgd29y a3MganVzdApmaW5lLiBTUi1JT1YgaXMgcGVyZmVjdGx5IGZ1bmN0aW9uYWwgb24gdGhlc2UgcGxh dGZvcm1zLCBhbmQgaXQgc2VlbXMKdGhhdCBvbmx5IEZTTC9OWFAgSFcgcmVxdWlyZXMgaGFja3Mg b2YgdGhpcyBzb3J0LgoKCU0uCgotLSAKSmF6eiBpcyBub3QgZGVhZCwgaXQganVzdCBzbWVsbHMg ZnVubnkuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg==