From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Stach Subject: Re: Best practice device tree design for display subsystems/DRM Date: Wed, 03 Jul 2013 14:31:27 +0200 Message-ID: <1372854687.4440.21.camel@weser.hi.pengutronix.de> References: <20130702204255.2044c01b@armhf> <20130702191923.GD13924@flint.arm.linux.org.uk> <51D330AC.5060903@gmail.com> <20130702202548.GE13924@flint.arm.linux.org.uk> <20130702215048.GI516@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: =?ISO-8859-1?Q?St=E9phane?= Marchesin Cc: Jean-Francois Moine , Daniel Drake , "devicetree-discuss@lists.ozlabs.org" , dri-devel@lists.freedesktop.org, Russell King , Sebastian Hesselbarth List-Id: devicetree@vger.kernel.org QW0gRGllbnN0YWcsIGRlbiAwMi4wNy4yMDEzLCAxODo0NiAtMDcwMCBzY2hyaWViIFN0w6lwaGFu ZSBNYXJjaGVzaW46Cj4gT24gVHVlLCBKdWwgMiwgMjAxMyBhdCAzOjAyIFBNLCBEYXZlIEFpcmxp ZSA8YWlybGllZEBnbWFpbC5jb20+IHdyb3RlOgo+ID4gT24gV2VkLCBKdWwgMywgMjAxMyBhdCA3 OjUwIEFNLCBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+IHdyb3RlOgo+ID4+ IE9uIFR1ZSwgSnVsIDAyLCAyMDEzIGF0IDA5OjI1OjQ4UE0gKzAxMDAsIFJ1c3NlbGwgS2luZyB3 cm90ZToKPiA+Pj4gT24gVHVlLCBKdWwgMDIsIDIwMTMgYXQgMDk6NTc6MzJQTSArMDIwMCwgU2Vi YXN0aWFuIEhlc3NlbGJhcnRoIHdyb3RlOgo+ID4+PiA+IEkgYW0gYWdhaW5zdCBhIHN1cGVyIG5v ZGUgd2hpY2ggY29udGFpbnMgbGNkIGFuZCBkY29uL2lyZSBub2Rlcy4gWW91IGNhbgo+ID4+PiA+ IGVuYWJsZSB0aG9zZSBkZXZpY2VzIG9uIGEgcGVyIGJvYXJkIGJhc2lzLiBXZSBhZGQgdGhlbSB0 byBkb3ZlLmR0c2kgYnV0Cj4gPj4+ID4gZGlzYWJsZSB0aGVtIGJ5IGRlZmF1bHQgKHN0YXR1cyA9 ICJkaXNhYmxlZCIpLgo+ID4+PiA+Cj4gPj4+ID4gVGhlIERSTSBkcml2ZXIgaXRzZWxmIHNob3Vs ZCBnZXQgYSB2aWRlby1jYXJkIG5vZGUgb3V0c2lkZSBvZgo+ID4+PiA+IHNvYy9pbnRlcm5hbC1y ZWdzIHdoZXJlIHlvdSBjYW4gcHV0IGUuZy4gdmlkZW8gbWVtb3J5IGhvbGUgKG9yIHZpZGVvCj4g Pj4+ID4gbWVtIHNpemUgaWYgaXQgd2lsbCBiZSB0YWtlbiBmcm9tIFJBTSBsYXRlcikKPiA+Pj4g Pgo+ID4+PiA+IEFib3V0IHRoZSB1bnVzdWFsIGNhc2UsIEkgZ3Vlc3Mgd2Ugc2hvdWxkIHRyeSB0 byBnZXQgYm90aCBsY2QKPiA+Pj4gPiBjb250cm9sbGVycyBpbnRvIG9uZSBEUk0gZHJpdmVyLiBU aGVuIHN1cHBvcnQgbWlycm9yIG9yIHNjcmVlbgo+ID4+PiA+IGV4dGVuc2lvbiBYIGFscmVhZHkg cHJvdmlkZXMuIEZvciB0aG9zZSBhcHBsaWNhdGlvbnMgd2hlcmUgeW91IHdhbnQKPiA+Pj4gPiBY IG9uIG9uZSBsY2QgYW5kIHNvbWUgb3RoZXIgdG90YWxseSBkaWZmZXJlbnQgdmlkZW8gc3RyZWFt IC0gd2FpdAo+ID4+PiA+IGZvciBzb21lb25lIHRvIGNvbWUgdXAgd2l0aCBhIHJlcXVlc3Qgb3Ig cHJvcG9zYWwuCj4gPj4+Cj4gPj4+IFdlbGwsIGFsbCBJIGNhbiBzYXkgdGhlbiBpcyB0aGF0IHRo ZSBvbnVzIGlzIG9uIHRob3NlIHdobyB3YW50IHRvIHRyZWF0Cj4gPj4+IHRoZSBjb21wb25lbnRz IGFzIHNlcGFyYXRlIGRldmljZXMgdG8gY29tZSB1cCB3aXRoIHNvbWUgZm9vbHByb29mIHdheQo+ ID4+PiB0byBzb2x2ZSB0aGlzIHByb2JsZW0gd2hpY2ggZG9lc24ndCBpbnZvbHZlIG1ha2luZyBh c3N1bXB0aW9ucyBhYm91dAo+ID4+PiB0aGUgd2F5IHRoYXQgZGV2aWNlcyBhcmUgcHJvYmVkIGFu ZCBkb2Vzbid0IGVuZCB1cCBjcmVhdGluZyBhcnRpZmljaWFsCj4gPj4+IHJlc3RyaWN0aW9ucyBv biBob3cgdGhlIGRldmljZXMgY2FuIGJlIHVzZWQgLSBhbmQgZG9lc24ndCBlbmQgdXAgYnVyZGVu aW5nCj4gPj4+IHRoZSBjb21tb24gY2FzZSB3aXRoIGxvdHMgb2YgdXNlbGVzcyBjb21wbGV4aXR5 IHRoYXQgdGhleSBkb24ndCBuZWVkLgo+ID4+Pgo+ID4+PiBJdCdzIF90aGF0XyBjYXNlIHdoaWNo IG5lZWRzIHRvIGNvbWUgdXAgd2l0aCBhIHByb3Bvc2FsIGFib3V0IGhvdyB0bwo+ID4+PiBoYW5k bGUgaXQgYmVjYXVzZSB5b3UgX2Nhbid0XyBoYW5kbGUgaXQgYXQgdGhlIG1vbWVudCBpbiBhbnkg c2FuZQo+ID4+PiBtYW5uZXIgd2hpY2ggbWVldHMgdGhlIGNyaXRlcmlhIEkndmUgc2V0IG91dCBh Ym92ZSwgYW5kIGF0IHRoZSBtb21lbnQKPiA+Pj4gdGhlIGJlc3QgcHJvcG9zYWwgYnkgZmFyIHRv IHJlc29sdmUgdGhhdCBpcyB0aGUgInN1cGVyIG5vZGUiIGFwcHJvYWNoLgo+ID4+Pgo+ID4+PiBU aGVyZSBpcyBfbm9fIHdheSBpbiB0aGUgZGV2aWNlIG1vZGVsIHRvIGNvbWJpbmUgc2V2ZXJhbCBp bmRpdmlkdWFsCj4gPj4+IGRldmljZXMgdG9nZXRoZXIgaW50byBvbmUgbG9naWNhbCBkZXZpY2Ug c2FmZWx5IHdoZW4gdGhlIHN1YnN5c3RlbQo+ID4+PiByZXF1aXJlcyB0aGF0IHRoZXJlIGJlIGEg ZGVmaW5pdGUgcG9pbnQgd2hlcmUgZXZlcnl0aGluZyBpcyBrbm93bi4KPiA+Pj4gVGhhdCBhcHBs aWVzIGV2ZW4gbW9yZSBzbyB3aXRoIC1FUFJPQkVfREVGRVIuICBXaXRoIHRoZSBwcmVzZW5jZSBv Zgo+ID4+PiBzdWNoIGEgdGhpbmcsIHRoZXJlIGlzIG5vdyBubyBsb2dpY2FsIHBvaW50IHdoZXJl IGFueSBjb2RlIGNhbiBzYXkKPiA+Pj4gZGVmaW5pdGl2ZWx5IHRoYXQgdGhlIHN5c3RlbSBoYXMg dGVjaG5pY2FsbHkgZmluaXNoZWQgYm9vdGluZyBhbmQgYWxsCj4gPj4+IHJlc291cmNlcyBhcmUg a25vd24uCj4gPj4+Cj4gPj4+IFRoYXQncyB0aGUgcHJvYmxlbSAtIGlmIHlvdSBkb24ndCBvZCB0 aGUgc3VwZXItbm9kZSBhcHByb2FjaCwgeW91IGVuZAo+ID4+PiB1cCB3aXRoIGxvdHMgb2YgaW5k aXZpZHVhbCBkZXZpY2VzIHdoaWNoIHlvdSBoYXZlIHRvIGZpZ3VyZSBvdXQgc29tZQo+ID4+PiB3 YXkgb2YgY29tYmluaW5nLCBhbmQgY29waW5nIHdpdGggbWlzc2luZyBvbmVzIHdoaWNoIG1pZ2h0 IG5vdCBiZQo+ID4+PiBhdmFpbGFibGUgaW4gdGhlIG9yZGVyIHlvdSB3YW50IHRoZW0gdG8gYmUs IGV0Yy4KPiA+Pj4KPiA+Pj4gVGhhdCdzIHRoZSBhZHZhbnRhZ2Ugb2YgdGhlICJzdXBlciBub2Rl IiBhcHByb2FjaCAtIGl0J3MgYSBjb250YWluZXIKPiA+Pj4gdG8gdGVsbCB5b3Ugd2hhdCdzIHJl cXVpcmVkIGluIG9yZGVyIHRvIGNvbXBsZXRlIHRoZSBjcmVhdGlvbiBvZiB0aGUKPiA+Pj4gbG9n aWNhbCBkZXZpY2UsIGFuZCB5b3UgY2FuIHBhcnNlIHRoZSBzdWItbm9kZXMgdG8gbG9jYXRlIHRo ZQo+ID4+PiBpbmZvcm1hdGlvbiB5b3UgbmVlZC4KPiA+Pgo+ID4+IEkgdGhpbmsgc3VjaCBhbiBh cHByb2FjaCB3b3VsZCBsZWFkIHRvIGRybSBkcml2ZXJzIHdoaWNoIGFsbCBwYXJzZSB0aGVpcgo+ ID4+ICJzdXBlciBub2RlcyIgdGhlbXNlbHZlcyBhbmQgZHJpdmVyIGF1dGhvcnMgd291bGQgYmVj b21lIHZlcnkgY3JlYXRpdmUKPiA+PiBob3cgc3VjaCBhIG5vZGUgc2hvdWxkIGxvb2sgbGlrZS4K PiA+Pgo+ID4+IEFsc28gdGhpcyBnZXRzIG1lc3N5IHdpdGggaTJjIGRldmljZXMgd2hpY2ggYXJl IG5vcm1hbGx5IHJlZ2lzdGVyZWQKPiA+PiB1bmRlciB0aGVpciBpMmMgYnVzIG1hc3RlcnMuIFdp dGggdGhlIHN1cGVyIG5vZGUgYXBwcm9hY2ggdGhlc2Ugd291bGQKPiA+PiBoYXZlIHRvIGxpdmUg dW5kZXIgdGhlIHN1cGVyIG5vZGUsIG1heWJlIHdpdGggYSBwaGFuZGxlIHRvIHRoZSBpMmMgYnVz Cj4gPj4gbWFzdGVyLiBUaGlzIGFnYWluIHByb2JhYmx5IGxlYWRzIHRvIHZlcnkgU29DIHNwZWNp ZmljIHNvbHV0aW9ucy4gSXQKPiA+PiBhbHNvIGRvZXNuJ3Qgc29sdmUgdGhlIHByb2JsZW0gdGhh dCB0aGUgaTJjIGJ1cyBtYXN0ZXIgbmVlZHMgdG8gYmUKPiA+PiByZWdpc3RlcmVkIGJ5IHRoZSB0 aW1lIHRoZSBEUk0gZHJpdmVyIHByb2Jlcy4KPiA+Pgo+ID4+IE9uIGkuTVggdGhlIElQVSB1bml0 IG5vdCBvbmx5IGhhbmRsZXMgdGhlIGRpc3BsYXkgcGF0aCBidXQgYWxzbyB0aGUKPiA+PiBjYXB0 dXJlIHBhdGguIHY0bDIgYmVnaW5zIHRvIGV2b2x2ZSBhbiBPRiBtb2RlbCBpbiB3aGljaCBlYWNo IChzdWIpZGV2aWNlCj4gPj4gaGFzIGl0cyBuYXR1cmFsIHBvc2l0aW9uIGluIHRoZSBkZXZpY2V0 cmVlOyB0aGUgZGV2aWNlcyBhcmUgdGhlbgo+ID4+IGNvbm5lY3RlZCB3aXRoIHBoYW5kbGVzLiBJ J20gbm90IHN1cmUgaG93IGdvb2QgdGhpcyB3aWxsIHdvcmsgdG9nZXRoZXIKPiA+PiB3aXRoIGEg c3VwZXIgbm9kZSBhcHByb2FjaC4KPiA+Pgo+ID4+Pgo+ID4+PiBBbiBhbHRlcm5hdGl2ZSBhcyBJ IHNlZSBpdCBpcyB0aGF0IERSTSAtIGFuZCBub3Qgb25seSBEUk0gYnV0IGFsc28KPiA+Pj4gdGhl IERSTSBBUEkgYW5kIFhvcmcgLSB3b3VsZCBuZWVkIHRvIGV2b2x2ZSBob3RwbHVnIHN1cHBvcnQg Zm9yIHRoZQo+ID4+PiB2YXJpb3VzIHBhcnRzIG9mIHRoZSBkaXNwbGF5IHN1YnN5c3RlbS4gIERv IHdlIGhhdmUgZW5vdWdoIHBlb3BsZQo+ID4+PiB3aXRoIHN1ZmZpY2llbnQga25vd2xlZGdlIGFu ZCB3aWxsaW5nbmVzcyB0byBiZSBhYmxlIHRvIG1ha2UgYWxsCj4gPj4+IHRoYXQgaGFwcGVuPyAg SSBkb24ndCB0aGluayB3ZSBkbywgYW5kIEkgZG9uJ3Qgc2VlIHRoYXQgdGhlcmUncyBhbnkKPiA+ Pj4gZnVuZGluZyBvdXQgdGhlcmUgdG8gbWFrZSBzdWNoIGEgcHJvamVjdCBoYXBwZW4sIHdoaWNo IHdvdWxkIG1ha2UgaXQKPiA+Pj4gYSB2b2x1bnRlZXIvc3BhcmUgdGltZSBlZmZvcnQuCj4gPj4K PiA+PiArMSBmb3IgdGhpcyBzb2x1dGlvbiwgZXZlbiBpZiB0aGlzIG1lYW5zIG1vcmUgd29yayB0 byBnZXQgZnJvbSB0aGUKPiA+PiBncm91bmQuCj4gPj4KPiA+PiBEbyB3ZSByZWFsbHkgbmVlZCBm dWxsIGhvdHBsdWcgc3VwcG9ydCBpbiB0aGUgRFJNIEFQSSBhbmQgWG9yZz8gSSBtZWFuCj4gPj4g aXQgd291bGQgcmVhbGx5IGJlIG5pY2UgaWYgWG9yZyBkZXRlY3RlZCBhIG5ld2x5IHJlZ2lzdGVy ZWQgZGV2aWNlLCBidXQKPiA+PiBhcyBhIHN0YXJ0IGl0IHNob3VsZCBiZSBzdWZmaWNpZW50IHdo ZW4gWG9yZyBkZXRlY3RzIHdoYXQncyB0aGVyZSB3aGVuCj4gPj4gaXQgc3RhcnRzLCBubz8KPiA+ Cj4gPiBTaW5jZSBmYmRldiBhbmQgZmJjb24gc2l0IG9uIHRvcCBvZiBkcm0gdG8gcHJvdmlkZSB0 aGUgY29uc29sZQo+ID4gY3VycmVudGx5IEknZCBhbHNvIGV4cGVjdCBzb21lIGZ1biB3aXRoIHRo ZW0uIEhvdyBkbyBJIGdldCBhIGNvbnNvbGUKPiA+IGlmIEkgaGF2ZSBubyBvdXRwdXRzIGF0IGJv b3QsIGJ1dCBJIGhhdmUgY3J0Y3M/IGRvIEkganVzdCB3YWl0IGFyb3VuZAo+ID4gdW50aWwgYW4g b3V0cHV0IGFwcGVhcnMuCj4gPgo+ID4gVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGlzc3VlcyB3aXRo IGhvdHBsdWdnaW5nIGVuY29kZXJzIGFuZCBjb25uZWN0b3JzCj4gPiBhdCBydW50aW1lLCB3aGVu IHJlYWxseSB0aGUgU29DL2JvYXJkIGRlc2lnbmVyIGtub3dzIHdoYXQgaXQgcHJvdmlkZXMKPiA+ IGFuZCBzaG91bGQgYmUgYWJsZSB0byB0ZWxsIHRoZSBkcml2ZXIgaW4gc29tZSBmYXNoaW9uLgo+ ID4KPiA+IFRoZSBtYWluIHByb2JsZW1zIHdoZW4gSSBwbGF5ZWQgd2l0aCBob3QgYWRkaW5nIGVE UCBvbiBJbnRlbCBsYXN0Cj4gPiB0aW1lLCBhcmUgd2UgaGF2ZSBncm91cGluZyBvZiBjcnRjL2Vu Y29kZXIvY29ubmVjdG9ycyBmb3IgbXVsdGktc2VhdAo+ID4gZnV0dXJlIHVzZSwgdGhlc2UgZ3Jv dXBzIG5lZWQgdG8gYmUgdXBkYXRlZCwgYW5kIEkgdGhpbmsgdGhlIG90aGVyCj4gPiBpc3N1ZSB3 YXMgdXBkYXRpbmcgdGhlIHBvc3NpYmxlX2NydGNzL3Bvc3NpYmxlX2Nsb25lcyBzdHVmZi4gSW4g dGhlb3J5Cj4gPiBzZW5kaW5nIFggYSB1ZXZlbnQgd2lsbCBtYWtlIGl0IHJlbG9hZCB0aGUgbGlz dCwgYW5kIGl0IG1vc3RseSBkZWFscwo+ID4gd2l0aCBkZXZpY2UgaG90cGx1ZyBzaW5jZSAxLjE0 IHdoZW4gSSBhZGRlZCB0aGUgVVNCIGhvdHBsdWcgc3VwcG9ydC4KPiA+Cj4gPiBJJ20gbm90IHNh eWluZyB0aGlzIGlzIGEgYmFkIGlkZWEsIGJ1dCByZWFsbHkgaXQgc2VlbXMgcG9pbnRsZXNzIHdo ZXJlCj4gPiB0aGUgaGFyZHdhcmUgaXMgcHJldHR5IG11Y2ggaGFyZGNvZGVkLCB0aGF0IERUIGNh bid0IHJlcHJlc2VudCB0aGF0Cj4gPiBhbmQgbGV0IHRoZSBkcml2ZXIgY29udHJvbCB0aGUgYnJp bmcgdXAgb3JkZXJpbmcuCj4gPgo+ID4gSGF2ZSB5b3UgYWxzbyBjb25zaWRlcmVkIGhvdyBzdXNw ZW5kL3Jlc3VtZSB3b3JrcyBpbiBzdWNoIGEgcGxhY2UsCj4gPiB3aGVyZSBldmVyeSBkcml2ZXIg aXMgaW5kZXBlbmRlbnQ/IFRoZSBDaHJvbWVPUyBndXlzIGhhdmUgYml0Y2hlZAo+ID4gYmVmb3Jl IGFib3V0IHRoZSBleHlub3MgZHJpdmVyIHdoaWNoIGlzIGhhcyBsb3RzIG9mIHN1Yi1kcml2ZXJz LCBob3cKPiA+IGRvIHlvdSBjb250cm9sIHRoZSBzL3Igb3JkZXJpbmcgaW4gYSBjcmF6eSBzeXN0 ZW0gbGlrZSB0aGF0PyBJJ2QKPiA+IHByZWZlciBhIGNlbnRyYWwgZHJpdmVyLCBvdGhlcndpc2Ug dGhlcmUgaXMgdG9vIG1hbnkgbW92aW5nIHBhcnRzLgo+IAo+IEluIG15IGV4cGVyaWVuY2Ugd2l0 aCBleHlub3MsIGhhdmluZyBzZXBhcmF0ZSBkcml2ZXJzIGNyZWF0ZXMgYSBsb3Qgb2YKPiBwYWlu IGF0IHRoZSBpbnRlcmZhY2VzIGFuZCB0cmFuc2l0aW9uczoKPiAKPiAtIG9uIGJvb3QgeW91IG5l ZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhvc2UgbXVsdGlwbGUgZHJpdmVycyBpbml0aWFsaXplCj4g aW4gdGhlIHJpZ2h0IG9yZGVyLiBJZiBvbmUgY29tZXMgdXAgdG9vIGxhdGUsIHRoZSBuZXh0IG9u ZSBkb2Vzbid0IGdldAo+IHRoZSBFRElEIHRocm91Z2ggc29tZSBwYXNzdGhyb3VnaCBvciBsb3Nl cyBhIGhvdHBsdWcgaW50ZXJydXB0Lgo+IAo+IC0gb24gZHBtcyBvciBvbiBtb2Rlc2V0LCB0aGUg b3JkZXIgaW4gd2hpY2ggdGhpbmdzIGNoYW5nZSBpcyBhbHNvCj4gaW1wb3J0YW50LiBGb3IgZXhh bXBsZSBpZiB5b3UgaGF2ZSBhIERpc3BsYXlQb3J0IGJyaWRnZSB5b3Ugc29tZXRpbWVzCj4gbmVl ZCB0byB0cmFpbiB0aGUgbGluayB3aXRoIGEgc2lnbmFsIGZyb20gdGhlIHByZXZpb3VzIGNvbXBv bmVudCwgaWYKPiB0aGUgc2lnbmFsIGlzbid0IHRoZXJlIHlldCB0cmFpbmluZyBmYWlscy4KPiAK PiAtIG9uIHN1c3BlbmQvcmVzdW1lLCB0dXJuaW5nIHRoaW5ncyBvbi9vZmYgaW4gdGhlIHJpZ2h0 IG9yZGVyIGlzIGFsc28KPiBpbXBvcnRhbnQuIEFnYWluIHRoYXQgY2FuIGJpdGUgeW91IHdoZW4g b25lIGNvbXBvbmVudCBpbXBsaWNpdGx5Cj4gcmVsaWVzIG9uIHRoZSBuZXh0IGd1eSBpbiB0aGUg Y2hhaW4gdG8gaG9sZCBpdHMgc2lnbmFsIG9yIGl0cyBjbG9jawo+IHVudGlsIGl0J3Mgb2ZmLiBB cyB5b3UgYWRkL3JlbW92ZSBkcml2ZXJzIGluIG90aGVyIHBsYWNlcywgdGhlIGRyaXZlcgo+IHN1 c3BlbmQvcmVzdW1lIHF1ZXVlcyB3aWxsIG9yZGVyIG9wZXJhdGlvbnMgZGlmZmVyZW50bHkgYW5k IHdpbGwKPiBleHBvc2Ugb3IgaGlkZSByYWNlIGNvbmRpdGlvbnMuIFRoZSBidWcgcmVwb3J0cyBs b29rIGxpa2UgIkdyYXBoaWNzCj4gY3Jhc2hlcyB3aGVuIEkgZW5hYmxlIHRoZSB3aWZpIi4gQW5v dGhlciBleGFtcGxlIGlzIHRoYXQgdGhlIHNjcmVlbgo+IHdhcyBzaG93aW5nIG5vaXNlIGZvciBh IHNlY29uZCB3aGVuIHJlc3VtaW5nOyB0aGlzIGhhcHBlbnMgYmVjYXVzZSB0aGUKPiBicmlkZ2Ug aXMgdXAgZmlyc3QgYW5kIGRvZXNuJ3QgaGF2ZSBkYXRhIHRvIHNob3cuIE9yIHlvdSB0dXJuIG9u IHRoZQo+IGZpcnN0IGNoaXAsIGJ1dCBpdCBuZWVkcyBhIHBhc3N0aHJvdWdoIGZvciB0aGUgSFBE IGxpbmUgZnJvbSB0aGUgbmV4dAo+IGd1eSB3aGljaCBpc24ndCB1cCB5ZXQuIFNvIHlvdSBkZWNp ZGUgdGhhdCBhY3R1YWxseSBub3RoaW5nIGlzIHBsdWdnZWQKPiBpbiBhbmQgeW91IGdpdmUgdXAu Cj4gCj4gLSB0aGUgcG1fcnVudGltZSBzdHVmZiBpcyBlbnRhbmdsZWQgd2l0aCB0aGUgY29kZS4g Z3JlcCB0ZWxscyBtZSB0aGVyZQo+IGFyZSA2NyBsaW5lcyBjb250YWluaW5nICJwbV9ydW50aW1l IiBpbiBleHlub3MgZHJtLiBBIGxvdCBvZiBpdCBpcwo+IG5vbi1vYnZpb3VzLgo+IAo+IC0gZWFj aCBkcml2ZXIgbmVlZHMgdG8gYmUgc2VsZi1zdGFuZGluZyBhbmQgbmVlZHMgdG8ga2VlcCBzb21l IG9mIGl0cwo+IG93biBzdGF0ZS4gVGhpbmdzIGxpa2UgImFtIEkgc3VzcGVuZGVkIG9yIG5vdCIg ZG9uJ3QgbmVlZCB0byBiZQo+IHJlLWltcGxlbWVudGVkIGluIGVhY2ggZHJpdmVyLiBIb3dldmVy IGlmIHlvdSBjYW4gc3VzcGVuZC9yZXN1bWUgaW4KPiBhcmJpdHJhcnkgb3JkZXIgYW5kIHdhbnQg dG8gc3luY2hyb25pemUgd2l0aCB5b3VyIGJ1ZGRpZXMsIHRoZW4geW91Cj4gbmVlZCB0byBrbm93 IHlvdXIgc3RhdGUuIGV4eW5vcyBkcml2ZXJzIGRvIHRoZWlyIG93biBzdGF0ZSB0cmFja2luZwo+ IChncmVwIC0tICItPnN1c3BlbmRlZCIpCj4gCj4gU28gb3ZlcmFsbCwgeWVzIHlvdSBjYW4gbWFr ZSBpdCAid29yayIgd2l0aCBtdWx0aXBsZSBzbWFsbCwKPiBpbmRlcGVuZGVudCBkcml2ZXJzIHdo ZXJlIGVhY2ggZHJpdmVyIGhhcyBpdHMgb3duIGRldmljZSB0cmVlIG5vZGUuCj4gSG93ZXZlciB5 b3Ugd2lsbCBuZWVkIGdsb2JhbCB2YXJpYWJsZXMgdG8gc3luY2hyb25pemUgdGhlc2UgZHJpdmVy cy4KPiBZb3Ugd2lsbCBuZWVkIGNyb3NzLWRyaXZlciBmdW5jdGlvbiBjYWxscyAoZXh5bm9zX2Ry bV9kZXZpY2VfcmVnaXN0ZXIpCj4gdG8gbWFrZSBpdCB3b3JrLiBZb3Ugd2lsbCBuZWVkIHRvIGFk ZCBsb29wcyB0byB3YWl0IGZvciB0aGUgcHJldmlvdXMKPiBjb21wb25lbnQgdG8gc3VjY2Vzc2Z1 bGx5IGluaXRpYWxpemUgKG9yIHNodXRkb3duKSwgYW5kIG9ubHkgdGhlbiBraWNrCj4gRGlzcGxh eVBvcnQgbGluayB0cmFpbmluZyAob3IgdHVybiB0aGUgdHJhbnNtaXR0ZXIgb2ZmKS4gVGhhdCBt YWtlcwo+IHRoZSBjb2RlIGNvbnZvbHV0ZWQsIGFuZCBpdCdzIHJlYWxseSBoYXJkIHRvIG1ha2Ug aXQgd29yayB3ZWxsIGFuZCB0bwo+IG1haW50YWluIGl0LiBJbiBteSBvcGluaW9uIHRoaXMgaXMg bXVjaCBtb3JlIHdvcmsgdG8gZGVidWcgdGhpcyB0aGFuCj4gdG8ganVzdCBvcmRlciB0aGluZ3Mg cmlnaHQgZnJvbSB0aGUgc3RhcnQuIEl0IGFsc28gZG9lc24ndCBzY2FsZSBhcwo+IHlvdSBhZGQg bW9yZSBkcml2ZXJzLgo+IAo+IFNvIHdlIHdlbnQgaW4gdGhlIHN1cGVyLW5vZGUgZGlyZWN0aW9u LiBXaGF0IHdlIGRvIGluIENocm9tZSBPUyAoYW5kCj4gd2UncmUgc3RpbGwgd29ya2luZyBvbiB0 aGlzOyB3ZSBzdGlsbCBoYXZlIHNlcGFyYXRlIERUIG5vZGVzIHdoaWNoIHdlCj4gcGxhbiB0byBt ZXJnZSB3aGljaCBpcyB0aGUgbGFzdCBzdGVwKSBpcyBsb29rIGF0IHRoZSBkZXZpY2UgdHJlZQo+ IGR1cmluZyBEUk0gaW5pdGlhbGl6YXRpb24gdG8ga25vdyB3aGljaCBjaGlwcyBhcmUgcHJlc2Vu dC4gV2l0aCB0aGF0Cj4gd2Uga25vdyB3aGljaCBzdWJkcml2ZXJzIHRvIGluc3RhbnRpYXRlIGlu dG8gRFJNIGFic3RyYWN0aW9ucy4gV2UgdGhlbgo+IHVzZSB0aGUgbm9ybWFsIERSTSBjb2RlIGZv ciBldmVyeXRoaW5nKi4gU2luY2UgbW9zdCBpc3N1ZXMgSSBvdXRsaW5lZAo+IGFib3ZlIHJldm9s dmUgYXJvdW5kIG9yZGVyaW5nLCB0aGV5IGRpc2FwcGVhciBvbmNlIHlvdSB0dXJuIHlvdXIKPiBz ZXBhcmF0ZSBkcml2ZXJzIGludG8gcHJvcGVyIERSTSBjb21wb25lbnRzLiBZb3UgYWxzbyBkb24n dCBuZWVkCj4gcG1fcnVudGltZSBpbiB0aGVyZSBhdCBhbGwgaWYgeW91IHVzZSBEUk0gcHJvcGVy bHksIGJlY2F1c2UgaW5zdGVhZAo+IHN1c3BlbmQvcmVzdW1lIHdpbGwgY2FsbCBEUk0gd2hpY2gg d2lsbCBjYWxsIGludG8gdGhlIGRwbXMgY2FsbGJhY2tzCj4gYXMgbmVlZGVkLiBGb3IgZXh5bm9z IHdlIGNvdWxkIGFsc28gcmVtb3ZlIG1vc3Qgb2YgdGhlIHBlci1kcml2ZXIKPiBzdGF0ZSB0cmFj a2luZyAoRFJNIGRvZXMgaXQgZm9yIHlvdSkgYW5kIGFsc28gcmVtb3ZlIGNvZGUgdXNlZCB0byB3 cmFwCj4gYSBub24tRFJNIGRyaXZlciBpbnRvIGEgRFJNIGRyaXZlciAoc2VlIGV4eW5vc19kcm1f aGRtaS5jIGZvciBhbgo+IGV4YW1wbGUgb2Ygc3VjaCBhIHdyYXBwZXIpLgo+IAoKRnJvbSBvdXIg cGVyc3BlY3RpdmUgd2UgcmVhbGx5IHdhbnQgdG8gc2hhcmUgZHJpdmVycyBmb3Igc3BlY2lmaWMK c3ViLWNvbXBvbmVudHMgb2YgYSBEUk0gZGV2aWNlIGJldHdlZW4gZGlmZmVyZW50IFNvQ3MuIFdl IGRvbid0IHdhbnQgdG8KaGFyZHdpcmUgdGhlIGNvZGUgZm9yIGEgc3BlY2lmaWMgZW5jb2RlciBp bnRvIG9uZSBEUk0gZHJpdmVyIGFuZApjb3B5LXBhc3RlIHRoaW5ncyBmb3IgdGhlIG5leHQgU29D IHdoaWNoIGNvbWVzIGFyb3VuZC4KCkkgdGhpbmsgd2Ugc2hvdWxkIHJlYWxseSBkaWZmZXJlbnRp YXRlIGJldHdlZW4gdGhlIExpbnV4IGRldmljZSBjb3JlCm1lY2hhbmljcyBhbmQgaGF2aW5nIHNt YWxsIHNlbGYgY29udGFpbmVkIGRyaXZlcnMgZm9yIHN1Yi1jb21wb25lbnRzLiBJCnRoaW5rIHdl IGFsbCBhZ3JlZSBvbiB0aGUgcG9pbnQgdGhhdCB3ZSBuZWVkIHNvbWUga2luZCBvZiBjb250cm9s IG5vZGUKdGhhdCByZXByZXNlbnRzIHRoZSBEUk0gZGV2aWNlIHRvIHVzZXJzcGFjZSBpbiB0aGUg ZW5kLiBUaGlzIGNvbnRyb2wKbm9kZSBjYW4gZG8gYWxsIHRoZSBoYXJkIHN0dWZmIGxpa2UgZ2V0 dGluZyBzdXNwZW5kL3Jlc3VtZSBhbmQgb3RoZXIKb3JkZXIgY3JpdGljYWwgdGhpbmdzIHJpZ2h0 LiBXZSBjbGVhcmx5IGRvbid0IHdhbnQgdG8gcmVseSBvbiBzb21lCnJhbmRvbSBMaW51eCBkZXZp Y2UgY29yZSBnb3Zlcm5lZCBwcm9iZSBvciBzdXNwZW5kL3Jlc3VtZSBvcmRlci4KCldoYXQgd2Ug d2FudCBpcyBzbWFsbCBzZWxmLWNvbnRhaW5lZCBkcml2ZXJzIGZvciB0aGUgc3ViLWNvbXBvbmVu dHMgdGhhdApjYW4gYmUgcHJvYmVkIGZyb20gdGhlIERULiBTdWNoIGEgZHJpdmVyIHNob3VsZCBu b3QgdHJ5IHRvIGFjdGl2ZSBpdCdzCmRyaXZlbiBoYXJkd2FyZSBvbiBwcm9iZSB0aW1lLCBidXQg cmF0aGVyIGp1c3Qgc2lnbmFsIGl0J3MgZXhpc3RlbmNlIHRvCnRoZSBjb250cm9sIG5vZGUuIFRo ZSBjb250cm9sIG5vZGUgY2FuIHRoZW4gKG1heWJlIGF0IGl0J3Mgb3duIG9wZW4oKQp0aW1lKSBs b29rIGF0IGFsbCB0aGUgcmVnaXN0ZXJlZCBzdWItY29tcG9uZW50cyBhbmQgYnVpbGQgYSBvdXRw dXQgcGF0aApmcm9tIHRoZW0uIE9ubHkgYXQgdGhpcyBwb2ludCB5b3UgdHJ5IHRvIGFjdGl2ZSB0 aGluZ3Mgc28geW91IGNhbgpleGFjdGx5IGNvbnRyb2wgdGhlIG9yZGVyIGZyb20geW91ciBjb250 cm9sIG5vZGUuCgpUaGlzIG1lYW5zIGludHJvZHVjaW5nIHNvbWUgZ2VuZXJpYyBpbnRlcmZhY2Vz IGZvciBlbmNvZGVycywgY3J0Y3MgYW5kCmNvbm5lY3RvcnMsIGJ1dCBoZXkgdGhpcyBpcyBqdXN0 IGluLWtlcm5lbCBBUEksIHNvIHdlIGRvbid0IGhhdmUgdG8gZ2V0CnRoaXMgY29tcGxldGVseSBy aWdodCBvbiB0aGUgZmlyc3QgdHJ5LgoKUmVnYXJkcywKTHVjYXMKLS0gClBlbmd1dHJvbml4IGUu Sy4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IEx1Y2FzIFN0YWNoICAgICAgICAgICAgICAg ICB8CkluZHVzdHJpYWwgTGludXggU29sdXRpb25zICAgICAgICAgICAgICAgICB8IGh0dHA6Ly93 d3cucGVuZ3V0cm9uaXguZGUvICB8ClBlaW5lciBTdHIuIDYtOCwgMzExMzcgSGlsZGVzaGVpbSwg R2VybWFueSB8IFBob25lOiArNDktNTEyMS0yMDY5MTctNTA3NiB8CkFtdHNnZXJpY2h0IEhpbGRl c2hlaW0sIEhSQSAyNjg2ICAgICAgICAgICB8IEZheDogICArNDktNTEyMS0yMDY5MTctNTU1NSB8 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=