From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Edgar E. Iglesias" Subject: Re: [early RFC] ARM PCI Passthrough design document Date: Tue, 31 Jan 2017 17:53:10 +0100 Message-ID: <20170131165310.GJ14990@toto> References: <5cf9128e-e845-2a89-f7c7-ac8616941ab9@linaro.org> <56a2cd48-f7cf-25ca-2bfe-cabf02d34df3@linaro.org> <8ca91073-09e7-57ca-9063-b47e0aced39d@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cYbgM-0006ZZ-Ix for xen-devel@lists.xenproject.org; Tue, 31 Jan 2017 16:53:26 +0000 Content-Disposition: inline In-Reply-To: <8ca91073-09e7-57ca-9063-b47e0aced39d@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall Cc: Stefano Stabellini , Wei Chen , Campbell Sean , Andrew Cooper , Jiandi An , Punit Agrawal , alistair.francis@xilinx.com, xen-devel , Roger Pau =?iso-8859-1?Q?Monn=E9?= , "manish.jaggi@caviumnetworks.com" , Shanker Donthineni , Steve Capper List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBKYW4gMjUsIDIwMTcgYXQgMDY6NTM6MjBQTSArMDAwMCwgSnVsaWVuIEdyYWxsIHdy b3RlOgo+IEhpIFN0ZWZhbm8sCj4gCj4gT24gMjQvMDEvMTcgMjA6MDcsIFN0ZWZhbm8gU3RhYmVs bGluaSB3cm90ZToKPiA+T24gVHVlLCAyNCBKYW4gMjAxNywgSnVsaWVuIEdyYWxsIHdyb3RlOgo+ ID4+Pj4jIyBEaXNjb3ZlcmluZyBhbmQgcmVnaXN0ZXIgaG9zdGJyaWRnZQo+ID4+Pj4KPiA+Pj4+ Qm90aCBBQ1BJIGFuZCBEZXZpY2UgVHJlZSBkbyBub3QgcHJvdmlkZSBlbm91Z2ggaW5mb3JtYXRp b24gdG8gZnVsbHkKPiA+Pj4+aW5zdGFudGlhdGUgYW4gaG9zdCBicmlkZ2UgZHJpdmVyLiBJbiB0 aGUgY2FzZSBvZiBBQ1BJLCBzb21lIGRhdGEgbWF5IGNvbWUKPiA+Pj4+ZnJvbSBBU0wsCj4gPj4+ Cj4gPj4+VGhlIGRhdGEgYXZhaWxhYmxlIGZyb20gQVNMIGlzIGp1c3QgdG8gaW5pdGlhbGl6ZSBx dWlya3MgYW5kIG5vbi1FQ0FNCj4gPj4+Y29udHJvbGxlcnMsIHJpZ2h0PyBHaXZlbiB0aGF0IFNC U0EgbWFuZGF0ZXMgRUNBTSwgYW5kIHdlIGFzc3VtZSB0aGF0Cj4gPj4+QUNQSSBpcyBtb3N0bHkg KGlmIG5vdCBvbmx5KSBmb3Igc2VydmVycywgdGhlbiBJIHRoaW5rIGl0IGlzIHNhZmUgdG8gc2F5 Cj4gPj4+dGhhdCBpbiB0aGUgY2FzZSBvZiBBQ1BJIHdlIHNob3VsZCBoYXZlIGFsbCB0aGUgaW5m byB0byBmdWxseQo+ID4+Pmluc3RhbnRpYXRlIGFuIGhvc3QgYnJpZGdlIGRyaXZlci4KPiA+Pgo+ ID4+RnJvbSB0aGUgc3BlYywgdGhlIE1DRkcgd2lsbCBvbmx5IGRlc2NyaWJlIGhvc3QgYnJpZGdl IGF2YWlsYWJsZSBhdCBib290IChzZWUKPiA+PjQuMiBpbiAiUENJIGZpcm13YXJlIHNwZWNpZmlj YXRpb24sIHJldiAzLjIiKS4gQWxsIHRoZSBvdGhlciBob3N0IGJyaWRnZXMgd2lsbAo+ID4+YmUg ZGVzY3JpYmVkIGluIEFTTC4KPiA+Pgo+ID4+U28gd2UgbmVlZCBET00wIHRvIGZlZWQgWGVuIGFi b3V0IHRoZSBsYXR0ZXIgaG9zdCBicmlkZ2VzLgo+ID4KPiA+VW5mb3J0dW5hdGVseSBQQ0kgc3Bl Y3MgYXJlIG9ubHkgYWNjZXNzaWJsZSBieSBQQ0kgU0lHIG1lbWJlcnMKPiA+b3JnYW5pemF0aW9u cy4gSW4gb3RoZXIgd29yZHMsIEkgY2Fubm90IHJlYWQgdGhlIGRvYy4KPiA+Cj4gPkNvdWxkIHlv dSBwbGVhc2UgZXhwbGFpbiB3aGF0IGtpbmQgb2YgaG9zdCBicmlkZ2VzIGFyZSBub3QgZXhwZWN0 ZWQgdG8KPiA+YmUgYXZhaWxhYmxlIGF0IGJvb3Q/IERvIHlvdSBrbm93IG9mIGFueSBleGFtcGxl cz8KPiAKPiBSb2dlciBhbnN3ZXJlZCB0byB0aGlzIGFuc3dlciBpbiBvbiBhIHJlcGx5IHRvIHRo aXMgZS1tYWlsLiBTbyBJIHdpbGwgc2tpcAo+IGl0LiBMZXQgbWUga25vdyBpZiB5b3UgbmVlZCBm b3IgZGV0YWlscy4KPiAKPiA+Cj4gPgo+ID4+Pj53aGlsc3QgZm9yIERldmljZSBUcmVlIHRoZSBz ZWdtZW50IG51bWJlciBpcyBub3QgYXZhaWxhYmxlLgo+ID4+Pj4KPiA+Pj4+U28gWGVuIG5lZWRz IHRvIHJlbHkgb24gRE9NMCB0byBkaXNjb3ZlciB0aGUgaG9zdCBicmlkZ2VzIGFuZCBub3RpZnkg WGVuCj4gPj4+PndpdGggYWxsIHRoZSByZWxldmFudCBpbmZvcm1hdGlvbnMuIFRoaXMgd2lsbCBi ZSBkb25lIHZpYSBhIG5ldyBoeXBlcmNhbGwKPiA+Pj4+UEhZU0RFVk9QX3BjaV9ob3N0X2JyaWRn ZV9hZGQuIFRoZSBsYXlvdXQgb2YgdGhlIHN0cnVjdHVyZSB3aWxsIGJlOgo+ID4+Pgo+ID4+Pkkg dW5kZXJzdGFuZCB0aGF0IHRoZSBtYWluIHB1cnBvc2Ugb2YgdGhpcyBoeXBlcmNhbGwgaXMgdG8g Z2V0IFhlbiBhbmQgRG9tMAo+ID4+PnRvCj4gPj4+YWdyZWUgb24gdGhlIHNlZ21lbnQgbnVtYmVy cywgYnV0IHdoeSBpcyBpdCBuZWNlc3Nhcnk/IElmIERvbTAgaGFzIGFuCj4gPj4+ZW11bGF0ZWQg Y29udG9sbGVyIGxpa2UgYW55IG90aGVyIGd1ZXN0LCBkbyB3ZSBjYXJlIHdoYXQgc2VnbWVudCBu dW1iZXJzCj4gPj4+RG9tMCB3aWxsIHVzZT8KPiA+Pgo+ID4+SSB3YXMgbm90IHBsYW5uaW5nIHRv IGhhdmUgYSBlbXVsYXRlZCBjb250cm9sbGVyIGZvciBET00wLiBUaGUgcGh5c2ljYWwgb25lIGlz Cj4gPj5ub3QgbmVjZXNzYXJpbHkgRUNBTSBjb21wbGlhbnQgc28gd2Ugd291bGQgaGF2ZSB0byBl aXRoZXIgZW11bGF0ZSB0aGUgcGh5c2ljYWwKPiA+Pm9uZSAobWVhbmluZyBtdWx0aXBsZSBkaWZm ZXJlbnQgZW11bGF0aW9uKSBvciBhbiBFQ0FNIGNvbXBsaWFudC4KPiA+Pgo+ID4+VGhlIGxhdHRl ciBpcyBub3QgcG9zc2libGUgYmVjYXVzZSB5b3UgZG9uJ3Qga25vdyBpZiB0aGVyZSBpcyBlbm91 Z2ggZnJlZSBNTUlPCj4gPj5zcGFjZSBmb3IgdGhlIGVtdWxhdGlvbi4KPiA+Pgo+ID4+SW4gdGhl IGNhc2Ugb24gQVJNLCBJIGRvbid0IHNlZSBtdWNoIHRoZSBwb2ludCB0byBlbXVsYXRlIHRoZSBo b3N0IGJyaWRnZSBmb3IKPiA+PkRPTTAuIFRoZSBvbmx5IHRoaW5nIHdlIG5lZWQgaW4gWGVuIGlz IHRvIGFjY2VzcyB0aGUgY29uZmlndXJhdGlvbiBzcGFjZSwgd2UKPiA+PmRvbid0IGhhdmUgYWJv dXQgZHJpdmluZyB0aGUgaG9zdCBicmlkZ2UuIFNvIEkgd291bGQgbGV0IERPTTAgZGVhbGluZyB3 aXRoCj4gPj50aGF0Lgo+ID4+Cj4gPj5BbHNvLCBJIGRvbid0IHNlZSBhbnkgcmVhc29uIGZvciBB Uk0gdG8gdHJhcCBET00wIGNvbmZpZ3VyYXRpb24gc3BhY2UgYWNjZXNzLgo+ID4+VGhlIE1TSSB3 aWxsIGJlIGNvbmZpZ3VyZWQgdXNpbmcgdGhlIGludGVycnVwdCBjb250cm9sbGVyIGFuZCBpdCBp cyBhIHRydXN0ZWQKPiA+PkRvbWFpbi4KPiA+Cj4gPlRoZXNlIGxhc3QgeW91IHNlbnRlbmNlcyBy YWlzZSBhIGxvdCBvZiBxdWVzdGlvbnMuIE1heWJlIEkgYW0gbWlzc2luZwo+ID5zb21ldGhpbmcu IFlvdSBtaWdodCB3YW50IHRvIGNsYXJpZnkgdGhlIHN0cmF0ZWd5IGZvciBEb20wIGFuZCBEb21V cywKPiA+YW5kIGhvdyB0aGV5IGRpZmZlciwgaW4gdGhlIG5leHQgdmVyc2lvbiBvZiB0aGUgZG9j Lgo+ID4KPiA+QXQgc29tZSBwb2ludCB5b3Ugd3JvdGUgIkluc3RhbnRpYXRpb24gb2YgYSBzcGVj aWZpYyBkcml2ZXIgZm9yIHRoZSBob3N0Cj4gPmNvbnRyb2xsZXIgY2FuIGJlIGVhc2lseSBkb25l IGlmIFhlbiBoYXMgdGhlIGluZm9ybWF0aW9uIHRvIGRldGVjdCBpdC4KPiA+SG93ZXZlciwgdGhv c2UgZHJpdmVycyBtYXkgcmVxdWlyZSByZXNvdXJjZXMgZGVzY3JpYmVkIGluIEFTTC4iIERvZXMg aXQKPiA+bWVhbiB5b3UgcGxhbiB0byBkcml2ZSB0aGUgcGh5c2ljYWwgaG9zdCBicmlkZ2UgZnJv bSBYZW4gYW5kIERvbTAKPiA+c2ltdWx0YW5lb3VzbHk/Cj4gCj4gSSBtYXkgbWlzcyBzb21lIGJp dHMsIHNvIGZlZWwgZnJlZSB0byBjb3JyZWN0IG1lIGlmIEkgYW0gd3JvbmcuCj4gCj4gTXkgdW5k ZXJzdGFuZGluZyBpcyBob3N0IGJyaWRnZSBjYW4gYmUgZGl2aWRlZCBpbiAyIHBhcnRzOgo+IAkt IEluaXRpYWxpemF0aW9uIG9mIHRoZSBob3N0IGJyaWRnZQo+IAktIEFjY2VzcyB0aGUgY29uZmln dXJhdGlvbiBzcGFjZQo+IAo+IEZvciBnZW5lcmljIGhvc3QgYnJpZGdlLCB0aGUgaW5pdGlhbGl6 YXRpb24gaXMgaW5leGlzdGVudC4gSG93ZXZlciBzb21lIGhvc3QKPiBicmlkZ2UgKGUuZyB4Z2Vu ZSwgeGlsaW54KSBtYXkgcmVxdWlyZSBzb21lIHNwZWNpZmljIHNldHVwIGFuZCBhbHNvCj4gY29u ZmlndXJpbmcgY2xvY2tzLiBHaXZlbiB0aGF0IFhlbiBvbmx5IHJlcXVpcmVzIHRvIGFjY2VzcyB0 aGUgY29uZmlndXJhdGlvbgo+IHNwYWNlLCBJIHdhcyB0aGlua2luZyB0byBsZXQgRE9NMCBpbml0 aWFsaXphdGlvbiB0aGUgaG9zdCBicmlkZ2UuIFRoaXMgd291bGQKPiBhdm9pZCB0byBpbXBvcnQg YSBsb3Qgb2YgY29kZSBpbiBYZW4sIGhvd2V2ZXIgdGhpcyBtZWFucyB0aGF0IHdlIG5lZWQgdG8K PiBrbm93IHdoZW4gdGhlIGhvc3QgYnJpZGdlIGhhcyBiZWVuIGluaXRpYWxpemVkIGJlZm9yZSBh Y2Nlc3NpbmcgdGhlCj4gY29uZmlndXJhdGlvbiBzcGFjZS4KCgpZZXMsIHRoYXQncyBjb3JyZWN0 LgpUaGVyZSdzIGEgc2VxdWVuY2Ugb24gdGhlIFp5bnFNUCB0aGF0IGludm9sdmVzIGFzc2lnaW5n IEdpZ2FiaXQgVHJhbnNjZWl2ZXJzCnRvIFBDSSAoR1RzIGFyZSBzaGFyZWQgYW1vbmcgUENJZSwg VVNCLCBTQVRBIGFuZCB0aGUgRGlzcGxheSBQb3J0KSwKZW5hYmxpbmcgY2xvY2tzIGFuZCBjb25m aWd1cmluZyBhIGZldyByZWdpc3RlcnMgdG8gZW5hYmxlIEVDQU0gYW5kIE1TSS4KCkknbSBub3Qg c3VyZSBpZiB0aGlzIGNvdWxkIGJlIGRvbmUgcHJpb3IgdG8gc3RhcnRpbmcgWGVuLiBQZXJoYXBz LgpJZiBzbywgYm9vdGxvYWRlcnMgd291bGQgaGF2ZSB0byBrbm93IGEgaGVhZCBvZiB0aW1lIHdo YXQgZGV2aWNlcwp0aGUgR1RzIGFyZSBzdXBwb3NlZCB0byBiZSBjb25maWd1cmVkIGZvci4KCgoK PiAKPiBOb3cgcmVnYXJkaW5nIHRoZSBjb25maWd1cmF0aW9uIHNwYWNlLCBJIHRoaW5rIHdlIGNh biBkaXZpZGUgaW4gMiBjYXRlZ29yeToKPiAJLSBpbmRpcmVjdCBhY2Nlc3MsIHRoZSBjb25maWd1 cmF0aW9uIHNwYWNlIGFyZSBtdWx0aXBsZXhlZC4gQW4gZXhhbXBsZQo+IHdvdWxkIGJlIHRoZSBs ZWdhY3kgbWV0aG9kIG9uIHg4NiAoZS5nIDB4Y2Y4IGFuZCAweGNmYykuIEEgc2ltaWxhciBtZXRo b2QgaXMKPiB1c2VkIGZvciB4LWdlbmUgUENJIGRyaXZlciAoWzFdKS4KPiAJLSBFQ0FNIGxpa2Ug YWNjZXNzLCB3aGVyZSBlYWNoIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlIHdpbGwgaGF2ZSBpdCBp cyBvd24KPiBhZGRyZXNzIHNwYWNlLiBJIHNhaWQgIkVDQU0gbGlrZSIgYmVjYXVzZSBzb21lIGhv c3QgYnJpZGdlIHdpbGwgcmVxdWlyZSBzb21lCj4gYml0cyBmaWRkbGluZyB3aGVuIGFjY2Vzc2lu ZyByZWdpc3RlciAoc2VlIHRodW5kZXItZWNhbSBbMl0pCj4gCj4gVGhlcmUgYXJlIGFsc28gaG9z dCBicmlkZ2VzIHRoYXQgbWl4IGJvdGggaW5kaXJlY3QgYWNjZXNzIGFuZCBFQ0FNIGxpa2UKPiBh Y2Nlc3MgZGVwZW5kaW5nIG9uIHRoZSBkZXZpY2UgY29uZmlndXJhdGlvbiBzcGFjZSBhY2Nlc3Nl ZCAoc2VlIHRodW5kZXItcGVtCj4gWzNdKS4KPiAKPiBXaGVuIHVzaW5nIEVDQU0gbGlrZSBob3N0 IGJyaWRnZSwgSSBkb24ndCB0aGluayBpdCB3aWxsIGJlIGFuIGlzc3VlIHRvIGhhdmUKPiBib3Ro IERPTTAgYW5kIFhlbiBhY2Nlc3NpbmcgY29uZmlndXJhdGlvbiBzcGFjZSBhdCB0aGUgc2FtZSB0 aW1lLiBBbHRob3VnaCwKPiB3ZSBuZWVkIHRvIGRlZmluZSB3aG8gaXMgZG9pbmcgd2hhdC4gSW4g Z2VuZXJhbCBjYXNlLCBET00wIHNob3VsZCBub3QKPiB0b3VjaGVkIGFuIGFzc2lnbmVkIFBDSSBk ZXZpY2UuIFRoZSBvbmx5IHBvc3NpYmxlIGludGVyYWN0aW9uIHdvdWxkIGJlCj4gcmVzZXR0aW5n IGEgZGV2aWNlIChzZWUgbXkgYW5zd2VyIGJlbG93KS4KPiAKPiBXaGVuIHVzaW5nIGluZGlyZWN0 IGFjY2Vzcywgd2UgY2Fubm90IGxldCBET00wIGFuZCBYZW4gYWNjZXNzaW5nIGFueSBQQ0kKPiBj b25maWd1cmF0aW9uIHNwYWNlIGF0IHRoZSBzYW1lIHRpbWUuIFNvIEkgdGhpbmsgd2Ugd291bGQg aGF2ZSB0byBlbXVsYXRlCj4gdGhlIHBoeXNpY2FsIGhvc3QgY29udHJvbGxlci4KPiAKPiBVbmxl c3Mgd2UgaGF2ZSBhIGJpZyByZXF1aXJlbWVudCB0byB0cmFwIERPTTAgYWNjZXNzIHRvIHRoZSBj b25maWd1cmF0aW9uCj4gc3BhY2UsIEkgd291bGQgb25seSBrZWVwIHRoZSBlbXVsYXRpb24gdG8g dGhlIHN0cmljdCBtaW5pbXVtIChlLmcgZm9yCj4gaW5kaXJlY3QgYWNjZXNzKSB0byBhdm9pZCBl bmRpbmctdXAgaGFuZGxpbmcgYWxsIHRoZSBxdWlya3MgZm9yIEVDQU0gbGlrZQo+IGhvc3QgYnJp ZGdlLgo+IAo+IElmIHdlIG5lZWQgdG8gdHJhcCB0aGUgY29uZmlndXJhdGlvbiBzcGFjZSwgSSB3 b3VsZCBzdWdnZXN0IHRoZSBmb2xsb3dpbmcKPiBmb3IgRUNBTSBsaWtlIGhvc3QgYnJpZGdlOgo+ IAktIEZvciBwaHlzaWNhbCBob3N0IGJyaWRnZSB0aGF0IGRvZXMgbm90IHJlcXVpcmUgaW5pdGlh bGl6YXRpb24gYW5kIGlzCj4gbmVhcmx5IEVDQU0gY29tcGF0aWJsZSAoZS5nIHJlcXVpcmUgcmVn aXN0ZXIgZmlkZGxpbmcpID0+IHJlcGxhY2UgYnkgYQo+IGdlbmVyaWMgaG9zdCBicmlkZ2UgZW11 bGF0aW9uIGZvciBET00wCj4gCS0gRm9yIHBoeXNpY2FsIGhvc3QgYnJpZGdlIHRoYXQgcmVxdWly ZSBpbml0aWFsaXphdGlvbiBidXQgaXMgRUNBTQo+IGNvbXBhdGlibGUgKGUuZyBBRkFJQ1QgeGls aW54IFs0XSkgPT4gdHJhcCB0aGUgRUNBTSBhY2Nlc3MgYnV0IGxldCBET00wCj4gaGFuZGxpbmcg dGhlIGhvc3QgYnJpZGdlIGluaXRpYWxpemF0aW9uCgpTb3VuZHMgZ29vZCB0byBtZS4KCgo+IAkt IEZvciBhbGwgb3RoZXIgaG9zdCBicmlkZ2VzID0+IEkgZG9uJ3Qga25vdyBpZiB0aGVyZSBhcmUg aG9zdCBicmlkZ2VzCj4gZmFsbGluZyB1bmRlciB0aGlzIGNhdGVnb3J5LiBJIGFsc28gZG9uJ3Qg aGF2ZSBhbnkgaWRlYSBob3cgdG8gaGFuZGxlIHRoaXMuCj4gCj4gPgo+ID5PdGhlcndpc2UsIGlm IERvbTAgaXMgdGhlIG9ubHkgb25lIHRvIGRyaXZlIHRoZSBwaHlzaWNhbCBob3N0IGJyaWRnZSwK PiA+YW5kIFhlbiBpcyB0aGUgb25lIHRvIHByb3ZpZGUgdGhlIGVtdWxhdGVkIGhvc3QgYnJpZGdl LCBob3cgYXJlIERvbVUgUENJCj4gPmNvbmZpZyByZWFkcyBhbmQgd3JpdGVzIHN1cHBvc2VkIHRv IHdvcmsgaW4gZGV0YWlscz8KPiAKPiBJIHRoaW5rIEkgaGF2ZSBhbnN3ZXJlZCB0byB0aGlzIHF1 ZXN0aW9uIHdpdGggbXkgZXhwbGFuYXRpb24gYWJvdmUuIExldCBtZQo+IGtub3cgaWYgaXQgaXMg bm90IHRoZSBjYXNlLgo+IAo+ID4gIEhvdyBpcyBNU0kgY29uZmlndXJhdGlvbiBzdXBwb3NlZCB0 byB3b3JrPwo+IAo+IEZvciBHSUN2MyBJVFMsIHRoZSBNU0kgd2lsbCBiZSBjb25maWd1cmVkIHdp dGggdGhlIGV2ZW50SUQgKGl0IGlzIHVuaXEKPiBwZXItZGV2aWNlKSBhbmQgdGhlIGFkZHJlc3Mg b2YgdGhlIGRvb3JiZWxsLiBUaGUgbGlua2FnZSBiZXR3ZWVuIHRoZSBMUEkgYW5kCj4gIk1TSSIg d2lsbCBiZSBkb25lIHRocm91Z2ggdGhlIElUUy4KPiAKPiBGb3IgR0lDdjJtLCB0aGUgTVNJIHdp bGwgYmUgY29uZmlndXJlZCB3aXRoIGFuIFNQSXMgKG9yIG9mZnNldCBvbiBzb21lCj4gR0lDdjJt KSBhbmQgdGhlIGFkZHJlc3Mgb2YgdGhlIGRvb3JiZWxsLiBOb3RlIHRoYXQgZm9yIERPTTAgU1BJ cyBhcmUgbWFwcGVkCj4gMToxLgo+IAo+IFNvIGluIGJvdGggY2FzZSwgSSBkb24ndCB0aGluayBp dCBpcyBuZWNlc3NhcnkgdG8gdHJhcCBNU0kgY29uZmlndXJhdGlvbiBmb3IKPiBET00wLiBUaGlz IG1heSBub3QgYmUgdHJ1ZSBpZiB3ZSB3YW50IHRvIGhhbmRsZSBvdGhlciBNU0kgY29udHJvbGxl ci4KPiAKPiBJIGhhdmUgaW4gbWluZCB0aGUgeGlsaW54IE1TSSBjb250cm9sbGVyIChlbWJlZGRl ZCBpbiB0aGUgaG9zdCBicmlkZ2U/IFs0XSkKPiBhbmQgeGdlbmUgTVNJIGNvbnRyb2xsZXIgKFs1 XSkuIEJ1dCBJIGhhdmUgbm8gaWRlYSBob3cgdGhleSB3b3JrIGFuZCBpZiB3ZQo+IG5lZWQgdG8g c3VwcG9ydCB0aGVtLiBNYXliZSBFZGdhciBjb3VsZCBzaGFyZSBkZXRhaWxzIG9uIHRoZSBYaWxp bnggb25lPwoKClRoZSBYaWxpbnggY29udHJvbGxlciBoYXMgMiBkZWRpY2F0ZWQgU1BJcyBhbmQg cGFnZXMgZm9yIE1TSXMuIEFGQUlLLCB0aGVyZSdzIG5vCndheSB0byBwcm90ZWN0IHRoZSBNU0kg ZG9vcmJlbGxzIGZyb20gbWFsLWNvbmZpZ3VyZWQgZW5kLXBvaW50cyByYWlzaW5nIG1hbGljaW91 cyBFdmVudElEcy4KU28gcGVyaGFwcyB0cmFwcGVkIGNvbmZpZyBhY2Nlc3NlcyBmcm9tIGRvbVVz IGNhbiBoZWxwIGJ5IGFkZGluZyB0aGlzIHByb3RlY3Rpb24KYXMgZHJpdmVycyBjb25maWd1cmUg dGhlIGRldmljZS4KCk9uIExpbnV4LCBPbmNlIE1TSSdzIGhpdCwgdGhlIGtlcm5lbCB0YWtlcyB0 aGUgU1BJIGludGVycnVwdHMsIHJlYWRzCm91dCB0aGUgRXZlbnRJRCBmcm9tIGEgRklGTyBpbiB0 aGUgY29udHJvbGxlciBhbmQgaW5qZWN0cyBhIG5ldyBJUlEgaW50bwp0aGUga2VybmVsLgoKSSBo b3BlIHRoYXQgaGVscHMhCkJlc3QgcmVnYXJkcywKRWRnYXIKCgo+IAo+ID4KPiA+Cj4gPj4+PlhY WDogU2hhbGwgd2UgbGltaXQgRE9NMCB0aGUgYWNjZXNzIHRvIHRoZSBjb25maWd1cmF0aW9uIHNw YWNlIGZyb20gdGhhdAo+ID4+Pj5tb21lbnQ/Cj4gPj4+Cj4gPj4+SWYgd2UgY2FuLCB3ZSBzaG91 bGQKPiA+Pgo+ID4+V2h5IHdvdWxkIGJlIHRoZSBiZW5lZml0cz8gRm9yIG5vdywgSSBzZWUgYSBi aWcgZHJhd2JhY2s6IHJlc2V0dGluZyBhIFBDSQo+ID4+ZGV2aWNlcyB3b3VsZCBuZWVkIHRvIGJl IGRvbmUgaW4gWGVuIHJhdGhlciB0aGFuIERPTTAuIEFzIHlvdSBtYXkgbm93IHRoZXJlCj4gPj5h cmUgYSBsb3Qgb2YgcXVpcmtzIGZvciByZXNldC4KPiA+Pgo+ID4+U28gZm9yIG1lLCBpdCBsb29r cyBtb3JlIHNlbnNpYmxlIHRvIGhhbmRsZSB0aGlzIGluIERPTTAgYW5kIGxldCBET00wIGEgZnVs bAo+ID4+YWNjZXNzIHRvIHRoZSBjb25maWd1cmF0aW9uIHNwYWNlLiBPdmVyYWxsIGhlIGlzIGEg dHJ1c3RlZCBkb21haW4uCj4gPgo+ID5QQ0kgcmVzZXQgaXMgd29ydGggb2YgaXRzIG93biBjaGFw dGVyIGluIHRoZSBkb2MgOi0pCj4gPgo+ID5Eb20wIGlzIGEgdHJ1c3RlZCBkb21haW4sIGJ1dCB3 aGVuIHBvc3NpYmxlLCBJIGNvbnNpZGVyIGFuIGltcHJvdmVtZW50Cj4gPnRvIGxpbWl0IHRoZSBh bW91bnQgb2YgdHJ1c3Qgd2UgcHV0IGluIGl0LiBBbHNvLCBhcyBJIHdyb3RlIGFib3ZlLCBJCj4g PmRvbid0IHVuZGVyc3RhbmQgd2hhdCBpcyB0aGUgcGxhbiB0byBkZWFsIHdpdGggY29uY3VycmVu dCBhY2Nlc3NlcyB0bwo+ID50aGUgaG9zdCBicmlkZ2UgZnJvbSBEb20wIGFuZCBYZW4uCj4gCj4g SSBiZWxpZXZlIEkgZ2F2ZSBtb3JlIGRldGFpbHMgbm93IDopLiBJZiBpdCBzb3VuZHMgc2Vuc2li bGUsIEkgd2lsbCBhZGQgaXQKPiBpbiB0aGUgbmV4dCB2ZXJzaW9uIG9mIHRoZSBkZXNpZ24gZG9j Lgo+IAo+ID4KPiA+SW4gYW55IGNhc2UsIHJlZ2FyZGluZyBQQ0kgcmVzZXQsIHdlIHNob3VsZCBk aWcgb3V0IHBhc3QgZGlzY3Vzc2lvbnMgb24KPiA+dGhlIG1lcml0cyBvZiBkb2luZyByZXNldCBp biB0aGUgaHlwZXJ2aXNvciB2cy4gZG9tMC4gSSBhZ3JlZQo+ID5pbnRyb2R1Y2luZyBQQ0kgcmVz ZXQgcXVpcmtzIGluIFhlbiBpcyBub3QgbmljZSBidXQgSSByZWNhbGwgdGhhdAo+ID5YZW5DbGll bnQgZGlkIGl0IHRvIGF2b2lkIHBvc3NpYmxlIG1pc2JlaGF2aW9ycyBvZiB0aGUgZGV2aWNlLiBX ZSBuZWVkCj4gPnRvIGJlIGNhcmVmdWwgYWJvdXQgb3JkZXJpbmcgUENJIHJlc2V0IGFnYWluc3Qg ZG9tYWluIGRlc3RydWN0aW9uLiBJCj4gPmNvdWxkbid0IGZpbmQgYW55IGVtYWlsIGRpc2N1c3Np b25zIHRvIHJlZmVyZW5jZSwgbWF5YmUgaXQgaXMgd29ydGgKPiA+Y29udGFjdGluZyB0aGUgT3Bl blhUIGd1eXMgYWJvdXQgaXQuCj4gCj4gSSd2ZSBnb3QgYSB2YWd1ZSByZWNhbGwgb2YgdGhpcyBj b2RlIGJhY2sgd2hlbiBJIHdhcyB3b3JraW5nIGF0IFhlbkNsaWVudC4KPiAKPiBJIGdhdmUgYSBi cmllZiBsb29rIHRvIHRoZSBYZW4gcGF0Y2hxdWV1ZSBbNl0gb2Ygb3Blbnh0IGFuZCB3YXMgbm90 IGFibGUgdG8KPiBmaW5kIGEgcGF0Y2ggdG8gcmVzZXQgUENJIGluIFhlbi4gSG93ZXZlciwgdGhl IGhhdmUgYSBwYXRjaCB0byBmaXggdGhlIG9uZQo+IGluIExpbnV4IFs3XS4KPiAKPiBUaGVyZSBp cyBzb21lIGV4LVhlbkNsaWVudCB3b3JraW5nIG9uIE9wZW5YdC4gSSB3aWxsIGFzayB0aGVtIHRv IHNlZSBpZiB0aGV5Cj4gcmVtZW1iZXIgYW55dGhpbmcuIEFsc28gQ0MgQW5kcmV3LCBqdXN0IGlu IGNhc2UgaGUga25vd3MgdGhlIHN0b3J5Lgo+IAo+IENoZWVycywKPiAKPiBbMV0gZHJpdmVycy9w Y2kvaG9zdC9wY2kteGdlbmUuYwo+IFsyXSBkcml2ZXJzL3BjaS9ob3N0L3BjaS10aHVuZGVyLWVj YW0uYwo+IFszXSBkcml2ZXJzL3BjaS9ob3N0L3BjaS10aHVuZGVyLXBlbS5jCj4gWzRdIGRyaXZl cnMvcGNpL2hvc3QvcGNpZS14aWxpbngtbndsLmMKPiBbNV0gZHJpdmVycy9wY2kvaG9zdC9wY2ll LXhnZW5lLW1zaS5jCj4gWzZdIGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuWFQtRXh0cmFzL3hlbi1j b21tb24tcHEKPiBbN10KPiBodHRwczovL2dpdGh1Yi5jb20vT3BlblhULUV4dHJhcy9saW51eC0z LjExLXBxL2Jsb2IvbWFzdGVyL21hc3Rlci9wY2ktcHQtZmxyCj4gCj4gLS0gCj4gSnVsaWVuIEdy YWxsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK