From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Edgar E. Iglesias" Subject: Re: [early RFC] ARM PCI Passthrough design document Date: Fri, 6 Jan 2017 17:27:08 +0100 Message-ID: <20170106162708.GG14990@toto> References: <5cf9128e-e845-2a89-f7c7-ac8616941ab9@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cPXMa-0002dU-1g for xen-devel@lists.xenproject.org; Fri, 06 Jan 2017 16:27:32 +0000 Content-Disposition: inline In-Reply-To: <5cf9128e-e845-2a89-f7c7-ac8616941ab9@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall Cc: Stefano Stabellini , Wei Chen , Campbell Sean , Jiandi An , Punit Agrawal , alistair.francis@xilinx.com, xen-devel , Roger Pau =?iso-8859-1?Q?Monn=E9?= , "manish.jaggi@caviumnetworks.com" , Shanker Donthineni , Steve Capper List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBEZWMgMjksIDIwMTYgYXQgMDI6MDQ6MTVQTSArMDAwMCwgSnVsaWVuIEdyYWxsIHdy b3RlOgo+IEhpIGFsbCwKPiAKPiBUaGUgZG9jdW1lbnQgYmVsb3cgaXMgYW4gZWFybHkgdmVyc2lv biBvZiBhIGRlc2lnbgo+IHByb3Bvc2FsIGZvciBQQ0kgUGFzc3Rocm91Z2ggaW4gWGVuLiBJdCBh aW1zIHRvCj4gZGVzY3JpYmUgZnJvbSBhbiBoaWdoIGxldmVsIHBlcnNwZWN0aXZlIHRoZSBpbnRl cmFjdGlvbgo+IHdpdGggdGhlIGRpZmZlcmVudCBzdWJzeXN0ZW1zIGFuZCBob3cgZ3Vlc3Qgd2ls bCBiZSBhYmxlCj4gdG8gZGlzY292ZXIgYW5kIGFjY2VzcyBQQ0kuCj4gCj4gSSBhbSBhd2FyZSB0 aGF0IGEgc2ltaWxhciBkZXNpZ24gaGFzIGJlZW4gcG9zdGVkIHJlY2VudGx5Cj4gYnkgQ2F2aXVt IChzZWUgWzFdKSwgaG93ZXZlciB0aGUgYXBwcm9hY2ggdG8gZXhwb3NlIFBDSQo+IHRvIGd1ZXN0 IGlzIGRpZmZlcmVudC4gV2UgaGF2ZSByZXF1ZXN0IHRvIHJ1biB1bm1vZGlmaWVkCj4gYmFyZW1l dGFsIE9TIG9uIFhlbiwgYSBzdWNoIGd1ZXN0IHdvdWxkIGRpcmVjdGx5Cj4gYWNjZXNzIHRoZSBk ZXZpY2VzIGFuZCBubyBQViBkcml2ZXJzIHdpbGwgYmUgdXNlZC4KPiAKPiBUaGF0J3Mgd2h5IHRo aXMgZGVzaWduIGlzIGJhc2VkIG9uIGVtdWxhdGluZyBhIHJvb3QgY29udHJvbGxlci4KPiBUaGlz IGFsc28gaGFzIHRoZSBhZHZhbnRhZ2UgdG8gaGF2ZSB0aGUgVk0gaW50ZXJmYWNlIGFzIGNsb3Nl Cj4gYXMgYmFyZW1ldGFsIGFsbG93aW5nIHRoZSBndWVzdCB0byB1c2UgZmlybXdhcmUgdGFibGVz IHRvIGRpc2NvdmVyCj4gdGhlIGRldmljZXMuCj4gCj4gQ3VycmVudGx5IG9uIEFSTSwgWGVuIGRv ZXMgbm90IGhhdmUgYW55IGtub3dsZWRnZSBhYm91dCBQQ0kgZGV2aWNlcy4KPiBUaGlzIG1lYW5z IHRoYXQgSU9NTVUgYW5kIGludGVycnVwdCBjb250cm9sbGVyIChzdWNoIGFzIElUUykKPiByZXF1 aXJpbmcgc3BlY2lmaWMgY29uZmlndXJhdGlvbiB3aWxsIG5vdCB3b3JrIHdpdGggUENJIGV2ZW4g d2l0aAo+IERPTTAuCj4gCj4gVGhlIFBDSSBQYXNzdGhyb3VnaCB3b3JrIGNvdWxkIGJlIGRpdmlk ZWQgaW4gMiBwaGFzZXM6Cj4gCSogUGhhc2UgMTogUmVnaXN0ZXIgYWxsIFBDSSBkZXZpY2VzIGlu IFhlbiA9PiB3aWxsIGFsbG93Cj4gCQkgICB0byB1c2UgSVRTIGFuZCBTTU1VIHdpdGggUENJIGlu IFhlbgo+ICAgICAgICAgKiBQaGFzZSAyOiBBc3NpZ24gZGV2aWNlcyB0byBndWVzdHMKPiAKPiBU aGlzIGRvY3VtZW50IGFpbXMgdG8gZGVzY3JpYmUgdGhlIDIgcGhhc2VzLCBidXQgZm9yIG5vdyBv bmx5IHBoYXNlCj4gMSBpcyBmdWxseSBkZXNjcmliZWQuCgpUaGFua3MgSnVsaWVuLAoKQSBxdWVz dGlvbi4KSUlVQywgRG9tMCB3aWxsIG93biB0aGUgcmVhbCBob3N0IGJyaWRnZSBhbmQgRG9tVXMg d2lsbCBhY2Nlc3MgYQp2aXJ0dWFsIGVtdWxhdGVkIG9uZS4KSW4gdGhlIGNhc2Ugb2YgYW4gRUNB TSBjb21wYXRpYmxlIGhvc3QgYnJpZGdlIHRoYXQgb25seSBuZWVkcyB0bwpiZSBpbml0aWFsaXpl ZCB2aWEgYSBob3N0IGJyaWRnZSBzcGVjaWZpYyByZWdpc3RlciBzZXF1ZW5jZSwKZG8gSSB1bmRl cnN0YW5kIGNvcnJlY3RseSB0aGF0IHRoZSBhbW91bnQgb2YgZW11bGF0aW9uIHdvdWxkIGJlCnZl cnkgc21hbGwgKGp1c3QgZW5vdWdoIHRvIGZvb2wgdGhlIGd1ZXN0IHRoYXQgdGhlIGluaXQgc2Vx dWVuY2UKcGFzc2VkKS4gQmV5b25kIHRoYXQgd2UgY291bGQgaGF2ZSBhIGdlbmVyaWMgRUNBTSBl bXVsYXRvci9tYXBwaW5ncz8KCkhvdyB3aWxsIHdlIGhhbmRsZSBCQVIgc2V0dXBzPwpXaWxsIHdl IGZpbHRlciBhbmQgbWFrZSBzdXJlIGd1ZXN0cyBkb24ndCB0cnkgdG8gZG8gZnVubnkgc3R1ZmY/ ClBlcmhhcHMgWGVuIGFscmVhZHkgaGFzIGNvZGUgZm9yIHRoaXMgKEknbSBndWVzc2luZyBpdCBk b2VzKS4KClRoYW5rcywKRWRnYXIKCgoKPiAKPiBJIGhhdmUgc2VudCB0aGUgZGVzaWduIGRvY3Vt ZW50IHRvIHN0YXJ0IHRvIGdhdGhlciBmZWVkYmFjayBvbgo+IHBoYXNlIDEuCj4gCj4gQ2hlZXJz LAo+IAo+IFsxXSBodHRwczovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwv MjAxNi0xMi9tc2cwMDIyNC5odG1sIAo+IAo+ID09PT09PT09PT09PT09PT09PT09PT09PQo+ICUg UENJIHBhc3MtdGhyb3VnaCBzdXBwb3J0IG9uIEFSTQo+ICUgSnVsaWVuIEdyYWxsIDxqdWxpZW4u Z3JhbGxAbGluYXJvLm9yZz4KPiAlIERyYWZ0IEEKPiAKPiAjIFByZWZhY2UKPiAKPiBUaGlzIGRv Y3VtZW50IGFpbXMgdG8gZGVzY3JpYmUgdGhlIGNvbXBvbmVudHMgcmVxdWlyZWQgdG8gZW5hYmxl IFBDSQo+IHBhc3N0aHJvdWdoIG9uIEFSTS4KPiAKPiBUaGlzIGlzIGFuIGVhcmx5IGRyYWZ0IGFu ZCBzb21lIHF1ZXN0aW9ucyBhcmUgc3RpbGwgdW5hbnN3ZXJlZCwgd2hlbiB0aGlzIGlzCj4gdGhl IGNhc2UgdGhlIHRleHQgd2lsbCBjb250YWluIFhYWC4KPiAKPiAjIEludHJvZHVjdGlvbgo+IAo+ IFBDSSBwYXNzdGhyb3VnaCBhbGxvd3MgdG8gZ2l2ZSBjb250cm9sIG9mIHBoeXNpY2FsIFBDSSBk ZXZpY2VzIHRvIGd1ZXN0LiBUaGlzCj4gbWVhbnMgdGhhdCB0aGUgZ3Vlc3Qgd2lsbCBoYXZlIGZ1 bGwgYW5kIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIFBDSSBkZXZpY2UuCj4gCj4gQVJNIGlzIHN1cHBv cnRpbmcgb25lIGtpbmQgb2YgZ3Vlc3QgdGhhdCBpcyBleHBsb2l0aW5nIGFzIG11Y2ggYXMgcG9z c2libGUKPiB2aXJ0dWFsaXphdGlvbiBzdXBwb3J0IGluIGhhcmR3YXJlLiBUaGUgZ3Vlc3Qgd2ls bCByZWx5IG9uIFBWIGRyaXZlciBvbmx5Cj4gZm9yIElPIChlLmcgYmxvY2ssIG5ldHdvcmspLCBp bnRlcnJ1cHRzIHdpbGwgY29tZSB0aHJvdWdoIHRoZSB2aXJ0dWFsaXplZAo+IGludGVycnVwdCBj b250cm9sbGVyLiBUaGlzIG1lYW5zIHRoYXQgdGhlcmUgYXJlIG5vIGJpZyBjaGFuZ2VzIHJlcXVp cmVkCj4gd2l0aGluIHRoZSBrZXJuZWwuCj4gCj4gQnkgY29uc2VxdWVuY2UsIGl0IHdvdWxkIGJl IHBvc3NpYmxlIHRvIHJlcGxhY2UgUFYgZHJpdmVycyBieSBhc3NpZ25pbmcgcmVhbAo+IGRldmlj ZXMgdG8gdGhlIGd1ZXN0IGZvciBJL08gYWNjZXNzLiBYZW4gb24gQVJNIHdvdWxkIHRoZXJlZm9y ZSBiZSBhYmxlIHRvCj4gcnVuIHVubW9kaWZpZWQgb3BlcmF0aW5nIHN5c3RlbS4KPiAKPiBUbyBh Y2hpZXZlIHRoaXMgZ29hbCwgaXQgbG9va3MgbW9yZSBzZW5zaWJsZSB0byBnbyB0b3dhcmRzIGVt dWxhdGluZyB0aGUKPiBob3N0IGJyaWRnZSAod2Ugd2lsbCBnbyBpbnRvIG1vcmUgZGV0YWlscyBs YXRlcikuIEEgZ3Vlc3Qgd291bGQgYmUgYWJsZQo+IHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBm aXJtd2FyZSB0YWJsZXMgYW5kIG9idmlhdGluZyB0aGUgbmVlZCBmb3IgYSBzcGVjaWZpYwo+IGRy aXZlciBmb3IgWGVuLgo+IAo+IFRodXMgaW4gdGhpcyBkb2N1bWVudCB3ZSBmb2xsb3cgdGhlIGVt dWxhdGVkIGhvc3QgYnJpZGdlIGFwcHJvYWNoLgo+IAo+ICMgUENJIHRlcm1pbm9sb2dpZXMKPiAK PiBFYWNoIFBDSSBkZXZpY2UgdW5kZXIgYSBob3N0IGJyaWRnZSBpcyB1bmlxdWVseSBpZGVudGlm aWVkIGJ5IGl0cyBSZXF1ZXN0ZXIgSUQKPiAoQUtBIFJJRCkuIEEgUmVxdWVzdGVyIElEIGlzIGEg dHJpcGxldCBvZiBCdXMgbnVtYmVyLCBEZXZpY2UgbnVtYmVyLCBhbmQKPiBGdW5jdGlvbi4KPiAK PiBXaGVuIHRoZSBwbGF0Zm9ybSBoYXMgbXVsdGlwbGUgaG9zdCBicmlkZ2VzLCB0aGUgc29mdHdh cmUgY2FuIGFkZCBmb3VydGgKPiBudW1iZXIgY2FsbGVkIFNlZ21lbnQgdG8gZGlmZmVyZW50aWF0 ZSBob3N0IGJyaWRnZXMuIEEgUENJIGRldmljZSB3aWxsCj4gdGhlbiB1bmlxdWVseSBieSBzZWdt ZW50OmJ1czpkZXZpY2U6ZnVuY3Rpb24gKEFLQSBTQkRGKS4KPiAKPiBTbyBnaXZlbiBhIHNwZWNp ZmljIFNCREYsIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIGZpbmQgdGhlIGhvc3QgYnJpZGdlIGFu ZCB0aGUKPiBSSUQgYXNzb2NpYXRlZCB0byBhIFBDSSBkZXZpY2UuCj4gCj4gIyBJbnRlcmFjdGlv biBvZiB0aGUgUENJIHN1YnN5c3RlbSB3aXRoIG90aGVyIHN1YnN5c3RlbXMKPiAKPiBJbiBvcmRl ciB0byBoYXZlIGEgUENJIGRldmljZSBmdWxseSB3b3JraW5nLCBYZW4gd2lsbCBuZWVkIHRvIGNv bmZpZ3VyZQo+IG90aGVyIHN1YnN5c3RlbXMgc3Vic3l0ZW1zIHN1Y2ggYXMgdGhlIFNNTVUgYW5k IHRoZSBJbnRlcnJ1cHQgQ29udHJvbGxlci4KPiAKPiBUaGUgaW50ZXJhY3Rpb24gZXhwZWN0ZWQg YmV0d2VlbiB0aGUgUENJIHN1YnN5c3RlbSBhbmQgdGhlIG90aGVyIGlzOgo+ICAgICAqIEFkZCBh IGRldmljZQo+ICAgICAqIFJlbW92ZSBhIGRldmljZQo+ICAgICAqIEFzc2lnbiBhIGRldmljZSB0 byBhIGd1ZXN0Cj4gICAgICogRGVhc3NpZ24gYSBkZXZpY2UgZnJvbSBhIGd1ZXN0Cj4gCj4gWFhY OiBEZXRhaWwgdGhlIGludGVyYWN0aW9uIHdoZW4gYXNzaWduaW5nL2RlYXNzaWduaW5nIGRldmlj ZQo+IAo+IFRoZSBmb2xsb3dpbmcgc3Vic2VjdGlvbnMgd2lsbCBicmllZmx5IGRlc2NyaWJlIHRo ZSBpbnRlcmFjdGlvbiBmcm9tIGFuCj4gaGlnaGVyIGxldmVsIHBlcnNwZWN0aXZlLiBJbXBsZW1l bnRhdGlvbiBkZXRhaWxzIChjYWxsYmFjaywgc3RydWN0dXJlLi4uKQo+IGlzIG91dCBvZiBzY29w ZS4KPiAKPiAjIyBTTU1VCj4gCj4gVGhlIFNNTVUgd2lsbCBiZSB1c2VkIHRvIGlzb2xhdGUgdGhl IFBDSSBkZXZpY2Ugd2hlbiBhY2Nlc3NpbmcgdGhlIG1lbW9yeQo+IChmb3IgaW5zdGFuY2UgRE1B IGFuZCBNU0kgRG9vcmJlbGxzKS4gT2Z0ZW4gdGhlIFNNTVUgd2lsbCBiZSBjb25maWd1cmVkIHVz aW5nCj4gYSBTdHJlYW1JRCAoU0lEKSB0aGF0IGNhbiBiZSBkZWR1Y2VkIGZyb20gdGhlIFJJRCB3 aXRoIHRoZSBoZWxwIG9mIHRoZSBmaXJtd2FyZQo+IHRhYmxlcyAoc2VlIGJlbG93KS4KPiAKPiBX aGlsc3QgaW4gdGhlb3J5IGFsbCB0aGUgbWVtb3J5IHRyYW5zYWN0aW9uIGlzc3VlZCBieSBhIFBD SSBkZXZpY2Ugc2hvdWxkCj4gZ28gdGhyb3VnaCB0aGUgU01NVSwgb24gY2VydGFpbiBwbGF0Zm9y bXMgc29tZSBvZiB0aGUgbWVtb3J5IHRyYW5zYWN0aW9uIG1heQo+IG5vdCByZWFjaCB0aGUgU01N VSBiZWNhdXNlIHRoZXkgYXJlIGludGVycHJldGVkIGJ5IHRoZSBob3N0IGJyaWRnZS4gRm9yCj4g aW5zdGFuY2UgdGhpcyBjb3VsZCBoYXBwZW4gaWYgdGhlIE1TSSBkb29yYmVsbCBpcyBidWlsdCBp bnRvIHRoZSBQQ0kgaG9zdAo+IGJyaWRnZS4gU2VlIFs2XSBmb3IgbW9yZSBkZXRhaWxzLgo+IAo+ IFhYWDogSSB0aGluayB0aGlzIGNvdWxkIGJlIHNvbHZlZCBieSB1c2luZyB0aGUgaG9zdCBtZW1v cnkgbGF5b3V0IHdoZW4KPiBjcmVhdGluZyBhIGd1ZXN0IHdpdGggUENJIGRldmljZXMgPT4gRGV0 YWlsIGl0Lgo+IAo+ICMjIEludGVycnVwdCBjb250cm9sbGVyCj4gCj4gUENJIHN1cHBvcnRzIHRo cmVlIGtpbmQgb2YgaW50ZXJydXB0czogbGVnYWN5IGludGVycnVwdCwgTVNJIGFuZCBNU0ktWC4g T24gQVJNCj4gbGVnYWN5IGludGVycnVwdHMgd2lsbCBiZSBtYXBwZWQgdG8gU1BJcy4gTVNJIGFu ZCBNU0kteCB3aWxsIGJlCj4gZWl0aGVyIG1hcHBlZCB0byBTUElzIG9yIExQSXMuCj4gCj4gV2hp bHN0IFNQSXMgY2FuIGJlIHByb2dyYW1tZWQgdXNpbmcgYW4gaW50ZXJydXB0IG51bWJlciwgTFBJ cyBjYW4gYmUKPiBpZGVudGlmaWVkIHZpYSBhIHBhaXIgKERldmljZUlELCBFdmVudElEKSB3aGVu IGNvbmZpZ3VyZSB0aHJvdWdoIHRoZSBJVFMuCj4gCj4gVGhlIERldmljZUlEIGlzIGEgdW5pcXVl IGlkZW50aWZpZXIgZm9yIGVhY2ggTVNJLWNhcGFibGUgZGV2aWNlIHRoYXQgY2FuCj4gYmUgZGVk dWNlZCBmcm9tIHRoZSBSSUQgd2l0aCB0aGUgaGVscCBvZiB0aGUgZmlybXdhcmUgdGFibGVzIChz ZWUgYmVsb3cpLgo+IAo+IFhYWDogRmlndXJlIG91dCBpZiBzb21ldGhpbmcgaXMgbmVjZXNzYXJ5 IGZvciBHSUN2Mm0KPiAKPiAjIEluZm9ybWF0aW9uIGF2YWlsYWJsZSBpbiB0aGUgZmlybXdhcmUg dGFibGVzCj4gCj4gIyMgQUNQSQo+IAo+ICMjIyBIb3N0IGJyaWRnZXMKPiAKPiBUaGUgc3RhdGlj IHRhYmxlIE1DRkcgKHNlZSA0LjIgaW4gWzFdKSB3aWxsIGRlc2NyaWJlIHRoZSBob3N0IGJyaWRn ZXMgYXZhaWxhYmxlCj4gYXQgYm9vdCBhbmQgc3VwcG9ydGluZyBFQ0FNLiBVbmZvcnR1bmF0ZWx5 IHRoZXJlIGFyZSBwbGF0Zm9ybXMgb3V0IHRoZXJlCj4gKHNlZSBbMl0pIHRoYXQgcmUtdXNlIE1D RkcgdG8gZGVzY3JpYmUgaG9zdCBicmlkZ2UgdGhhdCBhcmUgbm90IGZ1bGx5IEVDQU0KPiBjb21w YXRpYmxlLgo+IAo+IFRoaXMgbWVhbnMgdGhhdCBYZW4gbmVlZHMgdG8gYWNjb3VudCBmb3IgcG9z c2libGUgcXVpcmtzIGluIHRoZSBob3N0IGJyaWRnZS4KPiBUaGUgTGludXggY29tbXVuaXR5IGFy ZSB3b3JraW5nIG9uIGEgcGF0Y2ggc2VyaWVzIGZvciBzZWUgKHNlZSBbMl0gYW5kIFszXSkKPiB3 aGVyZSBxdWlya3Mgd2lsbCBiZSBkZXRlY3RlZCB3aXRoOgo+ICAgICAqIE9FTSBJRAo+ICAgICAq IE9FTSBUYWJsZSBJRAo+ICAgICAqIE9FTSBSZXZpc2lvbgo+ICAgICAqIFBDSSBTZWdtZW50IChm cm9tIF9TRUcpCj4gICAgICogUENJIGJ1cyBudW1iZXIgcmFuZ2UgKGZyb20gX0NSUywgd2lsZGNh cmQgYWxsb3dlZCkKPiAKPiBCYXNlZCBvbiB3aGF0IExpbnV4IGlzIGN1cnJlbnRseSBkb2luZywg dGhlcmUgYXJlIHR3byBraW5kIG9mIHF1aXJrczoKPiAgICAgKiBBY2Nlc3NlcyB0byB0aGUgY29u ZmlndXJhdGlvbiBzcGFjZSBvZiBjZXJ0YWluIHNpemVzIGFyZSBub3QgYWxsb3dlZAo+ICAgICAq IEEgc3BlY2lmaWMgZHJpdmVyIGlzIG5lY2Vzc2FyeSBmb3IgZHJpdmluZyB0aGUgaG9zdCBicmlk Z2UKPiAKPiBUaGUgZm9ybWVyIGlzIHN0cmFpZ2h0IGZvcndhcmQgdG8gc29sdmUsIHRoZSBsYXR0 ZXIgd2lsbCByZXF1aXJlIG1vcmUgdGhvdWdodC4KPiBJbnN0YW50aWF0aW9uIG9mIGEgc3BlY2lm aWMgZHJpdmVyIGZvciB0aGUgaG9zdCBjb250cm9sbGVyIGNhbiBiZSBlYXNpbHkgZG9uZQo+IGlm IFhlbiBoYXMgdGhlIGluZm9ybWF0aW9uIHRvIGRldGVjdCBpdC4gSG93ZXZlciwgdGhvc2UgZHJp dmVycyBtYXkgcmVxdWlyZQo+IHJlc291cmNlcyBkZXNjcmliZWQgaW4gQVNMIChzZWUgWzRdIGZv ciBpbnN0YW5jZSkuCj4gCj4gWFhYOiBOZWVkIG1vcmUgaW52ZXN0aWdhdGlvbiB0byBrbm93IHdo ZXRoZXIgdGhlIG1pc3NpbmcgaW5mb3JtYXRpb24gc2hvdWxkCj4gYmUgcGFzc2VkIGJ5IERPTTAg b3IgaGFyZGNvZGVkIGluIHRoZSBkcml2ZXIuCj4gCj4gIyMjIEZpbmRpbmcgdGhlIFN0cmVhbUlE IGFuZCBEZXZpY2VJRAo+IAo+IFRoZSBzdGF0aWMgdGFibGUgSU9SVCAoc2VlIFs1XSkgd2lsbCBw cm92aWRlIGluZm9ybWF0aW9uIHRoYXQgd2lsbCBoZWxwIHRvCj4gZGVkdWNlIHRoZSBTdHJlYW1J RCBhbmQgRGV2aWNlSUQgZnJvbSBhIGdpdmVuIFJJRC4KPiAKPiAjIyBEZXZpY2UgVHJlZQo+IAo+ ICMjIyBIb3N0IGJyaWRnZXMKPiAKPiBFYWNoIERldmljZSBUcmVlIG5vZGUgYXNzb2NpYXRlZCB0 byBhIGhvc3QgYnJpZGdlIHdpbGwgaGF2ZSBhdCBsZWFzdCB0aGUKPiBmb2xsb3dpbmcgcHJvcGVy dGllcyAoc2VlIGJpbmRpbmdzIGluIFs4XSk6Cj4gICAgIC0gZGV2aWNlX3R5cGU6IHdpbGwgYWx3 YXlzIGJlICJwY2kiLgo+ICAgICAtIGNvbXBhdGlibGU6IGEgc3RyaW5nIGluZGljYXRpbmcgd2hp Y2ggZHJpdmVyIHRvIGluc3RhbnRpYXRlCj4gCj4gVGhlIG5vZGUgbWF5IGFsc28gY29udGFpbiBv cHRpb25hbCBwcm9wZXJ0aWVzIHN1Y2ggYXM6Cj4gICAgIC0gbGludXgscGNpLWRvbWFpbjogYXNz aWduIGEgZml4IHNlZ21lbnQgbnVtYmVyCj4gICAgIC0gYnVzLXJhbmdlOiBpbmRpY2F0ZSB0aGUg cmFuZ2Ugb2YgYnVzIG51bWJlcnMgc3VwcG9ydGVkCj4gCj4gV2hlbiB0aGUgcHJvcGVydHkgbGlu dXgscGNpLWRvbWFpbiBpcyBub3QgcHJlc2VudCwgdGhlIG9wZXJhdGluZyBzeXN0ZW0gd291bGQK PiBoYXZlIHRvIGFsbG9jYXRlIHRoZSBzZWdtZW50IG51bWJlciBmb3IgZWFjaCBob3N0IGJyaWRn ZXMuIEJlY2F1c2UgdGhlCj4gYWxnb3JpdGhtIHRvIGFsbG9jYXRlIHRoZSBzZWdtZW50IGlzIG5v dCBzcGVjaWZpZWQsIGl0IGlzIG5lY2Vzc2FyeSBmb3IKPiBET00wIGFuZCBYZW4gdG8gYWdyZWUg b24gdGhlIG51bWJlciBiZWZvcmUgYW55IFBDSSBpcyBiZWVuIGFkZGVkLgo+IAo+ICMjIyBGaW5k aW5nIHRoZSBTdHJlYW1JRCBhbmQgRGV2aWNlSUQKPiAKPiAjIyMgU3RyZWFtSUQKPiAKPiBUaGUg Zmlyc3QgYmluZGluZyBleGlzdGluZyAoc2VlIFs5XSkgZm9yIFNNTVUgZGlkbid0IGhhdmUgYSB3 YXkgdG8gZGVzY3JpYmUgdGhlCj4gcmVsYXRpb25zaGlwIGJldHdlZW4gUklEIGFuZCBTdHJlYW1J RCwgaXQgd2FzIGFzc3VtZWQgdGhhdCBTdHJlYW1JRCA9PSBSZXF1ZXN0ZXJJRC4KPiBUaGlzIGJp bmRpbnMgaGFzIG5vdyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgYSBnZW5lcmljIGJpbmRp bmcgKHNlZSBbMTBdKQo+IHdoaWNoIHdpbGwgdXNlIHRoZSBwcm9wZXJ0eSAiaW9tbXUtbWFwIiB0 byBkZXNjcmliZSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4KPiBhbiBSSUQsIHRoZSBhc3NvY2lh dGVkIElPTU1VIGFuZCB0aGUgU3RyZWFtSUQuCj4gCj4gIyMjIERldmljZUlECj4gCj4gVGhlIHJl bGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSBSSUQgYW5kIHRoZSBEZXZpY2VJRCBjYW4gYmUgZm91bmQg dXNpbmcgdGhlCj4gcHJvcGVydHkgIm1zaS1tYXAiIChzZWUgWzExXSkuCj4gCj4gIyBEaXNjb3Zl cmluZyBQQ0kgZGV2aWNlcwo+IAo+IFdoaWxzdCBQQ0kgZGV2aWNlcyBhcmUgY3VycmVudGx5IGF2 YWlsYWJsZSBpbiBET00wLCB0aGUgaHlwZXJ2aXNvciBkb2VzIG5vdAo+IGhhdmUgYW55IGtub3ds ZWRnZSBvZiB0aGVtLiBUaGUgZmlyc3Qgc3RlcCBvZiBzdXBwb3J0aW5nIFBDSSBwYXNzdGhyb3Vn aCBpcwo+IHRvIG1ha2UgWGVuIGF3YXJlIG9mIHRoZSBQQ0kgZGV2aWNlcy4KPiAKPiBYZW4gd2ls bCByZXF1aXJlIGFjY2VzcyB0byB0aGUgUENJIGNvbmZpZ3VyYXRpb24gc3BhY2UgdG8gcmV0cmll dmUgaW5mb3JtYXRpb24KPiBmb3IgdGhlIFBDSSBkZXZpY2VzIG9yIGFjY2VzcyBpdCBvbiBiZWhh bGYgb2YgdGhlIGd1ZXN0IHZpYSB0aGUgZW11bGF0ZWQKPiBob3N0IGJyaWRnZS4KPiAKPiAjIyBE aXNjb3ZlcmluZyBhbmQgcmVnaXN0ZXIgaG9zdGJyaWRnZQo+IAo+IEJvdGggQUNQSSBhbmQgRGV2 aWNlIFRyZWUgZG8gbm90IHByb3ZpZGUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIGZ1bGx5Cj4gaW5z dGFudGlhdGUgYW4gaG9zdCBicmlkZ2UgZHJpdmVyLiBJbiB0aGUgY2FzZSBvZiBBQ1BJLCBzb21l IGRhdGEgbWF5IGNvbWUKPiBmcm9tIEFTTCwgd2hpbHN0IGZvciBEZXZpY2UgVHJlZSB0aGUgc2Vn bWVudCBudW1iZXIgaXMgbm90IGF2YWlsYWJsZS4KPiAKPiBTbyBYZW4gbmVlZHMgdG8gcmVseSBv biBET00wIHRvIGRpc2NvdmVyIHRoZSBob3N0IGJyaWRnZXMgYW5kIG5vdGlmeSBYZW4KPiB3aXRo IGFsbCB0aGUgcmVsZXZhbnQgaW5mb3JtYXRpb25zLiBUaGlzIHdpbGwgYmUgZG9uZSB2aWEgYSBu ZXcgaHlwZXJjYWxsCj4gUEhZU0RFVk9QX3BjaV9ob3N0X2JyaWRnZV9hZGQuIFRoZSBsYXlvdXQg b2YgdGhlIHN0cnVjdHVyZSB3aWxsIGJlOgo+IAo+IHN0cnVjdCBwaHlzZGV2X3BjaV9ob3N0X2Jy aWRnZV9hZGQKPiB7Cj4gICAgIC8qIElOICovCj4gICAgIHVpbnQxNl90IHNlZzsKPiAgICAgLyog UmFuZ2Ugb2YgYnVzIHN1cHBvcnRlZCBieSB0aGUgaG9zdCBicmlkZ2UgKi8KPiAgICAgdWludDhf dCAgYnVzX3N0YXJ0Owo+ICAgICB1aW50OF90ICBidXNfbnI7Cj4gICAgIHVpbnQzMl90IHJlczA7 ICAvKiBQYWRkaW5nICovCj4gICAgIC8qIEluZm9ybWF0aW9uIGFib3V0IHRoZSBjb25maWd1cmF0 aW9uIHNwYWNlIHJlZ2lvbiAqLwo+ICAgICB1aW50NjRfdCBjZmdfYmFzZTsKPiAgICAgdWludDY0 X3QgY2ZnX3NpemU7Cj4gfQo+IAo+IERPTTAgd2lsbCBpc3N1ZSB0aGUgaHlwZXJjYWxsIFBIWVNE RVZPUF9wY2lfaG9zdF9icmlkZ2VfYWRkIGZvciBlYWNoIGhvc3QKPiBicmlkZ2UgYXZhaWxhYmxl IG9uIHRoZSBwbGF0Zm9ybS4gV2hlbiBYZW4gaXMgcmVjZWl2aW5nIHRoZSBoeXBlcmNhbGwsIHRo ZQo+IHRoZSBkcml2ZXIgYXNzb2NpYXRlZCB0byB0aGUgaG9zdCBicmlkZ2Ugd2lsbCBiZSBpbnN0 YW50aWF0ZWQuCj4gCj4gWFhYOiBTaGFsbCB3ZSBsaW1pdCBET00wIHRoZSBhY2Nlc3MgdG8gdGhl IGNvbmZpZ3VyYXRpb24gc3BhY2UgZnJvbSB0aGF0Cj4gbW9tZW50Pwo+IAo+ICMjIERpc2NvdmVy aW5nIGFuZCByZWdpc3RlciBQQ0kKPiAKPiBTaW1pbGFybHkgdG8geDg2LCBQQ0kgZGV2aWNlcyB3 aWxsIGJlIGRpc2NvdmVyZWQgYnkgRE9NMCBhbmQgcmVnaXN0ZXIKPiB1c2luZyB0aGUgaHlwZXJj YWxscyBQSFlTREVWT1BfcGNpX2FkZF9kZXZpY2Ugb3IgUEhZU0RFVk9QX21hbmFnZV9wY2lfYWRk X2V4dC4KPiAKPiBCeSBkZWZhdWx0IGFsbCB0aGUgUENJIGRldmljZXMgd2lsbCBiZSBhc3NpZ25l ZCB0byBET00wLiBTbyBYZW4gd291bGQgaGF2ZQo+IHRvIGNvbmZpZ3VyZSB0aGUgU01NVSBhbmQg SW50ZXJydXB0IENvbnRyb2xsZXIgdG8gYWxsb3cgRE9NMCB0byB1c2UgdGhlIFBDSQo+IGRldmlj ZXMuIEFzIG1lbnRpb25lZCBlYXJsaWVyLCB0aG9zZSBzdWJzeXN0ZW1zIHdpbGwgcmVxdWlyZSB0 aGUgU3RyZWFtSUQKPiBhbmQgRGV2aWNlSUQuIEJvdGggY2FuIGJlIGRlZHVjZWQgZnJvbSB0aGUg UklELgo+IAo+IFhYWDogSG93IHRvIGhpZGUgUENJIGRldmljZXMgZnJvbSBET00wPwo+IAo+ICMg R2xvc3NhcnkKPiAKPiBFQ0FNOiBFbmhhbmNlZCBDb25maWd1cmF0aW9uIE1lY2hhbmlzbQo+IFNC REY6IFNlZ21lbnQgQnVzIERldmljZSBGdW5jdGlvbi4gVGhlIHNlZ21lbnQgaXMgYSBzb2Z0d2Fy ZSBjb25jZXB0Lgo+IE1TSTogTWVzc2FnZSBTaWduYWxlZCBJbnRlcnJ1cHQKPiBTUEk6IFNoYXJl ZCBQZXJpcGhlcmFsIEludGVycnVwdAo+IExQSTogTG9jYWxpdHktc3BlY2lmaWMgUGVyaXBoZXJh bCBJbnRlcnJ1cHQKPiBJVFM6IEludGVycnVwdCBUcmFuc2xhdGlvbiBTZXJ2aWNlCj4gCj4gIyBC aWJsaW9ncmFwaHkKPiAKPiBbMV0gUENJIGZpcm13YXJlIHNwZWNpZmljYXRpb24sIHJldiAzLjIK PiBbMl0gaHR0cHM6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvbGludXgtcGNpL21zZzU2NzE1Lmh0 bWwKPiBbM10gaHR0cHM6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvbGludXgtcGNpL21zZzU2NzIz Lmh0bWwKPiBbNF0gaHR0cHM6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvbGludXgtcGNpL21zZzU2 NzI4Lmh0bWwKPiBbNV0gaHR0cDovL2luZm9jZW50ZXIuYXJtLmNvbS9oZWxwL3RvcGljL2NvbS5h cm0uZG9jLmRlbjAwNDliL0RFTjAwNDlCX0lPX1JlbWFwcGluZ19UYWJsZS5wZGYKPiBbNl0gaHR0 cHM6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMva3ZtL21zZzE0MDExNi5odG1sCj4gWzddIGh0dHA6 Ly93d3cuZmlybXdhcmUub3JnLzEyNzUvYmluZGluZ3MvcGNpL3BjaTJfMS5wZGYKPiBbOF0gRG9j dW1lbnRzL2RldmljZXRyZWUvYmluZGluZ3MvcGNpCj4gWzldIERvY3VtZW50cy9kZXZpY2V0cmVl L2JpbmRpbmdzL2lvbW11L2FybSxzbW11LnR4dAo+IFsxMF0gRG9jdW1lbnQvZGV2aWNldHJlZS9i aW5kaW5ncy9wY2kvcGNpLWlvbW11LnR4dAo+IFsxMV0gRG9jdW1lbnRzL2RldmljZXRyZWUvYmlu ZGluZ3MvcGNpL3BjaS1tc2kudHh0Cj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK