From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Lan, Tianyu" Subject: Re: Xen virtual IOMMU high level design doc Date: Thu, 15 Sep 2016 22:22:36 +0800 Message-ID: References: <5746B3FA.6020401@intel.com> <5746DF93.8090803@citrix.com> <57480327.60609@intel.com> <78d122f0-c773-7fa3-1258-c551937c508e@intel.com> <575081E8.6070609@citrix.com> <57518B78.6060604@citrix.com> <647d0b74-cecc-db33-1033-f7201c8a0af5@intel.com> <13fa96c1-4e66-e8a0-3b66-1c93ad2b6543@intel.com> <577BD8D002000078000FB3F7@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andrew Cooper , Stefano Stabellini Cc: "yang.zhang.wz@gmail.com" , Kevin Tian , "xen-devel@lists.xensource.com" , Jan Beulich , "ian.jackson@eu.citrix.com" , xuquan8@huawei.com, Jun Nakajima , "anthony.perard@citrix.com" , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SGkgQW5kcmV3OgpTb3JyeSB0byBib3RoZXIgeW91LiBUbyBtYWtlIHN1cmUgd2UgYXJlIG9uIHRo ZSByaWdodCBkaXJlY3Rpb24sIGl0J3MKYmV0dGVyIHRvIGdldCBmZWVkYmFjayBmcm9tIHlvdSBi ZWZvcmUgd2UgZ28gZnVydGhlciBzdGVwLiBDb3VsZCB5b3UKaGF2ZSBhIGxvb2s/IFRoYW5rcy4K Ck9uIDgvMTcvMjAxNiA4OjA1IFBNLCBMYW4sIFRpYW55dSB3cm90ZToKPiBIaSBBbGw6Cj4gICAg ICBUaGUgZm9sbG93aW5nIGlzIG91ciBYZW4gdklPTU1VIGhpZ2ggbGV2ZWwgZGVzaWduIGZvciBk ZXRhaWwKPiBkaXNjdXNzaW9uLiBQbGVhc2UgaGF2ZSBhIGxvb2suIFZlcnkgYXBwcmVjaWF0ZSBm b3IgeW91ciBjb21tZW50cy4KPiBUaGlzIGRlc2lnbiBkb2Vzbid0IGNvdmVyIGNoYW5nZXMgd2hl biByb290IHBvcnQgaXMgbW92ZWQgdG8gaHlwZXJ2aXNvci4KPiBXZSBtYXkgZGVzaWduIGl0IGxh dGVyLgo+Cj4KPiBDb250ZW50Ogo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPgo+IDEuIE1vdGl2 YXRpb24gb2YgdklPTU1VCj4gICAgIDEuMSBFbmFibGUgbW9yZSB0aGFuIDI1NSB2Y3B1cwo+ICAg ICAxLjIgU3VwcG9ydCBWRklPLWJhc2VkIHVzZXIgc3BhY2UgZHJpdmVyCj4gICAgIDEuMyBTdXBw b3J0IGd1ZXN0IFNoYXJlZCBWaXJ0dWFsIE1lbW9yeSAoU1ZNKQo+IDIuIFhlbiB2SU9NTVUgQXJj aGl0ZWN0dXJlCj4gICAgIDIuMSAydGggbGV2ZWwgdHJhbnNsYXRpb24gb3ZlcnZpZXcKPiAgICAg Mi4yIEludGVycnVwdCByZW1hcHBpbmcgb3ZlcnZpZXcKPiAzLiBYZW4gaHlwZXJ2aXNvcgo+ICAg ICAzLjEgTmV3IHZJT01NVSBoeXBlcmNhbGwgaW50ZXJmYWNlCj4gICAgIDMuMiAybmQgbGV2ZWwg dHJhbnNsYXRpb24KPiAgICAgMy4zIEludGVycnVwdCByZW1hcHBpbmcKPiAgICAgMy40IDFzdCBs ZXZlbCB0cmFuc2xhdGlvbgo+ICAgICAzLjUgSW1wbGVtZW50YXRpb24gY29uc2lkZXJhdGlvbgo+ IDQuIFFlbXUKPiAgICAgNC4xIFFlbXUgdklPTU1VIGZyYW1ld29yawo+ICAgICA0LjIgRHVtbXkg eGVuLXZJT01NVSBkcml2ZXIKPiAgICAgNC4zIFEzNSB2cy4gaTQ0MHgKPiAgICAgNC40IFJlcG9y dCB2SU9NTVUgdG8gaHZtbG9hZGVyCj4KPgo+IDEgTW90aXZhdGlvbiBmb3IgWGVuIHZJT01NVQo+ ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KPgo+IDEuMSBFbmFibGUgbW9yZSB0aGFuIDI1NSB2Y3B1 IHN1cHBvcnQKPiBIUEMgdmlydHVhbGl6YXRpb24gcmVxdWlyZXMgbW9yZSB0aGFuIDI1NSB2Y3B1 cyBzdXBwb3J0IGluIGEgc2luZ2xlIFZNCj4gdG8gbWVldCBwYXJhbGxlbCBjb21wdXRpbmcgcmVx dWlyZW1lbnQuIE1vcmUgdGhhbiAyNTUgdmNwdXMgc3VwcG9ydAo+IHJlcXVpcmVzIGludGVycnVw dCByZW1hcHBpbmcgY2FwYWJpbGl0eSBwcmVzZW50IG9uIHZJT01NVSB0byBkZWxpdmVyCj4gaW50 ZXJydXB0IHRvICN2Y3B1ID4yNTUgT3RoZXJ3aXNlIExpbnV4IGd1ZXN0IGZhaWxzIHRvIGJvb3Qg dXAgd2l0aCA+MjU1Cj4gdmNwdXMgaWYgaW50ZXJydXB0IHJlbWFwcGluZyBpcyBhYnNlbnQuCj4K Pgo+IDEuMiBTdXBwb3J0IFZGSU8tYmFzZWQgdXNlciBzcGFjZSBkcml2ZXIgKGUuZy4gRFBESykg aW4gdGhlIGd1ZXN0Cj4gSXQgcmVsaWVzIG9uIHRoZSAybmQgbGV2ZWwgdHJhbnNsYXRpb24gY2Fw YWJpbGl0eSAoSU9WQS0+R1BBKSBvbgo+IHZJT01NVS4gcElPTU1VIDJuZCBsZXZlbCBiZWNvbWVz IGEgc2hhZG93aW5nIHN0cnVjdHVyZSBvZgo+IHZJT01NVSB0byBpc29sYXRlIERNQSByZXF1ZXN0 cyBpbml0aWF0ZWQgYnkgdXNlciBzcGFjZSBkcml2ZXIuCj4KPgo+IDEuMyBTdXBwb3J0IGd1ZXN0 IFNWTSAoU2hhcmVkIFZpcnR1YWwgTWVtb3J5KQo+IEl0IHJlbGllcyBvbiB0aGUgMXN0IGxldmVs IHRyYW5zbGF0aW9uIHRhYmxlIGNhcGFiaWxpdHkgKEdWQS0+R1BBKSBvbgo+IHZJT01NVS4gcElP TU1VIG5lZWRzIHRvIGVuYWJsZSBib3RoIDFzdCBsZXZlbCBhbmQgMm5kIGxldmVsIHRyYW5zbGF0 aW9uCj4gaW4gbmVzdGVkIG1vZGUgKEdWQS0+R1BBLT5IUEEpIGZvciBwYXNzdGhyb3VnaCBkZXZp Y2UuIElHRCBwYXNzdGhyb3VnaAo+IGlzIHRoZSBtYWluIHVzYWdlIHRvZGF5ICh0byBzdXBwb3J0 IE9wZW5DTCAyLjAgU1ZNIGZlYXR1cmUpLiBJbiB0aGUKPiBmdXR1cmUgU1ZNIG1pZ2h0IGJlIHVz ZWQgYnkgb3RoZXIgSS9PIGRldmljZXMgdG9vLgo+Cj4gMi4gWGVuIHZJT01NVSBBcmNoaXRlY3R1 cmUKPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+Cj4KPiAqIHZJT01NVSB3aWxsIGJlIGluc2lk ZSBYZW4gaHlwZXJ2aXNvciBmb3IgZm9sbG93aW5nIGZhY3RvcnMKPiAgICAgMSkgQXZvaWQgcm91 bmQgdHJpcHMgYmV0d2VlbiBRZW11IGFuZCBYZW4gaHlwZXJ2aXNvcgo+ICAgICAyKSBFYXNlIG9m IGludGVncmF0aW9uIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGh5cGVydmlzb3IKPiAgICAgMykgSFZN bGl0ZS9QVkggZG9lc24ndCB1c2UgUWVtdQo+ICogRHVtbXkgeGVuLXZJT01NVSBpbiBRZW11IGFz IGEgd3JhcHBlciBvZiBuZXcgaHlwZXJjYWxsIHRvIGNyZWF0ZQo+IC9kZXN0b3J5IHZJT01NVSBp biBoeXBlcnZpc29yIGFuZCBkZWFsIHdpdGggdmlydHVhbCBQQ0kgZGV2aWNlJ3MgMnRoCj4gbGV2 ZWwgdHJhbnNsYXRpb24uCj4KPiAyLjEgMnRoIGxldmVsIHRyYW5zbGF0aW9uIG92ZXJ2aWV3Cj4g Rm9yIFZpcnR1YWwgUENJIGRldmljZSwgZHVtbXkgeGVuLXZJT01NVSBkb2VzIHRyYW5zbGF0aW9u IGluIHRoZQo+IFFlbXUgdmlhIG5ldyBoeXBlcmNhbGwuCj4KPiBGb3IgcGh5c2ljYWwgUENJIGRl dmljZSwgdklPTU1VIGluIGh5cGVydmlzb3Igc2hhZG93cyBJTyBwYWdlIHRhYmxlIGZyb20KPiBJ T1ZBLT5HUEEgdG8gSU9WQS0+SFBBIGFuZCBsb2FkIHBhZ2UgdGFibGUgdG8gcGh5c2ljYWwgSU9N TVUuCj4KPiBUaGUgZm9sbG93aW5nIGRpYWdyYW0gc2hvd3MgMnRoIGxldmVsIHRyYW5zbGF0aW9u IGFyY2hpdGVjdHVyZS4KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKwo+IHxRZW11ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArLS0tLS0tLS0tLS0tLS0tLSsgICB8Cj4gfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgIFZpcnR1YWwgICAgfCAgIHwKPiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIFBDSSBkZXZpY2UgICB8ICAgfAo+IHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICB8Cj4gfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tKyAgIHwKPiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8RE1BICAgICAgICAgfAo+IHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYgICAgICAgICAgICB8Cj4g fCAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgIFJlcXVlc3QgICstLS0tLS0tLS0tLS0tLS0tKyAg IHwKPiB8ICB8ICAgICAgICAgICAgICAgICAgICArPC0tLS0tLS0tLS0tKyAgICAgICAgICAgICAg ICB8ICAgfAo+IHwgIHwgIER1bW15IHhlbiB2SU9NTVUgIHwgVGFyZ2V0IEdQQSB8ICBNZW1vcnkg cmVnaW9uIHwgICB8Cj4gfCAgfCAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tPisgICAg ICAgICAgICAgICAgfCAgIHwKPiB8ICArLS0tLS0tLS0tKy0tLS0tLS0tLS0rICAgICAgICAgICAg Ky0tLS0tLS0rLS0tLS0tLS0rICAgfAo+IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICB8Cj4gfCAgICAgICAgICAgIHxIeXBlcmNhbGwgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKwo+IHxIeXBlcnZpc29yICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8Cj4gfCAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKPiB8ICAgICAg ICAgICAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAo+IHwg ICAgICstLS0tLS0rLS0tLS0tKyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8 Cj4gfCAgICAgfCAgIHZJT01NVSAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwKPiB8ICAgICArLS0tLS0tKy0tLS0tLSsgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgfAo+IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICB8Cj4gfCAgICAgICAgICAgIHYgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwKPiB8ICAgICArLS0tLS0tKy0tLS0tLSsgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgfAo+IHwgICAgIHwgSU9NTVUgZHJpdmVyfCAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8Cj4gfCAgICAgKy0tLS0tLSstLS0tLS0rICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKPiB8ICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAo+ICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rCj4gfEhXICAgICAg ICAgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgViAgICAgICAgICAgIHwKPiB8ICAg ICArLS0tLS0tKy0tLS0tLSsgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tKyAgICAgfAo+ IHwgICAgIHwgICBJT01NVSAgICAgKy0tLS0tLS0tLS0tLS0tLS0+KyAgTWVtb3J5ICAgICB8ICAg ICB8Cj4gfCAgICAgKy0tLS0tLSstLS0tLS0rICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0t LSsgICAgIHwKPiB8ICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAo+IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8Cj4gfCAgICAgKy0tLS0tLSstLS0tLS0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKPiB8ICAgICB8IFBDSSBEZXZpY2UgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+IHwgICAgICstLS0tLS0tLS0tLS0tKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPgo+IDIuMiBJbnRlcnJ1cHQg cmVtYXBwaW5nIG92ZXJ2aWV3Lgo+IEludGVycnVwdHMgZnJvbSB2aXJ0dWFsIGRldmljZXMgYW5k IHBoeXNpY2FsIGRldmljZXMgd2lsbCBiZSBkZWxpdmVyZWQKPiB0byB2TEFQSUMgZnJvbSB2SU9B UElDIGFuZCB2TVNJLiB2SU9NTVUgd2lsbCByZW1hcCBpbnRlcnJ1cHQgZHVyaW5nIHRoaXMKPiBw cm9jZWR1cmUuCj4KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKwo+IHxRZW11ICAgICAgICAgICAgICAgICAgICAgICB8Vk0gICAgICAgICAgICAg ICAgICAgICB8Cj4gfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKy0tLS0tLS0tLS0tLS0t LS0rICAgIHwKPiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8ICBEZXZpY2UgZHJpdmVy IHwgICAgfAo+IHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICstLS0tLS0tLSstLS0tLS0t KyAgICB8Cj4gfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgXiAgICAgICAg ICAgIHwKPiB8ICAgICAgICstLS0tLS0tLS0tLS0tLS0tKyAgfCArLS0tLS0tLS0rLS0tLS0tLSsg ICAgfAo+IHwgICAgICAgfCBWaXJ0dWFsIGRldmljZSB8ICB8IHwgIElSUSBzdWJzeXN0ZW0gfCAg ICB8Cj4gfCAgICAgICArLS0tLS0tLSstLS0tLS0tLSsgIHwgKy0tLS0tLS0tKy0tLS0tLS0rICAg IHwKPiB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICBeICAgICAgICAgICAg fAo+IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICB8 Cj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK PiB8aHlwZXJ2aW9zciAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8IFZJUlEgICAgICAgfAo+ IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgKy0tLS0tLS0tLSstLS0tLS0tLSsgICB8Cj4g fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgdkxBUElDICAgICAgfCAgIHwKPiB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0rICAgfAo+IHwg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgICAgICB8Cj4gfCAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKPiB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0rICAgfAo+IHwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgIHZJT01NVSAgICAgIHwgICB8Cj4gfCAgICAg ICAgICAgICAgIHwgICAgICAgICAgICArLS0tLS0tLS0tKy0tLS0tLS0tKyAgIHwKPiB8ICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICBeICAgICAgICAgICAgfAo+IHwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8Cj4gfCAgICAgICAg ICAgICAgIHwgICAgICAgICAgICArLS0tLS0tLS0tKy0tLS0tLS0tKyAgIHwKPiB8ICAgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICB2SU9BUElDL3ZNU0kgICB8ICAgfAo+IHwgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgKy0tLS0rLS0tLSstLS0tLS0tLSsgICB8Cj4gfCAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgIF4gICAgXiAgICAgICAgICAgIHwKPiB8ICAgICAgICAgICAg ICAgKy0tLS0tLS0tLS0tLS0tLS0tKyAgICB8ICAgICAgICAgICAgfAo+IHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8Cj4gKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiBIVyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8SVJRCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIFBDSSBEZXZpY2UgICAgICB8Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0t LS0tLS0tLS0tLS0tLS0tLS0rCj4KPgo+Cj4KPgo+IDMgWGVuIGh5cGVydmlzb3IKPiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQo+Cj4gMy4xIE5ldyBoeXBlcmNhbGwgWEVOX1NZU0NUTF92aW9tbXVfb3AKPiAx KSBEZWZpbml0aW9uIG9mICJzdHJ1Y3QgeGVuX3N5c2N0bF92aW9tbXVfb3AiIGFzIG5ldyBoeXBl cmNhbGwgcGFyYW1ldGVyLgo+Cj4gc3RydWN0IHhlbl9zeXNjdGxfdmlvbW11X29wIHsKPiAgICAg dTMyIGNtZDsKPiAgICAgdTMyIGRvbWlkOwo+ICAgICB1bmlvbiB7Cj4gICAgICAgICBzdHJ1Y3Qg ewo+ICAgICAgICAgICAgIHUzMiBjYXBhYmlsaXRpZXM7Cj4gICAgICAgICB9IHF1ZXJ5X2NhcGFi aWxpdGllczsKPiAgICAgICAgIHN0cnVjdCB7Cj4gICAgICAgICAgICAgdTMyIGNhcGFiaWxpdGll czsKPiAgICAgICAgICAgICB1NjQgYmFzZV9hZGRyZXNzOwo+ICAgICAgICAgfSBjcmVhdGVfaW9t bXU7Cj4gICAgICAgICBzdHJ1Y3Qgewo+ICAgICAgICAgICAgIHU4ICBidXM7Cj4gICAgICAgICAg ICAgdTggIGRldmZuOwo+ICAgICAgICAgICAgIHU2NCBpb3ZhOwo+ICAgICAgICAgICAgIHU2NCB0 cmFuc2xhdGVkX2FkZHI7Cj4gICAgICAgICAgICAgdTY0IGFkZHJfbWFzazsgLyogVHJhbnNsYXRp b24gcGFnZSBzaXplICovCj4gICAgICAgICAgICAgSU9NTVVBY2Nlc3NGbGFncyBwZXJtaXNzb247 Cj4gICAgICAgICB9IDJ0aF9sZXZlbF90cmFuc2xhdGlvbjsKPiB9Owo+Cj4gdHlwZWRlZiBlbnVt IHsKPiAgICAgSU9NTVVfTk9ORSA9IDAsCj4gICAgIElPTU1VX1JPICAgPSAxLAo+ICAgICBJT01N VV9XTyAgID0gMiwKPiAgICAgSU9NTVVfUlcgICA9IDMsCj4gfSBJT01NVUFjY2Vzc0ZsYWdzOwo+ Cj4KPiBEZWZpbml0aW9uIG9mIFZJT01NVSBzdWJvcHM6Cj4gI2RlZmluZSBYRU5fU1lTQ1RMX3Zp b21tdV9xdWVyeV9jYXBhYmlsaXR5ICAgICAgICAwCj4gI2RlZmluZSBYRU5fU1lTQ1RMX3Zpb21t dV9jcmVhdGUgICAgICAgICAgICAxCj4gI2RlZmluZSBYRU5fU1lTQ1RMX3Zpb21tdV9kZXN0cm95 ICAgICAgICAgICAgMgo+ICNkZWZpbmUgWEVOX1NZU0NUTF92aW9tbXVfZG1hX3RyYW5zbGF0aW9u X2Zvcl92cGRldiAgICAgMwo+Cj4gRGVmaW5pdGlvbiBvZiBWSU9NTVUgY2FwYWJpbGl0aWVzCj4g I2RlZmluZSBYRU5fVklPTU1VX0NBUEFCSUxJVFlfMW5kX2xldmVsX3RyYW5zbGF0aW9uICAgICgx IDw8IDApCj4gI2RlZmluZSBYRU5fVklPTU1VX0NBUEFCSUxJVFlfMm5kX2xldmVsX3RyYW5zbGF0 aW9uICAgICgxIDw8IDEpCj4gI2RlZmluZSBYRU5fVklPTU1VX0NBUEFCSUxJVFlfaW50ZXJydXB0 X3JlbWFwcGluZyAgICAoMSA8PCAyKQo+Cj4KPiAyKSBEZXNpZ24gZm9yIHN1Ym9wcwo+IC0gWEVO X1NZU0NUTF92aW9tbXVfcXVlcnlfY2FwYWJpbGl0eQo+ICAgICAgIEdldCB2SU9NTVUgY2FwYWJp bGl0aWVzKDFzdC8ydGggbGV2ZWwgdHJhbnNsYXRpb24gYW5kIGludGVycnVwdAo+IHJlbWFwcGlu ZykuCj4KPiAtIFhFTl9TWVNDVExfdmlvbW11X2NyZWF0ZQo+ICAgICAgQ3JlYXRlIHZJT01NVSBp biBYZW4gaHlwZXJ2aXNvciB3aXRoIGRvbV9pZCwgY2FwYWJpbGl0aWVzIGFuZCByZWcKPiBiYXNl IGFkZHJlc3MuCj4KPiAtIFhFTl9TWVNDVExfdmlvbW11X2Rlc3Ryb3kKPiAgICAgIERlc3Rvcnkg dklPTU1VIGluIFhlbiBoeXBlcnZpc29yIHdpdGggZG9tX2lkIGFzIHBhcmFtZXRlcnMuCj4KPiAt IFhFTl9TWVNDVExfdmlvbW11X2RtYV90cmFuc2xhdGlvbl9mb3JfdnBkZXYKPiAgICAgIFRyYW5z bGF0ZSBJT1ZBIHRvIEdQQSBmb3Igc3BlY2lmaWVkIHZpcnR1YWwgUENJIGRldmljZSB3aXRoIGRv bSBpZCwKPiBQQ0kgZGV2aWNlJ3MgYmRmIGFuZCBJT1ZBIGFuZCB4ZW4gaHlwZXJ2aXNvciByZXR1 cm5zIHRyYW5zbGF0ZWQgR1BBLAo+IGFkZHJlc3MgbWFzayBhbmQgYWNjZXNzIHBlcm1pc3Npb24u Cj4KPgo+IDMuMiAybmQgbGV2ZWwgdHJhbnNsYXRpb24KPiAxKSBGb3IgdmlydHVhbCBQQ0kgZGV2 aWNlCj4gWGVuIGR1bW15IHhlbi12SU9NTVUgaW4gUWVtdSB0cmFuc2xhdGVzIElPVkEgdG8gdGFy Z2V0IEdQQSB2aWEgbmV3Cj4gaHlwZXJjYWxsIHdoZW4gRE1BIG9wZXJhdGlvbiBoYXBwZW5zLgo+ Cj4gMikgRm9yIHBoeXNpY2FsIFBDSSBkZXZpY2UKPiBETUEgb3BlcmF0aW9ucyBnbyB0aG91Z2gg cGh5c2ljYWwgSU9NTVUgZGlyZWN0bHkgYW5kIElPIHBhZ2UgdGFibGUgZm9yCj4gSU9WQS0+SFBB IHNob3VsZCBiZSBsb2FkZWQgaW50byBwaHlzaWNhbCBJT01NVS4gV2hlbiBndWVzdCB1cGRhdGVz Cj4gU2Vjb25kLWxldmVsIFBhZ2UtdGFibGUgcG9pbnRlciBmaWVsZCwgaXQgcHJvdmlkZXMgSU8g cGFnZSB0YWJsZSBmb3IKPiBJT1ZBLT5HUEEuIHZJT01NVSBuZWVkcyB0byBzaGFkb3cgMm5kIGxl dmVsIHRyYW5zbGF0aW9uIHRhYmxlLCB0cmFuc2xhdGUKPiBHUEEtPkhQQSBhbmQgdXBkYXRlIHNo YWRvdyBwYWdlIHRhYmxlKElPVkEtPkhQQSkgcG9pbnRlciB0byBTZWNvbmQtbGV2ZWwKPiBQYWdl LXRhYmxlIHBvaW50ZXIgdG8gY29udGV4dCBlbnRyeSBvZiBwaHlzaWNhbCBJT01NVS4KPgo+IE5v dyBhbGwgUENJIGRldmljZXMgaW4gc2FtZSBodm0gZG9tYWluIHNoYXJlIG9uZSBJTyBwYWdlIHRh YmxlCj4gKEdQQS0+SFBBKSBpbiBwaHlzaWNhbCBJT01NVSBkcml2ZXIgb2YgWGVuLiBUbyBzdXBw b3J0IDJuZCBsZXZlbAo+IHRyYW5zbGF0aW9uIG9mIHZJT01NVSwgSU9NTVUgZHJpdmVyIG5lZWQg dG8gc3VwcG9ydCBtdWx0aXBsZSBhZGRyZXNzCj4gc3BhY2VzIHBlciBkZXZpY2UgZW50cnkuIFVz aW5nIGV4aXN0aW5nIElPIHBhZ2UgdGFibGUoR1BBLT5IUEEpCj4gZGVmYXVsdGx5IGFuZCBzd2l0 Y2ggdG8gc2hhZG93IElPIHBhZ2UgdGFibGUoSU9WQS0+SFBBKSB3aGVuIDJ0aCBsZXZlbAo+IHRy YW5zbGF0aW9uIGZ1bmN0aW9uIGlzIGVuYWJsZWQuIFRoZXNlIGNoYW5nZSB3aWxsIG5vdCBhZmZl Y3QgY3VycmVudAo+IFAyTSBsb2dpYy4KPgo+IDMuMyBJbnRlcnJ1cHQgcmVtYXBwaW5nCj4gSW50 ZXJydXB0cyBmcm9tIHZpcnR1YWwgZGV2aWNlcyBhbmQgcGh5c2ljYWwgZGV2aWNlcyB3aWxsIGJl IGRlbGl2ZXJlZAo+IHRvIHZsYXBpYyBmcm9tIHZJT0FQSUMgYW5kIHZNU0kuIEl0IG5lZWRzIHRv IGFkZCBpbnRlcnJ1cHQgcmVtYXBwaW5nCj4gaG9va3MgaW4gdGhlIHZtc2lfZGVsaXZlcigpIGFu ZCBpb2FwaWNfZGVsaXZlcigpIHRvIGZpbmQgdGFyZ2V0IHZsYXBpYwo+IGFjY29yZGluZyBpbnRl cnJ1cHQgcmVtYXBwaW5nIHRhYmxlLiBUaGUgZm9sbG93aW5nIGRpYWdyYW0gc2hvd3MgdGhlIGxv Z2ljLgo+Cj4KPiAzLjQgMXN0IGxldmVsIHRyYW5zbGF0aW9uCj4gV2hlbiBuZXN0ZWQgdHJhbnNs YXRpb24gaXMgZW5hYmxlZCwgYW55IGFkZHJlc3MgZ2VuZXJhdGVkIGJ5IGZpcnN0LWxldmVsCj4g dHJhbnNsYXRpb24gaXMgdXNlZCBhcyB0aGUgaW5wdXQgYWRkcmVzcyBmb3IgbmVzdGluZyB3aXRo IHNlY29uZC1sZXZlbAo+IHRyYW5zbGF0aW9uLiBQaHlzaWNhbCBJT01NVSBuZWVkcyB0byBlbmFi bGUgYm90aCAxc3QgbGV2ZWwgYW5kIDJuZCBsZXZlbAo+IHRyYW5zbGF0aW9uIGluIG5lc3RlZCB0 cmFuc2xhdGlvbiBtb2RlKEdWQS0+R1BBLT5IUEEpIGZvciBwYXNzdGhyb3VnaAo+IGRldmljZS4K Pgo+IFZULWQgY29udGV4dCBlbnRyeSBwb2ludHMgdG8gZ3Vlc3QgMXN0IGxldmVsIHRyYW5zbGF0 aW9uIHRhYmxlIHdoaWNoCj4gd2lsbCBiZSBuZXN0LXRyYW5zbGF0ZWQgYnkgMm5kIGxldmVsIHRy YW5zbGF0aW9uIHRhYmxlIGFuZCBzbyBpdAo+IGNhbiBiZSBkaXJlY3RseSBsaW5rZWQgdG8gY29u dGV4dCBlbnRyeSBvZiBwaHlzaWNhbCBJT01NVS4KPgo+IFRvIGVuYWJsZSAxc3QgbGV2ZWwgdHJh bnNsYXRpb24gaW4gVk0KPiAxKSBYZW4gSU9NTVUgZHJpdmVyIGVuYWJsZXMgbmVzdGVkIHRyYW5z bGF0aW9uIG1vZGUKPiAyKSBVcGRhdGUgR1BBIHJvb3Qgb2YgZ3Vlc3QgMXN0IGxldmVsIHRyYW5z bGF0aW9uIHRhYmxlIHRvIGNvbnRleHQgZW50cnkKPiBvZiBwaHlzaWNhbCBJT01NVS4KPgo+IEFs bCBoYW5kbGVzIGFyZSBpbiBoeXBlcnZpc29yIGFuZCBubyBpbnRlcmFjdGlvbiB3aXRoIFFlbXUu Cj4KPgo+IDMuNSBJbXBsZW1lbnRhdGlvbiBjb25zaWRlcmF0aW9uCj4gTGludXggSW50ZWwgSU9N TVUgZHJpdmVyIHdpbGwgZmFpbCB0byBiZSBsb2FkZWQgd2l0aG91dCAydGggbGV2ZWwKPiB0cmFu c2xhdGlvbiBzdXBwb3J0IGV2ZW4gaWYgaW50ZXJydXB0IHJlbWFwcGluZyBhbmQgMXRoIGxldmVs Cj4gdHJhbnNsYXRpb24gYXJlIGF2YWlsYWJsZS4gVGhpcyBtZWFucyBpdCdzIG5lZWRlZCB0byBl bmFibGUgMnRoIGxldmVsCj4gdHJhbnNsYXRpb24gZmlyc3QgYmVmb3JlIG90aGVyIGZ1bmN0aW9u cy4KPgo+Cj4gNCBRZW11Cj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4KPiA0LjEgUWVtdSB2SU9N TVUgZnJhbWV3b3JrCj4gUWVtdSBoYXMgYSBmcmFtZXdvcmsgdG8gY3JlYXRlIHZpcnR1YWwgSU9N TVUoZS5nLiB2aXJ0dWFsIGludGVsIFZURCBhbmQKPiBBTUQgSU9NTVUpIGFuZCByZXBvcnQgaW4g Z3Vlc3QgQUNQSSB0YWJsZS4gU28gZm9yIHhlbiBzaWRlLCBhIGR1bW15Cj4geGVuLXZJT01NVSB3 cmFwcGVyIGlzIHJlcXVpcmVkIHRvIGNvbm5lY3Qgd2l0aCBhY3R1YWwgdklPTU1VIGluIFhlbi4K PiBFc3BlY2lhbGx5IGZvciAydGggbGV2ZWwgdHJhbnNsYXRpb24gb2YgdmlydHVhbCBQQ0kgZGV2 aWNlIGJlY2F1c2UKPiBlbXVsYXRpb25zIG9mIHZpcnR1YWwgUENJIGRldmljZXMgYXJlIGluIHRo ZSBRZW11LiBRZW11J3MgdklPTU1VCj4gZnJhbWV3b3JrIHByb3ZpZGVzIGNhbGxiYWNrIHRvIGRl YWwgd2l0aCAydGggbGV2ZWwgdHJhbnNsYXRpb24gd2hlbgo+IERNQSBvcGVyYXRpb25zIG9mIHZp cnR1YWwgUENJIGRldmljZXMgaGFwcGVuLgo+Cj4KPiA0LjIgRHVtbXkgeGVuLXZJT01NVSBkcml2 ZXIKPiAxKSBRdWVyeSB2SU9NTVUgY2FwYWJpbGl0eShFLEcgRE1BIHRyYW5zbGF0aW9uLCBJbnRl cnJ1cHQgcmVtYXBwaW5nIGFuZAo+IFNoYXJlIFZpcnR1YWwgTWVtb3J5KSB2aWEgaHlwZXJjYWxs Lgo+Cj4gMikgQ3JlYXRlIHZJT01NVSBpbiBYZW4gaHlwZXJ2aXNvciB2aWEgbmV3IGh5cGVyY2Fs bCB3aXRoIERSSFUgcmVnaXN0ZXIKPiBhZGRyZXNzIGFuZCBkZXNpcmVkIGNhcGFiaWxpdHkgYXMg cGFyYW1ldGVycy4gRGVzdHJveSB2SU9NTVUgd2hlbiBWTSBpcwo+IGNsb3NlZC4KPgo+IDMpIFZp cnR1YWwgUENJIGRldmljZSdzIDJ0aCBsZXZlbCB0cmFuc2xhdGlvbgo+IFFlbXUgYWxyZWFkeSBw cm92aWRlcyBETUEgdHJhbnNsYXRpb24gaG9vay4gSXQncyBjYWxsZWQgd2hlbiBETUEKPiB0cmFu c2xhdGlvbiBvZiB2aXJ0dWFsIFBDSSBkZXZpY2UgaGFwcGVucy4gVGhlIGR1bW15IHhlbi12SU9N TVUgcGFzc2VzCj4gZGV2aWNlIGJkZiBhbmQgSU9WQSBpbnRvIFhlbiBoeXBlcnZpc29yIHZpYSBu ZXcgaW9tbXUgaHlwZXJjYWxsIGFuZAo+IHJldHVybiBiYWNrIHRyYW5zbGF0ZWQgR1BBLgo+Cj4K PiA0LjMgUTM1IHZzIGk0NDB4Cj4gVlQtRCBpcyBpbnRyb2R1Y2VkIHNpbmNlIFEzNSBjaGlwc2V0 LiBQcmV2aW91cyBjb25jZXJuIHdhcyB0aGF0IElPTU1VCj4gZHJpdmVyIGhhcyBhc3N1bXB0aW9u IHRoYXQgVlREIG9ubHkgZXhpc3RzIG9uIFEzNSBhbmQgbmV3ZXIgY2hpcHNldCBhbmQKPiB3ZSBo YXZlIHRvIGVuYWJsZSBRMzUgZmlyc3QuCj4KPiBDb25zdWx0ZWQgd2l0aCBMaW51eC9XaW5kb3dz IElPTU1VIGRyaXZlciBleHBlcnRzIGFuZCBnZXQgdGhhdCB0aGVzZQo+IGRyaXZlcnMgZG9lc24n dCBoYXZlIHN1Y2ggYXNzdW1wdGlvbi4gU28gd2UgbWF5IHNraXAgUTM1IGltcGxlbWVudGF0aW9u Cj4gYW5kIGNhbiBlbXVsYXRlIHZJT01NVSBvbiBJNDQweCBjaGlwc2V0LiBLVk0gYWxyZWFkeSBo YXZlIHZJT01NVSBzdXBwb3J0Cj4gd2l0aCB2aXJ0dWFsIFBDSSBkZXZpY2UncyBETUEgdHJhbnNs YXRpb24gYW5kIGludGVycnVwdCByZW1hcHBpbmcuIFdlCj4gYXJlIHVzaW5nIEtWTSB0byBkbyBl eHBlcmltZW50IG9mIGFkZGluZyB2SU9NTVUgb24gdGhlIEk0NDB4IGFuZCB0ZXN0Cj4gTGludXgv V2luZG93cyBndWVzdC4gV2lsbCByZXBvcnQgYmFjayB3aGVuIGhhdmUgc29tZSByZXN1bHRzLgo+ Cj4KPiA0LjQgUmVwb3J0IHZJT01NVSB0byBodm1sb2FkZXIKPiBIdm1sb2FkZXIgaXMgaW4gY2hh cmdlIG9mIGJ1aWxkaW5nIEFDUEkgdGFibGVzIGZvciBHdWVzdCBPUyBhbmQgT1MKPiBwcm9iZXMg SU9NTVUgdmlhIEFDUEkgRE1BUiB0YWJsZS4gU28gaHZtbG9kZXIgbmVlZHMgdG8ga25vdyB3aGV0 aGVyCj4gdklPTU1VIGlzIGVuYWJsZWQgb3Igbm90IGFuZCBpdHMgY2FwYWJpbGl0eSB0byBwcmVw YXJlIEFDUEkgRE1BUiB0YWJsZQo+IGZvciBHdWVzdCBPUy4KPgo+IFRoZXJlIGFyZSB0aHJlZSB3 YXlzIHRvIGRvIHRoYXQuCj4gMSkgRXh0ZW5kIHN0cnVjdCBodm1faW5mb190YWJsZSBhbmQgYWRk IHZhcmlhYmxlcyBpbiB0aGUgc3RydWN0Cj4gaHZtX2luZm9fdGFibGUgdG8gcGFzcyB2SU9NTVUg aW5mb3JtYXRpb24gdG8gaHZtbG9hZGVyLiBCdXQgdGhpcwo+IHJlcXVpcmVzIHRvIGFkZCBuZXcg eGMgaW50ZXJmYWNlIHRvIHVzZSBzdHJ1Y3QgaHZtX2luZm9fdGFibGUgaW4gdGhlIFFlbXUuCj4K PiAyKSBQYXNzIHZJT01NVSBpbmZvcm1hdGlvbiB0byBodm1sb2FkZXIgdmlhIFhlbnN0b3JlCj4K PiAzKSBCdWlsZCBBQ1BJIERNQVIgdGFibGUgaW4gUWVtdSBhbmQgcGFzcyBpdCB0byBodm1sb2Fk ZXIgdmlhIFhlbnN0b3JlLgo+IFRoaXMgc29sdXRpb24gaXMgYWxyZWFkeSBwcmVzZW50IGluIHRo ZSB2TlZESU1NIGRlc2lnbig0LjMuMQo+IEJ1aWxkaW5nIEd1ZXN0IEFDUEkgVGFibGVzCj4gaHR0 cDovL3d3dy5nb3NzYW1lci10aHJlYWRzLmNvbS9saXN0cy94ZW4vZGV2ZWwvNDM5NzY2KS4KPgo+ IFRoZSB0aGlyZCBvcHRpb24gc2VlbXMgbW9yZSBjbGVhciBhbmQgaHZtbG9hZGVyIGRvZXNuJ3Qg bmVlZCB0byBkZWFsCj4gd2l0aCB2SU9NTVUgc3R1ZmZzIGFuZCBqdXN0IHBhc3MgdGhyb3VnaCBE TUFSIHRhYmxlIHRvIEd1ZXN0IE9TLiBBbGwKPiB2SU9NTVUgc3BlY2lmaWMgc3R1ZmZzIHdpbGwg YmUgcHJvY2Vzc2VkIGluIHRoZSBkdW1teSB4ZW4tdklPTU1VIGRyaXZlci4KPgo+Cj4KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=