From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,2/2] dt-bindings: Document the Synopsys DW AXI DMA bindings From: Alexey Brodkin Message-Id: <1520286562.4366.13.camel@synopsys.com> Date: Mon, 5 Mar 2018 21:49:23 +0000 To: "robh@kernel.org" , "vinod.koul@intel.com" Cc: "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "Eugeniy.Paltsev@synopsys.com" , "linux-snps-arc@lists.infradead.org" , "andy.shevchenko@gmail.com" , "dan.j.williams@intel.com" , "dmaengine@vger.kernel.org" , "wan.ahmad.zainie.wan.mohamad@intel.com" List-ID: SGkgUm9iLA0KDQpPbiBNb24sIDIwMTgtMDMtMDUgYXQgMTU6MDcgLTA2MDAsIFJvYiBIZXJyaW5n IHdyb3RlOg0KPiBPbiBNb24sIE1hciAwNSwgMjAxOCBhdCAxMTowMjo1NkFNICswNTMwLCBWaW5v ZCBLb3VsIHdyb3RlOg0KPiA+IE9uIEZyaSwgTWFyIDAyLCAyMDE4IGF0IDA4OjMyOjIwQU0gKzAw MDAsIEFsZXhleSBCcm9ka2luIHdyb3RlOg0KPiA+ID4gSGkgVmlub2QsDQo+ID4gPiANCj4gPiA+ IE9uIEZyaSwgMjAxOC0wMy0wMiBhdCAxMzo0NCArMDUzMCwgVmlub2QgS291bCB3cm90ZToNCj4g PiA+ID4gT24gTW9uLCBGZWIgMjYsIDIwMTggYXQgMDU6NTY6MjhQTSArMDMwMCwgRXVnZW5peSBQ YWx0c2V2IHdyb3RlOg0KPiA+ID4gPiA+IFRoaXMgcGF0Y2ggYWRkcyBkb2N1bWVudGF0aW9uIG9m IGRldmljZSB0cmVlIGJpbmRpbmdzIGZvciB0aGUgU3lub3BzeXMNCj4gPiA+ID4gPiBEZXNpZ25X YXJlIEFYSSBETUEgY29udHJvbGxlci4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBTaWduZWQtb2Zm LWJ5OiBFdWdlbml5IFBhbHRzZXYgPEV1Z2VuaXkuUGFsdHNldkBzeW5vcHN5cy5jb20+DQo+ID4g PiA+ID4gLS0tDQo+ID4gPiA+ID4gIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9zbnBzLGR3 LWF4aS1kbWFjLnR4dCAgIHwgNDEgKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiA+ICAx IGZpbGUgY2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygrKQ0KPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9zbnBzLGR3LWF4aS1k bWFjLnR4dA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvZG1hL3NucHMsZHctYXhpLWRtYWMudHh0IGIvRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9zbnBzLGR3LWF4aS1kbWFjLnR4dA0KPiA+ID4g PiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gaW5kZXggMDAwMDAwMC4uZjIzN2I3 OQ0KPiA+ID4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ID4gPiArKysgYi9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvZG1hL3NucHMsZHctYXhpLWRtYWMudHh0DQo+ID4gPiA+ID4g QEAgLTAsMCArMSw0MSBAQA0KPiA+ID4gPiA+ICtTeW5vcHN5cyBEZXNpZ25XYXJlIEFYSSBETUEg Q29udHJvbGxlcg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArUmVxdWlyZWQgcHJvcGVydGllczoN Cj4gPiA+ID4gPiArLSBjb21wYXRpYmxlOiAic25wcyxheGktZG1hLTEuMDFhIg0KPiA+ID4gPiA+ ICstIHJlZzogQWRkcmVzcyByYW5nZSBvZiB0aGUgRE1BQyByZWdpc3RlcnMuIFRoaXMgc2hvdWxk IGluY2x1ZGUNCj4gPiA+ID4gPiArICBhbGwgb2YgdGhlIHBlci1jaGFubmVsIHJlZ2lzdGVycy4N Cj4gPiA+ID4gPiArLSBpbnRlcnJ1cHQ6IFNob3VsZCBjb250YWluIHRoZSBETUFDIGludGVycnVw dCBudW1iZXIuDQo+ID4gPiA+ID4gKy0gaW50ZXJydXB0LXBhcmVudDogU2hvdWxkIGJlIHRoZSBw aGFuZGxlIGZvciB0aGUgaW50ZXJydXB0IGNvbnRyb2xsZXINCj4gPiA+ID4gPiArICB0aGF0IHNl cnZpY2VzIGludGVycnVwdHMgZm9yIHRoaXMgZGV2aWNlLg0KPiA+ID4gPiA+ICstIGRtYS1jaGFu bmVsczogTnVtYmVyIG9mIGNoYW5uZWxzIHN1cHBvcnRlZCBieSBoYXJkd2FyZS4NCj4gPiA+ID4g PiArLSBzbnBzLGRtYS1tYXN0ZXJzOiBOdW1iZXIgb2YgQVhJIG1hc3RlcnMgc3VwcG9ydGVkIGJ5 IHRoZSBoYXJkd2FyZS4NCj4gPiA+ID4gPiArLSBzbnBzLGRhdGEtd2lkdGg6IE1heGltdW0gQVhJ IGRhdGEgd2lkdGggc3VwcG9ydGVkIGJ5IGhhcmR3YXJlLg0KPiA+ID4gPiA+ICsgICgwIC0gOGJp dHMsIDEgLSAxNmJpdHMsIDIgLSAzMmJpdHMsIC4uLiwgNiAtIDUxMmJpdHMpDQo+ID4gPiA+ID4g Ky0gc25wcyxwcmlvcml0eTogUHJpb3JpdHkgb2YgY2hhbm5lbC4gQXJyYXkgc2l6ZSBpcyBlcXVh bCB0byB0aGUgbnVtYmVyIG9mDQo+ID4gPiA+ID4gKyAgZG1hLWNoYW5uZWxzLiBQcmlvcml0eSB2 YWx1ZSBtdXN0IGJlIHByb2dyYW1tZWQgd2l0aGluIFswOmRtYS1jaGFubmVscy0xXQ0KPiA+ID4g PiA+ICsgIHJhbmdlLiAoMCAtIG1pbmltdW0gcHJpb3JpdHkpDQo+ID4gPiA+ID4gKy0gc25wcyxi bG9jay1zaXplOiBNYXhpbXVtIGJsb2NrIHNpemUgc3VwcG9ydGVkIGJ5IHRoZSBjb250cm9sbGVy IGNoYW5uZWwuDQo+ID4gPiA+ID4gKyAgQXJyYXkgc2l6ZSBpcyBlcXVhbCB0byB0aGUgbnVtYmVy IG9mIGRtYS1jaGFubmVscy4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK09wdGlvbmFsIHByb3Bl cnRpZXM6DQo+ID4gPiA+ID4gKy0gc25wcyxheGktbWF4LWJ1cnN0LWxlbjogUmVzdHJpY3QgbWFz dGVyIEFYSSBidXJzdCBsZW5ndGggYnkgdmFsdWUgc3BlY2lmaWVkDQo+ID4gPiA+ID4gKyAgaW4g dGhpcyBwcm9wZXJ0eS4gSWYgdGhpcyBwcm9wZXJ0eSBpcyBtaXNzaW5nIHRoZSBtYXhpbXVtIEFY SSBidXJzdCBsZW5ndGgNCj4gPiA+ID4gPiArICBzdXBwb3J0ZWQgYnkgRE1BQyBpcyB1c2VkLiBb MToyNTZdDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtFeGFtcGxlOg0KPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiArZG1hYzogZG1hLWNvbnRyb2xsZXJAODAwMDAgew0KPiA+ID4gPiA+ICsJY29tcGF0 aWJsZSA9ICJzbnBzLGF4aS1kbWEtMS4wMWEiOw0KPiA+ID4gPiANCj4gPiA+ID4gZG8gd2UgbmVl ZCAic25wcyBoZXJlLi4/DQo+ID4gPiANCj4gPiA+IFN5bm9wc3lzIGlzIHRoaXMgSVAtYmxvY2sg dmVuZG9yIHNvIHNob3VsZG4ndCB3ZSBwdXQgaXQgdGhhdCB3YXk/DQo+ID4gDQo+ID4gTm90IGEg RFQgZXhwZXJ0IGJ1dCB3aHkgc2hvdWxkIHZlbmRvciBuYW1lIGNvbWUgaGVyZSwgeW91IGNhbiBy ZWFkIHRoZQ0KPiA+IHByb3BlcnRpZXMgZnJvbSBkZXZpY2Ugbm9kZSwgdmVuZG9yIG5hbWUgc2Vl bXMgcmVkdW5kYW50IHRvIG1lDQo+IA0KPiBJIGRvbid0IGZvbGxvdy4uLg0KPiANCj4gSW4gYW55 IGNhc2UsIHllcywgaXQgbXVzdCBoYXZlIGEgdmVuZG9yIHByZWZpeC4gSXQgc2hvdWxkIGFsc28g aGF2ZSBhIA0KPiBjb21wYXRpYmxlIGZvciB0aGUgdmVuZG9yKHMpIHRoYXQgaW50ZWdyYXRlIHRo ZSBibG9jayBiZWNhdXNlIHRoZXkgYWxsIA0KPiBicmVhayBpdCBpbiBkaWZmZXJlbnQgd2F5cy4g U3BlYWtpbmcgb2Ygd2hpY2gsIHdlIGFscmVhZHkgaGF2ZSANCj4gc25wcy1kbWEudHh0IGFuZCBh dCBsZWFzdCBBbmFsb2cgRGV2aWNlcyBiaW5kaW5nIHVzaW5nIGEgU3lub3BzeXMgRE1BLiANCj4g V2hhdCdzIHRoZSBkaWZmZXJlbmNlPw0KPiANCg0KVGhlcmUncyBpbmRlZWQgc29tZSBjb25mdXNp b24uDQoNCjEuIEFzIGEgcGFydCBvZiBhIF9uZXdfZHJpdmVyXyBzdWJtaXNzaW9uIHdlJ3JlIHBy ZXBhcmluZyBEVCBiaW5kaW5ncyBkb2NzIHdoZXJlIHdlDQogICBuZWVkIHRvIHJlcXVpcmUgc29t ZSBjb21wYXRpYmxlIHN0cmluZy4uLiB3ZWxsIGF0IGxlYXN0IG1hbnkgb3RoZXIgYmluZGluZyBk b2NzDQogICBkbyBzbyBpZiBJJ20gbm90IG1pc3Rha2VuLiBBbmQgc28gd2UgcHJvcG9zZSB0byBy ZXF1aXJlICJzbnBzLGF4aS1kbWEtMS4wMWEiDQogICB3aGVyZSB2ZXJzaW9uIG1hdGNoZXMgaW1w bGVtZW50YXRpb24gaW4gYW4gU29DIHdlIGN1cnJlbnRseSBoYXZlLg0KDQoyLiBJbiB0aGF0IHN0 cmluZyB3ZSBtZW50aW9uIFN5bm9wc3lzIGFzIGEgdmVuZG9yIGJ1dCBmb3IgZHJpdmVyIGFsb25l ICh3aXRob3V0IGFueSBwYXJ0aWN1bGFyIFNvQykNCiAgIGl0IGlzIHJlbGFldGVkIHRvIElQLWJs b2NrIHdoaWNoIG1pZ2h0IGVuZC11cCBiZWluZyB1c2VkIGluIG1hbnkgZGlmZmVyZW50IFNvQ3Mu DQoNCjMuIFN5bm9wc3lzIGhhcyAyIGNvbXBsZXRlbHkgZGlmZmVyZW50IERNQUMgSVAtYmxvY2tz LiBXZWxsLWtub3duIEFIQiBETUFDLCBzZWUgWzFdLCBbMl0NCiAgIGFuZCBBWEkgRE1BQywgc2Vl IFszXSB3aGljaCBpcyBub3QgeWV0IHVzZWQgYW55d2hlcmUgYW5kIHRoYXQncyB0aGUgb25lIHdl J3JlIGRpc2N1c3NpbmcNCiAgIGN1cnJlbnRseS4NCg0KNC4gVGhpcyBEVyBBWEkgRE1BQyBzZWVt cyB0byBoYXZlIG5vdGhpbmcgdG8gZG8gd2l0aCBtZW50aW9uZWQgImRtYS1heGktZG1hYy5jIiB3 aGljaA0KICAgQlRXIGhhcyBjb21wYXRpYmxlID0gImFkaSxheGktZG1hYy0xLjAwLmEiLg0KICAg DQpBcyBhbiB1bmRlcmxpbmUgSSBkb24ndCBzZWUgYW55IG90aGVyIG9wdGlvbiBmb3IgImRlZmF1 bHQiIGNvbXBhdGlibGUgZm9yIHRoYXQNCmJyYW5kIG5ldyBETUFDIGRyaXZlciwgdGhvdWdoIG9u Y2Ugd2Ugc3RhcnQgYWRkaW5nIFNvQyB0aGF0IHJlYWxseSB1c2UgdGhhdCBJUC1ibG9jaw0Kd2Ug bWF5IGdldCBtb3JlIGNvbXBhdGlibGUgc3RyaW5ncyBpZiBpbXBsZW1lbnRhdGlvbnMgZGlmZmVy IGZyb20gd2hhdCB3ZSBoYXZlIG5vdy4NCg0KWzFdIGh0dHBzOi8vd3d3LnN5bm9wc3lzLmNvbS9k dy9pcGRpci5waHA/Yz1EV19haGJfZG1hYw0KWzJdIGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHVi L3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdC90cmVlL2RyaXZlcnMvZG1h L2R3DQpbM10gaHR0cHM6Ly93d3cuc3lub3BzeXMuY29tL2R3L2lwZGlyLnBocD9jPURXX2F4aV9k bWFjDQoNClJlZ2FyZHMsDQpBbGV4ZXkK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey.Brodkin@synopsys.com (Alexey Brodkin) Date: Mon, 5 Mar 2018 21:49:23 +0000 Subject: [PATCH v2 2/2] dt-bindings: Document the Synopsys DW AXI DMA bindings In-Reply-To: <20180305210751.7wzo2lqvyldijkot@rob-hp-laptop> References: <20180226145628.11892-1-Eugeniy.Paltsev@synopsys.com> <20180226145628.11892-3-Eugeniy.Paltsev@synopsys.com> <20180302081408.GK15443@localhost> <1519979538.4430.7.camel@synopsys.com> <20180305053256.GN15443@localhost> <20180305210751.7wzo2lqvyldijkot@rob-hp-laptop> List-ID: Message-ID: <1520286562.4366.13.camel@synopsys.com> To: linux-snps-arc@lists.infradead.org Hi Rob, On Mon, 2018-03-05@15:07 -0600, Rob Herring wrote: > On Mon, Mar 05, 2018@11:02:56AM +0530, Vinod Koul wrote: > > On Fri, Mar 02, 2018@08:32:20AM +0000, Alexey Brodkin wrote: > > > Hi Vinod, > > > > > > On Fri, 2018-03-02@13:44 +0530, Vinod Koul wrote: > > > > On Mon, Feb 26, 2018@05:56:28PM +0300, Eugeniy Paltsev wrote: > > > > > This patch adds documentation of device tree bindings for the Synopsys > > > > > DesignWare AXI DMA controller. > > > > > > > > > > Signed-off-by: Eugeniy Paltsev > > > > > --- > > > > > .../devicetree/bindings/dma/snps,dw-axi-dmac.txt | 41 ++++++++++++++++++++++ > > > > > 1 file changed, 41 insertions(+) > > > > > create mode 100644 Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.txt > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.txt b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.txt > > > > > new file mode 100644 > > > > > index 0000000..f237b79 > > > > > --- /dev/null > > > > > +++ b/Documentation/devicetree/bindings/dma/snps,dw-axi-dmac.txt > > > > > @@ -0,0 +1,41 @@ > > > > > +Synopsys DesignWare AXI DMA Controller > > > > > + > > > > > +Required properties: > > > > > +- compatible: "snps,axi-dma-1.01a" > > > > > +- reg: Address range of the DMAC registers. This should include > > > > > + all of the per-channel registers. > > > > > +- interrupt: Should contain the DMAC interrupt number. > > > > > +- interrupt-parent: Should be the phandle for the interrupt controller > > > > > + that services interrupts for this device. > > > > > +- dma-channels: Number of channels supported by hardware. > > > > > +- snps,dma-masters: Number of AXI masters supported by the hardware. > > > > > +- snps,data-width: Maximum AXI data width supported by hardware. > > > > > + (0 - 8bits, 1 - 16bits, 2 - 32bits, ..., 6 - 512bits) > > > > > +- snps,priority: Priority of channel. Array size is equal to the number of > > > > > + dma-channels. Priority value must be programmed within [0:dma-channels-1] > > > > > + range. (0 - minimum priority) > > > > > +- snps,block-size: Maximum block size supported by the controller channel. > > > > > + Array size is equal to the number of dma-channels. > > > > > + > > > > > +Optional properties: > > > > > +- snps,axi-max-burst-len: Restrict master AXI burst length by value specified > > > > > + in this property. If this property is missing the maximum AXI burst length > > > > > + supported by DMAC is used. [1:256] > > > > > + > > > > > +Example: > > > > > + > > > > > +dmac: dma-controller at 80000 { > > > > > + compatible = "snps,axi-dma-1.01a"; > > > > > > > > do we need "snps here..? > > > > > > Synopsys is this IP-block vendor so shouldn't we put it that way? > > > > Not a DT expert but why should vendor name come here, you can read the > > properties from device node, vendor name seems redundant to me > > I don't follow... > > In any case, yes, it must have a vendor prefix. It should also have a > compatible for the vendor(s) that integrate the block because they all > break it in different ways. Speaking of which, we already have > snps-dma.txt and at least Analog Devices binding using a Synopsys DMA. > What's the difference? > There's indeed some confusion. 1. As a part of a _new_driver_ submission we're preparing DT bindings docs where we need to require some compatible string... well at least many other binding docs do so if I'm not mistaken. And so we propose to require "snps,axi-dma-1.01a" where version matches implementation in an SoC we currently have. 2. In that string we mention Synopsys as a vendor but for driver alone (without any particular SoC) it is relaeted to IP-block which might end-up being used in many different SoCs. 3. Synopsys has 2 completely different DMAC IP-blocks. Well-known AHB DMAC, see [1], [2] and AXI DMAC, see [3] which is not yet used anywhere and that's the one we're discussing currently. 4. This DW AXI DMAC seems to have nothing to do with mentioned "dma-axi-dmac.c" which BTW has compatible = "adi,axi-dmac-1.00.a". As an underline I don't see any other option for "default" compatible for that brand new DMAC driver, though once we start adding SoC that really use that IP-block we may get more compatible strings if implementations differ from what we have now. [1] https://www.synopsys.com/dw/ipdir.php?c=DW_ahb_dmac [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/dma/dw [3] https://www.synopsys.com/dw/ipdir.php?c=DW_axi_dmac Regards, Alexey From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey Brodkin Subject: Re: [PATCH v2 2/2] dt-bindings: Document the Synopsys DW AXI DMA bindings Date: Mon, 5 Mar 2018 21:49:23 +0000 Message-ID: <1520286562.4366.13.camel@synopsys.com> References: <20180226145628.11892-1-Eugeniy.Paltsev@synopsys.com> <20180226145628.11892-3-Eugeniy.Paltsev@synopsys.com> <20180302081408.GK15443@localhost> <1519979538.4430.7.camel@synopsys.com> <20180305053256.GN15443@localhost> <20180305210751.7wzo2lqvyldijkot@rob-hp-laptop> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180305210751.7wzo2lqvyldijkot@rob-hp-laptop> Content-Language: en-US Content-ID: Sender: linux-kernel-owner@vger.kernel.org To: "robh@kernel.org" , "vinod.koul@intel.com" Cc: "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "Eugeniy.Paltsev@synopsys.com" , "linux-snps-arc@lists.infradead.org" , "andy.shevchenko@gmail.com" , "dan.j.williams@intel.com" , "dmaengine@vger.kernel.org" , "wan.ahmad.zainie.wan.mohamad@intel.com" List-Id: devicetree@vger.kernel.org SGkgUm9iLA0KDQpPbiBNb24sIDIwMTgtMDMtMDUgYXQgMTU6MDcgLTA2MDAsIFJvYiBIZXJyaW5n IHdyb3RlOg0KPiBPbiBNb24sIE1hciAwNSwgMjAxOCBhdCAxMTowMjo1NkFNICswNTMwLCBWaW5v ZCBLb3VsIHdyb3RlOg0KPiA+IE9uIEZyaSwgTWFyIDAyLCAyMDE4IGF0IDA4OjMyOjIwQU0gKzAw MDAsIEFsZXhleSBCcm9ka2luIHdyb3RlOg0KPiA+ID4gSGkgVmlub2QsDQo+ID4gPiANCj4gPiA+ IE9uIEZyaSwgMjAxOC0wMy0wMiBhdCAxMzo0NCArMDUzMCwgVmlub2QgS291bCB3cm90ZToNCj4g PiA+ID4gT24gTW9uLCBGZWIgMjYsIDIwMTggYXQgMDU6NTY6MjhQTSArMDMwMCwgRXVnZW5peSBQ YWx0c2V2IHdyb3RlOg0KPiA+ID4gPiA+IFRoaXMgcGF0Y2ggYWRkcyBkb2N1bWVudGF0aW9uIG9m IGRldmljZSB0cmVlIGJpbmRpbmdzIGZvciB0aGUgU3lub3BzeXMNCj4gPiA+ID4gPiBEZXNpZ25X YXJlIEFYSSBETUEgY29udHJvbGxlci4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBTaWduZWQtb2Zm LWJ5OiBFdWdlbml5IFBhbHRzZXYgPEV1Z2VuaXkuUGFsdHNldkBzeW5vcHN5cy5jb20+DQo+ID4g PiA+ID4gLS0tDQo+ID4gPiA+ID4gIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9zbnBzLGR3 LWF4aS1kbWFjLnR4dCAgIHwgNDEgKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiA+ICAx IGZpbGUgY2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygrKQ0KPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9zbnBzLGR3LWF4aS1k bWFjLnR4dA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvZG1hL3NucHMsZHctYXhpLWRtYWMudHh0IGIvRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2RtYS9zbnBzLGR3LWF4aS1kbWFjLnR4dA0KPiA+ID4g PiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gPiA+ID4gaW5kZXggMDAwMDAwMC4uZjIzN2I3 OQ0KPiA+ID4gPiA+IC0tLSAvZGV2L251bGwNCj4gPiA+ID4gPiArKysgYi9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvZG1hL3NucHMsZHctYXhpLWRtYWMudHh0DQo+ID4gPiA+ID4g QEAgLTAsMCArMSw0MSBAQA0KPiA+ID4gPiA+ICtTeW5vcHN5cyBEZXNpZ25XYXJlIEFYSSBETUEg Q29udHJvbGxlcg0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArUmVxdWlyZWQgcHJvcGVydGllczoN Cj4gPiA+ID4gPiArLSBjb21wYXRpYmxlOiAic25wcyxheGktZG1hLTEuMDFhIg0KPiA+ID4gPiA+ ICstIHJlZzogQWRkcmVzcyByYW5nZSBvZiB0aGUgRE1BQyByZWdpc3RlcnMuIFRoaXMgc2hvdWxk IGluY2x1ZGUNCj4gPiA+ID4gPiArICBhbGwgb2YgdGhlIHBlci1jaGFubmVsIHJlZ2lzdGVycy4N Cj4gPiA+ID4gPiArLSBpbnRlcnJ1cHQ6IFNob3VsZCBjb250YWluIHRoZSBETUFDIGludGVycnVw dCBudW1iZXIuDQo+ID4gPiA+ID4gKy0gaW50ZXJydXB0LXBhcmVudDogU2hvdWxkIGJlIHRoZSBw aGFuZGxlIGZvciB0aGUgaW50ZXJydXB0IGNvbnRyb2xsZXINCj4gPiA+ID4gPiArICB0aGF0IHNl cnZpY2VzIGludGVycnVwdHMgZm9yIHRoaXMgZGV2aWNlLg0KPiA+ID4gPiA+ICstIGRtYS1jaGFu bmVsczogTnVtYmVyIG9mIGNoYW5uZWxzIHN1cHBvcnRlZCBieSBoYXJkd2FyZS4NCj4gPiA+ID4g PiArLSBzbnBzLGRtYS1tYXN0ZXJzOiBOdW1iZXIgb2YgQVhJIG1hc3RlcnMgc3VwcG9ydGVkIGJ5 IHRoZSBoYXJkd2FyZS4NCj4gPiA+ID4gPiArLSBzbnBzLGRhdGEtd2lkdGg6IE1heGltdW0gQVhJ IGRhdGEgd2lkdGggc3VwcG9ydGVkIGJ5IGhhcmR3YXJlLg0KPiA+ID4gPiA+ICsgICgwIC0gOGJp dHMsIDEgLSAxNmJpdHMsIDIgLSAzMmJpdHMsIC4uLiwgNiAtIDUxMmJpdHMpDQo+ID4gPiA+ID4g Ky0gc25wcyxwcmlvcml0eTogUHJpb3JpdHkgb2YgY2hhbm5lbC4gQXJyYXkgc2l6ZSBpcyBlcXVh bCB0byB0aGUgbnVtYmVyIG9mDQo+ID4gPiA+ID4gKyAgZG1hLWNoYW5uZWxzLiBQcmlvcml0eSB2 YWx1ZSBtdXN0IGJlIHByb2dyYW1tZWQgd2l0aGluIFswOmRtYS1jaGFubmVscy0xXQ0KPiA+ID4g PiA+ICsgIHJhbmdlLiAoMCAtIG1pbmltdW0gcHJpb3JpdHkpDQo+ID4gPiA+ID4gKy0gc25wcyxi bG9jay1zaXplOiBNYXhpbXVtIGJsb2NrIHNpemUgc3VwcG9ydGVkIGJ5IHRoZSBjb250cm9sbGVy IGNoYW5uZWwuDQo+ID4gPiA+ID4gKyAgQXJyYXkgc2l6ZSBpcyBlcXVhbCB0byB0aGUgbnVtYmVy IG9mIGRtYS1jaGFubmVscy4NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gK09wdGlvbmFsIHByb3Bl cnRpZXM6DQo+ID4gPiA+ID4gKy0gc25wcyxheGktbWF4LWJ1cnN0LWxlbjogUmVzdHJpY3QgbWFz dGVyIEFYSSBidXJzdCBsZW5ndGggYnkgdmFsdWUgc3BlY2lmaWVkDQo+ID4gPiA+ID4gKyAgaW4g dGhpcyBwcm9wZXJ0eS4gSWYgdGhpcyBwcm9wZXJ0eSBpcyBtaXNzaW5nIHRoZSBtYXhpbXVtIEFY SSBidXJzdCBsZW5ndGgNCj4gPiA+ID4gPiArICBzdXBwb3J0ZWQgYnkgRE1BQyBpcyB1c2VkLiBb MToyNTZdDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICtFeGFtcGxlOg0KPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiArZG1hYzogZG1hLWNvbnRyb2xsZXJAODAwMDAgew0KPiA+ID4gPiA+ICsJY29tcGF0 aWJsZSA9ICJzbnBzLGF4aS1kbWEtMS4wMWEiOw0KPiA+ID4gPiANCj4gPiA+ID4gZG8gd2UgbmVl ZCAic25wcyBoZXJlLi4/DQo+ID4gPiANCj4gPiA+IFN5bm9wc3lzIGlzIHRoaXMgSVAtYmxvY2sg dmVuZG9yIHNvIHNob3VsZG4ndCB3ZSBwdXQgaXQgdGhhdCB3YXk/DQo+ID4gDQo+ID4gTm90IGEg RFQgZXhwZXJ0IGJ1dCB3aHkgc2hvdWxkIHZlbmRvciBuYW1lIGNvbWUgaGVyZSwgeW91IGNhbiBy ZWFkIHRoZQ0KPiA+IHByb3BlcnRpZXMgZnJvbSBkZXZpY2Ugbm9kZSwgdmVuZG9yIG5hbWUgc2Vl bXMgcmVkdW5kYW50IHRvIG1lDQo+IA0KPiBJIGRvbid0IGZvbGxvdy4uLg0KPiANCj4gSW4gYW55 IGNhc2UsIHllcywgaXQgbXVzdCBoYXZlIGEgdmVuZG9yIHByZWZpeC4gSXQgc2hvdWxkIGFsc28g aGF2ZSBhIA0KPiBjb21wYXRpYmxlIGZvciB0aGUgdmVuZG9yKHMpIHRoYXQgaW50ZWdyYXRlIHRo ZSBibG9jayBiZWNhdXNlIHRoZXkgYWxsIA0KPiBicmVhayBpdCBpbiBkaWZmZXJlbnQgd2F5cy4g U3BlYWtpbmcgb2Ygd2hpY2gsIHdlIGFscmVhZHkgaGF2ZSANCj4gc25wcy1kbWEudHh0IGFuZCBh dCBsZWFzdCBBbmFsb2cgRGV2aWNlcyBiaW5kaW5nIHVzaW5nIGEgU3lub3BzeXMgRE1BLiANCj4g V2hhdCdzIHRoZSBkaWZmZXJlbmNlPw0KPiANCg0KVGhlcmUncyBpbmRlZWQgc29tZSBjb25mdXNp b24uDQoNCjEuIEFzIGEgcGFydCBvZiBhIF9uZXdfZHJpdmVyXyBzdWJtaXNzaW9uIHdlJ3JlIHBy ZXBhcmluZyBEVCBiaW5kaW5ncyBkb2NzIHdoZXJlIHdlDQogICBuZWVkIHRvIHJlcXVpcmUgc29t ZSBjb21wYXRpYmxlIHN0cmluZy4uLiB3ZWxsIGF0IGxlYXN0IG1hbnkgb3RoZXIgYmluZGluZyBk b2NzDQogICBkbyBzbyBpZiBJJ20gbm90IG1pc3Rha2VuLiBBbmQgc28gd2UgcHJvcG9zZSB0byBy ZXF1aXJlICJzbnBzLGF4aS1kbWEtMS4wMWEiDQogICB3aGVyZSB2ZXJzaW9uIG1hdGNoZXMgaW1w bGVtZW50YXRpb24gaW4gYW4gU29DIHdlIGN1cnJlbnRseSBoYXZlLg0KDQoyLiBJbiB0aGF0IHN0 cmluZyB3ZSBtZW50aW9uIFN5bm9wc3lzIGFzIGEgdmVuZG9yIGJ1dCBmb3IgZHJpdmVyIGFsb25l ICh3aXRob3V0IGFueSBwYXJ0aWN1bGFyIFNvQykNCiAgIGl0IGlzIHJlbGFldGVkIHRvIElQLWJs b2NrIHdoaWNoIG1pZ2h0IGVuZC11cCBiZWluZyB1c2VkIGluIG1hbnkgZGlmZmVyZW50IFNvQ3Mu DQoNCjMuIFN5bm9wc3lzIGhhcyAyIGNvbXBsZXRlbHkgZGlmZmVyZW50IERNQUMgSVAtYmxvY2tz LiBXZWxsLWtub3duIEFIQiBETUFDLCBzZWUgWzFdLCBbMl0NCiAgIGFuZCBBWEkgRE1BQywgc2Vl IFszXSB3aGljaCBpcyBub3QgeWV0IHVzZWQgYW55d2hlcmUgYW5kIHRoYXQncyB0aGUgb25lIHdl J3JlIGRpc2N1c3NpbmcNCiAgIGN1cnJlbnRseS4NCg0KNC4gVGhpcyBEVyBBWEkgRE1BQyBzZWVt cyB0byBoYXZlIG5vdGhpbmcgdG8gZG8gd2l0aCBtZW50aW9uZWQgImRtYS1heGktZG1hYy5jIiB3 aGljaA0KICAgQlRXIGhhcyBjb21wYXRpYmxlID0gImFkaSxheGktZG1hYy0xLjAwLmEiLg0KICAg DQpBcyBhbiB1bmRlcmxpbmUgSSBkb24ndCBzZWUgYW55IG90aGVyIG9wdGlvbiBmb3IgImRlZmF1 bHQiIGNvbXBhdGlibGUgZm9yIHRoYXQNCmJyYW5kIG5ldyBETUFDIGRyaXZlciwgdGhvdWdoIG9u Y2Ugd2Ugc3RhcnQgYWRkaW5nIFNvQyB0aGF0IHJlYWxseSB1c2UgdGhhdCBJUC1ibG9jaw0Kd2Ug bWF5IGdldCBtb3JlIGNvbXBhdGlibGUgc3RyaW5ncyBpZiBpbXBsZW1lbnRhdGlvbnMgZGlmZmVy IGZyb20gd2hhdCB3ZSBoYXZlIG5vdy4NCg0KWzFdIGh0dHBzOi8vd3d3LnN5bm9wc3lzLmNvbS9k dy9pcGRpci5waHA/Yz1EV19haGJfZG1hYw0KWzJdIGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcvcHVi L3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdC90cmVlL2RyaXZlcnMvZG1h L2R3DQpbM10gaHR0cHM6Ly93d3cuc3lub3BzeXMuY29tL2R3L2lwZGlyLnBocD9jPURXX2F4aV9k bWFjDQoNClJlZ2FyZHMsDQpBbGV4ZXk=