From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Auger Subject: Re: [PATCH v15 00/10] KVM platform device passthrough Date: Mon, 18 May 2015 11:41:41 +0200 Message-ID: <5559B3D5.1010805@linaro.org> References: <5549B3A0.3090205@linaro.org> <5549B69B.2050702@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id 2D21D51757 for ; Mon, 18 May 2015 05:32:34 -0400 (EDT) Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Qht7c1QC06iL for ; Mon, 18 May 2015 05:32:32 -0400 (EDT) Received: from mail-wg0-f52.google.com (mail-wg0-f52.google.com [74.125.82.52]) by mm01.cs.columbia.edu (Postfix) with ESMTPS id C1D7751750 for ; Mon, 18 May 2015 05:32:31 -0400 (EDT) Received: by wgfl8 with SMTP id l8so29096161wgf.2 for ; Mon, 18 May 2015 02:41:49 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu To: Baptiste Reynal Cc: Peter Crosthwaite , "eric.auger@st.com" , "patches@linaro.org" , qemu list , Alex Williamson , Paolo Bonzini , "kvmarm@lists.cs.columbia.edu" List-Id: kvmarm@lists.cs.columbia.edu SGkgQmFwdGlzdGUsIGFsbCwKClRoYW5rcyBCYXB0aXN0ZSBmb3IgeW91ciByZXBseS4KCklzIHRo ZXJlIGFueXRoaW5nIGxlZnQgYmxvY2tpbmcgdGhpcyBzZXJpZXMgYW5kIGZlbGxvdyBNYWNodmly dCBEeW5hbWljClN5c2J1cyBpbnN0YW50aWF0aW9uPyBIb3BlIHRoZXJlIGlzIG5vIGN5Y2xpYyBk ZXBlbmRlbmN5IGJldHdlZW4gYm90aD8KClRoYW5rcyBpbiBhZHZhbmNlCgpCZXN0IFJlZ2FyZHMK CkVyaWMKCgpPbiAwNS8xMS8yMDE1IDAyOjM3IFBNLCBCYXB0aXN0ZSBSZXluYWwgd3JvdGU6Cj4g SGkgRXJpYywKPiAKPiBJIHJlYmFzZWQgYW1iYSBwYXRjaGVzIG9uIHRoaXMgc2VyaWUuIEV2ZXJ5 dGhpbmcgaXMgd29ya2luZyBmaW5lIHdpdGgKPiB0aGUgUEwzMzAgZGV2aWNlLgo+IAo+IFJlZ2Fy ZHMsCj4gQmFwdGlzdGUKPiAKPiBPbiBXZWQsIE1heSA2LCAyMDE1IGF0IDg6MzcgQU0sIEVyaWMg QXVnZXIgPGVyaWMuYXVnZXJAbGluYXJvLm9yZz4gd3JvdGU6Cj4+IERlYXIgQWxsLAo+Pgo+PiBQ bGVhc2UgaWdub3JlIHRoZSBwcmV2aW91cyB2b2lkIG1lc3NhZ2UuIEZvciB1bmtub3duIHJlYXNv biB0aGUgcmVwbHkKPj4gc3lzdGVtYXRpY2FsbHkgaWdub3JlcyB0aGUgY29udGVudCBvZiB0aGUg bWVzc2FnZT8gUmV0cnlpbmcgYnJlYWtpbmcgdGhlCj4+IGhpc3RvcnkuLi4gQ29udGVudCB3YXM6 Cj4+Cj4+IEkgYW0gbG9va2luZyBmb3IgIlRlc3RlZC1ieSIgZm9yIHRoaXMgc2VyaWVzIGFuZCBy ZWxhdGVkIE1hY2h2aXJ0Cj4+IGR5bmFtaWMgc3lzYnVzIGRldmljZSBpbnN0YW50aWF0aW9uLiBE aWQgYW55b25lIHRyeSB0aGUgbGFzdCB2ZXJzaW9ucz8KPj4KPj4gSSBrbm93IHRob3NlIHNlcmll cyBhcmUgbm90IHBsdWcgJiBwbGF5IHNpbmNlIGFkZGl0aW9ucyBhcmUgbmVlZGVkIGZvcgo+PiB5 b3VyIGRldmljZToKPj4gLSBkZXZpY2UgdHJlZSBub2RlIGFkZGl0aW9uIGluIHN5c2J1cyBkZXZp Y2UKPj4gLSBjcmVhdGlvbiBvZiBhIHNwZWNpYWxpemVkIFFFTVUgVkZJTyBwbGF0Zm9ybSBkZXZp Y2Ugc2luY2UgYmFzZSBjbGFzcwo+PiBpcyBhYnN0cmFjdAo+Pgo+PiBGb3IgdGhvc2Ugd2lsbGlu ZyB0byB0cnkgYW5kIGFzc2VzcyB0aGF0IGNvZGUsIHBsZWFzZSBkbyBub3QgaGVzaXRhdGUgdG8K Pj4gY29udGFjdCBtZS4gSSBjYW4gYW5kIEkgYW0gd2lsbGluZyB0byBoZWxwLiBJZiB5b3UgYWxy ZWFkeSBkaWQsIHdpdGgKPj4gc3VjY2VzcyBvciBmYWNpbmcgaXNzdWVzLCBwbGVhc2Ugc2VuZCB5 b3VyIFRlc3RlZC1ieSBvciByZXBvcnQgYW55IGlzc3VlCj4+IGZvciBxdWljayBmaXguIFRoaXMg d2lsbCBkZWZpbml0aXZlbHkgaGVscCBpbiB0aGUgdXBzdHJlYW0gb2YgdGhpcyBjb2RlLgo+Pgo+ PiBUaGFua3MKPj4KPj4gQmVzdCBSZWdhcmRzCj4+Cj4+IEVyaWMKPj4KPj4KPj4KPj4gVGhpcyBz ZXJpZXMgYWltcyBhdCBlbmFibGluZyBLVk0gcGxhdGZvcm0gZGV2aWNlIHBhc3N0aHJvdWdoLgo+ Pgo+PiBPbiBrZXJuZWwgc2lkZSwgdGhlIHZmaW8gcGxhdGZvcm0gZHJpdmVyIGlzIG5lZWRlZCwg YXZhaWxhYmxlIGZyb20KPj4gNC4xLXJjMSBvbndhcmRzLgo+Pgo+PiBUaGlzIHNlcmllcyBub3cg b25seSByZWxpZXMgb24gdGhlIGZvbGxvd2luZyBRRU1VIHNlcmllcywgZm9yCj4+IGR5bmFtaWMg aW5zdGFudGlhdGlvbiBvZiB0aGUgVkZJTyBwbGF0Zm9ybSBkZXZpY2UgZnJvbSBxZW11IGNvbW1h bmQKPj4gbGluZToKPj4KPj4gWzFdIFtQQVRDSCB2MTIgMC80XSBtYWNodmlydCBkeW5hbWljIHN5 c2J1cyBkZXZpY2UgaW5zdGFudGlhdGlvbgo+PiBodHRwOi8vY29tbWVudHMuZ21hbmUub3JnL2dt YW5lLmNvbXAuZW11bGF0b3JzLmt2bS5hcm0uZGV2ZWwvODg2Cj4+Cj4+IEJvdGggc2VyaWVzIGFy ZSBjYW5kaWRhdGUgZm9yIFFFTVUgMi40IGFuZCBhdmFpbGFibGUgYXQKPj4KPj4gaHR0cDovL2dp dC5saW5hcm8ub3JnL3Blb3BsZS9lcmljLmF1Z2VyL3FlbXUuZ2l0Cj4+IChicmFuY2ggdmZpb19p bnRlZ192MTUpCj4+Cj4+IFRoZSBzZXJpZXMgd2FzIHRlc3RlZCBvbiBDYWx4ZWRhIE1pZHdheSAo QVJNdjcpIHdoZXJlIG9uZSB4Z21hYwo+PiBpcyBhc3NpZ25lZCB0byBLVk0gaG9zdCB3aGlsZSB0 aGUgc2Vjb25kIG9uZSBpcyBhc3NpZ25lZCB0byB0aGUgZ3Vlc3QuCj4+Cj4+IFdpa2kgZm9yIENh bHhlZGEgTWlkd2F5IHNldHVwOgo+PiBodHRwczovL3dpa2kubGluYXJvLm9yZy9MRUcvRW5naW5l ZXJpbmcvVmlydHVhbGl6YXRpb24vUGxhdGZvcm1fRGV2aWNlX1Bhc3N0aHJvdWdoX29uX01pZHdh eQo+Pgo+PiBIaXN0b3J5Ogo+Pgo+PiB2MTQgLT4gdjE1Ogo+PiAtIGFkZCBQZXRlciBSLWIgb24g c3lzYnVzOiBhZGQgaXJxX3JvdXRpbmdfbm90aWZpZXIKPj4gLSBjb3JyZWN0IGdfbWFsbG9jMF9u IHVzYWdlIGluIHNrZWxldG9uCj4+IC0gY29ycmVjdCByZXR1cm4gdmFsdWVzIG9mIHJlc2V0IHJl bGF0ZWQgZnVuY3Rpb25zCj4+IC0gaW5jbHVkZSBDb3JuZWxpYSdzIHBhdGNoIGZvciBoZWFkZXIg dXBkYXRlCj4+Cj4+IHYxMyAtPiB2MTQ6Cj4+IC0gcmVtb3ZlIHYxMyA5LCAxMCwgMTEgcGF0Y2gg ZmlsZXMgYW5kIHJlcGxhY2UgdGhlbSBieSBhIHNpbmdsZSBwYXRjaCBmaWxlCj4+ICAgInN5c2J1 czogYWRkIGlycV9yb3V0aW5nX25vdGlmaWVyIi4KPj4gLSBpbiBza2VsZXRvbiwgZml4IEVOQU1F VE9PTE9ORyBzaWduCj4+IC0gcmVtb3ZlIFZGSU9JTlRwIHZpcnR1YWxJRCBpbiAiYWRkIGlycSBh c3NpZ25tZW50IiBwYXRjaCBmaWxlCj4+IC0gcmVtb3ZlZCB0cmFjZV92ZmlvX3BsYXRmb3JtX3N0 YXJ0X2V2ZW50ZmQKPj4KPj4gdjEyIC0+IHYxMzoKPj4gLSBoZWFkZXIgdXBkYXRlIGJ1dCBzYW1l IHVwZGF0ZSB3YXMgYWxyZWFkeSBzZW50IGJ5IENvcm5lbGlhCj4+IC0gUmV3b3JrIFZGSU8gc2ln bmFsaW5nICYgaXJxZmQgc2V0dXA6IHJlc3RvcmVkIDItc3RlcCBzZXR1cCBmZWF0dXJpbmcKPj4g ICBldmVudGZkIHNldHVwIG9uIHJlYWxpemUgYW5kIHRoZW4gaXJxZmQgc2V0dXAgb24gaXJxIGJp bmRpbmcuCj4+IC0gaXJxZmQgc2V0dXAgbm93IHVzZXMga3ZtX2lycWNoaXBfYWRkX2lycWZkX25v dGlmaWVyIGFuZAo+PiAgIHN5c2J1cyBpcnFfc2V0X2hvb2sgb3ZlcnJpZGUuIFRoaXMgbGVhZHMg dG8gdGhlIGludHJvZHVjdGlvbiBvZiA2IHBhdGNoCj4+ICAgZmlsZXMgZW5hYmxpbmcgdGhvc2Ug MiBmZWF0dXJlcy4gUGFvbG8gYWR2aXNlZCB0byBpbnRyb2R1Y2UKPj4gICBrdm1faXJxY2hpcF9h ZGRfaXJxZmRfbm90aWZpZXIgc2VyaWVzIGluIHRoZSBWRklPIG9uZS4gSSBkaWQgdGhlCj4+ICAg c2FtZSBmb3IgaXJxX3NldF9ob29rIHNlcmllcyBidXQgaWYgaXQgaXMgYmV0dGVyIEkgY2FuIHN1 Ym1pdCBpdCBhc2lkZS4KPj4gLSBhYm92ZSBjaGFuZ2VzIG1hZGUgcG9zc2libGUgdG8gcmVtb3Zl Cj4+ICAgeCBody92ZmlvL3BsYXRmb3JtOiBhZGQgY2FwYWJpbGl0eSB0byBzdGFydCBJUlEgcHJv cGFnYXRpb24iCj4+ICAgeCBody9hcm0vdmlydDogc3RhcnQgVkZJTyBJUlEgcHJvcGFnYXRpb24K Pj4gLSBpbiBzeXNidXMtZmR0LmMsIHVzZSBwbGF0Zm9ybV9idXNfZ2V0X21taW9fYWRkciBpbnN0 ZWFkIG9mIGRlcHJlY2F0ZWQKPj4gICBtbWlvWzBdIHByb3BlcnR5LiBUaGFua3MgdG8gQmhhcmF0 IHdobyBwb2ludGVkIHRoaXMgaXNzdWUgb3V0LiBhbHNvCj4+ICAgY3B1X3RvX2JlMzIgd2FzIHVz ZWQgZm9yIHNpemUgYW5kIGJhc2UgKFZpa3JhbSBpbnB1dCkgLgo+PiAtIGluIHNrZWxldG9uIG1p c2MgY29ycmVjdGlvbnMgZm9sbG93aW5nIEFsZXggcmV2aWV3Lgo+Pgo+PiB2MTEtPnYxMjoKPj4g LSBhZGQgeC1tbWFwIHByb3BlcnR5IGRlZmluaXRpb24sIHdpdGhvdXQgd2hpY2ggdGhlIGRlZmF1 bHQgdmFsdWUgb2YKPj4gICB2YmFzZWRldi5hbGxvd19tbWFwIGlzIGZhbHNlLCBoZW5jZSBwcmV2 ZW50aW5nIHRoZSByZWcgc3BhY2UgZnJvbQo+PiAgIGJlaW5nIG1tYXBwZWQuCj4+Cj4+IHYxMC0+ djExOgo+PiAtIHJlYmFzZSBvbnRvIHYyLjMuMC1yYzAgKG1haW5seSByZWxhdGVkIHRvIFBDSWUg c3VwcG9ydCBpbiB2aXJ0KQo+PiAtIGFkZCBkbWEtY29oZXJlbnQgcHJvcGVydHkgZm9yIGNhbHhl ZGEgbWlkd2F5IChmaXggcmV2ZWFsZWQgYnkgcmVtb3ZhbAo+PiAgIG9mIGtlcm5lbC1zaWRlICJ2 ZmlvOiB0eXBlMTogc3VwcG9ydCBmb3IgQVJNIFNNTVVTIHdpdGggVkZJT19JT01NVV9UWVBFMSIp Cj4+IC0gdmlydCBtb2RpZmljYXRpb25zIHRvIHN0YXJ0IFZGSU8gSVJRIGZvcndhcmRpbmcgYXJl IG5vdyBpbiBhIHNlcGFyYXRlCj4+ICAgcGF0Y2gKPj4gLSByZWFycmFuZ2UgbGludXggaGVhZGVy IGV4cG9ydHMgKHRob3NlIGFyZSBzdGlsbCBwYXJ0aWFsIGV4cG9ydHMKPj4gICB3YWl0aW5nIGZv ciBkZWZpbml0aXZlIDQuMS1yYzApCj4+IC0gdGFrZSBpbnRvIGFjY291bnQgQWxleCBCZW5uw6ll IGNvbW1lbnRzOgo+PiAgIC0gdXNlIGdfbWFsbG9jMF9uIGluc3RlYWQgb2YgZ19tYWxsb2MwCj4+ ICAgLSB1c2UgYmxvY2sgZGVjbGFyYXRpb25zIHdoZW4gcG9zc2libGUKPj4gICAtIHJld29yayBy ZWFkbGluayByZXR1cm5lZCB2YWx1ZSB0cmVhdG1lbnQKPj4gICAtIHVzZSBnX3N0cmxjYXQgaW4g cGxhY2Ugc3RybmNhdAo+PiAgIC0gcmUtYXJyYW5nZSBtdXRleCBsb2NraW5nIGZvciBtdWx0aXBs ZSBJUlEgc3VwcG9ydCAodXNlci1zaWRlIGhhbmRsZWQKPj4gICAgIGV2ZW50ZmRzKQo+PiAtIHVz ZSBnX3NucHJpbnRmIGluc3RlYWQgb2Ygc25wcmludGYKPj4gLSBjaGFuZ2UgdGhlIG9yZGVyIG9m IGZ1bmN0aW9ucyB0byBhdm9pZCBwcmUtZGVjbGFyYXRpb24gaW4gcGxhdGZvcm0uYwo+PiAtIGFk ZCBmbGFncyBpbiBWRklPSU5UcCBzdHJ1Y3QgdG8gZGV0ZWN0IHdoZXRoZXIgdGhlIElSUSBpcyBh dXRvbWFza2VkCj4+IC0gc29tZSBjb21tZW50IHJld3JpdGluZwo+Pgo+PiB2OS0+djEwOgo+PiAt IHJlYmFzZSBvbiAidmZpbzogY2xlYW51cCB2ZmlvX2dldF9kZXZpY2UgZXJyb3IgcGF0aCwgcmVt b3ZlCj4+ICAgdmZpb19wb3B1bGF0ZV9kZXZpY2UiOiB2ZmlvX3BvcHVsYXRlX2RldmljZSBubyBt b3JlIGNhbGxlZCBpbgo+PiAgIHZmaW9fZ2V0X2RldmljZSBidXQgaW4gdmZpb19iYXNlX2Rldmlj ZV9pbml0Cj4+IC0gdXBkYXRlIFZGSU8gaGVhZGVyIGFjY29yZGluZyB0byB2ZmlvIHBsYXRmb3Jt IGRyaXZlciB2MTMgKG5vIEFNQkEpCj4+Cj4+IHY4LT52OToKPj4gLSByZWJhc2Ugb24gMi4yLjAg YW5kIG1hY2h2aXJ0IGR5bmFtaWMgc3lzYnVzIGluc3RhbnRpYXRpb24gdjEwCj4+IC0gdjggMS0x MSB3ZXJlIHB1bGxlZAo+PiAtIHBhdGNoIGZpbGVzIHJlbGF0ZWQgdG8gZm9yd2FyZGluZyBhcmUg bW92ZWQgaW4gYSBzZXBlcmF0ZSBzZXJpZXMgc2luY2UKPj4gICBpdCBkZXBlbmRzIG9uIGtlcm5l bCBzZXJpZXMgc3RpbGwgaW4gUkZDLgo+PiAtIGludHJvZHVjdGlvbiBvZiBiYXNpYyBWRklPIHBs YXRmb3JtIGRldmljZSBzcGxpdCBpbnRvIDMgcGF0Y2ggZmlsZXMgdG8KPj4gICBlYXNlIHRoZSBy ZXZpZXcgKGhvcGUgaXQgd2lsbCBoZWxwKS4KPj4gLSBhZGQgYW4gYXV0aG9yIGluIHBsYXRmb3Jt LmMKPj4gLSBhZGQgZGVhbGxvY2F0aW9uIGluIHZmaW9fcG9wdWxhdGVfZGV2aWNlIGVycm9yIGNh c2UKPj4gLSBhZGQgcGF0Y2ggZmlsZSBkb2luZyB0aGUgVkZJTyBoZWFkZXIgc3luYwo+PiAtIHVz ZSBWRklPX0RFVklDRV9GTEFHU19QTEFURk9STSBpbiB2ZmlvX3BvcHVsYXRlX2RldmljZQo+PiAt IHJlbmFtZSBjYWx4ZWRhX3hnbWFjLmMgaW50byBjYWx4ZWRhLXhnbWFjLmMKPj4gLSBzeXNidXMt ZmR0OiBhZGRfY2FseGVkYV9taWR3YXlfeGdtYWNfZmR0X25vZGUgZ19mcmVlIGluIGNhc2Ugb2Yg ZXJyb3JzCj4+IC0gcmV3b3JkIG9mIGxpbnV4LWhlYWRlcnMgcGF0Y2ggZmlsZXMKPj4KPj4gdjct PnY4Ogo+PiAtIHJlYmFzZSBvbiB2Mi4yLjAtcmMzIGFuZCBpbnRlZ3JhdGUKPj4gICAiQWRkIHNr aXBfZHVtcCBmbGFnIHRvIGlnbm9yZSBtZW1vcnkgcmVnaW9uIGR1cmluZyBkdW1wIgo+PiAtIEtW TSBoZWFkZXIgZXZvbHV0aW9uIHdpdGggc3ViaW5kZXggYWRkaXRpb24gaW4ga3ZtX2FyY2hfZm9y d2FyZGVkX2lycQo+PiAtIHNwbGl0IFtQQVRDSCB2NyAwMy8xNl0gaHcvdmZpby9wY2k6IGludHJv ZHVjZSBWRklPRGV2aWNlIGludG8gNCBwYXRjaGVzCj4+IC0gdmZpb19jb21wdXRlX25lZWRzX3Jl c2V0IGRvZXMgbm90IHJldHVybiBib29sIGFueW1vcmUKPj4gLSBhZGQgc29tZSBjb21tZW50cyBh Ym91dCBleHBvc2VkIE1NSU8gcmVnaW9uIGFuZCBJUlEgaW4gY2FseGVkYSB4Z21hYwo+PiAgIGRl dmljZQo+PiAtIHZmaW9fW3VuXW1hc2tfaXJxaW5kZXggcmVuYW1lZCBpbnRvIHZmaW9fW3VuXW1h c2tfc2luZ2xlX2lycWluZGV4Cj4+IC0gcmV3b3JrIElSUSBzdGFydHVwOiBmb3JtZXIgbWFjaGlu ZSBpbml0IGRvbmUgbm90aWZpZXIgaXMgcmVwbGFjZWQgYnkgYQo+PiAgIHJlc2V0IG5vdGlmaWVy LiBtYWNoaW5lIGZpbGUgcGFzc2VzIHRoZSBpbnRlcnJ1cHQgY29udHJvbGxlcgo+PiAgIERldmlj ZVN0YXRlIGhhbmRsZSAobm90IHRoZSBwbGF0Zm9ybSBidXMgZmlyc3QgaXJxIHBhcmFtZXRlciku Cj4+IC0gc3lzYnVzLWZkdDoKPj4gICAtIG1vdmUgdGhlIGFkZF9mZHRfbm9kZV9mdW5jdGlvbnMg YXJyYXkgZGVjbGFyYXRpb24gYmV0d2VlbiB0aGUgZGV2aWNlCj4+ICAgICBzcGVjaWZpYyBjb2Rl IGFuZCB0aGUgZ2VuZXJpYyBjb2RlIHRvIGF2b2lkIGZvcndhcmQgZGVjbGFyYXRpb25zIG9mCj4+ ICAgICBkZWNpY2Ugc3BlY2lmaWMgZnVuY3Rpb25zCj4+ICAgLSByZW5hbWUgYWRkX2Jhc2ljX3Zm aW9fZmR0X25vZGUgaW50byBhZGRfY2FseGVkYV9taWR3YXlfeGdtYWNfZmR0X25vZGUKPj4gICAg IGVtcGhhc2l6aW5nIHRoZSBmYWN0IGl0IGlzIHhnbWFjIHNwZWNpZmljCj4+Cj4+IHY2LT52NzoK Pj4gLSBmYWtlIGluamVjdGlvbiB0ZXN0IG1vZGFsaXR5IHJlbW92ZWQKPj4gLSBWRklPX0RFVklD RV9UWVBFX1BMQVRGT1JNIG9ubHkgaW50cm9kdWNlZCB3aXRoIFZGSU8gcGxhdGZvcm0KPj4gLSBu ZXcgaGVscGVyIGZ1bmN0aW9ucyB0byBzdGFydCBWRklPIElSUSBvbiBtYWNoaW5lIGluaXQgZG9u ZSBub3RpZmllcgo+PiAgIChpbnRyb2R1Y2VkIGluIGh3L3ZmaW8vcGxhdGZvcm06IGFkZCB2Zmlv LXBsYXRmb3JtIHN1cHBvcnQgYW5kIG5vdGlmaWVyCj4+ICAgcmVnaXN0cmF0aW9uIGludm9rZWQg aW4gaHcvYXJtL3ZpcnQ6IGFkZCBzdXBwb3J0IGZvciBWRklPIGRldmljZXMpLgo+PiAgIHZmaW9f c3RhcnRfaXJxX2luamVjdGlvbiBpcyByZXBsYWNlZCBieSB2ZmlvX3JlZ2lzdGVyX2lycV9zdGFy dGVyLgo+Pgo+PiB2NS0+djY6Cj4+IC0gcmViYXNlIG9uIDIuMXJjNSBQQ0kgY29kZQo+PiAtIGZv cndhcmRlZCBJUlEgZmlyc3QgaW50ZWdyYXRvbgo+PiAtIHZmaW9fZGV2aWNlIHByb3BlcnR5IHJl bmFtZWQgaW50byBob3N0IHByb3BlcnR5Cj4+IC0gc3BsaXQgSVJRIHNldHVwIGluIGRpZmZlcmVu dCBmdW5jdGlvbnMgdGhhdCBtYXRjaCB0aGUgMyBzdXBwb3J0ZWQKPj4gICBpbmplY3Rpb24gdGVj aG5pcXVlcyAodXNlciBoYW5kbGVkIGV2ZW50ZmQsIGlycWZkLCBmb3J3YXJkZWQgSVJRKToKPj4g ICByZW1vdmVzIGR5bmFtaWMgc3dpdGNoIGJldHdlZW4gaW5qZWN0aW9uIG1ldGhvZHMKPj4gLSBp bnRyb2R1Y2UgZmFrZSBpbnRlcnJ1cHRzIGFzIGEgdGVzdCBtb2RhbGl0eToKPj4gICB4IG1ha2Vz IHBvc3NpYmxlIHRvIHRlc3QgbXVsdGlwbGUgSVJRIHVzZXItc2lkZSBoYW5kbGluZy4KPj4gICB4 IHRoaXMgaXMgYSB0ZXN0IGZlYXR1cmUgb25seTogZW5hYmxlIHRvIHRyaWdnZXIgYSBmZCBhcyBp ZiB0aGUKPj4gICAgIHJlYWwgcGh5c2ljYWwgSVJRIGhpdC4gTm8gdmlydHVhbCBJUlEgaXMgaW5q ZWN0ZWQgaW50byB0aGUgZ3Vlc3QKPj4gICAgIGJ1dCBoYW5kbGluZyBpcyBzaW11bGF0ZWQgc28g dGhhdCB0aGUgc3RhdGUgbWFjaGluZSBjYW4gYmUgdGVzdGVkCj4+IC0gdXNlciBoYW5kbGVkIGV2 ZW50ZmQ6Cj4+ICAgeCBhZGQgbXV0ZXggdG8gcHJvdGVjdCBJUlEgc3RhdGUgJiBsaXN0IG1hbmlw dWxhdGlvbiwKPj4gICB4IGNvcnJlY3QgbWlzbGVhZGluZyBjb21tZW50IGluIHZmaW9faW50cF9p bnRlcnJ1cHQuCj4+ICAgeCBGaXggYnVncyB1c2luZyBmYWtlIGludGVycnVwdCBtb2RhbGl0eQo+ PiAtIGlycWZkIG5vIG1vcmUgYWR2ZXJ0aXNlZCBpbiB0aGlzIHBhdGNoc2V0IChoYW5kbGVkIGlu IFszXSkKPj4gLSBWRklPUGxhdGZvcm1EZXZpY2VDbGFzcyBiZWNvbWVzIGFic3RyYWN0IGFuZCBD YWx4ZWRhIHhnbWFjIGRldmljZQo+PiAgIGFuZCBjbGFzcyBpcyByZS1pbnRyb2R1Y2VkIChhcyBw ZXIgdjQpCj4+IC0gYWxsIERQUklOVEYgcmVtb3ZlZCBpbiBwbGF0Zm9ybSBhbmQgcmVwbGFjZWQg YnkgdHJhY2UtcG9pbnRzCj4+IC0gY29ycmVjdHMgY29tcGlsYXRpb24gd2l0aCBjb25maWd1cmUg LS1kaXNhYmxlLWt2bQo+PiAtIHNpbXBsaWZpZXMgdGhlIHNwbGl0IGZvciB2ZmlvX2dldF9kZXZp Y2UgYW5kIGludHJvZHVjZSBhIHVuaXF1ZQo+PiAgIHNwZWNpYWxpemVkIGZ1bmN0aW9uIG5hbWVk IHZmaW9fcG9wdWxhdGVfZGV2aWNlCj4+IC0gZ3JvdXBfbGlzdCByZW5hbWVkIGludG8gdmZpb19n cm91cF9saXN0Cj4+IC0gaHcvYXJtL2R5bl9zeXNidXNfZGV2dHJlZS5jIGN1cnJlbnRseSBvbmx5 IHN1cHBvcnQgdmZpby1jYWx4ZWRhLXhnbWFjCj4+ICAgaW5zdGFudGlhdGlvbi4gTmVlZHMgdG8g YmUgc3BlY2lhbGl6ZWQgZm9yIG90aGVyIFZGSU8gZGV2aWNlcwo+PiAtIGZpeCAyIGJ1Z3MgaW4g ZHluX3N5c2J1c19kZXZ0cmVlKHJlZ19hdHRyIGluZGV4IGFuZCBjb21wYXQpCj4+Cj4+IHY0LT52 NToKPj4gLSByZWJhc2Ugb24gdjIuMS4wIFBDSSBjb2RlCj4+IC0gdGFrZSBpbnRvIGFjY291bnQg QWxleCBXaWxsaWFtc29uIGNvbW1lbnRzIG9uIFBDSSBjb2RlIHJld29yawo+PiAgIC0gdHJhY2Ug dXBkYXRlcyBpbiB2ZmlvX3JlZ2lvbl93cml0ZS9yZWFkCj4+ICAgLSByZW1vdmUgZmQgZnJvbSBW RklPUmVnaW9uCj4+ICAgLSBnZXQvcHV0IGNrZWFudXAKPj4gLSBidWcgZml4OiBiYXIgcmVnaW9u J3MgdmJhc2VkZXYgZmllbGQgZHVseSBpbml0aWFsaXphdGlvbgo+PiAtIG1pc2MgY2xlYW51cHMg aW4gcGxhdGZvcm0gZGV2aWNlCj4+IC0gZGV2aWNlIHRyZWUgbm9kZSBnZW5lcmF0aW9uIHJlbW92 ZWQgZnJvbSBkZXZpY2UgYW5kIGhhbmRsZWQgaW4KPj4gICBody9hcm0vZHluX3N5c2J1c19kZXZ0 cmVlLmMKPj4gLSByZW1vdmUgImh3L3ZmaW86IGFkZCBhbiBleGFtcGxlIGNhbHhlZGFfeGdtYWMi OiB3aXRoIHJlbW92YWwgb2YKPj4gICBkZXZpY2UgdHJlZSBub2RlIGdlbmVyYXRpb24gd2UgZG8g bm90IGhhdmUgc28gbWFueSB0aGluZ3MgdG8KPj4gICBpbXBsZW1lbnQgaW4gdGhhdCBkZXJpdmVk IGRldmljZSB5ZXQuIE1heSBiZSByZS1pbnRyb2R1Y2VkIGxhdGVyCj4+ICAgb24gaWYgbmVlZGVk IHR5cGljYWxseSBmb3IgcmVzZXQvbWlncmF0aW9uLgo+PiAtIG5vIEdTSSByb3V0aW5nIHRhYmxl IGFueW1vcmUKPj4KPj4gdjMtPnY0IGNoYW5nZXMgKEVyaWMgQXVnZXIsIEFsdmlzZSBSaWdvKQo+ PiAtIHJlYmFzZSBvbiBsYXN0IFZGSU8gUENJIGNvZGUgKHYyLjEuMC1yYzApCj4+IC0gZnVsbCBn aXQgaGlzdG9yeSByZXdvcmsgdG8gZWFzZSBQQ0kgY29kZSBjaGFuZ2UgcmV2aWV3Cj4+IC0gbXYg aW5jbHVkZSBmaWxlcyBpbiBody92ZmlvCj4+IC0gRFBSSU5URiByZWZvcm1hdHRpbmcgdGVtcG9y YXJpbHkgbW92ZWQgb3V0Cj4+IC0gc3VwcG9ydCBvZiBWRklPIHZpcnEgKHJlbW92YWwgb2YgcmVz YW1wbGVmZCBoYW5kbGVyIG9uIHVzZXItc2lkZSkKPj4gLSBpbnRlZ3JhdGlvbiB3aXRoIHN5c2J1 cyBkeW5hbWljIGluc3RhbnRpYXRpb24gZnJhbXdvcmsKPj4gLSByZW1vdmFsIG9mIHVucmVhbGl6 ZSBhbmQgY2xlYW51cCByb3V0aW5lcyB1bnRpbCBpdCBpcyBiZXR0ZXIKPj4gICB1bmRlcnN0b29k IHdoYXQgaXMgcmVhbGx5IG5lZWRlZAo+PiAtIFN1cHBvcnQgb2YgVkZJTyBmb3IgQW1iYSBkZXZp Y2VzIHNob3VsZCBiZSBoYW5kbGVkIGluIGFuIGluaGVyaXRlZAo+PiAgIGRldmljZSB0byBzcGVj aWFsaXplIHRoZSBkZXZpY2UgdHJlZSBnZW5lcmF0aW9uIChjbG9jayBoYW5kbGUgY3VycmVudGx5 Cj4+ICAgbWlzc2luZyBpbiBmcmFtZXdvcmsgaG93ZXZlcikKPj4gLSAiQWx3YXlzIHVzZSBldmVu dGZkIGFzIG5vdGlmeWluZyBtZWNoYW5pc20iIHRlbXBvcmFyaWx5IG1vdmVkIG91dAo+PiAtIHN0 YXRpYyBpbnN0YW50aWF0aW9uIGlzIG5vdCBtYWluc3RyZWFtIChhbHRob3VnaCBpdCByZW1haW5z IHBvc3NpYmxlKQo+PiAgIG5vdGUgaWYgc3RhdGljIGluc3RhbnRpYXRpb24gaXMgdXNlZCwgaXJx ZmQgbXVzdCBiZSBzZXR1cCBpbiBtYWNoaW5lIGZpbGUKPj4gICB3aGVuIHZpcnR1YWwgSVJRIGlz IGtub3duCj4+IC0gY3JlYXRlIHRoZSBHU0kgcm91dGluZyB0YWJsZSBvbiBxZW11IHNpZGUKPj4K Pj4gdjItPnYzIGNoYW5nZXMgKEFsdmlzZSBSaWdvLCBFcmljIEF1Z2VyKToKPj4gLSBGb2xsb3dp bmcgQWxleCBXIHJlY29tbWFuZGF0aW9ucywgZnVydGhlciBlZmZvcnRzIHRvIGZhY3Rvcml6ZSB0 aGUKPj4gICBjb2RlIGJldHdlZW4gUENJOmludHJvZHVjdGlvbiBvZiBWRklPRGV2aWNlIGFuZCBW RklPUmVnaW9uCj4+ICAgYXMgYmFzZSBjbGFzc2VzCj4+IC0gdW5pcXVlIHJlc2V0IGhhbmRsZXIg Zm9yIHBsYXRmb3JtIGFuZCBQQ0kKPj4gLSBjbGVhbnVwIGZvbGxvd2luZyBLaW0ncyBjb21tZW50 cwo+PiAtIG11bHRpcGxlIElSUSBzdXBwb3J0IG1lY2hhbmljcyBzaG91bGQgYmUgaW4gcGxhY2Ug YWx0aG91Z2ggbm90Cj4+ICAgdGVzdGVkCj4+IC0gQmV0dGVyIGhhbmRsaW5nIG9mIE1NSU8gbXVs dGlwbGUgcmVnaW9ucwo+PiAtIE5ldyBmZWF0dXJlcyBhbmQgZml4ZXMgYnkgQWx2aXNlIChtdWx0 aXBsZSBjb21wYXQgc3RyaW5nLCBleGVjCj4+ICAgZmxhZywgZm9yY2UgZXZlbnRmZCB1c2FnZSwg YW1iYSBkZXZpY2UgdHJlZSBzdXBwb3J0KQo+PiAtIGlycWZkIHN1cHBvcnQKPj4KPj4gdjEtPnYy IGNoYW5nZXMgKEtpbSBQaGlsbGlwcywgRXJpYyBBdWdlcik6Cj4+IC0gSVJRIGluaXRpYWwgc3Vw cG9ydCAobGVnYWN5IG1vZGUgd2hlcmUgZXZlbnRmZHMgYXJlIGhhbmRsZWQgb24KPj4gICB1c2Vy IHNpZGUpCj4+IC0gaGFja2VkIGR5bmFtaWMgaW5zdGFudGlhdGlvbgo+Pgo+PiB2MSAoS2ltIFBo aWxsaXBzKToKPj4gLSBpbml0aWFsIHNwbGl0IGJldHdlZW4gUENJIGFuZCBwbGF0Zm9ybQo+PiAt IE1NSU8gc3VwcG9ydCBvbmx5Cj4+IC0gc3RhdGljIGluc3RhbnRpYXRpb24KPj4KPj4gQmVzdCBS ZWdhcmRzCj4+Cj4+IEVyaWMKPj4KPj4KPj4gQ29ybmVsaWEgSHVjayAoMSk6Cj4+ICAgbGludXgt aGVhZGVyczogdXBkYXRlCj4+Cj4+IEVyaWMgQXVnZXIgKDkpOgo+PiAgIGh3L3ZmaW8vcGxhdGZv cm06IHZmaW8tcGxhdGZvcm0gc2tlbGV0b24KPj4gICBody92ZmlvL3BsYXRmb3JtOiBhZGQgaXJx IGFzc2lnbm1lbnQKPj4gICBody92ZmlvL3BsYXRmb3JtOiBjYWx4ZWRhIHhnbWFjIGRldmljZQo+ PiAgIGh3L2FybS9zeXNidXMtZmR0OiBlbmFibGUgdmZpby1jYWx4ZWRhLXhnbWFjIGR5bmFtaWMg aW5zdGFudGlhdGlvbgo+PiAgIGt2bTogcmVuYW1lIGt2bV9pcnFjaGlwX1thZGQscmVtb3ZlXV9p cnFmZF9ub3RpZmllciB3aXRoIGdzaSBzdWZmaXgKPj4gICBrdm0tYWxsLmM6IGFkZCBxZW11X2ly cS9nc2kgaGFzaCB0YWJsZSBhbmQgdXRpbGl0eSByb3V0aW5lcwo+PiAgIGludGM6IGFybV9naWNf a3ZtOiBzZXQgdGhlIHFlbXVfaXJxL2dzaSBtYXBwaW5nCj4+ICAgc3lzYnVzOiBhZGQgaXJxX3Jv dXRpbmdfbm90aWZpZXIKPj4gICBody92ZmlvL3BsYXRmb3JtOiBhZGQgaXJxZmQgc3VwcG9ydAo+ Pgo+PiAgaHcvYXJtL3N5c2J1cy1mZHQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NzIgKysrCj4+ICBody9jb3JlL3N5c2J1cy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNiArCj4+ICBody9pbnRjL2FybV9naWNfa3ZtLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNSArCj4+ICBody9zMzkweC92aXJ0aW8tY2N3LmMgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgOCArLQo+PiAgaHcvdmZpby9NYWtlZmlsZS5vYmpzICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKwo+PiAgaHcvdmZpby9jYWx4ZWRhLXhnbWFjLmMgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNTQgKysKPj4gIGh3L3ZmaW8vcGNpLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICA2ICstCj4+ICBody92ZmlvL3BsYXRmb3JtLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDcyMwo+PiArKysrKysrKysrKysrKysrKysrKysrKysK Pj4gIGh3L3ZpcnRpby92aXJ0aW8tcGNpLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0 ICstCj4+ICBpbmNsdWRlL2h3L3N5c2J1cy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMSArCj4+ICBpbmNsdWRlL2h3L3ZmaW8vdmZpby1jYWx4ZWRhLXhnbWFjLmggICAgICAgICAg ICB8ICA0NiArKwo+PiAgaW5jbHVkZS9ody92ZmlvL3ZmaW8tY29tbW9uLmggICAgICAgICAgICAg ICAgICAgfCAgIDEgKwo+PiAgaW5jbHVkZS9ody92ZmlvL3ZmaW8tcGxhdGZvcm0uaCAgICAgICAg ICAgICAgICAgfCAgNzcgKysrCj4+ICBpbmNsdWRlL3N0YW5kYXJkLWhlYWRlcnMvbGludXgvdmly dGlvX2JhbGxvb24uaCB8ICAyOCArLQo+PiAgaW5jbHVkZS9zdGFuZGFyZC1oZWFkZXJzL2xpbnV4 L3ZpcnRpb19ibGsuaCAgICAgfCAgIDggKy0KPj4gIGluY2x1ZGUvc3RhbmRhcmQtaGVhZGVycy9s aW51eC92aXJ0aW9faWRzLmggICAgIHwgICAxICsKPj4gIGluY2x1ZGUvc3RhbmRhcmQtaGVhZGVy cy9saW51eC92aXJ0aW9faW5wdXQuaCAgIHwgIDc2ICsrKwo+PiAgaW5jbHVkZS9zeXNlbXUva3Zt LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKy0KPj4gIGt2bS1hbGwuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ0ICstCj4+ICBrdm0tc3R1Yi5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQo+PiAgbGludXgt aGVhZGVycy9hc20tYXJtL2t2bS5oICAgICAgICAgICAgICAgICAgICAgfCAgIDkgKy0KPj4gIGxp bnV4LWhlYWRlcnMvYXNtLWFybTY0L2t2bS5oICAgICAgICAgICAgICAgICAgIHwgICA5ICstCj4+ ICBsaW51eC1oZWFkZXJzL2FzbS1taXBzL2t2bS5oICAgICAgICAgICAgICAgICAgICB8IDE2NCAr KystLS0KPj4gIGxpbnV4LWhlYWRlcnMvYXNtLXMzOTAva3ZtLmggICAgICAgICAgICAgICAgICAg IHwgICA0ICsKPj4gIGxpbnV4LWhlYWRlcnMvYXNtLXg4Ni9oeXBlcnYuaCAgICAgICAgICAgICAg ICAgIHwgICAyICsKPj4gIGxpbnV4LWhlYWRlcnMvbGludXgva3ZtLmggICAgICAgICAgICAgICAg ICAgICAgIHwgIDY2ICsrLQo+PiAgbGludXgtaGVhZGVycy9saW51eC92ZmlvLmggICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKwo+PiAgdHJhY2UtZXZlbnRzICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMTMgKwo+PiAgMjggZmlsZXMgY2hhbmdlZCwgMTM2MiBpbnNlcnRp b25zKCspLCA4NyBkZWxldGlvbnMoLSkKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBody92ZmlvL2Nh bHhlZGEteGdtYWMuYwo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGh3L3ZmaW8vcGxhdGZvcm0uYwo+ PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvaHcvdmZpby92ZmlvLWNhbHhlZGEteGdtYWMu aAo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvaHcvdmZpby92ZmlvLXBsYXRmb3JtLmgK Pj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL3N0YW5kYXJkLWhlYWRlcnMvbGludXgvdmly dGlvX2lucHV0LmgKPj4KPj4gLS0gMS44LjMuMgo+Pgo+PgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18Ka3ZtYXJtIG1haWxpbmcgbGlzdAprdm1hcm1AbGlz dHMuY3MuY29sdW1iaWEuZWR1Cmh0dHBzOi8vbGlzdHMuY3MuY29sdW1iaWEuZWR1L21haWxtYW4v bGlzdGluZm8va3ZtYXJtCg==