From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: Xen virtual IOMMU high level design doc V2 Date: Tue, 18 Oct 2016 22:14:16 +0800 Message-ID: <3f375a3e-0bbb-ca70-9ea2-e8a970a5dc72@intel.com> 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: <577BD8D002000078000FB3F7@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich , Kevin Tian , Andrew Cooper , "yang.zhang.wz@gmail.com" , Jun Nakajima , Stefano Stabellini Cc: "anthony.perard@citrix.com" , xuquan8@huawei.com, "xen-devel@lists.xensource.com" , "ian.jackson@eu.citrix.com" , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org Q2hhbmdlIHNpbmNlIFYxOgoJMSkgVXBkYXRlIG1vdGl2YXRpb24gZm9yIFhlbiB2SU9NTVUgLSAy ODggdmNwdXMgc3VwcG9ydCBwYXJ0CgkyKSBDaGFuZ2UgZGVmaW5pdGlvbiBvZiBzdHJ1Y3QgeGVu X3N5c2N0bF92aW9tbXVfb3AKCTMpIFVwZGF0ZSAiMy41IEltcGxlbWVudGF0aW9uIGNvbnNpZGVy YXRpb24iIHRvIGV4cGxhaW4gd2h5IHdlIG5lZWRzIHRvIAplbmFibGUgbDIgdHJhbnNsYXRpb24g Zmlyc3QuCgk0KSBVcGRhdGUgIjQuMyBRMzUgdnMgSTQ0MHgiIC0gTGludXgvV2luZG93cyBWVEQg ZHJpdmVycyBjYW4gd29yayBvbiAKdGhlIGVtdWxhdGVkIEk0NDAgY2hpcHNldC4KCTUpIFJlbW92 ZSBzdGFsZSBzdGF0ZW1lbnQgaW4gdGhlICIzLjMgSW50ZXJydXB0IHJlbWFwcGluZyIKCkNvbnRl bnQ6Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gTW90aXZhdGlvbiBvZiB2SU9NTVUKCTEuMSBF bmFibGUgbW9yZSB0aGFuIDI1NSB2Y3B1cwoJMS4yIFN1cHBvcnQgVkZJTy1iYXNlZCB1c2VyIHNw YWNlIGRyaXZlcgoJMS4zIFN1cHBvcnQgZ3Vlc3QgU2hhcmVkIFZpcnR1YWwgTWVtb3J5IChTVk0p CjIuIFhlbiB2SU9NTVUgQXJjaGl0ZWN0dXJlCgkyLjEgbDIgdHJhbnNsYXRpb24gb3ZlcnZpZXcK CTIuMiBJbnRlcnJ1cHQgcmVtYXBwaW5nIG92ZXJ2aWV3CjMuIFhlbiBoeXBlcnZpc29yCgkzLjEg TmV3IHZJT01NVSBoeXBlcmNhbGwgaW50ZXJmYWNlCgkzLjIgbDIgdHJhbnNsYXRpb24KCTMuMyBJ bnRlcnJ1cHQgcmVtYXBwaW5nCgkzLjQgbDEgdHJhbnNsYXRpb24KCTMuNSBJbXBsZW1lbnRhdGlv biBjb25zaWRlcmF0aW9uCjQuIFFlbXUKCTQuMSBRZW11IHZJT01NVSBmcmFtZXdvcmsKCTQuMiBE dW1teSB4ZW4tdklPTU1VIGRyaXZlcgoJNC4zIFEzNSB2cy4gaTQ0MHgKCTQuNCBSZXBvcnQgdklP TU1VIHRvIGh2bWxvYWRlcgoKCjEgTW90aXZhdGlvbiBmb3IgWGVuIHZJT01NVQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CjEuMSBFbmFibGUgbW9yZSB0aGFuIDI1NSB2Y3B1IHN1cHBvcnQKSFBDIGNs b3VkIHNlcnZpY2UgcmVxdWlyZXMgVk0gcHJvdmlkZXMgaGlnaCBwZXJmb3JtYW5jZSBwYXJhbGxl bApjb21wdXRpbmcgYW5kIHdlIGhvcGUgdG8gY3JlYXRlIGEgaHVnZSBWTSB3aXRoID4yNTUgdmNw dSBvbiBvbmUgbWFjaGluZQp0byBtZWV0IHN1Y2ggcmVxdWlyZW1lbnQuUGluZyBlYWNoIHZjcHVz IG9uIHNlcGFyYXRlZCBwY3B1cy4gTW9yZSB0aGFuCjI1NSB2Y3B1cyBzdXBwb3J0IHJlcXVpcmVz IFgyQVBJQyBhbmQgTGludXggZGlzYWJsZXMgWDJBUElDIG1vZGUgaWYKdGhlcmUgaXMgbm8gaW50 ZXJydXB0IHJlbWFwcGluZyBmdW5jdGlvbiB3aGljaCBpcyBwcmVzZW50IGJ5IHZJT01NVS4KSW50 ZXJydXB0IHJlbWFwcGluZyBmdW5jdGlvbiBoZWxwcyB0byBkZWxpdmVyIGludGVycnVwdCB0byAj dmNwdSA+MjU1LgpTbyB3ZSBuZWVkIHRvIGFkZCB2SU9NTVUgYmVmb3JlIGVuYWJsaW5nID4yNTUg dmNwdXMuCgoxLjIgU3VwcG9ydCBWRklPLWJhc2VkIHVzZXIgc3BhY2UgZHJpdmVyIChlLmcuIERQ REspIGluIHRoZSBndWVzdApJdCByZWxpZXMgb24gdGhlIGwyIHRyYW5zbGF0aW9uIGNhcGFiaWxp dHkgKElPVkEtPkdQQSkgb24KdklPTU1VLiBwSU9NTVUgbDIgYmVjb21lcyBhIHNoYWRvd2luZyBz dHJ1Y3R1cmUgb2YKdklPTU1VIHRvIGlzb2xhdGUgRE1BIHJlcXVlc3RzIGluaXRpYXRlZCBieSB1 c2VyIHNwYWNlIGRyaXZlci4KCgoxLjMgU3VwcG9ydCBndWVzdCBTVk0gKFNoYXJlZCBWaXJ0dWFs IE1lbW9yeSkKSXQgcmVsaWVzIG9uIHRoZSBsMSB0cmFuc2xhdGlvbiB0YWJsZSBjYXBhYmlsaXR5 IChHVkEtPkdQQSkgb24KdklPTU1VLiBwSU9NTVUgbmVlZHMgdG8gZW5hYmxlIGJvdGggbDEgYW5k IGwyIHRyYW5zbGF0aW9uIGluIG5lc3RlZAptb2RlIChHVkEtPkdQQS0+SFBBKSBmb3IgcGFzc3Ro cm91Z2ggZGV2aWNlLiBJR0QgcGFzc3Rocm91Z2gKaXMgdGhlIG1haW4gdXNhZ2UgdG9kYXkgKHRv IHN1cHBvcnQgT3BlbkNMIDIuMCBTVk0gZmVhdHVyZSkuIEluIHRoZQpmdXR1cmUgU1ZNIG1pZ2h0 IGJlIHVzZWQgYnkgb3RoZXIgSS9PIGRldmljZXMgdG9vLgoKMi4gWGVuIHZJT01NVSBBcmNoaXRl Y3R1cmUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiogdklPTU1VIHdpbGwgYmUgaW5zaWRlIFhl biBoeXBlcnZpc29yIGZvciBmb2xsb3dpbmcgZmFjdG9ycwoJMSkgQXZvaWQgcm91bmQgdHJpcHMg YmV0d2VlbiBRZW11IGFuZCBYZW4gaHlwZXJ2aXNvcgoJMikgRWFzZSBvZiBpbnRlZ3JhdGlvbiB3 aXRoIHRoZSByZXN0IG9mIHRoZSBoeXBlcnZpc29yCgkzKSBIVk1saXRlL1BWSCBkb2Vzbid0IHVz ZSBRZW11CiogRHVtbXkgeGVuLXZJT01NVSBpbiBRZW11IGFzIGEgd3JhcHBlciBvZiBuZXcgaHlw ZXJjYWxsIHRvIGNyZWF0ZQovZGVzdG9yeSB2SU9NTVUgaW4gaHlwZXJ2aXNvciBhbmQgZGVhbCB3 aXRoIHZpcnR1YWwgUENJIGRldmljZSdzIGwyCnRyYW5zbGF0aW9uLgoKMi4xIGwyIHRyYW5zbGF0 aW9uIG92ZXJ2aWV3CkZvciBWaXJ0dWFsIFBDSSBkZXZpY2UsIGR1bW15IHhlbi12SU9NTVUgZG9l cyB0cmFuc2xhdGlvbiBpbiB0aGUKUWVtdSB2aWEgbmV3IGh5cGVyY2FsbC4KCkZvciBwaHlzaWNh bCBQQ0kgZGV2aWNlLCB2SU9NTVUgaW4gaHlwZXJ2aXNvciBzaGFkb3dzIElPIHBhZ2UgdGFibGUg ZnJvbQpJT1ZBLT5HUEEgdG8gSU9WQS0+SFBBIGFuZCBsb2FkIHBhZ2UgdGFibGUgdG8gcGh5c2lj YWwgSU9NTVUuCgpUaGUgZm9sbG93aW5nIGRpYWdyYW0gc2hvd3MgbDIgdHJhbnNsYXRpb24gYXJj aGl0ZWN0dXJlLgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKwp8UWVtdSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0t LS0tLS0tLS0tLS0rICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgVmlydHVhbCAgICB8ICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIFBDSSBkZXZpY2UgICB8ICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICB8ICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKy0tLS0tLS0tLS0tLS0tLS0rICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8RE1BICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBWICAgICAgICAgICAgfAp8ICArLS0tLS0tLS0tLS0tLS0tLS0t LS0rICAgUmVxdWVzdCAgKy0tLS0tLS0tLS0tLS0tLS0rICAgfAp8ICB8ICAgICAgICAgICAgICAg ICAgICArPC0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgICB8ICAgfAp8ICB8ICBEdW1teSB4ZW4g dklPTU1VICB8IFRhcmdldCBHUEEgfCAgTWVtb3J5IHJlZ2lvbiB8ICAgfAp8ICB8ICAgICAgICAg ICAgICAgICAgICArLS0tLS0tLS0tLS0+KyAgICAgICAgICAgICAgICB8ICAgfAp8ICArLS0tLS0t LS0tKy0tLS0tLS0tLS0rICAgICAgICAgICAgKy0tLS0tLS0rLS0tLS0tLS0rICAgfAp8ICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAp8ICAg ICAgICAgICAgfEh5cGVyY2FsbCAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Kwp8SHlwZXJ2aXNvciAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgfAp8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfAp8ICAgICAgICAgICAgdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgfAp8ICAgICArLS0tLS0tKy0tLS0tLSsgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgfAp8ICAgICB8ICAgdklPTU1VICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgfAp8ICAgICArLS0tLS0tKy0tLS0tLSsgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgfAp8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfAp8ICAgICAgICAgICAgdiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgfAp8ICAgICArLS0tLS0tKy0tLS0tLSsgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAp8ICAgICB8IElPTU1VIGRyaXZlcnwgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAp8ICAgICArLS0tLS0tKy0tLS0tLSsgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAp8ICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKwp8SFcgICAgICAgICAgdiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWICAgICAgICAgICAgfAp8ICAgICArLS0tLS0t Ky0tLS0tLSsgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tKyAgICAgfAp8ICAgICB8ICAg SU9NTVUgICAgICstLS0tLS0tLS0tLS0tLS0tPisgIE1lbW9yeSAgICAgfCAgICAgfAp8ICAgICAr LS0tLS0tKy0tLS0tLSsgICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tKyAgICAgfAp8ICAg ICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8 ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fAp8ICAgICArLS0tLS0tKy0tLS0tLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAp8ICAgICB8IFBDSSBEZXZpY2UgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAp8ICAgICArLS0tLS0tLS0tLS0tLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKwoKMi4yIEludGVycnVwdCByZW1hcHBpbmcgb3ZlcnZpZXcuCkludGVycnVw dHMgZnJvbSB2aXJ0dWFsIGRldmljZXMgYW5kIHBoeXNpY2FsIGRldmljZXMgd2lsbCBiZSBkZWxp dmVyZWQKdG8gdkxBUElDIGZyb20gdklPQVBJQyBhbmQgdk1TSS4gdklPTU1VIHdpbGwgcmVtYXAg aW50ZXJydXB0IGR1cmluZyB0aGlzCnByb2NlZHVyZS4KCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCnxRZW11ICAgICAgICAgICAgICAgICAgICAg ICB8Vk0gICAgICAgICAgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICstLS0tLS0tLS0tLS0tLS0tKyAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHwg IERldmljZSBkcml2ZXIgfCAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICstLS0t LS0tLSstLS0tLS0tKyAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg IF4gICAgICAgICAgICB8CnwgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0rICB8ICstLS0tLS0tLSst LS0tLS0tKyAgICB8CnwgICAgICAgfCBWaXJ0dWFsIGRldmljZSB8ICB8IHwgIElSUSBzdWJzeXN0 ZW0gfCAgICB8CnwgICAgICAgKy0tLS0tLS0rLS0tLS0tLS0rICB8ICstLS0tLS0tLSstLS0tLS0t KyAgICB8CnwgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIF4gICAgICAgICAg ICB8CnwgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICB8 CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCnxo eXBlcnZpb3NyICAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgVklSUSAgICAgICB8CnwgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgKy0tLS0tLS0tLSstLS0tLS0tLSsgICB8CnwgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgIHZMQVBJQyAgICAgIHwgICB8CnwgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgKy0tLS0tLS0tLSstLS0tLS0tLSsgICB8CnwgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgICAgICB8CnwgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgKy0tLS0tLS0tLSstLS0tLS0tLSsgICB8CnwgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgIHZJT01NVSAgICAgIHwgICB8CnwgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgKy0tLS0tLS0tLSstLS0tLS0tLSsgICB8CnwgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgIF4gICAgICAgICAgICB8CnwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICB8CnwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgKy0tLS0t LS0tLSstLS0tLS0tLSsgICB8CnwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgIHZJT0FQ SUMvdk1TSSAgIHwgICB8CnwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgKy0tLS0rLS0tLSst LS0tLS0tLSsgICB8CnwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICBeICAgIF4gICAg ICAgICAgICB8CnwgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0rICAgIHwgICAgICAg ICAgICB8CnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICB8CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r CkhXICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxJUlEKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgUENJIERldmljZSAgICAgIHwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLSsKCgoKCjMgWGVuIGh5cGVydmlzb3IK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KMy4xIE5ldyBoeXBlcmNhbGwgWEVOX1NZU0NUTF92aW9tbXVfb3AK VGhpcyBoeXBlcmNhbGwgc2hvdWxkIGFsc28gc3VwcG9ydCBwdiBJT01NVSB3aGljaCBpcyBzdGls bCB1bmRlciBSRkMgCnJldmlldy4gSGVyZSBvbmx5IGNvdmVycyBub24tcHYgcGFydC4KCjEpIERl ZmluaXRpb24gb2YgInN0cnVjdCB4ZW5fc3lzY3RsX3Zpb21tdV9vcCIgYXMgbmV3IGh5cGVyY2Fs bCBwYXJhbWV0ZXIuCgpzdHJ1Y3QgeGVuX3N5c2N0bF92aW9tbXVfb3AgewoJdTMyIGNtZDsKCXUz MiBkb21pZDsKCXVuaW9uIHsKCQlzdHJ1Y3QgewoJCQl1MzIgY2FwYWJpbGl0aWVzOwoJCX0gcXVl cnlfY2FwYWJpbGl0aWVzOwoJCXN0cnVjdCB7CgkJCXUzMiBjYXBhYmlsaXRpZXM7CgkJCXU2NCBi YXNlX2FkZHJlc3M7CgkJfSBjcmVhdGVfaW9tbXU7CgkgICAgICAgIHN0cnVjdCB7CgkJCS8qIElO IHBhcmFtZXRlcnMuICovCgkJCXUxNiBzZWdtZW50OwogICAgICAgICAgICAgCQl1OCAgYnVzOwog ICAgICAgICAgICAgCQl1OCAgZGV2Zm47CiAgICAgICAgICAgICAJCXU2NCBpb3ZhOwoJICAgIAkJ LyogT3V0IHBhcmFtZXRlcnMuICovCiAgICAgICAgICAgICAJCXU2NCB0cmFuc2xhdGVkX2FkZHI7 CiAgICAgICAgICAgICAJCXU2NCBhZGRyX21hc2s7IC8qIFRyYW5zbGF0aW9uIHBhZ2Ugc2l6ZSAq LwogICAgICAgICAgICAgCQlJT01NVUFjY2Vzc0ZsYWdzIHBlcm1pc3NvbjsKICAgICAgICAgCX0g bDJfdHJhbnNsYXRpb247CQkKfTsKCnR5cGVkZWYgZW51bSB7CglJT01NVV9OT05FID0gMCwKCUlP TU1VX1JPICAgPSAxLAoJSU9NTVVfV08gICA9IDIsCglJT01NVV9SVyAgID0gMywKfSBJT01NVUFj Y2Vzc0ZsYWdzOwoKCkRlZmluaXRpb24gb2YgVklPTU1VIHN1Ym9wczoKI2RlZmluZSBYRU5fU1lT Q1RMX3Zpb21tdV9xdWVyeV9jYXBhYmlsaXR5CQkwCiNkZWZpbmUgWEVOX1NZU0NUTF92aW9tbXVf Y3JlYXRlCQkJMQojZGVmaW5lIFhFTl9TWVNDVExfdmlvbW11X2Rlc3Ryb3kJCQkyCiNkZWZpbmUg WEVOX1NZU0NUTF92aW9tbXVfZG1hX3RyYW5zbGF0aW9uX2Zvcl92cGRldiAJMwoKRGVmaW5pdGlv biBvZiBWSU9NTVUgY2FwYWJpbGl0aWVzCiNkZWZpbmUgWEVOX1ZJT01NVV9DQVBBQklMSVRZX2wx X3RyYW5zbGF0aW9uCSgxIDw8IDApCiNkZWZpbmUgWEVOX1ZJT01NVV9DQVBBQklMSVRZX2wyX3Ry YW5zbGF0aW9uCSgxIDw8IDEpCiNkZWZpbmUgWEVOX1ZJT01NVV9DQVBBQklMSVRZX2ludGVycnVw dF9yZW1hcHBpbmcJKDEgPDwgMikKCgoyKSBEZXNpZ24gZm9yIHN1Ym9wcwotIFhFTl9TWVNDVExf dmlvbW11X3F1ZXJ5X2NhcGFiaWxpdHkKICAgICAgICBHZXQgdklPTU1VIGNhcGFiaWxpdGllcyhs MS9sMiB0cmFuc2xhdGlvbiBhbmQgaW50ZXJydXB0CnJlbWFwcGluZykuCgotIFhFTl9TWVNDVExf dmlvbW11X2NyZWF0ZQogICAgICAgQ3JlYXRlIHZJT01NVSBpbiBYZW4gaHlwZXJ2aXNvciB3aXRo IGRvbV9pZCwgY2FwYWJpbGl0aWVzIGFuZCByZWcKYmFzZSBhZGRyZXNzLgoKLSBYRU5fU1lTQ1RM X3Zpb21tdV9kZXN0cm95CiAgICAgICBEZXN0b3J5IHZJT01NVSBpbiBYZW4gaHlwZXJ2aXNvciB3 aXRoIGRvbV9pZCBhcyBwYXJhbWV0ZXJzLgoKLSBYRU5fU1lTQ1RMX3Zpb21tdV9kbWFfdHJhbnNs YXRpb25fZm9yX3ZwZGV2CiAgICAgICBUcmFuc2xhdGUgSU9WQSB0byBHUEEgZm9yIHNwZWNpZmll ZCB2aXJ0dWFsIFBDSSBkZXZpY2Ugd2l0aCBkb20gaWQsClBDSSBkZXZpY2UncyBiZGYgYW5kIElP VkEgYW5kIHhlbiBoeXBlcnZpc29yIHJldHVybnMgdHJhbnNsYXRlZCBHUEEsCmFkZHJlc3MgbWFz ayBhbmQgYWNjZXNzIHBlcm1pc3Npb24uCgoKMy4yIGwyIHRyYW5zbGF0aW9uCjEpIEZvciB2aXJ0 dWFsIFBDSSBkZXZpY2UKWGVuIGR1bW15IHhlbi12SU9NTVUgaW4gUWVtdSB0cmFuc2xhdGVzIElP VkEgdG8gdGFyZ2V0IEdQQSB2aWEgbmV3Cmh5cGVyY2FsbCB3aGVuIERNQSBvcGVyYXRpb24gaGFw cGVucy4KCjIpIEZvciBwaHlzaWNhbCBQQ0kgZGV2aWNlCkRNQSBvcGVyYXRpb25zIGdvIHRob3Vn aCBwaHlzaWNhbCBJT01NVSBkaXJlY3RseSBhbmQgSU8gcGFnZSB0YWJsZSBmb3IKSU9WQS0+SFBB IHNob3VsZCBiZSBsb2FkZWQgaW50byBwaHlzaWNhbCBJT01NVS4gV2hlbiBndWVzdCB1cGRhdGVz CmwyIFBhZ2UtdGFibGUgcG9pbnRlciBmaWVsZCwgaXQgcHJvdmlkZXMgSU8gcGFnZSB0YWJsZSBm b3IKSU9WQS0+R1BBLiB2SU9NTVUgbmVlZHMgdG8gc2hhZG93IGwyIHRyYW5zbGF0aW9uIHRhYmxl LCB0cmFuc2xhdGUKR1BBLT5IUEEgYW5kIHVwZGF0ZSBzaGFkb3cgcGFnZSB0YWJsZShJT1ZBLT5I UEEpIHBvaW50ZXIgdG8gbDIKUGFnZS10YWJsZSBwb2ludGVyIHRvIGNvbnRleHQgZW50cnkgb2Yg cGh5c2ljYWwgSU9NTVUuCgpOb3cgYWxsIFBDSSBkZXZpY2VzIGluIHNhbWUgaHZtIGRvbWFpbiBz aGFyZSBvbmUgSU8gcGFnZSB0YWJsZQooR1BBLT5IUEEpIGluIHBoeXNpY2FsIElPTU1VIGRyaXZl ciBvZiBYZW4uIFRvIHN1cHBvcnQgbDIKdHJhbnNsYXRpb24gb2YgdklPTU1VLCBJT01NVSBkcml2 ZXIgbmVlZCB0byBzdXBwb3J0IG11bHRpcGxlIGFkZHJlc3MKc3BhY2VzIHBlciBkZXZpY2UgZW50 cnkuIFVzaW5nIGV4aXN0aW5nIElPIHBhZ2UgdGFibGUoR1BBLT5IUEEpCmRlZmF1bHRseSBhbmQg c3dpdGNoIHRvIHNoYWRvdyBJTyBwYWdlIHRhYmxlKElPVkEtPkhQQSkgd2hlbiBsMgp0cmFuc2xh dGlvbiBmdW5jdGlvbiBpcyBlbmFibGVkLiBUaGVzZSBjaGFuZ2Ugd2lsbCBub3QgYWZmZWN0IGN1 cnJlbnQKUDJNIGxvZ2ljLgoKMy4zIEludGVycnVwdCByZW1hcHBpbmcKSW50ZXJydXB0cyBmcm9t IHZpcnR1YWwgZGV2aWNlcyBhbmQgcGh5c2ljYWwgZGV2aWNlcyB3aWxsIGJlIGRlbGl2ZXJlZAp0 byB2bGFwaWMgZnJvbSB2SU9BUElDIGFuZCB2TVNJLiBJdCBuZWVkcyB0byBhZGQgaW50ZXJydXB0 IHJlbWFwcGluZwpob29rcyBpbiB0aGUgdm1zaV9kZWxpdmVyKCkgYW5kIGlvYXBpY19kZWxpdmVy KCkgdG8gZmluZCB0YXJnZXQgdmxhcGljCmFjY29yZGluZyBpbnRlcnJ1cHQgcmVtYXBwaW5nIHRh YmxlLgoKCjMuNCBsMSB0cmFuc2xhdGlvbgpXaGVuIG5lc3RlZCB0cmFuc2xhdGlvbiBpcyBlbmFi bGVkLCBhbnkgYWRkcmVzcyBnZW5lcmF0ZWQgYnkgbDEKdHJhbnNsYXRpb24gaXMgdXNlZCBhcyB0 aGUgaW5wdXQgYWRkcmVzcyBmb3IgbmVzdGluZyB3aXRoIGwyCnRyYW5zbGF0aW9uLiBQaHlzaWNh bCBJT01NVSBuZWVkcyB0byBlbmFibGUgYm90aCBsMSBhbmQgbDIgdHJhbnNsYXRpb24KaW4gbmVz dGVkIHRyYW5zbGF0aW9uIG1vZGUoR1ZBLT5HUEEtPkhQQSkgZm9yIHBhc3N0aHJvdWdoCmRldmlj ZS4KClZULWQgY29udGV4dCBlbnRyeSBwb2ludHMgdG8gZ3Vlc3QgbDEgdHJhbnNsYXRpb24gdGFi bGUgd2hpY2gKd2lsbCBiZSBuZXN0LXRyYW5zbGF0ZWQgYnkgbDIgdHJhbnNsYXRpb24gdGFibGUg YW5kIHNvIGl0CmNhbiBiZSBkaXJlY3RseSBsaW5rZWQgdG8gY29udGV4dCBlbnRyeSBvZiBwaHlz aWNhbCBJT01NVS4KClRvIGVuYWJsZSBsMSB0cmFuc2xhdGlvbiBpbiBWTQoxKSBYZW4gSU9NTVUg ZHJpdmVyIGVuYWJsZXMgbmVzdGVkIHRyYW5zbGF0aW9uIG1vZGUKMikgVXBkYXRlIEdQQSByb290 IG9mIGd1ZXN0IGwxIHRyYW5zbGF0aW9uIHRhYmxlIHRvIGNvbnRleHQgZW50cnkKb2YgcGh5c2lj YWwgSU9NTVUuCgpBbGwgaGFuZGxlcyBhcmUgaW4gaHlwZXJ2aXNvciBhbmQgbm8gaW50ZXJhY3Rp b24gd2l0aCBRZW11LgoKCjMuNSBJbXBsZW1lbnRhdGlvbiBjb25zaWRlcmF0aW9uClZULWQgc3Bl YyBkb2Vzbid0IGRlZmluZSBhIGNhcGFiaWxpdHkgYml0IGZvciB0aGUgbDIgdHJhbnNsYXRpb24u CkFyY2hpdGVjdHVyYWxseSB0aGVyZSBpcyBubyB3YXkgdG8gdGVsbCBndWVzdCB0aGF0IGwyIHRy YW5zbGF0aW9uCmNhcGFiaWxpdHkgaXMgbm90IGF2YWlsYWJsZS4gTGludXggSW50ZWwgSU9NTVUg ZHJpdmVyIHRoaW5rcyBsMgp0cmFuc2xhdGlvbiBpcyBhbHdheXMgYXZhaWxhYmxlIHdoZW4gVlRE IGV4aXRzIGFuZCBmYWlsIHRvIGJlIGxvYWRlZAp3aXRob3V0IGwyIHRyYW5zbGF0aW9uIHN1cHBv cnQgZXZlbiBpZiBpbnRlcnJ1cHQgcmVtYXBwaW5nIGFuZCBsMQp0cmFuc2xhdGlvbiBhcmUgYXZh aWxhYmxlLiBTbyBpdCBuZWVkcyB0byBlbmFibGUgbDIgdHJhbnNsYXRpb24gZmlyc3QKYmVmb3Jl IG90aGVyIGZ1bmN0aW9ucy4KCgo0IFFlbXUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjQuMSBRZW11 IHZJT01NVSBmcmFtZXdvcmsKUWVtdSBoYXMgYSBmcmFtZXdvcmsgdG8gY3JlYXRlIHZpcnR1YWwg SU9NTVUoZS5nLiB2aXJ0dWFsIGludGVsIFZURCBhbmQKQU1EIElPTU1VKSBhbmQgcmVwb3J0IGlu IGd1ZXN0IEFDUEkgdGFibGUuIFNvIGZvciBYZW4gc2lkZSwgYSBkdW1teQp4ZW4tdklPTU1VIHdy YXBwZXIgaXMgcmVxdWlyZWQgdG8gY29ubmVjdCB3aXRoIGFjdHVhbCB2SU9NTVUgaW4gWGVuLgpF c3BlY2lhbGx5IGZvciBsMiB0cmFuc2xhdGlvbiBvZiB2aXJ0dWFsIFBDSSBkZXZpY2UgYmVjYXVz ZQplbXVsYXRpb25zIG9mIHZpcnR1YWwgUENJIGRldmljZXMgYXJlIGluIHRoZSBRZW11LiBRZW11 J3MgdklPTU1VCmZyYW1ld29yayBwcm92aWRlcyBjYWxsYmFjayB0byBkZWFsIHdpdGggbDIgdHJh bnNsYXRpb24gd2hlbgpETUEgb3BlcmF0aW9ucyBvZiB2aXJ0dWFsIFBDSSBkZXZpY2VzIGhhcHBl bi4KCgo0LjIgRHVtbXkgeGVuLXZJT01NVSBkcml2ZXIKMSkgUXVlcnkgdklPTU1VIGNhcGFiaWxp dHkoRSxHIERNQSB0cmFuc2xhdGlvbiwgSW50ZXJydXB0IHJlbWFwcGluZyBhbmQKU2hhcmUgVmly dHVhbCBNZW1vcnkpIHZpYSBoeXBlcmNhbGwuCgoyKSBDcmVhdGUgdklPTU1VIGluIFhlbiBoeXBl cnZpc29yIHZpYSBuZXcgaHlwZXJjYWxsIHdpdGggRFJIVSByZWdpc3RlcgphZGRyZXNzIGFuZCBk ZXNpcmVkIGNhcGFiaWxpdHkgYXMgcGFyYW1ldGVycy4gRGVzdHJveSB2SU9NTVUgd2hlbiBWTSBp cwpjbG9zZWQuCgozKSBWaXJ0dWFsIFBDSSBkZXZpY2UncyBsMiB0cmFuc2xhdGlvbgpRZW11IGFs cmVhZHkgcHJvdmlkZXMgRE1BIHRyYW5zbGF0aW9uIGhvb2suIEl0J3MgY2FsbGVkIHdoZW4gRE1B CnRyYW5zbGF0aW9uIG9mIHZpcnR1YWwgUENJIGRldmljZSBoYXBwZW5zLiBUaGUgZHVtbXkgeGVu LXZJT01NVSBwYXNzZXMKZGV2aWNlIGJkZiBhbmQgSU9WQSBpbnRvIFhlbiBoeXBlcnZpc29yIHZp YSBuZXcgaW9tbXUgaHlwZXJjYWxsIGFuZApyZXR1cm4gYmFjayB0cmFuc2xhdGVkIEdQQS4KCgo0 LjMgUTM1IHZzIEk0NDB4ClZULUQgaXMgaW50cm9kdWNlZCB3aXRoIFEzNSBjaGlwc2V0LiBQcmV2 aW91cyBjb25jZXJuIHdhcyB0aGF0IFZURApkcml2ZXIgaGFzIGFzc3VtcHRpb24gdGhhdCBWVEQg b25seSBleGlzdHMgb24gUTM1IGFuZCBuZXdlciBjaGlwc2V0IGFuZAp3ZSBoYXZlIHRvIGVuYWJs ZSBRMzUgZmlyc3QuIEFmdGVyIGV4cGVyaW1lbnRzLCBMaW51eC9XaW5kb3dzIGd1ZXN0IGNhbgpi b290IHVwIG9uIHRoZSBlbXVsYXRlZCBJNDQweCBjaGlwc2V0IHdpdGggVlREIGFuZCBWVEQgZHJp dmVyIGVuYWJsZXMKaW50ZXJydXB0IHJlbWFwcGluZyBmdW5jdGlvbi4gU28gd2UgY2FuIHNraXAg UTM1IHN1cHBvcnQgdG8gaW1wbGVtZW50CnZJT01NVSBkaXJlY3RseS4KCjQuNCBSZXBvcnQgdklP TU1VIHRvIGh2bWxvYWRlcgpIdm1sb2FkZXIgaXMgaW4gY2hhcmdlIG9mIGJ1aWxkaW5nIEFDUEkg dGFibGVzIGZvciBHdWVzdCBPUyBhbmQgT1MKcHJvYmVzIElPTU1VIHZpYSBBQ1BJIERNQVIgdGFi bGUuIFNvIGh2bWxvZGVyIG5lZWRzIHRvIGtub3cgd2hldGhlcgp2SU9NTVUgaXMgZW5hYmxlZCBv ciBub3QgYW5kIGl0cyBjYXBhYmlsaXR5IHRvIHByZXBhcmUgQUNQSSBETUFSIHRhYmxlCmZvciBH dWVzdCBPUy4KClRoZXJlIGFyZSB0aHJlZSB3YXlzIHRvIGRvIHRoYXQuCjEpIEV4dGVuZCBzdHJ1 Y3QgaHZtX2luZm9fdGFibGUgYW5kIGFkZCB2YXJpYWJsZXMgaW4gdGhlIHN0cnVjdApodm1faW5m b190YWJsZSB0byBwYXNzIHZJT01NVSBpbmZvcm1hdGlvbiB0byBodm1sb2FkZXIuIEJ1dCB0aGlz CnJlcXVpcmVzIHRvIGFkZCBuZXcgeGMgaW50ZXJmYWNlIHRvIHVzZSBzdHJ1Y3QgaHZtX2luZm9f dGFibGUgaW4gdGhlIFFlbXUuCgoyKSBQYXNzIHZJT01NVSBpbmZvcm1hdGlvbiB0byBodm1sb2Fk ZXIgdmlhIFhlbnN0b3JlCgozKSBCdWlsZCBBQ1BJIERNQVIgdGFibGUgaW4gUWVtdSBhbmQgcGFz cyBpdCB0byBodm1sb2FkZXIgdmlhIFhlbnN0b3JlLgpUaGlzIHNvbHV0aW9uIGlzIGFscmVhZHkg cHJlc2VudCBpbiB0aGUgdk5WRElNTSBkZXNpZ24oNC4zLjEKQnVpbGRpbmcgR3Vlc3QgQUNQSSBU YWJsZXMKaHR0cDovL3d3dy5nb3NzYW1lci10aHJlYWRzLmNvbS9saXN0cy94ZW4vZGV2ZWwvNDM5 NzY2KS4KClRoZSB0aGlyZCBvcHRpb24gc2VlbXMgbW9yZSBjbGVhciBhbmQgaHZtbG9hZGVyIGRv ZXNuJ3QgbmVlZCB0byBkZWFsCndpdGggdklPTU1VIHN0dWZmcyBhbmQganVzdCBwYXNzIHRocm91 Z2ggRE1BUiB0YWJsZSB0byBHdWVzdCBPUy4gQWxsCnZJT01NVSBzcGVjaWZpYyBzdHVmZnMgd2ls bCBiZSBwcm9jZXNzZWQgaW4gdGhlIGR1bW15IHhlbi12SU9NTVUgZHJpdmVyLgoKCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==