From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [early RFC] ARM PCI Passthrough design document Date: Tue, 31 Jan 2017 15:59:37 +0000 Message-ID: <86f9d57d-d6a7-1ddd-cce0-217194d5b81b@linaro.org> References: <5cf9128e-e845-2a89-f7c7-ac8616941ab9@linaro.org> <20170106151200.r6r424aabhlly2df@dhcp-3-221.uk.xensource.com> <87860d34-3789-3b06-5757-5a861471cd8b@linaro.org> <20170125114239.7zicek4wd5u5znqr@dhcp-3-221.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 1cYaqK-00019v-Ve for xen-devel@lists.xenproject.org; Tue, 31 Jan 2017 15:59:41 +0000 Received: by mail-wm0-f48.google.com with SMTP id v77so99249233wmv.0 for ; Tue, 31 Jan 2017 07:59:39 -0800 (PST) In-Reply-To: <20170125114239.7zicek4wd5u5znqr@dhcp-3-221.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Cc: "Edgar Iglesias (edgar.iglesias@xilinx.com)" , Stefano Stabellini , Wei Chen , Steve Capper , Jiandi An , Punit Agrawal , alistair.francis@xilinx.com, Shanker Donthineni , xen-devel , "manish.jaggi@caviumnetworks.com" , Campbell Sean List-Id: xen-devel@lists.xenproject.org SGkgUm9nZXIsCgpPbiAyNS8wMS8xNyAxMTo0MiwgUm9nZXIgUGF1IE1vbm7DqSB3cm90ZToKPiBP biBUdWUsIEphbiAyNCwgMjAxNyBhdCAwNToxNzowNlBNICswMDAwLCBKdWxpZW4gR3JhbGwgd3Jv dGU6Cj4+IE9uIDA2LzAxLzE3IDE1OjEyLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOgo+Pj4gT24g VGh1LCBEZWMgMjksIDIwMTYgYXQgMDI6MDQ6MTVQTSArMDAwMCwgSnVsaWVuIEdyYWxsIHdyb3Rl Ogo+Pj4+ICAgICAqIEFkZCBhIGRldmljZQo+Pj4+ICAgICAqIFJlbW92ZSBhIGRldmljZQo+Pj4+ ICAgICAqIEFzc2lnbiBhIGRldmljZSB0byBhIGd1ZXN0Cj4+Pj4gICAgICogRGVhc3NpZ24gYSBk ZXZpY2UgZnJvbSBhIGd1ZXN0Cj4+Pj4KPj4+PiBYWFg6IERldGFpbCB0aGUgaW50ZXJhY3Rpb24g d2hlbiBhc3NpZ25pbmcvZGVhc3NpZ25pbmcgZGV2aWNlCj4+Pgo+Pj4gQXNzaWduaW5nIGEgZGV2 aWNlIHdpbGwgcHJvYmFibHkgZW50YW5nbGUgc2V0dGluZyB1cCBzb21lIGRpcmVjdCBNTUlPIG1h cHBpbmdzCj4+PiAoQkFScyBhbmQgUk9NcykgcGx1cyBhIGJ1bmNoIG9mIHRyYXBzIGluIG9yZGVy IHRvIHBlcmZvcm0gZW11bGF0aW9uIG9mIGFjY2Vzc2VzCj4+PiB0byB0aGUgUENJIGNvbmZpZyBz cGFjZSAob3IgdGhvc2UgY2FuIGJlIHNldHVwIHdoZW4gYSBuZXcgYnJpZGdlIGlzIHJlZ2lzdGVy ZWQKPj4+IHdpdGggWGVuKS4KPj4KPj4gSSBhbSBwbGFubmluZyB0byBkZXRhaWxzIHRoZSByb290 IGNvbXBsZXggZW11bGF0aW9uIGluIGEgc2VwYXJhdGUgc2VjdGlvbi4gSQo+PiBzZW50IHRoZSBk ZXNpZ24gZG9jdW1lbnQgYmVmb3JlIHdyaXRpbmcgaXQuCj4+Cj4+IEluIGJyaWVmLCBJIHdvdWxk IGV4cGVjdCB0aGUgcmVnaXN0cmF0aW9uIG9mIGEgbmV3IGJyaWRnZSB0byBzZXR1cCB0aGUgdHJh cAo+PiB0byBlbXVsYXRpb24gYWNjZXNzIHRvIHRoZSBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZS4g T24gQVJNLCB0aGUgZmlyc3QKPj4gYXBwcm9hY2ggd2lsbCByZWx5IG9uIHRoZSBPUyB0byBzZXR1 cCB0aGUgQkFScyBhbmQgUk9Ncy4gU28gdGhleSB3aWxsIGJlCj4+IG1hcHBlZCBieSB0aGUgUENJ IGNvbmZpZ3VyYXRpb24gc3BhY2UgZW11bGF0aW9uLgo+Pgo+PiBUaGUgcmVhc29uIG9uIHJlbHlp bmcgb24gdGhlIE9TIHRvIHNldHVwIHRoZSBCQVJzL1JPTXMgcmVkdWNpbmcgdGhlIHdvcmsgdG8K Pj4gZG8gZm9yIGEgZmlyc3QgdmVyc2lvbi4gT3RoZXJ3aXNlIHdlIHdvdWxkIGhhdmUgdG8gYWRk IGNvZGUgaW4gdGhlIHRvb2xzdGFjawo+PiB0byBkZWNpZGUgd2hlcmUgdG8gcGxhY2UgdGhlIEJB UnMvUk9Ncy4gSSBkb24ndCB0aGluayBpdCBpcyBhIGxvdCBvZiB3b3JrLAo+PiBidXQgaXQgaXMg bm90IHRoYXQgaW1wb3J0YW50IGJlY2F1c2UgaXQgZG9lcyBub3QgcmVxdWlyZSBhIHN0YWJsZSBB QkkgKHRoaXMKPj4gaXMgYW4gaW50ZXJhY3Rpb24gYmV0d2VlbiB0aGUgaHlwZXJ2aXNvciBhbmQg dGhlIHRvb2xzdGFjaykuIEZ1cnRoZXJtb3JlLAo+PiBMaW51eCAoYXQgbGVhc3Qgb24gQVJNKSBp cyBhc3NpZ25pbmcgdGhlIEJBUnMgYXQgdGhlIHNldHVwLiBGcm9tIG15Cj4+IHVuZGVyc3RhbmRp bmcsIHRoaXMgaXMgdGhlIGV4cGVjdGVkIGJlaGF2aW9yIHdpdGggYm90aCBEVCAodGhlIERUIGhh cyBhCj4+IHByb3BlcnR5IHRvIHNraXAgdGhlIHNjYW4pIGFuZCBBQ1BJLgo+Cj4gVGhpcyBhcHBy b2FjaCBtaWdodCB3b3JrIGZvciBEb20wLCBidXQgZm9yIERvbVUgeW91IGNlcnRhaW5seSBuZWVk IHRvIGtub3cKPiB3aGVyZSB0aGUgTU1JTyByZWdpb25zIG9mIGEgZGV2aWNlIGFyZSwgYW5kIGVp dGhlciB0aGUgdG9vbHN0YWNrIG9yIFhlbiBuZWVkcwo+IHRvIHNldHVwIHRoaXMgaW4gYWR2YW5j ZSAob3IgYXQgbGVhc3QgbWFyayB3aGljaCBNTUlPIHJlZ2lvbnMgYXJlIGF2YWlsYWJsZSB0bwo+ IHRoZSBEb21VKS4gQWxsb3dpbmcgYSBEb21VIHRvIG1hcCByYW5kb20gTU1JTyByZWdpb25zIGlz IGNlcnRhaW5seSBhIHNlY3VyaXR5Cj4gaXNzdWUuCgpJIGFncmVlIGhlcmUuIEkgcHJvdmlkZWQg bW9yZSBmZWVkYmFjayBvbiBhbiBhbnN3ZXIgdG8gU3RlZmFubywgSSB3b3VsZCAKeW91ciBpbnB1 dCB0aGVyZSB0byBpZiBwb3NzaWJsZS4gU2VlCgo8OGNhOTEwNzMtMDllNy01N2NhLTkwNjMtYjQ3 ZTBhY2VkMzlkQGxpbmFyby5vcmc+CgpbLi4uXQoKPj4+Cj4+Pj4KPj4+PiBCYXNlZCBvbiB3aGF0 IExpbnV4IGlzIGN1cnJlbnRseSBkb2luZywgdGhlcmUgYXJlIHR3byBraW5kIG9mIHF1aXJrczoK Pj4+PiAgICAgKiBBY2Nlc3NlcyB0byB0aGUgY29uZmlndXJhdGlvbiBzcGFjZSBvZiBjZXJ0YWlu IHNpemVzIGFyZSBub3QgYWxsb3dlZAo+Pj4+ICAgICAqIEEgc3BlY2lmaWMgZHJpdmVyIGlzIG5l Y2Vzc2FyeSBmb3IgZHJpdmluZyB0aGUgaG9zdCBicmlkZ2UKPj4+Cj4+PiBIbSwgc28gd2hhdCBh cmUgdGhlIGlzc3VlcyB0aGF0IG1ha2UgdGhpcyBicmlkZ2VzIG5lZWQgc3BlY2lmaWMgZHJpdmVy cz8KPj4+Cj4+PiBUaGlzIG1pZ2h0IGJlIHF1aXRlIHByb2JsZW1hdGljIGlmIHlvdSBhbHNvIGhh dmUgdG8gZW11bGF0ZSB0aGlzIGJyb2tlbgo+Pj4gYmVoYXZpb3IgaW5zaWRlIG9mIFhlbiAoYmVj YXVzZSBEb20wIGlzIHVzaW5nIGEgc3BlY2lmaWMgZHJpdmVyKS4KPj4KPj4gSSBhbSBub3QgZXhw ZWN0aW5nIHRvIGVtdWxhdGUgdGhlIGNvbmZpZ3VyYXRpb24gc3BhY2UgYWNjZXNzIGZvciBET00w LiBJCj4+IGtub3cgeW91IG1lbnRpb25lZCB0aGF0IGl0IHdvdWxkIGJlIG5lY2Vzc2FyeSB0byBo aWRlIFBDSSB1c2VkIGJ5IFhlbiAoc3VjaAo+PiBhcyB0aGUgVUFSVCkgdG8gRE9NMCBvciBjb25m aWd1cmluZyBNU0kuIEJ1dCBmb3IgQVJNLCB0aGUgVUFSVCBpcyBpbnRlZ3JhdGVkCj4+IGluIHRo ZSBTT0MgYW5kIE1TSSB3aWxsIGJlIGNvbmZpZ3VyZWQgdGhyb3VnaCB0aGUgaW50ZXJydXB0IGNv bnRyb2xsZXIuCj4KPiBSaWdodCwgd2UgY2VydGFpbmx5IG5lZWQgdG8gZG8gaXQgZm9yIHg4Niwg YnV0IEkgZG9uJ3Qga25vdyB0aGF0IG11Y2ggb2YgdGhlCj4gQVJNIGFyY2hpdGVjdHVyZSBpbiBv cmRlciB0byBrbm93IGlmIHRoYXQncyBuZWVkZWQgb3Igbm90LiBJJ20gYWxzbyB3b25kZXJpbmcK PiBpZiBoYXZpbmcgYm90aCBYZW4gYW5kIHRoZSBEb20wIGRpcmVjdGx5IGFjY2Vzc2luZyB0aGUg RUNBTSBhcmVhIGlzIGZpbmUsIGV2ZW4KPiBpZiB0aGV5IHVzZSBkaWZmZXJlbnQgY2FjaGUgbWFw cGluZyBhdHRyaWJ1dGVzPwoKSSBkb24ndCBrbm93IG11Y2ggeDg2LCBidXQgb24gQVJNIHdlIGNv dWxkIHNwZWNpZnkgY2FjaGluZyBhdHRyaWJ1dGVzIGluIAp0aGUgc3RhZ2UtMiBwYWdlIHRhYmxl cyAoYWthIEVQVCBvbiB4ODYpLiBUaGUgTU1VIHdpbGwgdXNlIHRoZSBzdHJpY3RlciAKbWVtb3J5 IGF0dHJpYnV0ZXMgYmV0d2VlbiBzdGFnZS0yIGFuZCB0aGUgZ3Vlc3QgcGFnZSB0YWJsZXMuCgpJ biB0aGUgY2FzZSBvZiBFQ0FNLCB3ZSBjb3VsZCBkaXNhYmxlIHRoZSBjYWNoaW5nIGluIHN0YWdl LTIgcGFnZSAKdGFibGVzLiBTbyB0aGUgRUNBTSB3aWxsIGFsd2F5cyBhY2Nlc3MgdW5jYWNoZWQu Cgo+Cj4+Pj4gU28gWGVuIG5lZWRzIHRvIHJlbHkgb24gRE9NMCB0byBkaXNjb3ZlciB0aGUgaG9z dCBicmlkZ2VzIGFuZCBub3RpZnkgWGVuCj4+Pj4gd2l0aCBhbGwgdGhlIHJlbGV2YW50IGluZm9y bWF0aW9ucy4gVGhpcyB3aWxsIGJlIGRvbmUgdmlhIGEgbmV3IGh5cGVyY2FsbAo+Pj4+IFBIWVNE RVZPUF9wY2lfaG9zdF9icmlkZ2VfYWRkLiBUaGUgbGF5b3V0IG9mIHRoZSBzdHJ1Y3R1cmUgd2ls bCBiZToKPj4+Pgo+Pj4+IHN0cnVjdCBwaHlzZGV2X3BjaV9ob3N0X2JyaWRnZV9hZGQKPj4+PiB7 Cj4+Pj4gICAgIC8qIElOICovCj4+Pj4gICAgIHVpbnQxNl90IHNlZzsKPj4+PiAgICAgLyogUmFu Z2Ugb2YgYnVzIHN1cHBvcnRlZCBieSB0aGUgaG9zdCBicmlkZ2UgKi8KPj4+PiAgICAgdWludDhf dCAgYnVzX3N0YXJ0Owo+Pj4+ICAgICB1aW50OF90ICBidXNfbnI7Cj4+Pj4gICAgIHVpbnQzMl90 IHJlczA7ICAvKiBQYWRkaW5nICovCj4+Pj4gICAgIC8qIEluZm9ybWF0aW9uIGFib3V0IHRoZSBj b25maWd1cmF0aW9uIHNwYWNlIHJlZ2lvbiAqLwo+Pj4+ICAgICB1aW50NjRfdCBjZmdfYmFzZTsK Pj4+PiAgICAgdWludDY0X3QgY2ZnX3NpemU7Cj4+Pj4gfQo+Pj4KPj4+IFdoeSBkbyB5b3UgbmVl ZCB0byBjZmdfc2l6ZSBhdHRyaWJ1dGU/IElzbid0IGl0IGFsd2F5cyBnb2luZyB0byBiZSA0MDk2 IGJ5dGVzCj4+PiBpbiBzaXplPwo+Pgo+PiBUaGUgY2ZnX3NpemUgaXMgaGVyZSB0byBoZWxwIHVz IHRvIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIG5vZGUgaW4gdGhlCj4+IGRldmljZSB0cmVlLiBU aGUgY2ZnX3NpemUgbWF5IGRpZmZlciBkZXBlbmRpbmcgb24gaG93IHRoZSBoYXJkd2FyZSBoYXMK Pj4gaW1wbGVtZW50ZWQgdGhlIGFjY2VzcyB0byB0aGUgY29uZmlndXJhdGlvbiBzcGFjZS4KPgo+ IEJ1dCBjZXJ0YWlubHkgY2ZnX2Jhc2UgbmVlZHMgdG8gYmUgYWxpZ25lZCB0byBhIFBBR0VfU0la RT8gQW5kIGFjY29yZGluZyB0byB0aGUKPiBzcGVjIGNmZ19zaXplIGNhbm5vdCBiZSBiaWdnZXIg dGhhbiA0S0IgKFBBR0VfU0laRSksIHNvIGluIGFueSBjYXNlIHlvdSB3aWxsCj4gZW5kIHVwIG1h cHBpbmcgYSB3aG9sZSA0S0IgcGFnZSwgYmVjYXVzZSB0aGF0J3MgdGhlIG1pbmltdW0gZ3JhbnVs YXJpdHkgb2YgdGhlCj4gcDJtPwoKY2ZnX3NpemUgd291bGQgYmUgYSBtdWx0aXBsZSBvZiA0S0Ig YXMgZWFjaCBjb25maWd1cmF0aW9uIHNwYWNlIHdvdWxkIApoYXZlIGEgdW5pcXVlIHJlZ2lvbi4g QnV0IGFzIHlvdSBtZW50aW9uZWQgbGF0ZXIgd2UgY291bGQgcmUtdXNlIApNTUNGR19yZXNlcnZl ZC4KCj4KPj4gQnV0IHRvIGJlIGZhaXIsIEkgdGhpbmsgd2UgY2FuIGRlYWwgd2l0aG91dCB0aGlz IHByb3BlcnR5LiBGb3IgQUNQSSwgdGhlCj4+IHNpemUgd2lsbCB2YXJ5IGZvbGxvd2luZyB0aGUg bnVtYmVyIG9mIGJ1cyBoYW5kbGVkIGFuZCBjYW4gYmUgZGVkdWNlZC4gRm9yCj4+IERULCB0aGUg YmFzZSBhZGRyZXNzIGFuZCBidXMgcmFuZ2Ugc2hvdWxkIGJlIGVub3VnaCB0byBmaW5kIHRoZSBh c3NvY2lhdGVkCj4+IG5vZGUuCj4+Cj4+Pgo+Pj4gSWYgdGhhdCBmaWVsZCBpcyByZW1vdmVkIHlv dSBjb3VsZCB1c2UgdGhlIFBIWVNERVZPUF9wY2lfbW1jZmdfcmVzZXJ2ZWQKPj4+IGh5cGVyY2Fs bHMuCj4+Pgo+Pj4+IERPTTAgd2lsbCBpc3N1ZSB0aGUgaHlwZXJjYWxsIFBIWVNERVZPUF9wY2lf aG9zdF9icmlkZ2VfYWRkIGZvciBlYWNoIGhvc3QKPj4+PiBicmlkZ2UgYXZhaWxhYmxlIG9uIHRo ZSBwbGF0Zm9ybS4gV2hlbiBYZW4gaXMgcmVjZWl2aW5nIHRoZSBoeXBlcmNhbGwsIHRoZQo+Pj4+ IHRoZSBkcml2ZXIgYXNzb2NpYXRlZCB0byB0aGUgaG9zdCBicmlkZ2Ugd2lsbCBiZSBpbnN0YW50 aWF0ZWQuCj4+Pj4KPj4+PiBYWFg6IFNoYWxsIHdlIGxpbWl0IERPTTAgdGhlIGFjY2VzcyB0byB0 aGUgY29uZmlndXJhdGlvbiBzcGFjZSBmcm9tIHRoYXQKPj4+PiBtb21lbnQ/Cj4+Pgo+Pj4gTW9z dCBkZWZpbml0ZWx5IHllcywgeW91IHNob3VsZCBpbnN0YW50aWF0ZSBhbiBlbXVsYXRlZCBicmlk Z2Ugb3ZlciB0aGUgcmVhbAo+Pj4gb25lLCBpbiBvcmRlciB0byBwcm94eSBEb20wIGFjY2Vzc2Vz IHRvIHRoZSBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZS4gWW91IGZvcgo+Pj4gZXhhbXBsZSBkb24n dCB3YW50IERvbTAgbW92aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgQkFScyBvZiBQQ0kgZGV2aWNl cyB3aXRob3V0Cj4+PiBYZW4gYmVpbmcgYXdhcmUgKGFuZCBwcm9wZXJseSBjaGFuZ2luZyB0aGUg c2Vjb25kIHN0YWdlIHRyYW5zbGF0aW9uKS4KPj4KPj4gVGhlIHByb2JsZW0gaXMgb24gQVJNIHdl IGRvbid0IGhhdmUgYSBzaW5nbGUgd2F5IHRvIGFjY2VzcyB0aGUgY29uZmlndXJhdGlvbgo+PiBz cGFjZS4gU28gd2Ugd291bGQgbmVlZCBkaWZmZXJlbnQgZW11bGF0b3IgaW4gWGVuLCB3aGljaCBJ IGRvbid0IGxpa2UgdW5sZXNzCj4+IHRoZXJlIGlzIGEgc3Ryb25nIHJlYXNvbiB0byBkbyBpdC4K Pj4KPj4gV2UgY291bGQgYXZvaWQgRE9NMHMgdG8gbW9kaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUg QkFScyBhZnRlciBzZXR1cC4gSSBhbHNvCj4+IHJlbWVtYmVyZWQgeW91IG1lbnRpb24gYWJvdXQg TVNJIGNvbmZpZ3VyYXRpb24sIGZvciBBUk0gdGhpcyBpcyBkb25lIHZpYSB0aGUKPj4gaW50ZXJy dXB0IGNvbnRyb2xsZXIuCj4+Cj4+Pgo+Pj4+ICMjIERpc2NvdmVyaW5nIGFuZCByZWdpc3RlciBQ Q0kKPj4+Pgo+Pj4+IFNpbWlsYXJseSB0byB4ODYsIFBDSSBkZXZpY2VzIHdpbGwgYmUgZGlzY292 ZXJlZCBieSBET00wIGFuZCByZWdpc3Rlcgo+Pj4+IHVzaW5nIHRoZSBoeXBlcmNhbGxzIFBIWVNE RVZPUF9wY2lfYWRkX2RldmljZSBvciBQSFlTREVWT1BfbWFuYWdlX3BjaV9hZGRfZXh0Lgo+Pj4K Pj4+IFdoeSBkbyB5b3UgbmVlZCB0aGlzPyBJZiB5b3UgaGF2ZSBhY2Nlc3MgdG8gdGhlIGJyaWRn ZXMgeW91IGNhbiBzY2FuIHRoZW0gZnJvbQo+Pj4gWGVuIGFuZCBkaXNjb3ZlciB0aGUgZGV2aWNl cyBBRkFJQ1QuCj4+Cj4+IEkgYW0gYSBiaXQgY29uZnVzZWQuIEFyZSB5b3Ugc2F5aW5nIHRoYXQg eW91IHBsYW4gdG8gZGl0Y2ggdGhlbSBmb3IgUFZIPyBJZgo+PiBzbywgd2h5IGFyZSB0aGV5IGNh bGxlZCBieSBMaW51eCB0b2RheT8KPgo+IEkgdGhpbmsgd2UgY2FuIGdldCBhd2F5IHdpdGggUEhZ U0RFVk9QX3BjaV9tbWNmZ19yZXNlcnZlZCBvbmx5LCBidXQgbWF5YmUgSSdtCj4gbWlzc2luZyBz b21ldGhpbmcuIEFGQUlDVCBYZW4gc2hvdWxkIGJlIGFibGUgdG8gZ2F0aGVyIGFsbCB0aGUgb3Ro ZXIgZGF0YSBieQo+IGl0c2VsZiBmcm9tIHRoZSBQQ0kgY29uZmlnIHNwYWNlIG9uY2UgaXQga25v d3MgdGhlIGRldGFpbHMgYWJvdXQgdGhlIGhvc3QKPiBicmlkZ2UuCgogRnJvbSBteSB1bmRlcnN0 YW5kaW5nLCBzb21lIGhvc3QgYnJpZGdlcyB3b3VsZCBuZWVkIHRvIGJlIGNvbmZpZ3VyZWQgCmJl Zm9yZSBiZWVuIGFibGUgdG8gYmUgdXNlZCAoVEJDKS4gQnJpbmdpbmcgdGhpcyBpbml0aWFsaXph dGlvbiBpbiBYZW4gCm1heSBiZSBjb21wbGV4LiBGb3IgaW5zdGFuY2UgdGhlIHhnZW5lIGhvc3Ri cmlkZ2UgKHNlZSAKbGludXgvZHJpdmVycy9wY2kvaG9zdC9wY2kteGdlbmUuYykgd2lsbCByZXF1 aXJlIHRvIGVuYWJsZSB0aGUgY2xvY2suCgpJIHdvdWxkIGxldCB0aGUgaW5pdGlhbGl6YXRpb24g b2YgdGhlIGhvc3RicmlkZ2UgaW4gTGludXgsIHNvIHdlIGFyZSAKZG9pbmcgdGhlIHNjYW5uaW5n IGluIFhlbiB3ZSB3aWxsIG5lZWQgYW4gaHlwZXJjYWxsIHRvIGxldCB0aGVtIGtub3dzIAp0aGUg aG9zdCBicmlkZ2VzIGhhcyBiZWVuIGluaXRpYWxpemVkLgoKSSBnYXZlIGEgYml0IG1vcmUgYmFj a2dyb3VuZCBvbiBteSBhbnN3ZXIgdG8gU3RlZmFuby4gU28gSSB3b3VsZCAKcmVjb21tZW5kIHRv IGNvbnRpbnVlIHRoZSBjb252ZXJzYXRpb24gdGhlcmUuCgoKPgo+Pj4KPj4+PiBCeSBkZWZhdWx0 IGFsbCB0aGUgUENJIGRldmljZXMgd2lsbCBiZSBhc3NpZ25lZCB0byBET00wLiBTbyBYZW4gd291 bGQgaGF2ZQo+Pj4+IHRvIGNvbmZpZ3VyZSB0aGUgU01NVSBhbmQgSW50ZXJydXB0IENvbnRyb2xs ZXIgdG8gYWxsb3cgRE9NMCB0byB1c2UgdGhlIFBDSQo+Pj4+IGRldmljZXMuIEFzIG1lbnRpb25l ZCBlYXJsaWVyLCB0aG9zZSBzdWJzeXN0ZW1zIHdpbGwgcmVxdWlyZSB0aGUgU3RyZWFtSUQKPj4+ PiBhbmQgRGV2aWNlSUQuIEJvdGggY2FuIGJlIGRlZHVjZWQgZnJvbSB0aGUgUklELgo+Pj4+Cj4+ Pj4gWFhYOiBIb3cgdG8gaGlkZSBQQ0kgZGV2aWNlcyBmcm9tIERPTTA/Cj4+Pgo+Pj4gQnkgYWRk aW5nIHRoZSBBQ1BJIG5hbWVzcGFjZSBvZiB0aGUgZGV2aWNlIHRvIHRoZSBTVEFPIGFuZCBibG9j a2luZyBEb20wCj4+PiBhY2Nlc3MgdG8gdGhpcyBkZXZpY2UgaW4gdGhlIGVtdWxhdGVkIGJyaWRn ZSB0aGF0IERvbTAgd2lsbCBoYXZlIGFjY2VzcyB0bwo+Pj4gKHJldHVybmluZyAweEZGRkYgd2hl biBEb20wIHRyaWVzIHRvIHJlYWQgdGhlIHZlbmRvciBJRCBmcm9tIHRoZSBQQ0kgaGVhZGVyKS4K Pj4KPj4gU29ycnkgSSB3YXMgbm90IGNsZWFyIGhlcmUuIEJ5IGhpZGluZywgSSBtZWFudCBET00w IG5vdCBpbnN0YW50aWF0aW5nIGEKPj4gZHJpdmVyIChzaW1pbGFybHkgdG8geGVuLXBjaWJhY2su aGlkZSkuIFdlIHN0aWxsIHdhbnQgRE9NMCB0byBhY2Nlc3MgdGhlIFBDSQo+PiBjb25maWcgc3Bh Y2UgaW4gb3JkZXIgdG8gcmVzZXQgdGhlIGRldmljZS4gVW5sZXNzIHlvdSBwbGFuIHRvIGltcG9y dCBhbGwgdGhlCj4+IHJlc2V0IHF1aXJrcyBpbiBYZW4/Cj4KPiBJIGRvbid0IGhhdmUgYSBjbGVh ciBvcGluaW9uIGhlcmUsIGFuZCBJIGRvbid0IGtub3cgYWxsIHRoZXcgZGV0YWlscyBvZiB0aGlz Cj4gcmVzZXQgaGFja3MuCgpBY3R1YWxseSBJIGxvb2tlZCBhdCB0aGUgTGludXggY29kZSAoc2Vl IF9fcGNpX2Rldl9yZXNldCBpbiAKZHJpdmVycy9wY2kvcGNpLmMpIGFuZCB0aGVyZSBhcmUgbGVz cyBxdWlya3MgdGhhbiBJIGV4cGVjdGVkLiBUaGUgbGlzdCAKb2YgcXVpcmtzIGNhbiBiZSBmb3Vu ZCBpbiBwY2lfZGV2X3Jlc2V0X21ldGhvZHMgaW4gZHJpdmVycy9wY2kvcXVpcmtzLmMuCgpUaGVy ZSBhcmUgZmV3IHdheSB0byByZXNldCBhIGRldmljZSAoc2VlIF9fcGNpX2Rldl9yZXNldCksIHRo ZXkgbG9vayBhbGwgCmJhc2VkIG9uIGFjY2Vzc2luZyB0aGUgY29uZmlndXJhdGlvbiBzcGFjZS4g U28gSSBndWVzcyBpdCBzaG91bGQgYmUgZmluZSAKdG8gaW1wb3J0IHRoYXQgaW4gWGVuLiBBbnkg b3BpbmlvbnM/CgpDaGVlcnMsCgotLSAKSnVsaWVuIEdyYWxsCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK