From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Edgar E. Iglesias" Subject: Re: Xen virtual IOMMU high level design doc Date: Wed, 23 Nov 2016 19:19:37 +0100 Message-ID: <20161123181937.GZ9606@toto> References: <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" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: "Lan, Tianyu" Cc: "yang.zhang.wz@gmail.com" , Kevin Tian , Stefano Stabellini , Jan Beulich , Andrew Cooper , "ian.jackson@eu.citrix.com" , xuquan8@huawei.com, Julien Grall , "xen-devel@lists.xensource.com" , Jun Nakajima , "anthony.perard@citrix.com" , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBBdWcgMTcsIDIwMTYgYXQgMDg6MDU6NTFQTSArMDgwMCwgTGFuLCBUaWFueXUgd3Jv dGU6Cj4gSGkgQWxsOgo+ICAgICAgVGhlIGZvbGxvd2luZyBpcyBvdXIgWGVuIHZJT01NVSBoaWdo IGxldmVsIGRlc2lnbiBmb3IgZGV0YWlsCj4gZGlzY3Vzc2lvbi4gUGxlYXNlIGhhdmUgYSBsb29r LiBWZXJ5IGFwcHJlY2lhdGUgZm9yIHlvdXIgY29tbWVudHMuCj4gVGhpcyBkZXNpZ24gZG9lc24n dCBjb3ZlciBjaGFuZ2VzIHdoZW4gcm9vdCBwb3J0IGlzIG1vdmVkIHRvIGh5cGVydmlzb3IuCj4g V2UgbWF5IGRlc2lnbiBpdCBsYXRlci4KCkhpLAoKSSBoYXZlIGEgZmV3IHF1ZXN0aW9ucy4KCklm IEkgdW5kZXJzdGFuZCBjb3JyZWN0bHksIHlvdSdsbCBiZSBlbXVsYXRpbmcgYW4gSW50ZWwgSU9N TVUgaW4gWGVuLgpTbyBndWVzdHMgd2lsbCBlc3NlbnRpYWxseSBjcmVhdGUgaW50ZWwgaW9tbXUg c3R5bGUgcGFnZS10YWJsZXMuCgpJZiB3ZSB3ZXJlIHRvIHVzZSB0aGlzIG9uIFhlbi9BUk0sIHdl IHdvdWxkIGxpa2VseSBiZSBtb2RlbGxpbmcgYW4gQVJNClNNTVUgYXMgYSB2SU9NTVUuIFNpbmNl IFhlbiBvbiBBUk0gZG9lcyBub3QgdXNlIFFFTVUgZm9yIGVtdWxhdGlvbiwgdGhlCmh5cGVydmlz b3IgT1BzIGZvciBRRU1VcyB4ZW4gZHVtbXkgSU9NTVUgcXVlcmllcyB3b3VsZCBub3QgcmVhbGx5 IGJlIHVzZWQuCkRvIEkgdW5kZXJzdGFuZCB0aGlzIGNvcnJlY3RseT8KCkhhcyBhIHBsYXRmb3Jt IGFnbm9zdGljIFBWLUlPTU1VIGJlZW4gY29uc2lkZXJlZCB0byBzdXBwb3J0IDItc3RhZ2UKdHJh bnNsYXRpb24gKGkuZSBWRklPIGluIHRoZSBndWVzdCk/IFBlcmhhcHMgdGhhdCB3b3VsZCBodXJ0 IG1hcC91bm1hcApwZXJmb3JtYW5jZSB0b28gbXVjaD8KCkJlc3QgcmVnYXJkcywKRWRnYXIKCgoK Cj4gCj4gCj4gQ29udGVudDoKPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gMS4gTW90aXZhdGlv biBvZiB2SU9NTVUKPiAJMS4xIEVuYWJsZSBtb3JlIHRoYW4gMjU1IHZjcHVzCj4gCTEuMiBTdXBw b3J0IFZGSU8tYmFzZWQgdXNlciBzcGFjZSBkcml2ZXIKPiAJMS4zIFN1cHBvcnQgZ3Vlc3QgU2hh cmVkIFZpcnR1YWwgTWVtb3J5IChTVk0pCj4gMi4gWGVuIHZJT01NVSBBcmNoaXRlY3R1cmUKPiAJ Mi4xIDJ0aCBsZXZlbCB0cmFuc2xhdGlvbiBvdmVydmlldwo+IAkyLjIgSW50ZXJydXB0IHJlbWFw cGluZyBvdmVydmlldwo+IDMuIFhlbiBoeXBlcnZpc29yCj4gCTMuMSBOZXcgdklPTU1VIGh5cGVy Y2FsbCBpbnRlcmZhY2UKPiAJMy4yIDJuZCBsZXZlbCB0cmFuc2xhdGlvbgo+IAkzLjMgSW50ZXJy dXB0IHJlbWFwcGluZwo+IAkzLjQgMXN0IGxldmVsIHRyYW5zbGF0aW9uCj4gCTMuNSBJbXBsZW1l bnRhdGlvbiBjb25zaWRlcmF0aW9uCj4gNC4gUWVtdQo+IAk0LjEgUWVtdSB2SU9NTVUgZnJhbWV3 b3JrCj4gCTQuMiBEdW1teSB4ZW4tdklPTU1VIGRyaXZlcgo+IAk0LjMgUTM1IHZzLiBpNDQweAo+ IAk0LjQgUmVwb3J0IHZJT01NVSB0byBodm1sb2FkZXIKPiAKPiAKPiAxIE1vdGl2YXRpb24gZm9y IFhlbiB2SU9NTVUKPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gMS4xIEVuYWJsZSBtb3JlIHRo YW4gMjU1IHZjcHUgc3VwcG9ydAo+IEhQQyB2aXJ0dWFsaXphdGlvbiByZXF1aXJlcyBtb3JlIHRo YW4gMjU1IHZjcHVzIHN1cHBvcnQgaW4gYSBzaW5nbGUgVk0KPiB0byBtZWV0IHBhcmFsbGVsIGNv bXB1dGluZyByZXF1aXJlbWVudC4gTW9yZSB0aGFuIDI1NSB2Y3B1cyBzdXBwb3J0Cj4gcmVxdWly ZXMgaW50ZXJydXB0IHJlbWFwcGluZyBjYXBhYmlsaXR5IHByZXNlbnQgb24gdklPTU1VIHRvIGRl bGl2ZXIKPiBpbnRlcnJ1cHQgdG8gI3ZjcHUgPjI1NSBPdGhlcndpc2UgTGludXggZ3Vlc3QgZmFp bHMgdG8gYm9vdCB1cCB3aXRoID4yNTUKPiB2Y3B1cyBpZiBpbnRlcnJ1cHQgcmVtYXBwaW5nIGlz IGFic2VudC4KPiAKPiAKPiAxLjIgU3VwcG9ydCBWRklPLWJhc2VkIHVzZXIgc3BhY2UgZHJpdmVy IChlLmcuIERQREspIGluIHRoZSBndWVzdAo+IEl0IHJlbGllcyBvbiB0aGUgMm5kIGxldmVsIHRy YW5zbGF0aW9uIGNhcGFiaWxpdHkgKElPVkEtPkdQQSkgb24KPiB2SU9NTVUuIHBJT01NVSAybmQg bGV2ZWwgYmVjb21lcyBhIHNoYWRvd2luZyBzdHJ1Y3R1cmUgb2YKPiB2SU9NTVUgdG8gaXNvbGF0 ZSBETUEgcmVxdWVzdHMgaW5pdGlhdGVkIGJ5IHVzZXIgc3BhY2UgZHJpdmVyLgo+IAo+IAo+IDEu MyBTdXBwb3J0IGd1ZXN0IFNWTSAoU2hhcmVkIFZpcnR1YWwgTWVtb3J5KQo+IEl0IHJlbGllcyBv biB0aGUgMXN0IGxldmVsIHRyYW5zbGF0aW9uIHRhYmxlIGNhcGFiaWxpdHkgKEdWQS0+R1BBKSBv bgo+IHZJT01NVS4gcElPTU1VIG5lZWRzIHRvIGVuYWJsZSBib3RoIDFzdCBsZXZlbCBhbmQgMm5k IGxldmVsIHRyYW5zbGF0aW9uCj4gaW4gbmVzdGVkIG1vZGUgKEdWQS0+R1BBLT5IUEEpIGZvciBw YXNzdGhyb3VnaCBkZXZpY2UuIElHRCBwYXNzdGhyb3VnaAo+IGlzIHRoZSBtYWluIHVzYWdlIHRv ZGF5ICh0byBzdXBwb3J0IE9wZW5DTCAyLjAgU1ZNIGZlYXR1cmUpLiBJbiB0aGUKPiBmdXR1cmUg U1ZNIG1pZ2h0IGJlIHVzZWQgYnkgb3RoZXIgSS9PIGRldmljZXMgdG9vLgo+IAo+IDIuIFhlbiB2 SU9NTVUgQXJjaGl0ZWN0dXJlCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAKPiAqIHZJT01N VSB3aWxsIGJlIGluc2lkZSBYZW4gaHlwZXJ2aXNvciBmb3IgZm9sbG93aW5nIGZhY3RvcnMKPiAJ MSkgQXZvaWQgcm91bmQgdHJpcHMgYmV0d2VlbiBRZW11IGFuZCBYZW4gaHlwZXJ2aXNvcgo+IAky KSBFYXNlIG9mIGludGVncmF0aW9uIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGh5cGVydmlzb3IKPiAJ MykgSFZNbGl0ZS9QVkggZG9lc24ndCB1c2UgUWVtdQo+ICogRHVtbXkgeGVuLXZJT01NVSBpbiBR ZW11IGFzIGEgd3JhcHBlciBvZiBuZXcgaHlwZXJjYWxsIHRvIGNyZWF0ZQo+IC9kZXN0b3J5IHZJ T01NVSBpbiBoeXBlcnZpc29yIGFuZCBkZWFsIHdpdGggdmlydHVhbCBQQ0kgZGV2aWNlJ3MgMnRo Cj4gbGV2ZWwgdHJhbnNsYXRpb24uCj4gCj4gMi4xIDJ0aCBsZXZlbCB0cmFuc2xhdGlvbiBvdmVy dmlldwo+IEZvciBWaXJ0dWFsIFBDSSBkZXZpY2UsIGR1bW15IHhlbi12SU9NTVUgZG9lcyB0cmFu c2xhdGlvbiBpbiB0aGUKPiBRZW11IHZpYSBuZXcgaHlwZXJjYWxsLgo+IAo+IEZvciBwaHlzaWNh bCBQQ0kgZGV2aWNlLCB2SU9NTVUgaW4gaHlwZXJ2aXNvciBzaGFkb3dzIElPIHBhZ2UgdGFibGUg ZnJvbQo+IElPVkEtPkdQQSB0byBJT1ZBLT5IUEEgYW5kIGxvYWQgcGFnZSB0YWJsZSB0byBwaHlz aWNhbCBJT01NVS4KPiAKPiBUaGUgZm9sbG93aW5nIGRpYWdyYW0gc2hvd3MgMnRoIGxldmVsIHRy YW5zbGF0aW9uIGFyY2hpdGVjdHVyZS4KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+IHxRZW11ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLSsgICB8Cj4gfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgIFZpcnR1YWwgICAgfCAgIHwKPiB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIFBDSSBkZXZpY2UgICB8ICAgfAo+IHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgICB8Cj4gfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tKyAgIHwKPiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8RE1BICAgICAgICAg fAo+IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYgICAgICAg ICAgICB8Cj4gfCAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgIFJlcXVlc3QgICstLS0tLS0tLS0t LS0tLS0tKyAgIHwKPiB8ICB8ICAgICAgICAgICAgICAgICAgICArPC0tLS0tLS0tLS0tKyAgICAg ICAgICAgICAgICB8ICAgfAo+IHwgIHwgIER1bW15IHhlbiB2SU9NTVUgIHwgVGFyZ2V0IEdQQSB8 ICBNZW1vcnkgcmVnaW9uIHwgICB8Cj4gfCAgfCAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0t LS0tPisgICAgICAgICAgICAgICAgfCAgIHwKPiB8ICArLS0tLS0tLS0tKy0tLS0tLS0tLS0rICAg ICAgICAgICAgKy0tLS0tLS0rLS0tLS0tLS0rICAgfAo+IHwgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8Cj4gfCAgICAgICAgICAgIHxIeXBl cmNhbGwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKPiArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKwo+IHxIeXBlcnZp c29yICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8Cj4gfCAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwK PiB8ICAgICAgICAgICAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgfAo+IHwgICAgICstLS0tLS0rLS0tLS0tKyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICB8Cj4gfCAgICAgfCAgIHZJT01NVSAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgIHwKPiB8ICAgICArLS0tLS0tKy0tLS0tLSsgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgfAo+IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICB8Cj4gfCAgICAgICAgICAgIHYgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKPiB8ICAgICArLS0tLS0tKy0tLS0tLSsgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAo+IHwgICAgIHwgSU9NTVUgZHJpdmVy fCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8Cj4gfCAgICAgKy0tLS0tLSst LS0tLS0rICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKPiB8ICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAo+ICstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rCj4g fEhXICAgICAgICAgIHYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgViAgICAgICAgICAg IHwKPiB8ICAgICArLS0tLS0tKy0tLS0tLSsgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0t KyAgICAgfAo+IHwgICAgIHwgICBJT01NVSAgICAgKy0tLS0tLS0tLS0tLS0tLS0+KyAgTWVtb3J5 ICAgICB8ICAgICB8Cj4gfCAgICAgKy0tLS0tLSstLS0tLS0rICAgICAgICAgICAgICAgICArLS0t LS0tLS0tLS0tLSsgICAgIHwKPiB8ICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAo+IHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gfCAgICAgKy0tLS0tLSstLS0tLS0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiB8ICAgICB8IFBDSSBEZXZpY2UgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+IHwgICAgICstLS0tLS0tLS0t LS0tKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiAKPiAyLjIg SW50ZXJydXB0IHJlbWFwcGluZyBvdmVydmlldy4KPiBJbnRlcnJ1cHRzIGZyb20gdmlydHVhbCBk ZXZpY2VzIGFuZCBwaHlzaWNhbCBkZXZpY2VzIHdpbGwgYmUgZGVsaXZlcmVkCj4gdG8gdkxBUElD IGZyb20gdklPQVBJQyBhbmQgdk1TSS4gdklPTU1VIHdpbGwgcmVtYXAgaW50ZXJydXB0IGR1cmlu ZyB0aGlzCj4gcHJvY2VkdXJlLgo+IAo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gfFFlbXUgICAgICAgICAgICAgICAgICAgICAgIHxWTSAg ICAgICAgICAgICAgICAgICAgIHwKPiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCArLS0t LS0tLS0tLS0tLS0tLSsgICAgfAo+IHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHwgIERl dmljZSBkcml2ZXIgfCAgICB8Cj4gfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKy0tLS0t LS0tKy0tLS0tLS0rICAgIHwKPiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICBeICAgICAgICAgICAgfAo+IHwgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0rICB8ICstLS0tLS0t LSstLS0tLS0tKyAgICB8Cj4gfCAgICAgICB8IFZpcnR1YWwgZGV2aWNlIHwgIHwgfCAgSVJRIHN1 YnN5c3RlbSB8ICAgIHwKPiB8ICAgICAgICstLS0tLS0tKy0tLS0tLS0tKyAgfCArLS0tLS0tLS0r LS0tLS0tLSsgICAgfAo+IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIF4g ICAgICAgICAgICB8Cj4gfCAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgICAgIHwKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKwo+IHxoeXBlcnZpb3NyICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgVklS USAgICAgICB8Cj4gfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICArLS0tLS0tLS0tKy0tLS0t LS0tKyAgIHwKPiB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICB2TEFQSUMgICAg ICB8ICAgfAo+IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgKy0tLS0tLS0tLSstLS0tLS0t LSsgICB8Cj4gfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgXiAgICAgICAg ICAgIHwKPiB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgfAo+IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgKy0tLS0tLS0tLSstLS0tLS0tLSsg ICB8Cj4gfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgdklPTU1VICAgICAgfCAg IHwKPiB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0rICAg fAo+IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgICAgICB8 Cj4gfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwK PiB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICstLS0tLS0tLS0rLS0tLS0tLS0rICAgfAo+ IHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgIHZJT0FQSUMvdk1TSSAgIHwgICB8Cj4g fCAgICAgICAgICAgICAgIHwgICAgICAgICAgICArLS0tLSstLS0tKy0tLS0tLS0tKyAgIHwKPiB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgXiAgICBeICAgICAgICAgICAgfAo+IHwg ICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0rICAgIHwgICAgICAgICAgICB8Cj4gfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKPiArLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+IEhXICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxJUlEKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgUENJIERldmljZSAgICAgIHwKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiAKPiAKPiAKPiAKPiAKPiAzIFhlbiBoeXBl cnZpc29yCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAKPiAzLjEgTmV3IGh5cGVyY2FsbCBYRU5fU1lT Q1RMX3Zpb21tdV9vcAo+IDEpIERlZmluaXRpb24gb2YgInN0cnVjdCB4ZW5fc3lzY3RsX3Zpb21t dV9vcCIgYXMgbmV3IGh5cGVyY2FsbCBwYXJhbWV0ZXIuCj4gCj4gc3RydWN0IHhlbl9zeXNjdGxf dmlvbW11X29wIHsKPiAJdTMyIGNtZDsKPiAJdTMyIGRvbWlkOwo+IAl1bmlvbiB7Cj4gCQlzdHJ1 Y3Qgewo+IAkJCXUzMiBjYXBhYmlsaXRpZXM7Cj4gCQl9IHF1ZXJ5X2NhcGFiaWxpdGllczsKPiAJ CXN0cnVjdCB7Cj4gCQkJdTMyIGNhcGFiaWxpdGllczsKPiAJCQl1NjQgYmFzZV9hZGRyZXNzOwo+ IAkJfSBjcmVhdGVfaW9tbXU7Cj4gCQlzdHJ1Y3Qgewo+IAkJCXU4ICBidXM7Cj4gCQkJdTggIGRl dmZuOwo+IAkJCXU2NCBpb3ZhOwo+IAkJCXU2NCB0cmFuc2xhdGVkX2FkZHI7Cj4gCQkJdTY0IGFk ZHJfbWFzazsgLyogVHJhbnNsYXRpb24gcGFnZSBzaXplICovCj4gCQkJSU9NTVVBY2Nlc3NGbGFn cyBwZXJtaXNzb247CQkKPiAJCX0gMnRoX2xldmVsX3RyYW5zbGF0aW9uOwo+IH07Cj4gCj4gdHlw ZWRlZiBlbnVtIHsKPiAJSU9NTVVfTk9ORSA9IDAsCj4gCUlPTU1VX1JPICAgPSAxLAo+IAlJT01N VV9XTyAgID0gMiwKPiAJSU9NTVVfUlcgICA9IDMsCj4gfSBJT01NVUFjY2Vzc0ZsYWdzOwo+IAo+ IAo+IERlZmluaXRpb24gb2YgVklPTU1VIHN1Ym9wczoKPiAjZGVmaW5lIFhFTl9TWVNDVExfdmlv bW11X3F1ZXJ5X2NhcGFiaWxpdHkJCTAKPiAjZGVmaW5lIFhFTl9TWVNDVExfdmlvbW11X2NyZWF0 ZQkJCTEKPiAjZGVmaW5lIFhFTl9TWVNDVExfdmlvbW11X2Rlc3Ryb3kJCQkyCj4gI2RlZmluZSBY RU5fU1lTQ1RMX3Zpb21tdV9kbWFfdHJhbnNsYXRpb25fZm9yX3ZwZGV2IAkzCj4gCj4gRGVmaW5p dGlvbiBvZiBWSU9NTVUgY2FwYWJpbGl0aWVzCj4gI2RlZmluZSBYRU5fVklPTU1VX0NBUEFCSUxJ VFlfMW5kX2xldmVsX3RyYW5zbGF0aW9uCSgxIDw8IDApCj4gI2RlZmluZSBYRU5fVklPTU1VX0NB UEFCSUxJVFlfMm5kX2xldmVsX3RyYW5zbGF0aW9uCSgxIDw8IDEpCj4gI2RlZmluZSBYRU5fVklP TU1VX0NBUEFCSUxJVFlfaW50ZXJydXB0X3JlbWFwcGluZwkoMSA8PCAyKQo+IAo+IAo+IDIpIERl c2lnbiBmb3Igc3Vib3BzCj4gLSBYRU5fU1lTQ1RMX3Zpb21tdV9xdWVyeV9jYXBhYmlsaXR5Cj4g ICAgICAgR2V0IHZJT01NVSBjYXBhYmlsaXRpZXMoMXN0LzJ0aCBsZXZlbCB0cmFuc2xhdGlvbiBh bmQgaW50ZXJydXB0Cj4gcmVtYXBwaW5nKS4KPiAKPiAtIFhFTl9TWVNDVExfdmlvbW11X2NyZWF0 ZQo+ICAgICAgQ3JlYXRlIHZJT01NVSBpbiBYZW4gaHlwZXJ2aXNvciB3aXRoIGRvbV9pZCwgY2Fw YWJpbGl0aWVzIGFuZCByZWcKPiBiYXNlIGFkZHJlc3MuCj4gCj4gLSBYRU5fU1lTQ1RMX3Zpb21t dV9kZXN0cm95Cj4gICAgICBEZXN0b3J5IHZJT01NVSBpbiBYZW4gaHlwZXJ2aXNvciB3aXRoIGRv bV9pZCBhcyBwYXJhbWV0ZXJzLgo+IAo+IC0gWEVOX1NZU0NUTF92aW9tbXVfZG1hX3RyYW5zbGF0 aW9uX2Zvcl92cGRldgo+ICAgICAgVHJhbnNsYXRlIElPVkEgdG8gR1BBIGZvciBzcGVjaWZpZWQg dmlydHVhbCBQQ0kgZGV2aWNlIHdpdGggZG9tIGlkLAo+IFBDSSBkZXZpY2UncyBiZGYgYW5kIElP VkEgYW5kIHhlbiBoeXBlcnZpc29yIHJldHVybnMgdHJhbnNsYXRlZCBHUEEsCj4gYWRkcmVzcyBt YXNrIGFuZCBhY2Nlc3MgcGVybWlzc2lvbi4KPiAKPiAKPiAzLjIgMm5kIGxldmVsIHRyYW5zbGF0 aW9uCj4gMSkgRm9yIHZpcnR1YWwgUENJIGRldmljZQo+IFhlbiBkdW1teSB4ZW4tdklPTU1VIGlu IFFlbXUgdHJhbnNsYXRlcyBJT1ZBIHRvIHRhcmdldCBHUEEgdmlhIG5ldwo+IGh5cGVyY2FsbCB3 aGVuIERNQSBvcGVyYXRpb24gaGFwcGVucy4KPiAKPiAyKSBGb3IgcGh5c2ljYWwgUENJIGRldmlj ZQo+IERNQSBvcGVyYXRpb25zIGdvIHRob3VnaCBwaHlzaWNhbCBJT01NVSBkaXJlY3RseSBhbmQg SU8gcGFnZSB0YWJsZSBmb3IKPiBJT1ZBLT5IUEEgc2hvdWxkIGJlIGxvYWRlZCBpbnRvIHBoeXNp Y2FsIElPTU1VLiBXaGVuIGd1ZXN0IHVwZGF0ZXMKPiBTZWNvbmQtbGV2ZWwgUGFnZS10YWJsZSBw b2ludGVyIGZpZWxkLCBpdCBwcm92aWRlcyBJTyBwYWdlIHRhYmxlIGZvcgo+IElPVkEtPkdQQS4g dklPTU1VIG5lZWRzIHRvIHNoYWRvdyAybmQgbGV2ZWwgdHJhbnNsYXRpb24gdGFibGUsIHRyYW5z bGF0ZQo+IEdQQS0+SFBBIGFuZCB1cGRhdGUgc2hhZG93IHBhZ2UgdGFibGUoSU9WQS0+SFBBKSBw b2ludGVyIHRvIFNlY29uZC1sZXZlbAo+IFBhZ2UtdGFibGUgcG9pbnRlciB0byBjb250ZXh0IGVu dHJ5IG9mIHBoeXNpY2FsIElPTU1VLgo+IAo+IE5vdyBhbGwgUENJIGRldmljZXMgaW4gc2FtZSBo dm0gZG9tYWluIHNoYXJlIG9uZSBJTyBwYWdlIHRhYmxlCj4gKEdQQS0+SFBBKSBpbiBwaHlzaWNh bCBJT01NVSBkcml2ZXIgb2YgWGVuLiBUbyBzdXBwb3J0IDJuZCBsZXZlbAo+IHRyYW5zbGF0aW9u IG9mIHZJT01NVSwgSU9NTVUgZHJpdmVyIG5lZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBhZGRyZXNz Cj4gc3BhY2VzIHBlciBkZXZpY2UgZW50cnkuIFVzaW5nIGV4aXN0aW5nIElPIHBhZ2UgdGFibGUo R1BBLT5IUEEpCj4gZGVmYXVsdGx5IGFuZCBzd2l0Y2ggdG8gc2hhZG93IElPIHBhZ2UgdGFibGUo SU9WQS0+SFBBKSB3aGVuIDJ0aCBsZXZlbAo+IHRyYW5zbGF0aW9uIGZ1bmN0aW9uIGlzIGVuYWJs ZWQuIFRoZXNlIGNoYW5nZSB3aWxsIG5vdCBhZmZlY3QgY3VycmVudAo+IFAyTSBsb2dpYy4KPiAK PiAzLjMgSW50ZXJydXB0IHJlbWFwcGluZwo+IEludGVycnVwdHMgZnJvbSB2aXJ0dWFsIGRldmlj ZXMgYW5kIHBoeXNpY2FsIGRldmljZXMgd2lsbCBiZSBkZWxpdmVyZWQKPiB0byB2bGFwaWMgZnJv bSB2SU9BUElDIGFuZCB2TVNJLiBJdCBuZWVkcyB0byBhZGQgaW50ZXJydXB0IHJlbWFwcGluZwo+ IGhvb2tzIGluIHRoZSB2bXNpX2RlbGl2ZXIoKSBhbmQgaW9hcGljX2RlbGl2ZXIoKSB0byBmaW5k IHRhcmdldCB2bGFwaWMKPiBhY2NvcmRpbmcgaW50ZXJydXB0IHJlbWFwcGluZyB0YWJsZS4gVGhl IGZvbGxvd2luZyBkaWFncmFtIHNob3dzIHRoZSBsb2dpYy4KPiAKPiAKPiAzLjQgMXN0IGxldmVs IHRyYW5zbGF0aW9uCj4gV2hlbiBuZXN0ZWQgdHJhbnNsYXRpb24gaXMgZW5hYmxlZCwgYW55IGFk ZHJlc3MgZ2VuZXJhdGVkIGJ5IGZpcnN0LWxldmVsCj4gdHJhbnNsYXRpb24gaXMgdXNlZCBhcyB0 aGUgaW5wdXQgYWRkcmVzcyBmb3IgbmVzdGluZyB3aXRoIHNlY29uZC1sZXZlbAo+IHRyYW5zbGF0 aW9uLiBQaHlzaWNhbCBJT01NVSBuZWVkcyB0byBlbmFibGUgYm90aCAxc3QgbGV2ZWwgYW5kIDJu ZCBsZXZlbAo+IHRyYW5zbGF0aW9uIGluIG5lc3RlZCB0cmFuc2xhdGlvbiBtb2RlKEdWQS0+R1BB LT5IUEEpIGZvciBwYXNzdGhyb3VnaAo+IGRldmljZS4KPiAKPiBWVC1kIGNvbnRleHQgZW50cnkg cG9pbnRzIHRvIGd1ZXN0IDFzdCBsZXZlbCB0cmFuc2xhdGlvbiB0YWJsZSB3aGljaAo+IHdpbGwg YmUgbmVzdC10cmFuc2xhdGVkIGJ5IDJuZCBsZXZlbCB0cmFuc2xhdGlvbiB0YWJsZSBhbmQgc28g aXQKPiBjYW4gYmUgZGlyZWN0bHkgbGlua2VkIHRvIGNvbnRleHQgZW50cnkgb2YgcGh5c2ljYWwg SU9NTVUuCj4gCj4gVG8gZW5hYmxlIDFzdCBsZXZlbCB0cmFuc2xhdGlvbiBpbiBWTQo+IDEpIFhl biBJT01NVSBkcml2ZXIgZW5hYmxlcyBuZXN0ZWQgdHJhbnNsYXRpb24gbW9kZQo+IDIpIFVwZGF0 ZSBHUEEgcm9vdCBvZiBndWVzdCAxc3QgbGV2ZWwgdHJhbnNsYXRpb24gdGFibGUgdG8gY29udGV4 dCBlbnRyeQo+IG9mIHBoeXNpY2FsIElPTU1VLgo+IAo+IEFsbCBoYW5kbGVzIGFyZSBpbiBoeXBl cnZpc29yIGFuZCBubyBpbnRlcmFjdGlvbiB3aXRoIFFlbXUuCj4gCj4gCj4gMy41IEltcGxlbWVu dGF0aW9uIGNvbnNpZGVyYXRpb24KPiBMaW51eCBJbnRlbCBJT01NVSBkcml2ZXIgd2lsbCBmYWls IHRvIGJlIGxvYWRlZCB3aXRob3V0IDJ0aCBsZXZlbAo+IHRyYW5zbGF0aW9uIHN1cHBvcnQgZXZl biBpZiBpbnRlcnJ1cHQgcmVtYXBwaW5nIGFuZCAxdGggbGV2ZWwKPiB0cmFuc2xhdGlvbiBhcmUg YXZhaWxhYmxlLiBUaGlzIG1lYW5zIGl0J3MgbmVlZGVkIHRvIGVuYWJsZSAydGggbGV2ZWwKPiB0 cmFuc2xhdGlvbiBmaXJzdCBiZWZvcmUgb3RoZXIgZnVuY3Rpb25zLgo+IAo+IAo+IDQgUWVtdQo+ ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQo+IDQuMSBRZW11IHZJT01NVSBmcmFtZXdvcmsKPiBRZW11 IGhhcyBhIGZyYW1ld29yayB0byBjcmVhdGUgdmlydHVhbCBJT01NVShlLmcuIHZpcnR1YWwgaW50 ZWwgVlREIGFuZAo+IEFNRCBJT01NVSkgYW5kIHJlcG9ydCBpbiBndWVzdCBBQ1BJIHRhYmxlLiBT byBmb3IgeGVuIHNpZGUsIGEgZHVtbXkKPiB4ZW4tdklPTU1VIHdyYXBwZXIgaXMgcmVxdWlyZWQg dG8gY29ubmVjdCB3aXRoIGFjdHVhbCB2SU9NTVUgaW4gWGVuLgo+IEVzcGVjaWFsbHkgZm9yIDJ0 aCBsZXZlbCB0cmFuc2xhdGlvbiBvZiB2aXJ0dWFsIFBDSSBkZXZpY2UgYmVjYXVzZQo+IGVtdWxh dGlvbnMgb2YgdmlydHVhbCBQQ0kgZGV2aWNlcyBhcmUgaW4gdGhlIFFlbXUuIFFlbXUncyB2SU9N TVUKPiBmcmFtZXdvcmsgcHJvdmlkZXMgY2FsbGJhY2sgdG8gZGVhbCB3aXRoIDJ0aCBsZXZlbCB0 cmFuc2xhdGlvbiB3aGVuCj4gRE1BIG9wZXJhdGlvbnMgb2YgdmlydHVhbCBQQ0kgZGV2aWNlcyBo YXBwZW4uCj4gCj4gCj4gNC4yIER1bW15IHhlbi12SU9NTVUgZHJpdmVyCj4gMSkgUXVlcnkgdklP TU1VIGNhcGFiaWxpdHkoRSxHIERNQSB0cmFuc2xhdGlvbiwgSW50ZXJydXB0IHJlbWFwcGluZyBh bmQKPiBTaGFyZSBWaXJ0dWFsIE1lbW9yeSkgdmlhIGh5cGVyY2FsbC4KPiAKPiAyKSBDcmVhdGUg dklPTU1VIGluIFhlbiBoeXBlcnZpc29yIHZpYSBuZXcgaHlwZXJjYWxsIHdpdGggRFJIVSByZWdp c3Rlcgo+IGFkZHJlc3MgYW5kIGRlc2lyZWQgY2FwYWJpbGl0eSBhcyBwYXJhbWV0ZXJzLiBEZXN0 cm95IHZJT01NVSB3aGVuIFZNIGlzCj4gY2xvc2VkLgo+IAo+IDMpIFZpcnR1YWwgUENJIGRldmlj ZSdzIDJ0aCBsZXZlbCB0cmFuc2xhdGlvbgo+IFFlbXUgYWxyZWFkeSBwcm92aWRlcyBETUEgdHJh bnNsYXRpb24gaG9vay4gSXQncyBjYWxsZWQgd2hlbiBETUEKPiB0cmFuc2xhdGlvbiBvZiB2aXJ0 dWFsIFBDSSBkZXZpY2UgaGFwcGVucy4gVGhlIGR1bW15IHhlbi12SU9NTVUgcGFzc2VzCj4gZGV2 aWNlIGJkZiBhbmQgSU9WQSBpbnRvIFhlbiBoeXBlcnZpc29yIHZpYSBuZXcgaW9tbXUgaHlwZXJj YWxsIGFuZAo+IHJldHVybiBiYWNrIHRyYW5zbGF0ZWQgR1BBLgo+IAo+IAo+IDQuMyBRMzUgdnMg aTQ0MHgKPiBWVC1EIGlzIGludHJvZHVjZWQgc2luY2UgUTM1IGNoaXBzZXQuIFByZXZpb3VzIGNv bmNlcm4gd2FzIHRoYXQgSU9NTVUKPiBkcml2ZXIgaGFzIGFzc3VtcHRpb24gdGhhdCBWVEQgb25s eSBleGlzdHMgb24gUTM1IGFuZCBuZXdlciBjaGlwc2V0IGFuZAo+IHdlIGhhdmUgdG8gZW5hYmxl IFEzNSBmaXJzdC4KPiAKPiBDb25zdWx0ZWQgd2l0aCBMaW51eC9XaW5kb3dzIElPTU1VIGRyaXZl ciBleHBlcnRzIGFuZCBnZXQgdGhhdCB0aGVzZQo+IGRyaXZlcnMgZG9lc24ndCBoYXZlIHN1Y2gg YXNzdW1wdGlvbi4gU28gd2UgbWF5IHNraXAgUTM1IGltcGxlbWVudGF0aW9uCj4gYW5kIGNhbiBl bXVsYXRlIHZJT01NVSBvbiBJNDQweCBjaGlwc2V0LiBLVk0gYWxyZWFkeSBoYXZlIHZJT01NVSBz dXBwb3J0Cj4gd2l0aCB2aXJ0dWFsIFBDSSBkZXZpY2UncyBETUEgdHJhbnNsYXRpb24gYW5kIGlu dGVycnVwdCByZW1hcHBpbmcuIFdlCj4gYXJlIHVzaW5nIEtWTSB0byBkbyBleHBlcmltZW50IG9m IGFkZGluZyB2SU9NTVUgb24gdGhlIEk0NDB4IGFuZCB0ZXN0Cj4gTGludXgvV2luZG93cyBndWVz dC4gV2lsbCByZXBvcnQgYmFjayB3aGVuIGhhdmUgc29tZSByZXN1bHRzLgo+IAo+IAo+IDQuNCBS ZXBvcnQgdklPTU1VIHRvIGh2bWxvYWRlcgo+IEh2bWxvYWRlciBpcyBpbiBjaGFyZ2Ugb2YgYnVp bGRpbmcgQUNQSSB0YWJsZXMgZm9yIEd1ZXN0IE9TIGFuZCBPUwo+IHByb2JlcyBJT01NVSB2aWEg QUNQSSBETUFSIHRhYmxlLiBTbyBodm1sb2RlciBuZWVkcyB0byBrbm93IHdoZXRoZXIKPiB2SU9N TVUgaXMgZW5hYmxlZCBvciBub3QgYW5kIGl0cyBjYXBhYmlsaXR5IHRvIHByZXBhcmUgQUNQSSBE TUFSIHRhYmxlCj4gZm9yIEd1ZXN0IE9TLgo+IAo+IFRoZXJlIGFyZSB0aHJlZSB3YXlzIHRvIGRv IHRoYXQuCj4gMSkgRXh0ZW5kIHN0cnVjdCBodm1faW5mb190YWJsZSBhbmQgYWRkIHZhcmlhYmxl cyBpbiB0aGUgc3RydWN0Cj4gaHZtX2luZm9fdGFibGUgdG8gcGFzcyB2SU9NTVUgaW5mb3JtYXRp b24gdG8gaHZtbG9hZGVyLiBCdXQgdGhpcwo+IHJlcXVpcmVzIHRvIGFkZCBuZXcgeGMgaW50ZXJm YWNlIHRvIHVzZSBzdHJ1Y3QgaHZtX2luZm9fdGFibGUgaW4gdGhlIFFlbXUuCj4gCj4gMikgUGFz cyB2SU9NTVUgaW5mb3JtYXRpb24gdG8gaHZtbG9hZGVyIHZpYSBYZW5zdG9yZQo+IAo+IDMpIEJ1 aWxkIEFDUEkgRE1BUiB0YWJsZSBpbiBRZW11IGFuZCBwYXNzIGl0IHRvIGh2bWxvYWRlciB2aWEg WGVuc3RvcmUuCj4gVGhpcyBzb2x1dGlvbiBpcyBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIHZOVkRJ TU0gZGVzaWduKDQuMy4xCj4gQnVpbGRpbmcgR3Vlc3QgQUNQSSBUYWJsZXMKPiBodHRwOi8vd3d3 Lmdvc3NhbWVyLXRocmVhZHMuY29tL2xpc3RzL3hlbi9kZXZlbC80Mzk3NjYpLgo+IAo+IFRoZSB0 aGlyZCBvcHRpb24gc2VlbXMgbW9yZSBjbGVhciBhbmQgaHZtbG9hZGVyIGRvZXNuJ3QgbmVlZCB0 byBkZWFsCj4gd2l0aCB2SU9NTVUgc3R1ZmZzIGFuZCBqdXN0IHBhc3MgdGhyb3VnaCBETUFSIHRh YmxlIHRvIEd1ZXN0IE9TLiBBbGwKPiB2SU9NTVUgc3BlY2lmaWMgc3R1ZmZzIHdpbGwgYmUgcHJv Y2Vzc2VkIGluIHRoZSBkdW1teSB4ZW4tdklPTU1VIGRyaXZlci4KPiAKPiAKPiAKPiAKPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IFhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKPiBYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwo+IGh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=