From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manish Jaggi Subject: Re: [early RFC] ARM PCI Passthrough design document Date: Thu, 19 Jan 2017 10:39:01 +0530 Message-ID: <1ca8eee8-3f64-f729-bf59-37651d8b17fe@caviumnetworks.com> 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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cU4yT-0002on-RQ for xen-devel@lists.xenproject.org; Thu, 19 Jan 2017 05:09:26 +0000 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 , xen-devel , Stefano Stabellini Cc: "Edgar Iglesias (edgar.iglesias@xilinx.com)" , Wei Chen , Campbell Sean , "Kapoor, Prasun" , Jiandi An , Punit Agrawal , alistair.francis@xilinx.com, jnair@caviumnetworks.com, =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , "manish.jaggi@caviumnetworks.com" , Shanker Donthineni , Steve Capper List-Id: xen-devel@lists.xenproject.org SGkgSnVsaWVuLAoKT24gMTIvMjkvMjAxNiAwNzozNCBQTSwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+ IEhpIGFsbCwKPiAKPiBUaGUgZG9jdW1lbnQgYmVsb3cgaXMgYW4gZWFybHkgdmVyc2lvbiBvZiBh IGRlc2lnbgo+IHByb3Bvc2FsIGZvciBQQ0kgUGFzc3Rocm91Z2ggaW4gWGVuLiBJdCBhaW1zIHRv Cj4gZGVzY3JpYmUgZnJvbSBhbiBoaWdoIGxldmVsIHBlcnNwZWN0aXZlIHRoZSBpbnRlcmFjdGlv bgo+IHdpdGggdGhlIGRpZmZlcmVudCBzdWJzeXN0ZW1zIGFuZCBob3cgZ3Vlc3Qgd2lsbCBiZSBh YmxlCj4gdG8gZGlzY292ZXIgYW5kIGFjY2VzcyBQQ0kuCj4gCj4gSSBhbSBhd2FyZSB0aGF0IGEg c2ltaWxhciBkZXNpZ24gaGFzIGJlZW4gcG9zdGVkIHJlY2VudGx5Cj4gYnkgQ2F2aXVtIChzZWUg WzFdKSwgaG93ZXZlciB0aGUgYXBwcm9hY2ggdG8gZXhwb3NlIFBDSQo+IHRvIGd1ZXN0IGlzIGRp ZmZlcmVudC4gV2UgaGF2ZSByZXF1ZXN0IHRvIHJ1biB1bm1vZGlmaWVkCj4gYmFyZW1ldGFsIE9T IG9uIFhlbiwgYSBzdWNoIGd1ZXN0IHdvdWxkIGRpcmVjdGx5Cj4gYWNjZXNzIHRoZSBkZXZpY2Vz IGFuZCBubyBQViBkcml2ZXJzIHdpbGwgYmUgdXNlZC4KPiAKPiBUaGF0J3Mgd2h5IHRoaXMgZGVz aWduIGlzIGJhc2VkIG9uIGVtdWxhdGluZyBhIHJvb3QgY29udHJvbGxlci4KPiBUaGlzIGFsc28g aGFzIHRoZSBhZHZhbnRhZ2UgdG8gaGF2ZSB0aGUgVk0gaW50ZXJmYWNlIGFzIGNsb3NlCj4gYXMg YmFyZW1ldGFsIGFsbG93aW5nIHRoZSBndWVzdCB0byB1c2UgZmlybXdhcmUgdGFibGVzIHRvIGRp c2NvdmVyCj4gdGhlIGRldmljZXMuCj4gCj4gQ3VycmVudGx5IG9uIEFSTSwgWGVuIGRvZXMgbm90 IGhhdmUgYW55IGtub3dsZWRnZSBhYm91dCBQQ0kgZGV2aWNlcy4KPiBUaGlzIG1lYW5zIHRoYXQg SU9NTVUgYW5kIGludGVycnVwdCBjb250cm9sbGVyIChzdWNoIGFzIElUUykKPiByZXF1aXJpbmcg c3BlY2lmaWMgY29uZmlndXJhdGlvbiB3aWxsIG5vdCB3b3JrIHdpdGggUENJIGV2ZW4gd2l0aAo+ IERPTTAuCj4gCj4gVGhlIFBDSSBQYXNzdGhyb3VnaCB3b3JrIGNvdWxkIGJlIGRpdmlkZWQgaW4g MiBwaGFzZXM6Cj4gCSogUGhhc2UgMTogUmVnaXN0ZXIgYWxsIFBDSSBkZXZpY2VzIGluIFhlbiA9 PiB3aWxsIGFsbG93Cj4gCQkgICB0byB1c2UgSVRTIGFuZCBTTU1VIHdpdGggUENJIGluIFhlbgo+ ICAgICAgICAgKiBQaGFzZSAyOiBBc3NpZ24gZGV2aWNlcyB0byBndWVzdHMKPiAKPiBUaGlzIGRv Y3VtZW50IGFpbXMgdG8gZGVzY3JpYmUgdGhlIDIgcGhhc2VzLCBidXQgZm9yIG5vdyBvbmx5IHBo YXNlCj4gMSBpcyBmdWxseSBkZXNjcmliZWQuCj4gCj4gSSBoYXZlIHNlbnQgdGhlIGRlc2lnbiBk b2N1bWVudCB0byBzdGFydCB0byBnYXRoZXIgZmVlZGJhY2sgb24KPiBwaGFzZSAxLgo+IAo+IENo ZWVycywKPiAKPiBbMV0gaHR0cHM6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRl dmVsLzIwMTYtMTIvbXNnMDAyMjQuaHRtbCAKPiAKPiA9PT09PT09PT09PT09PT09PT09PT09PT0K PiAlIFBDSSBwYXNzLXRocm91Z2ggc3VwcG9ydCBvbiBBUk0KPiAlIEp1bGllbiBHcmFsbCA8anVs aWVuLmdyYWxsQGxpbmFyby5vcmc+Cj4gJSBEcmFmdCBBCj4gCj4gIyBQcmVmYWNlCj4gCj4gVGhp cyBkb2N1bWVudCBhaW1zIHRvIGRlc2NyaWJlIHRoZSBjb21wb25lbnRzIHJlcXVpcmVkIHRvIGVu YWJsZSBQQ0kKPiBwYXNzdGhyb3VnaCBvbiBBUk0uCj4gCj4gVGhpcyBpcyBhbiBlYXJseSBkcmFm dCBhbmQgc29tZSBxdWVzdGlvbnMgYXJlIHN0aWxsIHVuYW5zd2VyZWQsIHdoZW4gdGhpcyBpcwo+ IHRoZSBjYXNlIHRoZSB0ZXh0IHdpbGwgY29udGFpbiBYWFguCj4gCj4gIyBJbnRyb2R1Y3Rpb24K PiAKPiBQQ0kgcGFzc3Rocm91Z2ggYWxsb3dzIHRvIGdpdmUgY29udHJvbCBvZiBwaHlzaWNhbCBQ Q0kgZGV2aWNlcyB0byBndWVzdC4gVGhpcwo+IG1lYW5zIHRoYXQgdGhlIGd1ZXN0IHdpbGwgaGF2 ZSBmdWxsIGFuZCBkaXJlY3QgYWNjZXNzIHRvIHRoZSBQQ0kgZGV2aWNlLgo+IAo+IEFSTSBpcyBz dXBwb3J0aW5nIG9uZSBraW5kIG9mIGd1ZXN0IHRoYXQgaXMgZXhwbG9pdGluZyBhcyBtdWNoIGFz IHBvc3NpYmxlCj4gdmlydHVhbGl6YXRpb24gc3VwcG9ydCBpbiBoYXJkd2FyZS4gVGhlIGd1ZXN0 IHdpbGwgcmVseSBvbiBQViBkcml2ZXIgb25seQo+IGZvciBJTyAoZS5nIGJsb2NrLCBuZXR3b3Jr KSwgaW50ZXJydXB0cyB3aWxsIGNvbWUgdGhyb3VnaCB0aGUgdmlydHVhbGl6ZWQKPiBpbnRlcnJ1 cHQgY29udHJvbGxlci4gVGhpcyBtZWFucyB0aGF0IHRoZXJlIGFyZSBubyBiaWcgY2hhbmdlcyBy ZXF1aXJlZAo+IHdpdGhpbiB0aGUga2VybmVsLgo+IAo+IEJ5IGNvbnNlcXVlbmNlLCBpdCB3b3Vs ZCBiZSBwb3NzaWJsZSB0byByZXBsYWNlIFBWIGRyaXZlcnMgYnkgYXNzaWduaW5nIHJlYWwKPiBk ZXZpY2VzIHRvIHRoZSBndWVzdCBmb3IgSS9PIGFjY2Vzcy4gWGVuIG9uIEFSTSB3b3VsZCB0aGVy ZWZvcmUgYmUgYWJsZSB0bwo+IHJ1biB1bm1vZGlmaWVkIG9wZXJhdGluZyBzeXN0ZW0uCj4gCj4g VG8gYWNoaWV2ZSB0aGlzIGdvYWwsIGl0IGxvb2tzIG1vcmUgc2Vuc2libGUgdG8gZ28gdG93YXJk cyBlbXVsYXRpbmcgdGhlCj4gaG9zdCBicmlkZ2UgKHdlIHdpbGwgZ28gaW50byBtb3JlIGRldGFp bHMgbGF0ZXIpLiBBIGd1ZXN0IHdvdWxkIGJlIGFibGUKPiB0byB0YWtlIGFkdmFudGFnZSBvZiB0 aGUgZmlybXdhcmUgdGFibGVzIGFuZCBvYnZpYXRpbmcgdGhlIG5lZWQgZm9yIGEgc3BlY2lmaWMK PiBkcml2ZXIgZm9yIFhlbi4KPiAKPiBUaHVzIGluIHRoaXMgZG9jdW1lbnQgd2UgZm9sbG93IHRo ZSBlbXVsYXRlZCBob3N0IGJyaWRnZSBhcHByb2FjaC4KPiAKPiAjIFBDSSB0ZXJtaW5vbG9naWVz Cj4gCj4gRWFjaCBQQ0kgZGV2aWNlIHVuZGVyIGEgaG9zdCBicmlkZ2UgaXMgdW5pcXVlbHkgaWRl bnRpZmllZCBieSBpdHMgUmVxdWVzdGVyIElECj4gKEFLQSBSSUQpLiBBIFJlcXVlc3RlciBJRCBp cyBhIHRyaXBsZXQgb2YgQnVzIG51bWJlciwgRGV2aWNlIG51bWJlciwgYW5kCj4gRnVuY3Rpb24u Cj4gCj4gV2hlbiB0aGUgcGxhdGZvcm0gaGFzIG11bHRpcGxlIGhvc3QgYnJpZGdlcywgdGhlIHNv ZnR3YXJlIGNhbiBhZGQgZm91cnRoCj4gbnVtYmVyIGNhbGxlZCBTZWdtZW50IHRvIGRpZmZlcmVu dGlhdGUgaG9zdCBicmlkZ2VzLiBBIFBDSSBkZXZpY2Ugd2lsbAo+IHRoZW4gdW5pcXVlbHkgYnkg c2VnbWVudDpidXM6ZGV2aWNlOmZ1bmN0aW9uIChBS0EgU0JERikuCj4gCj4gU28gZ2l2ZW4gYSBz cGVjaWZpYyBTQkRGLCBpdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBmaW5kIHRoZSBob3N0IGJyaWRn ZSBhbmQgdGhlCj4gUklEIGFzc29jaWF0ZWQgdG8gYSBQQ0kgZGV2aWNlLgo+IAo+ICMgSW50ZXJh Y3Rpb24gb2YgdGhlIFBDSSBzdWJzeXN0ZW0gd2l0aCBvdGhlciBzdWJzeXN0ZW1zCj4gCj4gSW4g b3JkZXIgdG8gaGF2ZSBhIFBDSSBkZXZpY2UgZnVsbHkgd29ya2luZywgWGVuIHdpbGwgbmVlZCB0 byBjb25maWd1cmUKPiBvdGhlciBzdWJzeXN0ZW1zIHN1YnN5dGVtcyBzdWNoIGFzIHRoZSBTTU1V IGFuZCB0aGUgSW50ZXJydXB0IENvbnRyb2xsZXIuCj4gCj4gVGhlIGludGVyYWN0aW9uIGV4cGVj dGVkIGJldHdlZW4gdGhlIFBDSSBzdWJzeXN0ZW0gYW5kIHRoZSBvdGhlciBpczoKPiAgICAgKiBB ZGQgYSBkZXZpY2UKPiAgICAgKiBSZW1vdmUgYSBkZXZpY2UKPiAgICAgKiBBc3NpZ24gYSBkZXZp Y2UgdG8gYSBndWVzdAo+ICAgICAqIERlYXNzaWduIGEgZGV2aWNlIGZyb20gYSBndWVzdAo+IAo+ IFhYWDogRGV0YWlsIHRoZSBpbnRlcmFjdGlvbiB3aGVuIGFzc2lnbmluZy9kZWFzc2lnbmluZyBk ZXZpY2UKPiAKPiBUaGUgZm9sbG93aW5nIHN1YnNlY3Rpb25zIHdpbGwgYnJpZWZseSBkZXNjcmli ZSB0aGUgaW50ZXJhY3Rpb24gZnJvbSBhbgo+IGhpZ2hlciBsZXZlbCBwZXJzcGVjdGl2ZS4gSW1w bGVtZW50YXRpb24gZGV0YWlscyAoY2FsbGJhY2ssIHN0cnVjdHVyZS4uLikKPiBpcyBvdXQgb2Yg c2NvcGUuCj4gCj4gIyMgU01NVQo+IAo+IFRoZSBTTU1VIHdpbGwgYmUgdXNlZCB0byBpc29sYXRl IHRoZSBQQ0kgZGV2aWNlIHdoZW4gYWNjZXNzaW5nIHRoZSBtZW1vcnkKPiAoZm9yIGluc3RhbmNl IERNQSBhbmQgTVNJIERvb3JiZWxscykuIE9mdGVuIHRoZSBTTU1VIHdpbGwgYmUgY29uZmlndXJl ZCB1c2luZwo+IGEgU3RyZWFtSUQgKFNJRCkgdGhhdCBjYW4gYmUgZGVkdWNlZCBmcm9tIHRoZSBS SUQgd2l0aCB0aGUgaGVscCBvZiB0aGUgZmlybXdhcmUKPiB0YWJsZXMgKHNlZSBiZWxvdykuCj4g Cj4gV2hpbHN0IGluIHRoZW9yeSBhbGwgdGhlIG1lbW9yeSB0cmFuc2FjdGlvbiBpc3N1ZWQgYnkg YSBQQ0kgZGV2aWNlIHNob3VsZAo+IGdvIHRocm91Z2ggdGhlIFNNTVUsIG9uIGNlcnRhaW4gcGxh dGZvcm1zIHNvbWUgb2YgdGhlIG1lbW9yeSB0cmFuc2FjdGlvbiBtYXkKPiBub3QgcmVhY2ggdGhl IFNNTVUgYmVjYXVzZSB0aGV5IGFyZSBpbnRlcnByZXRlZCBieSB0aGUgaG9zdCBicmlkZ2UuIEZv cgo+IGluc3RhbmNlIHRoaXMgY291bGQgaGFwcGVuIGlmIHRoZSBNU0kgZG9vcmJlbGwgaXMgYnVp bHQgaW50byB0aGUgUENJIGhvc3QKPiBicmlkZ2UuIFNlZSBbNl0gZm9yIG1vcmUgZGV0YWlscy4K PiAKPiBYWFg6IEkgdGhpbmsgdGhpcyBjb3VsZCBiZSBzb2x2ZWQgYnkgdXNpbmcgdGhlIGhvc3Qg bWVtb3J5IGxheW91dCB3aGVuCj4gY3JlYXRpbmcgYSBndWVzdCB3aXRoIFBDSSBkZXZpY2VzID0+ IERldGFpbCBpdC4KPiAKPiAjIyBJbnRlcnJ1cHQgY29udHJvbGxlcgo+IAo+IFBDSSBzdXBwb3J0 cyB0aHJlZSBraW5kIG9mIGludGVycnVwdHM6IGxlZ2FjeSBpbnRlcnJ1cHQsIE1TSSBhbmQgTVNJ LVguIE9uIEFSTQo+IGxlZ2FjeSBpbnRlcnJ1cHRzIHdpbGwgYmUgbWFwcGVkIHRvIFNQSXMuIE1T SSBhbmQgTVNJLXggd2lsbCBiZQo+IGVpdGhlciBtYXBwZWQgdG8gU1BJcyBvciBMUElzLgo+IAo+ IFdoaWxzdCBTUElzIGNhbiBiZSBwcm9ncmFtbWVkIHVzaW5nIGFuIGludGVycnVwdCBudW1iZXIs IExQSXMgY2FuIGJlCj4gaWRlbnRpZmllZCB2aWEgYSBwYWlyIChEZXZpY2VJRCwgRXZlbnRJRCkg d2hlbiBjb25maWd1cmUgdGhyb3VnaCB0aGUgSVRTLgo+IAo+IFRoZSBEZXZpY2VJRCBpcyBhIHVu aXF1ZSBpZGVudGlmaWVyIGZvciBlYWNoIE1TSS1jYXBhYmxlIGRldmljZSB0aGF0IGNhbgo+IGJl IGRlZHVjZWQgZnJvbSB0aGUgUklEIHdpdGggdGhlIGhlbHAgb2YgdGhlIGZpcm13YXJlIHRhYmxl cyAoc2VlIGJlbG93KS4KPiAKPiBYWFg6IEZpZ3VyZSBvdXQgaWYgc29tZXRoaW5nIGlzIG5lY2Vz c2FyeSBmb3IgR0lDdjJtCj4gCj4gIyBJbmZvcm1hdGlvbiBhdmFpbGFibGUgaW4gdGhlIGZpcm13 YXJlIHRhYmxlcwo+IAo+ICMjIEFDUEkKPiAKPiAjIyMgSG9zdCBicmlkZ2VzCj4gCj4gVGhlIHN0 YXRpYyB0YWJsZSBNQ0ZHIChzZWUgNC4yIGluIFsxXSkgd2lsbCBkZXNjcmliZSB0aGUgaG9zdCBi cmlkZ2VzIGF2YWlsYWJsZQo+IGF0IGJvb3QgYW5kIHN1cHBvcnRpbmcgRUNBTS4gVW5mb3J0dW5h dGVseSB0aGVyZSBhcmUgcGxhdGZvcm1zIG91dCB0aGVyZQo+IChzZWUgWzJdKSB0aGF0IHJlLXVz ZSBNQ0ZHIHRvIGRlc2NyaWJlIGhvc3QgYnJpZGdlIHRoYXQgYXJlIG5vdCBmdWxseSBFQ0FNCj4g Y29tcGF0aWJsZS4KPiAKPiBUaGlzIG1lYW5zIHRoYXQgWGVuIG5lZWRzIHRvIGFjY291bnQgZm9y IHBvc3NpYmxlIHF1aXJrcyBpbiB0aGUgaG9zdCBicmlkZ2UuCj4gVGhlIExpbnV4IGNvbW11bml0 eSBhcmUgd29ya2luZyBvbiBhIHBhdGNoIHNlcmllcyBmb3Igc2VlIChzZWUgWzJdIGFuZCBbM10p Cj4gd2hlcmUgcXVpcmtzIHdpbGwgYmUgZGV0ZWN0ZWQgd2l0aDoKPiAgICAgKiBPRU0gSUQKPiAg ICAgKiBPRU0gVGFibGUgSUQKPiAgICAgKiBPRU0gUmV2aXNpb24KPiAgICAgKiBQQ0kgU2VnbWVu dCAoZnJvbSBfU0VHKQo+ICAgICAqIFBDSSBidXMgbnVtYmVyIHJhbmdlIChmcm9tIF9DUlMsIHdp bGRjYXJkIGFsbG93ZWQpCj4gCj4gQmFzZWQgb24gd2hhdCBMaW51eCBpcyBjdXJyZW50bHkgZG9p bmcsIHRoZXJlIGFyZSB0d28ga2luZCBvZiBxdWlya3M6Cj4gICAgICogQWNjZXNzZXMgdG8gdGhl IGNvbmZpZ3VyYXRpb24gc3BhY2Ugb2YgY2VydGFpbiBzaXplcyBhcmUgbm90IGFsbG93ZWQKPiAg ICAgKiBBIHNwZWNpZmljIGRyaXZlciBpcyBuZWNlc3NhcnkgZm9yIGRyaXZpbmcgdGhlIGhvc3Qg YnJpZGdlCj4gCj4gVGhlIGZvcm1lciBpcyBzdHJhaWdodCBmb3J3YXJkIHRvIHNvbHZlLCB0aGUg bGF0dGVyIHdpbGwgcmVxdWlyZSBtb3JlIHRob3VnaHQuCj4gSW5zdGFudGlhdGlvbiBvZiBhIHNw ZWNpZmljIGRyaXZlciBmb3IgdGhlIGhvc3QgY29udHJvbGxlciBjYW4gYmUgZWFzaWx5IGRvbmUK PiBpZiBYZW4gaGFzIHRoZSBpbmZvcm1hdGlvbiB0byBkZXRlY3QgaXQuIEhvd2V2ZXIsIHRob3Nl IGRyaXZlcnMgbWF5IHJlcXVpcmUKPiByZXNvdXJjZXMgZGVzY3JpYmVkIGluIEFTTCAoc2VlIFs0 XSBmb3IgaW5zdGFuY2UpLgo+IAo+IFhYWDogTmVlZCBtb3JlIGludmVzdGlnYXRpb24gdG8ga25v dyB3aGV0aGVyIHRoZSBtaXNzaW5nIGluZm9ybWF0aW9uIHNob3VsZAo+IGJlIHBhc3NlZCBieSBE T00wIG9yIGhhcmRjb2RlZCBpbiB0aGUgZHJpdmVyLgo+IAo+ICMjIyBGaW5kaW5nIHRoZSBTdHJl YW1JRCBhbmQgRGV2aWNlSUQKPiAKPiBUaGUgc3RhdGljIHRhYmxlIElPUlQgKHNlZSBbNV0pIHdp bGwgcHJvdmlkZSBpbmZvcm1hdGlvbiB0aGF0IHdpbGwgaGVscCB0bwo+IGRlZHVjZSB0aGUgU3Ry ZWFtSUQgYW5kIERldmljZUlEIGZyb20gYSBnaXZlbiBSSUQuCj4gCj4gIyMgRGV2aWNlIFRyZWUK PiAKPiAjIyMgSG9zdCBicmlkZ2VzCj4gCj4gRWFjaCBEZXZpY2UgVHJlZSBub2RlIGFzc29jaWF0 ZWQgdG8gYSBob3N0IGJyaWRnZSB3aWxsIGhhdmUgYXQgbGVhc3QgdGhlCj4gZm9sbG93aW5nIHBy b3BlcnRpZXMgKHNlZSBiaW5kaW5ncyBpbiBbOF0pOgo+ICAgICAtIGRldmljZV90eXBlOiB3aWxs IGFsd2F5cyBiZSAicGNpIi4KPiAgICAgLSBjb21wYXRpYmxlOiBhIHN0cmluZyBpbmRpY2F0aW5n IHdoaWNoIGRyaXZlciB0byBpbnN0YW50aWF0ZQo+IAo+IFRoZSBub2RlIG1heSBhbHNvIGNvbnRh aW4gb3B0aW9uYWwgcHJvcGVydGllcyBzdWNoIGFzOgo+ICAgICAtIGxpbnV4LHBjaS1kb21haW46 IGFzc2lnbiBhIGZpeCBzZWdtZW50IG51bWJlcgo+ICAgICAtIGJ1cy1yYW5nZTogaW5kaWNhdGUg dGhlIHJhbmdlIG9mIGJ1cyBudW1iZXJzIHN1cHBvcnRlZAo+IAo+IFdoZW4gdGhlIHByb3BlcnR5 IGxpbnV4LHBjaS1kb21haW4gaXMgbm90IHByZXNlbnQsIHRoZSBvcGVyYXRpbmcgc3lzdGVtIHdv dWxkCj4gaGF2ZSB0byBhbGxvY2F0ZSB0aGUgc2VnbWVudCBudW1iZXIgZm9yIGVhY2ggaG9zdCBi cmlkZ2VzLiBCZWNhdXNlIHRoZQo+IGFsZ29yaXRobSB0byBhbGxvY2F0ZSB0aGUgc2VnbWVudCBp cyBub3Qgc3BlY2lmaWVkLCBpdCBpcyBuZWNlc3NhcnkgZm9yCj4gRE9NMCBhbmQgWGVuIHRvIGFn cmVlIG9uIHRoZSBudW1iZXIgYmVmb3JlIGFueSBQQ0kgaXMgYmVlbiBhZGRlZC4KPiAKPiAjIyMg RmluZGluZyB0aGUgU3RyZWFtSUQgYW5kIERldmljZUlECj4gCj4gIyMjIFN0cmVhbUlECj4gCj4g VGhlIGZpcnN0IGJpbmRpbmcgZXhpc3RpbmcgKHNlZSBbOV0pIGZvciBTTU1VIGRpZG4ndCBoYXZl IGEgd2F5IHRvIGRlc2NyaWJlIHRoZQo+IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIFJJRCBhbmQgU3Ry ZWFtSUQsIGl0IHdhcyBhc3N1bWVkIHRoYXQgU3RyZWFtSUQgPT0gUmVxdWVzdGVySUQuCj4gVGhp cyBiaW5kaW5zIGhhcyBub3cgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGEgZ2VuZXJpYyBi aW5kaW5nIChzZWUgWzEwXSkKPiB3aGljaCB3aWxsIHVzZSB0aGUgcHJvcGVydHkgImlvbW11LW1h cCIgdG8gZGVzY3JpYmUgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuCj4gYW4gUklELCB0aGUgYXNz b2NpYXRlZCBJT01NVSBhbmQgdGhlIFN0cmVhbUlELgo+IAo+ICMjIyBEZXZpY2VJRAo+IAo+IFRo ZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgUklEIGFuZCB0aGUgRGV2aWNlSUQgY2FuIGJlIGZv dW5kIHVzaW5nIHRoZQo+IHByb3BlcnR5ICJtc2ktbWFwIiAoc2VlIFsxMV0pLgo+IAo+ICMgRGlz Y292ZXJpbmcgUENJIGRldmljZXMKPiAKPiBXaGlsc3QgUENJIGRldmljZXMgYXJlIGN1cnJlbnRs eSBhdmFpbGFibGUgaW4gRE9NMCwgdGhlIGh5cGVydmlzb3IgZG9lcyBub3QKPiBoYXZlIGFueSBr bm93bGVkZ2Ugb2YgdGhlbS4gVGhlIGZpcnN0IHN0ZXAgb2Ygc3VwcG9ydGluZyBQQ0kgcGFzc3Ro cm91Z2ggaXMKPiB0byBtYWtlIFhlbiBhd2FyZSBvZiB0aGUgUENJIGRldmljZXMuCj4gCj4gWGVu IHdpbGwgcmVxdWlyZSBhY2Nlc3MgdG8gdGhlIFBDSSBjb25maWd1cmF0aW9uIHNwYWNlIHRvIHJl dHJpZXZlIGluZm9ybWF0aW9uCj4gZm9yIHRoZSBQQ0kgZGV2aWNlcyBvciBhY2Nlc3MgaXQgb24g YmVoYWxmIG9mIHRoZSBndWVzdCB2aWEgdGhlIGVtdWxhdGVkCj4gaG9zdCBicmlkZ2UuCj4gCj4g IyMgRGlzY292ZXJpbmcgYW5kIHJlZ2lzdGVyIGhvc3RicmlkZ2UKPiAKPiBCb3RoIEFDUEkgYW5k IERldmljZSBUcmVlIGRvIG5vdCBwcm92aWRlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBmdWxseQo+ IGluc3RhbnRpYXRlIGFuIGhvc3QgYnJpZGdlIGRyaXZlci4gSW4gdGhlIGNhc2Ugb2YgQUNQSSwg c29tZSBkYXRhIG1heSBjb21lCj4gZnJvbSBBU0wsIHdoaWxzdCBmb3IgRGV2aWNlIFRyZWUgdGhl IHNlZ21lbnQgbnVtYmVyIGlzIG5vdCBhdmFpbGFibGUuCj4gCj4gU28gWGVuIG5lZWRzIHRvIHJl bHkgb24gRE9NMCB0byBkaXNjb3ZlciB0aGUgaG9zdCBicmlkZ2VzIGFuZCBub3RpZnkgWGVuCj4g d2l0aCBhbGwgdGhlIHJlbGV2YW50IGluZm9ybWF0aW9ucy4gVGhpcyB3aWxsIGJlIGRvbmUgdmlh IGEgbmV3IGh5cGVyY2FsbAo+IFBIWVNERVZPUF9wY2lfaG9zdF9icmlkZ2VfYWRkLiBUaGUgbGF5 b3V0IG9mIHRoZSBzdHJ1Y3R1cmUgd2lsbCBiZToKPiAKPiBzdHJ1Y3QgcGh5c2Rldl9wY2lfaG9z dF9icmlkZ2VfYWRkCj4gewo+ICAgICAvKiBJTiAqLwo+ICAgICB1aW50MTZfdCBzZWc7Cj4gICAg IC8qIFJhbmdlIG9mIGJ1cyBzdXBwb3J0ZWQgYnkgdGhlIGhvc3QgYnJpZGdlICovCj4gICAgIHVp bnQ4X3QgIGJ1c19zdGFydDsKPiAgICAgdWludDhfdCAgYnVzX25yOwo+ICAgICB1aW50MzJfdCBy ZXMwOyAgLyogUGFkZGluZyAqLwo+ICAgICAvKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgY29uZmln dXJhdGlvbiBzcGFjZSByZWdpb24gKi8KPiAgICAgdWludDY0X3QgY2ZnX2Jhc2U7Cj4gICAgIHVp bnQ2NF90IGNmZ19zaXplOwo+IH0KPiAKPiBET00wIHdpbGwgaXNzdWUgdGhlIGh5cGVyY2FsbCBQ SFlTREVWT1BfcGNpX2hvc3RfYnJpZGdlX2FkZCBmb3IgZWFjaCBob3N0Cj4gYnJpZGdlIGF2YWls YWJsZSBvbiB0aGUgcGxhdGZvcm0uIFdoZW4gWGVuIGlzIHJlY2VpdmluZyB0aGUgaHlwZXJjYWxs LCB0aGUKPiB0aGUgZHJpdmVyIGFzc29jaWF0ZWQgdG8gdGhlIGhvc3QgYnJpZGdlIHdpbGwgYmUg aW5zdGFudGlhdGVkLgo+IAoKSSB0aGluaywgUENJIHBhc3N0aHJvdWdoIGFuZCBET00wIHcvQUNQ SSBlbnVtZXJhdGluZyBkZXZpY2VzIG9uIFBDSSBhcmUgc2VwYXJhdGUgZmVhdHVyZXMuCldpdGhv dXQgWGVuIG1hcHBpbmcgUENJIGNvbmZpZyBzcGFjZSByZWdpb24gaW4gc3RhZ2UyIG9mIGRvbTAs IEFDUEkgZG9tMCB3b250IGJvb3QuCkN1cnJlbnRseSBmb3IgZHQgeGVuIGRvZXMgdGhhdC4KClNv IGNhbiB3ZSBoYXZlIDIgZGVzaWduIGRvY3VtZW50cwphKSBQQ0kgcGFzc3Rocm91Z2gKYikgQUNQ SSBkb20wL2RvbVUgc3VwcG9ydCBpbiBYZW4gYW5kIExpbnV4Ci0gdGhpcyBtYXkgaW5jbHVkZToK Yi4xIFBhc3NpbmcgSU9SVCB0byBEb20wIHdpdGhvdXQgc21tdQpiLjIgSHlwZXJjYWxsIHRvIG1h cCBQQ0kgY29uZmlnIHNwYWNlIGluIGRvbTAKYi4zIDxtb3JlPgoKV2hhdCBkbyB5b3UgdGhpbms/ CgoKPiBYWFg6IFNoYWxsIHdlIGxpbWl0IERPTTAgdGhlIGFjY2VzcyB0byB0aGUgY29uZmlndXJh dGlvbiBzcGFjZSBmcm9tIHRoYXQKPiBtb21lbnQ/Cj4gCj4gIyMgRGlzY292ZXJpbmcgYW5kIHJl Z2lzdGVyIFBDSQo+IAo+IFNpbWlsYXJseSB0byB4ODYsIFBDSSBkZXZpY2VzIHdpbGwgYmUgZGlz Y292ZXJlZCBieSBET00wIGFuZCByZWdpc3Rlcgo+IHVzaW5nIHRoZSBoeXBlcmNhbGxzIFBIWVNE RVZPUF9wY2lfYWRkX2RldmljZSBvciBQSFlTREVWT1BfbWFuYWdlX3BjaV9hZGRfZXh0Lgo+IAo+ IEJ5IGRlZmF1bHQgYWxsIHRoZSBQQ0kgZGV2aWNlcyB3aWxsIGJlIGFzc2lnbmVkIHRvIERPTTAu IFNvIFhlbiB3b3VsZCBoYXZlCj4gdG8gY29uZmlndXJlIHRoZSBTTU1VIGFuZCBJbnRlcnJ1cHQg Q29udHJvbGxlciB0byBhbGxvdyBET00wIHRvIHVzZSB0aGUgUENJCj4gZGV2aWNlcy4gQXMgbWVu dGlvbmVkIGVhcmxpZXIsIHRob3NlIHN1YnN5c3RlbXMgd2lsbCByZXF1aXJlIHRoZSBTdHJlYW1J RAo+IGFuZCBEZXZpY2VJRC4gQm90aCBjYW4gYmUgZGVkdWNlZCBmcm9tIHRoZSBSSUQuCj4gCj4g WFhYOiBIb3cgdG8gaGlkZSBQQ0kgZGV2aWNlcyBmcm9tIERPTTA/Cj4gCj4gIyBHbG9zc2FyeQo+ IAo+IEVDQU06IEVuaGFuY2VkIENvbmZpZ3VyYXRpb24gTWVjaGFuaXNtCj4gU0JERjogU2VnbWVu dCBCdXMgRGV2aWNlIEZ1bmN0aW9uLiBUaGUgc2VnbWVudCBpcyBhIHNvZnR3YXJlIGNvbmNlcHQu Cj4gTVNJOiBNZXNzYWdlIFNpZ25hbGVkIEludGVycnVwdAo+IFNQSTogU2hhcmVkIFBlcmlwaGVy YWwgSW50ZXJydXB0Cj4gTFBJOiBMb2NhbGl0eS1zcGVjaWZpYyBQZXJpcGhlcmFsIEludGVycnVw dAo+IElUUzogSW50ZXJydXB0IFRyYW5zbGF0aW9uIFNlcnZpY2UKPiAKPiAjIEJpYmxpb2dyYXBo eQo+IAo+IFsxXSBQQ0kgZmlybXdhcmUgc3BlY2lmaWNhdGlvbiwgcmV2IDMuMgo+IFsyXSBodHRw czovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9saW51eC1wY2kvbXNnNTY3MTUuaHRtbAo+IFszXSBo dHRwczovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9saW51eC1wY2kvbXNnNTY3MjMuaHRtbAo+IFs0 XSBodHRwczovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9saW51eC1wY2kvbXNnNTY3MjguaHRtbAo+ IFs1XSBodHRwOi8vaW5mb2NlbnRlci5hcm0uY29tL2hlbHAvdG9waWMvY29tLmFybS5kb2MuZGVu MDA0OWIvREVOMDA0OUJfSU9fUmVtYXBwaW5nX1RhYmxlLnBkZgo+IFs2XSBodHRwczovL3d3dy5z cGluaWNzLm5ldC9saXN0cy9rdm0vbXNnMTQwMTE2Lmh0bWwKPiBbN10gaHR0cDovL3d3dy5maXJt d2FyZS5vcmcvMTI3NS9iaW5kaW5ncy9wY2kvcGNpMl8xLnBkZgo+IFs4XSBEb2N1bWVudHMvZGV2 aWNldHJlZS9iaW5kaW5ncy9wY2kKPiBbOV0gRG9jdW1lbnRzL2RldmljZXRyZWUvYmluZGluZ3Mv aW9tbXUvYXJtLHNtbXUudHh0Cj4gWzEwXSBEb2N1bWVudC9kZXZpY2V0cmVlL2JpbmRpbmdzL3Bj aS9wY2ktaW9tbXUudHh0Cj4gWzExXSBEb2N1bWVudHMvZGV2aWNldHJlZS9iaW5kaW5ncy9wY2kv cGNpLW1zaS50eHQKPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=